* home-environment: add `home.sessionVariablesPackage`
Allow the `hm-session-vars.sh` derivation to be referenced from other
modules, e.g. to translate it to fish with babelfish at build time.
* fish: use babelfish for `hm-session-vars.sh`
Translate `hm-session-vars.sh` to fish at system build time,
significantly decreasing shell startup time.
Based on https://github.com/NixOS/nixpkgs/pull/108947 by @kevingriffin.
This is backwards compatible and allows for more flexibility(eg.
allows for defining custom waybar modules in separate nixos modules,
before merging them together)
Co-authored-by: mae <git@badat.dev>
Make use of the recently added nullable `mkPackageOption` feature
to disable installing an SSH client by default: most people should use
the client provided by their system.
Kitty provides integrations for bash, fish and zsh. The new
programs.kitty.shellIntegration options allow the configuration of
these integrations.
See <https://sw.kovidgoyal.net/kitty/shell-integration> for more details.
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
* zellij: adds options to integrate with zsh, bash and fish shells
* zellij: add tests for shell integration options
* zellij: eval setup auto start for fish integration
* zellij: use interactiveShellInit for fish integration
* zellij: fixes format issues
* zellij: enable shell integrations by default
* zellij: compresses shell integration test cases
* zellij: removes the disabled shell integration tests
* zellij: formats tests
* himalaya: add soywod to maintainers
* himalaya: make the config safer
Also added two services and more tests.
* himalaya: fix doc + typos
* himalaya: use freeform
* himalaya: run ./format
* himalaya: make use of mkPackageOption
It's pretty common to need multiple bindings to
history-substring-search, since different terminals will send different
keys for up/down.
This does not break back-compatibility, and introduces a new test
The current zplug nixpkgs puts everything under `$out/`. It pollutes the nix
profile dir.
This is a breaking change. It depends on an change of the output path in the
nixpkgs zplug package.
Virtual mailboxes (described by Notmuch queries) can now configured for each account in NeoMutt.
Plus, it is possible to disable Notmuch section for a specific account.
The added extraConfig option allowes users to insert custom text at
the end of the generated profile `user.js` file. This allows the users
to import templates as part of their configuration.
link the packpath in expected folder so that even unwrapped neovim can pick home-manager's plugins.
I sometimes need to run neovim not wrapped/configured by nix (when
developing neovim or when other projects bring their own neovim in
PATH). Currently they dont find plugins installed by home-manager in the
cases where packpath is not set to the generated nix packpath directory.
With this change, neovim can discover HM-installed plugins by itself.
Some of the email providers (like GMail and Fastmail) save Sent messages
automatically, so make the folders optional in the configuration.
Make Drafts folder optional as well, to allow it to be configured
manually in the extraConf with location outside of the maildir.
* i3status-rust: update it to handle 0.30.x releases
0.30.0 is a major release that brings many breaking changes to the
configuration file. See:
https://github.com/greshake/i3status-rust/blob/master/NEWS.md#i3status-rust-0300
The only one that actually affects the module though is the change in
how the theme/icons are defined. Other changes are mostly on how to
specify formatting/blocks, and since we just generate the TOML as-is, it
needs changes in the user side.
So most changes in this commit are documentation updates, having
up-to-date examples from things that changed, e.g.: the new `click`
attribute that now can be applied to any block.
* i3status-rust: only use new format if i3status-rust >= 0.30.0
* news: document the i3status-rust changes
* i3status-rust: add thiagokokada as maintainer
This command adds the ability to specify lists of qutebrowser
commands as values for key bindings, which avoids the need for
concatenating commands with ` ;; `.
* exa: add more options
* exa: use `escapeShellArgs`
* exa: don't hardcode executable path in aliases
Prevents aliases from going stale in open terminals when the system is updated.
* exa: use `command` for self-referential alias
Otherwise fish complains about the recursive call.
Drop the aliases from ion shell since it doesn't implement the POSIX
`command` built-in.
* exa: re-add ion aliases
* exa: drop `command`
Fish doesn't complain about recursion if `exa` isn't escaped.
---------
Co-authored-by: Naïm Favier <n@monade.li>
The `-X` prevents that screen is cleared when showing a diff that's
larger than my screen.
I.e. when running `git diff` and press `q`, the last thing I want to see
is the prompt with `git diff` and *not* the part of the diff I browsed,
to be clear
$ git diff
$ <cursor>
Considering that this is somewhat opinionated, I decided to build an
option which allows you to pass arbitrary commands to the less
invocation.
Xsession (and hence ~/.xsession) is executed in bash but does not set
SHELL to the full path to bash. In case the user's login shell is
something other than bash then SHELL is set to that shell. Keychain
inspects the SHELL variable to find out what shell it has to generate
code for, so in .xsession it generates code for the user's login shell
instead for bash.
This change forces SHELL to bash for keychain when invoked from
.xsession, the same way it's done when generating keychain's code for
bash integration.
Closes#3693
* vscode: add extensions.json file in extensions dir
This change generates an 'extensions.json` file the same way that
nixpkgs' vscode-with-extensions does, and makes sure it is placed in the
directory with the extensions.
* vscode: remove leftover trace
Co-authored-by: Naïm Favier <n@monade.li>
* vscode: fix adding extensions.json with mutable extension dir
Co-authored-by: Naïm Favier <n@monade.li>
* vscode: let vscode regenerate the mutable extensions.json
* Remove nixpkgs duplication; only apply on vscodes new enough to need it
* Use lib.versionAtLeast
Co-authored-by: Naïm Favier <n@monade.li>
* Format vscode.nix
---------
Co-authored-by: Naïm Favier <n@monade.li>
Internally we already managed them per-profile but exposed a global
option to maintain backwards compatibility. The benefit to having
per-profile extensions is quite large though, so it is time to switch.
Users of the global extensions option will get an error message that
indicates how to edit their configuration to work again.