feat: create initial home manager modules
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
|
||||
];
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user