1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-12-28 20:59:47 +01:00
Commit graph

1452 commits

Author SHA1 Message Date
arcnmx
95382060eb
git: support nested section options
Closes #614
2019-07-04 16:51:28 +02:00
arcnmx
472d7731d6
git: support multiple values
Closes #614
2019-07-04 16:51:24 +02:00
Alexandre Héaumé
28f2dd612e
broot: add module 2019-07-02 11:28:31 +02:00
Róman Joost
68fe8623ad Address code review comments for getmail service
This patch started by addresssing the code review comments to close
https://github.com/rycee/home-manager/pull/290. However initiating a new
pull request it became clear, that home-manager changed significantly
since then.

This changes the initial pull request to be consistent with the email
account management in home-manager now. It also adds a simple test and support
for multiple accounts.
2019-06-27 07:48:09 +02:00
Jonas Holst Damtoft
cf0aad391c
emacs: fix merging of extraPackages and overrides
Because `extraPackages` and `overrides` expect functions as values it
has not been possible to perform merges. This adds suitable types for
these options that allow reasonable merging.
2019-06-10 22:56:47 +02:00
Sebastián Estrella
29824a8cf6 tmux: Disable confirmation prompt 2019-06-05 13:05:10 +09:00
Jaka Hudoklin
0db26fc3ab
gpg: add module 2019-06-03 23:50:50 +02:00
Tad Fisher
e25113bcf0
browserpass: fix host/policy link sources 2019-06-01 12:24:30 +02:00
Robert Helgesson
e1535d2bd8
vscode: add example for extensions option 2019-05-31 21:37:28 +02:00
Jaka Hudoklin
5b95fd0521
firefox: add profile options 2019-05-30 22:58:36 +02:00
kalium
02a07f19a1
zsh: add autocd option 2019-05-17 09:39:26 +02:00
Tadeo Kondrak
d2ed39f103
alacritty: don't create file if settings is empty
Also add a few test cases for the alacritty module.
2019-05-14 23:53:10 +02:00
Tadeo Kondrak
8b15f18993
mpv: add module 2019-05-08 00:42:18 +02:00
Mario Rodas
821df406c9
z-lua: add module 2019-04-28 23:57:31 +02:00
Robert Helgesson
a16439e38e
firefox: deprecate Google Talk and IcedTea options 2019-04-27 10:01:30 +02:00
Robert Helgesson
b6e613c771
Fix type of various sessionVariables options
Unfortunately, using `attrsOf` is not possible since it results in too
eager evaluation. In particular, the

    home.sessionVariables = {
      FOO = "Hello";
      BAR = "${config.home.sessionVariables.FOO} World!";
    };

example will cause an infinite recursion.

This commit restores the option type of

- `home.sessionVariables`,
- `pam.sessionVariables`,
- `programs.bash.sessionVariables`, and
- `programs.zsh.sessionVariables`

to `attrs`. It also adds test cases for the above options to avoid
regressions.

Fixes #659
2019-04-27 01:07:09 +02:00
Robert Hensing
c5f230e682
vscode.haskell: add module
- Haskell IDE Engine integration
- Syntax highlighting
2019-04-27 01:00:57 +02:00
hyperfekt
e3831d8ecc
alacritty: add module 2019-04-22 14:43:43 +02:00
Olli Helenius
1806e5511e
skim: add module 2019-04-14 17:36:27 +02:00
ash lea
cb93316fed
browserpass: update app id 2019-04-14 11:40:37 +02:00
Nick Hu
a6f0fa90f7
email: add facility for email aliases
Also update the notmuch and alot modules to include support for email
aliases.
2019-04-12 21:26:46 +02:00
Nick Hu
d49b514aa6 make notmuch search.exclude_tags configurable 2019-04-11 23:28:36 +09:00
Nick Hu
6cd5c8fca5
alot: fix address book completion regex 2019-04-10 23:55:07 +02:00
arcnmx
2c07829be2
home-manager: use callPackage where appropriate 2019-04-06 18:48:29 +02:00
Wael M. Nasreddine
652c694244
programs.tmux: implement secureSocket 2019-04-04 17:14:29 -07:00
Robert Helgesson
fd50f5465f
zsh: use attrsOf instead of attrs 2019-04-03 00:09:55 +02:00
Robert Helgesson
b690a8be2f
bash: use attrsOf instead of attrs 2019-04-03 00:09:55 +02:00
Robert Helgesson
e85804efa2
feh: use attrsOf instead of attrs 2019-04-03 00:09:55 +02:00
Olli Helenius
03162970cd
gnome-terminal: add cursor and highlight color settings 2019-03-31 14:24:31 +02:00
Robert Helgesson
86af599a18
firefox: make the extensions option visible
Also change the example to use the firefox-addons available on NUR.
2019-03-20 23:41:02 +01:00
Mario Rodas
95e36dfe74
lsd: add module 2019-03-20 00:07:49 +01:00
Mario Rodas
24b5f62090
bat: add module 2019-03-19 23:58:12 +01:00
Robert Helgesson
eec78fbd1e
ssh: support multiple identity files in a match block
Fixes #625
2019-03-19 22:35:13 +01:00
arcnmx
52692e299d
git: make userName and userEmail options optional 2019-03-17 20:46:00 +01:00
Robert Helgesson
267afa5a3b
firefox: add support for add-on packages
Since no official source of packages exist the option is hidden for
now. For adventurous people there is an overlay of a few selected
add-ons available at

    https://rycee.gitlab.io/nixpkgs-firefox-addons/overlay.tar.gz

This overlay is automatically built daily using the REST API available
on https://addons.mozilla.org/.
2019-03-11 00:55:32 +01:00
Robert Prije
0fa19ed555
gnome-terminal: add support for light/dark theme variants 2019-03-10 01:59:00 +01:00
Robert Helgesson
a09196c4ae
docs: add language attribute to program listings 2019-03-06 18:52:54 +01:00
Maximilian Bosch
465d08d99f
programs/zsh: properly escape shell aliases
Otherwise all aliases break that use single quotes inside.

Already fixed in the nixpkgs module in 1e211a70cbdaf230a18ea4cb67a959039d5c2ddb.
2019-02-28 14:10:14 +01:00
Matthieu Coudron
81dae2f88e
alot: support contact completion
Make choice of contact completion easier.
2019-02-20 00:55:39 +01:00
Robert Helgesson
93f5fcae1e
msmtp: use <parameter> for CLI options in description 2019-02-17 23:25:42 +01:00
Robert Helgesson
92d4e3e75a
autorandr: remove unnecessary method attribute
I mistakenly added this before noticing that it was already defaulted
to "factory". Sorry!
2019-02-17 23:06:39 +01:00
Terje Larsen
03f1aea069
autorandr: add support for xrandr scale and dpi 2019-02-17 22:56:01 +01:00
Mario Rodas
6da88339f5
git: allow contents in git.includes 2019-02-17 22:28:15 +01:00
Mario Rodas
62e73b17d2
keychain: add module 2019-02-17 22:07:24 +01:00
Wael M. Nasreddine
2093cf425f
tmux: general improvements and added options
See #575 for discussion.
2019-02-13 22:14:30 +01:00
Olli Helenius
a3462daeb1
msmtp: use XDG config directory 2019-02-11 01:06:28 +01:00
Robert Helgesson
1cdb8abf30
git: add basic support for LFS
Fixes #542
2019-02-10 00:51:16 +01:00
Robert Helgesson
2f372ab4d6
Clean up support code for Home Manager as a submodule
This removes the `nixosSubmodule` option in favor of a new option
`submoduleSupport.enable`. This name better indicates that the
submodule mode applies to both NixOS and nix-darwin.
2019-02-10 00:44:55 +01:00
Jonas Holst Damtoft
0ca1bf3cfd
emacs: add service module 2019-02-09 15:28:11 +01:00
Matthieu Coudron
c18984c452
neovim: allow to override package
If you want to run a development version for instance, it is easier to
set neovim.package rather than work around the wrapping mechanism etc.
2019-02-04 21:52:01 +01:00
Robert Helgesson
445c0b1482
git: use attrsOf instead of attrs
This makes sure that values added to

    programs.git.aliases

or

    programs.git.extraConfig

are merged as expected.

Also add a few option examples.
2019-02-01 01:12:58 +01:00
Robert Helgesson
0590c2a4f6
mbsync: add basic test of result configuration 2019-01-31 02:08:40 +01:00
Nadrieril
81ec856a0f
mbsync: add some required assertions 2019-01-31 01:41:12 +01:00
Robert Helgesson
45cadbd4f3
git: quote sendemail section header
This will allow, e.g., the character `@` in the email identity.

Also adds a test case.

Fixes #557
2019-01-29 18:28:55 +01:00
Amarandus
02a5a678f6
irssi: add module
irssi is a cli IRC client.
2019-01-29 00:53:39 +01:00
Matthieu Coudron
a68c8cf5f1
git: generate identities from mail accounts 2019-01-29 00:13:21 +01:00
Jonas Holst Damtoft
601619660d
fish: use global for abbr
Makes fish use global scope for abbreviations.
This makes it so that they don't stick across config changes.
Before, an abbreviation would still exist even if removed from the config.
2019-01-23 21:19:23 +01:00
Adam Washington
6a244b3a8d
matplotlib: add module 2019-01-18 01:23:36 +01:00
John Wiegley
3cf8b9ea86
ssh: add proxyJump option 2019-01-15 22:31:08 +01:00
hyperfekt
6f422785c3
fish: autogenerate completions from man pages 2019-01-13 01:06:46 +01:00
David Guibert
a7affc93ba
msmtp: add extraConfig account option
This patch allow to define custom msmtp options per email account. For
example: to change the "auth" method from "on" to "login", add
`msmtp.extraConfig.auth="login"`.
2019-01-13 00:25:05 +01:00
Marcial Gaißert
9052131aef
programs.zsh: option localVariables
Add option "extraLocalVars" for additional local variable definitions
in .zshrc, at the top of the file.

Some zsh plugins/themes expect configuration in local variables before they
are loaded (example: https://github.com/bhilburn/powerlevel9k). Exporting
those clutters the environment and is unnecessary.
2019-01-11 10:26:13 +01:00
Marcial Gaißert
6b5e0efd1e
programs.zsh: generate export statements in zsh syntax
Use the new module lib.zsh to generate export statements in zsh syntax, using
zsh arrays for lists.

Being a zsh script, this seems more intuitive for .zshrc
2019-01-11 10:26:12 +01:00
Wael M. Nasreddine
c48fd9d842
autorandr: add support for xrandr transformation 2019-01-10 01:39:01 +01:00
Robert Helgesson
e150dd4a66
texlive: always require at least one extra package
Fixes #526
2019-01-09 02:09:23 +01:00
Olli Helenius
b3d73e0aff
gnome-terminal: enable VTE OSC7 support for bash and zsh 2019-01-08 23:14:55 +01:00
Olli Helenius
16946a6f00
Address review comments 2019-01-03 10:51:37 +01:00
Olli Helenius
a4383075af
zsh: add default keymap configuration 2019-01-03 10:51:37 +01:00
Robert Helgesson
20a60be550
emacs: make finalPackage option more accessible
Instead of "internal" mark it as "invisible".
2019-01-03 02:15:17 +01:00
Mario Rodas
7afefcf75d
opam: add module 2018-12-28 13:33:13 +01:00
Robert Helgesson
a0162dacf6
gnome-terminal: use dconf module for settings 2018-12-24 17:26:34 +01:00
Robert Helgesson
e68d6e7924
emacs: add overrides option
This option enables overriding packages within the generated Emacs
package set.

Fixes #486
2018-12-17 23:01:43 +01:00
Olli Helenius
dc72aa2305
jq: add module 2018-12-12 22:02:51 +01:00
dsx
6ce3ce69b9
ssh: add addressFamily option 2018-12-05 00:24:34 +01:00
Robert Helgesson
6826521ec5
ssh: add certificateFile option 2018-12-05 00:19:40 +01:00
Robert Helgesson
5fe62660aa
ssh: realign options 2018-12-05 00:14:15 +01:00
Robert Helgesson
ea9d44bede
rofi: switch from types.string to types.str 2018-12-04 23:43:12 +01:00
Robert Helgesson
fd3692b36f
newsboat: switch from types.string to types.str 2018-12-04 23:42:30 +01:00
Robert Helgesson
cd7b6fdbc1
autorandr: switch from types.string to types.str 2018-12-04 23:41:42 +01:00
Robert Helgesson
797fbbf826
beets: add enable option 2018-12-04 23:03:23 +01:00
zimbatm
40b279e3a3
ssh: tweak default controlPath
Instead of using the hostname `%h`, which can be changed by the
~/.ssh/config file, use the commandline-given hostname `%n`.

This allows to alias a host with different hostnames, which then point
to different configurations. A common use-case for this is if you have
multiple accounts on github with each access to different private repos:

    Host github.com
      IdentitiesOnly yes
      User git
      IdentityFile ~/.ssh/id_rsa

    Host customer.github.com
      IdentitiesOnly yes
      User git
      IdentityFile ~/.ssh/customer
      HostName github.com

Without this change, if a connection was established with the first
github.com alias, then the user would try to pull a repo from the second
account, ssh would re-use the SSH connection which doesn't have access
to that repository.
2018-11-30 00:13:50 +01:00
Lee Henson
5d8b089188
neovim: support withNodeJs option 2018-11-29 00:54:27 +01:00
zimbatm
67ebe16b40
termite: setup the shell hook
This fixes Ctrl+Shift+T not working.
2018-11-26 21:28:06 +01:00
hyperfekt
6ab6488e5a
vscode: add module 2018-11-26 00:01:01 +01:00
zimbatm
456e2d7ed5
ssh: add more options 2018-11-25 22:46:06 +01:00
Robert Helgesson
fa3d1f98e0
astroid: require notmuch synchronize flags 2018-11-25 13:53:45 +01:00
Robert Helgesson
c21b69e73e
notmuch: add maildir.synchronizeFlags option 2018-11-25 13:33:30 +01:00
Robert Helgesson
9318bd3b0d
notmuch: replace incorrect use of toJSON 2018-11-25 13:33:30 +01:00
Wael M. Nasreddine
f247b3b99b
offlineimap: add an extraConfig for the account section 2018-11-19 23:57:58 +01:00
Ben Sima
061c7b633f
afew: add module 2018-11-18 23:47:45 +01:00
Matthieu Coudron
dacc07136c
astroid: add module
Astroid is a notmuch/gtk based MUA: https://github.com/astroidmail/astroid
2018-11-18 19:55:28 +01:00
Robert Helgesson
0efda9cd6b
Use preferLocalBuild with runCommand 2018-11-14 20:59:45 +01:00
Sam Stites
f4ebbcbf70
tmux: add module
This commit adds the tmux program to Home Manager.

In addition to configuring tmux, a user may specify tmux plugins from
Nixpkgs. These can be included in the list of `plugins` and can either
be a package (all tmux plugins live under `nixpkgs.tmuxPlugins.*`), or
an object which includes the plugin and an `extraConfig`, which will
be run immediately after sourcing the tmux plugin.

Finally, this commit introduces two nested programs which may be
enabled which depend on tmux: tmuxp and tmuxinator. These do not have
the ability to be configured, although this may be a future
contribution.
2018-11-14 00:08:39 +01:00
Robert Helgesson
22568a3d26
Revert PR #408
This reverts the commits

- "alot: change msmtp default command"
  8e798e4c28

- "astroid: init"
  736e340bde

because they include changes that break some configurations and some
options that are misplaced.
2018-11-12 21:59:11 +01:00
Matthieu Coudron
8e798e4c28 alot: change msmtp default command 2018-11-12 23:16:03 +09:00
Matthieu Coudron
736e340bde astroid: init
Astroid is a notmuch/gtk based MUA: https://github.com/astroidmail/astroid
2018-11-12 23:16:03 +09:00
Robert Helgesson
05c93ff3ae
home-manager: remove uninstall activation phase
The manual install has been long deprecated so it should be safe to no
longer attempt to do an uninstall on each activation.
2018-11-04 09:58:00 +01:00
Robert Helgesson
8d4c65f259
fzf: only enable when line editing is available
Fixes #401

Suggested-by: Alex Vorobiev
Suggested-by: Mario Rodas
2018-10-30 00:17:09 +01:00
Nikita Uvarov
34bbd0ded1
vim: remove deprecated options 2018-10-20 13:13:19 +02:00
Nikita Uvarov
c17f37857c
urxvt: add module 2018-10-20 11:35:39 +02:00
Nikita Uvarov
a2e09b4c9d
vim: add options 2018-10-20 11:00:13 +02:00
Nikita Uvarov
52b9363745
rofi: set configPath defaultText to avoid rebuilds 2018-10-12 10:52:41 +02:00
Mario Rodas
f947fafec9
direnv: add config option 2018-10-10 23:05:30 +02:00
Mario Rodas
68d3cdd722
direnv: add stdlib option 2018-10-10 23:02:31 +02:00
Will Dietz
5770dc58b9 mbsync: add option to add extra account configuration 2018-10-03 13:35:04 -05:00
Edward Betts
36da7a918f
Correct spelling mistakes 2018-10-02 22:41:08 +02:00
Matthieu Coudron
782d2fab83
rofi: fix default path 2018-10-01 09:27:33 +02:00
Matthieu Coudron
d9c5d3c868
alot: add module
Alot is a python mail user agent (MUA) built around the Notmuch mail
system.
2018-09-28 23:43:40 +02:00
adisbladis
f44d4a1d86
obs-studio: add module 2018-09-27 19:58:31 +02:00
Mario Rodas
a1a7e7cd24
bash: fix bashrcExtra interactive shell test
To determine if bash is running interactively test whether "$-"
contains "i".

See: https://www.gnu.org/software/bash/manual/html_node/Is-this-Shell-Interactive_003f.html
2018-09-26 18:18:57 +02:00
Matthieu Coudron
151f29a17a
mbsync: add options extraConfig.{channel|local|remote}
To allow supporting more advanced configurations. The local refers to
the "maildir store" configuration, remote to the "IMAP store", and
"channel" to the channel.
2018-09-23 23:22:39 +02:00
Roman Volosatovs
f7dc354f42
go: Fix package example 2018-09-21 09:46:11 +02:00
Roman Volosatovs
0635423e73
go: add module 2018-09-21 00:11:25 +02:00
Mario Rodas
3f34bf4465
noti: add module 2018-09-20 21:26:55 +02:00
Robert Helgesson
701b4130bd
Remove unnecessary dag variables
Also remove a few trailing whitespaces.
2018-09-19 00:13:31 +02:00
Adam Washington
d27bccdff1
zathura: add module
Add the zathura document viewer as a program option with support for
managing the zathurarc configuration file.
2018-09-18 23:57:36 +02:00
Minijackson
5ff03ce5ac
taskwarrior: add module 2018-09-18 23:31:37 +02:00
Nikita Uvarov
6eea2a409e
vim: improve instructions for listing available plugins 2018-09-15 12:01:36 +02:00
Robert Helgesson
50de1a6885
emacs: add internal finalPackage option 2018-09-11 21:23:11 +02:00
Roman Volosatovs
63efd26767
neovim: support new extraPython*Packages options
Also fix `configure` argument.
2018-09-09 22:09:00 +02:00
Robert Helgesson
8d2cb0ef9b
fish: minor formatting fixes 2018-09-09 21:18:39 +02:00
gnidorah
2bff6e5188
fish module: envoke hm-session-vars.sh 2018-09-09 21:17:13 +02:00
Matthieu Coudron
453d0494fb
notmuch: synchronize_flag should be "true"
...and not "True"

According to doc https://notmuchmail.org/manpages/notmuch-config-1/

It also causes a crash in astroid :
https://github.com/astroidmail/astroid/issues/546
2018-09-07 19:38:39 +02:00
Roman Volosatovs
9fe6fa7f44
neovim: add vi{,m}Alias options 2018-09-04 07:32:01 +02:00
Matthieu Coudron
5eca556fe7
offlineimap: add module
OfflineIMAP is a Mail Retrieval Agent (MRA) like mbsync but written in
Python.
2018-08-30 18:57:35 +02:00
adisbladis
99a0e2469b
direnv: add fish support 2018-08-27 22:52:53 +02:00
Mogria
2548c43175
fzf: add options for setting commands for all keys
This allows you to specify your own custom commands
to be run when calling fzf. You might use tools like
fd to search faster and take `.gitignore` files into
consideration.
2018-08-23 23:22:53 +02:00
Tad Fisher
da8307cd26
chromium: parseDrvName quick fix 2018-08-22 23:13:54 +02:00
Matthieu Coudron
cfa06c3f38
msmtp: add module
msmtp is a simple mail transfer agent (MTA).
2018-08-21 00:22:51 +02:00
Tad Fisher
dd25fbcb4b
chromium: add module 2018-08-19 22:46:30 +02:00
Vincent Demeester
29191eb2c7
fish: add module
Signed-off-by: Vincent Demeester <vincent@sbr.pm>
2018-08-17 22:32:08 +02:00
Robert Helgesson
4b32f16747
Use submodules for program email accounts
This reworks the way program specific email account options are
specified. In particular, we no longer use the deprecated `options`
field of `mkOption`. Instead submodules are used.
2018-08-16 21:37:42 +02:00
Malte Brandy
c18b1328a5
Parametrize path to profile directory 2018-07-31 16:04:19 +02:00
Robert Helgesson
93ef6aefce
direnv: add module 2018-07-31 15:48:08 +02:00
Robert Helgesson
eecebbf186
notmuch: add module
Co-authored-by: Matthieu Coudron <mattator@gmail.com>
2018-07-01 18:44:53 +02:00
Robert Helgesson
8dc1737e39
mbsync: add module
Co-authored-by: Matthieu Coudron <mattator@gmail.com>
2018-07-01 18:44:53 +02:00
Denny Schaefer
6aa44d62ad
autorandr: add rotate option 2018-06-26 21:17:54 +02:00
Robert Helgesson
2e9fbbc978
termite: use docbook man page reference 2018-06-13 23:56:47 +02:00
gmarmstrong
7190f46938
bash: fix shellAliases description
The aliases aren't added to all users' shells.
2018-06-11 22:32:53 +02:00
Robert Helgesson
e27cd96494
newsboat: remove unnecessary period 2018-06-09 11:40:49 +02:00
Mats Rauhala
4caa45b8bb
newsboat: add module 2018-06-09 11:36:45 +02:00
Robert Helgesson
f3473b9eba
zsh: add missing periods in descriptions 2018-06-09 10:29:02 +02:00
Mats Rauhala
06a984e4ff
zsh: add extended, expireDuplicatesFirst history options 2018-06-09 10:26:41 +02:00
Robert Helgesson
10865f9952
bash: escape alias values
This should allow use of the apostrophe character within aliases
without having to escape them manually.

Fixes #273
2018-05-26 10:52:40 +02:00
Tad Fisher
6dc4f31ba1
git: add 'includes' option 2018-04-19 17:45:09 +02:00
Silvan Mosberger
d294aa4356 zsh: only source plugin file if it exists
This allows adding plugins to fpath without sourcing anything
2018-04-19 16:43:03 +02:00
Nikita Uvarov
f314ee3d6a
autorandr: add module 2018-04-19 10:41:52 +02:00
Robert Helgesson
4205c91609
ssh: move options to end of configuration file
This is needed to support overriding these options inside match
blocks. A new option `programs.ssh.extraOptionOverrides` has been
added to allow global overrides.
2018-03-25 08:51:20 +02:00
Gleb Peregud
f8398339a3
fzf: add enableZshIntegration option
When enabled this will extend user's `$HOME/.zshrc` with sourcing of fzf's
completion and key-bindings integration libraries.
2018-03-14 17:37:39 +01:00
Robert Helgesson
fa7d63d9d1
fzf: add module 2018-03-07 22:44:29 +01:00
Robert Helgesson
46a94cce56
texlive: add option programs.texlive.package
This read-only option will hold a reference to the customized texlive
package.
2018-03-05 19:05:30 +01:00
Robert Helgesson
4745c7a00d
pidgin: add module 2018-02-19 22:57:50 +01:00
Matthieu Coudron
be60600a47 neovim: add 'configure' flag
so that we have the same options as in nixpkgs.
2018-02-19 07:41:24 +09:00
Andrew Scott
f2265b10e4
rofi: add theme option
The preferred method of theming rofi is now to use "rasi" theme files.
This commit therefore downplays the colors option and introduces the
theme option.
2018-02-10 20:11:33 +01:00
Nikita Uvarov
afa865587e
zsh: move env variables setting before oh-my-zsh
Fixes #207.
2018-02-10 19:23:10 +01:00
Robert Helgesson
9ea353569a
Remove deprecated option home.sessionVariableSetter 2018-02-08 22:54:29 +01:00
Robert Helgesson
1bc59f7290
allow Home Manager to be used as a NixOS module
This is a NixOS module that is intended to be imported into a NixOS
system configuration. It allows the system users to be set up directly
from the system configuration.

The actual profile switch is performed by a oneshot systemd unit per
configured user that acts much like the regular `home-manager switch`
command.

With this implementation, the NixOS module does not work properly with
the `nixos-rebuild build-vm` command. This can be solved by using the
`users.users.<name?>.packages` option to install packages but this
does not work flawlessly with certain Nixpkgs packages. In particular,
for programs using the Qt libraries.
2018-02-07 20:50:01 +01:00
Mogria
6833f96c14
rofi: add options to for location, xoffset & yoffset 2018-02-03 22:07:53 +01:00
Nikita Uvarov
2304c145f3
zsh: add system packages' completion path to fpath 2018-02-03 21:57:44 +01:00
Nikita Uvarov
fa6f697dbb
zsh: move session variables export to zshrc
Unlike .zshenv, .zshrc file is sourced only by interactive shells.
2018-02-03 21:16:00 +01:00
Alistair Potts
616dbd67f7
mercurial: add module
Very simple module for hg based on programs.git, and is intended to have
compatible options. For simple setups, a user should be able to write
something like:

    {...}:
    let vcsconfig = {
            enable = true;
            userName = "John Smith";
            userEmail = "js@example.com";
            ignores = [ "*.swp" "*~" ];
        };
    in
    {
        programs.git       = vcsconfig // {...extra git config...};
        programs.mercurial = vcsconfig // {...extra hg confg...};
    }

For this reason, the ignore options are `ignores` for `syntax: glob`
and `ignoresRegexp` for `syntax: regexp` so that simple glob ignores
can (very likely) be shared with a git config, despite regular
expressions being the default for mercurial.
2018-02-02 20:52:54 +01:00
Robert Helgesson
32b3f7f2d2
ssh: allow disabling compression in host block
Fixes #181.
2018-01-14 22:08:31 +01:00
John Wiegley
b8b595c6b2
ssh: add a few more options 2018-01-13 12:47:30 +01:00
Nikita Uvarov
a93445f3fe
zsh: add history.save option 2018-01-13 11:38:39 +01:00
Nikita Uvarov
dbcb3dd1ae
zsh: fix HISTSIZE and HISTFILE configuration
HISTSIZE and HISTFILE should be set in ~/.zshrc and before
sourcing oh-my-zsh since otherwise it will be overridden.
Fixes #177.
2018-01-13 11:38:39 +01:00
Nadrieril
d6ab6ee370
ssh: add extraConfig option for non-standard options 2018-01-10 22:24:03 +01:00
John Wiegley
c9294e30d9
bash: add option historyFile 2018-01-09 22:34:20 +01:00
Robert Helgesson
d7715f71ad
eclipse: add option enableLombok 2018-01-09 22:03:13 +01:00
Robert Helgesson
7631921366
zsh: source session variables script
This replaces the explicit set within the Z shell `zshenv` file.
2018-01-07 17:52:13 +01:00
Robert Helgesson
803abb58f9
bash: source session variables script
This replaces the explicit set within the Bash profile file.
2018-01-07 17:52:13 +01:00
Robert Helgesson
2fc1b9b5e0
zsh: use shell library 2018-01-07 17:52:12 +01:00
Robert Helgesson
026375da49
bash: use shell library 2018-01-07 17:51:51 +01:00
Robert Helgesson
8ab6298f30
bash: do not export HIST* variables
These are interpreted by the shell itself and it does not make sense
to export them to sub-processes.
2018-01-07 16:54:29 +01:00
Robert Helgesson
78c308c835
bash: add option bashrcExtra
This variable adds some extra flexibility in constructing the
`~/.bashrc` file. Currently the option is hidden from public
documentation since the option name is provisional.
2018-01-07 15:15:32 +01:00
Robert Helgesson
8a2bf21cee
bash: reword option descriptions 2018-01-07 15:04:57 +01:00
Robert Helgesson
f0d207f380
Add dag library to config.lib
Also replace all imports of `dag.nix` by the entry in `config.lib`.
2017-12-26 17:27:21 +01:00
Robert Helgesson
592fd61788
module/home-manager: remove modulesPath option
This option has been deprecated for a month and is removed according
to the news entry.
2017-11-24 13:51:21 +01:00
Robert Helgesson
a36989a860
gnome-terminal: remove commented code 2017-11-15 17:02:19 +01:00
Robert Helgesson
7ca68c6492
emacs: minor cleanup of extra packages option 2017-11-13 00:03:49 +01:00
Matthieu Coudron
61a869a1f5
neovim: add module
This is a basic module that allows to configure different Neovim
providers than the system ones. Note, it does not generate any
`init.vim`.
2017-11-12 23:57:14 +01:00
Florian Klink
c718951e97
git: add option 'programs.git.ignores'
This allows the global Git ignores to be configured.
2017-11-12 14:22:59 +01:00
Florian Klink
356c0bf751
git: use XDG config directory 2017-11-12 13:16:02 +01:00
Anton Strömkvist
b4f5b5556f
zsh: Add options for remaining config files
`profileExtra`, `loginExtra` and `logoutExtra` for `zprofile`,
`zlogin`, and `zlogout` respectively
2017-11-02 12:53:43 +01:00
Robert Helgesson
bfb5a678d2
modules/home-manager: add warning about modulesPath 2017-11-02 10:32:25 +01:00
Nikita Uvarov
1213578eb7
zsh: turn fpath into a set
Forcing fpath to contain unique values increases startup speed by
eliminating extra work of processing duplicated folders.
In addition, it increases startup time when zsh is enabled in both
system and home configuration due to having the same fpath value
between different compinit calls.
Fixes https://github.com/rycee/home-manager/issues/108.
2017-10-30 13:53:40 +01:00
Ruben Maher
268d027770
modules/home-manager: fix syntax error
Fixes the error

    error: syntax error, unexpected $undefined, expecting IND_STR or
    DOLLAR_CURLY or IND_STRING_CLOSE, at
    .../home-manager/modules/programs/home-manager.nix:70:47
2017-10-30 10:47:16 +01:00
Robert Helgesson
d70715a635
use xdg.configFile for files in XDG config home 2017-10-29 01:59:34 +02:00
Robert Helgesson
bf3a8c6383
home-manager: point <home-manager> to project root
Before this path would point to the modules path. Using the project
root instead makes it possible to set `<home-manager>` to point to a
downloadable archive of Home Manager. This should make it
significantly easier to install and keep Home Manager up to date.

To match this change we also deprecate the Home Manager option

    programs.home-manager.modulesPath

and instead ask users to use

    programs.home-manager.path
2017-10-24 01:14:22 +02:00
pasqui23
b78b2b6b35
firefox: add enableIcedTea option 2017-10-21 12:09:39 +02:00
Robert Helgesson
30b9d7f00e
Use only tools from Nixpkgs in activation script
Note, we still pull in the user's `PATH` in case the user has defined
their own activation blocks that depend on additional tools.
Eventually this will be deprecated and removed.

See #99.
2017-10-20 19:04:33 +02:00
Robert Helgesson
335cffe9a9
man: install man, not man-db
This may help with installing on Darwin.
2017-10-18 00:33:31 +02:00
Robert Helgesson
0672936134
info: add "info" to extra outputs to install 2017-10-15 16:03:35 +02:00
Robert Helgesson
3632478b8d
man: add module 2017-10-15 16:01:41 +02:00
Nikita Uvarov
ee7f2413ed
zsh: use new option to set internal session vars 2017-10-13 16:34:02 +02:00
Robert Helgesson
12ebf21be5
bash: add sessionVariables option 2017-10-12 15:06:51 +02:00
Nikita Uvarov
691eea9b45
zsh: add sessionVariables option 2017-10-12 14:14:06 +02:00
Nikita Uvarov
420a3f4a01
vim: add more vim settings
New settings: copyindent, hidden, ignorecase, modeline, smartcase.
2017-10-09 14:39:56 +02:00
Nikita Uvarov
52256d7a73
rofi: add fullscreen option 2017-09-30 14:14:07 +02:00
Robert Helgesson
aa974c0dc3
vim: add option programs.vim.settings
This option gathers basic Vim options into a single place. The idea is
to allow many options without making the Home Manager documentation
too verbose.

This also deprecates the options `programs.vim.lineNumbers` and
`programs.vim.tabSize`.

Fixes #69.
2017-09-30 13:30:42 +02:00
Robert Helgesson
bcff7274f4
vim, zsh: use DocBook links in description 2017-09-30 12:10:52 +02:00
Nikita Uvarov
e9deaf2ca5
rofi: add module 2017-09-28 15:39:25 +02:00
Linus Heckemann
34428fc709
Add overlay and instructions for using it 2017-09-27 13:27:40 +02:00
Nikita Uvarov
393274d142
command-not-found: add module 2017-09-27 09:49:32 +02:00
Robert Helgesson
a8e08d14bb
Mark rycee as maintainer for a bunch of modules 2017-09-26 23:40:31 +02:00
Nikita Uvarov
0f096f9ad4
git: change extraConfig from lines to attrs 2017-09-22 23:32:38 +02:00
Silvan Mosberger
db55e596d2
zsh: refine module
- fix part of zsh config being built even though cfg.enable is false
- fix .zshenv sourcing when ZDOTDIR already set

and some other minor adjustments
2017-09-22 23:27:49 +02:00
Robert Helgesson
742d1889c5
lib: make dag.nix take lib as argument 2017-09-21 13:19:29 +02:00
Robert Helgesson
61042c7606
lib: use generators from Nixpkgs 2017-09-21 13:18:33 +02:00
Robert Helgesson
76e0e09aca
emacs: allow custom Emacs package 2017-09-19 23:38:18 +02:00
Silvan Mosberger
e4deffcbe8
vim: add package option
This adds a readonly package option which will be set to the resulting
configured vim package, so it can be refered to by other configuration.
An example would be home.sessionVariables.EDITOR =
config.programs.vim.package + "/bin/vim".
2017-09-18 09:22:01 +02:00
Silvan Mosberger
de5f902487
zsh: add custom dotDir parameter 2017-09-16 21:30:47 +02:00
Nikita Uvarov
c7edde6ca4
zsh: add user nix-profile dir to fpath
Fixes zsh plugins installed to nix user profile via nixpkgs.
2017-09-12 15:39:36 +02:00
Nikita Uvarov
379e2c694b
zsh: move aliases definitions after initExtra
Same motivation as in https://github.com/NixOS/nixpkgs/pull/28378.
zsh.initExtra parameter can be used by external modules which can
redefine user aliases. This change will give user-defined aliases
the highest priority.
2017-09-12 15:21:38 +02:00
Robin Stumm
29d5f5d760
zsh: fix double compinit slowdown with oh-my-zsh
Integrate oh-my-zsh into zsh module
to be able to control invocation order.
2017-09-12 14:52:04 +02:00
Robin Stumm
258bc85b9c
zsh: add plugins submodule
To pass compinit security checks,
plugins are liked into ~/zsh/plugins folder.
This also solves issues with a slow start up,
see https://github.com/rycee/home-manager/pull/56#issuecomment-328057513.
2017-09-12 14:42:38 +02:00
Silvan Mosberger
fc1d4f5362
ssh: allow attrset matchBlock 2017-09-12 08:54:18 +02:00
Nikita Uvarov
f5289c546e
feh: add module 2017-09-04 21:36:06 +02:00
Jean Potier
721f924e15
zsh: remove search for installed completions
1. It slows down the initial start: it takes around 2s at first launch,
and around 0.25s for the following launches;
2. It seems to be redundant since just installing zsh package gives
working completions with correct $fpath set.
2017-09-04 11:45:41 +02:00
Nikita Uvarov
2c5151726c
vim: add module 2017-08-28 21:59:38 +02:00
Nikita Uvarov
85a71a3923
oh-my-zsh: set ZSH_CACHE_DIR 2017-08-26 18:24:52 +02:00
Robert Helgesson
a30751464a
info: use XDG_CACHE_HOME if defined 2017-08-26 12:10:14 +02:00
Nikita Uvarov
1678548353
zsh: set HELPDIR 2017-08-24 13:13:35 +02:00
Nikita Uvarov
7218c45443
zsh: add completions to fpath 2017-08-24 13:13:34 +02:00
Nikita Uvarov
bd914d49f1
zsh: add history submodule 2017-08-24 13:13:34 +02:00
Robert Helgesson
fed112e497
git: simplify submodule slightly 2017-08-24 01:03:01 +02:00
Nikita Uvarov
c3be4c4629
termite: add module 2017-08-23 23:31:47 +02:00
Nikita Uvarov
910cdc0537
zsh: use .zshenv for env vars 2017-08-21 18:00:58 +02:00
Nikita Uvarov
3ef56576d3
oh-my-zsh: add module 2017-08-16 15:44:27 +02:00
Nikita Uvarov
cde8e02bf2
zsh: add module 2017-08-16 13:58:30 +02:00
Silvan Mosberger
1d24e96074
htop: use types.coercedTo 2017-08-02 22:22:54 +02:00
Robert Helgesson
be432c8654
ssh: add control persist option 2017-07-29 17:47:18 +02:00
Silvan Mosberger
3778a69fbe
htop: add module 2017-07-24 11:42:45 +02:00
Robert Helgesson
2e257f40e6
home-manager: remove manually installed home-manager
If the `home-manager` module is enabled then check if the
`home-manager` package is installed using `nix-env -i` and if so then
it is automatically uninstalled before the new package environment,
which includes home-manager, is installed.
2017-07-19 00:12:34 +02:00
Robert Helgesson
7a18a0fb34
home-manager: add module
This module is a module to install and configure the home-manager
tool. By managing the home-manager tool through the Home Manager
module system it will be installed/updated on configuration
activation.
2017-07-11 20:53:42 +02:00
Robin Stumm
e274fc732b browserpass: add module (#16)
* browserpass: add module

* apply some review requests

* browserpass: update to 1.0.5

* browserpass: install from Nixpkgs using `home.file`
2017-06-30 22:45:09 +02:00
Christopher League
ff65781b84
info: add module
This is a module for managing the GNU info directory for the user
profile. See comments at the top of `modules/programs/info.nix` for
further information.
2017-05-26 00:44:55 +02:00
Robert Helgesson
ecf7d91d8b
ssh: use types.str instead of types.string
The `types.string` type is deprecated due to its surprising behavior.
2017-05-13 12:23:59 +02:00
Robert Helgesson
961722c3a8
ssh: add proxy command option 2017-05-13 12:08:09 +02:00
Christopher League
bce262e46e
ssh: add programs.ssh module
This module generates a `.ssh/config` file. This doesn't embed _all_
options for the ssh client, but the most common ones should be there.

Example usage:

```nix
  programs.ssh = {
    enable = true;
    forwardAgent = true;
    controlMaster = "auto";
    matchBlocks = [
      {
        host = "something.blah.edu";
        port = 1024;
        user = "cleague";
        identitiesOnly = true;
      }
      {
        host = "host1 host2 host2.net host2.com";
        port = 7422;
        hostname = "example.com";
        serverAliveInterval = 60;
      }
      {
        host = "lucian";
        forwardX11 = true;
        forwardX11Trusted = true;
        checkHostIP = false;
      };
    };
  };
```

Each entry in `programs.ssh.matchBlocks` must contain a `host` field,
which will be used for the block condition.
2017-05-13 11:41:38 +02:00
Robert Helgesson
e8fb9f50ce
gnome-terminal: use attrsOf rather than loaOf
Since the attribute names carry semantic meaning we should be more
strict about the type.
2017-05-10 00:20:15 +02:00
Robert Helgesson
8fab2a5d9b
Add basic directed acyclic graph data structure
Also make use of this instead of Nixpkgs's strings-with-deps library
in activation script generation.
2017-05-04 00:39:36 +02:00
Robert Helgesson
fea693ba16
Use stricter Bash settings in activation script
For example, with these settings Bash will complain if uninitialized
variables are used. Some code has been improved to run cleanly with
these settings.
2017-03-25 21:57:03 +01:00
Robert Helgesson
5d49ea6d49
git: remove default signing key
It is mandatory for a user to set the signing key so it does not make
sense to set a default.
2017-02-12 10:02:06 +01:00
Robin Stumm
386d2dbd25
git: fix evaluation error on null extraConfig 2017-02-11 23:35:36 +01:00
Robert Helgesson
119c7b2538
gnome-terminal: load configuration at right time
If the dconf service hasn't been installed then the configuration
activation will fail. Thus, make sure the activation script is run after
packages have been installed.
2017-02-05 12:01:49 +01:00
Robert Helgesson
10031e16bf
gnome-terminal: rename activation command 2017-01-21 13:33:07 +01:00
Robert Helgesson
5fbbbd1ea4
pam: add module
Also make it possible to set session variables using PAM rather than
Bash.
2017-01-16 23:54:45 +01:00
Robert Helgesson
b1f84ada60
Support dry run in activation script
If the `DRY_RUN` variable is set then no actual change should be
performed. Only printing what actions would be taken.
2017-01-16 00:16:22 +01:00
Robert Helgesson
071e631648
Improve a few description fields 2017-01-15 23:42:48 +01:00
Robert Helgesson
5cb1ede034
firefox: add module 2017-01-15 23:42:46 +01:00
Robert Helgesson
a617aeaa73
gnome-terminal: add to packages 2017-01-15 23:42:03 +01:00
Robert Helgesson
d7d02c3ce8
Initial import 2017-01-14 13:15:24 +01:00