BASHRUN2(1)
π NAME π
okay bestie, welcome to the BASHRUN2(1) manual page β bashrun2 β and its whole vibe is: launch applications from interactive bash sessions. slay. π
β¨
π¦ SYNOPSIS π¦
bashrun2 [options] [command [args]] [-- termopts]
πΈ DESCRIPTION πΈ
So bashrun2 adds application launching capabilities to interactive bash sessions, and itβs very much suitable for use in a graphical user environment. π
In its default setup, bashrun2 gives you an application launcher like a simple run dialog by starting an interactive bash session in a small xterm(1) terminal window β thatβs the builtin run-dialog mode. π
The builtin terminal mode starts an interactive bash session in a regular xterm(1) terminal window and transparently adds bashrunβs application launching capabilities, allowing the user to seamlessly launch graphical and terminal applications from the command line. β¨
An existing bashrun session may also be used remotely from any interactive bash session by sourcing a lightweight remote interface. π¦
π GETTING STARTED π
π Using bashrun as a run dialog π
Start bashrun2 from the command line or with a keybinding in your window manager or desktop environment. Bashrun will start in its default mode run-dialog. It will create an interactive bash session in a small one-line xterm(1) terminal and initialize the bashrun engine. no cap, thatβs the whole setup. π₯
Type a command to launch a graphical application and press Enter. Bashrun will launch the application and then hide the terminal window. Now run bashrun2 again. The terminal window will be shown again and you can enter another command. This time, type the name of a console application. To launch it in a terminal, press Alt-Enter. π
Bring up bashrun again and press F1 to view a complete list of keybindings and available actions. π
π Using bashrun in a managed terminal π
Start bashrun with bashrun2 --mode terminal. It will launch a bashrun session in terminal mode, creating a standard sized terminal window. β¨
Pressing Enter will run commands in the current shell as usual. You can launch applications in the background now by pressing Alt-Enter. To launch a console application in a new terminal, press Alt-t. All other keybindings remain the same as in run-dialog mode. π¦
Bind a key in your window manager or desktop environment to run bashrun2 --mode terminal and use it to bring the window up front at any time, regardless of whether it is behind other windows or on another desktop. Run bashrun2 --help or see COMMAND LINE INTERFACE for a list of available options and commands. π«Ά
Use terminal mode if you want to use a dedicated, bashrun augmented terminal that can be brought up front with a single keybinding in your window manager or desktop environment. periodt. π
π§ Using bashrun remotely π§
In an interactive bash session not started by bashrun, run the command:
eval "$(bashrun2 --remote-control)"
A lightweight remote interface to an existing bashrun run-dialog session will be installed in the current bash session. Bashrunβs keybindings will be enabled in a similar way as in terminal mode, i.e. Alt-Enter can be used to launch commands in the background, and Alt-t can be used to launch commands in a terminal. Non-executable commands will also be passed on to the remote bashrun session, providing access to handler processing. Bookmarks and handler completion will be available as well. πΈ
Use this method if you want transparent remote access to bashrunβs features from any terminal. π
π Configuring bashrun π
To configure bashrun, either edit the system wide configuration /nix/store/fjkgylim5ic414ic812kdhmjj2ihyvsx-bashrun2-0.2.6/etc/xdg/bashrun2/bashrun2.rc or create the directory ~/.config/bashrun2/ and copy the configuration file into this directory. The default configuration file contains extensivly commented examples that should help to get you started. After editing the configuration file, either restart bashrun or bring it up and press Alt-r to make changes take effect. See CONFIGURATION for further details. π
π COMMAND LINE INTERFACE π
The bashrun2 executable provides a command line interface to bashrun sessions and can be used to create, select and control bashrun sessions running in different modes. It can manage a single bashrun session for each mode object defined in the configuration file. π¦
Modes are selected by the -m or --mode option. If no mode is specified, the default mode run-dialog is used. β¨
If no session is currently running in the selected mode, then a session is started in the selected mode, unless the command is either exit or quit. The command is then applied to the newly created session, unless it is either show, toggle, smart, reload, restart or debug. If no command is specified, the default command show is used. π
β¨ OPTIONS β¨
-m,--modemode β Select mode to launch or control. In the absence of this option, the default moderun-dialogis used. π--remote-controlβ Print bash code to install a remote control interface to an existing bashrun session. See REMOTE CONTROL INTERFACE. π¦-d,--debugβ Enable debugging on startup. π₯-h,--helpβ Show usage information. π-v,--versionβ Show version information. πΈ
π COMMANDS π
showβ Show the terminal window. Maps the window, moves it to the current desktop, moves it above other windows and focuses it. This is the default command if no command has been specified. πhideβ Unmap the terminal window. πtoggleβ If the terminal window is not mapped, show it. If the terminal window is mapped, hide it. πsmartβ If the terminal window is not mapped, not on the current desktop, obscured by other windows or not focused, then show it. If none of these conditions apply, hide the terminal window. β¨do action [shell-command]β Remotely invoke action with shell-command. If the requested action involvessu(1), the terminal window is shown before invoking the action to allow the user to enter a password. πsu shell-commandβ Remotely invoke thesu-runaction with shell-command. This is the equivalent todo su-run shell-command. πwidβ Report the window id of the terminal window. πͺpidβ Report the process id of the bash session. π§debugβ Toggle debugging. πreloadβ Reload configuration files. π¦restartβ Exit the bashrun session and start a new one. πexitβ Exit the bashrun session. πquitβ Synonymous withexit. π
π CONFIGURATION π
ποΈ FILES ποΈ
Bashrun2 follows the XDG Base Directory Specification to locate configuration files. If the environment variables XDG_CONFIG_DIRS and XDG_CONFIG_HOME have not been set, are empty or include only the default directories defined by the xdg spec, then the main configuration file will be searched for at the following locations:
~/.config/bashrun2/bashrun2.rc
/etc/xdg/bashrun2/bashrun2.rc
π§ SYNTAX π§
Configuration files are bash scripts that will be sourced during the startup of the bashrun session. These scripts are responsible for defining the configuration functions that contain actual object definitions as well as additional helper function definitions for a specific type of object. π
For each object type, bashrun will look for a function named:
+configure-<type>s
For example, mode objects are configured by a function named:
+configure-modes
An object definition consists of an object initializer, optionally followed by one or more object property definitions on the same line, followed by one or more single object property definitions on subsequent lines:
+<type> '<name>' [--<property-name> '<args>'...]
[--<property-name> '<args>'...]
...
For example, adding the following terminal object definition to the +configure-terminals function will create a new terminal object called small and set its command and geometry properties:
+terminal 'small'
--command 'urxvt'
--geometry '40x12'
Note that if an object initializer refers to a previously defined object of the same type using the same name, then subsequent property definitions will apply to the existing objects instead of creating a new object, i.e. the above example could also be written as:
+terminal 'small' --command 'urxvt'
+terminal 'small' --geometry '40x12'
Multiple arguments to property definitions are usually concatenated into a single string separated by spaces, unless otherwise indicated. β¨
π KEYBINDINGS π
The configuration functions +configure-emacs-mode and +configure-vi-mode are used to configure keybindings for the respective editing modes. Within these functions, the following directives may be used:
+keymap <keymap>β Set the target keymap for subsequentbinddirectives. π+bind <action> <keyseq> [<keyname>]β Bind an action to a key sequence, optionally supplying a human readable key name. Seereadline(1)on how to specify key bindings. π¦+unbind <action> [<keyseq>]β Unbind an action from a key sequence. If the key sequence is omitted, the action will be unbound from the last key sequence that was previously bound to. If a key sequence was bound to a readline function or macro prior to having been bound to a bashrun action, the original readline binding will be restored. E.g. unbinding therunaction from\C-m(enter) will automatically rebind\C-mto readlineβsaccept-linefunction. π+rebind <action>β Rebind the action to the key sequence that it was previously bound to, if any. π
π§ PLUGINS π§
The +plugins directive can be used to include one or more named plugins into the main configuration file, and must appear at the top level of the configuration file, i.e. outside of any +configure function. A plugin may contain additional object definitions that will be added to the objects defined by the main configuration file. The plugin files will be searched for in the following locations:
~/.config/bashrun2/plugins/<plugin-name>.rc
/etc/xdg/bashrun2/plugins/<plugin-name>.rc
For each object type, a plugin may define a +configure function using the following naming scheme:
+configure-<plugin-name>-<type>s
Configuration functions provided by plugins will be run before those defined in the main configuration file. π«Ά
π₯ CACHING π₯
The results of a specific +configure function are cached in XDG_CACHE_HOME/bashrun2. Objects of the corresponding type and associated helper functions will be restored from the cache on subsequent invocations, until the code of the +configure function changes, upon which the function is again run and the resulting objects and functions are again cached to replace the previously cached results. iykyk. π
π§Έ OBJECTS π§Έ
okay so bestie, this is where bashrun shows off its whole βmade of little configurable friendsβ era π β it's composed out of a set of user configurable objects that control different aspects of application launching and terminal window management. Like a group chat, but every member has a job.
- Modes β control the appearance and behavior of the terminal hosting the bashrun session, such as the default modes
run-dialogandterminalmentioned above. - Actions β can be bound to key sequences and handle user input in different ways, such as launching a command in a terminal or looking up words in a dictionary client.
- Terminals β let you specify different terminal command lines to be used for launching console applications, and can be associated with specific commands or command lines.
- Rules β associate actions with specific commands or command lines, e.g. to automatically launch certain commands with root privileges. Regular expressions allow fine grained control over command matching.
- Handlers β provide a flexible mechanism for rewriting non-executable commands, using regular expression matching, substitution and file test operators, thus offering a way to implement stuff like file associations or web shortcuts. They also provide a simple interface to programmable completion.
- Plugins β allow flexible inclusion and distribution of user created configuration objects.
π¦ MODES π¦
Mode objects are used to configure different modes of operation for bashrun. They define the terminal to use for the bashrun session and control general appearance and behavior. Basically the main-character settings for how your little launcher looks and acts β¨
--terminal <name>β default:xterm. The terminal used for bashrun. Supported terminals includexterm,urxvt,urxvtc,urxvtcd,mrxvt,mltermandaterm. Generic support for other terminals can be added as well, seeGENERIC TERMINAL SUPPORTbelow.--geometry <geometry1 [geometry2]...>β default:40x1 40x8. The geometry or geometries to use for the terminal window. If more than one geometry is used, thecycle-sizeaction (Ctrl+l) will allow you to cycle through these geometries.--font <font>β default:empty. The regular terminal font.--boldfont <font>β default:empty. The bold terminal font.--foreground <font>β default:empty. The terminal foreground color.--background <font>β default:empty. The terminal background color.--options <string>β default:empty. Generic terminal options to be included in the terminal command line.--completion <type [alternative threshold]>β default:menu-complete complete 8. Set the readline completion function to use with tab.typespecifies the completion type to be used by default.alternative, if given, specifies an alternative completion type to use when the size of the terminal is greater or equal to the number of lines given inthreshold. Possible values fortypeandalternativeare the default readline typescompleteandmenu-complete, as well as the specialquiet-completetype. This type will behave like the standardcomplete, but will not prompt the user in any way, so that although possible completions will be listed, they will effectively not be visible in a single-line terminal.--cmdnfh <boolean>β default:true. Install acommand_not_found_handlefunction that will pass the command to therunaction and thus invoke handler processing. The handler function will only be invoked if the command is entered using readline'saccept-linefunction.--unmap <boolean>β default:true. Unmap (hide) the terminal window after every command.--onmap <command>β default:empty. A command to be run after the terminal window has been mapped.--onunmap <command>β default:empty. A command to be run after the terminal window has been unmapped.--netwmstate <string>β default:empty. A space separated list of NetWM state properties to apply to the window when it is shown. Possible values aremodal,sticky,maximized_vert,maximized_horz,shaded,skip_taskbar,skip_pager,hidden,fullscreen,aboveandbelow. Note that your wm needs to properly support these properties in order for them to have any effect. It is usually better to use your wm's native facilities to set such properties.--feedback <boolean>β default:true. Show feedback in the form of a progress bar when creating/restoring the configuration.--superuser <string>β default:Administrator. Set the name of the superuser to use forsu-*actions when running under cygwin.--logfile <filename>β default:/dev/null. Redirect stderr from launched commands tofilename. Note that stderr for commands run with root priviledges is discarded by default.+mode-<name>-init () { commands; }β a function that will be run when the corresponding mode to is initialized. This is a good place to refine the default setup or to set bash settings such asPS1orHISTFILEfor a specific mode.
π TERMINALS π
Terminal objects define different terminal command lines to use for launching commands in. Commands can be matched and associated with a specific terminal objects using the --match property. It's giving βchoose your fighterβ but for terminal emulators π
--command <command template>β default:xterm. The terminal command. Supported terminals includexterm,urxvt,mrxvt,mltermandaterm. Generic support for other terminals can be added as well, seeGENERIC TERMINAL SUPPORTbelow.--geometry <geometry>β default:empty. The X geometry of the terminal.--font <font>β default:empty. The regular terminal font.--boldfont <font>β default:empty. The bold terminal font.--foreground <font>β default:empty. The terminal foreground color.--background <font>β default:empty. The terminal background color.--classname <string>β default:none. Name portion of theWM_CLASSwindow property.--title <string>β default:none. Title of the terminal window.
If not specified, the command executed in this terminal will be used as the window title.
--options <string>β default:empty. Generic terminal options to be included in the terminal command line.--match <pattern> [...]β default:empty. Add one or more patterns to match commands or command lines with. If an action requests the command to be run in a terminal, then if the pattern matches, this terminal is chosen to run the command in.
If pattern is a single word, it will be matched verbatim against the first word of the command line. If the pattern is delimited by slashes (i.e. /pattern/), then the pattern is matched as a regular expression on the complete command line. Note that slashes inside the regular expression do not have to be escaped with a backslash in this notation.
There are two terminal objects defined by default. The terminal named default will be used if no other terminal matches the given command and an action has requested the command to be run in a terminal. The default notify terminal is a small terminal used by the default actions term-notify and su-term-notify (see DEFAULT ACTIONS below).
β οΈ Note that any patterns associated with a terminal object will be implicitly appended to theterm-runrule (seeRULESbelow). This means that commands matched by a terminal will always be run in that terminal, even if this was not explicitly requested by the current action.
π« Icon support for terminal windows π«
On startup, if either $HOME/.config/bashrun2/icons or $SYSCONFDIR/xdg/bashrun2/icons exists, bashrun will add an X resource for each .png file found in these directories, in the format
<basename-of-icon>*iconFile: <full-path-of-icon>
In addition, every time a command is launched in the terminal, bashrun will attempt to load an icon resource in the same manner, based on the first word on the commandline or the explicitly set terminal title.
Icons from the users configuration directory take precedence over those found in the system-wide configuration directory. So your personal icon stash wins, periodt π«Ά
πΈ BOOKMARKS πΈ
For each bookmark object, a stub function by the same name is defined that runs the browse action for the bookmark name. Bookmarks can thus be completed like regular commands. Example:
+bookmark 'www.google.com'
π₯ RULES π₯
Rule objects associate actions with specific commands or command lines. The rule name must correspond to the name of an existing action. The first rule that matches the command will take effect and invoke the corresponding action on the command. Rule processing takes place only if the generic run action is invoked on the command. No cap, first match wins π
--match <pattern> [...]β default:empty. Add one or more patterns to match commands or command lines against.
If pattern is a single word, it will be matched verbatim against the first word of the command line. If the pattern is delimited by slashes (i.e. /pattern/), then the pattern is matched as a regular expression on the complete command line. Note that slashes inside the regular expression do not have to be escaped with a backslash in this notation.
π§ HANDLERS π§
Handler objects can be used to match, test against and rewrite non-executable command lines and then either execute the resulting command or dispatch the resulting string to a specific action for further processing. In addition, handlers provide a simple interface to programmable completion. This is the βmake it make senseβ layer π₯
If the commandline entered into bashrun is not executable (i.e. it's not an exported function, an alias or an executable) then an attempt is made to successively match the command line against each of handlers, in the order in which they are defined in the configuration files.
If the regular expression given with --match matches the commandline, then an optional file test pattern given with --test is applied. If no test was specified or if the supplied test succeeds, then either the value of --command will be used as the command to execute, with the original command line appended, or, if the regexp contains subexpressions within parenthesis, an attempt will be made to substitute the occurence of %<1-9> in the value of --command with the contents of the corresponding subexpression match.
The --action property may be used to delegate the resulting string to a specific action for further processing. If no action was given, the resulting string is assumed to constitute an executable command, and will be run in the background. Slay, but make sure you meant it π
A command word to complete can be totally supplied via the --complete property, and you can define a function named +handler-<name>-complete to generate a list of possible completions. β¨
--match <regexp>(default:(.+)) β the regular expression to match against the command line. The results of any matching parenthesized subexpressions inside this expression can be inserted into the--commandtemplate (peep--commandbelow).--test <expression>(default:empty) β the test expression is a string of characters that line up with the unary file test operators defined in sectionCONDITIONAL EXPRESSIONSof thebash(1)manual. Each individual file test gets performed on the complete command line. If one of these tests fails, the test as a whole fails and the handler is skipped. File tests can be negated by prefixing them with a single!. For example, a handler using the expressionf!xwill only be applied if the command line constitutes the filename of a regular, non-executable file.--command <command template>(default:empty) β the command template rewrites the original command line to construct an executable command line or a string that can be passed on to an action for further processing, denoted by the--actionproperty. If the template contains a percent sign (%) followed by a single digit in the range1-9, then this pattern will be replaced with the matching contents of the corresponding parenthesized subexpressions in the regular expression given with--match. If no such patterns occur in the command template, then the original command line is appended to the end of the template string, separated by a space character.--action <name>(default:empty) β the name of an action that shall be invoked on the rewritten command string. If no action is specified, the rewritten command string is assumed to constitute an executable command and is executed in the background.--complete <word>(default:empty) β a stub functionwordis created and can thus be completed on the command line. Standard bash completion is installed for this word unless a specific completion function is supplied for this handler (see below).--fallback <boolean>(default:false) β if set totrue, this handler will always appear at the end of the handler chain, regardless of where it was defined in the configuration files. If more than one fallback handler is defined, they will end up at the end of the handler chain in the order in which they are defined in the configuration files.+handler-<name>-complete () { commands; }β an optional function that generates a newline-separated list of possible completions used for the word given by the--completeproperty of the corresponding handler. If no such function is defined, standard bash completion will instead be installed for the word. π«Ά
π¬ ACTIONS π¬
Action objects implement the core functionality of bashrun by handling user input in arbitrarily complex ways. Actions can be invoked directly by the user via key bindings or remotely from the command line. Each action is augmented by an associated helper function which is responsible for generating an executable command based on user input. To do so, an action function can interact with the bashrun engine by using special functions β e.g. to get or set the resulting command, test it for certain conditions, invoke handler and rules processing, add a terminal, change the effective user id, or simply run some shell commands and then terminate processing. See the description of the +action-<name> function below for details. π
--description <string>(default:empty) β a short description for this action. This string will be used to describe the action to the user when listing key bindings.--depends <list>(default:empty) β a space separated list of external programs used by this action. The user will be prompted with an appropriate error message if one of these dependencies is not satisfied.--input <boolean>(default:true) β accept the current line as input for this action. If set tofalse, the action will be invoked without altering the current line.--remote <boolean>(default:true) β include this action in the remote control interface. (SeeREMOTE CONTROL INTERFACE.)+action-<name> () { commands; }β the function implementing this action. The return value of this function determines how to proceed further:- returns
0β bashrun assumes that the current command set by thecommandfunction (see below) is executable and will proceed to spawn a new instance ofbashto execute the command. - returns
1β the action terminates immediately, possibly unmapping the terminal window if requested by the+mode --unmapproperty. - returns
2β the action terminates without ever unmapping the terminal window, ignoring the value of+mode --unmap.
- returns
The following functions are defined during execution of the action function:
command [value]β get or set the command. If no value is given, print the current command on stdout. If a value is given, set the current command to value.lineβ print the complete command line entered by the user to stdout.wordβ print the first word of the command line entered by the user to stdout. Note that any environment variable assignments at the beginning of the line will be skipped when determining the command word.titleβ set the title to be used in case this command is run in a terminal. Note that this command must be called before the terminal command line is constructed, i.e. beforeterminal,pagerorholdis called.quote-commandβ quote the command in a way that can be reused as shell input.action <name>β run the action function of the action denoted by name on the current command.handlersβ invoke handler processing for the command.rulesβ invoke rules processing for the command.terminal [<name>]β modify the command to be run in the terminal specified by name. If no explicit terminal name is given, then the terminal that matches the command will be used. If no terminal matches the command or no terminal of the given name exists, the default terminal is used.hold [<sec=0>]β modify the command to add a delay of sec seconds after the command has been run. If sec is0(the default), wait until the user presses a key.pagerβ modify the command to page the output in a pager. The value of the environment variablePAGER(default:less) will be used for this.user [--prompt] [<username=root>]β modify the command to be run with a different user id by usingsu(1). If the--promptoption is supplied, prompt the user for the username; otherwise use the supplied username (default:root). The terminal window will be mapped prior to running the command to allow the user to enter the username and/or password.mapβ map the terminal window, e.g. to prompt the user.executable?β test whether the command is executable.builtin?β test whether the command is a bash builtin command.bookmark?β test whether the command is a bashrun bookmark.
π BUILTIN ACTIONS π
This section describes the default actions defined in bashrun, along with their default keybindings. π
If you wish to change the implementation of a default action, enter debug mode, type +action <name> --code and press M-w to retrieve the source code of the action. You can add this code to your +configure-actions function in your configuration file and modify it accordingly. π
pass(M-w) β run a command directly in the bashrun shell session.abort(C-g) β clear the command line and hide the terminal window.bashrun-bindings(F1) β show the current keybindings in a terminal.bashrun-manual(F2) β show this manual page in a terminal.debug(F12) β resize the terminal window to80x24and turn on debugging.reload(M-r) β reload the configuration. All configuration objects are reloaded from the cache unless a configuration function for a certain type of object has changed.quit(C-q) β terminate the bashrun session.run(C-m,C-j,Enter) β run a command as an independent process, detached from the bashrun shell session. If the command is not executable, try match it against handlers. If no handlers match, abort processing, else apply rules and proceed. This behaviour is common for allrun-*actions.term-run(M-C-m,M-Enter) β run the command in a terminal.term-hold(M-h) β run the command in a terminal and keep the terminal open until the user presses any key.term-page(M-+) β run the command in a terminal and display the output using the pager program defined by the environment variablePAGER. If this variable is unset or empty, useless(1).term-notifyβ run command in the default notify terminal and hold for two seconds.su-run(M-su) β run a command as root. Will prompt the user for the root password.su-term-run(M-st) β run the command as root in a terminal.su-term-hold(M-sh) β run the command as root in a terminal and keep the terminal open until the user presses any key.su-term-page(M-s+) β run the command as root in a terminal and display the output using the pager program defined by the environment variablePAGER. If this variable is unset or empty, useless(1).su-term-notifyβ run command as root in the default notify terminal and keep the terminal open for two seconds.show-manual(M-?) β show the manual page for a command.show-info(M-C-?) β show the manual page for a command.show-help(M-C-x?) β show help for a bash builtin.browse(M-C-b) β launch urls in$BROWSER.google-search(M-C-g) β use command line contents as a search term on google.dict-lookup(M-C-d) β lookup words in a dictionary client. ($DICT)copy-to-clipboard(M-x) β copy command output to clipboard usingxclip -i. πfilter-clipboard(M-a) β usecommandas a filter on the clipboard. Itβs literally equivalent to this tiny pipeline:
xclip -o | command | xclip -i
cycle-size(C-l) β cycle through the geometries given by+mode --geometry. β¨resize-up(C-β) β decrease terminal height by one line.resize-down(C-β) β increase terminal height by one line.resize-left(C-β) β decrease terminal width by one column.resize-right(C-β) β increase terminal width by one column.
β¨ GENERIC TERMINAL SUPPORT β¨
Generic support for terminals can be added by supplying a template string of the required terminal command line to the +mode --terminal or +terminal --command properties. π
Template strings may contain the following format specifiers, which will be replaced by their corresponding values:
%*β the command to be run by the terminal, unquoted.%@β the command to be run by the terminal, quoted to appear as a single argument. Consecutive@βs add another level of quoting, e.g.%@@quotes two times,%@@@quotes three times, and so on.%nβ for+modeobjects, this is replaced with the stringbashrun2-<mode-name>, and needs to be set as the name portion of the terminalβsWM_CLASSproperty. For terminal objects, the value of the--classnameproperty is used.%gβ the value of the--geometryproperty.%fβ the value of the--fontproperty.%bβ the value of the--boldfontproperty.%Fβ the value of the--foregroundproperty.%Bβ the value of the--backgroundproperty.%oβ the value of the--optionsproperty plus any additional terminal options given on the command line after--.%%β replaced by a literal percent sign (%).
π«Ά Heads up, bestie: any format specifier that appears in the template string will always be replaced with its corresponding value, even if the value is an empty string. So make sure that format specifiers whose value is derived from an option are not empty (e.g. the corresponding option is set), or youβll be constructing an invalid command line. No cap.
Examples:
+mode
--terminal 'urxvt -n %n -g %g -fn %f -fb %b -fg %F -bg %B %o -e %*'
+terminal
--command 'urxvt -n %n -g %g -fn %f -fb %b -fg %F -bg %B %o -e bash -c %@'
π KNOWN ISSUES π
Older versions of bash may freeze when resizing the terminal window, and will need to be forcefully terminated in this case. π
For XTerm, the allowWindowOps resource needs to be set to True to allow window resizing. This is enabled by default. Note that setting allowSendEvents to True will forcefully disable allowWindowOps in XTerm.
In order for meta keybindings (prefixed with \e or \M-) to work with the Alt or Meta key, the terminal needs to be configured to translate your meta key to an escape. For XTerm, this can be enabled by setting the metaSendsEscape resource to True. When using XTerm, bashrun will set this resource to True by default. For URxvt, the meta8 resource needs to be set to False (which is already the default setting in URxvt).
π FILES π
/etc/xdg/bashrun2/bashrun2.rcβ system-wide configuration file/etc/xdg/bashrun2/plugins/β system-wide plugin directory$HOME/.config/bashrun2/bashrun2.rcβ user configuration file$HOME/.config/bashrun2/plugins/β user plugin directory/nix/store/fjkgylim5ic414ic812kdhmjj2ihyvsx-bashrun2-0.2.6/bin/brwctlβ small utilty program for window management
π BUGS AND FEEDBACK π
Please file bugs and feature requests on the GitHub issue tracker:
https://github.com/hbekel/bashrun2/issues
Also feel free to mail me directly using the email adress below. Questions, comments, suggestions, feedback of any kind is greatly appreciated. π
π AUTHOR π
Henning Liebenau <henning dot liebenau at protonmail dot com>
π SEE ALSO π
bash(1) readline(3) xterm(1) su(1) stty(1)
Okay thatβs the whole page, bestie π«Ά β source/version Linux, dated 2020-12-15, and itβs BASHRUN2(1). Mwah πβ¨
π¦ where this page comes from
- nixos 26.05: bashrun2 0.2.6
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms