feat: create initial home manager modules

This commit is contained in:
2026-03-07 16:24:51 +01:00
parent 0f52308b95
commit 48a68d0130
4 changed files with 158 additions and 0 deletions

View File

@@ -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;
};
}

View File

@@ -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;
};
};
}

View File

@@ -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 ]}"
];
};
};
}

View File

@@ -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
];
};
}