Commit Graph

102 Commits

Author SHA1 Message Date
Robert Helgesson
bea9daabeb ssh: add control persist option
(cherry picked from commit be432c8654)
2017-07-29 17:54:50 +02:00
Silvan Mosberger
31655a1621 htop: add module
(cherry picked from commit 3778a69fbe)
2017-07-24 13:23:48 +02:00
Robert Helgesson
ee28f76369 home-environment: fix cleanup of user replaced directories
We must only follow the symbolic link once (i.e., not use the `-e`
option) since otherwise the pattern will not match when
`home.file.xyz.source` is a directory.

(cherry picked from commit d807a5c314)
2017-07-22 14:26:31 +02:00
Robert Helgesson
7f2eacfe49 home-environment: avoid harmless but scary error message
(cherry picked from commit 5862a05fb1)
2017-07-22 14:26:23 +02:00
Robert Helgesson
0ef0be8ffb 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.

(cherry picked from commit 2e257f40e6)
2017-07-20 09:14:23 +02:00
Robert Helgesson
e9cc225cbb syncthing: expand service description
This models the user service on the upstream systemd file.

(cherry picked from commit cdb2bec909)
2017-07-20 09:14:23 +02:00
Utku Demir
68f0ed58c1 Add syncthing service
(cherry picked from commit dd5061d73b)
2017-07-20 09:14:23 +02:00
Robert Helgesson
4bc6e454d7 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.

(cherry picked from commit 7a18a0fb34)
2017-07-13 00:40:20 +02:00
Robert Helgesson
401975f500 home-manager: allow a user-defined third module path
The user-defined path will be used if present, otherwise the two
"fallback" defaults (in `.nixpkgs` and `.config/nixpkgs`) will be
used.

(cherry picked from commit 28d3f74614)
2017-07-13 00:40:20 +02:00
Robert Helgesson
1bcfec1e87 home-manager: remove unnecessary variable setting
The `NIX_PATH` variable is set by the `setHomeManagerModulesPath`
function so it is unnecessary to set it again.

(cherry picked from commit 98c7b23178)
2017-07-13 00:40:20 +02:00
Robin Stumm
540e90d3fa home-environment: fix home.activation.checkLinkTargets
Problem
-------

We resolve symlinks from inside `/nix/store/HASH-home-manager-files`
into the nix store as `/nix/store/HASH-DRVNAME` which does not match
the pattern.

This happened to me because I pull in some repos in via `home.file`.
The `home-manager-files` derivation links to the repo's derivation in
the nix store. For example:

    let nanorcs = fetchFromGitHub {
      owner = "scopatz";
      repo = "nanorc";
      …
    }; in [
      {
        target = ".nano";
        source = nanorcs;
      }
      {
        target = ".nanorc";
        source = "${nanorcs}/nanorc";
      }
    ]

Solution
--------

Call `readlink` without `-e` to obtain only the first redirection from
`~` to `/nix/store/HASH-home-manager-files`.

(cherry picked from commit 89dc8c2004)
2017-07-08 00:40:58 +02:00
Robert Helgesson
3c3f68bf61 Merge commit '196db18' into release-17.03 2017-06-30 22:46:58 +02:00
Robert Helgesson
196db18f5b gpg-agent: use systemd socket activation 2017-06-29 23:33:28 +02:00
Robert Helgesson
acf813cadc systemd: add support for socket units 2017-06-29 01:06:08 +02:00
Robert Helgesson
8af6838869 home-environment: prevent delete of non-managed files
When a file has disappeared between the previous and the next
generations then its symlink in `$HOME` is typically deleted. With
this commit we refuse to delete the path unless we are reasonably
certain it is a symlink into a Home Manager generation.
2017-06-29 01:03:39 +02:00
Robert Helgesson
4c85ff7ff2 xsession: rename graphical session target name
The `he` in `he-graphical-session` doesn't make much sense, change it
to `hm` for Home Manager.
2017-06-29 00:24:29 +02:00
Robert Helgesson
9c17c5ccbb Clean up systemd units for all graphical services 2017-06-26 18:42:27 +02:00
Robert Helgesson
acf8d4e985 xsession: use systemd graphical targets
The systemd targets don't allow direct startup so we create our own
target for graphical sessions managed by Home Environment.
2017-06-26 18:31:55 +02:00
Robert Helgesson
a9343d8194 udiskie: remove taffybar requirement
It should be sufficient to have a graphical session going.
2017-06-26 16:59:11 +02:00
Robert Helgesson
8b5d19e6b7 random-background: actually use image directory option 2017-06-25 22:25:36 +02:00
Robert Helgesson
46f0338092 README: add instructions for release-17.03 branch 2017-06-15 18:13:56 +02:00
Robert Helgesson
3793dfeab5 Merge branch 'fix/default-conf-dir' 2017-06-07 22:56:44 +02:00
Robert Helgesson
0aa549f07b home-manager: support .config configuration path
This commit changes the default path of the Home Manager configuration
file from `~/.nixpkgs/home.nix` to `~/.config/nixpkgs/home.nix`. The
old path is still supported and will be used if the `.config` path
does not exist.

This aligns Home Manager with the preferred configuration directory in
NixOS 17.03.

Fixes #13.
2017-06-03 00:42:37 +02:00
Robert Helgesson
67391395ef home-manager: use NIX_PATH to locate modules
This removes the old argument based method that Home Manager used to
find its modules by a `NIX_PATH` based method. Specifically, this adds
a `home-manager` Nix path prefix that can be overridden much like with
the `nixpkgs` path prefix.
2017-06-03 00:42:37 +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
a4e96843e5 More descriptive header in README 2017-05-17 23:26:16 +02:00
Robert Helgesson
dfb5bbddf5 Expand installation instructions slightly
In particular, mention that non-NixOS users may have to create the
per-user `profiles` and `gcroots` directories.

Also reformat the list a little.
2017-05-17 23:15:48 +02:00
Robert Helgesson
f60a1ed689 systemd: handle non-Linux systems better
This commit causes an error to be printed if running under a non-Linux
system when a systemd service, target, or timer is active.

It will also prevent running systemd during activation if running
under a non-Linux system.
2017-05-16 22:05:02 +02:00
Christopher League
1a491f24f7 home-manager: add coreutils to PATH
This ensures that we use the expected version of some useful tools,
such as readlink.
2017-05-16 22:04:58 +02:00
Robert Helgesson
02288320d0 home-environment: use explicit PATH in activation
In the activation script we expect to use the tools provided by GNU
Core Utilities and GNU Bash. This commit therefore explicitly add
these first in the `PATH` environment variable.
2017-05-16 22:04:19 +02:00
Robert Helgesson
8c7811a213 Credit original source for shell color code 2017-05-14 20:35:13 +02:00
Robert Helgesson
3ee505179f home-environment: colorize activation output slightly 2017-05-14 16:17:38 +02:00
Robert Helgesson
870d1d484d home-manager: use strict Bash evaluation
In particular, this will ensure that the whole script fails with an
error code if the activation script fails during a switch. Fixes #10.
2017-05-14 14:02:15 +02:00
Robert Helgesson
a9da4575f5 home-environment: run file collision check in function 2017-05-14 14:02:11 +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
3c69c7589a xsession: make windowManager option required
Also add a fairly complicated example.
2017-05-06 13:01:07 +02:00
Robert Helgesson
6e3085dc22 Add note about using graphical services to README 2017-05-06 13:01:04 +02:00
Robert Helgesson
88ec7145ba home-environment: prevent overwriting existing files
This should reduce the risk of overwriting an existing file in the
user's home directory. A file will only be replaced if it is a link
pointing to a home-manager tree inside the Nix store.

If an existing file is detected an error is written indicating the
file's path and the activation will terminate before any mutation
occurs.

Fixes #6
2017-05-06 13:01:01 +02:00
Robert Helgesson
7e58b6bb35 home-environment: always link new and clean old generation
Previously the home files were not linked if the generation hadn't
changed. Unfortunately, this would mean that, if a file link was
removed for some reason it would not be recreated by running a switch
command.
2017-05-06 00:43:53 +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
62a9a8fa3c Update README for 17.03 2017-04-01 23:05:36 +02:00
Robert Helgesson
4f1eec8180 Avoid undefined variables in activation script 2017-03-29 00:11:01 +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
207c349825 home-environment: allow directory as home file
Fixes issue #5.
2017-03-12 22:39:51 +01:00
Robert Helgesson
ee9bc66f69 home-environment: show full file path in error
The file name alone may be misleading.
2017-02-21 21:55:07 +01:00
Robert Helgesson
d2e8c57bd5 home-manager: Use --show-trace only when verbose 2017-02-21 21:49:12 +01:00
Robert Helgesson
a3900340e4 home-environment: check files for '.' prefix
Nix does not allow files whose name start with a '.' in the Nix store.
This commit makes a not of this fact in the `home.file.source` option
and also adds an assertion verifying that no such file is given.

Closes #4
2017-02-21 21:41:05 +01:00