diff --git a/flake.lock b/flake.lock index c213931..97c4a34 100644 --- a/flake.lock +++ b/flake.lock @@ -1,24 +1,25 @@ { "nodes": { - "flake-parts": { + "firefox-addons": { "inputs": { - "nixpkgs-lib": [ - "nur", + "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1733312601, - "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", - "type": "github" + "dir": "pkgs/firefox-addons", + "lastModified": 1769054619, + "narHash": "sha256-LCc0gbSgjehdy41Gi1H5WNxEuW9PtRHFVaPXoFzslQU=", + "owner": "rycee", + "repo": "nur-expressions", + "rev": "6509620630f68dc02ac3e99f15a67760778444ff", + "type": "gitlab" }, "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" + "dir": "pkgs/firefox-addons", + "owner": "rycee", + "repo": "nur-expressions", + "type": "gitlab" } }, "home-manager": { @@ -58,46 +59,11 @@ "type": "github" } }, - "nixpkgs_2": { - "locked": { - "lastModified": 1768127708, - "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nur": { - "inputs": { - "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1768226540, - "narHash": "sha256-7ITnaEIsloaaOpqxIEYjUvodWz3VcT0ERi0NiZx7U/g=", - "owner": "nix-community", - "repo": "nur", - "rev": "b87f89e9dc56296f29fb3caa93f7fb6058f8c5f3", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nur", - "type": "github" - } - }, "root": { "inputs": { + "firefox-addons": "firefox-addons", "home-manager": "home-manager", - "nixpkgs": "nixpkgs", - "nur": "nur" + "nixpkgs": "nixpkgs" } } }, diff --git a/flake.nix b/flake.nix index 0fe13d8..c0cba96 100644 --- a/flake.nix +++ b/flake.nix @@ -4,9 +4,16 @@ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; - home-manager.url = "github:nix-community/home-manager/release-25.11"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; - nur.url = "github:nix-community/nur"; + + home-manager = { + url = "github:nix-community/home-manager/release-25.11"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + + firefox-addons = { + url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; @@ -16,7 +23,9 @@ arielle = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; - modules = [ ./hosts/arielle ]; + modules = [ + ./hosts/arielle + ]; }; homer = nixpkgs.lib.nixosSystem { @@ -31,47 +40,58 @@ nova = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; - modules = [ ./hosts/nova ]; + modules = [ ./hosts/nova + home-manager.nixosModules.home-manager { + home-manager.extraSpecialArgs = { inherit inputs; }; + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.till = { + imports = [ + ./home + ]; + }; + } + ]; }; }; - homeConfigurations = { - till = home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default; - extraSpecialArgs = { inherit inputs; }; - modules = [ - ./home - ]; - }; - "till@romulus" = home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default; - extraSpecialArgs = { inherit inputs; }; - modules = [ - ./home/slim-desktop.nix - ]; - }; - "till@arielle" = home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.x86_64-linux; - extraSpecialArgs = { inherit inputs; }; - modules = [ - ./home/on-server.nix - ]; - }; - alt = home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default; - extraSpecialArgs = { inherit inputs; }; - modules = [ - ./home/alt.nix - ]; - }; - guest = home-manager.lib.homeManagerConfiguration { - pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default; - extraSpecialArgs = { inherit inputs; }; - modules = [ - ./home/guest.nix - ]; - }; - }; + # homeConfigurations = { + # till = home-manager.lib.homeManagerConfiguration { + # pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default; + # extraSpecialArgs = { inherit inputs; }; + # modules = [ + # ./home + # ]; + # }; + # "till@romulus" = home-manager.lib.homeManagerConfiguration { + # pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default; + # extraSpecialArgs = { inherit inputs; }; + # modules = [ + # ./home/slim-desktop.nix + # ]; + # }; + # "till@arielle" = home-manager.lib.homeManagerConfiguration { + # pkgs = nixpkgs.legacyPackages.x86_64-linux; + # extraSpecialArgs = { inherit inputs; }; + # modules = [ + # ./home/on-server.nix + # ]; + # }; + # alt = home-manager.lib.homeManagerConfiguration { + # pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default; + # extraSpecialArgs = { inherit inputs; }; + # modules = [ + # ./home/alt.nix + # ]; + # }; + # guest = home-manager.lib.homeManagerConfiguration { + # pkgs = nixpkgs.legacyPackages.x86_64-linux.extend inputs.nur.overlays.default; + # extraSpecialArgs = { inherit inputs; }; + # modules = [ + # ./home/guest.nix + # ]; + # }; + # }; }; } diff --git a/home/cli-office/default.nix b/home/cli-office/default.nix new file mode 100644 index 0000000..d2ce206 --- /dev/null +++ b/home/cli-office/default.nix @@ -0,0 +1,48 @@ +{ config, pkgs, lib, ... }: + +{ + imports = [ + ./khard-dump.nix + ]; + + home.packages = with pkgs; [ + castget + drawing + feh + ghostscript + ghostscript + hunspell + hunspellDicts.de_DE + hunspellDicts.en_US + hunspellDicts.th_TH + hyphen + hyphenDicts.de_DE + hyphenDicts.en_US + imagemagick + imagemagick + khal + khard + msmtp + notmuch + openssl + pandoc + pdftk + ripmime + taskopen + urlscan + w3m + zathura + ]; + + programs.neovim.plugins = with pkgs.vimPlugins; [ lazy-nvim ]; + + xdg.configFile."nvim/lua/woof-vim.lua".text = '' + return { + "woof-vim", + name = "woof-vim", + dev = { + path = "~/devel" + } + } + ''; +} diff --git a/home/nvim/khard-dump.nix b/home/cli-office/khard-dump.nix similarity index 100% rename from home/nvim/khard-dump.nix rename to home/cli-office/khard-dump.nix diff --git a/home/firefox.nix b/home/firefox.nix index f51e776..cd8962e 100644 --- a/home/firefox.nix +++ b/home/firefox.nix @@ -1,6 +1,7 @@ -{ config, pkgs, osConfig, ... }: +{ config, pkgs, inputs, osConfig, ... }: { + programs.firefox = { enable = true; policies = { @@ -33,14 +34,12 @@ ${config.home.username} = { name = config.home.username; isDefault = true; - extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [ - adaptive-tab-bar-colour + extensions.packages = with inputs.firefox-addons.packages.${pkgs.system}; [ auto-tab-discard keepassxc-browser passff - tampermonkey + # tampermonkey ublock-origin - vimium web-archives zotero-connector ]; @@ -66,7 +65,7 @@ definedAliases = [ "@nw" ]; }; "NixOS Options" = { - urls = [{ template = "https://search.nixos.org/options?query={searchTerms}"; }]; + urls = [{ template = "https://search.nixos.org/options?channel=${osConfig.system.nixos.release}&query={searchTerms}"; }]; icon = "https://nixos.org/favicon.png"; updateInterval = 24 * 60 * 60 * 1000; definedAliases = [ "@no" ]; diff --git a/home/gpg.nix b/home/gpg.nix index 356cf21..fc8c0a4 100644 --- a/home/gpg.nix +++ b/home/gpg.nix @@ -1,10 +1,10 @@ { config, pkgs, ... }: { - programs.gnupg.agent = { + services.gpg-agent = { enable = true; - pinentryPackage = pkgs.pinentry-gnome3; - enableSSHSupport = true; + pinentry.package = pkgs.pinentry-gnome3; + enableSshSupport = true; }; programs.gpg.settings = { diff --git a/home/nvim/default.nix b/home/nvim/default.nix index 7421dd5..18dba09 100644 --- a/home/nvim/default.nix +++ b/home/nvim/default.nix @@ -1,8 +1,6 @@ { config, pkgs, ... }: { - imports = [ ./khard-dump.nix ]; - home.packages = with pkgs; [ astro-language-server marksman @@ -18,19 +16,7 @@ extraConfig = builtins.readFile ./config.vim; plugins = with pkgs.vimPlugins; - let - woof = pkgs.vimUtils.buildVimPlugin { - name = "woof.vim"; - src = builtins.fetchGit { - url = "ssh://git@shorbut.ktiu.net/home/git/woof.vim/"; - ref = "main"; - rev = "c29eb50e30ed75cf9ecdcfff198454fcc2c16922"; - }; - }; - in [ - woof - cmp-nvim-lsp cmp-buffer cmp-emoji diff --git a/home/r.nix b/home/r.nix index 91de769..7eb64f1 100644 --- a/home/r.nix +++ b/home/r.nix @@ -1,91 +1,54 @@ { pkgs, ... }: +let + customPackages = with pkgs.rPackages; [ + catmaply + clipr + DAAG + devtools + dplyr + eurostat + extrafont + ggplot2 + ggridges + jsonlite + kableExtra + knitr + languageserver + magrittr + mapproj + openxlsx + osmdata + plotly + progress + purrr + qrcode + RColorBrewer + readODS + revealjs + rlist + rmarkdown + rnaturalearth + rnaturalearthdata + roxygen2 + rvest + sf + stringr + testthat + tidyr + tidyverse + tmap + xlsx + yaml + ]; + + R-packed = pkgs.rWrapper.override { packages = customPackages; }; + RStudio-packed = pkgs.rstudioWrapper.override { packages = customPackages; }; + +in + { - home.packages = with pkgs; - let - customPackages = with rPackages; let - lectuR = pkgs.rPackages.buildRPackage { - name = "lectuR"; - src = builtins.fetchGit { - url = "ssh://git@shorbut.ktiu.net/home/git/lectuR/"; - ref = "main"; - rev = "0aafe4eb057a7ec12b8d6ac40ce0bfc8dab80c2b"; - }; - propagatedBuildInputs = [ purrr magrittr knitr kableExtra tidyr stringr yaml ]; - nativeBuildInputs = [ purrr magrittr knitr kableExtra tidyr stringr yaml ]; - }; - publishR = pkgs.rPackages.buildRPackage { - name = "publishR"; - src = builtins.fetchGit { - url = "ssh://git@shorbut.ktiu.net/home/git/publishR/"; - ref = "main"; - rev = "ee137a66ca3b713205ac44e5165292e7ad6388b6"; - }; - propagatedBuildInputs = []; - nativeBuildInputs = []; - }; - goethR = pkgs.rPackages.buildRPackage { - name = "goethR"; - src = builtins.fetchGit { - url = "ssh://git@arielle.ktiu.net/home/git/goethR/"; - ref = "main"; - rev = "e3dbfd319f01adfa4a1a1a8abc274014e6498aae"; - }; - propagatedBuildInputs = []; - nativeBuildInputs = []; - }; - in [ - bookdown - catmaply - clipr - DAAG - devtools - dplyr - eurostat - extrafont - ggplot2 - ggridges - jsonlite - kableExtra - knitr - languageserver - magrittr - mapproj - # networkD3 - openxlsx - osmdata - plotly - progress - purrr - qrcode - RColorBrewer - readODS - revealjs - # restatis - rlist - rmarkdown - rnaturalearth - rnaturalearthdata - # roxygen2 - # RSQLite - rvest - sf - stringr - # swirl - # testthat - tidyr - tidyverse - tmap - xlsx - yaml - lectuR - publishR - # goethR - # ggtree - ]; - R-packed = rWrapper.override { packages = customPackages; }; - RStudio-packed = rstudioWrapper.override { packages = customPackages; }; - in [ + home.packages = with pkgs; [ R-packed RStudio-packed ]; diff --git a/home/slim-desktop.nix b/home/slim-desktop.nix index f1cacda..d24866c 100644 --- a/home/slim-desktop.nix +++ b/home/slim-desktop.nix @@ -12,50 +12,11 @@ home.packages = with pkgs; [ aichat - usbutils - wl-clipboard - - # email - msmtp - notmuch - w3m - openssl - # gnupg - urlscan - ripmime - - # office - khal - khard - taskopen - zathura - pdftk - imagemagick - feh - ghostscript - drawing - castget - - # publishing - hunspell - hunspellDicts.de_DE - hunspellDicts.en_US - hunspellDicts.th_TH - hyphen - hyphenDicts.de_DE - hyphenDicts.en_US - pandoc - imagemagick - ghostscript - - # media - rhythmbox - vlc appimage-run - - # secrets - # libsecret keepassxc + usbutils + vlc + wl-clipboard yubioath-flutter ]; @@ -66,7 +27,7 @@ ./calendars.nix ./foot.nix ./mail - # ./openconnect.nix + ./cli-office ]; programs.taskwarrior = { diff --git a/home/ssh.nix b/home/ssh.nix index bb4e147..6e5a1cf 100644 --- a/home/ssh.nix +++ b/home/ssh.nix @@ -3,8 +3,8 @@ let certs = { - uni = "${config.home.homeDirectory}/.ssh/tstraube@${osConfig.networking.hostname}"; - personal = "${config.home.homeDirectory}/.ssh/till@${osConfig.networking.hostname}"; + uni = "${config.home.homeDirectory}/.ssh/tstraube@${osConfig.networking.hostName}"; + personal = "${config.home.homeDirectory}/.ssh/till@${osConfig.networking.hostName}"; }; in diff --git a/hosts/nova/default.nix b/hosts/nova/default.nix index 1e653f3..0641e06 100644 --- a/hosts/nova/default.nix +++ b/hosts/nova/default.nix @@ -5,14 +5,14 @@ imports = [ ./hardware.nix - ../users/alt.nix - ../users/guest.nix - ../system - ../system/desktop - ../system/desktop/gnome.nix - # ../system/desktop/cast.nix - ../system/desktop/ergodox.nix - ../system/desktop/steam.nix - ../system/desktop/yubikey.nix + ../../users/alt.nix + ../../users/guest.nix + ../../system + ../../system/desktop + ../../system/desktop/gnome.nix + # ../../system/desktop/cast.nix + ../../system/desktop/ergodox-udev.nix + ../../system/desktop/steam.nix + ../../system/desktop/yubikey-pam.nix ]; } diff --git a/system/default.nix b/system/default.nix index f885e18..820d30f 100644 --- a/system/default.nix +++ b/system/default.nix @@ -24,7 +24,7 @@ htop killall neovim - netutils + nettools pwgen tree unzip diff --git a/system/desktop/steam.nix b/system/desktop/steam.nix new file mode 100644 index 0000000..781e12e --- /dev/null +++ b/system/desktop/steam.nix @@ -0,0 +1,5 @@ +{ config, pkgs, ... }: + +{ + programs.steam.enable = true; +} diff --git a/users/guest.nix b/users/guest.nix index a3485b6..04f070e 100644 --- a/users/guest.nix +++ b/users/guest.nix @@ -7,7 +7,7 @@ extraGroups = [ "networkmanager" ]; shell = pkgs.fish; openssh.authorizedKeys.keyFiles = [ - ../../till${"@"}nova.pub + ../till${"@"}nova.pub ]; }; } diff --git a/users/till.nix b/users/till.nix index 7f94dad..d32fcd9 100644 --- a/users/till.nix +++ b/users/till.nix @@ -10,7 +10,7 @@ ]; shell = pkgs.fish; openssh.authorizedKeys.keyFiles = [ - ../../till${"@"}nova.pub + ../till${"@"}nova.pub ]; }; }