Jump to content

Help with Clipboard Quickview workflow


Recommended Posts

Posted

I am attempting to create a workflow that pastes the contents of clipboard to a file and opens that file using QuickView.

 

The simpleset approacth would be `qlmange -p myfile.ext`, but for some reasons my computer is not working `qlmanage -p ` command and I have to use `applescript`.

 

Here is link of my workflow: https://github.com/bhishanpdl/Shared/blob/master/Alfred_questions/aa Clipboard QuickView.alfredworkflow?raw=true

 

 

Here is outlook of my workflow:

 

# part1: 

Keyword

 

# part 2:  Bash

# if argument exist
if [[ $# -gt 0 ]] ; then
    OUT="a.$1"
fi


# if arg doesnot exist
if [[ $# -eq 0 ]]; then
  OUT="a.py"
fi


pbpaste > ~/Dropbox/$OUT

echo -n "~/Dropbox/$OUT"

 

 

# part3: Applescritpt

property folderPath : "/Users/poudel/Dropbox"


on run {}

  tell application "Finder"
      activate
        set myFolder to folder (folderPath as POSIX file)
        set myFile to first item of myFolder
        -- set myFile to quoted form of (item 1 of argv)
        select myFile
        tell application "System Events" to keystroke "y" using command down
   end tell
end run

 

 

**Question**

1. In part3 I  want to avoid hard coding "/Users/poudel/Dropbox" to "~/Dropbox"   so that I can use the workflow in the office computer and my own laptop both.

2. The workflow is not working currently, I am struggling to select the file by its name.

 

 

Help with workflow is appreciated.

Posted

Try using "/usr/bin/qlmanage -p myfile.ext" in your script. If that works, you don't have the proper PATH variable setup on your system. Either use the full path to the qlmanage program or add to the environment variables for your workflow a PATH equal to "/usr/bin:/usr/local/bin". That should fix that.

 

Alfred runs a simple shell environment that doesn't load in the ~/.bashrc file. By using the full path to the program, you will be able to ensure that you are getting the command.

Posted
32 minutes ago, raguay.customct said:

PATH equal to "/usr/bin:/usr/local/bin"

 

You forgot /bin.

 

Better to just use the full path to the executable, imo. Then you know exactly which program you’re going to get.

Posted
9 hours ago, raguay.customct said:

Try using "/usr/bin/qlmanage -p myfile.ext" in your script. If that works, you don't have the proper PATH variable setup on your system.

 

pbpaste is also in /usr/bin/; if the problem were PATH-related, that part would also fail.

 

10 hours ago, Bhishan said:

echo -n "~/Dropbox/$OUT"

 

If you put ~ inside quotes (even double quotes), it’ll be taken literally (i.e., as ~, not as the path to your home directory). Either take it out of the quotes (echo -n ~/"Dropbox/${OUT}") or better yet, use ${HOME} (echo -n "${HOME}/Dropbox/${OUT}").

 

10 hours ago, Bhishan said:

The simpleset approacth would be `qlmange -p myfile.ext`, but for some reasons my computer is not working `qlmanage -p ` command

 

You haven’t shown the version with qlmanage, so we can’t evaluate what’s going wrong. In your version, if you open the debugger, and set the log output to “All Information”, what information shows?


This worked for me:

  1. Delete the “part 3” in your workflow.
  2. Make this the part 2:

out_dir="${HOME}/Dropbox"
[[ -n "${1}" ]] && out_file="${out_dir}/a.${1}" || out_file="${out_dir}/a.py"

pbpaste > "${out_file}"
qlmanage -p "${out_file}" &> /dev/null

 

Posted (edited)

# Given solution works in office compute but does not work in my laptop

 

Office computer: macos Yosemite, clean nothing quickview qlgenerators installed  

Laptop:  macos mojave  and some quickview qlgenerators installed  (eg. QLColorcode)

 

- /usr/bin/qlmanage -p a.pdf # it works despite some warnings

- /usr/bin/qlmanage -p a.sh # it does not work (qlmanage fails)

 

- NOTE:   hitting space on a.sh works on finder

- NOTE: hitting cmd-y on a.sh works on finder

 

That is why I was looking a way using "APPLESCRIPT".

 

I am hardly familiar with AppleScript, but I feel I was pretty close to the solution in the third part of the applescript workflow in my question.

 

qlmanage_pdf.thumb.png.694df40b2b43a3fee96eb9b3cda2c95e.png

 

qlmanage_sh.png.e8e8a1c8fee5bdf61de840bf039384f6.png

 

 

Edited by vitor
Removed empty lines at top
Posted

Why are you posting screenshots of text error messages? Post the text so we can copy it into Google instead of having to type it all out by hand.

 

Try running qlmanage with debugging turned on (qlmanage -d1) for more information about the error.

 

Posted (edited)

1.

 

I forgot to post the error code and instead pasted the screenshot, with apologies, I have included the error log for the command of `qlmanage -p a.sh`

$ /usr/bin/qlmanage -p a.sh

Testing Quick Look preview with files:

a.sh

2019-05-11 12:43:43.026 qlmanage[2234:143427] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) 'Permission denied', port = 0x933f, name = 'com.apple.coredrag'

See /usr/include/servers/bootstrap_defs.h for the error codes.

Segmentation fault: 11

 

 

2.   the error log says look at `/usr/include/servers/bootstrap_defs.h`  but there is no directory  called 'include' inside '/usr' and hence no file `bootstrap_defs.h`.

 

3. `qlmanage -p -d1 a.sh` full error log:

 

Process:               qlmanage [3157]
Path:                  /usr/bin/qlmanage
Identifier:            qlmanage
Version:               775.5
Code Type:             X86-64 (Native)
Parent Process:        bash [2174]
Responsible:           qlmanage [3157]
User ID:               501

Date/Time:             2019-05-11 14:47:34.063 -0400
OS Version:            Mac OS X 10.14.4 (18E226)
Report Version:        12
Bridge OS Version:     3.0 (14Y677)
Anonymous UUID:        7DE74171-844A-93C0-0F1A-0107803E2F17

Sleep/Wake UUID:       85F49D0C-EF83-49C5-9B22-6AA6573AB534

Time Awake Since Boot: 14000 seconds
Time Since Wake:       3900 seconds

System Integrity Protection: enabled

Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x0000000000000020
Exception Note:        EXC_CORPSE_NOTIFY

Termination Signal:    Segmentation fault: 11
Termination Reason:    Namespace SIGNAL, Code 0xb
Terminating Process:   exc handler [3157]

VM Regions Near 0x20:
--> 
    __TEXT                 000000010169e000-00000001016f7000 [  356K] r-x/rwx SM=COW  /System/Library/Frameworks/QuickLook.framework/Versions/A/Resources/quicklookd.app/Contents/MacOS/qlmanage

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebKit              	0x00007fff4e63d472 WebKit::ChildProcessProxy::state() const + 4
1   com.apple.WebKit              	0x00007fff4e77389e WebKit::NetworkProcessProxy::removeSession(PAL::SessionID) + 26


External Modification Summary:
  Calls made by other processes targeting this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by this process:
    task_for_pid: 0
    thread_create: 0
    thread_set_state: 0
  Calls made by all processes on this machine:
    task_for_pid: 8703
    thread_create: 0
    thread_set_state: 0

VM Region Summary:
ReadOnly portion of Libraries: Total=516.6M resident=0K(0%) swapped_out_or_unallocated=516.6M(100%)
Writable regions: Total=1.1G written=0K(0%) resident=0K(0%) swapped_out=0K(0%) unallocated=1.1G(100%)
 
                                VIRTUAL   REGION 
REGION TYPE                        SIZE    COUNT (non-coalesced) 
===========                     =======  ======= 
Accelerate framework               256K        2 
Activity Tracing                   256K        1 
CG image                          1028K        1 
CoreGraphics                         8K        1 
CoreUI image file                  224K        6 
Dispatch continuations            8192K        1 
Foundation                           4K        1 
JS JIT generated code              1.0G        3 
Kernel Alloc Once                    8K        1 
MALLOC                            52.7M       28 
MALLOC guard page                   32K        8 
SQLite page cache                   64K        1 
STACK GUARD                       56.0M        6 
Stack                             10.5M        6 
VM_ALLOCATE                        140K        8 
WebKit Malloc                     4216K        5 
__DATA                            43.1M      366 
__FONT_DATA                          4K        1 
__GLSLBUILTINS                    5176K        1 
__LINKEDIT                       221.6M        6 
__TEXT                           295.0M      368 
__UNICODE                          564K        1 
mapped file                       45.4M       16 
shared memory                      676K       11 
===========                     =======  ======= 
TOTAL                              1.7G      849 

Model: MacBookPro14,2, BootROM 190.0.0.0.0, 2 processors, Intel Core i7, 3.5 GHz, 16 GB, SMC 2.44f1
Graphics: kHW_IntelIrisGraphics650Item, Intel Iris Plus Graphics 650, spdisplays_builtin
Memory Module: BANK 0/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C, 0x4D5435324C31473332443450472D30393320
Memory Module: BANK 1/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C, 0x4D5435324C31473332443450472D30393320
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x171), Broadcom BCM43xx 1.0 (7.77.61.2 AirPortDriverBrcmNIC-1305.8)
Bluetooth: Version 6.0.11f4, 3 services, 27 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
USB Device: USB 3.0 Bus
USB Device: USB2.0 Hub
USB Device: USB 2.0 Hub
USB Device: Keyboard Hub
USB Device: Apple Optical USB Mouse
USB Device: Apple Keyboard
USB Device: USB 2.0 BILLBOARD
USB Device: iBridge
USB Device: USB3.0 Hub
Thunderbolt Bus: MacBook Pro, Apple Inc., 39.2
Thunderbolt Bus: MacBook Pro, Apple Inc., 39.2

 

 

 

 

4. Also, since qlmanage is not working, an alternative might also be using applescript and avoiding qlmanage altogether.

 

 

Edited by Bhishan
Posted
50 minutes ago, Bhishan said:

the error log says look at `/usr/include/servers/bootstrap_defs.h`  but there is no directory  called 'include' inside '/usr' and hence no file `bootstrap_defs.h`.

 

There's one on my system. It doesn't matter, it just says the same thing: "permission denied".

 

The debug log isn't a lot of help (to me), as it's showing the segfault, not the error that caused it.

 

You should try disabling and re-enabling your Quicklook generators. You haven't said which ones you have installed, and it's possible one of them is causing the issue.

 

See here.

 

Posted (edited)
$ ls ~/Library/QuickLook/
color.zip                  BetterZipQL.qlgenerator/   QLFits3.qlgenerator/       QLStephen.qlgenerator/
Readme.txt                 QLColorCode.qlgenerator/   QLMarkdown.qlgenerator/    QuickLookJSON.qlgenerator/

$ ls /Library/QuickLook/
iBooksAuthor.qlgenerator/ iWork.qlgenerator/

 

I have installed some plugins in the path `~/Library/QuickLook/`.   I suspect these are causing the problems.

 

Temporarily, I backed all the plugins and reset it.

 

cd ~/Library/QuickLook/
cp * ~/Dropbox/quicklook_backup

pwd # WARNING: be sure you are at correct folder
sudo rm -rf *
qlmanage -r
qlmanage -r cache

cd ~/tmp
qlmanage -p a.sh  # now, despite permission error it shows the quickview.

# this solves the problem, we can use qlmanage from terminal and alfred workflow also works.
# but i dont want to delete all the plugins, especially the plugin qlcolorcode.

 

But, I like to use the plugin QLColorCode.qlgenerator, it makes the quick view of scripts syntax highlighted, but on the other hand causes qlmanage to fail.

 

Still, when I select a file in Finder and hit space, it gives syntax highlighted quick view.

 

I am indifferent to command `qlmange -p` fail or  pass, I would be happy to use the color highlighted preview of scripts on my Finder.

 

So, I was looking for help with `APPLESCRIPT` where we can simulate keystroke `select file and hit cmd y or hit space`.

 

If some developers have an idea of AppleScript, I would seek their help and greatly appreciate their effort.

 

 

Edited by Bhishan
Posted

One more Aside:

How to hightlight just a word here in this Alfred Forum?

 

I tried backticks  like in markdown:  `highlight me`, but it does not highlight here in this forum.

 

For example how to highlight the word:   APPLESCRIPT ?

Posted
1 hour ago, Bhishan said:

But, I like to use the plugin QLColorCode.qlgenerator, it makes the quick view of scripts syntax highlighted, but on the other hand causes qlmanage to fail.

 

Well have a look on Google then to see if there is a fixed version or an alternative.

 

1 hour ago, Bhishan said:

How to hightlight just a word here in this Alfred Forum?

 

Vítor and I use his MarkdownTransform workflow to convert Markdown to BBCode.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...