about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@gmail.com>2017-10-16T20·53+0200
committerVincent Ambo <tazjin@gmail.com>2017-10-16T20·53+0200
commit202467e9894f4b33186b686d66a4b98a1ac386a8 (patch)
tree0653d7a340e11fc4389d2454999eb3420d4e593c
parentaa5dcbc4777a8e6f42eaee9ac0301d687363e040 (diff)
refactor: Move packages & wallpapers config into own nix files
My systems are single-user machines and the package configuration can
go in the system-wide package list in full.

This splits out the package list into a separate file and also moves
the systemd units for wallpaper setting into a separate file.
-rw-r--r--configuration.nix59
-rw-r--r--packages.nix62
-rw-r--r--wallpapers.nix34
3 files changed, 101 insertions, 54 deletions
diff --git a/configuration.nix b/configuration.nix
index 1af903fb255c..421b02549797 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -4,20 +4,15 @@
 
 { config, pkgs, ... }:
 
-let rust-overlay = import nixpkgs-mozilla/rust-overlay.nix;
-    unstable = import <nixos-unstable> { config.allowUnfree = true; };
-    nixfd = import pkgs/nixfd.nix;
-in {
+{
   imports =
-    [ # Include the results of the hardware scan.
+    [
     ./hardware-configuration.nix
     ./local-configuration.nix
+    ./packages.nix
+    ./wallpapers.nix
     ];
 
-  # Configure the Nix package manager
-  nixpkgs.config.allowUnfree = true;
-  nixpkgs.overlays = [ rust-overlay ];
-
   # Use the systemd-boot EFI boot loader.
   boot.loader.systemd-boot.enable = true;
   boot.loader.efi.canTouchEfiVariables = true;
@@ -27,14 +22,6 @@ in {
   # Set your time zone.
   time.timeZone = "Europe/Oslo";
 
-  # List packages installed in system profile. To search by name, run:
-  # $ nix-env -qaP | grep wget
-  environment.systemPackages = with pkgs; [
-    curl gnumake unzip openjdk gcc htop tree direnv tmux fish ripgrep
-    gnupg pass git manpages stdmanpages latest.rustChannels.stable.rust
-    nixfd
-  ];
-
   # Enable the X11 windowing system.
   services.xserver.enable = true;
   services.xserver.layout = "us,no";
@@ -65,7 +52,7 @@ in {
       input-fonts
     ];
   };
-  
+
   # Configure user account
   users.defaultUserShell = pkgs.fish;
   users.extraUsers.vincent = {
@@ -73,42 +60,6 @@ in {
     isNormalUser = true;
     uid = 1000;
     shell = pkgs.fish;
-    packages = with pkgs; [
-      jetbrains.idea-community pavucontrol spotify xclip tdesktop
-      rofi rofi-pass alacritty i3lock unstable.firefox-beta-bin fd
-      tig kubernetes xfce.xfce4-screenshooter exa lxappearance-gtk3
-      numix-gtk-theme numix-icon-theme unstable.numix-cursor-theme
-    ];
-  };
-
-  # Configure random setting of wallpapers
-  systemd.user.services.clone-wallpapers = {
-    description = "Clone wallpaper repository";
-    enable = true;
-    before = [ "feh-wp.service" "feh-wp.timer" ];
-    serviceConfig = {
-      Type = "oneshot";
-      ExecStart = "${pkgs.fish}/bin/fish -c '${pkgs.coreutils}/bin/stat %h/wallpapers; or ${pkgs.git}/bin/git clone https://git.tazj.in/tazjin/wallpapers.git %h/wallpapers'";
-    };
-  };
-
-  systemd.user.services.feh-wp = {
-    description = "Randomly set wallpaper via feh";
-    serviceConfig = {
-      Type = "oneshot";
-      WorkingDirectory = "%h/wallpapers";
-      ExecStart = "${pkgs.bash}/bin/bash -c '${pkgs.fd}/bin/fd -atf | shuf | head -n1 | ${pkgs.findutils}/bin/xargs ${pkgs.feh}/bin/feh --bg-fill'";
-    };
-  };
-
-  systemd.user.timers.feh-wp = {
-    description = "Set a random wallpaper every hour";
-    wantedBy = [ "timers.target" ];
-
-    timerConfig = {
-      OnActiveSec = "3second";
-      OnUnitActiveSec = "1hour";
-    };
   };
 
   security.sudo.enable = true;
diff --git a/packages.nix b/packages.nix
new file mode 100644
index 000000000000..83fe2bc11944
--- /dev/null
+++ b/packages.nix
@@ -0,0 +1,62 @@
+# This file contains configuration for packages to install.
+# It does not contain configuration for software that is already covered
+# by other NixOS options (e.g. emacs)
+
+{ config, pkgs, ... }:
+
+let unstable = import <nixos-unstable> { config.allowUnfree = true; };
+    rust-overlay = import nixpkgs-mozilla/rust-overlay.nix;
+in {
+  # Configure the Nix package manager
+  nixpkgs.config.allowUnfree = true;
+  nixpkgs.overlays = [ rust-overlay ];
+
+  # ... and declare packages to be installed.
+  environment.systemPackages = with pkgs; [
+    # Default nixos.* packages:
+    alacritty
+    curl
+    direnv
+    exa
+    fd
+    fish
+    gcc
+    git
+    gnumake
+    gnupg
+    htop
+    i3lock
+    jetbrains.idea-community
+    kubernetes
+    lxappearance-gtk3
+    manpages
+    numix-gtk-theme
+    numix-icon-theme
+    openjdk
+    pass
+    pavucontrol
+    ripgrep
+    rofi
+    rofi-pass
+    spotify
+    stdmanpages
+    tdesktop
+    tig
+    tmux
+    tree
+    unzip
+    xclip
+    xfce.xfce4-screenshooter
+
+    # nixos-unstable.* packages:
+    unstable.firefox-beta-bin
+    unstable.numix-cursor-theme
+
+    # Overlay packages:
+    latest.rustChannels.stable.rust
+
+    # Custom packages:
+    (import pkgs/nixfd.nix)
+  ];
+}
+
diff --git a/wallpapers.nix b/wallpapers.nix
new file mode 100644
index 000000000000..4faf7ef52c51
--- /dev/null
+++ b/wallpapers.nix
@@ -0,0 +1,34 @@
+# Configuration for randomly setting wallpapers.
+{ config, pkgs, ... }:
+
+{
+  # Configure random setting of wallpapers
+  systemd.user.services.clone-wallpapers = {
+    description = "Clone wallpaper repository";
+    enable = true;
+    before = [ "feh-wp.service" "feh-wp.timer" ];
+    serviceConfig = {
+      Type = "oneshot";
+      ExecStart = "${pkgs.fish}/bin/fish -c '${pkgs.coreutils}/bin/stat %h/wallpapers; or ${pkgs.git}/bin/git clone https://git.tazj.in/tazjin/wallpapers.git %h/wallpapers'";
+    };
+  };
+
+  systemd.user.services.feh-wp = {
+    description = "Randomly set wallpaper via feh";
+    serviceConfig = {
+      Type = "oneshot";
+      WorkingDirectory = "%h/wallpapers";
+      ExecStart = "${pkgs.bash}/bin/bash -c '${pkgs.fd}/bin/fd -atf | shuf | head -n1 | ${pkgs.findutils}/bin/xargs ${pkgs.feh}/bin/feh --bg-fill'";
+    };
+  };
+
+  systemd.user.timers.feh-wp = {
+    description = "Set a random wallpaper every hour";
+    wantedBy = [ "timers.target" ];
+
+    timerConfig = {
+      OnActiveSec = "3second";
+      OnUnitActiveSec = "1hour";
+    };
+  };
+}