CmdBar looks in the $HOME/.cmdbar
directory for scripts to execute. Scripts have to follow these naming conventions: name.time.extension
and name.time
; for example, transmission.2s.sh
is a shell script named transmission that is scheduled to execute every two seconds, and main.2m
is an executable named main that is scheduled to execute every two minutes. The interval should use “s” for seconds, “m” for minutes, “h” for hours, and “d” for days. However, using days for execution interval is uesless since CmdBar reloads scripts whenever MacOS wakes up from sleep (this might change in the future). The current implementation could be useful to those machines that never go into sleep mode.
If you wish to store your scripts directory in any other place, you can create a symbolic link, but otherwise $HOME/.cmdbar
is the only location CmdBar looks in.
The blue button can be clicked to reload the current script. Clicking the blue button whilst holding shift will reload all scripts; this might be useful whenever you add or remove scripts from .cmdbar
directory.
The orange button can be clicked to toggle 'launch at login'.
CmdBar has no restirctions on the type of executable a user uses, as long as the script or executable writes to standard output.
The first line of the output will be used to display the title of a status bar button, and the rest will go into the body of the popover.
The above script will output:
brew outdated
, but /opt/homebrew/bin/brew outdated
). Basically, everything that is not in /usr/bin
, /bin
, /usr/sbin
, or /sbin
should have an absolute path. which
command can be used to find an absolute path of a program (e.g. which brew
).