diff --git a/home-mods/common/default.nix b/home-mods/common/default.nix new file mode 100644 index 0000000..7c5a2d9 --- /dev/null +++ b/home-mods/common/default.nix @@ -0,0 +1,5 @@ +{ config, lib, pkgs, ... }: + +{ + home.homeDirectory = "/home/${config.home.username}"; +} diff --git a/home-mods/desktop/default.nix b/home-mods/desktop/default.nix new file mode 100644 index 0000000..42feffd --- /dev/null +++ b/home-mods/desktop/default.nix @@ -0,0 +1,36 @@ +{ config +, pkgs +, inputs +, ... +}: + +let + wallpaper = inputs.nix-wallpaper.packages.${pkgs.system}.default.override { + logoSize = 24; + preset = "gruvbox-dark-rainbow"; + }; + wallpaperPath = "${wallpaper}/share/wallpapers/nixos-wallpaper.png"; +in + +{ + home = { + file.".background".source = wallpaperPath; + + packages = with pkgs.unstable-pkgs; [ + bitwarden + brave + cavalier + freetube + inkscape + jellyfin-media-player + kate + neofetch + nextcloud-client + onlyoffice-bin + rustdesk + tutanota-desktop + signal-desktop + thunderbird + ]; + }; +} diff --git a/home-mods/dev/default.nix b/home-mods/dev/default.nix index 6a8f254..8e16aa5 100644 --- a/home-mods/dev/default.nix +++ b/home-mods/dev/default.nix @@ -4,141 +4,30 @@ , inputs , ... }: -let - doomemacsSrc = builtins.fetchGit { - url = "https://github.com/doomemacs/doomemacs"; - ref = "master"; - rev = "986398504d09e585c7d1a8d73a6394024fe6f164"; - }; - - personalDoomConfSrc = builtins.fetchGit { - url = "https://git.vlt81.de/tristan/doom"; - ref = "main"; - rev = "c6558ab65f106628a3bdb890df935bb7965edd95"; - }; -in { + # imports = [ + # ../shell + #]; + xdg.enable = true; - programs = { - alacritty = { - enable = true; - settings = { - window.opacity = 0.88; - window.dimensions = { - lines = 40; - columns = 150; - }; + programs.alacritty = { + enable = true; + settings = { + window.opacity = 0.88; + window.dimensions = { + lines = 40; + columns = 150; }; }; - - starship = { - enable = true; - package = pkgs.unstable-pkgs.starship; - }; - - fish = { - enable = true; - package = pkgs.unstable-pkgs.fish; - - interactiveShellInit = '' - any-nix-shell fish --info-right | source - direnv hook fish | source - ''; - loginShellInit = '' - direnv hook fish | source - ''; - - functions = { - ec = "emacsclient $argv"; - ecc = "emacsclient -c $argv"; - ecr = "emacsclient -r $argv"; - ecrr = "emacsclient -r $argv"; - }; - }; - - git = { - enable = true; - userName = "Tristan Druyen"; - userEmail = "tristan@vault81.de"; - aliases = { - ci = "commit"; - co = "checkout"; - s = "status"; - }; - extraConfig = { - user.signingkey = "${config.home.homeDirectory}/.ssh/id_ed25519"; - commit.gpgsign = true; - gpg.format = "ssh"; - }; - package = pkgs.unstable-pkgs.git; - }; - - nix-index = { - enable = true; - enableFishIntegration = true; - }; - - ssh = { - enable = true; - package = pkgs.unstable-pkgs.openssh; - - matchBlocks = { - "he3" = { - host = "he3"; - hostname = "he3.vault81.de"; - user = "root"; - identityFile = "~/.ssh/id_hetz_ed25519"; - }; - "he2" = { - host = "he2"; - hostname = "he2.vault81.de"; - user = "root"; - identityFile = "~/.ssh/id_v81_ed25519"; - }; - "desk-arch" = { - host = "desk-arch"; - hostname = "tristan-desk-arch"; - user = "tristand"; - identityFile = "~/.ssh/id_v81_ed25519"; - }; - }; - }; - - gpg = { - enable = true; - - package = pkgs.unstable-pkgs.gnupg; - }; }; - services = { - gpg-agent = { - enable = true; - - enableExtraSocket = true; - enableSshSupport = true; - }; - - lorri.enable = true; - emacs = { - enable = true; - defaultEditor = true; - package = pkgs.unstable-pkgs.emacs-unstable-pgtk; + package = lib.mkForce pkgs.unstable-pkgs.emacs-unstable-pgtk; }; }; home = { - activation.installDoomEmacs = lib.hm.dag.entryAfter [ "writeBoundary" ] '' - mkdir ~/.config/emacs -p - chmod u+rw -R ~/.config/emacs - cp -r ${doomemacsSrc}/. "$HOME/.config/emacs" - mkdir ~/.config/doom -p - chmod u+rw -R ~/.config/doom - cp -r ${personalDoomConfSrc}/. "$HOME/.config/doom" - ''; - sessionVariables = { TERMINAL = "alacritty"; }; diff --git a/home-mods/shell/default.nix b/home-mods/shell/default.nix new file mode 100644 index 0000000..25881d1 --- /dev/null +++ b/home-mods/shell/default.nix @@ -0,0 +1,133 @@ +{ config, pkgs, lib, ... }: + +let + doomemacsSrc = builtins.fetchGit { + url = "https://github.com/doomemacs/doomemacs"; + ref = "master"; + rev = "986398504d09e585c7d1a8d73a6394024fe6f164"; + }; + + personalDoomConfSrc = builtins.fetchGit { + url = "https://git.vlt81.de/tristan/doom"; + ref = "main"; + rev = "c6558ab65f106628a3bdb890df935bb7965edd95"; + }; +in +{ + programs = { + starship = { + enable = true; + package = pkgs.unstable-pkgs.starship; + }; + + fish = { + enable = true; + package = pkgs.unstable-pkgs.fish; + + interactiveShellInit = '' + any-nix-shell fish --info-right | source + direnv hook fish | source + ''; + loginShellInit = '' + direnv hook fish | source + ''; + + functions = { + ec = "emacsclient $argv"; + ecc = "emacsclient -c $argv"; + ecr = "emacsclient -r $argv"; + ecrr = "emacsclient -r $argv"; + }; + }; + + git = { + enable = true; + userName = "Tristan Druyen"; + userEmail = "tristan@vault81.de"; + aliases = { + ci = "commit"; + co = "checkout"; + s = "status"; + }; + extraConfig = { + user.signingkey = "${config.home.homeDirectory}/.ssh/id_ed25519"; + commit.gpgsign = true; + gpg.format = "ssh"; + }; + package = pkgs.unstable-pkgs.git; + }; + + nix-index = { + enable = true; + enableFishIntegration = true; + }; + + ssh = { + enable = true; + package = pkgs.unstable-pkgs.openssh; + + matchBlocks = { + "he3" = { + host = "he3"; + hostname = "he3.vault81.de"; + user = "root"; + identityFile = "~/.ssh/id_hetz_ed25519"; + }; + "he2" = { + host = "he2"; + hostname = "he2.vault81.de"; + user = "root"; + identityFile = "~/.ssh/id_v81_ed25519"; + }; + "desk-arch" = { + host = "desk-arch"; + hostname = "tristan-desk-arch"; + user = "tristand"; + identityFile = "~/.ssh/id_v81_ed25519"; + }; + }; + }; + + gpg = { + enable = true; + + package = pkgs.unstable-pkgs.gnupg; + }; + }; + + + services = { + gpg-agent = { + enable = true; + + enableExtraSocket = true; + enableSshSupport = true; + }; + lorri.enable = true; + + emacs = { + enable = true; + defaultEditor = true; + package = lib.mkDefault pkgs.unstable-pkgs.emacs-unstable; + }; + }; + + + home = { + activation.installDoomEmacs = lib.hm.dag.entryAfter [ "writeBoundary" ] '' + mkdir ~/.config/emacs -p + chmod u+rw -R ~/.config/emacs + cp -r ${doomemacsSrc}/. "$HOME/.config/emacs" + mkdir ~/.config/doom -p + chmod u+rw -R ~/.config/doom + cp -r ${personalDoomConfSrc}/. "$HOME/.config/doom" + ''; + + packages = with pkgs.unstable-pkgs; [ + btop + imagemagick + rust-motd + zellij + ]; + }; +} diff --git a/users/default.nix b/users/default.nix index df92a76..49c30a5 100644 --- a/users/default.nix +++ b/users/default.nix @@ -2,6 +2,7 @@ , config , inputs , system +, lib , ... }: { users.users.tester = { @@ -29,12 +30,14 @@ inherit config; inherit inputs; inherit system; + inherit lib; }; users.tristand = import ./tristand.nix { inherit pkgs; inherit config; inherit inputs; inherit system; + inherit lib; }; }; } diff --git a/users/tristand.nix b/users/tristand.nix index f6e9485..bf26398 100644 --- a/users/tristand.nix +++ b/users/tristand.nix @@ -2,49 +2,36 @@ , config , inputs , system +, lib , ... }: + let - wallpaper = inputs.nix-wallpaper.packages.${pkgs.system}.default.override { - logoSize = 24; - preset = "gruvbox-dark-rainbow"; + desktop = import ../home-mods/desktop { + inherit pkgs; + inherit config; + inherit inputs; }; - wallpaperPath = "${wallpaper}/share/wallpapers/nixos-wallpaper.png"; in { imports = [ + ../home-mods/common + # ../home-mods/desktop ../home-mods/dev ../home-mods/firefox ../home-mods/plasma ../home-mods/virt + ../home-mods/shell ]; - home = { - file.".background".source = wallpaperPath; - username = "tristand"; - homeDirectory = "/home/tristand"; + config = pkgs.lib.mkMerge [ + { + home = { + username = "tristand"; - packages = with pkgs.unstable-pkgs; [ - bitwarden - brave - btop - cavalier - freetube - imagemagick - inkscape - jellyfin-media-player - kate - neofetch - nextcloud-client - onlyoffice-bin - rust-motd - rustdesk - tutanota-desktop - signal-desktop - thunderbird - zellij - ]; - - stateVersion = "23.05"; - }; + stateVersion = "23.05"; + }; + } + desktop + ]; }