Hjem Rum Options
rum.desktops.hyprland.enable Link copied!
booleanWhether to enable Hyprland.
falsetrue<hjem-rum/modules/collection/desktops/hyprland.nix>rum.desktops.hyprland.extraConfig Link copied!
strings concatenated with "\n"Extra configuration that will be appended verbatim at the end of ~/.config/hypr/hyprland.conf.
""<hjem-rum/modules/collection/desktops/hyprland.nix>rum.desktops.hyprland.importantPrefixes Link copied!
list of stringList of prefix of attributes to source at the top of the config.
[
"$"
"bezier"
"name"
][
"$"
"bezier"
]<hjem-rum/modules/collection/desktops/hyprland.nix>rum.desktops.hyprland.plugins Link copied!
list of (package or absolute path)List of Hyprland plugins to use. Can either be packages or absolute plugin paths.
[ ]<hjem-rum/modules/collection/desktops/hyprland.nix>rum.desktops.hyprland.settings Link copied!
Hyprland configuration valueHyprland configuration written in Nix. Entries with the same key should be written as lists. Variables' and colors' names should be quoted. See Hyprland's documentation for more examples.
{ }{
"\$mod" = "SUPER";
decoration = {
rounding = "3";
};
}<hjem-rum/modules/collection/desktops/hyprland.nix>rum.desktops.niri.binds Link copied!
attribute set of (submodule)A list of key bindings that will be added to the configuration file. See niri's wiki for a complete list.
{ }{
"Mod+D" = {
action = "close-window";
parameters = {
repeat = false;
};
};
"Mod+Return" = {
parameters = {
allow-when-locked = true;
cooldown-ms = 150;
};
spawn = [
"foot"
"-e"
"fish"
];
};
}<hjem-rum/modules/collection/desktops/niri.nix>rum.desktops.niri.binds.<name>.action Link copied!
null or stringThe non-spawn action to run on button-press. For spawning processes, please see
binds.<keybind>.spawn. See niri's wiki for a complete list.
null"focus-column-left"<hjem-rum/modules/collection/desktops/niri.nix>rum.desktops.niri.binds.<name>.parameters Link copied!
attribute set of anythingThe parameters to append to the bind. See niri's wiki for a complete list.
{ }{
allow-when-locked = true;
cooldown-ms = 150;
}<hjem-rum/modules/collection/desktops/niri.nix>rum.desktops.niri.binds.<name>.spawn Link copied!
null or (list of string)The spawn action to run on button-press. For other actions, please see
binds.<keybind>.action. See niri's wiki for more information.
null[
"foot"
"-e"
"fish"
]<hjem-rum/modules/collection/desktops/niri.nix>rum.desktops.niri.config Link copied!
strings concatenated with "\n"Lines of KDL code that are added to $HOME/.config/niri/config.kdl.
See a full list of options in niri's wiki.
To add to environment, please see extraVariables.
Here's an example of adding a file to your niri configuration:
config = builtins.readFile ./config.kdl;
Optionally, you can split your niri configuration into multiple KDL files like so:
config = (lib.concatMapStringsSep "\n" builtins.readFile [./config.kdl ./binds.kdl]);
Finally, if you need to interpolate some Nix variables into your configuration:
config = builtins.readFile ./config.kdl
+
# kdl
''
focus-ring {
active-color ${config.local.colors.border-active}
}
'';
""screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
switch-events {
tablet-mode-on { spawn "${pkgs.bash.out}/bin/bash" "-c" "gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled true"; }
tablet-mode-off { spawn "${pkgs.bash.out}/bin/bash" "-c" "gsettings set org.gnome.desktop.a11y.applications screen-keyboard-enabled false"; }
}
<hjem-rum/modules/collection/desktops/niri.nix>rum.desktops.niri.enable Link copied!
booleanWhether to enable niri: A scrollable-tiling Wayland compositor.
falsetrue<hjem-rum/modules/collection/desktops/niri.nix>rum.desktops.niri.extraVariables Link copied!
attribute set of (null or (list of (signed integer or string or absolute path)) or signed integer or string or absolute path)Extra environmental variables to be added to Niri's environment node.
This can be used to override variables set in environment.sessionVariables.
You can therefore set a variable to null to force unset it in Niri. Learn more from niri's wiki.
{ }{
DISPLAY = ":0";
}<hjem-rum/modules/collection/desktops/niri.nix>rum.desktops.niri.package Link copied!
null or packageThe niri package to use. Only used to validate the generated config file. Set to null to
disable the check phase.
osConfig.programs.niri.package<hjem-rum/modules/collection/desktops/niri.nix>rum.desktops.niri.spawn-at-startup Link copied!
list of list of stringA list of programs to be loaded with niri on startup. see niri's wiki for more details on the API.
[ ][
["waybar"]
["${pkgs.alacritty.out}/bin/alacritty" "-e" "fish"]
]
<hjem-rum/modules/collection/desktops/niri.nix>rum.environment.hideWarning Link copied!
booleanWhether to enable a warning for env vars not being implemented.
falsetruerum.misc.gtk.bookmarks Link copied!
list of stringBookmarks used by GTK file managers (ex. Nautilus). Each entry should have one of the following formats:
[uri][uri] <display name>
[ ][
"file:///home/user/Documents Documents"
"file:///home/user/Music Music"
"file:///home/user/Pictures Pictures"
"file:///home/user/Videos Videos"
"file:///home/user/Downloads Downloads"
]<hjem-rum/modules/collection/misc/gtk.nix>rum.misc.gtk.css.gtk3 Link copied!
strings concatenated with "\n"CSS to be written to $XDG_CONFIG_HOME/gtk-3.0/gtk.css.
You can either use this as lines or you can reference
a CSS file from your theme's package (or both).
""<hjem-rum/modules/collection/misc/gtk.nix>rum.misc.gtk.css.gtk4 Link copied!
strings concatenated with "\n"CSS to be written to $XDG_CONFIG_HOME/gtk-4.0/gtk.css.
You can either use this as lines or you can reference
a CSS file from your theme's package (or both).
""<hjem-rum/modules/collection/misc/gtk.nix>rum.misc.gtk.enable Link copied!
booleanWhether to enable GTK configuration.
falsetrue<hjem-rum/modules/collection/misc/gtk.nix>rum.misc.gtk.packages Link copied!
list of packageThe list of packages to be installed for gtk themes. This list should consist of any packages that will be used by your GTK theme(s).
[ ][
(pkgs.catppuccin-papirus-folders.override {
accent = "rosewater";
flavor = "mocha";
})
pkgs.bibata-cursors
];
<hjem-rum/modules/collection/misc/gtk.nix>rum.misc.gtk.settings Link copied!
attribute set of (boolean or signed integer or floating point number or string)The settings that will be written to the various gtk files to configure the GTK theme. GTK documentation is perhaps nebulous, but the Arch Wiki entry and the official GTK documentation are decent places to start.
Please note that each option name will have "gtk-" prepended to it, so there is no need to include that on every single option.
{ }{
application-prefer-dark-theme = true;
font-name = "Sans 11";
theme-name = "Arc-Dark";
}<hjem-rum/modules/collection/misc/gtk.nix>rum.programs.alacritty.enable Link copied!
booleanWhether to enable Alacritty.
falsetrue<hjem-rum/modules/collection/programs/alacritty.nix>rum.programs.alacritty.package Link copied!
null or packageThe alacritty package to use.
pkgs.alacritty<hjem-rum/modules/collection/programs/alacritty.nix>rum.programs.alacritty.settings Link copied!
TOML valueThe configuration converted into TOML and written to
$XDG_CONFIG_HOME/alacritty/alacritty.toml.
Please reference Alacritty's documentation
for config options.
{ }{
window = {
dimensions = {
columns = 101;
lines = 28;
};
padding = {
x = 6;
y = 3;
};
};
}<hjem-rum/modules/collection/programs/alacritty.nix>rum.programs.beets.enable Link copied!
booleanWhether to enable beets.
falsetrue<hjem-rum/modules/collection/programs/beets.nix>rum.programs.beets.package Link copied!
null or packageThe beets package to use. To get plugins to work, you will need to override the beets derivation with the plugins you want. Consult the beets derivation for a list of available plugins.
pkgs.beetspkgs.beets.override {
pluginOverrides = {
fish.enable = true;
convert.enable = true;
};
};
<hjem-rum/modules/collection/programs/beets.nix>rum.programs.beets.settings Link copied!
YAML 1.1 valueBeets configuration that is written to $XDG_CONFIG_HOME/beets/config.yaml.
Refer to the beets documentation for available options.
If you would like to use plugins, please consult the description of rum.programs.beets.package and the official plugin documentation on the plugins configuration.
{ }{
asciify_paths = true;
convert = {
auto = "yes";
format = "flac";
never_convert_lossy_files = "yes";
};
directory = "/mnt/music";
import = {
bell = "yes";
incremental = "yes";
languages = "en";
};
library = "/mnt/music/library.db";
per_disc_numbering = "yes";
plugins = "fish convert chroma";
}<hjem-rum/modules/collection/programs/beets.nix>rum.programs.bottom.enable Link copied!
booleanWhether to enable bottom.
falsetrue<hjem-rum/modules/collection/programs/bottom.nix>rum.programs.bottom.package Link copied!
null or packageThe bottom package to use.
pkgs.bottom<hjem-rum/modules/collection/programs/bottom.nix>rum.programs.bottom.settings Link copied!
TOML valueThe configuration converted into TOML and written to
$XDG_CONFIG_HOME/bottom/bottom.toml.
Please reference bottom's config file documentation for config options.
{ }{
flags = {
battery = true;
tree = true;
};
styles = {
battery = {
high_battery_color = "Pink";
};
};
}<hjem-rum/modules/collection/programs/bottom.nix>rum.programs.direnv.direnvrc Link copied!
strings concatenated with "\n"Bash code loaded before every .envrc. Good for personal extensions.
Find community-maintained examples in direnv's wiki
""''
: ''${XDG_CACHE_HOME:=$HOME/.cache}
declare -A direnv_layout_dirs
direnv_layout_dir() {
echo "''${direnv_layout_dirs[$PWD]:=$(
echo -n "$XDG_CACHE_HOME"/direnv/layouts/
echo -n "$PWD" | sha1sum | cut -d ' ' -f 1
)}"
}
''<hjem-rum/modules/collection/programs/direnv.nix>rum.programs.direnv.enable Link copied!
booleanWhether to enable direnv.
falsetrue<hjem-rum/modules/collection/programs/direnv.nix>rum.programs.direnv.integrations.fish.enable Link copied!
booleanWhether to enable direnv integration with fish.
falsetrue<hjem-rum/modules/collection/programs/direnv.nix>rum.programs.direnv.integrations.nix-direnv.enable Link copied!
booleanWhether to enable direnv integration with nix-direnv.
truefalse<hjem-rum/modules/collection/programs/direnv.nix>rum.programs.direnv.integrations.nix-direnv.package Link copied!
packageThe nix-direnv package to use.
pkgs.nix-direnv<hjem-rum/modules/collection/programs/direnv.nix>rum.programs.direnv.integrations.nushell.enable Link copied!
booleanWhether to enable direnv integration with nushell.
falsetrue<hjem-rum/modules/collection/programs/direnv.nix>rum.programs.direnv.integrations.zsh.enable Link copied!
booleanWhether to enable direnv integration with zsh.
falsetrue<hjem-rum/modules/collection/programs/direnv.nix>rum.programs.direnv.package Link copied!
null or packageThe direnv package to use.
pkgs.direnv<hjem-rum/modules/collection/programs/direnv.nix>rum.programs.direnv.settings Link copied!
TOML valueConfiguration written to $XDG_CONFIG_HOME/direnv/direnv.toml.
Please reference direnv's documentation for config options.
{ }{
global = {
warn_timeout = "0s";
};
whitelist = {
prefix = [
"~/src"
];
};
}<hjem-rum/modules/collection/programs/direnv.nix>rum.programs.fish.abbrs Link copied!
attribute set of strings concatenated with "\n"A set of fish abbreviations, they will be set up with the abbr --add fish builtin.
{ }<hjem-rum/modules/collection/programs/fish.nix>rum.programs.fish.aliases Link copied!
attribute set of strings concatenated with "\n"A set of fish aliases, they will be set up with the alias fish builtin.
{ }<hjem-rum/modules/collection/programs/fish.nix>rum.programs.fish.config Link copied!
strings concatenated with "\n"The main configuration for fish, written verbatim to .config/fish/config.fish.
""<hjem-rum/modules/collection/programs/fish.nix>rum.programs.fish.earlyConfigFiles Link copied!
attribute set of strings concatenated with "\n"Extra configuration files, they will all be written verbatim
to $XDG_CONFIG_HOME/fish/conf.d/<name>.fish.
Those files are run before $XDG_CONFIG_HOME/fish/config.fish as per the fish documentation.
{ }{
set-path = "fish_add_path ~/.local/bin";
}<hjem-rum/modules/collection/programs/fish.nix>rum.programs.fish.enable Link copied!
booleanWhether to enable fish.
falsetrue<hjem-rum/modules/collection/programs/fish.nix>rum.programs.fish.functions Link copied!
attribute set of (strings concatenated with "\n" or absolute path)A fish function which is being written to .config/fish/functions/<name>.fish.
If the input value is a string, its contents will be wrapped inside of a function declaration, like so:
function <name>;
<function body>
end
Otherwise you are expected to handle that yourself.
{ }{
fish_prompt = pkgs.writers.writeFish "fish_prompt.fish" '\'
function fish_prompt -d "Write out the prompt"
# This shows up as USER@HOST /home/user/ >, with the directory colored
# $USER and $hostname are set by fish, so you can just use them
# instead of using `whoami` and `hostname`
printf '%s@%s %s%s%s > ' $USER $hostname \
(set_color $fish_color_cwd) (prompt_pwd) (set_color normal)
end
'\';
hello-world = '\'
echo Hello, World!
'\';
}<hjem-rum/modules/collection/programs/fish.nix>rum.programs.fish.package Link copied!
null or packageThe fish package to use.
pkgs.fish<hjem-rum/modules/collection/programs/fish.nix>rum.programs.fish.plugins Link copied!
attribute set of absolute pathAn attrset of plugins.
In the case where a plugin is a 'vendored' plugin, all we are doing is adding that
plugin to hjem.users.<name>.packages. As fish automatically discovers those files.
A vendored plugin is denoted by the existence of one of the following files in its derivation:
- /share/fish/vendor_conf.d
- /share/fish/vendor_completions.d
- /share/fish/vendor_functions.d
This will be the case with plugins present in pkgs.fishPlugins.
For the remaining cases, a file will be created at ~/.config/fish/conf.d/rum-plugin-<name>.fish.
It will attempt to handle or source a variety of expected files from the derivation. Those files are:
/functions: is added tofish_function_path/completions: is added tofish_complete_path/conf.d/*,/key_bindings.fish,/init.fish: sourced in this order
If a plugin seems to not work, verify that it contains one of the aformentioned files.
{ }{
inherit (pkgs.fishPlugins) z;
pisces = pkgs.fetchFromGitHub {
owner = "laughedelic";
repo = "pisces";
tag = "v0.7.0";
hash = "sha256-Oou2IeNNAqR00ZT3bss/DbhrJjGeMsn9dBBYhgdafBw=";
};
};
<hjem-rum/modules/collection/programs/fish.nix>rum.programs.flameshot.enable Link copied!
booleanWhether to enable flameshot.
falsetrue<hjem-rum/modules/collection/programs/flameshot.nix>rum.programs.flameshot.package Link copied!
null or packageThe flameshot package to use.
pkgs.flameshot<hjem-rum/modules/collection/programs/flameshot.nix>rum.programs.flameshot.settings Link copied!
attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))Configuration written to $XDG_CONFIG_HOME/flameshot/flameshot.ini.
Please reference flameshot's example config for config options.
{ }{
General = {
disabledTrayIcon = true;
saveLastRegion = true;
showDesktopNotification = false;
showStartupLaunchMessage = false;
};
}<hjem-rum/modules/collection/programs/flameshot.nix>rum.programs.foot.enable Link copied!
booleanWhether to enable foot.
falsetrue<hjem-rum/modules/collection/programs/foot.nix>rum.programs.foot.package Link copied!
null or packageThe foot package to use.
pkgs.foot<hjem-rum/modules/collection/programs/foot.nix>rum.programs.foot.settings Link copied!
attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))Settings are written as an INI file to $XDG_CONFIG_HOME/foot/foot.ini.
Refer to foot.ini(5) or the upstream template for all available options.
{ }{
colors = {
alpha = 0.8;
};
main = {
font = "NotoSansM Nerd Font Mono:size=13";
term = "xterm-256color";
};
mouse = {
hide-when-typing = "yes";
};
scrollback = {
indicator-position = "none";
lines = 90000;
};
}<hjem-rum/modules/collection/programs/foot.nix>rum.programs.fuzzel.enable Link copied!
booleanWhether to enable fuzzel.
falsetrue<hjem-rum/modules/collection/programs/fuzzel.nix>rum.programs.fuzzel.package Link copied!
null or packageThe fuzzel package to use.
pkgs.fuzzel<hjem-rum/modules/collection/programs/fuzzel.nix>rum.programs.fuzzel.settings Link copied!
attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))Is written to $HOME/fuzzel/fuzzel.ini.
Please reference fuzzel.ini(5) for configuration options.
{ }{
colors = {
background = "ffffffff";
};
main = {
layer = "overlay";
terminal = "foot";
};
}<hjem-rum/modules/collection/programs/fuzzel.nix>rum.programs.fzf.enable Link copied!
booleanWhether to enable fzf.
falsetrue<hjem-rum/modules/collection/programs/fzf.nix>rum.programs.fzf.integrations.fish.enable Link copied!
booleanWhether to enable fzf integration with fish.
falsetrue<hjem-rum/modules/collection/programs/fzf.nix>rum.programs.fzf.integrations.zsh.enable Link copied!
booleanWhether to enable fzf integration with zsh.
falsetrue<hjem-rum/modules/collection/programs/fzf.nix>rum.programs.fzf.package Link copied!
null or packageThe fzf package to use.
pkgs.fzf<hjem-rum/modules/collection/programs/fzf.nix>rum.programs.gammastep.enable Link copied!
booleanWhether to enable gammastep.
falsetrue<hjem-rum/modules/collection/programs/gammastep.nix>rum.programs.gammastep.package Link copied!
null or packageThe gammastep package to use.
pkgs.gammastep<hjem-rum/modules/collection/programs/gammastep.nix>rum.programs.gammastep.settings Link copied!
attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))Settings are written as an INI file to $XDG_CONFIG_HOME/gammastep/config.ini.
Refer to gammastep's example configuration all available options.
{ }{
general = {
location-provider = "manual";
temp-day = 5000;
};
manual = {
lat = -12.5;
lon = 55.6;
};
}<hjem-rum/modules/collection/programs/gammastep.nix>rum.programs.ghostty.enable Link copied!
booleanWhether to enable Ghostty.
falsetrue<hjem-rum/modules/collection/programs/ghostty.nix>rum.programs.ghostty.package Link copied!
null or packageThe ghostty package to use. You can use an override to configure some settings baked into the package.
pkgs.ghosttypkgs.ghostty.override {
withAdwaita = true;
};
<hjem-rum/modules/collection/programs/ghostty.nix>rum.programs.ghostty.settings Link copied!
attribute set of (atom (null, bool, int, float or string) or a list of them for duplicate keys)The configuration converted to INI and written to $XDG_CONFIG_HOME/ghostty/config.
Please consult Ghostty's option reference
for configuration options.
{ }{
font-size = 10;
keybind = [
"ctrl+h=goto_split:left"
"ctrl+l=goto_split:right"
];
theme = "example-theme";
}<hjem-rum/modules/collection/programs/ghostty.nix>rum.programs.ghostty.themes Link copied!
attribute set of attribute set of (atom (null, bool, int, float or string) or a list of them for duplicate keys)An attribute set of themes, with the key as the theme name. Please reference Ghostty's color theme documentation for configuration options.
{ }{
example-theme = {
background = "#303446";
cursor-color = "#f2d5cf";
cursor-text = "#c6d0f5";
foreground = "#c6d0f5";
palette = [
"0=#51576d"
"1=#e78284"
"2=#a6d189"
"3=#e5c890"
"4=#8caaee"
"5=#f4b8e4"
"6=#81c8be"
"7=#a5adce"
"8=#626880"
"9=#e67172"
"10=#8ec772"
"11=#d9ba73"
"12=#7b9ef0"
"13=#f2a4db"
"14=#5abfb5"
"15=#b5bfe2"
];
selection-background = "#626880";
selection-foreground = "#c6d0f5";
};
}<hjem-rum/modules/collection/programs/ghostty.nix>rum.programs.git.attributes Link copied!
strings concatenated with "\n"Global user-level version of .gitattributes written to
$XDG_CONFIG_HOME/git/attributes.
""''
# Auto detect text files and perform LF normalization
* text=auto
# Detect Markdown files
*.md linguist-detectable=true
''<hjem-rum/modules/collection/programs/git.nix>rum.programs.git.enable Link copied!
booleanWhether to enable git.
falsetrue<hjem-rum/modules/collection/programs/git.nix>rum.programs.git.ignore Link copied!
strings concatenated with "\n"Global user-level version of .gitignore written to
$XDG_CONFIG_HOME/git/ignore.
""''
.direnv
''<hjem-rum/modules/collection/programs/git.nix>rum.programs.git.integrations.difftastic.enable Link copied!
booleanWhether to enable git integration with difftastic.
falsetrue<hjem-rum/modules/collection/programs/git.nix>rum.programs.git.integrations.difftastic.flags Link copied!
list of stringCommand-line flags passed to difft. Please run difft --help for
configuration options.
[ ][
"--background light"
"--display inline"
"--ignore-comments"
]<hjem-rum/modules/collection/programs/git.nix>rum.programs.git.integrations.difftastic.package Link copied!
packageThe difftastic package to use.
pkgs.difftastic<hjem-rum/modules/collection/programs/git.nix>rum.programs.git.package Link copied!
null or packageThe git package to use.
pkgs.git<hjem-rum/modules/collection/programs/git.nix>rum.programs.git.settings Link copied!
attribute set of attribute set of (INI atom (null, bool, int, float or string) or attribute set of (INI atom (null, bool, int, float or string)))Settings that will be written to your configuration file.
{ }{
diff = {
colorMoved = "default";
};
init = {
defaultBranch = "main";
};
merge = {
conflictstyle = "diff3";
};
user = {
email = "alice@example.com";
name = "alice";
};
}<hjem-rum/modules/collection/programs/git.nix>rum.programs.helix.enable Link copied!
booleanWhether to enable Helix.
falsetrue<hjem-rum/modules/collection/programs/helix.nix>rum.programs.helix.languages Link copied!
TOML valueThe languages configurations converted into TOML and written to
$XDG_CONFIG_HOME/helix/languages.toml. Please reference
Helix's language documentation for config options.
{ }{
language-server = {
vscode-json-language-server = {
command = "vscode-json-languageserver";
};
};
}<hjem-rum/modules/collection/programs/helix.nix>rum.programs.helix.package Link copied!
null or packageThe helix package to use.
pkgs.helix<hjem-rum/modules/collection/programs/helix.nix>rum.programs.helix.settings Link copied!
TOML valueThe editor configuration converted into TOML and written to
$XDG_CONFIG_HOME/helix/config.toml. Please reference
Helix's documentation for config options.
{ }{
editor = {
editor = {
statusline = {
left = [
"mode"
"spinner"
];
};
};
line-number = "relative";
};
}<hjem-rum/modules/collection/programs/helix.nix>rum.programs.helix.themes Link copied!
attribute set of (TOML value)The custom themes converted into TOML and written to
$XDG_CONFIG_HOME/helix/themes/. Please reference
Helix's theming documentation for config options.
{ }{
theme1 = {
palette = {
black = "#000000";
white = "#ffffff";
};
"ui.background" = "white";
"ui.text" = "black";
};
}<hjem-rum/modules/collection/programs/helix.nix>rum.programs.hypridle.enable Link copied!
booleanWhether to enable hypridle.
falsetrue<hjem-rum/modules/collection/programs/hypridle.nix>rum.programs.hypridle.package Link copied!
null or packageThe hypridle package to use.
pkgs.hypridle<hjem-rum/modules/collection/programs/hypridle.nix>rum.programs.hypridle.settings Link copied!
Hyprland configuration valueIs written to $HOME/hypr/hypridle.conf.
Configuration options can be found on the Hyprland Wiki.
{ }{
general = {
after_sleep_cmd = "notify-send \"Awake!\"";
before_sleep_cmd = "notify-send \"Zzz\"";
ignore_dbus_inhibit = false;
ignore_systemd_inhibit = false;
lock_cmd = "notify-send \"lock!\"";
unlock_cmd = "notify-send \"unlock!\"";
};
listener = [
{
on-resume = "notify-send \"Welcome back!\"";
on-timeout = "notify-send \"You are idle!\"";
timeout = 500;
}
];
}<hjem-rum/modules/collection/programs/hypridle.nix>rum.programs.hyprlock.enable Link copied!
booleanWhether to enable hyprlock.
falsetrue<hjem-rum/modules/collection/programs/hyprlock.nix>rum.programs.hyprlock.package Link copied!
null or packageThe hyprlock package to use.
pkgs.hyprlock<hjem-rum/modules/collection/programs/hyprlock.nix>rum.programs.hyprlock.settings Link copied!
Hyprland configuration valueIs written to $HOME/hypr/hyprlock.conf.
Configuration options can be found on the Hyprland Wiki.
{ }{
background = [
{
blur_passes = 3;
blur_size = 8;
path = "screenshot";
}
];
general = {
hide_cursor = true;
no_fade_in = false;
};
}<hjem-rum/modules/collection/programs/hyprlock.nix>rum.programs.keepassxc.enable Link copied!
booleanWhether to enable KeePassXC.
falsetrue<hjem-rum/modules/collection/programs/keepassxc.nix>rum.programs.keepassxc.package Link copied!
null or packageThe keepassxc package to use.
pkgs.keepassxc<hjem-rum/modules/collection/programs/keepassxc.nix>rum.programs.keepassxc.settings Link copied!
attribute set of section of an INI file (attrs of INI atom (null, bool, int, float or string))Settings are written as an INI file to $XDG_CONFIG_HOME/keepassxc/keepassxc.ini. Please reference
KeePassXC's User Guide.
It also can be configured by toggling options through the GUI, but this does not seem documented.
{ }{
GUI = {
ColorPasswords = true;
MinimizeOnClose = true;
MinimizeOnStartup = true;
MinimizeToTray = true;
ShowTrayIcon = true;
TrayIconAppearance = "colorful";
};
General = {
BackupBeforeSave = true;
ConfigVersion = 2;
};
}<hjem-rum/modules/collection/programs/keepassxc.nix>rum.programs.kitty.enable Link copied!
booleanWhether to enable kitty.
falsetrue<hjem-rum/modules/collection/programs/kitty.nix>rum.programs.kitty.integrations.fish.enable Link copied!
booleanWhether to enable kitty integration with fish.
falsetrue<hjem-rum/modules/collection/programs/kitty.nix>rum.programs.kitty.integrations.zsh.enable Link copied!
booleanWhether to enable kitty integration with zsh.
falsetrue<hjem-rum/modules/collection/programs/kitty.nix>rum.programs.kitty.package Link copied!
null or packageThe kitty package to use.
pkgs.kitty<hjem-rum/modules/collection/programs/kitty.nix>rum.programs.kitty.settings Link copied!
attribute set of (atom (null, bool, int, float or string) or a list of them for duplicate keys)Configuration written to $XDG_CONFIG_HOME/kitty/kitty.conf.
Please reference kitty's documentation for config options.
{ }{
font_family = "RobotoMono";
}<hjem-rum/modules/collection/programs/kitty.nix>rum.programs.kitty.theme.dark Link copied!
null or absolute pathDark theme to be linked to $XDG_CONFIG_HOME/kitty/dark-theme.auto.conf.
This theme is set when your OS theme is set to dark.
Please reference kitty-themes' repository for available themes.
null"\${pkgs.kitty-themes}/share/kitty-themes/themes/1984_dark.conf"<hjem-rum/modules/collection/programs/kitty.nix>rum.programs.kitty.theme.light Link copied!
null or absolute pathLight theme to be linked to $XDG_CONFIG_HOME/kitty/light-theme.auto.conf.
This theme is set when your OS theme is set to light.
Please reference kitty-themes' repository for available themes.
null"\${pkgs.kitty-themes}/share/kitty-themes/themes/1984_light.conf"<hjem-rum/modules/collection/programs/kitty.nix>rum.programs.kitty.theme.no-preference Link copied!
null or absolute pathno-preference theme to be linked to $XDG_CONFIG_HOME/kitty/no-preference-theme.auto.conf.
This theme is set when your OS does not specify any theme preference.
Please reference kitty-themes' repository for available themes.
null"\${pkgs.kitty-themes}/share/kitty-themes/themes/default.conf"<hjem-rum/modules/collection/programs/kitty.nix>rum.programs.lsd.colors Link copied!
YAML 1.1 valueConfiguration written to $XDG_CONFIG_HOME/lsd/colors.yaml, defining the colors used by lsd.
Please reference lsd's color theme example to configure it accordingly.
{ }{
group = 187;
permission = {
read = "dark_green";
write = "dark_yellow";
};
user = 230;
}<hjem-rum/modules/collection/programs/lsd.nix>rum.programs.lsd.enable Link copied!
booleanWhether to enable LSD (LSDeluxe).
falsetrue<hjem-rum/modules/collection/programs/lsd.nix>rum.programs.lsd.icons Link copied!
YAML 1.1 valueConfiguration written to $XDG_CONFIG_HOME/lsd/icons.yaml, defining the icons used by lsd.
Please reference lsd's icon theme example to configure it accordingly.
{ }{
filetype = {
dir = "📂";
file = "📄";
pipe = "📩";
};
}<hjem-rum/modules/collection/programs/lsd.nix>rum.programs.lsd.package Link copied!
null or packageThe lsd package to use.
pkgs.lsd<hjem-rum/modules/collection/programs/lsd.nix>rum.programs.lsd.settings Link copied!
YAML 1.1 valueConfiguration written to $XDG_CONFIG_HOME/lsd/config.yaml, defining lsd settings.
Please reference lsd's example configuration to configure it accordingly.
{ }{
classic = false;
color = {
theme = "default";
};
}<hjem-rum/modules/collection/programs/lsd.nix>rum.programs.ncmpcpp.bindings Link copied!
attribute set of list of (submodule)Custom bindings configuration written to $XDG_CONFIG_HOME/ncmpcpp/bindings.
Please reference ncmpcpp(1) to configure it accordingly, or consult
ncmpcpp's example bindings file.
The lists are separated between keys, for actions ran on keypresses, and commands, for actions ran on commands. The option's example demonstrates this greatly.
{ }{
commands = [
{
actions = [
"stop"
"quit"
];
binding = "!sq";
}
{
actions = [
"quit"
];
binding = "!q";
deferred = true;
}
];
keys = [
{
actions = [
"stop"
"quit"
];
binding = "ctrl-q";
}
{
actions = [
"quit"
];
binding = "q";
deferred = true;
}
];
}<hjem-rum/modules/collection/programs/ncmpcpp.nix>rum.programs.ncmpcpp.bindings.<name>.*.actions Link copied!
null or (list of string)The actions to be ran on either the key's or command's activation.
null[
"stop"
"quit"
]<hjem-rum/modules/collection/programs/ncmpcpp.nix>rum.programs.ncmpcpp.bindings.<name>.*.binding Link copied!
null or stringThe key or command for which the set of actions is binded to.
null"p"<hjem-rum/modules/collection/programs/ncmpcpp.nix>rum.programs.ncmpcpp.bindings.<name>.*.deferred Link copied!
booleanWhether the binding or command should be deferred (true) or immediate (false).
falsetrue<hjem-rum/modules/collection/programs/ncmpcpp.nix>rum.programs.ncmpcpp.enable Link copied!
booleanWhether to enable ncmpcpp, a mpd-based music player..
falsetrue<hjem-rum/modules/collection/programs/ncmpcpp.nix>rum.programs.ncmpcpp.package Link copied!
null or packageThe ncmpcpp package to use. You can override the package to customize certain settings that are baked into the package.
pkgs.ncmpcpppkgs.ncmpcpp.override {
# useful overrides in the package
outputsSupport = true; # outputs screen
visualizerSupport = false; # visualizer screen
clockSupport = true; # clock screen
taglibSupport = true; # tag editor
};
<hjem-rum/modules/collection/programs/ncmpcpp.nix>rum.programs.ncmpcpp.settings Link copied!
attribute set of (signed integer or string or boolean)Configuration written to $XDG_CONFIG_HOME/ncmpcpp/config.
Please reference ncmpcpp(1) to configure it accordingly, or consult ncmpcpp's example configuration.
{ }{
mpd_host = "localhost";
mpd_music_dir = "~/music";
mpd_port = 6600;
statusbar_visibility = true;
}<hjem-rum/modules/collection/programs/ncmpcpp.nix>rum.programs.nix-your-shell.enable Link copied!
booleanWhether to enable nix-your-shell.
falsetruerum.programs.nix-your-shell.integrations.fish.enable Link copied!
booleanWhether to enable nix-your-shell integration with fish.
falsetruerum.programs.nix-your-shell.integrations.nushell.enable Link copied!
booleanWhether to enable nix-your-shell integration with nushell.
falsetruerum.programs.nix-your-shell.integrations.zsh.enable Link copied!
booleanWhether to enable nix-your-shell integration with zsh.
falsetruerum.programs.nix-your-shell.package Link copied!
null or packageThe nix-your-shell package to use.
pkgs.nix-your-shellrum.programs.nushell.aliases Link copied!
attribute set of anythingA set of aliases for nushell, converted into nu and written to
$XDG_CONFIG_HOME/nushell/config.nu. Please note that we cannot
handle complex aliases that use def at this time.
Please see The Nushell Book for a simple tutorial.
{ }{
ll = "ls -l";
spp = "spotify_player";
}<hjem-rum/modules/collection/programs/nushell.nix>rum.programs.nushell.enable Link copied!
booleanWhether to enable nushell.
falsetrue<hjem-rum/modules/collection/programs/nushell.nix>rum.programs.nushell.envFile Link copied!
strings concatenated with "\n"Extra configuration to be written to $XDG_CONFIG_HOME/nushell/env.nu.
Please keep in mind that the upstream documentation generally advises against
writing to this file, and instead suggests using $XDG_CONFIG_HOME/nushell/config.nu.
See The Nushell Book for more info.
""<hjem-rum/modules/collection/programs/nushell.nix>rum.programs.nushell.extraConfig Link copied!
strings concatenated with "\n"Extra configuration to be written to $XDG_CONFIG_HOME/nushell/config.nu.
Please see The Nushell Book for more info.
""''
def webdev [--run (-r)] {
cd ~/my-website
if $run {
nix develop --command pnpm run dev
} else {
nix develop --command nu
}
}
''<hjem-rum/modules/collection/programs/nushell.nix>rum.programs.nushell.loginFile Link copied!
strings concatenated with "\n"Nushell may be used as a login shell, so this option writes to
$XDG_CONFIG_HOME/nushell/login.nu to allow you to configure
nushell as your login shell.
Please recognize that this is mainly for advanced users and is not for the faint of heart. Direct your questions and concerns to The Nushell Book for more information.
""<hjem-rum/modules/collection/programs/nushell.nix>rum.programs.nushell.package Link copied!
packageThe nushell package to use.
pkgs.nushell<hjem-rum/modules/collection/programs/nushell.nix>rum.programs.nushell.plugins Link copied!
list of packageA list of plugin packages to be installed and added to the nushell plugin registry.
[ ]with pkgs.nushellPlugins; [
units
formats
query
]
<hjem-rum/modules/collection/programs/nushell.nix>rum.programs.nushell.settings Link copied!
attribute set of anythingA set of options for nushell, flattened, prepended with $env.config to avoid overwriting
(tables of config are overwritten if they occupy the same namespace). It is then written
to $XDG_CONFIG_HOME/nushell/config.nu.
Please see The Nushell Book for configuration options.
{ }{
history = {
file_format = "sqlite";
isolation = true;
max_size = "1_000_000";
sync_on_enter = true;
};
show_banner = false;
}<hjem-rum/modules/collection/programs/nushell.nix>rum.programs.obs-studio.enable Link copied!
booleanWhether to enable OBS Studio.
falsetruerum.programs.obs-studio.package Link copied!
null or packageThe obs-studio package to use. You can override the package to install plugins.
pkgs.obs-studio# OBS has a special "package" to wrap the obs-studio package with plugins
package = pkgs.wrapOBS.override {
# These plugins will get installed and wrapped into obs-studio for use
plugins = with pkgs.obs-studio-plugins; [
wlrobs
waveform
obs-websocket
];
};
rum.programs.spotify-player.enable Link copied!
booleanWhether to enable spotify_player.
falsetruerum.programs.spotify-player.keymap Link copied!
TOML valueSets of keymaps and actions converted into TOML and written to
$XDG_CONFIG_HOME/spotify-player/keymap.toml.
See example for how to format declarations.
Please reference spotify_player's keymaps documentation for more information.
{ }{
actions = [
{
action = "GoToArtist";
key_sequence = "g A";
}
];
keymaps = [
{
command = "NextTrack";
key_sequence = "g n";
}
];
}rum.programs.spotify-player.package Link copied!
null or packageThe spotify-player package to use. You can use an override to configure certain settings baked into the package.
pkgs.spotify-playerpackage = pkgs.spotify-player.override {
# Useful overrides in the package
withStreaming = true;
withDaemon = true;
withAudioBackend = "rodio"; # alsa, pulseaudio, rodio, portaudio, jackaudio, rodiojack, sdl
withMediaControl = true;
withImage = true;
withNotify = true;
withSixel = true;
withFuzzy = true;
};
rum.programs.spotify-player.settings Link copied!
TOML valueThe configuration converted into TOML and written to
$XDG_CONFIG_HOME/spotify-player/app.toml.
Please reference spotify_player's configuration documentation for configuration options.
{ }{
device = {
device_type = "computer";
name = "nixos";
normalization = true;
volume = 40;
};
enable_notify = false;
}rum.programs.spotify-player.themes Link copied!
list of (TOML value)The theme converted into TOML and written to
$XDG_CONFIG_HOME/spotify-player/themes.toml.
Please reference spotify_player's theme documentation for configuration options.
[ ][
{
component_style = {
like = {
fg = "Red";
modifiers = [
"Bold"
];
};
secondary_row = {
bg = "#677075";
};
selection = {
bg = "Black";
fg = "White";
modifiers = [
"Bold"
];
};
};
name = "default2";
palette = {
black = "black";
blue = "blue";
bright_black = "bright_black";
bright_blue = "bright_blue";
bright_cyan = "bright_cyan";
bright_green = "bright_green";
bright_magenta = "bright_magenta";
bright_red = "bright_red";
bright_white = "bright_white";
bright_yellow = "bright_yellow";
cyan = "cyan";
green = "green";
magenta = "magenta";
red = "red";
white = "white";
yellow = "yellow";
};
}
]rum.programs.starship.enable Link copied!
booleanWhether to enable starship module..
falsetrue<hjem-rum/modules/collection/programs/starship.nix>rum.programs.starship.integrations.fish.enable Link copied!
booleanWhether to enable starship integration with fish.
falsetrue<hjem-rum/modules/collection/programs/starship.nix>rum.programs.starship.integrations.nushell.enable Link copied!
booleanWhether to enable starship integration with nushell.
falsetrue<hjem-rum/modules/collection/programs/starship.nix>rum.programs.starship.integrations.zsh.enable Link copied!
booleanWhether to enable starship integration with zsh.
falsetrue<hjem-rum/modules/collection/programs/starship.nix>rum.programs.starship.package Link copied!
null or packageThe starship package to use.
pkgs.starship<hjem-rum/modules/collection/programs/starship.nix>rum.programs.starship.settings Link copied!
TOML valueThe configuration converted to TOML and written to $XDG_CONFIG_HOME/starship.toml.
Please reference Starship's documentation for configuration options.
{ }{
add_newline = false;
character = {
error_symbol = "➜";
success_symbol = "➜";
};
format = "$line_break$package$line_break$character";
scan_timeout = 10;
}<hjem-rum/modules/collection/programs/starship.nix>rum.programs.starship.transience.enable Link copied!
booleanWhether to enable enable transience.
falsetrue<hjem-rum/modules/collection/programs/starship.nix>rum.programs.tealdeer.enable Link copied!
booleanWhether to enable tealdeer.
falsetrue<hjem-rum/modules/collection/programs/tealdeer.nix>rum.programs.tealdeer.package Link copied!
null or packageThe tealdeer package to use.
pkgs.tealdeer<hjem-rum/modules/collection/programs/tealdeer.nix>rum.programs.tealdeer.settings Link copied!
TOML valueConfiguration written to $XDG_CONFIG_HOME/tealdeer/config.toml.
Please reference tealdeer's documentation for config options.
{ }{
updates = {
auto_update = true;
};
}<hjem-rum/modules/collection/programs/tealdeer.nix>rum.programs.tofi.enable Link copied!
booleanWhether to enable tofi.
falsetrue<hjem-rum/modules/collection/programs/tofi.nix>rum.programs.tofi.package Link copied!
null or packageThe tofi package to use.
pkgs.tofi<hjem-rum/modules/collection/programs/tofi.nix>rum.programs.tofi.settings Link copied!
attribute set of (string or absolute path or boolean or signed integer or floating point number)The configuration converted into "key = value" and written to
$XDG_CONFIG_HOME/tofi/config. Please reference
tofi(5), or see an example at
tofi's default configuration.
{ }{
horizontal = false;
num-results = 0;
text-color = "#FFFFFF";
}<hjem-rum/modules/collection/programs/tofi.nix>rum.programs.vscode.enable Link copied!
booleanWhether to enable Visual Studio Code.
falsetrue<hjem-rum/modules/collection/programs/vscode.nix>rum.programs.vscode.package Link copied!
null or packageThe vscode package to use.
pkgs.vscode<hjem-rum/modules/collection/programs/vscode.nix>rum.programs.vscode.settings Link copied!
JSON valueThe configuration converted into JSON and written to
$XDG_CONFIG_HOME/Code/User/settings.json.
Please reference Visual Studio Code's official documentation for more information.
{ }{
catppuccin = {
accentColor = "red";
};
"editor.fontFamily" = "Fira Code Nerdfont";
"editor.fontLigatures" = true;
"workbench.colorTheme" = "Catppuccin Mocha";
}<hjem-rum/modules/collection/programs/vscode.nix>rum.programs.zed.enable Link copied!
booleanWhether to enable zed.
falsetrue<hjem-rum/modules/collection/programs/zed.nix>rum.programs.zed.keymap Link copied!
JSON valueConfiguration written to $HOME/.config/zed/keymap.json.
Please reference zed's documentation for config options.
{ }[
{
bindings = {
ctrl-left = "editor::SelectSmallerSyntaxNode";
ctrl-right = "editor::SelectLargerSyntaxNode";
};
}
{
bindings = {
o = "project_panel::Open";
};
context = "ProjectPanel && not_editing";
}
]<hjem-rum/modules/collection/programs/zed.nix>rum.programs.zed.package Link copied!
packageThe zed-editor package to use.
pkgs.zed-editor<hjem-rum/modules/collection/programs/zed.nix>rum.programs.zed.settings Link copied!
JSON valueConfiguration written to $HOME/.config/zed/settings.json.
Please reference zed's documentation for config options.
{ }{
autosave = "on_focus_change";
base_keymap = "Atom";
buffer_font_fallbacks = [
"Nerd Font"
];
languages = {
JavaScript = {
formatter = {
external = {
arguments = [
"--stdin-filepath"
"{buffer_path}"
];
command = "prettier";
};
};
tab_size = 2;
};
};
load_direnv = "shell_hook";
theme = {
dark = "One Dark";
light = "One Light";
mode = "system";
};
}<hjem-rum/modules/collection/programs/zed.nix>rum.programs.zed.snippets Link copied!
attribute set of (JSON value)Custom scoped snippets written to $HOME/.config/zed/snippets/*.json
Please reference zed's documentation for more details.
{ }{
javascript = {
"Log to console" = {
body = [
"console.info(\"Hello, \${1:World}!\")"
"$0"
];
description = "Logs to console";
prefix = "log";
};
};
}<hjem-rum/modules/collection/programs/zed.nix>rum.programs.zed.tasks Link copied!
JSON valueConfiguration written to $HOME/.config/zed/tasks.json.
Please reference zed's documentation for config options.
{ }[
{
allow_concurrent_runs = false;
command = "for i in {1..5}; do echo \"Hello $i/5\"; sleep 1; done";
env = {
foo = "bar";
};
hide = "never";
label = "Example task";
reveal = "always";
shell = "system";
show_output = true;
show_summary = true;
tags = [ ];
use_new_terminal = false;
}
]<hjem-rum/modules/collection/programs/zed.nix>rum.programs.zed.themes Link copied!
attribute set of (JSON value)Custom themes written to $HOME/.config/zed/themes/*.json
Please reference zed's documentation for more details.
{ }{
my-cool-theme = {
author = "Bob Rum";
name = "Bob's cool themes";
themes = {
appearance = "dark";
name = "Bob's dark theme";
style = {
background = "#313337ff";
border = "#3f4043ff";
"border.disabled" = "#383a3eff";
"border.focused" = "#1b4a6eff";
"border.selected" = "#1b4a6eff";
"border.transparent" = "#00000000";
"border.variant" = "#2d2f34ff";
"elevated_surface.background" = "#1f2127ff";
"surface.background" = "#1f2127ff";
};
syntax = {
attribute = {
color = "#5ac1feff";
font_style = null;
font_weight = null;
};
boolean = {
color = "#d2a6ffff";
font_style = null;
font_weight = null;
};
};
};
};
}<hjem-rum/modules/collection/programs/zed.nix>rum.programs.zoxide.enable Link copied!
booleanWhether to enable zoxide.
falsetrue<hjem-rum/modules/collection/programs/zoxide.nix>rum.programs.zoxide.flags Link copied!
list of stringCommand-line flags passed to zoxide init.
Please reference zoxide's documentation for configuration options.
[ ][
"--cmd cd"
]<hjem-rum/modules/collection/programs/zoxide.nix>rum.programs.zoxide.integrations.fish.enable Link copied!
booleanWhether to enable zoxide integration with fish.
falsetrue<hjem-rum/modules/collection/programs/zoxide.nix>rum.programs.zoxide.integrations.nushell.enable Link copied!
booleanWhether to enable zoxide integration with nushell.
falsetrue<hjem-rum/modules/collection/programs/zoxide.nix>rum.programs.zoxide.integrations.zsh.enable Link copied!
booleanWhether to enable zoxide integration with zsh.
falsetrue<hjem-rum/modules/collection/programs/zoxide.nix>rum.programs.zoxide.package Link copied!
null or packageThe zoxide package to use.
pkgs.zoxide<hjem-rum/modules/collection/programs/zoxide.nix>rum.programs.zsh.enable Link copied!
booleanWhether to enable zsh.
falsetrue<hjem-rum/modules/collection/programs/zsh.nix>rum.programs.zsh.initConfig Link copied!
strings concatenated with "\n"Commands that will be added verbatim to .zshrc.
A good starting point for learning how to configure zsh is the Arch Wiki entry.
""<hjem-rum/modules/collection/programs/zsh.nix>rum.programs.zsh.loginConfig Link copied!
strings concatenated with "\n"Commands that will be added verbatim to .zlogin.
A good starting point for learning how to configure zsh is the Arch Wiki entry.
""<hjem-rum/modules/collection/programs/zsh.nix>rum.programs.zsh.logoutConfig Link copied!
strings concatenated with "\n"Commands that will be added verbatim to .zlogout.
A good starting point for learning how to configure zsh is the Arch Wiki entry.
""<hjem-rum/modules/collection/programs/zsh.nix>rum.programs.zsh.package Link copied!
null or packageThe zsh package to use.
pkgs.zsh<hjem-rum/modules/collection/programs/zsh.nix>rum.programs.zsh.plugins Link copied!
attribute set of (submodule)An attrset of plugins to load into zsh. Configuration of the former can be done and is advised to be done at this level, for the sake of organization.
{ }<hjem-rum/modules/collection/programs/zsh.nix>rum.programs.zsh.plugins.<name>.completions Link copied!
list of absolute pathA list of completions that will be loaded into fpath.
[ ]["\${pkgs.nix-zsh-completions}/share/zsh/site-functions"]<hjem-rum/modules/collection/programs/zsh.nix>rum.programs.zsh.plugins.<name>.config Link copied!
strings concatenated with "\n"Commands that will be added verbatim to .zshrc right after the plugin import..
A good starting point for learning how to configure zsh is the Arch Wiki entry.
""<hjem-rum/modules/collection/programs/zsh.nix>rum.programs.zsh.plugins.<name>.source Link copied!
null or absolute pathPath to the plugin file to load.
null"\${pkgs.nix-zsh-completions}/share/zsh/plugins/nix/nix-zsh-completions-plugin.zsh\"<hjem-rum/modules/collection/programs/zsh.nix>