diff --git a/config/common/default.nix b/config/common/default.nix index 1b33d66..591951b 100644 --- a/config/common/default.nix +++ b/config/common/default.nix @@ -5,7 +5,7 @@ in { ./kernel.nix ./networking.nix ./openssh.nix - ./users + ./users.nix ../../modules inputs.lix-module.nixosModules.default ]; @@ -23,6 +23,7 @@ in { man-pages-posix unzip zip + fd figlet ]; programs = { diff --git a/config/common/users/default.nix b/config/common/users.nix similarity index 62% rename from config/common/users/default.nix rename to config/common/users.nix index 34d379b..60ce336 100644 --- a/config/common/users/default.nix +++ b/config/common/users.nix @@ -1,5 +1,5 @@ { ... }: { imports = [ - ./emily + ../users/emily ]; } diff --git a/config/hosts/crime/configuration.nix b/config/hosts/crime/configuration.nix index edbaa22..5ab41bc 100644 --- a/config/hosts/crime/configuration.nix +++ b/config/hosts/crime/configuration.nix @@ -1,6 +1,7 @@ { ... }: { imports = [ ../../common + ../../users/lucy ../../profiles/headless.nix ../../profiles/kartoffel.nix ../../profiles/lxc.nix diff --git a/config/hosts/seras/configuration.nix b/config/hosts/seras/configuration.nix index 368b4b0..97a1b67 100644 --- a/config/hosts/seras/configuration.nix +++ b/config/hosts/seras/configuration.nix @@ -1,6 +1,7 @@ -{ ... }: { +{ pkgs, ... }: { imports = [ ../../common + ../../users/nil ../../profiles/builder.nix ../../profiles/headless.nix ../../profiles/kartoffel.nix diff --git a/config/services/arrs/default.nix b/config/services/arrs/default.nix index b6c36de..055b496 100644 --- a/config/services/arrs/default.nix +++ b/config/services/arrs/default.nix @@ -17,7 +17,7 @@ where = "/mnt/mezzomix"; what = "mezzomix@otos.feralhosting.com:private/rtorrent/data"; type = "fuse.sshfs"; - options = "_netdev,rw,nosuid,allow_other,default_permissions,follow_symlinks,identityfile=/etc/keys/ssh_host_ed25519_key"; + options = "umask=0000,idmap=user,_netdev,rw,nosuid,allow_other,default_permissions,follow_symlinks,reconnect,max_conns=10,identityfile=/etc/keys/ssh_host_ed25519_key"; }; systemd.automounts = lib.singleton { name = "mnt-mezzomix.automount"; @@ -35,8 +35,8 @@ verifyClientCert = true; disableHttp3 = true; locations = { -# "/".root = pkgs.writeTextDir "index.html" (builtins.readFile ./landingPage.html); - "/" = { + "/".root = pkgs.writeTextDir "index.html" (builtins.readFile ./landingPage.html); + "/sonarr/" = { proxyPass = "http://127.0.0.1:8989"; recommendedProxySettings = true; }; diff --git a/config/common/users/emily/default.nix b/config/users/emily/default.nix similarity index 97% rename from config/common/users/emily/default.nix rename to config/users/emily/default.nix index 4086a05..de2181e 100644 --- a/config/common/users/emily/default.nix +++ b/config/users/emily/default.nix @@ -37,6 +37,7 @@ pavucontrol signal-desktop element-desktop + inputs.firefox.packages.${pkgs.system}.firefox nixfmt-classic wl-clipboard diff --git a/config/users/lucy/default.nix b/config/users/lucy/default.nix new file mode 100644 index 0000000..7789a1a --- /dev/null +++ b/config/users/lucy/default.nix @@ -0,0 +1,50 @@ +{ inputs, pkgs, ... }: { + imports = [ + inputs.home-manager.nixosModules.home-manager + ]; + + users.users.lucy = { + isNormalUser = true; + shell = pkgs.fish; + ignoreShellProgramCheck = true; + extraGroups = [ "wheel" ]; + openssh.authorizedKeys.keys = [ + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCujVaJCx/MXp/6ss9eSH+UmWQXGHWMxzYATQPBoWX1hNHlxjqbXjmbvv/cJD+PDPrEDtzlI+0uMknPItNZ6G28BcWpU18AJqrIaPBKxEtNj7RiImDG2VUKunKEEiBR33IH709ajpy2W6WBEN3GddGclxC7V2FFGWVeXzU9QBaJPL1AuVq4rOOC01XTI3vXYfaFFqlatMckq9fjXaQuwdUblcBwepFyJ626hJ53/UnIWV5BFpfqCOVxaF38L1rBN++VZatak7hD2Wa+SDeUnymWyhapNhpCD2OiiBaBy6oT88jhhucH0iA9VQfzepPxNnxe2CGJ4IE1MQdnPXKlDeSEGjeNQmiEtwq0zv9mPRLJYmgZrxZau+1ZjqQrx7DzzVdmHrLzOH9JmKJmKSD1V98ASqHbCMvDEUZ6x2CS1hS9zNf8J4Mwzdsv3P/CTDH9Yv1ipiz4qafQZ8KCbYyf1wMeHckm60QpW3tBn3cD/MEv4hqS8FMW+9rrh5+kmKgQDBM= emilia@emilia" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIId7XvwEHtC9KdGg4Bn+XE+yyBp7/dRToJX9T56mM7ln kosaki@kosaki" + ]; + }; + + home-manager.useGlobalPkgs = true; + home-manager.users.lucy = { + home.stateVersion = "24.11"; + + home.packages = with pkgs; [ + whois + htop + restic + fend + ]; + fonts.fontconfig.enable = true; + + programs.bat.enable = true; + programs.gpg.enable = true; + programs.ripgrep.enable = true; + + programs.eza = { + enable = true; + icons = "auto"; + git = true; + extraOptions = [ + "--color-scale=all" + "--color-scale-mode=gradient" + "--group-directories-first" + ]; + }; + programs.fish = { + enable = true; + interactiveShellInit = '' + set -U fish_greeting + ''; + }; + }; +} diff --git a/config/users/nil/default.nix b/config/users/nil/default.nix new file mode 100644 index 0000000..9aac787 --- /dev/null +++ b/config/users/nil/default.nix @@ -0,0 +1,49 @@ +{ inputs, pkgs, ... }: { + imports = [ + inputs.home-manager.nixosModules.home-manager + ]; + + users.users.nil = { + isNormalUser = true; + shell = pkgs.fish; + ignoreShellProgramCheck = true; + extraGroups = [ "wheel" ]; + openssh.authorizedKeys.keys = [ + "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAICczPHRwY9MAwDGlcB0QgMOJjcpLJhVU3covrW9RBS62AAAABHNzaDo=" + ]; + }; + + home-manager.useGlobalPkgs = true; + home-manager.users.nil = { + home.stateVersion = "24.11"; + + home.packages = with pkgs; [ + whois + htop + restic + fend + ]; + fonts.fontconfig.enable = true; + + programs.bat.enable = true; + programs.gpg.enable = true; + programs.ripgrep.enable = true; + + programs.eza = { + enable = true; + icons = "auto"; + git = true; + extraOptions = [ + "--color-scale=all" + "--color-scale-mode=gradient" + "--group-directories-first" + ]; + }; + programs.fish = { + enable = true; + interactiveShellInit = '' + set -U fish_greeting + ''; + }; + }; +} diff --git a/flake.lock b/flake.lock index c7629dd..fd6abca 100644 --- a/flake.lock +++ b/flake.lock @@ -156,11 +156,11 @@ ] }, "locked": { - "lastModified": 1731746438, - "narHash": "sha256-f3SSp1axoOk0NAI7oFdRzbxG2XPBSIXC+/DaAXnvS1A=", + "lastModified": 1731895210, + "narHash": "sha256-z76Q/OXLxO/RxMII3fIt/TG665DANiE2lVvnolK2lXk=", "owner": "nix-community", "repo": "disko", - "rev": "cb64993826fa7a477490be6ccb38ba1fa1e18fa8", + "rev": "639d1520df9417ca2761536c3072688569e83c80", "type": "github" }, "original": { @@ -214,6 +214,27 @@ "type": "github" } }, + "firefox": { + "inputs": { + "neoidiosyn": "neoidiosyn", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731882255, + "narHash": "sha256-qyGHBMpYLaBPUXzrqIvcDL8fREzp+683iNHoo2gyh9M=", + "ref": "refs/heads/main", + "rev": "bf04990c0962dea06423a91a1a023f07abe15bab", + "revCount": 3, + "type": "git", + "url": "https://woof.rip/mikael/firefox.git" + }, + "original": { + "type": "git", + "url": "https://woof.rip/mikael/firefox.git" + } + }, "flake-compat": { "flake": false, "locked": { @@ -344,6 +365,24 @@ "inputs": { "systems": "systems" }, + "locked": { + "lastModified": 1726560853, + "narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "c1dfcf08411b08f6b8615f7d8971a2bfa81d5e8a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { + "inputs": { + "systems": "systems_2" + }, "locked": { "lastModified": 1731533236, "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", @@ -358,9 +397,9 @@ "type": "github" } }, - "flake-utils_2": { + "flake-utils_3": { "inputs": { - "systems": "systems_2" + "systems": "systems_3" }, "locked": { "lastModified": 1710146030, @@ -376,9 +415,9 @@ "type": "github" } }, - "flake-utils_3": { + "flake-utils_4": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1731533236, @@ -394,7 +433,7 @@ "type": "github" } }, - "flake-utils_4": { + "flake-utils_5": { "inputs": { "systems": [ "stylix", @@ -430,6 +469,21 @@ "type": "github" } }, + "flakey-profile_2": { + "locked": { + "lastModified": 1712898590, + "narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=", + "owner": "lf-", + "repo": "flakey-profile", + "rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d", + "type": "github" + }, + "original": { + "owner": "lf-", + "repo": "flakey-profile", + "type": "github" + } + }, "florp-about": { "inputs": { "nixpkgs": [ @@ -582,11 +636,11 @@ ] }, "locked": { - "lastModified": 1731786860, - "narHash": "sha256-130gQ5k8kZlxjBEeLpE+SvWFgSOFgQFeZlqIik7KgtQ=", + "lastModified": 1731887066, + "narHash": "sha256-uw7K/RsYioJicV79Nl39yjtfhdfTDU2aRxnBgvFhkZ8=", "owner": "nix-community", "repo": "home-manager", - "rev": "1bd5616e33c0c54d7a5b37db94160635a9b27aeb", + "rev": "f3a2ff69586f3a54b461526e5702b1a2f81e740a", "type": "github" }, "original": { @@ -671,6 +725,68 @@ } }, "lix": { + "flake": false, + "locked": { + "lastModified": 1731683711, + "narHash": "sha256-bq21I1EjXJa/s5Rra9J9ot2NkPCnI0F5uNPurwYLdpE=", + "rev": "c859d03013712b349d82ee6223948d6d03e63a8d", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/c859d03013712b349d82ee6223948d6d03e63a8d.tar.gz?rev=c859d03013712b349d82ee6223948d6d03e63a8d" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/lix/archive/main.tar.gz" + } + }, + "lix-module": { + "inputs": { + "flake-utils": "flake-utils", + "flakey-profile": "flakey-profile", + "lix": [ + "firefox", + "neoidiosyn", + "lix" + ], + "nixpkgs": [ + "firefox", + "neoidiosyn", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731185731, + "narHash": "sha256-RNaIu43b9PoXEhW4OqXUNZKY/jezQyCYWwdv1M0VjsA=", + "rev": "691193879d96bdfd1e6ab5ebcca2fadc7604cf34", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/691193879d96bdfd1e6ab5ebcca2fadc7604cf34.tar.gz?rev=691193879d96bdfd1e6ab5ebcca2fadc7604cf34" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/nixos-module/archive/main.tar.gz" + } + }, + "lix-module_2": { + "inputs": { + "flake-utils": "flake-utils_3", + "flakey-profile": "flakey-profile_2", + "lix": "lix_3", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1723510904, + "narHash": "sha256-zNW/rqNJwhq2lYmQf19wJerRuNimjhxHKmzrWWFJYts=", + "rev": "622a2253a071a1fb97a4d3c8103a91114acc1140", + "type": "tarball", + "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/622a2253a071a1fb97a4d3c8103a91114acc1140.tar.gz?rev=622a2253a071a1fb97a4d3c8103a91114acc1140" + }, + "original": { + "type": "tarball", + "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz" + } + }, + "lix_2": { "inputs": { "flake-compat": "flake-compat_2", "nix2container": "nix2container", @@ -690,28 +806,7 @@ "url": "https://git.lix.systems/lix-project/lix/archive/2.91.0.tar.gz" } }, - "lix-module": { - "inputs": { - "flake-utils": "flake-utils_2", - "flakey-profile": "flakey-profile", - "lix": "lix_2", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1723510904, - "narHash": "sha256-zNW/rqNJwhq2lYmQf19wJerRuNimjhxHKmzrWWFJYts=", - "rev": "622a2253a071a1fb97a4d3c8103a91114acc1140", - "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/622a2253a071a1fb97a4d3c8103a91114acc1140.tar.gz?rev=622a2253a071a1fb97a4d3c8103a91114acc1140" - }, - "original": { - "type": "tarball", - "url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz" - } - }, - "lix_2": { + "lix_3": { "flake": false, "locked": { "lastModified": 1723503926, @@ -725,6 +820,29 @@ "url": "https://git.lix.systems/lix-project/lix/archive/2.91.0.tar.gz" } }, + "neoidiosyn": { + "inputs": { + "lix": "lix", + "lix-module": "lix-module", + "nixpkgs": [ + "firefox", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1731882236, + "narHash": "sha256-kZxwlk3NA4HeipGXi6sNsDMvg5qXZBTsfNnGdBWKqyk=", + "ref": "refs/heads/main", + "rev": "6110422f7cfb3aac31c7c7552676dc4fe5ee775b", + "revCount": 1, + "type": "git", + "url": "https://woof.rip/mikael/neoidiosyn.git" + }, + "original": { + "type": "git", + "url": "https://woof.rip/mikael/neoidiosyn.git" + } + }, "nix-darwin": { "inputs": { "nixpkgs": [ @@ -916,22 +1034,6 @@ "type": "github" } }, - "nixpkgs-stable_2": { - "locked": { - "lastModified": 1730602179, - "narHash": "sha256-efgLzQAWSzJuCLiCaQUCDu4NudNlHdg2NzGLX5GYaEY=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "3c2f1c4ca372622cb2f9de8016c9a0b1cbd0f37c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "release-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { "lastModified": 1725001927, @@ -997,11 +1099,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1731780782, - "narHash": "sha256-CG3rcxcZEViYEUTAXatqXrW0Gn9tQvydF+lLYH+0VPA=", + "lastModified": 1731883908, + "narHash": "sha256-Yt/eVhoj+SwpsQVK0YxM8jou55ni0+dqANuQ2IvIA28=", "owner": "nix-community", "repo": "nixvim", - "rev": "9d99d7cfdbd7f94da9571a4d7bbb9de185241935", + "rev": "5bc3fa6996ee37b754f2e815a165be6e4d0cfcb9", "type": "github" }, "original": { @@ -1012,7 +1114,7 @@ }, "nuschtosSearch": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_4", "ixx": "ixx", "nixpkgs": [ "nixvim", @@ -1055,15 +1157,16 @@ "disko": "disko", "dns": "dns", "fernglas": "fernglas", - "flake-utils": "flake-utils", + "firefox": "firefox", + "flake-utils": "flake-utils_2", "florp-about": "florp-about", "florp-branding": "florp-branding", "florp-moderation": "florp-moderation", "home-manager": "home-manager", "hydra": "hydra", "kyouma-www": "kyouma-www", - "lix": "lix", - "lix-module": "lix-module", + "lix": "lix_2", + "lix-module": "lix-module_2", "nixos-hardware": "nixos-hardware", "nixos-needsreboot": "nixos-needsreboot", "nixpkgs": "nixpkgs_4", @@ -1076,15 +1179,14 @@ "inputs": { "nixpkgs": [ "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable_2" + ] }, "locked": { - "lastModified": 1731748189, - "narHash": "sha256-Zd/Uukvpcu26M6YGhpbsgqm6LUSLz+Q8mDZ5LOEGdiE=", + "lastModified": 1731862312, + "narHash": "sha256-NVUTFxKrJp/hjehlF1IvkPnlRYg/O9HFVutbxOM8zNM=", "owner": "Mic92", "repo": "sops-nix", - "rev": "d2bd7f433b28db6bc7ae03d5eca43564da0af054", + "rev": "472741cf3fee089241ac9ea705bb2b9e0bfa2978", "type": "github" }, "original": { @@ -1100,7 +1202,7 @@ "base16-helix": "base16-helix", "base16-vim": "base16-vim", "flake-compat": "flake-compat_4", - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils_5", "gnome-shell": "gnome-shell", "home-manager": [ "home-manager" @@ -1108,17 +1210,17 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_4", + "systems": "systems_5", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-tmux": "tinted-tmux" }, "locked": { - "lastModified": 1731657386, - "narHash": "sha256-Mm/JL8tFUS1SOmmZDPcswExUxzw0VpHcEyZI1h58CGA=", + "lastModified": 1731861652, + "narHash": "sha256-71iRk7zLR+r9urKPEoutLqPm3Tex6gLbZyWPI4VoHIs=", "owner": "danth", "repo": "stylix", - "rev": "5ab1207b2fdeb5a022f2dd7cccf6be760f1b150f", + "rev": "9b61cc39b2c82f01b63bb0ae85865d7372697fc4", "type": "github" }, "original": { @@ -1187,6 +1289,21 @@ "type": "github" } }, + "systems_5": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tinted-foot": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index df0cbed..583df84 100644 --- a/flake.nix +++ b/flake.nix @@ -21,6 +21,10 @@ url = "github:wobcom/fernglas"; inputs.flake-utils.follows = "flake-utils"; }; + firefox = { + url = "git+https://woof.rip/mikael/firefox.git"; + inputs.nixpkgs.follows = "nixpkgs"; + }; florp-about = { url = "git+https://woof.rip/florp/about.git"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/modules/graphical/hyprland.nix b/modules/graphical/hyprland.nix index 96dafe6..fbc1dbf 100644 --- a/modules/graphical/hyprland.nix +++ b/modules/graphical/hyprland.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: { +{ config, inputs, lib, pkgs, ... }: { config.home-manager.users.emily = lib.mkIf (config.kyouma.graphical.compositor == "hyprland") { wayland.windowManager.hyprland = { enable = true; @@ -8,7 +8,7 @@ playerctl = "${pkgs.playerctl}/bin/playerctl"; notifysend = "${pkgs.libnotify}/bin/notify-send"; dolphin = "${pkgs.libsForQt5.dolphin}/bin/dolphin"; - firefox = "${pkgs.firefox}/bin/firefox"; + firefox = "${inputs.firefox.packages.${pkgs.system}.firefox}/bin/firefox"; brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl"; screenshot = "~/.local/bin/hypr/screenshot.sh"; rofi = "${pkgs.rofi-wayland}/bin/rofi";