quicksilver / Quicksilver

Quicksilver Project Source
http://qsapp.com
Apache License 2.0
2.72k stars 283 forks source link

[Bug]: Default action for applications is "Large Text" #2960

Closed torley-gallium closed 4 months ago

torley-gallium commented 10 months ago

Before submitting your bug report, please confirm you have completed the following steps

Bug description

QuickSilver 2.4.1 is broken for me on macOS Ventura 13.5.

Every time I try to launch an app, it shows giant text.

Reverted back to 2.4.0, works fine.

Steps to reproduce

  1. Open QuickSilver with shortcut. (Using Bezel skin + Superfluous visual effects, no plugins.)
  2. Select app to launch.

Then the directory path of the app appears in a gigantic font, but it doesn't launch.

Expected behavior

It should launch the app and not freeze with giant text.

MacOS Version

macOS 13

Quicksilver Version

2.4.1

Relevant Plugins

No plugins. Just customized some colors but using Bezel.

Crash Logs or Spindump

No response

Screenshots

No response

Additional info

No response

corporate-gadfly commented 10 months ago

Same here.

Defaults to Large Type always: image Pressing Tab and then O will do the trick, but involves 2 extra clicks, every single time: image

n8henrie commented 10 months ago

@pjrobertson i wonder if this (and the other issue with shortcuts) could be related to the changes I made to get tests passing, in which I made sure that application paths were also recognized as valid objects for text actions.

If so, perhaps default action sorting can use guessPrimaryType?

Will need to look into this. On mobile now.

torley-gallium commented 10 months ago

@corporate-gadfly THANK YOU very much for the screenshots and substantiating that it's not just me.

I updated QuickSilver to 2.4.1 on a second Mac and it also repros.

@n8henrie I appreciate you looking into this!

asmeurer commented 10 months ago

For anyone seeing this, the workaround is to open the Quicksilver settings, go to General -> Actions, search for "large type" and uncheck it.

DougHockin commented 10 months ago

The "large type" fix worked for me as well. Sounds like another update is needed.

n8henrie commented 10 months ago

For anyone seeing this, the workaround is to open the Quicksilver settings, go to General -> Actions, search for "large type" and uncheck it.

This just disables the Large Type action, which can be pretty useful (I use it all the time to make it easier to show text to bystanders) -- I recommend we find a better solution.

Unfortunately, I'm unable to reproduce the issue. Can you please try these steps?

  1. Quit Quicksilver
  2. Download Quicksilver-debug.zip from https://github.com/quicksilver/Quicksilver/releases/tag/v2.4.1
  3. Temporarily hide all settings and plugins for testing: mv ~/Library/Application\ Support/Quicksilver{,.bak}
    • If not comfortable using the terminal, you can navigate in Finder to ~/Library/Application Support/ and manually rename Quicksilver to something like Quicksilver.bak
  4. Delete ~/Library/Caches/Quicksilver
  5. Open Quicksilver-debug.zip
    1. Unzip the file
    2. Right click (or ctrl click) Quicksilver.app and click Open (double clicking won't work)
    3. It will give you a warning the first time and refuse to open. Do the same thing a second time and it should work.
  6. Type Preview
  7. Mine defaults to Open. If I type tabl it then goes to Large Type
  8. When done testing, quit Quicksilver-debug and don't forget to mv ~/Library/Application\ Support/Quicksilver{.bak,} (or otherwise reverse the renaming from above)
asmeurer commented 10 months ago

I can reproduce the problem in the debug build.

n8henrie commented 10 months ago

Of course -- the debug build is essentially unchanged from the version used to open the issue. The question is whether the issue persists after quitting QS, deleting ~/Library/Caches/Quicksilver, and "hiding" ~/Library/Application Support/Quicksilver

Thanks for getting back to me quickly -- can you confirm that you also took the other steps?

corporate-gadfly commented 10 months ago

@n8henrie : I hear you. I use Large Type all the time, but the hit of not being able to open every single time was just too much. Hence the work around of disabling it.

I must admit, I'm guilty of not following your debug procedure, but, IMO, all your instructions prove is that this scenario doesn't happen with a clean install of 2.4.1. A few of us, who have existing 2.4.0, under certain conditions (or all?), when we ugpraded to 2.4.1, the bug happened automatically without doing anything else.

asmeurer commented 10 months ago

I did delete the caches, but I didn't see the bit about hiding the application support folder. Let me try again.

asmeurer commented 10 months ago

OK, I don't see the issue when I hide Application Support/Quicksilver.

n8henrie commented 10 months ago

So it sounds like the issue possibly has to do with your local configuration or action ranking, possibly something in ~/Library/Application Support/Quicksilver/Actions.plist?

Can you try restoring your usual app support file but temporarily renaming just that file? (Should probably delete the cache before each trial run regardless).

asmeurer commented 10 months ago

Renaming Actions.plist makes the issue go away. Would it help if I uploaded my Actions.plist?

corporate-gadfly commented 10 months ago

Renaming Actions.plist makes the issue go away. Would it help if I uploaded my Actions.plist?

I can confirm the same.

The original file (that I backed up) and the one that automatically got created at next run are radically different. Here's the line count:

wc -l Actions-2023-09-13.plist Actions.plist
 1720 Actions-2023-09-13.plist
 1114 Actions.plist
n8henrie commented 10 months ago

I'm not sure that uploading your actions plist is necessary, thanks for the offer, I'll let you know if that changes.

I think the issue is that applications are now seen as eligible targets for string actions; for example, one can select Safari.app and then run Large Type and see /System/Volumes/Preboot/Cryptexes/App/System/Applications/Safari.app in large text, just like one can enter Hello there! or any other string and show that in large type.

The issue is that -- for whatever reason -- Large Type has become the default action on your system.

corporate-gadfly commented 10 months ago

IIRC, for Large Type to become automatically eligible for the action, the text had to have a .. If it didn't, then you could still make it the action by tabbing over. Do I recall correctly?

Following that train of thought, is / the new .?

asmeurer commented 10 months ago

"Large type" is rank 24 in the settings. Presumably something is overriding that ranking.

asmeurer commented 10 months ago

Oh I just noticed that "open/reveal" is rank 25. I had thought that the rank 1 "run/open" was the open action. If I move that above "large type" it also fixes the issue.

corporate-gadfly commented 10 months ago

Naive question. What would I lose by removing the original Actions.plist? Actions that were built up over the years by installing other software?

n8henrie commented 10 months ago

I think you'd lose your history (for example a specific catalog item that you always want to run a specific action for).

n8henrie commented 9 months ago

@corporate-gadfly

all your instructions prove is that this scenario doesn't happen with a clean install of 2.4.1. A few of us, who have existing 2.4.0, under certain conditions (or all?), when we ugpraded to 2.4.1, the bug happened automatically without doing anything else.

To be fair, I am not seeing this behavior on my pre-existing QS install (updated from 2.4.0 -> 2.4.1 through the in-app updater), nor on a clean install, so I'm trying to figure out how to reproduce the issue. I am concerned that many people are running into it, so I'm trying to sort out what changes are causing this behavior.

I've added a few new tests that seem to show the default actions are correct.

What I'm speculating may be happening here (and in https://github.com/quicksilver/Quicksilver/issues/2963) is that QS's "smarts" is now detecting that objects like applications can also be interpreted as strings, and is trying to guess the best default action based on a number of inputs, such as:

For example to show the full path to Calendar.app in large type, one can invoke QS ⇥calendartablarge type`, and that is a valid thing to do, and it could even be the right default action for QS to prioritize in a weird world where a user wanted to do that frequently.

I agree that it doesn't make sense as the default, but the tests above show that it isn't the default -- something about several users' histories is prompting QS to prioritize it.

aberkvam commented 9 months ago

Just a wild guess, but this commit removes ".app" from applications. Maybe that affects another test down the road?

https://github.com/quicksilver/Quicksilver/commit/260eee39000984b5f93ed15c0781ab7cba98204e

n8henrie commented 9 months ago

Thanks for the thought! That commit sets the label, which I think was previously empty / unset for applications (and why the test was previously failing).

n8henrie commented 9 months ago

@corporate-gadfly -- would you be willing to share your actions.plist? I'd like to compare with my own. I don't think there would usually be anything too private in actions.plist, but it's a little long to be sure with a glance through, so I hesitate to ask that you post it openly in the thread (though that's certainly an option). Alternatively you could email it to me; you can find my personal email at https://n8henrie.com/contact/ .

corporate-gadfly commented 9 months ago

oh sorry @n8henrie for the delay.

I'm afraid that won't be possible. I deleted the file a couple of weeks ago (sorry about that) and haven't missed it one single bit.

aberkvam commented 9 months ago

I believe I'm having the same issue (although Quicksilver keeps trying to "Calculate" apps for me, not "Large Text"). I haven't done any workarounds yet so I'm still experiencing the issue. Here's my Actions.plist file:

actions.plist ``` actionActivation AppActivateAction AppHideAction AppHideOthersAction AppOpenFileAction AppQuitAction AppQuitOthersAction AppRelaunchAction AppShowHideAction AppleScriptOpenFilesAction AppleScriptProcessTextAction AppleScriptRunAction AppleScriptRunTextAction CalculatorCalculateFormulaAction DiskEjectAction FileAlwaysOpenTypeWithAction FileCopyToAction FileDeleteAction FileGetHFSPathAction FileGetInfoAction FileGetPathAction FileGetPosixPathAction FileGetURLAction FileMakeAliasInAction FileMakeHardLinkInAction FileMakeLinkInAction FileMoveToAction FileOpenAction FileOpenWithAction FileRenameAction FileRevealAction FileToTrashAction PasteboardCopyAction PasteboardPasteAction PasteboardPasteActionAsPlainText QSABContactAddDataAction QSABContactEditAction QSABContactShowAction QSCatalogAddEntryAction QSCatalogEntryRescanAction QSCatalogEntryShowAction QSCommandAddTriggerAction QSCommandExecuteAction QSCommandExecuteAfterDelayAction QSCommandExecuteAtTimeAction QSCommandSaveAction QSComposeEmailItemAction QSComposeEmailItemReverseAction QSCreateFileAction QSCreateFileTemplate QSDirectEmailItemAction QSDirectEmailItemReverseAction QSEmailAction QSEmailItemAction QSEmailItemReverseAction QSLargeTypeAction QSLoginItemAddAction QSLoginItemRemoveAction QSNewFolderAction QSObjCSendMessageAction QSObjectAssignMnemonic QSObjectExplodeCombinedAction QSObjectLogConsoleAction QSObjectSearchChildrenAction QSObjectSelectAction QSObjectShowActionMenu QSObjectShowChildMenu QSObjectShowChildrenAction QSObjectShowMenu QSObjectShowSourceAction QSSafariAddToReadingListAction QSTextShowDialogAction QSTextSpeakAction QSTextTypeAction QSiTunesAddToPlaylistAction QSiTunesDislikeAction QSiTunesDownloadAction QSiTunesGetLyrics QSiTunesLoveAction QSiTunesOpenBookletAction QSiTunesPlayItemAction QSiTunesRevealItem QSiTunesSelectAirPlayDevices QSiTunesSelectEQPreset QSiTunesToggleEnabled QSiTunesToggleShuffle URLEmailAction URLJSAction URLOpenAction URLOpenActionInBackground URLOpenWithAction actionIndirects actionMenuActivation AppActivateAction AppHideAction AppHideOthersAction AppOpenFileAction AppQuitAction AppQuitOthersAction AppRelaunchAction AppShowHideAction AppleScriptOpenFilesAction AppleScriptProcessTextAction AppleScriptRunAction AppleScriptRunTextAction CalculatorCalculateFormulaAction DiskEjectAction FileAlwaysOpenTypeWithAction FileCopyToAction FileDeleteAction FileGetHFSPathAction FileGetInfoAction FileGetPathAction FileGetPosixPathAction FileGetURLAction FileMakeAliasInAction FileMakeHardLinkInAction FileMakeLinkInAction FileMoveToAction FileOpenAction FileOpenWithAction FileRenameAction FileRevealAction FileToTrashAction PasteboardCopyAction PasteboardPasteAction PasteboardPasteActionAsPlainText QSABContactAddDataAction QSABContactEditAction QSABContactShowAction QSCatalogAddEntryAction QSCatalogEntryRescanAction QSCatalogEntryShowAction QSCommandAddTriggerAction QSCommandExecuteAction QSCommandExecuteAfterDelayAction QSCommandExecuteAtTimeAction QSCommandSaveAction QSComposeEmailItemAction QSComposeEmailItemReverseAction QSCreateFileAction QSCreateFileTemplate QSDirectEmailItemAction QSDirectEmailItemReverseAction QSEmailAction QSEmailItemAction QSEmailItemReverseAction QSLargeTypeAction QSLoginItemAddAction QSLoginItemRemoveAction QSNewFolderAction QSObjCSendMessageAction QSObjectAssignMnemonic QSObjectExplodeCombinedAction QSObjectLogConsoleAction QSObjectSearchChildrenAction QSObjectSelectAction QSObjectShowActionMenu QSObjectShowChildMenu QSObjectShowChildrenAction QSObjectShowMenu QSObjectShowSourceAction QSSafariAddToReadingListAction QSTextShowDialogAction QSTextSpeakAction QSTextTypeAction QSiTunesAddToPlaylistAction QSiTunesDislikeAction QSiTunesDownloadAction QSiTunesGetLyrics QSiTunesLoveAction QSiTunesOpenBookletAction QSiTunesPlayItemAction QSiTunesRevealItem QSiTunesSelectAirPlayDevices QSiTunesSelectEQPreset QSiTunesToggleEnabled QSiTunesToggleShuffle URLEmailAction URLJSAction URLOpenAction URLOpenActionInBackground URLOpenWithAction actionNames actionPrecedence AppActivateAction 0.0 AppHideAction 0.0 AppHideOthersAction 0.0 AppOpenFileAction 0.0 AppQuitAction 0.0 AppQuitOthersAction 0.0 AppRelaunchAction 0.0 AppShowHideAction 0.0 AppleScriptOpenFilesAction 4 AppleScriptProcessTextAction 4 AppleScriptRunAction 4 AppleScriptRunTextAction 0.0 CalculatorCalculateFormulaAction 5 DiskEjectAction 0.0 FileAlwaysOpenTypeWithAction 0.10000000000000001 FileCopyToAction 0.0 FileDeleteAction 0.0 FileGetHFSPathAction -0.5 FileGetInfoAction 0.0 FileGetPathAction -0.5 FileGetPosixPathAction -0.5 FileGetURLAction -0.5 FileMakeAliasInAction -0.5 FileMakeHardLinkInAction -0.5 FileMakeLinkInAction -0.5 FileMoveToAction 0.0 FileOpenAction 1 FileOpenWithAction 0.10000000000000001 FileRenameAction 0.0 FileRevealAction 0.10000000149011611 FileToTrashAction 0.0 PasteboardCopyAction -0.5 PasteboardPasteAction -0.5 PasteboardPasteActionAsPlainText -0.5 QSABContactAddDataAction 0.0 QSABContactEditAction 0.0 QSABContactShowAction 3 QSCatalogAddEntryAction -0.050000000000000003 QSCatalogEntryRescanAction 2 QSCatalogEntryShowAction 3 QSCommandAddTriggerAction 0.0 QSCommandExecuteAction 3 QSCommandExecuteAfterDelayAction 2 QSCommandExecuteAtTimeAction 2 QSCommandSaveAction 2 QSComposeEmailItemAction 0.0 QSComposeEmailItemReverseAction 0.0 QSCreateFileAction 0.0 QSCreateFileTemplate 0.0 QSDirectEmailItemAction 0.0 QSDirectEmailItemReverseAction 0.0 QSEmailAction 0.0 QSEmailItemAction 0.0 QSEmailItemReverseAction 0.0 QSLargeTypeAction 1 QSLoginItemAddAction 0.0 QSLoginItemRemoveAction 0.0 QSNewFolderAction 0.0 QSObjCSendMessageAction 5 QSObjectAssignMnemonic -0.20000000000000001 QSObjectExplodeCombinedAction 0.0 QSObjectLogConsoleAction 0.0 QSObjectSearchChildrenAction 0.0 QSObjectSelectAction 0.0 QSObjectShowActionMenu 0.0 QSObjectShowChildMenu 0.0 QSObjectShowChildrenAction 0.0 QSObjectShowMenu 0.0 QSObjectShowSourceAction 0.0 QSSafariAddToReadingListAction 0.0 QSTextShowDialogAction 0.0 QSTextSpeakAction 0.0 QSTextTypeAction 0.0 QSiTunesAddToPlaylistAction 1 QSiTunesDislikeAction 0.0 QSiTunesDownloadAction 0.0 QSiTunesGetLyrics 0.0 QSiTunesLoveAction 0.0 QSiTunesOpenBookletAction 0.0 QSiTunesPlayItemAction 3 QSiTunesRevealItem 1 QSiTunesSelectAirPlayDevices 1 QSiTunesSelectEQPreset 2 QSiTunesToggleEnabled 0.0 QSiTunesToggleShuffle 0.0 URLEmailAction 0.0 URLJSAction 0.0 URLOpenAction 3 URLOpenActionInBackground 1 URLOpenWithAction 0.0 actionRanking QSObjCSendMessageAction CalculatorCalculateFormulaAction AppleScriptProcessTextAction AppleScriptOpenFilesAction AppleScriptRunAction URLOpenAction QSCatalogEntryShowAction QSCommandExecuteAction QSiTunesPlayItemAction QSABContactShowAction QSCommandExecuteAfterDelayAction QSCommandExecuteAtTimeAction QSCommandSaveAction QSCatalogEntryRescanAction QSiTunesSelectEQPreset QSLargeTypeAction FileOpenAction URLOpenActionInBackground QSiTunesRevealItem QSiTunesAddToPlaylistAction QSiTunesSelectAirPlayDevices FileRevealAction FileAlwaysOpenTypeWithAction FileOpenWithAction FileToTrashAction QSCommandAddTriggerAction AppActivateAction FileGetInfoAction QSCreateFileAction QSObjectShowChildrenAction QSTextShowDialogAction URLOpenWithAction FileMoveToAction AppShowHideAction QSObjectShowChildMenu FileRenameAction QSCreateFileTemplate URLJSAction QSObjectSearchChildrenAction AppOpenFileAction AppHideOthersAction QSLoginItemRemoveAction QSObjectShowMenu QSObjectShowSourceAction QSNewFolderAction URLEmailAction QSTextSpeakAction FileCopyToAction DiskEjectAction QSObjectShowActionMenu QSLoginItemAddAction AppQuitAction FileDeleteAction QSTextTypeAction AppleScriptRunTextAction AppHideAction AppQuitOthersAction AppRelaunchAction QSObjectSelectAction QSiTunesOpenBookletAction QSiTunesToggleEnabled QSiTunesToggleShuffle QSiTunesGetLyrics QSSafariAddToReadingListAction QSABContactEditAction QSABContactAddDataAction QSEmailItemAction QSComposeEmailItemAction QSDirectEmailItemReverseAction QSEmailAction QSEmailItemReverseAction QSDirectEmailItemAction QSComposeEmailItemReverseAction QSObjectExplodeCombinedAction QSiTunesDownloadAction QSiTunesDislikeAction QSiTunesLoveAction QSObjectLogConsoleAction QSCatalogAddEntryAction QSObjectAssignMnemonic PasteboardPasteActionAsPlainText PasteboardCopyAction FileMakeLinkInAction FileMakeAliasInAction FileGetURLAction FileGetHFSPathAction PasteboardPasteAction FileGetPathAction FileGetPosixPathAction FileMakeHardLinkInAction ```
n8henrie commented 9 months ago

Thanks @aberkvam, I'll take a closer look soon!

@corporate-gadfly @torley-gallium Would you please try running the debug version from here and see whether or not the unwanted behavior changes?

torley-gallium commented 6 months ago

@n8henrie Sorry for the delay, just saw this. I appreciate all your care and investigation. Is there a new debug version to try? 2.4.2 still repros the issue for me (haven't deleted anything else).

n8henrie commented 4 months ago

@aberkvam @torley-gallium can you please try this and report back: https://github.com/quicksilver/Quicksilver/issues/2963#issuecomment-1912822642

torley-gallium commented 4 months ago

@n8henrie Thanks for checking in, so far so good with 2.4.2 . I don't see the enlarged text.