diff --git a/modules/home-manager/desktop.nix b/modules/home-manager/desktop.nix new file mode 100644 index 0000000..75f0256 --- /dev/null +++ b/modules/home-manager/desktop.nix @@ -0,0 +1,36 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}: +{ + options = { + desktop.enable = lib.mkEnableOption "desktop gui applications"; + }; + + config = lib.mkIf config.desktop.enable { + home.packages = with pkgs; [ + ghostty + google-chrome + zathura + pavucontrol + bolt-launcher + libnotify + bibata-cursors + vesktop + rocketchat-desktop + telegram-desktop + slack + jellyfin-media-player + cider-2 + protonmail-bridge + ledger-live-desktop + ]; + + services.dunst.enable = true; + + home.file.".assets".source = inputs.assets; + }; +} diff --git a/modules/home-manager/dev.nix b/modules/home-manager/dev.nix new file mode 100644 index 0000000..d08f66f --- /dev/null +++ b/modules/home-manager/dev.nix @@ -0,0 +1,37 @@ +{ + config, + lib, + pkgs, + inputs, + ... +}: +let + packages = inputs.self.outputs.packages.${pkgs.stdenv.hostPlatform.system}; +in +{ + options = { + dev.enable = lib.mkEnableOption "development tools"; + }; + + config = lib.mkIf config.dev.enable { + home.packages = [ + pkgs.git + packages.git-linearize + packages.ggman + pkgs.go + pkgs.python3 + pkgs.mdbook + pkgs.marksman + pkgs.mdformat + pkgs.google-cloud-sdk + pkgs.google-cloud-sql-proxy + packages.ahab + pkgs.just + ]; + + programs.direnv = { + enable = true; + nix-direnv.enable = true; + }; + }; +} diff --git a/modules/home-manager/neovim.nix b/modules/home-manager/neovim.nix new file mode 100644 index 0000000..39d9617 --- /dev/null +++ b/modules/home-manager/neovim.nix @@ -0,0 +1,59 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + options = { + neovim = { + enable = lib.mkEnableOption "neovim nightly with lsp support"; + package = lib.mkPackageOption pkgs "neovim" { }; + }; + }; + + config = lib.mkIf config.neovim.enable { + stylix.targets.neovim.enable = false; + programs.neovim = { + enable = true; + vimAlias = true; + defaultEditor = true; + inherit (config.neovim) package; + + extraPackages = with pkgs; [ + # runtime deps + gcc + luajit + nodejs_22 + tree-sitter + gnumake + osc + + # search and diff + fd + ripgrep + bat + delta + + # language servers + pyright + typescript-language-server + lua-language-server + gopls + nil + nixd + + # formatters + nixpkgs-fmt + stylua + ]; + + extraWrapperArgs = [ + "--suffix" + "LD_LIBRARY_PATH" + ":" + "${lib.makeLibraryPath [ pkgs.stdenv.cc.cc.lib ]}" + ]; + }; + }; +} diff --git a/modules/home-manager/shell.nix b/modules/home-manager/shell.nix new file mode 100644 index 0000000..5a4d4f7 --- /dev/null +++ b/modules/home-manager/shell.nix @@ -0,0 +1,26 @@ +{ + config, + lib, + pkgs, + ... +}: +{ + options = { + shell.enable = lib.mkEnableOption "shell utilities"; + }; + + config = lib.mkIf config.shell.enable { + home.packages = with pkgs; [ + starship + fzf + htop + jc + jq + openssl + pv + ripgrep + fd + tmux + ]; + }; +}