Bhishan Posted May 10, 2019 Posted May 10, 2019 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.
raguay.customct Posted May 10, 2019 Posted May 10, 2019 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.
deanishe Posted May 10, 2019 Posted May 10, 2019 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.
vitor Posted May 11, 2019 Posted May 11, 2019 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: Delete the “part 3” in your workflow. 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
Bhishan Posted May 11, 2019 Author Posted May 11, 2019 (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. Edited May 11, 2019 by vitor Removed empty lines at top
deanishe Posted May 11, 2019 Posted May 11, 2019 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.
Bhishan Posted May 11, 2019 Author Posted May 11, 2019 (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 May 11, 2019 by Bhishan
deanishe Posted May 11, 2019 Posted May 11, 2019 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.
Bhishan Posted May 11, 2019 Author Posted May 11, 2019 (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 May 11, 2019 by Bhishan
Bhishan Posted May 11, 2019 Author Posted May 11, 2019 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 ?
deanishe Posted May 11, 2019 Posted May 11, 2019 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. Bhishan 1
Bhishan Posted May 12, 2019 Author Posted May 12, 2019 Thanks for the idea of converting markdown to bbcode deanishe 1
deanishe Posted May 12, 2019 Posted May 12, 2019 Apparently, this updated version of QLColorCode is better. It still hasn't been updated in a while, though.
Bhishan Posted May 12, 2019 Author Posted May 12, 2019 Sadly None of the versions of QLcolorcode worked for me. Still gives the same error. https://github.com/BrianGilbert/QLColorCode-extra https://code.google.com/archive/p/qlcolorcode/downloads Thanks though.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now