Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

wlib.wrapperModules.tmux

aggressiveResize

Value for setw -g aggressive-resize.

Type: boolean

Default: false

Declared by:

allowPassthrough

Value for set -gq allow-passthrough.

Type: boolean

Default: true

Declared by:

baseIndex

Value for set -g base-index.

Type: signed integer

Default: 1

Declared by:

clock24

use 24 hour clock instead of 12 hour clock

Type: boolean

Default: true

Declared by:

configAfter

configuration to run after all tmux plugins are sourced

Type: strings concatenated with “\n”

Default: ""

Declared by:

configBefore

configuration to run before all tmux plugins are sourced

Type: strings concatenated with “\n”

Default: ""

Declared by:

disableConfirmationPrompt

disable the confirmation prompt for kill-window and kill-pane keybindings.

Type: boolean

Default: true

Declared by:

displayPanesColour

Value for set -g display-panes-colour.

Type: string

Default: "default"

Declared by:

escapeTime

Value for set -s escape-time.

Type: signed integer

Default: 500

Declared by:

historyLimit

Value for set -g history-limit.

Type: signed integer

Default: 2000

Declared by:

modeKeys

Value for set -g mode-keys.

Type: string

Default: "emacs"

Declared by:

mouse

Enable mouse mode.

Type: boolean

Default: true

Declared by:

paneBaseIndex

Value for setw -g pane-base-index.

Type: signed integer

Default: 1

Declared by:

plugins

List of tmux plugins to source.

Type: list of (package or (submodule))

Default: [ ]

Declared by:

prefix

Set the prefix key for tmux.

Type: string

Default: "C-b"

Declared by:

secureSocket

Store tmux socket under /run, which is more secure than /tmp, but as a downside it doesn’t survive user logout.

Type: boolean

Default: false

Declared by:

setEnvironment

attrset of environment variables to set when the tmux session is created. set-environment -g ${key} "${value}"

Type: attribute set of (string or package)

Default: { }

Declared by:

shell

set -g default-shell

Type: null or string

Default: null

Declared by:

sourceSensible

Start with defaults from tmuxPlugins.sensible

Type: boolean

Default: true

Declared by:

statusKeys

Value for set -g status-keys.

Type: string

Default: "emacs"

Declared by:

terminal

Value for set -g default-terminal.

Type: string

Default: "screen"

Declared by:

terminalOverrides

Value for set -ga terminal-overrides.

Type: null or string

Default: null

Declared by:

updateEnvironment

List of environment variables to update when the tmux session is created. set-option -ga update-environment <your list of variables>

Type: list of string

Default:

[
  "TERM"
  "TERM_PROGRAM"
]

Declared by:

vimVisualKeys

v and y keybindings for copy-mode-vi.

Type: boolean

Default: false

Declared by:

visualActivity

Value for set -g visual-activity.

Type: boolean

Default: false

Declared by:

aliases

Aliases for the package to also be added to the PATH

Type: list of string

Default: [ ]

Declared by:

filesToExclude

List of file paths (glob patterns) relative to package root to exclude from the wrapped package. This allows filtering out unwanted binaries or files. Example: [ "bin/unwanted-tool" "share/applications/*.desktop" ]

Type: list of string

Default: [ ]

Declared by:

filesToPatch

List of file paths (glob patterns) relative to package root to patch for self-references. Desktop files are patched by default to update Exec= and Icon= paths.

Type: list of string

Default:

[
  "share/applications/*.desktop"
]

Declared by:

addFlag

Wrapper for

–add-flag ARG

Prepend the single argument ARG to the invocation of the executable, before any command-line arguments.

This option takes a list. To group them more strongly, option may take a list of lists as well.

Any entry can instead be of type { data, name ? null, before ? [], after ? [], esc-fn ? null }

This will cause it to be added to the DAG.

If no name is provided, it cannot be targeted.

Type: DAG LIST (with extra field: `esc-fn`) of str|path|drv or list of str|path|drv

Default: [ ]

Example:

[
  "-v"
  "-f"
  [
    "--config"
    "\${./storePath.cfg}"
  ]
  [
    "-s"
    "idk"
  ]
]

Declared by:

appendFlag

–append-flag ARG

Append the single argument ARG to the invocation of the executable, after any command-line arguments.

This option takes a list. To group them more strongly, option may take a list of lists as well.

Any entry can instead be of type { data, name ? null, before ? [], after ? [], esc-fn ? null }

This will cause it to be added to the DAG.

If no name is provided, it cannot be targeted.

Type: DAG LIST (with extra field: `esc-fn`) of str|path|drv or list of str|path|drv

Default: [ ]

Example:

[
  "-v"
  "-f"
  [
    "--config"
    "\${./storePath.cfg}"
  ]
  [
    "-s"
    "idk"
  ]
]

Declared by:

argv0

–argv0 NAME

Set the name of the executed process to NAME. If unset or null, defaults to EXECUTABLE.

overrides the setting from argv0type if set.

Type: null or string

Default: null

Declared by:

argv0type

argv0 overrides this option if not null or unset

Both shell and the nix implementations ignore this option, as the shell always resolves $0

However, the binary implementation will use this option

Values:

  • "inherit":

The executable inherits argv0 from the wrapper. Use instead of --argv0 '$0'.

  • "resolve":

If argv0 does not include a “/” character, resolve it against PATH.

  • Function form: str -> str

This one works only in the nix implementation. The others will treat it as inherit

Rather than calling exec, you get the command plus all its flags supplied, and you can choose how to run it.

e.g. command_string: "eval \"$(${command_string})\";

It will also be added to the end of the overall DAL, with the name NIX_RUN_MAIN_PACKAGE

Thus, you can make things run after it, but by default it is still last.

Type: one of “resolve”, “inherit” or function that evaluates to a(n) string

Default: "inherit"

Declared by:

chdir

–chdir DIR

Change working directory before running the executable. Use instead of --run "cd DIR".

Type: DAG LIST (with extra field: `esc-fn`) of str|path|drv

Default: [ ]

Declared by:

env

Environment variables to set in the wrapper.

This option takes a set.

Any entry can instead be of type { data, before ? [], after ? [], esc-fn ? null }

This will cause it to be added to the DAG, which will cause the resulting wrapper argument to be sorted accordingly

Type: DAG (with extra field: `esc-fn`) of str|path|drv

Default: { }

Example:

{
  XDG_DATA_HOME = "/somewhere/on/your/machine";
}

Declared by:

envDefault

Environment variables to set in the wrapper.

Like env, but only adds the variable if not already set in the environment.

This option takes a set.

Any entry can instead be of type { data, before ? [], after ? [], esc-fn ? null }

This will cause it to be added to the DAG, which will cause the resulting wrapper argument to be sorted accordingly

Type: DAG (with extra field: `esc-fn`) of str|path|drv

Default: { }

Example:

{
  XDG_DATA_HOME = "/only/if/not/set";
}

Declared by:

escapingFunction

The function to use to escape shell values

Caution: When using shell or binary implementations, these will be expanded at BUILD time.

You should probably leave this as is when using either of those implementations.

However, when using the nix implementation, they will expand at runtime! Which means wlib.escapeShellArgWithEnv may prove to be a useful substitute!

Type: function that evaluates to a(n) string

Default: "lib.escapeShellArg"

Declared by:

extraPackages

Additional packages to add to the wrapper’s runtime PATH. This is useful if the wrapped program needs additional libraries or tools to function correctly.

Adds all its entries to the DAG under the name NIX_PATH_ADDITIONS

Type: list of package

Default: [ ]

Declared by:

flagSeparator

Separator between flag names and values when generating args from flags. " " for --flag value or "=" for --flag=value

Type: string

Default: " "

Declared by:

flags

Flags to pass to the wrapper. The key is the flag name, the value is the flag value. If the value is true, the flag will be passed without a value. If the value is false or null, the flag will not be passed. If the value is a list, the flag will be passed multiple times with each value.

This option takes a set.

Any entry can instead be of type { data, before ? [], after ? [], esc-fn ? null, sep ? null }

The sep field may be used to override the value of config.flagSeparator

This will cause it to be added to the DAG, which will cause the resulting wrapper argument to be sorted accordingly

Type: DAG (with extra fields: `esc-fn`, `sep`) of null or boolean or str|path|drv or list of str|path|drv

Default: { }

Example:

{
  "--config" = "\${./nixPath}";
}

Declared by:

prefixContent

[
  [ "ENV" "SEP" "FILE" ]
]

Prefix ENV with contents of FILE and SEP at build time.

Also accepts sets like the other options

[
  [ "ENV" "SEP" "FILE" ]
  { data = [ "ENV" "SEP" "FILE" ]; esc-fn = lib.escapeShellArg; /* name, before, after */ }
]

Type: DAG LIST (with extra field: `esc-fn`) of (List of length 3)

Default: [ ]

Declared by:

prefixVar

–prefix ENV SEP VAL

Prefix ENV with VAL, separated by SEP.

Type: DAG LIST (with extra field: `esc-fn`) of (List of length 3)

Default: [ ]

Example:

[
  [
    "LD_LIBRARY_PATH"
    ":"
    "\${lib.makeLibraryPath (with pkgs; [ ... ])}"
  ]
  [
    "PATH"
    ":"
    "\${lib.makeBinPath (with pkgs; [ ... ])}"
  ]
]

Declared by:

runShell

–run COMMAND

Run COMMAND before executing the main program.

This option takes a list.

Any entry can instead be of type { data, name ? null, before ? [], after ? [], esc-fn ? null }

This will cause it to be added to the DAG.

If no name is provided, it cannot be targeted.

Type: DAG LIST (with extra field: `esc-fn`) of str|path|drv

Default: [ ]

Declared by:

runtimeLibraries

Additional libraries to add to the wrapper’s runtime LD_LIBRARY_PATH. This is useful if the wrapped program needs additional libraries or tools to function correctly.

Adds all its entries to the DAG under the name NIX_LIB_ADDITIONS

Type: list of package

Default: [ ]

Declared by:

suffixContent

[
  [ "ENV" "SEP" "FILE" ]
]

Suffix ENV with SEP and then the contents of FILE at build time.

Also accepts sets like the other options

[
  [ "ENV" "SEP" "FILE" ]
  { data = [ "ENV" "SEP" "FILE" ]; esc-fn = lib.escapeShellArg; /* name, before, after */ }
]

Type: DAG LIST (with extra field: `esc-fn`) of (List of length 3)

Default: [ ]

Declared by:

suffixVar

–suffix ENV SEP VAL

Suffix ENV with VAL, separated by SEP.

Type: DAG LIST (with extra field: `esc-fn`) of (List of length 3)

Default: [ ]

Example:

[
  [
    "LD_LIBRARY_PATH"
    ":"
    "\${lib.makeLibraryPath (with pkgs; [ ... ])}"
  ]
  [
    "PATH"
    ":"
    "\${lib.makeBinPath (with pkgs; [ ... ])}"
  ]
]

Declared by:

unsetVar

–unset VAR

Remove VAR from the environment.

Type: DAG LIST (with extra field: `esc-fn`) of string

Default: [ ]

Declared by:

wrapperImplementation

the nix implementation is the default

It makes the escapingFunction most relevant.

This is because the shell and binary implementations use pkgs.makeWrapper or pkgs.makeBinaryWrapper, and arguments to these functions are passed at BUILD time.

So, generally, when not using the nix implementation, you should always prefer to have escapingFunction set to lib.escapeShellArg.

However, if you ARE using the nix implementation, using wlib.escapeShellArgWithEnv will allow you to use $ expansions, which will expand at runtime.

binary implementation is useful for programs which are likely to be used in “shebangs”, as macos will not allow scripts to be used for these.

However, it is more limited. It does not have access to runShell, prefixContent, and suffixContent options.

Chosing binary will thus cause values in those options to be ignored.

Type: one of “nix”, “shell”, “binary”

Default: "nix"

Declared by: