FinderPop Help

download FinderPop Help

of 23

description

FinderPop

Transcript of FinderPop Help

  • The Book of Words (2.4)

    FinderPop is a Universal Preference pane that extends OS X's contextual menus using a FinderPop Itemsfolder much as the Apple Menu Items folder used to do for the Apple menu. It has other features too:

    Control-free popup in the Finder - handy for those with one-button mice.a launcher that takes up zero screen real estate, merely a click on any blank area of menubar away,a handy filesystem browser, allowing quick and easy access to files and disks in the Finder,a Processes menu (Command-click a blank menubar area.)fast access to 'Where's that dratted file I had on the Desktop?' (Shift-Click a blank menubar area.)a comprehensive collection of vaguely beer-related aphorisms in the Aboutbox (and now also here.)

    Also check out the online FinderPop Support Forum.

    Mini Table Of Contents:FinderPop Basics ; Invoking FinderPop ; Navigating FinderPop Menus ; FinderPop's InfoWindow ; Hints & Tips ; FAQ me! ; Release Notes ;

    The BasicsINSTALLATION If the System Preferences application is running, quit it. Strange things can happen otherwise.Double-click the FinderPop.prefpane icon. System Preferences will open and ask if you want to installFinderPop for all users or just you. Choose, and MacOS X will install the Preference Pane.If you have an Intel Mac or you're running 10.5 or later, FinderPop will ask you for the admin password inorder to set certain permissions on some FinderPop files. This is only done once at installation time.

    USAGE Open the FinderPop preference pane. Click on the Show FinderPop Items Folder button in the Items sub-panel. Add aliases to your favourite applications, folders, documents, and whatnots to that folder. Now, everytime you control-click, you'll get a few more options... To the right is my FinderPopItems folder and thecorresponding FinderPop menu.Simply put, FinderPop will try toopen whatever it is you selectfrom any of its menus. If there isa Finder selection and you'vechosen an application from the

  • FinderPop menu, FP will ask theapp you chose from the menu toopen the Finder selection. Forexample: you want the ability toStuff the Finder Selection? Addan alias to "DropStuff" to the"FinderPop Items Folder", selectyour files in the Finder, Control-click on the last file in yourselection, choose "DropStuff"from the resulting FinderPopsubmenu, and Bob's yourmother's brother.Items generally appear inFinderPop Menus in alphabeticalorder. You can control thisordering process by inserting anordering prefix before the item'sname in the Finder. This orderingprefix consists of three charactersat the start of an item's name,where the third character is aright parenthesis ')' and neitherof the first two characters is a leftparenthesis. This prefix text willnot appear in the menu.Note that you can choose amongvarious standard orderings in the"Sort Items in FP Menus" popupin the Appearance tab: forexample, order by modificationdate, order alphabetically, or anordering where applicationsappear first, then folders, thenother documents (with alphabeticordering in each of those sub-groups.) Note also that thissetting overrides any sort orderyou may have specified with theordering prefixes mentionedabove. Sort order can also be specifiedon a per-directory basis by meansof a .fp-info file in thatdirectory. See below for details.

    Any item inside the FinderPopItems Folder whose name ends in'-***' (that's minus-star-star-star)

  • is considered to be a menudividing line, following theconvention set by James Walker'sOtherMenu. This also happensfor items ending in '----' (minus-minus-minus-minus.)

    Extending the OtherMenu convention somewhat, any folder -- or alias to one -- whose name ends in '---X' (minus-pling-pling-capital-ecks) will not be expanded (i.e., there will be no submenu hanging off it.) The name displayed in the menu will not have the '---X'suffix, so the FinderPop menu is aesthetically pleasing (even if, like so much else, the underlying organisation isn't.) If the folder'sname ends in '---x' (minus-pling-pling-lowercase-ecks) then, in addition to not being expanded, no folder icon will appear. Back in thedays when I was receptive to all sorts of mad ideas for FinderPop, I put that no-icon thing in for someone who claimed that FinderPopwas "fundamentally flawed" without it.

    Any item ending in '---a' will have a submenu with all the apps under the Applications folder (ie, includingthose in the Utilties folder.) Note that the menu item takes its name from this item - so if your item is 'EveryApp---a', then the menu item will be Every App and will have the special 'all-apps' submenu hanging off it.The item itself can be a file, folder, or alias; if its name ends in '---a', FinderPop always displays this specialall-apps menu, ignoring any contents if the item was a folder.Any item ending in '---d' will have a Desktop submenu just like the Desktop submenu you get if you checkthe Add Desktop Submenu in the FinderPop prefPane. Doing it like this means you can place your Desktopsubmenu where-ever you want in the FinderPop hierarchy rather than at a fixed location using the checkbox.Similarly, any item ending in '---p' will have a Processes submenu hanging off it. For example, having anitem named 'Running---p' will result in a menu item named Running whose submenu lists the currentlyrunning apps. As usual with the FinderPop Process menu, if you hold down Control when mousing into themenu, it will include background-only processes.Any item ending in '---n' will have a submenu listing all installed Preference Panes hanging off it. Forexample, having an item named 'Prefs---n' will result in a FinderPop menu item named Prefs whosesubmenu lists all installed preference panes.Any item ending in '---R' will have a submenu listing the Finder's Recent Items hanging off it. For example,having an item named 'Finder Recent---R' will result in a FinderPop menu item named Finder Recentwhose submenu lists the accessible items in the Finder's Go menu's Recent submenu.Folders whose names end in '---C' are treated specially. They are Template or Copy folders. They willappear in FinderPop menus only in the Finder and only if you control-clicked on a blank area of a Finderwindow or the Desktop (ie, when there is nothing selected.) If you then select an item from the menu of this"Copy" folder, the selected item will be COPIED to the window you control-clicked. This allows you to setup a system of templates files or indeed folders which can be quickly placed where you want.

    Items ending in 'crtr-!!!': if you know the 4-character creator code of an app, it is possible to customise theFinderPop menu so certain items appear if you're popping up a contextual menu or clicking-in-unused-menubar in that app or not. For example, the 4-character code for the Finder is 'fndr', and the 4-char code forGraphicConverter is 'GKON'. Items whose names end in ''GKON-!!!' will appear in FinderPop menus only ifGraphicConverter is the current app. Similarly, items ending in '!GKON-!!!' (note the extra initial !) willappear in FinderPop only if GraphicConverter is not the current app. You can tell the 4-char code of an app using FinderPop by highlighting the app in a FinderPop menu andpressing Command and Option - the info is in the line labelled 'Type/Crtr' - the type for apps is normally'APPL' and the unique, per-application 4-character creator code is the next item.

  • There's a downside to this - not all apps come with a 4-character creator code. Maybe in a future version wecan use 'com.apple.Console' for example. OK, we lied. The real creator code for the Finder is 'MACS' but that creator code is used for other System Software items too, so for theFinder, FinderPop uses 'fndr'.

    This app-specific feature can be combined with the new '---i' "inline-this-folder" feature. For example: Afolder called 'InlineTest ttxt-!!!---i' would have its contents inlined into the FinderPop menu only ifTextEdit was the frontmost app. If TextEdit is not the frontmost app, the folder contributes no items to theFinderPop menu. (As you've probably figured out, the 4-character creator code of TextEdit it 'ttxt'.)Items ending in '---f' will appear in FinderPop menus only if there is an item selected in the Finder. Itemsending in '---m' appear only if you're clicking an unused part of the menubar. For example, you could placean alias to FinderPop Items inside the FinderPop Items folder itself, and name it 'FinderPop Items ---f' -this means the item would appear only if you control-clicked a file/folder in the Finder, allowing you tomove/copy/alias the item directly into the FinderPop Items folder.The opposite of the above - an item whose name ends in '---N' will appear in FinderPop menus only whenyou control-click a blank portion of a Finder window or the Desktop, ie, there being no Finder selection. (The'N' standing for "No Selection" -- and note that it must be a Capital 'N'.)Items ending in '---t' will appear in FinderPop menus only if there was a textual contextual menu selectionpassed to FinderPop. Generally this happens only with Carbon apps such as Microsoft Word. See theFinderPopExtras folder for some examples of what FinderPop can do with this.Note that the FinderPop '---_' item modifiers are cumulative. For example, a folder named 'InlinedInMbar---i---m' inside your FinderPop Items folder will have its contents inlined into the FinderPop menu only ifyou control-clicked in the menubar. Any other method of invoking FinderPop will result in the folder'scontents being skipped. Likewise, a folder named 'InlinedWithFinderSel---f---i' will have its contents inlined into theFinderPop menu only if there was a Finder selection parameter to the _ContextualMenuSelect system call.

    We freely admit that that the user interface for this really is fundamentally flawed, but until we have the timeto improve this, I'm afraid we're stuck with it. Hey, you only have to do it once!The FinderPop Preference pane's options should be fairly self-explanatory. :-) Help tags are available on mostitems (just hover the mouse over the item to see the help text.)

    Invoking FinderPop

    Control-click or right-click somewhere - this brings up a ContextualMenu as per normal; FinderPop attaches itself onto this menu by addingthe contents of the FinderPop Items folder, and optionally adding theProcesses and Desktop submenus. You can choose whether the contents ofthe FinderPop Items folder are inlined directly into the contextual menu, orwhether they appear in a FinderPop submenu. If you have the Caps Lock keypressed when the main FinderPop menu pops up, the state of "Inline FinderPop Items intoMain Contextual Menu" is toggled. Remember to turn the Caps Lock key back off! If you have enabled Finder Control-free Popup Delay (Options panel), youcan click and hold in a Finder Window or the desktop and a contextualmenu will pop up on whatever it is you clicked on. You can also arrange to

  • have FinderPop pop up a Contents menu if you click-and-hold on a Folder.Command-clicking-and-holding on the whitespace inside a Finder windowwill also pop up a Contents menu, as of course will Command-Control-clicking on either the whitespace or a folder.Clicking an unused portion of the menubar will pop up a FinderPop menu (i.e., the contents of theFinderPop Items folder plus optional extras.) (You can also set that this only happens for a control-click (or right-click) in the menubar.)

    Command-clicking the menubar will get you a Processes Menu. Holding down the Control key too will include the normally invisiblebackground processes. From here you can switch to any process, or quitthem by pressing Control-Option-Command (the cursor will change to ), and clicking on the victim process in the menu. If the app doesn't respond to the 'Quit' AppleEvent, you can really kill itby holding down the Shift key in addition to Control-Option-Command(though be warned - this blows the process away without saving openedfiles, etc.)Running apps that are hidden (via Command-H) appear in FinderPop'sProcesses menu with their icons dimmed. Note that the other FinderPopmenu items (Desktop submenu etc.) are still available.

    Shift-clicking the menubar will get you a Desktop Menu listing themounted volumes (disks) plus the contents of the Desktop Folder. (If theControl key is pressed, only the disks will be shown. I'm sparing you the150+ items on my desktop here - and if you think that's bad, you shouldsee my real desk! I am a firm believer in the First Available Surface filingsystem.

    Navigating the FinderPop MenusAs usual with menus in OS X, typing a character will select the first menu item beginning with the charactertyped, which can save quite a bit of mousing. Be aware that the OS X Menu Manager appears to do some very time-consuming processing if you are in adeep hierarchy and press any non-modifier key. It is not unusual to get a beachball for a few seconds, butdon't worry, the menu manager will eventually come back to life. It appears to be scanning all menu items foritems beginning with the character you pressed. For this reason, the use of Cmd-Option-Shift modifier keysis preferred when invoking the various FinderPop features described below. Note: this bug appears to havebeen fixed in Leopard!

    Additionally, by pressing various modifier keys (Control, Command, Option and Shift) while traversingFinderPop menus, you can modify FinderPop's actions. The list below outlines the facilities available if thereis no Finder selection while you're traversing any FinderPop-related submenu. You should notice the mousepointer changing as indicated.

    Command (or 'r') -- Reveal In Finder or Show -- cursor looks like :

  • Shows the chosen menu item (process or FinderPop item) in the Finder. If you press 'r' (as opposed topressing Command), the action is immediate - the Finder displays the item. If you're pressingCommand, then you select the item from FinderPop's menus as normal - once you've chosen the item,the Finder will display it. With regard to the first sentence in this section, if you want to select a menu item beginning with 'r', type Shift-'R', i.e., capital-'R'.

    Command-Option (or 'i') -- Get Info -- Displays an info-help-tag window for the currentlyselected item in the FinderPop menu. If you press ithen this has immediate effect - the menu disappearsand the Finder displays the Get Info panelcorresponding to the currently highlighted item. Ifyou're pressing Cmd-Option and you want to see theFinder Get Info panel, you have to click to choose anitem. Before you click, though, FinderPop displays thehelp tag window for the currently highlighted item -and you can move the mouse to other items; the helptag window will update as appropriate.Different text appears depending on whether the mouseis currently over a plain file, a directory, an app, arunning process, or a disk (volume.) This can be quitehandy to see the creator and type of an unknown item:just Command-Control-click a blank spot in the Finderwindow in which the item lives, and from the ensuingFinderPop Contents popup menu, press Commandand Option and mouse down to your item. Other info,such as file sizes and permissions, also appears there.Command-Shift-Option (or 'p') -- Preview -- Displays a preview-help-tag window for the currently selected FinderPop menu like the two examplesbelow.

    This behaves like the Get Info cursor above. Note that it can take a while for a graphical preview toappear if the file is big or on a slow disk!

  • Graphical previews are done for any QuickTime-supported multimedia (JPEGs, PDFs, MOVs etc); textfiles are also previewed. MP3 files are scanned for embedded JPEGs. You can thank a sudden strike by theIberia ground crew in Barcelona airport for that one. (It meant my weekend in Amsterdam got canceled so I spent the timeworking on this instead.) Shower-o-shaggers...

    Control-Command-Option (or delete) -- Trash -- Displays a dialig asking if you'd ike to move the chosen FinderPop menu item to the trash (or "putaway" a disk if a disk is selected.) If you press Delete then this has immediate effect - the menudisappears and the 'Do you want to move this item to the trash' dialog appears immediately. If you'repressing Ctrl-Cmd-Option, you have to select the item by pressing the mouse button before the 'Moveto Trash?' dialog appears. Note that if the item you chose to trash is an alias, only the alias will be moved to the trash.Command-Control-Option (or delete) -- Quit or Kill-- When you're mousing over FinderPop's Processes menu, you can quit a process by choosing it afterpressing delete so the cursor goes into kill mode. You can also quit background-only apps. (To seebackground-only apps, have the Control key pressed when you move the mouse onto the Processesmenu title, or press Control and Command while clicking a blank portion of the menubar.) Note thatrunning apps that are hidden via (Command-H) appear in FinderPop's Processes menu with their iconsdimmed. If the Shift key is not pressed, then FinderPop will send a 'quit' AppleEvent to the process, giving it a

  • chance to quit in an orderly fashion by asking you if you want to save any modified documents, forexample. If Shift is down, FinderPop will kill the process via _KillProcess, which basically blows theprocess away. Any unsaved work in that process will be lost, so caveat user!g -- grab-and-drag the FinderPop item under the cursor, just like the old OS 9 FinderPop. The Grabcursor looks like .This has immediate effect - the instant you press 'g', the menu disappears and the item is available fordragging.q -- on Leopard, display a QuickLook panel of the selected FinderPop item. Similarly, this hasimmediate effect - the instant you press 'q', the FinderPop menu disappears and the item is quicklook-ed.

    TAB -- Info Window -- (10.4 and later only!) Pops up a floating info window onwhatever you select from theFinderPop menu, looking like thisimage.

    It displays a little preview ofwhatever it was you'd selected; plussome basic info on thefile/folder/volume. If the item is apicture or an MP3 file, various usefulbits of info are also presented, as inthe example. If the item is a file, thepreview sub-panel will display thefirst few lines of the file (if it's a textfile), or optionally a hex dump of thefirst hundred or so bytes in the file ifyou option-double-click the Previewarea. If the item is a folder, a reallysmall representation of its contentswill appear there. (You can't yetselect items in that mini-contents-representation.) From this info-window, you can:

    Click on the Trash icon or press Delete to move the item to the trash. You will not be asked toconfirm, so be careful!Click the magnifying glass icon or pressing R will reveal the item in the Finder.Click on the Info icon or pressing I will ask the Finder to display information about the item.(Holding down Shift while clicking or typing will reveal the item in the Finder and get info on it.)

    Press Escape or click the Dismiss button to dismiss the info window.Press Return or Enter to open the item (double-clicking the preview also does this.)Click the item's icon or preview area to open it. Command-clicking it will reveal it in the Finder.

  • Option-double-clicking the preview area toggles a hex dump of the first 0x68 bytes of the file'sdata fork (if the item is a file.)You can also control-click the icon to bring up a new contextual menu for the item. (Click-and-hold for control-free popup works too.)Drag-and-drop of the icon works. As usual with drags on the Mac, dragging to the menubar andletting go aborts a drag, you can Command-Tab to the Finder or another app while dragging. Ifyou're dragging to the Finder and want to Copy or Alias the item instead of moving it, use theOption key modifier to get the Finder to Copy, and the Command-Option modifiers to get theFinder to Alias.Double-clicking the pathname string will copy the path string to the clipboard and dismiss thedialog.You can move the FinderPop Info Window by its titlebar or by dragging from any non-buttonitem.Command-clicking the filename or pathname texts will pop up a Contents menu of the item'sparent folder.

    This may eventually evolve into a shelf thingy, but at my rate of development... well, don't hold yourbreath...

    Sorry about the crappy icons, they're the best I could find/cobble together on short notice. Hey... anygraphic artists reading this who'd like their names to appear in the FinderPop AboutBox? Submissionsgratefully received! I'll add more features to this dialog if requested - suggestions welcome.

    If there is a Finder selection, FinderPop automatically changes the cursor if it's over a menu itemrepresenting a folder while traversing a FinderPop related menu. The cursor will change to a to signify thatthe Finder selection will be copied to whatever directory you select. Note that if you do select a folder in thiscase, FinderPop will always ask for confirmation:

    (Generally, pressing the initial letter of a button has the same effect as pressing the button, thus pressing the m key corresponds to aclick on the Move button.) Press 'f' to choose a different destination folder.

    If you are copying or moving an item to a folder in which there is already an item with the same name,FinderPop will ask for confirmation of overwriting. If you choose not to overwrite, the entire copy/move isnot done: i.e., nothing is copied or moved.

  • The cursor will revert to the normal arrow cursor if copying would be impossible (for example, if thedestination disk is write-protected, or if you were attempting to move a folder into one of its offspring.) If youmanually force another cursor by pressing Command/Option/Shift/Control etc., then of course that forcedcursor takes precedence.

    All these modifier key chords are good piano practice, if nothing else.

    Hints & Tips (or: "You know much that is hidden, O Tim.")

    Command-Control-clicking in a Finder window (or the Desktop) will popup a Contents menu (i.e., the contents of the folder corresponding to thewindow.) This can be very handy because it's sometimes easier to find aparticular item in a sorted FinderPop menu than in a Finder window! Ifyou command-control-click (or command-click-and-hold) a Finder iconcorresponding to a folder, you'll also get a Contents popup menu. (There'sa checkbox in the FinderPop PrefPane's Options tab which allows you tochoose whether you want a plain Click-and-hold on a folder to popup aContents menu or a contextual menu.)

    If you have the Shift key pressed when you're logging in (i.e., when your Startup Items are running),FinderPop will not install. Just like OS9 :-)

    If you have Control and CAPS LOCK pressed simultaneously when an app starts up, FinderPop won'tpatch that app (so menubar-clicking etc will be unavailable.)

    When switching processes by selecting something from the Processes menu, holding down theOption key will bring only that process's frontmost window forward.

    In the Move/Copy/Alias dialog, holding down the Command key when clicking any of the buttons (ortyping any of the shortcut characters) will perform the button's action and then reveal the Finder windowcorresponding to the destination.

    In the absence of a PrefPane element for this, you can choose your own background colour for theFinderPop Info window by doing this in Terminal.app: defaults write com.finderpop.finderpop infoBackground -data RRGGBBAA

    where RR, GG, BB and AA are hex byte values representing the red, green, blue and alpha componentsof the info window's background colour. For example, defaults write com.finderpop.finderpop infoBackground -data 556677FA

    gives RGB = {0x5555, 0x6666, 0x7777} and an alpha of 0xFA / 0xFF == 0.980.

    If FinderPop's Use Finder Label Colors is enabled on 10.6/7/8, we now treat unlabelled items in FPmenus in the Finder as if they had an invisible label, so the FinderPop menu item texts all start at the

  • same horizontal offset. If you prefer the old way of showing labels, use defaults write com.finderpop.finderpop cocoaLabelSpaces false

    I will eventually get around to revamping the way FinderPop does menu labels in Cocoa, it's definitelya bodge at the moment.

    Exactly the same format can be used to colour the background of the "info-help-tag" and "preview-help-tag" windows shown by FinderPop. This prefs variable is called helpTagBackground. A prefsvariable called helpTagForeground allows you to set the foreground colour (the alpha portion isignored.) Additionally, you can control the size of the icon displayed in FinderPop's "info-help-tag" by defaults write com.finderpop.finderpop helpTagIconSize -integer 128

    The example would cause FinderPop to use 128-pixel icons in its "info-help-tag" windows the nexttime an app is patched (these values are loaded once per app.) Setting the helpTagIconSize to 0instructs FinderPop to not display icons in help tags.

    If you have a multibutton mouse, it is possible to get FinderPop to popup a Contents menu byclicking on a Finder folder with multiple buttons pressed simultaneously. Control-free-popup will needto be enabled too. defaults write com.finderpop.finderpop multiClickMaskForContents -integer 3

    ...would popup a contents menu if you clicked on a folder with both the left and right mouse buttonsdown. (This won't work on a Mighty Mouse, unfortunately.)

    As of 2.1pre11, Control-free popup now works by clicking-and-holding until the cursor turns into thecontextual menu cursor at which point you let go the mouse button, whereupon the contextual menuappears. If you prefer the original FinderPop control-free mechanism where you had to hold down themouse button all the time, use the following command to re-enable the original method: defaults write com.finderpop.finderpop originalControlFreePopupMethod true

    If you want the older behaviour where pressing a 'real' key to do an action (eg, pressing 'i' for info)did not immediately perform the action, but instead changed the cursor appropriately and waited untilyou selected an item from the menu, you can use the following: defaults write com.finderpop.finderpop immedActionOnKeyPress false

    FinderPop normally includes the 'FinderPop Items' menu item even if the folder itself is empty. Thisis so you can control-click items in the Finder and move or alias them into the FinderPop Items folder.If you want to completely ignore an empty 'FinderPop Items' folder so that the menu item does notappear, use: defaults write com.finderpop.finderpop ignoreEmptyFPMenu true

    If you select a Unix shell script file (for now, files whose name ends in '.sh') the script will beexecuted. Any Finder selection is passed to the script as standard text arguments. For example, suppose

  • file foo.sh contained: #!/bin/sh

    echo "Hello, world"echo $# args - and here they are:echo " " $*

    then selecting foo.sh via a FinderPop menu will run the shell script. If you had a bunch of files selectedin the Finder, then the script is passed those files as arguments. In this noddy example, you'd see theoutput on Console.app. See also the FinderPopExtras folder for examples of this extension mechanism, which can also use thetext selected by the user to do something. If you just want to edit the script file rather than executing it, hold down the option key as you select thescript file from the FinderPop menu. Alternatively, if you never want to execute script files and alwayswant to edit them, you can say: defaults write com.finderpop.finderpop runScriptFiles false

    Likewise, if you select a compiled AppleScript file (i.e., a file ending in '.scpt'), FinderPop willexecute the script. Note however that FinderPop does not currently pass the selection to theApplescript. Note also that FinderPop will not display any script results or errors.

    If you'd like FinderPop to hide the .sh and .scpt extensions, do: defaults write com.finderpop.finderpop tossDotScptExtension true

    FinderPop hides the .app extension by default, you can cause these to be shown by: defaults write com.finderpop.finderpop tossDotAppExtension false

    FinderPop sorts the items in the Process menu by name, you can turn this off by: defaults write com.finderpop.finderpop sortProcessMenu false

    FinderPop will add an alias to itself (i.e the FinderPop Preference Pane) to the end of the Processmenu, you can turn this off by: defaults write com.finderpop.finderpop addFinderPopToProcessMenu false

    FinderPop will no longer print "FinderPop: Patching Application..." notices to the Console unless youenable this with defaults write com.finderpop.finderpop displayPatchNotices true

    If you turn on Use Finder Label Colors in the Appearance tab, labelled items will appear in theFinder label colours. By default, icons are also drawn in their label colour; if you'd prefer to have theicons appear in their normal colours, use defaults write com.finderpop.finderpop useLabelInfoForIcons false

    If you don't want FinderPop to toggle inlining of FinderPop menus when CAPS LOCK is down, use: defaults write com.finderpop.finderpop capsLockToggleInline false

    It is possible to customise the appearance of FinderPop menus on a per-directory basis. FinderPop

  • checks for a file called .fp-info in each directory as it's creating the menu. This file can contain linesof the following form: sort-order-alpha sort-order-mod-date sort-order-apps sort-order-folders sort-order-label labels-on labels-off font-face INTEGER...which will change how the items in that folder appear in the menu, regardless of the "global"FinderPop Preferences setting. I plan to eventually add 'exclude=*.o'-style facilities.

    There are a number of useful utilities supplied in the FinderPopExtras folder. Some of these operateon Finder selections and thus will only be visible in a FinderPop menu if there a Finder selection.

    Lock and Unlock set and reset the Finder lock of whatever Finder items you have selected. Youshould see the Finder icon change to include a little "lock" badge if the item is locked.Touch "touches" the item - i.e., sets the item's modification date to now.Search in Google, Define in Google and Search in Dictionary.com work only if the applicationpasses the textual contextual selection to FinderPop. Many do not, but most Carbon apps do -including Microsoft Word. You're welcome, tensakun! Note that currently I pass only the first 1K or so of the textual selection to these shell scripts.Formatting, punctuation etc. are stripped.

    2.2.4b6 added a goofy scripting facility to run scripts or programs before generating the FinderPopmenu, allowing these scripts to add or remove items from the FinderPop Items folder (or indeed anyfolder.) Basically any file whose name ends in ".fpsh" in the FinderPop Items folder (or one levelbelow it, ie in a folder inside the FinderPop Items folder) will be run before and after FinderPop runs;the Finder selection is passed to the script, the script can examine the selection and add or remove itemsto the FinderPop Items folder which will then appear (or not) in the FinderPop popup menus. This isnot likely to be useful to more than a handful of people... but it could be used to reintroduce a measureof contextuality. I was looking at supporting old CM plugins but there are numerous problems with64/32bitness.) Here's one of my test scripts for this which just creates some folders which will appear in the FP menu -and then deletes them, so don't move anything into them! #!/bin/bash

    # Any ".fpsh" file in the FinderPop Items folder or one level below it # It will be run before FinderPop generates the menu from the FinderPop Items # folder, and therefore allows you the opportunity to add or remove items to/ # from a FinderPop menu. These items could be other files or folders, but they # could also be .sh shell script files which could actually do something! # # FinderPop will run the scripts multiple times, with the following parameter: # $1 # -context This is a contextual menu popup. $2..$n contain the full # paths of whatever it was you control-clicked in the Finder.

  • # -finish-context Called to tidy-up. You should remove the items you added. # # -menubar This is a click-in-blank-portion of menubar. $2 is not set. # -finish-menubar Called to tidy-up. You should remove the items you added. # # On entry, the current directory is set to the directory of the .fpsh file. # # Note: there is nothing stopping you from making this file be a normal MACH-O # executable instead of a bash script - argv / argc will be set up as standard.

    #echo $*

    if [ "$1" == "-context" ]; then # contextual selection is $2 $3 $4 $5 ... mkdir -p funky1 funky2 funky3 elif [ "$1" == "-finish-context" ]; then # Tidy up FP Items *after* item wasselected rm -fd funky1 funky2 funky3

    elif [ "$1" == "-menubar" ]; then # menubar click ; no other args supplied mkdir -p mbfunky1 mbfunky2 mbfunky3 elif [ "$1" == "-finish-menubar" ]; then # tidy up FP Items AFTER item wasselected rm -fd mbfunky1 mbfunky2 mbfunky3 fi

    Buy low, sell high. Don't be like me! Speaking of which, I used to work for Apple on their gcc compiler team (and before that on their MPW compilers.) I left in2002 suffering a classic case of burn-out, and promptly sold my shares for $19 each. They have since split two-for-one andsubsequently hit $640 in March 2012! The good news, however, is that I no longer need an alarm clock - every morning at 7:30 I wake up screaming! :-)

    FAQ me!

    Does FinderPop patch my system? FinderPop does not patch Mac OS X per se, instead it inserts a small fragment of code into the memoryspace of individual Mac OS X applications as they are being launched. This code fragment adds thevarious FinderPop features to contextual menus and clicks-in-unused-menubar-area.

    FinderPop does not change any of your application or system files.FinderPop has been tested by a gang of 40+ beta testers and has a support forum where I release betaversions regularly. (see the FinderPop Support Forum page if you would like to try out the latest beta orif you have problems with or suggestions for FinderPop.) However, problems could still arise, such as instability in certain applications, etc. If you areexperiencing problems, simply turning off FinderPop in the Preference Pane will deactivate it. If youare continually experiencing problems in a particular application, please tell me about it [[email protected] ]; you can also tell FinderPop to avoid "patching" that application by adding it tothe the Excludes list in the FinderPop Preference Pane. As of 2.1.2, FinderPop uses Unsanity's APELite to do the patching once we've injected ourselves into

  • an app on 10.4 and 10.5. This means that compatibility with FruitMenu et al is much improved!FinderPop uses APE Lite -- Copyright 2002-2008, Unsanity LLC -- http://www.haxies.com/ape/sdk/

    How do I uninstall FinderPop? If you wish to completely uninstall FinderPop, open the FinderPop Preference Pane's Etc tab, and clickthe Uninstall FinderPop button. If there's something bad about FinderPop that you don't like, please tellme so I can try to fix it! [ [email protected] ]

    How should I report a bug? If you think FinderPop made an application crash, please tell me about it! Mail me a description ofwhat you did leading up to the crash, and also a copy of the crash log, which can be found in~/Library/Logs/CrashReporter/application-that-crashed.crash.log

    Why do I sometimes see a submenu containing nothing but the words "Empty Folder"? This can happen because FinderPop is lazy about deciding whether a folder item should have asubmenu. At the time it decides this, it only knows how many items are in the folder. It doesn't knowwhether the current user has permissions to see all the items inside the folder, or if all items inside it areinvisible, for example. A future version of FP may fix this.

    Why do I get a spinning beachball when I press the 'p' key for 'Preview'? (or 'i' key for info, or...) I think that this is down to the OS X Menu Manager's handling of keystrokes to move the menuselection (ie, pressing 'a' should take you to the first item in the menu beginning with 'a' or thereabouts.)If you are browsing a deep hierarchy and press a key, the Menu Manager appears to do a linear searchof all currently visible items or something; it can take a few seconds before control reverts to the user.You can work around this bug by using only the modifier key chords - see above.

    Release Notes

    2.4.4, Sunday 8-July-2012 Tunguska

    If FinderPop's Use Finder Label Colors is enabled on 10.6/7/8, we now treat unlabelled items inFP menus in the Finder as if they had an invisible label, so the FinderPop menu item texts all startat the same horizontal offset. If you prefer the old way of showing labels, use

    defaults write com.finderpop.finderpop cocoaLabelSpaces false I will eventually get around to revamping the way FinderPop does menu labels in Cocoa, it'sdefinitely a bodge at the moment.

    2.4.3, Sunday 29-April-2012 Birthday Boy

    Finally figured out how to get access to the 10.7 Finder Go menu's Recent folders so these can beadded to FinderPop -- add an empty folder to your FinderPop Items folder called FinderRecent---R and the Recent folders from the Finder's Go menu will appear there. (Actually thefolder can be called anything you like so long as it ends in ---R. Now works for 10.6 and 10.7.

    2.4.2, Sunday 22-April-2012 April Showers

  • I've been a bit remiss in filling out the bumf here for beta versions. See the FinderPop VersionAnnouncements section of the FinderPop Support Forum for details.Meantime, compared to 2.4.1, 2.4.2 has:Better Mountain Lion (10.8) compatibility, though there may still be issues.[10.6 only, not 10.7 yet] Any item ending in '---R' will have a submenu listing the Finder'sRecent Items hanging off it. For example, having an item named 'Finder Recent---R' will resultin a FinderPop menu item named Finder Recent whose submenu lists the accessible items in theFinder's Go menu's Recent submenu.

    2.3.0.3 beta, Wednesday 8-December-2010 Two Short Planks

    Somehow I managed to mix up the German and Italian localisations last time around... fixed now(hopefully.)Increase max size of the '---a' all-applications-under-/Applications submenu to a max of 384items.A couple of minor code tidy-ups.

    2.3.0.2 beta, Sunday 21-November-2010 Burning Metal

    Improved German localisation, thanks Hajo Bass.Improved Italian localsiation, thanks Nello Martuscelli and Mauro Ferreri.

    2.3.0.1 beta, Sunday 20-June-2010 Burning Metal

    Template "Copy" folders - folders whose names end in '---C' are treated specially. They areTemplate or Copy folders. They will appear in FinderPop menus only in the Finder and only ifyou control-clicked on a blank area of a Finder window or the Desktop (ie, when there is nothingselected.) If you then select an item from the menu of this "Copy" folder, the selected item will beCOPIED to the window you control-clicked. This allows you to set up a system of templates filesor indeed folders which can be quickly placed where you want.Switching to a process using FP's Processes submenu no longer adds that process to the 'Recent'list.

    2.3.0, Wednesday 19-May-2010 Burning Metal

    Release Version! And there was much rejoicing.

    2.2.5, Tuesday 9-March-2010 Ghosts on Water

    Compatibility with Mac OS 10.6 Snow Leopard - beta versions having been available for monthsat the FinderPop Support Forum.Work around a PathFinder issue on Snow Leopard by treating PathFinder as just another app.

  • 2.2.4.b8, Sunday 7-February-2010 Fruit flies like a banana

    Compatibility with Mac OS 10.6 Snow Leopard - beta versions having been available for monthsat the FinderPop Support Forum.This is the first cut at a 'universal' FinderPop for 10.4/10.5 and 10.6 systems, even though theunderlying 10.6 FinderPop mechanisms are completely different.

    2.2.1, Saturday 8-August-2009 Beware of the bus!

    A small number of minor tweaks and fixes. Better compatibility with 10.5.7 and 10.5.8 Finders.Fixed bug where you couldn't combine "inline-this-folder" with "only-in-menubar". (See thisforum post.)Added some new FinderPop item naming tweaks - same as already existing ones but moreconcise. Items ending in '---t' appear in the FinderPop menu only if there is a text selection (justlike the deprecated 'text-!!!', but shorter.) Similarly '---f' will cause the item to appear only ifyou've control-clicked a Finder selection (deprecating 'fsel-!!!'. Likewise '---m', which causesan item to appear only if you've clicked in a blank bit of menubar, deprecates the more verbose'mbar-!!!'.Note that the FinderPop '---_' item modifiers are cumulative. For example, a folder named'InlinedInMbar---i---m' inside your FinderPop Items folder will have its contents inlined intothe FinderPop menu only if you control-clicked in the menubar. Any other method of invokingFinderPop will result in the folder's contents being skipped. Likewise, a folder named'InlinedWithFinderSel---f---i' will have its contents inlined into the FinderPop menu only if there was a Finderselection parameter to the _ContextualMenuSelect system call.

    As suggested by that bug, an item whose name ends in '---N' will appear in FinderPop menus onlywhen you control-click a blank portion of a Finder window or the Desktop, ie, there being no Finderselection. (The 'N' standing for "No Selection" -- and note that it must be a Capital 'N'.)2.2.01b1, Wednesday 17-December-2008 Curmudgeons Unite!

    If you don't want FinderPop to toggle inlining of FinderPop menus when CAPS LOCK is down,use: defaults write com.finderpop.finderpop capsLockToggleInline false

    2.1.4, Wednesday 17-December-2008 Curmudgeons Unite!

    Compatibility with 10.5.6 Finder

    2.1.3b12, Sunday 7-December-2008 Phlogiston Overload

    Added ability of FinderPop to send text contextual menu selections off to a shell script file. Thisonly works for the (mostly Carbon) apps that pass the textual selection to FinderPop. Also addeda new 'fsel'-style filename modifier: if an item's name ends in text-!!!, it will be added to FP

  • menus only if the user has control-clicked some text in apps that support this.Added a bunch of useful utilities in the FinderPopExtras folder. Some of these operate onFinder selections and thus will only be visible in a FinderPop menu if there is a Finder selection.

    Lock and Unlock set and reset the Finder lock of whatever Finder items you have selected.You should see the Finder icon change to include a little "lock" badge if the item is locked.Touch "touches" the item - i.e., sets the item's modification date to now.Search in Google, Define in Google and Search in Dictionary.com work only if theapplication passes the textual contextual selection to FinderPop. Many do not, but mostCarbon apps do - including Microsoft Word. You're welcome, tensakun! Note that currently I pass only the first 1K or so of the textual selection to these shellscripts. Formatting, punctuation etc. are stripped.

    Tweak Finder label colours and positioning a bit following RonaldPR's feedback.Option to allow Last items to appear in their own submenu.Selecting "0" in the "Remember the last NNN items chosen" menu (Options prefpane) will clearthe list of remembered items.Fixed some bozosity in the FinderPop build process.Tweak patching algorithm so apps are patched 1.25 seconds after they start up - this fixesproblems with LightZone and possibly other apps. Let me know if there are problems (there is adefaults setting you can tweak for this: "delayPatchingTicks" - currently 75.)Export some symbols so the app-being-patched can call FP routines to get some FP functionality(and indeed entirely disable FP.) Interested parties should contact me for the API.

    2.1.3b9, Thursday 2-October-2008 October-coloured weather

    Now, by popular acclaim, support for Finder Label colours! You can also sort by Finder Labels inthe Appearance tab. If you turn on Use Finder Label Colors in the Appearance tab, labelled itemswill appear in the Finder label colours. By default, icons are also drawn in their label colour; ifyou'd prefer to have the icons appear in their normal colours, use defaults write com.finderpop.finderpop useLabelInfoForIcons false

    Fix a problem with some apps where I mistakenly ignored their contextual menu items inpreference to FinderPop's.Add new checkbox for periodic checks for FinderPop updates in the "Etc" tab. Checks are donetwice a week.Fix a problem when the "New Destination Folder" dialog was frontmost when the FinderPop Infowindow was being displayed

    2.1.3b8, Sunday 21-September-2008 Autumnal Equinox Edition

    Add new button to the "Move/Copy/Alias" dialog allowing you to choose a different destinationfolder. You can also create a new destination folder. Also revamped this dialog's UI somewhat so

  • it's more obvious what it is you're moving/copying/aliasing.My Eclipse fix in the previous version accidentally broke popup menu selection in some Cocoaapps. Now properly fixed.This version is English-only as there are too many localisation changes required. I will be intouch with the localisers to see if they can supply me with the updated localisations in time forthe next version.

    2.1.3b7, Monday 11-August-2008 A Pint of Plain is your only man

    If Inline FinderPop Items into Main Contextual Menu (in FinderPop's Appearance tab) isenabled, FP will inline its items into all apps' contextual menus. You can limit this inlining to onlythe Finder by clicking the new Only in Finder minicheckbox.Fix a number of bugs in relation to selecting from contextual menus in Eclipse and some Cocoaapps (eg, Safari - see http://fnarr.net/fp/viewtopic.php?t=91.Alas this new checkbox is not yet localised beyond my pidgin French version; look for aproperly-localised version b8 when I get back from holidays.

    2.1.3b6, Wednesday 11-June-2008 A Pint of Plain is your only man

    For quick access to the FinderPop Preference Pane, FinderPop will add an alias to itself to the endof the Process menu. You can disable this by: defaults write com.finderpop.finderpop addFinderPopToProcessMenu false

    FinderPop will no longer print "FinderPop: Patching Application..." notices to the Console unlessyou enable this with defaults write com.finderpop.finderpop displayPatchNotices true

    Any item ending in '-!!n' will have a submenu listing all installed Preference Panes hanging offit. For example, having an item named 'Prefs-!!n' will result in a menu item named Prefs whosesubmenu lists all installed preference panes.As before, items ending in ''fsel-!!!' will appear in FinderPop menus only if there is an itemselected in the Finder. Items ending in 'mbar-!!!' appear only if you're clicking an unused part ofthe menubar. For example, you could place an alias to FinderPop Items inside the FinderPopItems folder itself, and name it 'FinderPop Items fsel-!!!' - this means the item would appearonly if you control-clicked a file/folder in the Finder, allowing you to move/copy/alias the itemdirectly into the FinderPop Items folder.

    Items ending in 'crtr-!!!': if you know the 4-character creator code of an app, it is possible tocustomise the FinderPop menu so certain items appear if you're popping up a contextual menu orclicking-in-unused-menubar in that app or not. For example, the 4-character code for the Finder is'fndr', and the 4-char code for GraphicConverter is 'GKON'. Items whose names end in ''GKON-!!!'will appear in FinderPop menus only if GraphicConverter is the current app. Similarly, itemsending in '!GKON-!!!' (note the extra initial !) will appear in FinderPop only if GraphicConverteris not the current app. You can tell the 4-char code of an app using FinderPop by highlighting the app in a FinderPopmenu and pressing Command and Option - the info is in the line labelled 'Type/Crtr' - the type forapps is normally 'APPL' and the unique, per-application 4-character creator code is the next item.

  • There's a downside to this - not all apps come with a 4-character creator code. Maybe in the nextversion we can use 'com.apple.Console' for example. OK, we lied. The real creator code for the Finder is 'MACS' but that creator code is used for other System Software itemstoo, so for the Finder, FinderPop uses 'fndr'.

    This app-specific feature can be combined with the new '---i' "inline-this-folder" feature. Forexample: A folder called 'InlineTest ttxt-!!!-!!i' would have its contents inlined into theFinderPop menu only if TextEdit was the frontmost app. If TextEdit is not the frontmost app, thefolder contributes no items to the FinderPop menu. (As you've probably figured out, the 4-character creator code of TextEdit it 'ttxt'.)

    To do: write a UI to handle all the above setup of FinderPop Items- I've been threatening to dothis since 1997... time to grok some more Cocoa!Fix accidentally inverted sense of "Enhance Contextual Menus in other apps" checkbox (Activepanel.)First pathetic attempt at automagic online update checking. Only works if you open FinderPop inSystem Preferences. Will check up to 2 times per week, and offer to open the appropriatedownload webpage if there's a newer version available.

    2.1.3b5, 14-May-2008 A Pint of Plain is your only man

    Initial attempt at per-directory customisation: the .fp-info file.Make Processes menu sorting-by-name optional: defaults write com.finderpop.finderpop sortProcessMenu false If the Processes Menu isn't sorted by name, it's sorted by order of application launch time - leastrecent first, so for most people the Finder will be the first item on the menu.The FinderPop preference pane is now appended to the end of the Processes menu.Fix a bug where I wasn't removing the -!!x "no submenu" trailer.Any item ending in '-!!a' will have a submenu with all the apps under the Applications folder (ie,including those in the Utilties folder.) Note that the menu item takes its name from this item - soif your item is 'Every App-!!a', then the menu item will be Every App and will have the special'all-apps' submenu hanging off it. The item itself can be a file, folder, or alias; if its name ends in'-!!a' the contents of the item are ignored and FinderPop always displays this special all-appsmenu.Any item ending in '-!!d' will have a Desktop submenu just like the Desktop submenu you get ifyou check the Add Desktop Submenu in the FinderPop prefPane. Doing it like this means you canplace your Desktop submenu where-ever you want in the FinderPop hierarchy rather than at afixed location using the checkbox.Similarly, any item ending in '-!!p' will have a Processes submenu hanging off it. For example,having an item named 'Running-!!a' will result in a menu item named Running whose submenulists the currently running apps. As usual with the FinderPop Process menu, if you hold downControl when mousing into the menu, it will include background-only processes.A reminder that merely renaming an item in the 'FinderPop Items' folder (or indeed any folder forwhich FinderPop has a cached menu) will not cause FinderPop to rebuild the menu. You'll needto change the modification time of the folder - I normally do this by creating a new folder and

  • then immediately deleting it via Command-Shift-N, Command-Delete.

    2.1.3b4, 27-Apr-2008 A Pint of Plain is still your only man

    FinderPop should now run on G3s again. Sorry about that.Removed broken German localisation placeholder.Increase the number of remembered Last items from 5 to 12.The "FinderPop Items" folder can now be an alias to a folder.Tweak the click-in-unused-menubar code once more - work around some oddities in the systen'swake-from-sleep code.If you select a Unix shell script file (for now, files whose name ends in '.sh') the script will beexecuted. Any Finder selection is passed to the script as standard text arguments. For example,suppose file foo.sh contained:

    #!/bin/sh

    echo "Hello, world"echo $# args - and here they are:echo " " $*

    then selecting foo.sh via a FinderPop menu will run the shell script. If you had a bunch of filesselected in the Finder, then the script is passed those files as arguments. In this noddy example,you'd see the output on Console.app. If you just want to edit the script file rather than executing it, hold down the option key as youselect the script file from the FinderPop menu.

    Likewise, if you select a compiled AppleScript file (i.e., a file ending in '.scpt'), FinderPop willexecute the script. Note however that FinderPop does not currently pass the selection to theApplescript. Note also that FinderPop will not display any script results or errors.

    If you'd like FinderPop to hide the .sh and .scpt extensions, do: defaults write com.finderpop.finderpop tossDotScptExtension true

    2.1.3b1 - b3, various dates were private debug builds released only to bug reporters.2.1.2, 6-Mar-2008 A Pint of Plain is your only man

    New Patching Mechanism! Finally solved the Unsanity incompatibilities by the simple expedientof using their APELite patching mechanism. Thanks muchly to Rosyna Keller of Unsanity andNicholas Riley for introducing us. I have no idea why I didn't investigate this before. Soy tonto. FinderPop uses APE Lite -- Copyright 2002-2008, Unsanity LLC --http://www.haxies.com/ape/sdk/Fix for FinderPop causing crashes in certain Cocoa apps.Miscellaneous other fixes, tweaks and tidyups.Many localisations! Thanks to Corentin Cras-Meneur for Franais, Michael Berglund for

  • Swedish, Osamu Satoh for Japanese. Please let us know if there are any problems.

    2.1 RELEASE, 28-Feb-2008 A Pint of Plain is your only man

    Finally a release. And there was much rejoicing.

    Err, that's it for now. More words coming soon!

    Last modified by turly, Sunday 8-July-2012. Made with vim, touched up with Bare Bones Software's fine TextWrangler! [email protected]