From 384da2a64020b731d470faf5d6f08cc22df89730 Mon Sep 17 00:00:00 2001 From: Oliver Davies Date: Sat, 16 Mar 2024 22:12:53 +0000 Subject: [PATCH] Make configuration more modular --- lib/nixos/home-manager/desktop.nix | 35 +++------------ lib/nixos/home-manager/modules/copyq.nix | 3 ++ lib/nixos/home-manager/modules/dunst.nix | 11 +++++ lib/nixos/home-manager/modules/feh.nix | 3 ++ lib/nixos/home-manager/modules/flameshot.nix | 15 +++++++ lib/nixos/home-manager/modules/rofi.nix | 3 ++ lib/shared/home-manager-packages.nix | 1 - lib/shared/home-manager.nix | 47 ++++---------------- lib/shared/modules/bat.nix | 3 ++ lib/shared/modules/bin.nix | 8 ++++ lib/shared/modules/direnv.nix | 7 +++ lib/shared/modules/fzf.nix | 6 +++ lib/shared/modules/lsd.nix | 3 ++ lib/shared/modules/nnn.nix | 3 ++ lib/shared/modules/phpactor.nix | 6 +++ lib/shared/modules/ripgrep.nix | 8 ++++ lib/shared/modules/tmux.nix | 7 ++- 17 files changed, 97 insertions(+), 72 deletions(-) create mode 100644 lib/nixos/home-manager/modules/copyq.nix create mode 100644 lib/nixos/home-manager/modules/dunst.nix create mode 100644 lib/nixos/home-manager/modules/feh.nix create mode 100644 lib/nixos/home-manager/modules/flameshot.nix create mode 100644 lib/nixos/home-manager/modules/rofi.nix create mode 100644 lib/shared/modules/bat.nix create mode 100644 lib/shared/modules/bin.nix create mode 100644 lib/shared/modules/direnv.nix create mode 100644 lib/shared/modules/fzf.nix create mode 100644 lib/shared/modules/lsd.nix create mode 100644 lib/shared/modules/nnn.nix create mode 100644 lib/shared/modules/phpactor.nix create mode 100644 lib/shared/modules/ripgrep.nix diff --git a/lib/nixos/home-manager/desktop.nix b/lib/nixos/home-manager/desktop.nix index edca5884..63d5efb1 100644 --- a/lib/nixos/home-manager/desktop.nix +++ b/lib/nixos/home-manager/desktop.nix @@ -7,37 +7,12 @@ imports = [ ./modules/alacritty.nix ./modules/autorandr.nix + ./modules/copyq.nix + ./modules/dunst.nix ./modules/espanso.nix + ./modules/feh.nix + ./modules/flameshot.nix ./modules/i3.nix + ./modules/rofi.nix ]; - - services.dunst = { - enable = true; - - settings = { - global = { - follow = "keyboard"; - }; - }; - }; - - services.copyq.enable = true; - - services.flameshot = { - enable = true; - - settings = { - General = { - disabledTrayIcon = false; - saveAfterCopy = true; - savePath = "/home/${username}/Pictures/Screenshots"; - showHelp = false; - uiColor = "#60a5fa"; - }; - }; - }; - - programs.feh.enable = true; - - programs.rofi.enable = true; } diff --git a/lib/nixos/home-manager/modules/copyq.nix b/lib/nixos/home-manager/modules/copyq.nix new file mode 100644 index 00000000..cb19784e --- /dev/null +++ b/lib/nixos/home-manager/modules/copyq.nix @@ -0,0 +1,3 @@ +{ + services.copyq.enable = true; +} diff --git a/lib/nixos/home-manager/modules/dunst.nix b/lib/nixos/home-manager/modules/dunst.nix new file mode 100644 index 00000000..27792de2 --- /dev/null +++ b/lib/nixos/home-manager/modules/dunst.nix @@ -0,0 +1,11 @@ +{ + services.dunst = { + enable = true; + + settings = { + global = { + follow = "keyboard"; + }; + }; + }; +} diff --git a/lib/nixos/home-manager/modules/feh.nix b/lib/nixos/home-manager/modules/feh.nix new file mode 100644 index 00000000..3191f654 --- /dev/null +++ b/lib/nixos/home-manager/modules/feh.nix @@ -0,0 +1,3 @@ +{ + programs.feh.enable = true; +} diff --git a/lib/nixos/home-manager/modules/flameshot.nix b/lib/nixos/home-manager/modules/flameshot.nix new file mode 100644 index 00000000..8507ec31 --- /dev/null +++ b/lib/nixos/home-manager/modules/flameshot.nix @@ -0,0 +1,15 @@ +{username, ...}: { + services.flameshot = { + enable = true; + + settings = { + General = { + disabledTrayIcon = false; + saveAfterCopy = true; + savePath = "/home/${username}/Pictures/Screenshots"; + showHelp = false; + uiColor = "#60a5fa"; + }; + }; + }; +} diff --git a/lib/nixos/home-manager/modules/rofi.nix b/lib/nixos/home-manager/modules/rofi.nix new file mode 100644 index 00000000..214fcff7 --- /dev/null +++ b/lib/nixos/home-manager/modules/rofi.nix @@ -0,0 +1,3 @@ +{ + programs.rofi.enable = true; +} diff --git a/lib/shared/home-manager-packages.nix b/lib/shared/home-manager-packages.nix index c2c10592..37aeb2a2 100644 --- a/lib/shared/home-manager-packages.nix +++ b/lib/shared/home-manager-packages.nix @@ -28,7 +28,6 @@ with pkgs; [ php82 php82Packages.composer pv - ripgrep rustywind tldr tree diff --git a/lib/shared/home-manager.nix b/lib/shared/home-manager.nix index 1677d682..1c38e787 100644 --- a/lib/shared/home-manager.nix +++ b/lib/shared/home-manager.nix @@ -13,48 +13,17 @@ imports = [ (import ./modules/neovim.nix {inherit inputs;}) + ./modules/bat.nix + ./modules/bin.nix + ./modules/direnv.nix + ./modules/fzf.nix ./modules/git.nix + ./modules/lsd.nix + ./modules/nnn.nix + ./modules/phpactor.nix + ./modules/ripgrep.nix ./modules/starship.nix ./modules/tmux.nix ./modules/zsh.nix ]; - - programs.fzf = { - enable = true; - enableZshIntegration = true; - }; - - programs.bat.enable = true; - - home.file."logo.txt" = { - source = pkgs.copyPathToStore "${self}/logo.txt"; - target = "logo.txt"; - }; - - programs.lsd.enable = true; - - programs.nnn.enable = true; - - programs.direnv = { - enable = true; - enableZshIntegration = true; - nix-direnv.enable = true; - }; - - home.sessionPath = ["$HOME/.config/bin"]; - - xdg.configFile."ripgrep/config".text = '' - --follow - --smart-case - ''; - - xdg.configFile.bin = { - source = ../../bin; - recursive = true; - }; - - xdg.configFile.phpactor = { - source = ../../config/phpactor; - recursive = true; - }; } diff --git a/lib/shared/modules/bat.nix b/lib/shared/modules/bat.nix new file mode 100644 index 00000000..79ffa2d0 --- /dev/null +++ b/lib/shared/modules/bat.nix @@ -0,0 +1,3 @@ +{ + programs.bat.enable = true; +} diff --git a/lib/shared/modules/bin.nix b/lib/shared/modules/bin.nix new file mode 100644 index 00000000..c3ed1aff --- /dev/null +++ b/lib/shared/modules/bin.nix @@ -0,0 +1,8 @@ +{ + home.sessionPath = ["$HOME/.config/bin"]; + + xdg.configFile.bin = { + source = ../../../bin; + recursive = true; + }; +} diff --git a/lib/shared/modules/direnv.nix b/lib/shared/modules/direnv.nix new file mode 100644 index 00000000..fb7dffcb --- /dev/null +++ b/lib/shared/modules/direnv.nix @@ -0,0 +1,7 @@ +{ + programs.direnv = { + enable = true; + enableZshIntegration = true; + nix-direnv.enable = true; + }; +} diff --git a/lib/shared/modules/fzf.nix b/lib/shared/modules/fzf.nix new file mode 100644 index 00000000..983fc8dc --- /dev/null +++ b/lib/shared/modules/fzf.nix @@ -0,0 +1,6 @@ +{ + programs.fzf = { + enable = true; + enableZshIntegration = true; + }; +} diff --git a/lib/shared/modules/lsd.nix b/lib/shared/modules/lsd.nix new file mode 100644 index 00000000..9d0488e9 --- /dev/null +++ b/lib/shared/modules/lsd.nix @@ -0,0 +1,3 @@ +{ + programs.lsd.enable = true; +} diff --git a/lib/shared/modules/nnn.nix b/lib/shared/modules/nnn.nix new file mode 100644 index 00000000..003bc185 --- /dev/null +++ b/lib/shared/modules/nnn.nix @@ -0,0 +1,3 @@ +{ + programs.nnn.enable = true; +} diff --git a/lib/shared/modules/phpactor.nix b/lib/shared/modules/phpactor.nix new file mode 100644 index 00000000..07b63161 --- /dev/null +++ b/lib/shared/modules/phpactor.nix @@ -0,0 +1,6 @@ +{ + xdg.configFile.phpactor = { + source = ../../../config/phpactor; + recursive = true; + }; +} diff --git a/lib/shared/modules/ripgrep.nix b/lib/shared/modules/ripgrep.nix new file mode 100644 index 00000000..c739b711 --- /dev/null +++ b/lib/shared/modules/ripgrep.nix @@ -0,0 +1,8 @@ +{pkgs, ...}: { + home.packages = with pkgs; [ripgrep]; + + xdg.configFile."ripgrep/config".text = '' + --follow + --smart-case + ''; +} diff --git a/lib/shared/modules/tmux.nix b/lib/shared/modules/tmux.nix index 10e65a12..bbc2c87c 100644 --- a/lib/shared/modules/tmux.nix +++ b/lib/shared/modules/tmux.nix @@ -1,6 +1,9 @@ -{pkgs, ...}: { +{pkgs, ...}: let + inherit (pkgs) tmuxPlugins; +in { programs.tmux = { enable = true; + terminal = "tmux-256color"; extraConfig = '' @@ -99,7 +102,7 @@ set -g @resurrect-strategy-nvim 'session' ''; - plugins = with pkgs; [ + plugins = [ tmuxPlugins.resurrect tmuxPlugins.vim-tmux-navigator tmuxPlugins.yank