home-manager: make the hm modules match the nixos ones

This commit is contained in:
Veneficium 2024-11-05 17:45:56 +01:00
parent 4fc501b1e2
commit 32a5ebf118
16 changed files with 256 additions and 98 deletions

View file

@ -1,7 +0,0 @@
{ ... }:
{
programs.bun = {
enable = true;
enableGitIntegration = true;
};
}

View file

@ -1,7 +1,13 @@
{ ... }: { config, lib, ... }:
{ {
options.settings.programs.fastfetch = {
enable = lib.mkEnableOption "enable fastfetch";
};
config = lib.mkIf config.settings.programs.fastfetch.enable {
programs.fastfetch = { programs.fastfetch = {
enable = true; enable = true;
settings = builtins.fromJSON (builtins.readFile ./config.jsonc); settings = builtins.fromJSON (builtins.readFile ./config.jsonc);
}; };
};
} }

View file

@ -1,5 +1,10 @@
{ ... }: { config, lib, ... }:
{ {
options.settings.programs.git = {
enable = lib.mkEnableOption "enable git";
};
config = lib.mkIf config.settings.programs.git.enable {
programs.git = { programs.git = {
enable = true; enable = true;
userEmail = "85629831+veneficium42@users.noreply.github.com"; userEmail = "85629831+veneficium42@users.noreply.github.com";
@ -9,4 +14,5 @@
credential.credentialStore = "gpg"; credential.credentialStore = "gpg";
}; };
}; };
};
} }

View file

@ -1,7 +1,13 @@
{ ... }: { config, lib, ... }:
{ {
options.settings.programs.hyfetch = {
enable = lib.mkEnableOption "enables hyfetch";
};
config = lib.mkIf config.settings.programs.hyfetch.enable {
programs.hyfetch = { programs.hyfetch = {
enable = true; enable = true;
#todo add hyfetch config #todo add hyfetch config
}; };
};
} }

View file

@ -1,5 +1,16 @@
{ pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}:
{
options.settings.programs.pass = {
enable = lib.mkEnableOption "enable pass";
};
config = lib.mkIf config.settings.programs.pass.enable {
programs.password-store = { programs.password-store = {
enable = true; enable = true;
package = pkgs.pass-wayland.withExtensions (exts: [ package = pkgs.pass-wayland.withExtensions (exts: [
@ -7,4 +18,5 @@
exts.pass-audit exts.pass-audit
]); ]);
}; };
};
} }

View file

@ -1,5 +1,10 @@
{ ... }: { config, lib, ... }:
{ {
options.settings.programs.starship = {
enable = lib.mkEnableOption "enable starship prompt";
};
config = lib.mkIf config.settings.programs.starship.enable {
programs.starship = { programs.starship = {
enable = true; enable = true;
#enableZshIntegration = true; #enableZshIntegration = true;
@ -8,4 +13,5 @@
settings = builtins.fromTOML (builtins.readFile ./starship.toml); settings = builtins.fromTOML (builtins.readFile ./starship.toml);
}; };
};
} }

View file

@ -0,0 +1,51 @@
{ lib, ... }:
{
imports = [
#./zsh.nix
./fish.nix
./niri.nix
./development/rust.nix
./development/bun.nix
./cliPrograms/pass.nix
./cliPrograms/hyfetch.nix
./cliPrograms/git.nix
./cliPrograms/starship/starship.nix
./cliPrograms/fastfetch/fastfetch.nix
./desktopPrograms/firefox.nix
./desktopPrograms/amberol.nix
./desktopPrograms/wezterm/wezterm.nix
./desktopPrograms/vscodium/vscodium.nix
];
settings = {
shell.fish.enable = lib.mkDefault true;
development = {
rust = {
enable = lib.mkDefault false;
enableVSCode = lib.mkDefault false;
};
bun.enable = lib.mkDefault false;
};
programs = {
firefox.enable = lib.mkDefault false;
amberol.enable = lib.mkDefault false;
wezterm.enable = lib.mkDefault false;
vscodium.enable = lib.mkDefault false;
pass.enable = lib.mkDefault true;
hyfetch.enable = lib.mkDefault false;
git.enable = lib.mkDefault true;
starship.enable = lib.mkDefault false;
fastfetch.enable = lib.mkDefault true;
};
};
}

View file

@ -1,4 +1,10 @@
{ ... }: { config, lib, ... }:
{ {
options.settings.programs.amberol = {
enable = lib.mkEnableOption "enable amberol music player";
};
config = lib.mkIf config.settings.programs.amberol.enable {
services.amberol.enable = true; services.amberol.enable = true;
};
} }

View file

@ -1,9 +1,20 @@
{ pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}:
{
options.settings.programs.firefox = {
enable = lib.mkEnableOption "enable firefox";
};
config = lib.mkIf config.settings.programs.firefox.enable {
#todo config #todo config
programs.firefox = { programs.firefox = {
enable = true; enable = true;
#todo make sure this on only if gnome is setup correctly #todo make sure this on only if gnome is setup correctly
nativeMessagingHosts = [ pkgs.gnome-browser-connector ]; nativeMessagingHosts = [ pkgs.gnome-browser-connector ];
}; };
};
} }

View file

@ -1,10 +1,20 @@
{ pkgs, ... }: {
config,
lib,
pkgs,
...
}:
{ {
#The VSCoderrrrrrrr #The VSCoderrrrrrrr
#codepilled nixmaxxer #codepilled nixmaxxer
#god I love tumblr #god I love tumblr
#tumblrpilled mememaxxer #tumblrpilled mememaxxer
options.settings.programs.vscodium = {
enable = lib.mkEnableOption "enable vscode for development";
};
config = lib.mkIf config.settings.programs.vscodium.enable {
programs.vscode = { programs.vscode = {
enable = true; enable = true;
package = pkgs.vscodium; package = pkgs.vscodium;
@ -34,4 +44,5 @@
userSettings = builtins.fromJSON (builtins.readFile ./settings.json); userSettings = builtins.fromJSON (builtins.readFile ./settings.json);
}; };
};
} }

View file

@ -1,8 +1,14 @@
{ ... }: { config, lib, ... }:
{ {
options.settings.programs.wezterm = {
enable = lib.mkEnableOption "enable wezterm terminal emulator";
};
config = lib.mkIf config.settings.programs.wezterm.enable {
programs.wezterm = { programs.wezterm = {
enable = true; enable = true;
#enableZshIntegration = true; #enableZshIntegration = true;
extraConfig = builtins.replaceStrings [ "-- nix-replace" ] [ "" ] (builtins.readFile ./wezterm.lua); extraConfig = builtins.replaceStrings [ "-- nix-replace" ] [ "" ] (builtins.readFile ./wezterm.lua);
}; };
};
} }

View file

@ -0,0 +1,13 @@
{ config, lib, ... }:
{
options.settings.development.bun = {
enable = lib.mkEnableOption "enable bun for js development";
};
config = lib.mkIf config.settings.development.bun.enable {
programs.bun = {
enable = true;
enableGitIntegration = true;
};
};
}

View file

@ -1,17 +1,30 @@
{ pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}:
{
options.settings.development.rust = {
enable = lib.mkEnableOption "enable rust toolchain and various dev tools";
enableVSCode = lib.mkEnableOption "enable VSCode extension for rust";
};
config = lib.mkIf config.settings.development.rust.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
cargo cargo
rustc rustc
rustfmt rustfmt
]; ];
programs.vscode.extensions = programs.vscode.extensions = lib.mkIf config.settings.development.rust.enableVSCode (
with pkgs.vscode-extensions; with pkgs.vscode-extensions;
[ [
rust-lang.rust-analyzer rust-lang.rust-analyzer
] ]
++ (with pkgs.open-vsx; [ ++ (with pkgs.open-vsx; [
tamasfe.even-better-toml tamasfe.even-better-toml
]); ])
);
};
} }

View file

@ -1,5 +1,15 @@
{ pkgs, ... }:
{ {
config,
lib,
pkgs,
...
}:
{
options.settings.shell.fish = {
enable = lib.mkEnableOption "enable fish shell";
};
config = lib.mkIf config.settings.shell.fish.enable {
programs.fish = { programs.fish = {
enable = true; enable = true;
plugins = [ plugins = [
@ -9,4 +19,5 @@
} }
]; ];
}; };
};
} }

View file

@ -1,4 +1,4 @@
{ ... }: { ... }:
{ {
programs.niri.config = ""; programs.niri.config = null;
} }

View file

@ -1,25 +1,32 @@
{ pkgs, ... }: { lib, pkgs, ... }:
{ {
imports = [ imports = [
#../../homeManagerModules/zsh.nix #../../homeManagerModules/zsh.nix
../../homeManagerModules/fish.nix ../../homeManagerModules/default.nix
../../homeManagerModules/development/rust.nix
../../homeManagerModules/desktopPrograms/firefox.nix
../../homeManagerModules/desktopPrograms/wezterm/wezterm.nix
../../homeManagerModules/desktopPrograms/vscodium/vscodium.nix
../../homeManagerModules/desktopPrograms/amberol.nix
../../homeManagerModules/cliPrograms/starship/starship.nix
../../homeManagerModules/cliPrograms/fastfetch/fastfetch.nix
../../homeManagerModules/cliPrograms/hyfetch.nix
../../homeManagerModules/cliPrograms/bun.nix
../../homeManagerModules/cliPrograms/git.nix
../../homeManagerModules/cliPrograms/pass.nix
]; ];
settings = {
development = {
rust = {
enable = lib.mkForce true;
enableVSCode = lib.mkForce true;
};
bun.enable = lib.mkForce true;
};
programs = {
firefox.enable = lib.mkForce true;
amberol.enable = lib.mkForce true;
wezterm.enable = lib.mkForce true;
vscodium.enable = lib.mkForce true;
starship.enable = lib.mkForce true;
hyfetch.enable = lib.mkForce true;
};
};
#todo: EditorConfig support ( https://editorconfig.org ) #todo: EditorConfig support ( https://editorconfig.org )
programs.gnome-shell = { programs.gnome-shell = {