diff --git a/README.md b/README.md new file mode 100644 index 0000000..713dac3 --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# My NixOS config + +Uses flakes and home-manager diff --git a/flake.lock b/flake.lock index 3631452..1dc3e1d 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1649887921, - "narHash": "sha256-h2LZzn5LLwIFvVFLCdR8+VWluEP3U1I5y+0mDZjFjAk=", + "lastModified": 1649984295, + "narHash": "sha256-55dgKGs7W8eC3s9GYewll9y4IlP/KAlSinjQwshNpxM=", "owner": "nix-community", "repo": "home-manager", - "rev": "92f58b6728e7c631a7ea0ed68cd21bb29a4876ff", + "rev": "d49d68f4196d32c5039cb9e91d730cee894f6f14", "type": "github" }, "original": { @@ -57,11 +57,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1649784051, - "narHash": "sha256-XN6gEvLzUglWIClT1CyyriZfcAhdFj28krCtWLJ/UBI=", + "lastModified": 1649986882, + "narHash": "sha256-cNsInUFq1MbuvaEmv8x6jetWnmAU+osMpnwKumtjksI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e1118817a12dba39081d9e70ae52dd38aa184c2e", + "rev": "5181d5945eda382ff6a9ca3e072ed6ea9b547fee", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 1149f1a..c445086 100644 --- a/flake.nix +++ b/flake.nix @@ -16,64 +16,37 @@ pkgs = import nixpkgs { inherit system; - - config = { - allowUnfree = true; - }; }; lib = nixpkgs.lib; - hostSystem = { hostname }: lib.nixosSystem { + hostSystem = { hostname, headless }: lib.nixosSystem { inherit system; modules = [ ./hosts/${hostname}/configuration.nix + ({ pkgs, ... }: { nixpkgs.overlays = [ i3utils.overlay ]; }) + + home-manager.nixosModules.home-manager + { + home-manager = { + useGlobalPkgs = true; + users = import ./users; + extraSpecialArgs = {inherit hostname; inherit headless;}; + }; + } ]; }; - mkUserConf = { hostname, extraSauce ? [] }: - home-manager.lib.homeManagerConfiguration { - inherit system pkgs; - - username = "daniel"; - homeDirectory = "/home/daniel"; - configuration = { - imports = [ - ./user/daniel/home.nix - ({ pkgs, ... }: { - nixpkgs.overlays = [ i3utils.overlay ]; - }) - ] ++ extraSauce; - }; - stateVersion = "21.05"; - }; - - in { - homeConfigurations = { - daniel-dingbox = mkUserConf { - hostname = "dingbox"; - extraSauce = [ ./user/host-specific/dingbox ]; - }; - daniel-miniding = mkUserConf { - hostname = "miniding"; - extraSauce = [ ./user/host-specific/miniding ]; - }; - daniel-pingbox = mkUserConf { - hostname = "pingbox"; - extraSauce = [ ./user/host-specific/pingbox ]; - }; - }; - nixosConfigurations = { - dingbox = hostSystem { hostname = "dingbox"; }; - miniding = hostSystem { hostname = "miniding"; }; - pingbox = hostSystem { hostname = "pingbox"; }; - dingserver = hostSystem { hostname = "dingserver"; }; + dingbox = hostSystem { hostname = "dingbox"; headless = false; }; + miniding = hostSystem { hostname = "miniding"; headless = false; }; + pingbox = hostSystem { hostname = "pingbox"; headless = false; }; + dingserver = hostSystem { hostname = "dingserver"; headless = true; }; }; }; } diff --git a/hosts/common/default.nix b/hosts/common/default.nix index 7188e9b..b76a852 100644 --- a/hosts/common/default.nix +++ b/hosts/common/default.nix @@ -1,6 +1,6 @@ -{ config, pkgs, lib, ...}: - +{ config, pkgs, lib, ...}: { + # Use the systemd-boot EFI boot loader. boot.kernelPackages = pkgs.linuxPackages_latest; boot.loader.systemd-boot.enable = lib.mkDefault true; diff --git a/scripts/aupdate b/scripts/aupdate deleted file mode 100755 index c94a5e7..0000000 --- a/scripts/aupdate +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -if [ "$UID" -ne 0 ]; then - sudo true # Prompt user for password so it doesn't happen in the middle of the script -fi -pushd ~/.dotfiles -nix flake update - -hn=$(hostname) -home-manager switch --flake .#daniel-$hn - -sudo nixos-rebuild switch --flake .# -popd diff --git a/scripts/bupdate b/scripts/bupdate deleted file mode 100755 index 2fe89f6..0000000 --- a/scripts/bupdate +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/sh - -if [ "$UID" -ne 0 ]; then - sudo true # Prompt user for password so it doesn't happen in the middle of the script -fi -pushd ~/.dotfiles -hn=$(hostname) -home-manager switch --flake .#daniel-$hn - -sudo nixos-rebuild switch --flake .# -popd diff --git a/scripts/hmupdate b/scripts/hmupdate deleted file mode 100755 index b94e4fb..0000000 --- a/scripts/hmupdate +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -pushd ~/.dotfiles -hn=$(hostname) -home-manager switch --flake .#daniel-$hn -popd diff --git a/users/daniel/configs/desktop/default.nix b/users/daniel/configs/desktop/default.nix new file mode 100644 index 0000000..430dc1a --- /dev/null +++ b/users/daniel/configs/desktop/default.nix @@ -0,0 +1,8 @@ +{ + imports = [ + ./i3 + ./i3status-rust + # ./polybar + ./rofi + ]; +} diff --git a/user/progs/i3/default.nix b/users/daniel/configs/desktop/i3/default.nix similarity index 100% rename from user/progs/i3/default.nix rename to users/daniel/configs/desktop/i3/default.nix diff --git a/user/progs/i3/godown b/users/daniel/configs/desktop/i3/godown similarity index 100% rename from user/progs/i3/godown rename to users/daniel/configs/desktop/i3/godown diff --git a/user/progs/i3/goup b/users/daniel/configs/desktop/i3/goup similarity index 100% rename from user/progs/i3/goup rename to users/daniel/configs/desktop/i3/goup diff --git a/user/progs/i3status-rust/default.nix b/users/daniel/configs/desktop/i3status-rust/default.nix similarity index 100% rename from user/progs/i3status-rust/default.nix rename to users/daniel/configs/desktop/i3status-rust/default.nix diff --git a/user/progs/polybar/config b/users/daniel/configs/desktop/polybar/config similarity index 100% rename from user/progs/polybar/config rename to users/daniel/configs/desktop/polybar/config diff --git a/user/progs/polybar/default.nix b/users/daniel/configs/desktop/polybar/default.nix similarity index 100% rename from user/progs/polybar/default.nix rename to users/daniel/configs/desktop/polybar/default.nix diff --git a/user/progs/rofi/colour.rasi b/users/daniel/configs/desktop/rofi/colour.rasi similarity index 99% rename from user/progs/rofi/colour.rasi rename to users/daniel/configs/desktop/rofi/colour.rasi index d18ace4..7bb4b39 100644 --- a/user/progs/rofi/colour.rasi +++ b/users/daniel/configs/desktop/rofi/colour.rasi @@ -18,7 +18,7 @@ background-color: @drac-bgd; active-background: @drac-pnk; urgent-background: @drac-red; - + selected-background: @active-background; selected-urgent-background: @urgent-background; selected-active-background: @active-background; diff --git a/user/progs/rofi/default.nix b/users/daniel/configs/desktop/rofi/default.nix similarity index 100% rename from user/progs/rofi/default.nix rename to users/daniel/configs/desktop/rofi/default.nix diff --git a/user/progs/alacritty/default.nix b/users/daniel/configs/system/alacritty/default.nix similarity index 100% rename from user/progs/alacritty/default.nix rename to users/daniel/configs/system/alacritty/default.nix diff --git a/users/daniel/configs/system/default.nix b/users/daniel/configs/system/default.nix new file mode 100644 index 0000000..3763353 --- /dev/null +++ b/users/daniel/configs/system/default.nix @@ -0,0 +1,8 @@ +{ + imports = [ + ./alacritty + ./helix + ./kitty + ./neovim + ]; +} diff --git a/user/progs/helix/config.toml b/users/daniel/configs/system/helix/config/config.toml similarity index 100% rename from user/progs/helix/config.toml rename to users/daniel/configs/system/helix/config/config.toml diff --git a/user/progs/helix/themes/dracula.toml b/users/daniel/configs/system/helix/config/themes/dracula.toml similarity index 100% rename from user/progs/helix/themes/dracula.toml rename to users/daniel/configs/system/helix/config/themes/dracula.toml diff --git a/users/daniel/configs/system/helix/default.nix b/users/daniel/configs/system/helix/default.nix new file mode 100644 index 0000000..2b88f6d --- /dev/null +++ b/users/daniel/configs/system/helix/default.nix @@ -0,0 +1,7 @@ +{...}: +{ + home.file.".config/helix" = { + source = ./config; + recursive = true; + }; +} diff --git a/user/progs/kitty/default.nix b/users/daniel/configs/system/kitty/default.nix similarity index 100% rename from user/progs/kitty/default.nix rename to users/daniel/configs/system/kitty/default.nix diff --git a/user/progs/neovim/default.nix b/users/daniel/configs/system/neovim/default.nix similarity index 100% rename from user/progs/neovim/default.nix rename to users/daniel/configs/system/neovim/default.nix diff --git a/user/daniel/home.nix b/users/daniel/default.nix similarity index 61% rename from user/daniel/home.nix rename to users/daniel/default.nix index a1ed892..bd1188d 100644 --- a/user/daniel/home.nix +++ b/users/daniel/default.nix @@ -1,21 +1,62 @@ -{ pkgs, fetchurl, ... }: +{ pkgs, lib, fetchurl, hostname, headless, ... }: +let + cliPackages = with pkgs; [ + aerc + entr + go_1_18 + gomuks + gopls + oh-my-zsh + ( + let + my-python-packages = python-packages: with python-packages; [ + tkinter + requests + ]; + python-with-my-packages = python3.withPackages my-python-packages; + in + python-with-my-packages + ) + ranger + restic + rust-analyzer + starship + ]; + guiPackages = with pkgs; [ + _1password + _1password-gui + discord + feh + iosevka + jetbrains.goland + mpv + nerdfonts + pamixer + pavucontrol + playerctl + spotify + xclip + ]; +in { imports = [ - ../progs/alacritty - ../progs/i3 - ../progs/i3status-rust - ../progs/kitty - ../progs/neovim - ../progs/rofi + + ./configs/system + + ] ++ lib.optionals (!headless) [ + + ./configs/desktop + + ] ++ lib.optionals (builtins.pathExists ./host-specific/${hostname}) [ + + ./host-specific/${hostname} + ]; home = { username = "daniel"; homeDirectory = "/home/daniel"; - sessionVariables = { - EDITOR = "hx"; - }; sessionPath = [ "$HOME/go/bin" ]; @@ -23,23 +64,8 @@ file = { ".icons/default".source = "${pkgs.capitaine-cursors}/share/icons/capitaine-cursors"; - ".config/helix" = { - source = ../progs/helix; - recursive = true; - }; - - "bin/aupdate" = { - source = ../../scripts/aupdate; - executable = true; - }; - - "bin/bupdate" = { - source = ../../scripts/bupdate; - executable = true; - }; - - "bin/hmupdate" = { - source = ../../scripts/hmupdate; + "bin/update" = { + source = ../../scripts/update; executable = true; }; @@ -47,48 +73,9 @@ source = ../../scripts/supdate; executable = true; }; - - "bin/update" = { - source = ../../scripts/update; - executable = true; - }; }; - packages = with pkgs; [ - _1password - _1password-gui - aerc - discord - entr - feh - go_1_18 - gomuks - gopls - helix - iosevka - mpv - nerdfonts - oh-my-zsh - pamixer - pavucontrol - playerctl - ( - let - my-python-packages = python-packages: with python-packages; [ - tkinter - requests - ]; - python-with-my-packages = python3.withPackages my-python-packages; - in - python-with-my-packages - ) - ranger - restic - rust-analyzer - spotify - starship - xclip - ]; + packages = cliPackages ++ lib.optionals (!headless) guiPackages; keyboard = { layout = "gb"; diff --git a/user/host-specific/dingbox/default.nix b/users/daniel/host-specific/dingbox/default.nix similarity index 76% rename from user/host-specific/dingbox/default.nix rename to users/daniel/host-specific/dingbox/default.nix index 8c0d28b..8808819 100644 --- a/user/host-specific/dingbox/default.nix +++ b/users/daniel/host-specific/dingbox/default.nix @@ -7,10 +7,6 @@ }; }; - home.packages = with pkgs; [ - jetbrains.goland - ]; - programs.alacritty.settings.font.size = 13; programs.kitty.font.size = 22; } diff --git a/user/host-specific/dingbox/wallpapers/lock.png b/users/daniel/host-specific/dingbox/wallpapers/lock.png similarity index 100% rename from user/host-specific/dingbox/wallpapers/lock.png rename to users/daniel/host-specific/dingbox/wallpapers/lock.png diff --git a/user/host-specific/dingbox/wallpapers/wallpaper.jpg b/users/daniel/host-specific/dingbox/wallpapers/wallpaper.jpg similarity index 100% rename from user/host-specific/dingbox/wallpapers/wallpaper.jpg rename to users/daniel/host-specific/dingbox/wallpapers/wallpaper.jpg diff --git a/user/host-specific/miniding/default.nix b/users/daniel/host-specific/miniding/default.nix similarity index 100% rename from user/host-specific/miniding/default.nix rename to users/daniel/host-specific/miniding/default.nix diff --git a/user/host-specific/miniding/wallpapers/lock.png b/users/daniel/host-specific/miniding/wallpapers/lock.png similarity index 100% rename from user/host-specific/miniding/wallpapers/lock.png rename to users/daniel/host-specific/miniding/wallpapers/lock.png diff --git a/user/host-specific/miniding/wallpapers/wallpaper.jpg b/users/daniel/host-specific/miniding/wallpapers/wallpaper.jpg similarity index 100% rename from user/host-specific/miniding/wallpapers/wallpaper.jpg rename to users/daniel/host-specific/miniding/wallpapers/wallpaper.jpg diff --git a/user/host-specific/pingbox/default.nix b/users/daniel/host-specific/pingbox/default.nix similarity index 79% rename from user/host-specific/pingbox/default.nix rename to users/daniel/host-specific/pingbox/default.nix index 422474d..d97bed2 100644 --- a/user/host-specific/pingbox/default.nix +++ b/users/daniel/host-specific/pingbox/default.nix @@ -7,10 +7,6 @@ source = ./wallpapers; }; }; - - packages = with pkgs; [ - jetbrains.goland - ]; }; programs.kitty.font.size = 19; diff --git a/user/host-specific/pingbox/wallpapers/lock.png b/users/daniel/host-specific/pingbox/wallpapers/lock.png similarity index 100% rename from user/host-specific/pingbox/wallpapers/lock.png rename to users/daniel/host-specific/pingbox/wallpapers/lock.png diff --git a/user/host-specific/pingbox/wallpapers/wallpaper.jpg b/users/daniel/host-specific/pingbox/wallpapers/wallpaper.jpg similarity index 100% rename from user/host-specific/pingbox/wallpapers/wallpaper.jpg rename to users/daniel/host-specific/pingbox/wallpapers/wallpaper.jpg diff --git a/users/daniel/progs/i3status-rust/default.nix b/users/daniel/progs/i3status-rust/default.nix deleted file mode 100644 index 25f9cd1..0000000 --- a/users/daniel/progs/i3status-rust/default.nix +++ /dev/null @@ -1,50 +0,0 @@ -{ config, pkgs, ... }: - -{ - programs.i3status-rust = { - enable = true; - bars = { - main = { - theme = "dracula"; - icons = "awesome"; - blocks = [ - { - block = "time"; - } - { - block = "battery"; - allow_missing = true; - hide_missing = true; - } - { - block = "backlight"; - device = "intel_backlight"; - step_width = 10; - invert_icons = true; - } - { - block = "networkmanager"; - on_click = "alacritty -e nmtui"; - primary_only = true; - ap_format = "{ssid}"; - device_format = "{icon}{ap}"; - } - { - block = "keyboard_layout"; - } - { - block = "notify"; - } - { - block = "music"; - player = "spotify"; - buttons = [ "prev" "play" "next" ]; - } - { - block = "sound"; - } - ]; - }; - }; - }; -} diff --git a/users/default.nix b/users/default.nix new file mode 100644 index 0000000..a00709c --- /dev/null +++ b/users/default.nix @@ -0,0 +1,3 @@ +{ + daniel = import ./daniel; +}