1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-11-14 15:19:45 +01:00
Commit graph

1290 commits

Author SHA1 Message Date
Philipp Mildenberger
f0e6396b78
nushell: fix link in the description (fixes #1693) (#1694) 2021-01-01 21:35:43 -05:00
Robert Helgesson
6acc6bc651
pam: add note about future deprecation
See #1691 for more information.
2021-01-01 09:51:26 +01:00
06kellyjac
05448dcedb
octant: add module 2020-12-31 15:18:13 +01:00
zimbatm
118b36bf45
direnv: fix the fish source
This is needed for the latest version of direnv. See
https://github.com/direnv/direnv/issues/742
2020-12-31 00:49:55 +01:00
Nicolas Berbiche
f4b5ae026c
waybar: fix css identifier check (#1687)
Fixes #1686
2020-12-30 18:17:39 -05:00
Matthieu Coudron
8e0c1c55fb
programs.neovim: write config in $XDG_CONFIG_HOME/init.vim (#1652)
* neovim: write config in $XDG_CONFIG_HOME/init.vim

instead of wrapping the configuration, which has sideeffects
https://github.com/NixOS/nixpkgs/issues/55376

* fix: update test accordingly
2020-12-29 20:26:02 +01:00
Nicolas Berbiche
99f0074362
waybar: allow CSS class when using a default module
Fixes #1682
2020-12-28 20:43:40 -05:00
Shane
5263fe4594
imapnotify: switch to goimapnotify instead of node-imapnotify (#1675)
I also made some modifications to the systemd service to match the [AUR version](https://aur.archlinux.org/cgit/aur.git/tree/goimapnotify@.service?h=goimapnotify) of `goimapnotify`. In particular, restarting is useful in case a network failure causes `imapnotify` to exit - that shouldn't mean that it stops trying when the network comes back up.
2020-12-27 16:10:55 +01:00
Sebastián Estrella
cd86c2638b
gnome-terminal: Add audibleBell option (#1671)
Turn on/off the terminal's bell
2020-12-27 16:09:59 +01:00
Sebastien Waegeneire
3627ec4de5
chromium: add support for external extensions
This allows the installation of external (outside of the Chrome Web
Store) extensions, both local and remote.

PR #1648
2020-12-23 00:59:03 +01:00
Mario Rodas
2901044520
mcfly: add option to enable fuzzy search
McFly 0.5.1 added support for fuzzy searching.
2020-12-22 00:30:47 +01:00
Andrew Jeffery
cb136f37c7
mako: add extraConfig option 2020-12-22 00:19:37 +01:00
Austin Butler
76de0632ac
starship: update prompt_order to format in example 2020-12-21 23:56:46 +01:00
Robert Helgesson
8b3fca4ec5
dconf: format file 2020-12-21 23:22:22 +01:00
toonn
a1162e04b3
tmux: add a prefix option overruling shortcut if defined
Previously, it was not possible to set an arbitrary tmux prefix since
CTRL was hardcoded in the module.

To avoid breaking existing configs, a new option was implemented that
conveniently uses the tmux terminology but defaults to null and does
not affect previous behavior when set to null.

The behavior for the shortcut option was not completely replicated,
i.e., it does not bind "b" to send-prefix but stick to the default of
the prefix binding sending prefix (C-b C-b instead of C-b b) and it
does not bind repetition of the prefix (C-b C-b) to `last-window`,
both of these bring the option closer to the default tmux
configuration.

Fixes #1237
2020-12-21 00:10:59 +01:00
Christian Lütke-Stetzkamp
e87bccabc3
dunst: include legacy icons
Fixes #744
2020-12-19 09:56:17 +01:00
seylerius
1a7f190cb9
rofi-pass: add rofi-pass plugin for password-store 2020-12-18 23:22:57 +01:00
c4710n
66a68b4a58
chromium: add support for brave
Brave Browser is a chromium-based browser, too.

+ it use the same web store with Chromium and Google Chrome.
+ the machanism of installing extensions works, and it's verified on
my macOS box.
2020-12-15 18:39:16 +01:00
Robert Helgesson
708cb61e82
systemd: support sd-switch
This adds support for sd-switch, a tool to perform systemd generation
switches. It can be activated by setting

    systemd.startServices = "sd-switch";
2020-12-13 22:00:30 +01:00
Vojtěch Káně
b6ed605d4a
systemd: support mount units 2020-12-10 23:16:51 +01:00
Guillaume Girol
6739d8bb50
targets/genericLinux: make locales work 2020-12-10 22:34:30 +01:00
Jos van Bakel
4f0b0d78af
msmtp: fix passwordeval (#1649) 2020-12-10 22:32:34 +01:00
Matthieu Coudron
9d775bad07
neovim: mark plugins as optional (possibly) (#1559)
can be loaded with packadd!
2020-12-10 22:30:16 +01:00
Ivar
e6a58a7e71
pbgopy: add service 2020-12-09 23:45:51 +01:00
Jos van Bakel
e3828769e8
msmtp: fix passwordeval (#1643)
msmtp fails with broken pipe error when sending emails.
The new line after the password is not required anymore since msmtp 1.8.0.
2020-12-09 09:22:00 +01:00
Sandro Jäckel
275d1b5212
systemd: allow creating slices 2020-12-05 09:18:17 +01:00
Sandro
aaa5329d39
systemd: Fix example (#1639)
missing `;`
2020-12-04 18:39:05 +01:00
Nicolas Berbiche
005ea6cc18
zathura: allow configuring the package used (#1636)
Closes #1633
2020-12-04 18:38:22 +01:00
Blaž Hrastnik
0654364426
waybar: fix systemd service
The current definition makes waybar wait for dbus.service, but that
never happens because dbus.service is started on demand by
dbus.socket.

Per systemd docs:
  https://www.freedesktop.org/software/systemd/man/systemd.service.html#Implicit%20Dependencies

- Services with Type=dbus set automatically acquire dependencies of
  type Requires= and After= on dbus.socket.

- Socket activated services are automatically ordered after their
  activating .socket units via an automatic After= dependency.
  Services also pull in all .socket units listed in Sockets= via
  automatic Wants= and After= dependencies.

Removing Requisite/After makes the service properly start for me,
simply specifying Type=dbus is enough.

See #1370
2020-12-01 23:07:39 +01:00
Matthias Riße
33407189c1
wlsunset: add module
This adds the wlsunset module, a program for day/night gamma
adjustments on wayland.

Fixes #1625
2020-12-01 21:46:46 +01:00
Nicolas Berbiche
44f9d68d8c
treewide: replace attrs by formats or types.anything 2020-11-29 21:54:55 -05:00
Tyler Benster
c6263347de
zsh: add initExtraFirst option 2020-11-29 19:39:47 +01:00
Terje Larsen
a3a0f1289a
emacs: make service package configurable 2020-11-22 13:09:22 +01:00
Robert Helgesson
7b6ebf2785
Revert "sway: validate configuration at build time"
This reverts commit 99b75f99df. See

  https://github.com/nix-community/home-manager/issues/1613 and
  https://github.com/nix-community/home-manager/pull/1614

for associated discussions.
2020-11-17 18:45:23 +01:00
Nicolas Berbiche
6dc68b1d16
i3: validate configuration at build time
PR #1579
2020-11-16 23:51:59 +01:00
Nicolas Berbiche
99b75f99df
sway: validate configuration at build time
PR #1579
2020-11-16 23:51:34 +01:00
Nicolas Berbiche
964f698095
waybar: fix null modules-{left,center,right} error
- Change the `attrsOf unspecified` to `pkgs.formats.json`
- Add missing default modules
- Expand the `with lib` with every function used
- Add inline documentation about the generated warnings
2020-11-16 22:56:54 +01:00
Robert Helgesson
4f20ee61c2
sway: restore use of pkgs.sway
Using the final package in the `onChange` block broke some use cases.
This restores the old behavior and instead solves the test
dependencies in a different way.

Fixes #1611

This reverts commit 7c3c64208e.
2020-11-16 22:35:07 +01:00
Ashish SHUKLA
9e01441c5c
zsh: Add dirHashes option 2020-11-15 23:49:55 +01:00
Martin Toman
b04aa56503
powerline-go: add zsh integration 2020-11-15 00:12:02 +01:00
malte-v
234de0270a
broot: improve configuration
The `invocation` is an optional attribute, so it doesn't make sense to
use it as the key in an attribute set. See

  https://dystroy.org/broot/documentation/configuration/#verb-definition-attributes

Actually, `invocation` should not be defined when one wants to rebind
a built-in verb to a different key.

Also added documentation for the `key` attribute.
2020-11-14 23:04:46 +01:00
Joe Hermaszewski
9c14bbe988
tmux: allow setting default-shell before new-session 2020-11-14 10:59:10 +01:00
Robert Helgesson
7c3c64208e
sway: use configured package in reload script
Fixes unnecessary download of the plain `sway` package.
2020-11-14 10:38:58 +01:00
workflow
9e9d8ffc7c
i3status-rust: add module
This adds the i3status-rust[0] module, a replacement for i3status
written in pure Rust.

[0] https://github.com/greshake/i3status-rust
2020-11-05 23:59:47 +01:00
AstroSnail
1066e01707
mpv: use lib.generators to render config
There exist mpv configurations which cannot be expressed in
`programs.mpv.config` currently. For example, it is impossible to use
multiple 'profile' attributes. This commit changes the way config and
profiles are parsed, using `lib.generators.toKeyValue` and
`lib.generators.toINI`, to allow for these kinds of configurations
through the use of `listsAsDuplicateKeys`.
2020-11-03 00:28:24 +01:00
Nick Hu
61e63c10dc
parcellite: make package configurable 2020-11-03 00:12:04 +01:00
Nikita Uvarov
cabf9ddd98
caffeine: add service 2020-11-02 23:38:47 +01:00
Robert Helgesson
072a6ea333
docs: change stable from 20.03 to 20.09 2020-11-02 23:13:20 +01:00
arcnmx
c8746fb588
mpd: systemd socket activation 2020-10-28 22:31:01 +01:00
arcnmx
99fbae0ec5
mpd: configurable executable package 2020-10-28 22:31:00 +01:00
Tad Fisher
b5291e995f
emacs: avoid desktop file collision 2020-10-28 11:56:22 -07:00
Robert Helgesson
28eb093a1e
systemd: use listsAsDuplicateKeys
This causes list values to be emitted as a list of key-value pairs
instead of a single key-value pair where the value is space separated.

This is useful, e.g., for socket units that would like to specify more
than one `ListenStream=` address.
2020-10-25 22:55:06 +01:00
arcnmx
9bf1f40af1
xdg: disambiguate home.file attribute names 2020-10-22 23:51:01 +02:00
Tobias Happ
22a3a5651d
gh: add module 2020-10-22 23:36:15 +02:00
Milan Pässler
308ee310de
gammastep: add module
Fixes #1396
2020-10-22 23:11:43 +02:00
Nicolas Berbiche
0778a80ee0
waybar: use Nixpkgs maintainers entry
I recently had my first package added to Nixpkgs and am now in the
official list of maintainers so this information is no longer required
here.
2020-10-22 22:57:58 +02:00
zimbatm
9cf5f764e1
tree-wide: update link to the doc 2020-10-22 22:41:56 +02:00
zimbatm
014d8deb60
tree-wide: update url to the repo 2020-10-22 22:41:56 +02:00
Robert Helgesson
18429f1d1d
emacs: remove use of makeDesktopItem
Can generate the file directly to avoid the dependency on the
`makeDesktopItem` API.
2020-10-22 22:00:22 +02:00
Robert Helgesson
dc5239b5ce
firefox: minor option description fix 2020-10-20 00:28:52 +02:00
dawidsowa
c5e47e25a6
firefox: add enableGnomeExtensions option (#1552) 2020-10-19 15:37:49 +02:00
Robert Helgesson
e7d5531cfa
vscode: apply nixfmt 2020-10-12 22:51:12 +02:00
Robert Helgesson
aecd4acfb4
neovim: apply nixfmt 2020-10-12 22:50:49 +02:00
Nick Hu
18a05a9604
zsh: add support for prezto configuration framework (#655) 2020-10-12 01:27:44 +01:00
c4710n
0e9b6e6dc9
chromium: enable for all platforms 2020-10-11 23:07:38 +02:00
happysalada
fc5619764e
skim: add fish integration
Add fish integration to `programs.skim`.

PR #1549
2020-10-11 22:59:23 +02:00
Robbert Gurdeep Singh
b584745506
neovim: add extraPackages (#1522)
Add an option to add packages to the PATH of nvim.
This may be usefull to make extra programes availible
for plugins and/or for usage in :! myprogram
2020-10-10 16:15:42 +02:00
Charlotte Van Petegem
473d9acdad
neomutt: fix duplicated extraConfig in account (#1546)
The `accounts.email.accounts.<name>.neomutt.extraConfig` option is
included twice in the resulting config file for the account. One time as
part of the `mraSection`, one time as part of `accountStr` (`accountStr`
includes the `mraSection`). This removes that duplication. I opted to
keep the one in `accounStr`, since `extraConfig` doesn't necessarily
have anything to do with the `mraSection`.
2020-10-09 20:55:35 +02:00
Evan Stoll
8537920706
autojump: add module
This also deprecates the `programs.bash.enableAutojump` option in
favor of this module.
2020-10-08 23:50:43 +02:00
Andrew Fontaine
0006da1381
home-environment: add option home.sessionPath
This option allows adding additional entries to `PATH`.
2020-10-05 21:06:42 +02:00
Olmo Kramer
9ff2188c5d
mpv: make wrapped package available via package 2020-10-01 22:28:33 +02:00
Olmo Kramer
41147ae09a
feh: allow binding actions to multiple buttons/keys
In feh you can bind multiple keys to the same action, but Home Manager
only let you set a single key to an action. You can cheat and pass a
string with space-separated keys, but with this change you can pass a
list for each action to bind multiple keys to it.

Also adds a couple of tests.

Fixes #1366
2020-09-30 00:55:09 +02:00
Olli Helenius
6fed10a09a
gnome-terminal: add backspace- and delete-binding options
These settings control the string sent by gnome-terminal when the
respective keys are pressed. The options are the ones described in
libvte documentation:

https://developer.gnome.org/vte/0.48/VteTerminal.html#VteEraseBinding
2020-09-29 23:48:41 +02:00
Karl Hallsby
f0fc2a8702
mu: add module 2020-09-29 23:26:45 +02:00
Joe Hermaszewski
abfb4cde51
vim: Allow setting init.vim config alongside plugins + neovim test (#876)
* neovim: allow setting init.vim config alongside plugins
* neovim: add test for neovim plugins
* neovim: make pluginWithConfigType a have type submodule
2020-09-25 02:08:39 +02:00
Robert Helgesson
43ab2f40b9
notmuch: inline notmuch-accounts.nix
Having it in a separate file is a bit unnecessary.
2020-09-24 20:02:49 +02:00
Alex Rice
690d93c22a
sway: fix startup example (#1517)
Fixes #1515. Example for `wayland.windowManager.config.startup`
referenced options `notification` and `workspace` which are not valid
for sway.
2020-09-24 10:16:54 +01:00
John Axel Eriksson
8a160f01ab
sway: fix onChange for sway config when sway isn't running (#1506)
`pgrep -x somecommand` exits with a non-zero status if it finds no
process running with the given name. When using home-manager as a
NixOS module, on boot (when sway isn't running) this script would
fail and then fail the unit since it seems the onChange scripts
are running with the -e switch.

This change ensures we're always returning a 0 exit status where we
attempt to get the pid of sway - we're only interested in either the
pid or an empty string, the exit status isn't important.
2020-09-23 12:10:58 +01:00
Vojtěch Káně
84bcce3c25
pet: add module
Adds a pet module without sync support as it makes no sense when
configuration is managed with Home Manager and the config would be
unwritable for pet anyway.

PR #1045
2020-09-22 23:20:17 +02:00
Karl H
96d7de6db1
mbsync: per account multiple channels (#1360)
* mbsync: option for configuring a channel

A channel is a relationship between 2 directories/boxes/mailboxes
between the local machine (slave) and the remote mail server (master).
Each channel must be given at least:
     * an account-unique name
     * a pattern for which mailboxes to sync from master
     * a pattern for what directory where that mail ends up on the
     slave

Additional options can be added later.

* mbsync: option for configuring a group

A group is a grouping of channels together, so that many channels with
very different names can be handled as a single entity.

Groups are unique in mbsync because they will shadow channels that
have the same name on the command-line.

* mbsync: create groups configuration attribute

This is the end of the configuration that the end-user will use.

They will specify an attribute set that contains the name for the
group, so they can say
`accounts.email.accounts.<aname>.groups.<gname>` to access the
configuration for the group with the name `<gname>`.

* mbsync: write function to generate group-channel blocks

This function takes in a set of groups, and their consituent
channels and writes the appropriate .mbsyncrc block. The block is as
shown below:

      Group groupName1
      Channel channelName1
      Channel channelName2

      Group groupName2
      Channel channelName3

Each group must have a unique name, no matter which account it is
declared under. The same holds true for channels. However, if there is
a group that shares the same name as the channel, the channel will
effectively be "shadowed" by the group, and mbsync will default to
working with the group in that case.

* mbsync: write function to generate channel configuration blocks

This function takes in a set of groups, which includes their
consituent channels and writes the appropriate .mbsyncrc block for the
channel. The block that is generated is shown below:
      Channel groupName1-channelName1
      Master :<accountName>-remote:<master-pattern>
      Slave :<accountName>-local:<slave-pattern>

      Channel groupName2-channelName2
      Master :<accountName>-remote:<master-pattern>
      Slave :<accountName>-local:<slave-pattern>

Each group must have a unique name, no matter which account it is
declared under. The same holds true for channels.

Using channels with the patterns set up this way allows one to specify
which maildir directories are to be synchronized FROM the master TO
the slave. In addition, it allows for these maildirs to be remapped,
between the master server and the local slave.
This is critical, because Gmail has a strange way of storing its mail
that makes using mbsync, mu, and mu4e more difficult.

There are additional channel parameters that are already present in
this codebase from the previous use of group-channel configuration,
which will be reused.

* mbsync: set the submodule's names field according to parameter

This is the same method as is used in creating an email account, named
`<name>` under `accounts.email.accounts.<name>`. This allows the user
to specify groups and channels, in a list-like format, but still gets
the "namespacing" to more easily handle the options available in each
of these locations.

* mbsync: provide examples of master/slave patterns for channels

* mbsync: create nested-let function to generate channel pattern

This pattern is required to either NOT be present, which means the
master pattern is used to match, or it has a list of patterns to use
beneath the master maildir to match against.

This function checks to ensure that if patterns is not empty, ONLY
then is the `Pattern` keyword printed. Otherwise, there are many, many
problems.
If there IS a list of patterns, then we use proper escaping methods to
ensure that the exact string is constructed.

* mbsync: per-account groups can have additional patterns

Gave the
`accounts.email.accounts.<name>.mbsync.groups.<gname>.channel.<cname>`
set a `patterns` option, which will allow for greater customization
and filtering of the master maildir to sync to the slave maildir.

* mbsync: add extraConfig option for easier-to-format options

These are options that can be handled by the `genSection` function in
the `genAccountFunction`, so they are left to the user to decide.
Most of these are made on a global basis anyways.

* mbsync: remove unneeded extraConfig.channel

This was originally placed here, seemingly, just to get this module
working. However, this field is actually more confusing now that a
separate per-channel configuration option for extra configurations has
been made available.

* mbsync: correct and improve comment in masterPattern description

* mbsync: switch channel/group generation to new functions

Changing this out is what moves us from the old system to the new one.
Instead of having a single channel manage a whole mailbox, we can now
specify an attribute set of groups that should correspond to an email
account.

Each of these groups contains an attribute set of channels that make
it up, and are grouped together for synchronization. In addition, each
of these channels can have additional IMAP4 parameters attached to
them to further refine synchronization.

Lastly, each of the channels is grouped together under the Group
section, ensuring that the channels' mailboxes synchronize as they
have been specified.

* mbsync: only generate group/channel configuration if channels present

Typically, when a group is specified, channels will be specified as
well. However, if due to error or mistake, the user forgets to specify
ANY channels for a group, we should not generate that group's
information.

This means that no channels are specified (which maps the remote
master to local slave). In addition, the `Group <gName>` block (which
brings the separate channels together) is also not generated.

Another thing to consider is that a user might specify a group and a
channel, but perform no additional configuration of the channel.
In a configuration, this would be realized by
`accounts.email.accounts.<aName>.mbsync.groups.<gName>.channels.<cName>;`

This creates the channel with the name `<cName>` and the
`masterPattern`, `slavePattern`, and `patterns` fields use their defaults.
By definitions set within mbsync, these defaults actually specify that
the remote master's `INBOX` mail directory is synchronized to the
local slave's `INBOX` directory.

So, if there is a channel that has no fields specified, then we DO
want to generate its configuration. But if there is a group that has
no channels, then we do NOT generate it.

* mbsync: acc comment explaining why groups attr set is never empty

* Revert "mbsync: remove unneeded extraConfig.channel"

This reverts commit 941c4771ca.

To support backwards compatibility, I need to leave this field/option
in the module, even if it will likely be more confusing to do it this way.

* mbsync: channel compatibility with previous iteration of mbsync

The previous version of mbsync used a single channel for an entire
account. This leads to issues when trying to change the mailbox
hierarchy on the local machine. The problem with this is that some
email providers (Gmail, among others) use a slightly different maildir
hierarchy, where the standard mailboxes (Inbox, Drafts, Trash, etc.)
are stored inside another directory (`[Gmail]/` in the case of Gmail).

This new version allows the user to specify any number of groups with
any number of channels within to reorder their mail however they wish.

However, to maintain backwards compatibility, I moved the original
channel-generating code to a function that will run ONLY when
there are no groups specified for THIS account.

* Revert "mbsync: channel compatibility with previous iteration of mbsync"

This reverts commit b1a241ff9f.

This function is in the wrong location and this was wrongly committed.

* mbsync: function for backwards compatibility with previous mbsync

NOTE THAT THIS IS THE CORRECT COMMIT FOR THIS CHUNK OF CODE!!

The previous version of mbsync used a single channel for an entire
account. This leads to issues when trying to change the mailbox
hierarchy on the local machine. The problem with this is that some
email providers (Gmail, among others) use a slightly different maildir
hierarchy, where the standard mailboxes (Inbox, Drafts, Trash, etc.)
are stored inside another directory (`[Gmail]/` in the case of Gmail).

This new version allows the user to specify any number of groups with
any number of channels within to reorder their mail however they wish.

However, to maintain backwards compatibility, I moved the original
channel-generating code to a function that will run ONLY when
there are no groups specified for THIS account.

* mbsync: function to choose which style of group/channels to generate

This is a simple if-check. If the old style is used, then this
account's mbsync.groups attribute set is empty. If that is the case,
then the old-style single-channel per account is used.

If that is NOT the case, then the new style is used in preference of
the old. This means that ALL channel code that would be generated by
the old version is replaced by the new one.

* mbsync: switch per-account config generation to check channels

* mbsync: program-wide groups if no account-specific groups

At the end, we have to choose whether or not to generate the old style
of having program-wide groups to specify things, where the boxes on
the channel underneath the group specifies which mailboxes to sync.

Here, we only generate the old style of group IF there is ANY account
that does NOT have the new `accounts.mbsync.groups` defined. At that
point, it is up to the user to ensure that the accounts in
`programs.mbsync.groups.{}` align with the name chosen for the
account, as I have made no attempt to change this old code.

However, if ALL accounts have their `mbsync.groups` defined, even if
each of the groups has a single empty channel, it will generate the
groups in the new style.

* mbsync: ensure \n after hm-generated comment

This was a multi-part fix. First, the `# Generated by Home Manager.`
comment has been reworked to ensure that it will ALWAYS have a
newline, even if the program-wide extraConfiguration is empty.

Next, we switched to placing 2 newlines between every account, to
provide further visual distinction between each account, which can
have multiple channels and multiple groups defined at the same time.

Lastly, the groupsConfig was slightly reworked, so that both the old
and new version can be used, but the new one will take precedence.
Because of this, groupsConfig is now a list of strings, which will
have single newlines inserted between each element.

But if the old style is NOT used, then the groupsConfig list
contains one element, an empty string. A single element has nothing
added as a separator, and an empty string produces no output.

* mbsync: only generate new group/channels if channels present

Here, the problem was if the user created a group for an account, but
did not also include a set of channels. If no channels have been
specified, then the group should NOT have its group-channel mapping generated.

I also corrected and improved the comment regarding
`genGroupChannelString`'s function and intended behavior.

* mbsync: channel patterns generate their own newlines

This means that when a channel has extra `patterns` defined for it, it
will generate those, and a single newline will be appended to the end
of that newly constructed string.

The moving of the newline character is slightly important because
otherwise, every account would receive an extra newline after every
channel, leading to 2 newlines after every channel.

* mbsync: place newline between each channel in a group

* mbsync: ensure old group/channel has proper spacing

This ensures that if the old style of generating program-wide groups
that there is the proper spacing before the group and in between each
line within the group.

* mbsync: ensure no empty channels present

If the user specifies a group correctly, they must still specify an
attribute set of channels. However, if they do not, then we need to
ensure that a group with no channels does NOT have any channel
configurations generated for it.

If there is a channel string generated for a channel that is empty,
then the `mapAttrsToList` returns a singleton list that contains just
the empty string. Thus, we can filter out all those results, to ensure
that no empty channels are generated.

It is important to keep in mind the difference between an empty
channel and a channel that has received no configuration, but is
named.
	* A named channel is technically configured to have a name.
	  While the `masterPattern`, `slavePattern`, and `patterns`
	  field have NOT been populated, mbsync assumes that if
	  master/slave-Pattern are empty that means match against
	  `INBOX`.
	  If `patterns` is empty, no patterns are printed.
	* An empty channel set is a set that has no channels within
	  it, but `mbsync.groups.<gName>.channels` is defined.

* mbsync: filter empty groups and correct newlines

First thing, someone can specify that a group is empty. If this is
done, technically a group with channels would be generated at the end.
However, because they were empty and did not exist, whitespacing would
be generated, leading to a usable, but mangled config file.
The `filter` solves this problem by removing empty strings (which are
generated by groups that are empty) from the output strings to place
in the file.

Lastly, because the whitespacing was fixed elsewhere in the file, the
crazy double-newline at the end was changed to a single newline.
However, the double newline within the `concatStringsSep` is still
required, because the list that is being concatenated together is a
list of channel configurations. Each element corresponds to one of the
groups specified, whose contents are the channels specified within.

The double newline is needed because each string element is lacking a
trailing newline, because `concatStringsSep` does not add the
separator to the end of the last element in the list. So, the last
channel to be configured will not have that newline appended when the
channel-configuration list is created, thus, 2 are inserted here.

* mbsync: update test input to use per-account channels

* mbsync: comment how old/new style collision handled

This is left in the test input for now, because I think it is useful
to see why certain things are happening the way they are.

* mbsync: update test output pattern

The test output should now have the correct configuration according to
the way I have specified it in the input file.

* mbsync: use format script on new code

* mbsync: add KarlJoad as maintainer

Co-authored-by: Nick Hu <me@nickhu.co.uk>
2020-09-21 18:16:06 +01:00
Evan Stoll
9b1b55ba02
numlock: add test
- Add evanjs to CODEOWNERS for numlock and numlock test
- Add evanjs to maintainers for numlock module
2020-09-18 19:35:19 +02:00
Robert Helgesson
b3498cccb3
info: generate dir file directly in profile
This avoids the need for the activation block. The `dir` file is
instead built directly in the installed profile.
2020-09-18 14:05:42 +02:00
Symphorien Gibol
92c682cd10
unison: fix escaping of arguments
The `ExecStart=` option of systemd must take arguments fully quoted.
That is,

    "-sshargs=-i somekey"

and not

    -ssargs="-i somekey"

Additionally, inside arguments passed to unison, `=` characters must
be quoted. After unquotation by systemd, one must have

    -sshargs=-o Foo\=4

instead of

    -sshargs=-o Foo=4
2020-09-18 00:16:22 +02:00
Damien Cassou
472ca211ca
man: support building manual page index cache
The apropos software is useful to get a list of manpages matching a
description or to get a list of all manpages. The latter feature is
used by Emacs to get manpage completion (`M-x man`).

To have apropos working, a database of all available manpages must be
built with mandb. This is what this commits does.

A similar change was done for NixOS:
edc6a76cc0
2020-09-13 20:52:08 +02:00
Damien Cassou
812b64d4d3
man: prepare for new programs.man options 2020-09-11 20:16:33 +02:00
Damien Cassou
605a8fc92e
generic-linux: add option extraXdgDataDirs
PR #1486
2020-09-11 12:26:55 +02:00
Damien Cassou
b819d2cc41
generic-linux: prepare code for new options
This moves the enable option into an explicit attribute set to allow
future addition of new options.
2020-09-11 12:26:54 +02:00
Bruno Bigras
1f04af74f2
mcfly: fix when non-interactive with fish 2020-09-11 11:41:08 +02:00
dawidsowa
249650a07e
mpd: change musicDirectory to str (#1449) 2020-09-06 23:37:46 +02:00
Niclas
4ebb7d1715
systemd: fix systemd spelling (#1373)
Systemdaemons are lowercased and get suffixed with a d
2020-09-06 11:28:40 +02:00
Paho Lurie-Gregg
1a6d6b8ace
zplug: Reduce noise (#1441)
Running `zplug install` will always product output, even if there is
nothing to do.

Gating it behind a `zplug check` eliminates that output when there is
nothing to do, and is recommended in the zplug README.
2020-09-06 11:16:34 +02:00
Elis Hirwing
f146620897
htop: Add new configuration options (#1463)
There's some new configuration options since the 3.0.0 release of htop.
2020-09-06 10:58:37 +02:00
Robert Helgesson
41b1af808f
targets.darwin: disable application directory
This disables the generation of the application directory until
conflicting behavior with nix-darwin is resolved.

See https://github.com/rycee/home-manager/issues/1341#issuecomment-687286866
2020-09-04 20:01:19 +02:00
Nicolas Berbiche
182454fe6b
kanshi: fix exec configuration
Also add a test case for the exec option.

PR #1446
2020-09-04 16:45:42 +02:00
Nicolas Berbiche
d3aee544b6
targets.darwin: add module
Currently, this module makes sure that `/Applications` directories for
packages in `home.packages` get linked into the user's environment.
2020-09-04 15:21:48 +02:00
Christoph Herzog
1ed8e7ef98
vscode: add options for keybindings
Adds a new `keybindings` option to the `vscode` configuration.

It contains a list of key bindings, which will be written to
`%vscode-dir%/User/keybindings.json`.

PR #1351
2020-09-04 14:14:52 +02:00
Robert Helgesson
e6e49ad73c
home-environment: coerce home.homeDirectory to string
The home directory option should be a string without context to avoid
the directory being copied to the Nix store.

Fixes #1471
2020-09-02 22:37:21 +02:00
Cole Helbling
0399839271
lib/file-type: remove types.loaOf
loaOf has been deprecated for a long time and is now in the process of
removal (see https://github.com/NixOS/nixpkgs/pull/96042). Thus, we
remove it here, too.
2020-09-02 11:13:36 -07:00
Olmo Kramer
4b702bf6b7
ncmpcpp: add module
PR #1457
2020-09-01 22:05:57 +02:00
Robert Helgesson
4fe5afa755
files: make sure the target file name is escaped
The previous implementation would allow variables to sneak into the
file names. This commit makes sure the resulting target file path
exactly matches the expected path.
2020-08-29 18:22:03 +02:00
Robert Helgesson
209fb62d49
xdg-mime: more forcefully create directories
By installing two packages with the same directories we should force
`buildEnv` to generate real directories instead symlinks into the Nix
store.
2020-08-29 17:33:07 +02:00
Mario Rodas
a79d31fcfd
mcfly: add module
PR #1452
2020-08-26 00:21:01 +02:00
Alex Rice
0869e23700
sway: set bar defaults to null
Allows fields of bar to be nullable and omit them from the generated
configuration if unset.

Fixes #1361
PR #1386
2020-08-26 00:05:05 +02:00
Robert Helgesson
9854342b9f
nixpkgs: take Nixpkgs path from argument
This removes the dependency on the `nixpkgs` channel within the
modules for state version ≥ 20.09. The default Nixpkgs source starting
from this state version is the path of the `pkgs` argument used to
bootstrap the Home Manager modeuls.

This is a prerequisite for using Home Manager withing Nix flakes.

PR #1420
2020-08-19 00:33:25 +02:00
Vincent Gatine
a3dd580adc
kanshi: add service
PR #1142
2020-08-15 01:02:23 +02:00
Robert Helgesson
2bcd96928e
xdg-mime: make sure the target directories exist
Before the profile commands would not run if a single package is
installed since `buildEnv` will produce a symlink directly to that
package. By adding this dummy package we ensure that a real directory
will be generated.

Fixes #1392
2020-08-15 00:17:24 +02:00
James Ottaway
9a473b693a
zsh: add cdpath option (#1418) 2020-08-14 22:36:23 +02:00
Nicolas Berbiche
f4f9f1a618
waybar: add module
PR #1329
2020-08-14 00:20:49 +02:00
Jack McCown
2a54c353a9
gnome-terminal: add profile command options
Allow setting custom command and login shell.

PR #1423
2020-08-13 23:55:24 +02:00
Daniel Gorin
96e2f1bdf0
kakoune: add support for plugins
The kakoune editor has a plugin mechanism and several plugins are
already packaged under `pkgs.kakounePlugins`. However, adding these
packages to `home.packages` is not enough: the `kakoune` package needs
to be configured with the list of plugins to include, so that they get
sourced on start-up.

We add a `programs.kakoune.plugins` option, analogous to
`programs.vim.plugins`.

The change is backwards compatible since `pkgs.kakoune` is defined as

    wrapKakoune kakoune-unwrapped { };

and `wrapKakoune` defaults the list of plugins to empty.

PR #1356
2020-08-13 23:45:49 +02:00
Philipp Mildenberger
3886f8db33
pulseeffects: fix autostart
PR #1442
2020-08-13 22:39:03 +02:00
Andrew Fontaine
baea46c5ac
git: set SSL if useStartTls is false
The git-send-email [0] script uses StartTLS if `smtpEncryption` is set
to `tls`, which can break services that don't support StartTLS.

[0]: bd42bbe1a4/git-send-email.perl (L1533)

PR #1395
2020-08-13 21:36:31 +02:00
jD91mZM2
fceef469c2
xdg-user-dirs: fix erroneous dirs file
Before this change,

```rust
fn main() {
    println!("{:?}", glib::get_user_special_dir(glib::UserDirectory::Documents));
}
```

would return `None` even though `~/Documents` is available and
`xdg.userDirs.enable = true`. Checking the differences between
`xdg-user-dirs-update` shows that the latter has quotes around each
thing.

PR #1440
2020-08-13 00:07:04 +02:00
Tom Bereknyei
ae8f432a75
bash: initExtra after autojump config
Allow for initExtra to manipulate results of autojump, e.g., remove
aliases.

PR #1431
2020-08-12 23:21:57 +02:00
Symphorien Gibol
e1fbb74b41
lib.gvariant: escape backslashes in strings
PR #1433
2020-08-12 22:53:28 +02:00
Daniel Gorin
d1f4d1514d
kakoune: escape showWhitespace separators
We were passing the separators for the `show-whitespaces` highlighter
verbatim. This was problematic in case one wanted to use, spaces,
quotes or `%` as separators since the resulting kakoune configuration
would be invalid.

According to kakoune's docs, the separator has to be one character
long, so we can use a simple rule for escaping them. It is possible
that people has been working this around by passing, e.g. `"' '"` as
separator in order to get a space (i.e., escaped explicitly by the
user), so we just let longer strings be used verbatim.

PR #1357
2020-08-12 22:44:33 +02:00
Robert Helgesson
223e3c38a1
Revert "systemd: use sd-switch"
This reverts commit 9c0fe3957b.
2020-08-04 19:38:14 +02:00
Robert Helgesson
9c0fe3957b
systemd: use sd-switch
This makes the systemd module use the sd-switch application to perform
the unit switch during a generation activation.

Since the closure of sd-switch is relatively lightweight we
unconditionally pull it in as a dependency. We simultaneously remove
the `systemd.user.startServices` option and perform the switch action
automatically.

PR #1388
2020-08-04 01:01:10 +02:00
Robert Helgesson
152769aed9
xscreensaver: restart if settings change 2020-08-02 14:05:18 +02:00
hpfr
dbf6b2d2ab
starship: fix fish integration syntax
The previous fish integration for starship erroneously used parts of
POSIX-esque test syntax. It also used `-n` instead of `-z` to check
for an unset variable.

PR #1422
2020-08-02 13:04:24 +02:00
Robert Helgesson
79a2320fd0
files: minor documentation improvements 2020-07-31 00:54:23 +02:00
eyjhb
bb6eb9b13e
dropbox: fix bug caused by Python gi import
When running the service start script with `DISPLAY` set, a `gi`
import error is triggered. Blanking the variable will make the script
use a different code path that does not attempt to import `gi`.

Also moves activation script up into start of script instead.

PR #1415
2020-07-30 00:07:23 +02:00
Leon Kowarschick
2e7935767f
alacritty: add package option
PR #1372
2020-07-27 17:08:10 +02:00
seylerius
89adfc9f01
qutebrowser: unwrap list from keybinding removal
The option to remove the default keybindings by setting the
`programs.qutebrowser.enableDefaultKeybindings` variable to `false`
had a list wrapped around the `config.py` line. This would cause a
type coercion error.

PR #1410
2020-07-27 16:48:38 +02:00
eyjhb
7b73f84071
dropbox: add module
Ability to control Dropbox daemon, if it should start and where to
place the files.

PR #1391
2020-07-25 23:12:33 +02:00
Sergei Maximov
5cd7865c6c
spotifyd: add package option
This option can be used to enable optional Spotifyd features, such as
looking up the Spotify password in the system keyring or enabling
MPRIS support.

PR #1390
2020-07-25 20:43:43 +02:00
Philipp Mildenberger
3f1be69359
nushell: add module (#1333) 2020-07-24 17:15:55 +02:00
Robert Helgesson
83301ca787
lib: support gvariant maybe type
Fixes #1397
2020-07-24 16:45:13 +02:00
Robert Helgesson
8ad5580021
zsh: fix trailing white space 2020-07-21 01:10:54 +02:00
dawidsowa
e2e8b7371d
zsh: add shellGlobalAliases (#1381) 2020-07-20 19:54:30 +02:00
Mario Rodas
4bd0ca2cd7
git: configure delta through [delta] git section (#1371)
this breaks backwards compatibility (now accepts a dict instead of a list) so please update
programs.git.delta.options accordingly.
2020-07-20 17:03:40 +02:00
Cole Mickens
5c639ff68a
sway: focus.followMouse supports yes/no/always
Also add associated tests for both Sway and i3.

PR #1231
2020-07-17 15:35:00 +02:00
Robert Helgesson
a49ce0e9ed
home-environment: use per-user profile path in /etc
Before the profile directory value would point directly to the build
output in the Nix store. Unfortunately this would cause an infinite
loop if the user's configuration directly or indirectly refers to the
profile directory value.

Fixes #1188
2020-07-14 23:31:20 +02:00
f4814n
e0fb488e57
sway: Fix output example (#1385)
The example for wayland.windowManager.sway.config.output has to
contain a mode behind the filename to be correct.
2020-07-14 09:17:05 +01:00
Siva Mahadevan
5f189acce4
neomutt: fix SMTP port string
Fix the SMTP port string from #1374 by properly converting the integer
port into a string.

PR #1377
2020-07-04 12:21:02 +02:00
Robin Stumm
7dc322c1eb
kakoune: support user modes in keyMappings
kakoune: support user modes in keyMappings

User modes are declared automatically.

PR #1286
2020-07-03 22:43:18 +02:00
Siva Mahadevan
8736190743
neomutt: Add SMTP port to smtp_url 2020-07-03 15:30:12 -04:00
Damien Cassou
7f7348b470
powerline-go: fix argument to -error option
Addition of the line "local old_exit_status=$?" broke the call to
powerline-go.

PR #1364
2020-06-29 10:21:17 +02:00
Robert Helgesson
600f39f966
xresources: do not generate file for empty properties 2020-06-28 00:41:05 +02:00
Tad Fisher
54b69d2ef8
emacs: fix service environment
Emacs populates 'exec-path' at launch from the 'PATH' environment
variable. Likewise, the emacs derivation from nixpkgs populates
'load-path' from the 'NIX_PROFILES' variable. As neither of these are
available by default in the systemd user manager, revert to the
previous behavior of launching the Emacs daemon from a login shell.

Fixes #1354
Fixes #1340
PR #1355
2020-06-24 22:50:30 +02:00
cwyc
8f2342e13a
ne: add module
Added a simple module to place configuration files for ne: the nice
editor.

PR #1336
2020-06-23 22:37:02 +02:00
Mario Rodas
8ab1139891
tmux: only enable secureSocket on Linux by default
Darwin does not have the `/run/user` directory.

PR #1349
2020-06-22 19:34:52 +02:00
Robert Helgesson
1f174f6681
git: add news entry about changed escaping 2020-06-18 00:54:41 +02:00
Robert Helgesson
bf7297d55c
Move email account options to their owning modules
This removes the long list of submodules from

    modules/accounts/email.nix

and instead move each entry to its owning module.
2020-06-16 00:45:20 +02:00
Jonathan Reeve
ad4f33cfc4
qutebrowser: add package option
Fixes #1315
PR #1334
2020-06-15 21:06:14 +02:00
Robert Helgesson
ecb93ab9ae
generic-linux: respect NIX_STATE_DIR 2020-06-14 23:34:53 +02:00
Dmitry Kalinkin
dc227b579d
home-manager: respect NIX_STATE_DIR
This allows to install home-manager on a system without root access.

PR #1196
2020-06-14 20:41:55 +02:00
Vincent Breitmoser
7682eb88c4
fluidsynth: fix description 2020-06-14 16:58:08 +02:00
Vincent Breitmoser
b0e8a1569e
fluidsynth: add module
Fluidsynth is a real-time MIDI synthesizer based on the SoundFont 2
format.

PR #1326
2020-06-14 15:30:51 +02:00
s1341
1b210e7143
zplug: add module
This adds initial support for the zsh package manager "zplug".

PR #1105
2020-06-14 15:12:49 +02:00
Robert Helgesson
bb567e20b3
vte: add module
This abstracts out the VTE setup from the gnome-terminal module into
its own module and options.
2020-06-14 12:20:12 +02:00
Zsolt Szende
507e446475
vscode: fix extensions directory path
Fixes #1302
PR #1327
2020-06-14 00:43:44 +02:00
Damien Cassou
478022afad
powerline-go: add module
PR #1285
2020-06-13 00:02:13 +02:00
Damien Cassou
43ef16c3e1
clipmenu: add module
PR #1309
2020-06-12 19:52:52 +02:00
Shamrock Lee
561b3d5650
eclipse: add option package
PR #1310
2020-06-12 19:34:39 +02:00
Robert Helgesson
a3cb63265d
emacs: make news entry Linux specific 2020-06-12 10:30:52 +02:00
Tad Fisher
2209d3cb51
emacs: add myself to maintainers 2020-06-11 20:40:10 +02:00
Tad Fisher
3815248786
emacs: Support socket activation via systemd
Add 'services.emacs.socketActivation.enable' for generating an
'emacs.socket' systemd unit.

Emacs since version 26 has supported socket activation, whereby an
external process manager such as systemd listens on a socket and passes
it to the Emacs daemon when the manager launches it. This improves
startup time of the user session and avoids launching the daemon when not
needed, for example when launching the user session via SSH.

This implementation hard-codes the socket path to the default for the
version of 'programs.emacs.finalPackage', because systemd does not
perform shell expansion in the socket unit's 'ListenStream' parameter
and it seems like an advanced use-case to change the socket path. Shell
expansion would be desirable as the socket path usually resides in
directories such as $XDG_RUNTIME_DIR or $TMPDIR.

Tests were added to verify behavior in the following cases:

- Emacs service with socket activation disabled
- Emacs 26 with socket activation enabled
- Emacs 27 with socket activation enabled

PR #1314
2020-06-11 20:39:49 +02:00
Robert Helgesson
02c1f8d416
status-notifier-watcher: introduce unit start delay
Fixes #1312
2020-06-10 23:32:44 +02:00
Dany Marcoux
c378c1cbcd
autorandr: add crtc option
This option was missing. It is generated by autorandr when executing
`autorandr --save my_profile`.

Fixes #1024
PR #1283
2020-06-09 23:15:44 +02:00
Robert Helgesson
abcddfe090
firefox: update extensions option description
This adds a note that the extensions will only apply to profiles
managed through Home Manager.
2020-06-09 22:12:08 +02:00
Damien Cassou
b33802ca7f
direnv: add support for nix-direnv
PR #1297
2020-06-06 22:17:43 +02:00
Alex Rice
68b931aef8
sway: add alexarice as codeowner 2020-06-06 21:35:09 +02:00
Alex Rice
2dbe637478
sway: allow package to be null
This allows the `sway.package` option to be null so that the module
can be used alongside the nixos module.
2020-06-06 21:35:08 +02:00
Jakub Fišer
479274775f
home-environment: add full locale options support
Allows setting every locale option independently. Also fixes `LC_`
order to match the order of `locale` command output for better
reference.

PR #1278
2020-06-06 21:23:01 +02:00
Robert Helgesson
cca5161289
i3: replace deprecated package name 2020-06-06 14:53:44 +02:00
Robert Helgesson
354344d971
gnome-keyring: replace deprecated package name 2020-06-06 14:53:43 +02:00
Robert Helgesson
248dc17394
gnome-terminal: replace deprecated package names
The names `gnome3.vte` and `gnome3.gnome_terminal` have been replaced
by their more modern names.
2020-06-06 14:53:42 +02:00
Robert Helgesson
410d2febbb
dunst: replace deprecated package name 2020-06-06 14:53:41 +02:00
Robert Helgesson
42fd47b246
emacs: replace use of emacsPackagesGen
Instead we use `emacsPackagesFor`, which `emacsPackagesGen` aliases
anyway.
2020-06-06 14:53:40 +02:00
Robert Helgesson
46cd37abc9
dunst: replace deprecated package name 2020-06-06 14:53:15 +02:00
zowoq
3b33862b04
files: reference lndir through xorg
The xlibs attribute set is deprecated and is an alias for xorg.

PR #1304
2020-06-06 13:24:51 +02:00
Roman Volosatovs
85748171ec
sway: add option config.bindkeysToCode
Do not use `--to-code` by default in `bindsym`.

PR #1289
2020-06-04 23:40:42 +02:00
Julien Moutinho
0ee5c9536b
broot: fix install check
broot uses `~/.config/broot/launcher/installed-v1`, not
`~/.config/broot/launcher/installed`.

PR #1303
2020-06-04 21:54:35 +02:00
Damien Cassou
ca6fcc92a1
firefox: show how to get pre-packaged add-ons
PR #1296
2020-06-04 21:29:51 +02:00
Robert Helgesson
8e8210b441
xdg-mime: fix issue on WSL1
This change stops update-mime-database from running unless the
`share/mime/packages` directory is writable. For some reason it
appears to be read-only on WSL1.

Fixes #1192
2020-06-04 19:45:22 +02:00
Damien Cassou
a21c97d011
ssh: add support for ServerAliveCountMax
PR #1299
2020-06-03 23:16:43 +02:00
Nicolas Berbiche
b567d27394
mpv: use wrapMpv instead of mpv-with-scripts
The latter has been removed from Nixpkgs.

See:

- <https://github.com/NixOS/nixpkgs/pull/88620>
- <https://github.com/NixOS/nixpkgs/pull/89208>

PR #1295
2020-05-31 14:11:10 +02:00
Justin Lovinger
3a80ece9fa
dircolors: fix usage together with zsh.oh-my-zsh
PR #1280
2020-05-28 00:08:15 +02:00
Mario Rodas
a957e2dc6b
zoxide: add module
PR #1274
2020-05-26 19:14:39 +02:00
Nikita Uvarov
99a97c917a
autorandr: remove blank lines from config
Fixes #1249.
2020-05-26 19:04:26 +02:00
Robert Helgesson
b95ad63201
Deprecate use of builtins.getEnv
This removes the use of the non-deterministic function
`builtins.getEnv` for state version ≥ 20.09.

PR #1269
2020-05-26 00:28:59 +02:00
Robert Helgesson
31ed6f1604
gtk: apply nixfmt 2020-05-25 00:46:58 +02:00
Robert Helgesson
ac6235e53d
emacs: apply nixfmt 2020-05-25 00:45:51 +02:00
Robert Helgesson
f90b86b577
sway: fix config.keybindings example 2020-05-24 13:00:51 +02:00
Robert Helgesson
1c71bd1242
i3: fix config.keybindings example 2020-05-24 13:00:30 +02:00
Robert Helgesson
a0d9a58616
lorri: make system environment attribute a list
It should be a list to allow inclusions of additional variables.
2020-05-24 12:19:39 +02:00
Robert Helgesson
dcbe0f2a31
home-manager: add activation sanity check of Nix
This adds an empty `nix-build` command to verify that the user is
having a good Nix install. It also, as a side effect, will create the
necessary per-user `profiles` and `gcroots` directories.

Fixes #1246
2020-05-20 22:32:35 +02:00
Sophie Taylor
a43e7112e5
starship: improve Emacs handling for fish
PR #1248
2020-05-19 00:12:11 +02:00
piegames
6c7a031367
files: print source path for detected collision
PR #1236
2020-05-17 21:49:18 +02:00
Cole Helbling
645149d77b
files: fix warning message
PR #1241
2020-05-17 21:20:40 +02:00
Robert Helgesson
9ec9f004e1
home-manager: use nix-env to list generations
Using the `nix-env` command is far more robust. It also has the
benefit that if the per-user `profiles` and `gcroots` directories do
not exist then they will be created with the correct permissions.

Because of the second point this commit also removes the `mkdir` step
of the installation instructions.

PR #1239
Closes #474, #948, #1091
2020-05-16 19:17:13 +02:00
dawidsowa
0fe984d575
tmpfiles: add module
PR #1144
2020-05-16 13:32:33 +02:00
Robert Helgesson
69f8e47e9e
starship: allow running in Emacs if vterm is used
The vterm buffer is backed by libvterm and can handle Starship prompts
without issues.
2020-05-15 22:58:57 +02:00
Andrew McDermott
40b1c5c448
gnome-terminal: allow for 'system' theme variant
PR #1228
2020-05-13 00:30:09 +02:00
Justin Lovinger
e9945ee6ee
dircolors: add module
PR #1219
2020-05-12 22:15:32 +02:00
Bruno Bigras
cca024da2b
starship: check if $TERM == "dumb" for Bash setup
This fixes an issue with Emacs tramp.

PR #1191
2020-05-12 20:40:34 +02:00
Samuel Grahn
1ec45b11ab
rofi: add package option
Add option to specify which package provides the rofi binary.

PR #1225
2020-05-11 23:07:26 +02:00
Roman Volosatovs
7f4053084c
sway: allow unsetting status command 2020-05-11 22:02:38 +02:00
Roman Volosatovs
37202a1b70
sway: use --to-code in bindsym 2020-05-11 22:02:37 +02:00
Robert Helgesson
b886cbea0b
xdg.mimeApps: use xdg.dataFile instead of home.file
The former honors the data home path set by the user.
2020-05-09 23:53:48 +02:00
Hugo Geoffroy
9f396fddc6
emacs: add emacsclient desktop file
Add an option to enable a .desktop file for the Emacs client.

PR #1223

Co-authored-by: Michael Lingelbach <m.j.lbach@gmail.com>
Co-authored-by: Robert Helgesson <robert@rycee.net>
2020-05-09 22:13:04 +02:00
Mario Rodas
cba7b6ee6e
git: add basic support for delta
PR #1198
2020-05-05 00:12:58 +02:00
ivann
03b4f81679
qutebrowser: add some options
Specificially, this adds options

- `aliases`,
- `searchEngines`,
- `keyMappings`, and
- `keyBindings`.

PR #1212
2020-05-03 13:53:06 +02:00
Justin Lovinger
1dd226fde7
aria2: add module
PR #1202
2020-05-03 13:21:52 +02:00
Robert Helgesson
ded327b9fc
i3status: add news entry 2020-05-03 13:13:26 +02:00
Justin Lovinger
ecc1f2310c
i3status: add module
PR #1210
2020-05-03 13:12:13 +02:00
Robert Helgesson
866d7d5152
lib: add maintainers attribute set
This attribute set is for users who are Home Manager maintainers but
not Nixpkgs maintainers.
2020-05-02 16:30:55 +02:00
Robert Helgesson
91551c09d4
files: add helper function mkOutOfStoreSymlink
Using this function it is possible to make `home.file` create a
symlink to a path outside the Nix store. For example, a Home Manager
configuration containing

    home.file."foo".source = config.lib.file.mkOutOfStoreSymlink ./bar;

would upon activation create a symlink `~/foo` that points to the
absolute path of the `bar` file relative the configuration file.

PR #1211
2020-05-02 01:22:14 +02:00
Robert Helgesson
70f7c9f355
alot: apply nixfmt 2020-05-01 22:33:05 +02:00
Matthieu Coudron
10673bff4c
alot: add structured settings
- Also support tags.

- Optionally write the hooks file.

PR #812
2020-05-01 22:26:26 +02:00
Robert Helgesson
642d9ffe24
git: escape string values in configuration
This should handle the special characters that typically occur.

Fixes #1206
2020-05-01 00:50:58 +02:00
Peter Rice
8b82f52e75
fish: source each file in plugin conf.d separately
According to https://fishshell.com/docs/current/cmds/source.html,
only one file can be sourced at a time: "If additional arguments are
specified after the file name, they will be inserted into the $argv
variable."

PR #1204
2020-04-29 21:46:10 +02:00
Johannes Rosenberger
a7cdfaa325
tmux: reorder tmux.conf content
In particular, put `extraConfig` in the end, which enables overriding
of all settings, even plugin settings.

PR #945
2020-04-27 22:04:13 +02:00
Jonathan Ringer
a6037a9eb8
pulseeffects: add module
Pulseeffects is an advanced mixer for PulseAudio.

PR #1182
2020-04-26 15:50:21 +02:00
Johannes Rosenberger
23220d43f3
tmux: use stable plugin names (name -> pname)
PR #1195
2020-04-26 15:22:23 +02:00
Wael M. Nasreddine
ad8b644de1
lorri: allow customization of the lorri package
PR #1158
2020-04-24 22:25:54 +02:00
Bruno Bigras
2d88cbe496
spotifyd: user -> username
PR #1168
2020-04-23 23:53:03 +02:00
Cole Helbling
8369624512
systemd: don't page failed user units
Otherwise, the pager (typically `less`) pauses execution of
`home-manager switch` until the pager is dismissed, if the content is
larger than would fit on the screen.

PR #1175
2020-04-23 23:40:58 +02:00
Paul
ee1c40e5c5
keynav: use correct ExecStart command
When the change requested in

  https://github.com/rycee/home-manager/pull/1082#discussion_r392715440

was applied, the service `ExecStart` attribute was not updated to use
`pkgs.keynav`.

Fixes #1177
PR #1184
2020-04-23 22:48:01 +02:00
Owen McGrath
2f2a4396c6
lf: add module
Adds 'programs.lf', configuration managment for lf, a terminal file
manager.

PR #1174
2020-04-23 22:41:22 +02:00
Robert Helgesson
42e4eef749
Update documentation for release 20.03 2020-04-23 00:29:11 +02:00
Robin Stumm
f0710115c5
kakoune: add missing hook name
PR #1185
2020-04-22 23:18:23 +02:00
nurelin
8c920682e6
sway: remove restart command from sway configuration (#1155)
The restart command does not exists in sway, only reload.
See https://github.com/swaywm/sway/blob/1.4/sway/sway.5.scd
2020-04-22 02:31:07 +02:00
Terje Larsen
9905ab5087
fish: fix fish plugins complete path update
PR #1178
2020-04-22 01:02:10 +02:00
dawidsowa
b3bbc8b769
xdg-user-dirs: add user-dirs.conf
PR #1143
2020-04-22 00:52:39 +02:00
Lisa Ugray
3a5cd90631 bat: add custom themes
Add the ability to add custom theme files to bat.

Co-Authored-By: Robert Helgesson <robert@rycee.net>
2020-04-21 18:26:13 -04:00
Bruno Bigras
3e3de8cee2
i3/sway: fix typo in fonts option (#1152) 2020-04-21 08:18:38 +02:00
Robert Helgesson
3461ceebc0
firefox: remove options removed upstream
Fixes #1166
2020-04-18 11:24:11 +02:00
Robert Helgesson
133badb297
ssh: deprecate the list form of match block
Configurations depending on specific block order should use the DAG
functions instead of lists.
2020-04-16 23:27:40 +02:00
Robin Stumm
86ccd8fecb
kakoune: implement whitespace highlighter config
The options under `programs.kakoune.config.showWhitespace` existed
but were not implemented.

PR #1162
2020-04-16 22:34:31 +02:00
Robert Helgesson
f6afd95ef8
tmux: fix broken test case 2020-04-15 23:25:16 +02:00
Robert Helgesson
022228e0aa
ssh: switch type of matchBlocks to listOrDagOf
This switches the type of `matchBlocks` from `loaOf` to `listOrDagOf`.
The former has been deprecated in Nixpkgs. The latter allows
dependencies between entries to be expressed using the DAG functions.
2020-04-13 23:24:40 +02:00
Robert Helgesson
8ad4bd6c1b
types: improve dagOf and listOrDagOf
In particular, improve the behavior of these types if the element type
is a submodule.
2020-04-13 22:01:20 +02:00
Piotr Bogdan
9f223e98b7
gnome-terminal: add cursorBlinkMode option 2020-04-10 17:10:26 +02:00
Robert Helgesson
2102b4e7b3
home-environment: minor fix of DocBook code 2020-04-10 16:16:46 +02:00
Robert Helgesson
41094aa3c7
neovim: fix docbook syntax in option descriptions 2020-04-09 19:27:57 +02:00
Jonathan Ringer
09abc29b73
neovim: add vimdiffAlias 2020-04-09 19:20:19 +02:00
Terje Larsen
5b7b9821e0
qutebrowser: add support for list values in settings 2020-04-09 19:13:07 +02:00
Jonas Heinrich
f856da6690
mako: add module
PR #1113
2020-04-09 11:21:22 +02:00
Justin Lovinger
b7737f1732
qutebrowser: add module
PR #1132
2020-04-08 14:50:59 +02:00
Tobias Happ
d06bcf4c97
targets.genericLinux: add module
PR #797
2020-04-08 13:36:25 +02:00
Robert Helgesson
dd538c2969
home-environment: add option sessionVariablesExtra
This is an internal option for adding additional code to
`hm-session-vars.sh`.
2020-04-08 13:23:02 +02:00
Robert Helgesson
f56c4187a4
screen-locker: add option enableDetectSleep
Fixes #1125
2020-04-06 19:41:13 +02:00
Diep Pham
1fd874b7ea
go: add goPrivate option
This option configures the `GOPRIVATE` variable. See

   https://golang.org/cmd/go/#hdr-Module_configuration_for_non_public_modules

for more information.

PR #1126
2020-04-06 19:28:31 +02:00
Griffin Smith
5ff245790d
gtk: add bookmarks option
Add a new 'bookmarks' option, for managing `~/.config/gtk3/bookmarks`,
a list of URIs to display as bookmarks in the sidebar of GTK file
browsers.

PR #1129
2020-04-06 15:52:46 +02:00
Robert Helgesson
a128e35927
Update nixfmt and apply to a few more files 2020-04-06 12:51:11 +02:00
Matthieu Coudron
dd93c300bb vim: avoid using alias of vim-sensible 2020-03-30 21:55:10 +02:00
Michael Millwood
14f83a46d0
kakoune: fix set option
The old `set-option global/ autoreload` code causes an error.

PR #1117
2020-03-30 21:33:24 +02:00
Carlos Tomé
7fa890462d
zsh: support extra settings in oh-my-zsh plugins (#1106)
Co-Authored-By: Robert Helgesson <robert@rycee.net>
2020-03-25 15:40:42 +01:00
Ruby Iris Juric
78a0bbb38b
picom: add module
Nixpkgs no longer packages compton, and instead packages picom, a
(mostly) compatible fork of compton, providing an alias from compton
to picom. Because some configuration options have been changed, and
all references to "compton" have been made deprecated and replaced
with "picom", 'services.compton' has been deprecated in favor of the
new 'services.picom'.

Resolves #878
PR #1101
2020-03-24 23:50:22 +01:00
Erik Arvstedt
e2414c4a4f
systemd: improve systemd-activate.rb script
- Pass arguments verbatim to the `systemctl` subprocess, obviating the
  need for shell escaping.

- Use open3 for capturing subprocess output.

- Fix printing of commands during dry run.

- Simplify `X-RestartIfChanged` regular expression.

  1. Use \s to match whitespace, \b to match a word boundary.

  2. Rename variable to conform to Ruby's underscore naming
     conventions.

- Remove no-op set operation. Specifically, 'no_restart' and 'to_stop'
  are disjunct since

  1. After reloading the daemon with the new generation, units in
     'to_stop' (i.e. units from the old gen that are missing in the
     new gen) are not registered anymore in the systemd daemon.

  2. Hence, 'systemctl cat' returns no output for these units.

  3. Because this output is needed to detect 'no_restart' units,
     'no_restart' includes no units from 'to_stop'.

  So 'to_stop -= to_restart' is a no-op.

- Only notify about units that would otherwise be restarted. That is,
  exclude units that are started but not restarted.

- Previously, all inactive units, like short-running services, were
  handled as failed units.

  Now systemd activation doesn't fail for oneshot services like
  'setxkbmap' while 'servicesStartTimeoutMs' is set.

- Don't start unchanged oneshot services.

PR #1110
2020-03-24 00:00:44 +01:00
Robert Helgesson
d11803d7b4
syncthing: install man pages to user profile 2020-03-22 21:15:25 +01:00
Robert Helgesson
19dd9866da
dunst: install man pages 2020-03-22 21:15:23 +01:00
Cole Helbling
8571e568e0
sway: fix onChange when defunct sockets exist
Fixes `..../generation/activate: line 181: [: too many arguments`
when, for whatever reason, the user has multiple `sway-ipc` sockets.

PR #1086
2020-03-21 18:00:26 +01:00
Bill Sun
fe145b12cd
vscode: fix extension path symlink error
Fix extension path symlink error caused by [1], which removes
`/share/{wrappedPkgName}/extensions` from the extension install path.

[1] https://github.com/NixOS/nixpkgs/pull/71251

PR #1100
2020-03-21 17:47:32 +01:00
Robert Helgesson
0f11a79e02
dconf: make settings have type gvariant
Closes #835, #1094, #1095
2020-03-21 01:02:41 +01:00
Robert Helgesson
ac9e44a831
lib: add GVariant datatype and functions 2020-03-21 00:28:50 +01:00
Desetude
3673107bc4
termite: fix the key for bold foreground color
PR #1097
2020-03-17 23:47:36 +01:00
Robert Helgesson
b9d4f55228
firefox: force extension file linking 2020-03-17 23:42:27 +01:00
Robert Helgesson
37694e9f51
files: add force flag
Enabling this flag for a `home.file` entry causes the target to be
unconditionally overwritten. The option is not visible in
documentation for now and shouldn't be relied on for general use.
2020-03-17 23:42:26 +01:00
William Carroll
2cd168467e
keynav: add module
PR #1082
2020-03-17 22:59:15 +01:00
Robert Helgesson
cc386e4b3b
firefox: prepare for updated sideloading behavior
Co-Authored-By: Cole Helbling <cole.e.helbling@outlook.com>
2020-03-15 19:48:07 +01:00
Joshua Fern
2681568f2b
firefox: support user content CSS
The `userContent.css` file is similar to `userChrome.css`, it's a CSS
file that you can use to change the way web sites and e-mails look.

See http://kb.mozillazine.org/index.php?title=UserContent.css

PR #1079
2020-03-15 18:26:37 +01:00
Tad Fisher
9f46d516fa
services.lieer: add module
Add 'services.lieer', which generates systemd timer and service units
to synchronize a Gmail account with lieer. Per-account configuration
lives in 'accounts.email.accounts.<name>.lieer.sync'.
2020-03-07 15:13:50 +01:00
Tad Fisher
60a939bd01
programs.lieer: add module
Add 'programs.lieer', a tool for synchronizing a Gmail account with a
local maildir and notmuch database. Per-account configuration lives in
'accounts.email.accounts.<name>.lieer'.
2020-03-07 15:13:15 +01:00
Maximilian Bosch
0056a5aea1
debug: add module
This one is fairly similar to `environment.enableDebugInfo`[1] (hence
the name). It ensures that the `debug`-output of packages defined in
`home.packages` is installed if available and ensures that
`gdb`/`elfutils` find those symbols by adding
`~/.nix-profile/lib/debug` to the `NIX_DEBUG_INFO_DIRS`[2] variable.

[1] https://github.com/NixOS/nixpkgs/blob/release-19.09/nixos/modules/config/debug-info.nix
[2] https://github.com/NixOS/nixpkgs/blob/release-19.09/pkgs/development/tools/misc/gdb/debug-info-from-env.patch

PR #1040
2020-03-07 15:03:44 +01:00
Robert Helgesson
b36d3e0261
news: fix condition
The news entry for the new Fish functions functionality was
accidentally conditioned for people using zsh.
2020-03-07 14:33:13 +01:00
Erik Arvstedt
efbe1383e6
nixos integration: add option 'useGlobalPkgs'
PR #1059
2020-03-07 14:25:00 +01:00
Cole Helbling
a11cf1decd
fish: allow arguments to functions
This allows the ability to provide arguments to a function, such as
`--on-event` in order to trigger a function on the
`fish_command_not_found` event, for example.

PR #1063
2020-03-07 12:51:37 +01:00
zimbatm
9a1feb5b10
git: fix the config output formatting
When setting values using the `git config --set` command, git formats
the file a bit differently. This changes the output so it maps to that
format.

Differences:

* each `key = value` in a section is prefixed by a tab character
* the `=` between the key and the value is surrounded by spaces

PR #1069
2020-03-07 12:02:20 +01:00
William Carroll
71c7aaee83
fzf: support fish integration
Create the `enableFishIntegration` option to install the fzf
key-bindings for people who use fish shell.

PR #1074
2020-03-07 11:52:54 +01:00
Alex Rice
a6657d6b21
sway: fix floating modifier description
PR #1054
2020-03-04 21:09:36 +01:00
MmeQuignon
0a1ce53990
abook: add module
PR #1058
2020-03-04 19:58:05 +01:00
Robert Helgesson
28401ddd91
systemd: skip services taking an instance parameter
Fixes #730
2020-03-02 20:33:20 +01:00
Robert Helgesson
7bd043e9ee
xresources: give properties option more specific type
This more readily allows merging configurations.
2020-02-29 22:32:52 +01:00
Robert Helgesson
acf106ced0
starship: give settings option more specific type
This more readily allows merging configurations.

Fixes #1023
2020-02-29 22:17:47 +01:00
Robert Helgesson
2f726bbd1c
bash, fish, zsh: fix shellAliases example
Unfortunately the document generator is not smart enough to quote the
`..` alias in the documentation which is very misleading. By making it
a literal example the quotes stay.
2020-02-26 22:44:54 +01:00
Alex Rice
02d6040003
sway: add module
PR #829
2020-02-26 22:37:15 +01:00
ef148ab3cb
newsboat: show queries before urls
PR #1047
2020-02-26 21:38:07 +01:00
Robert Helgesson
91c7059d98
udiskie: fix formatting 2020-02-24 23:07:58 +01:00
Robert Helgesson
d90ae6dffa
udiskie: remove obsolete -2 command line argument
Fixes #1042
2020-02-24 20:45:54 +01:00
ivann
9ab0d2305c
kitty: add module
PR #1000
2020-02-23 11:28:53 +01:00
ivann
9bddef74df
types: create fontType option type 2020-02-23 11:18:59 +01:00
Wael Nasreddine
4e50809c78
modules: remove unused checkPlatform function
PR #1041
2020-02-21 21:56:51 +01:00
Evan Stoll
7f748f27bc
neomutt: add reverse sort options (#1036) 2020-02-21 15:24:52 +01:00
Robert Helgesson
543118ac70
fish: apply nixfmt 2020-02-20 00:16:01 +01:00
Cole Helbling
5ca224f75b
fish: consistency is key and other style changes
I like my empty sets with spaces between them.
2020-02-20 00:03:29 +01:00
Cole Helbling
89239d554d
fish: prepend fenv functions dir
Instead of concatenating the `fish_function_path` with the fenv
functions path, just prepend it. Functionally the same, but looks
cleaner (IMO).
2020-02-20 00:03:28 +01:00
Cole Helbling
a08dabf015
fish: escape abbrs and aliases
Some of my aliases have apostrophes in them, so shell-escaping them is a
must.
2020-02-20 00:03:27 +01:00
Cole Helbling
9a258edc10
fish: fix sourcing of .fish files
Turns out, the quotes were messing things up.
2020-02-20 00:03:26 +01:00
Ryan Orendorff
108259925a
fish: plugins separated into conf.d files
This was done to make it easier for the generated files to be understood.
2020-02-20 00:03:25 +01:00
Ryan Orendorff
639f6fea8c
fish: plugins concated to 99plugins.fish
This change allows the entire repo to be imported directly. Some plugins (such
as oh-my-fish's vi-mode) have extra files that are referenced by the plugin
itself. This means we cannot create a generic plugin file structure out of the
plugins that exist currently.
2020-02-20 00:03:24 +01:00
Ryan Orendorff
f5b24635b6
fish: whitespace and style fixes (camel case) 2020-02-20 00:03:23 +01:00
Ryan Orendorff
0522c7c1f6
fish: plugins uses pluginModule type, add example 2020-02-20 00:03:22 +01:00
Ryan Orendorff
2f51b9e418
fish: add pluginModule type
Similar to zsh's `pluginModule` type, but without an initialization
file.
2020-02-20 00:03:21 +01:00
Ryan Orendorff
4f532948f7
fish: shell{Abbrs,Aliases} has more specific type
Converted attrs to attrsOf str.
2020-02-20 00:03:20 +01:00
Ryan Orendorff
0740c257b1
fish: remove fileType function
Replaced by types that are more common. This additionally reflects in the
manpages, which should have types the reader is familiar with.
2020-02-20 00:03:19 +01:00
Ryan Orendorff
490f5fc585
fish: remove completions
They are not currently handled in the code, hence they are removed for now.
2020-02-20 00:03:18 +01:00
Ryan Orendorff
642bd67126
fish: add comma to program slogan
Matches what is on the fish website
2020-02-20 00:03:18 +01:00