merge: home manager refactor
This commit is contained in:
36
modules/home-manager/desktop.nix
Normal file
36
modules/home-manager/desktop.nix
Normal 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;
|
||||||
|
};
|
||||||
|
}
|
||||||
37
modules/home-manager/dev.nix
Normal file
37
modules/home-manager/dev.nix
Normal 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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
59
modules/home-manager/neovim.nix
Normal file
59
modules/home-manager/neovim.nix
Normal 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 ]}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
26
modules/home-manager/shell.nix
Normal file
26
modules/home-manager/shell.nix
Normal 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
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,132 +1,25 @@
|
|||||||
{
|
{
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
pkgs,
|
||||||
inputs,
|
inputs,
|
||||||
|
osConfig,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
|
||||||
packages = inputs.self.outputs.packages.${pkgs.stdenv.hostPlatform.system};
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
{
|
||||||
|
home.stateVersion = "24.11";
|
||||||
|
|
||||||
|
# always-on
|
||||||
|
shell.enable = true;
|
||||||
|
dev.enable = true;
|
||||||
|
neovim = {
|
||||||
|
enable = true;
|
||||||
|
package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||||
|
};
|
||||||
claude = {
|
claude = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = inputs.claude-code-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
package = inputs.claude-code-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.stateVersion = "24.11";
|
# desktop-conditional
|
||||||
|
desktop.enable = osConfig.desktop.enable;
|
||||||
# TODO:(@janezicmatej) do i need this here?
|
|
||||||
services.dunst.enable = true;
|
|
||||||
|
|
||||||
home.packages = [
|
|
||||||
pkgs.bibata-cursors
|
|
||||||
|
|
||||||
pkgs.starship
|
|
||||||
|
|
||||||
# git and co
|
|
||||||
pkgs.git
|
|
||||||
packages.git-linearize
|
|
||||||
packages.ggman
|
|
||||||
|
|
||||||
# cli utils
|
|
||||||
packages.ahab
|
|
||||||
pkgs.fzf
|
|
||||||
pkgs.htop
|
|
||||||
pkgs.jc
|
|
||||||
pkgs.jq
|
|
||||||
pkgs.openssl
|
|
||||||
pkgs.pv
|
|
||||||
pkgs.python3
|
|
||||||
pkgs.ripgrep
|
|
||||||
pkgs.fd
|
|
||||||
pkgs.tmux
|
|
||||||
pkgs.osc
|
|
||||||
pkgs.just
|
|
||||||
|
|
||||||
# compilers, toolchains, ...
|
|
||||||
pkgs.go
|
|
||||||
# pkgs.gcc
|
|
||||||
# pkgs.clang
|
|
||||||
|
|
||||||
# need for gcp stuff
|
|
||||||
pkgs.google-cloud-sdk
|
|
||||||
pkgs.google-cloud-sql-proxy
|
|
||||||
|
|
||||||
# desktop apps
|
|
||||||
pkgs.vesktop
|
|
||||||
pkgs.rocketchat-desktop
|
|
||||||
pkgs.telegram-desktop
|
|
||||||
pkgs.slack
|
|
||||||
pkgs.ghostty
|
|
||||||
pkgs.google-chrome
|
|
||||||
pkgs.zathura
|
|
||||||
pkgs.pavucontrol
|
|
||||||
pkgs.jellyfin-media-player
|
|
||||||
pkgs.cider-2
|
|
||||||
pkgs.protonmail-bridge
|
|
||||||
pkgs.ledger-live-desktop
|
|
||||||
pkgs.bolt-launcher
|
|
||||||
pkgs.libnotify
|
|
||||||
|
|
||||||
# writing/docs
|
|
||||||
pkgs.mdbook
|
|
||||||
pkgs.marksman
|
|
||||||
pkgs.mdformat
|
|
||||||
|
|
||||||
# security
|
|
||||||
pkgs.gnupg
|
|
||||||
pkgs.pass
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file.".assets".source = inputs.assets;
|
|
||||||
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
stylix.targets.neovim.enable = false;
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
vimAlias = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
|
|
||||||
package = inputs.neovim-nightly-overlay.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
|
||||||
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
# runtime deps
|
|
||||||
gcc
|
|
||||||
luajit
|
|
||||||
nodejs_22 # copilot
|
|
||||||
|
|
||||||
tree-sitter
|
|
||||||
|
|
||||||
# lua_fzf
|
|
||||||
fd
|
|
||||||
ripgrep
|
|
||||||
bat
|
|
||||||
gnumake
|
|
||||||
delta
|
|
||||||
|
|
||||||
pyright
|
|
||||||
typescript-language-server
|
|
||||||
lua-language-server
|
|
||||||
gopls
|
|
||||||
nil
|
|
||||||
nixd
|
|
||||||
|
|
||||||
nixpkgs-fmt
|
|
||||||
stylua
|
|
||||||
];
|
|
||||||
|
|
||||||
extraWrapperArgs = [
|
|
||||||
"--suffix"
|
|
||||||
"LD_LIBRARY_PATH"
|
|
||||||
":"
|
|
||||||
"${lib.makeLibraryPath [ pkgs.stdenv.cc.cc.lib ]}"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user