diff --git a/flake.nix b/flake.nix index 7b9defaf..ef07cb99 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,8 @@ impermanence.url = "github:nix-community/impermanence"; + stylix.url = "github:danth/stylix"; + helix.url = "github:pascalkuthe/helix/inline-diagnostics"; }; @@ -28,6 +30,7 @@ impermanence, home-manager, sops-nix, + stylix, ... } @ inputs: let inherit (self) outputs; @@ -54,6 +57,7 @@ impermanence.nixosModule home-manager.nixosModule sops-nix.nixosModules.sops + stylix.nixosModules.stylix ]; }; in { diff --git a/home/alacritty.nix b/home/alacritty.nix new file mode 100644 index 00000000..360a32d2 --- /dev/null +++ b/home/alacritty.nix @@ -0,0 +1,20 @@ +{...}: { + programs.alacritty = { + enable = true; + settings = { + env.TERM = "xterm-256color"; + window = { + opacity = 0.8; + title = "Alacritty"; + dynamic_title = false; + }; + font = { + normal.family = "JetBrainsMono"; + bold.family = "JetBrainsMono"; + italic.family = "JetBrainsMono"; + bold_italic.family = "JetBrainsMono"; + size = 10; + }; + }; + }; +} diff --git a/home/clipman.nix b/home/clipman.nix new file mode 100644 index 00000000..8297193b --- /dev/null +++ b/home/clipman.nix @@ -0,0 +1,21 @@ +{pkgs, ...}: { + home.packages = [pkgs.clipman]; + + # https://github.com/nix-community/home-manager/blob/master/modules/services/clipman.nix + systemd.user.services.clipman = { + Unit = { + Description = "Clipboard management daemon"; + PartOf = ["graphical-session.target"]; + After = ["graphical-session.target"]; + }; + + Service = { + ExecStart = "${pkgs.wl-clipboard}/bin/wl-paste -t --watch ${pkgs.clipman}/bin/clipman store --max-items=500"; + ExecReload = "${pkgs.coreutils}/bin/kill -SIGUSR2 $MAINPID"; + Restart = "on-failure"; + KillMode = "mixed"; + }; + + Install.WantedBy = ["graphical-session.target"]; + }; +} diff --git a/home/common.nix b/home/common.nix new file mode 100644 index 00000000..59bd274f --- /dev/null +++ b/home/common.nix @@ -0,0 +1,10 @@ +{ + home.sessionPath = ["$HOME/.local/bin" "$HOME/.cargo/bin"]; + + home.sessionVariables = { + EDITOR = "hx"; + VISUAL = "hx"; + }; + + home.stateVersion = "24.11"; +} diff --git a/home/default.nix b/home/default.nix index b10ce86f..7e8b4657 100644 --- a/home/default.nix +++ b/home/default.nix @@ -1,4 +1,11 @@ { user = [ + ./alacritty.nix + ./clipman.nix + ./common.nix + ./direnv.nix + ./packages.nix + ./persist.nix + ./stylix.nix ]; } diff --git a/home/direnv.nix b/home/direnv.nix new file mode 100644 index 00000000..3a7b8add --- /dev/null +++ b/home/direnv.nix @@ -0,0 +1,6 @@ +{...}: { + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; +} diff --git a/home/dunst.nix b/home/dunst.nix new file mode 100644 index 00000000..29889929 --- /dev/null +++ b/home/dunst.nix @@ -0,0 +1,6 @@ +{...}: { + services.dunst = { + enable = true; + settings = {}; + }; +} diff --git a/home/fzf.nix b/home/fzf.nix new file mode 100644 index 00000000..8b48e866 --- /dev/null +++ b/home/fzf.nix @@ -0,0 +1,5 @@ +{...}: { + programs.fzf = { + enable = true; + }; +} diff --git a/home/git.nix b/home/git.nix new file mode 100644 index 00000000..ddab180f --- /dev/null +++ b/home/git.nix @@ -0,0 +1,16 @@ +{...}: { + programs.git = { + enable = true; + userName = "Lilith"; + userEmail = "ole@benstem.de"; + difftastic.enable = true; + signing = { + key = "3586D8D6689B9C9ECD598C588712A0F317C37175"; + signByDefault = true; + }; + extraConfig = { + diff.algorithm = "histogram"; + diff.submodule = "log"; + }; + }; +} diff --git a/home/gpg.nix b/home/gpg.nix new file mode 100644 index 00000000..a2b6db70 --- /dev/null +++ b/home/gpg.nix @@ -0,0 +1,14 @@ +{pkgs, ...}: { + programs.gpg = { + enable = true; + settings.trust-model = "tofu+pgp"; + }; + + services.gpg-agent = { + enable = true; + pinentryPackage = pkgs.pinentry; + enableSshSupport = true; + sshKeys = []; + enableExtraSocket = true; + }; +} diff --git a/home/packages.nix b/home/packages.nix new file mode 100644 index 00000000..2d459529 --- /dev/null +++ b/home/packages.nix @@ -0,0 +1,37 @@ +{ + conf, + pkgs, + lib, + ... +}: { + home.packages = let + common = with pkgs; [ + gcc + gnumake + git + + pulssemixer + pavucontrol + playerctl + nh + wl-clipboard + xdg-utls + hyprshot + + obsidian + xournalpp + vlc + keepassxc + ncspot + + btop + htop + ]; + + gaming = with pkgs; [ + prismlauncher + lutris + ]; + in + common ++ (lib.mkIf conf.gaming.enable gaming); +} diff --git a/home/stylix.nix b/home/stylix.nix new file mode 100644 index 00000000..6c7e9df6 --- /dev/null +++ b/home/stylix.nix @@ -0,0 +1,4 @@ +{...}: { + stylix.image = ../wallpapers/default.png; + stylix.polarity = "dark"; +} diff --git a/hosts/lilith-pad/configuration.nix b/hosts/lilith-pad/configuration.nix index a64892d7..057e4f10 100644 --- a/hosts/lilith-pad/configuration.nix +++ b/hosts/lilith-pad/configuration.nix @@ -1,3 +1,5 @@ -{...}: { +{conf, ...}: { imports = [../../system]; + + conf.gaming.enable = false; } diff --git a/system/wayland.nix b/system/wayland.nix index 390d11fe..caa24a8e 100644 --- a/system/wayland.nix +++ b/system/wayland.nix @@ -10,7 +10,7 @@ services.dbus.enable = true; environment.systemPackages = with pkgs; [ - xdg-dektop-portal-hyprland + xdg-desktop-portal-hyprland ]; xdg.portal = {