diff options
author | Vincent Ambo <tazjin@gmail.com> | 2017-10-16T20·53+0200 |
---|---|---|
committer | Vincent Ambo <tazjin@gmail.com> | 2017-10-16T20·53+0200 |
commit | 202467e9894f4b33186b686d66a4b98a1ac386a8 (patch) | |
tree | 0653d7a340e11fc4389d2454999eb3420d4e593c | |
parent | aa5dcbc4777a8e6f42eaee9ac0301d687363e040 (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.nix | 59 | ||||
-rw-r--r-- | packages.nix | 62 | ||||
-rw-r--r-- | wallpapers.nix | 34 |
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"; + }; + }; +} |