restructurisation of my dotfiles, zenith and leanix created

This commit is contained in:
foglar 2024-12-15 11:32:27 +01:00
parent 8abf05e663
commit f4bc3dd7e8
49 changed files with 276 additions and 188 deletions

View File

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -69,7 +69,7 @@
}; };
modules = [ modules = [
./nixos/configuration.nix ./zenith/configuration.nix
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
inputs.nix-ld.nixosModules.nix-ld inputs.nix-ld.nixosModules.nix-ld

View File

@ -14,6 +14,7 @@
nix.settings.experimental-features = ["nix-command" "flakes"]; nix.settings.experimental-features = ["nix-command" "flakes"];
# Home manager
home-manager = { home-manager = {
extraSpecialArgs = {inherit inputs pkgs pkgs-stable username;}; extraSpecialArgs = {inherit inputs pkgs pkgs-stable username;};
backupFileExtension = "backup"; backupFileExtension = "backup";
@ -22,27 +23,31 @@
}; };
}; };
# Bootloader # User configuration
boot.loader.systemd-boot.enable = true;
environment.sessionVariables = {
FLAKE = "/home/${username}/.dotfiles";
DEFAULT_BROWSER = "${pkgs.firefox}/bin/firefox";
};
users.users.${username} = { users.users.${username} = {
isNormalUser = true; isNormalUser = true;
description = "${username}"; description = "${username}";
extraGroups = ["wheel"]; extraGroups = ["wheel"];
}; };
# Bootloader
boot.loader.systemd-boot.enable = true;
# Environment variables
environment.sessionVariables = {
FLAKE = "/home/${username}/.dotfiles";
DEFAULT_BROWSER = "${pkgs.firefox}/bin/firefox";
};
# System level configuration
sys = { sys = {
audio.enable = true; audio.enable = true;
desktop = { desktop = {
plasma.enable = false; plasma.enable = false;
gnome.enable = true; gnome.enable = true;
hyprland.enable = false; hyprland.enable = false;
steamdeck.enable = false;
}; };
fonts.packages = true; fonts.packages = true;
locales.enable = true; locales.enable = true;
@ -52,7 +57,7 @@
blueman.enable = false; blueman.enable = false;
}; };
nvidia.enable = false; nvidia.enable = false;
printing.enable = false; printing.enable = true;
login = { login = {
sddm.enable = false; sddm.enable = false;
gdm.enable = true; gdm.enable = true;
@ -60,7 +65,8 @@
style.enable = true; style.enable = true;
}; };
package = { # Configured programs to enable
program = {
docker.enable = false; docker.enable = false;
podman.enable = true; podman.enable = true;
steam.enable = false; steam.enable = false;
@ -68,7 +74,8 @@
tor.enable = false; tor.enable = false;
virt-manager.enable = false; virt-manager.enable = false;
}; };
desktop.steamdeck.enable = false;
# Basic programs to enable
programs.kdeconnect.enable = true; programs.kdeconnect.enable = true;
programs.wireshark.enable = false; programs.wireshark.enable = false;

View File

@ -3,24 +3,34 @@
username, username,
... ...
}: { }: {
# Home manager configuration
home.username = "${username}"; home.username = "${username}";
home.homeDirectory = "/home/${username}"; home.homeDirectory = "/home/${username}";
home.stateVersion = "24.11"; # Please read the comment before changing. home.stateVersion = "24.11"; # Please read the comment before changing.
imports = [ imports = [
../nixos/packages/packages.nix ../nixos/home/packages/packages.nix
../nixos/desktop/gnome/gnome.nix ../nixos/home/desktop/gnome/gnome.nix
]; ];
# Desktop management
desktop.gnome.enable = true; desktop.gnome.enable = true;
group = { # Shell management
sh.bash = {
enable = true;
oh-my-posh.enable = false;
};
# Application lists
app_list = {
hacking.enable = false; hacking.enable = false;
applications.enable = false; applications.enable = false;
terminal_tools.enable = true; terminal_tools.enable = false;
programming.enable = false; programming.enable = false;
}; };
# Configured programs to enable
program = { program = {
kitty.enable = false; kitty.enable = false;
tmux.enable = false; tmux.enable = false;
@ -32,17 +42,14 @@
spotify.enable = false; spotify.enable = false;
}; };
sh.bash = { # Basic programs to enable
enable = true;
oh-my-posh.enable = false;
};
programs = { programs = {
bat.enable = false; bat.enable = false;
btop.enable = false; btop.enable = false;
fzf.enable = false; fzf.enable = false;
}; };
# Packages
home.packages = with pkgs-stable; [ home.packages = with pkgs-stable; [
libreoffice libreoffice
inkscape inkscape

View File

@ -1,33 +0,0 @@
{username, ...}: {
home.username = "${username}";
home.homeDirectory = "/home/${username}";
home.stateVersion = "24.05"; # Please read the comment before changing.
imports = [
./packages/packages.nix
./desktop/desktops.nix
];
desktop.hyprland.enable = true;
desktop.kde.enable = true;
group.programming.enable = true;
group.games.enable = true;
gtk.enable = true;
home.file = {
".config/hypr/hyprlock.conf".source = ../config/hyprlock.conf;
".config/hypr/mocha.conf".source = ../config/mocha.conf;
".config/hypr/hypridle.conf".source = ../config/hypridle.conf;
#".config/dolphinrc".source = ../config/dolphinrc;
".prettierrc".text = ''
{
"tabWidth": 4,
"useTabs": true
}
'';
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View File

@ -6,10 +6,10 @@
... ...
}: { }: {
options = { options = {
group.applications.enable = lib.mkEnableOption "Enable graphical applications"; app_list.applications.enable = lib.mkEnableOption "Enable graphical applications";
}; };
config = lib.mkIf config.group.applications.enable { config = lib.mkIf config.app_list.applications.enable {
home.packages = home.packages =
(with pkgs; [ (with pkgs; [
librewolf librewolf

View File

@ -5,10 +5,10 @@
... ...
}: { }: {
options = { options = {
group.games.enable = app_list.games.enable =
lib.mkEnableOption "enables games"; lib.mkEnableOption "enable games";
}; };
config = lib.mkIf config.group.games.enable { config = lib.mkIf config.app_list.games.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
vitetris vitetris
steam steam

View File

@ -5,10 +5,10 @@
... ...
}: { }: {
options = { options = {
group.hacking.enable = lib.mkEnableOption "enable Hacking module"; app_list.hacking.enable = lib.mkEnableOption "enable Hacking module";
}; };
config = lib.mkIf config.group.hacking.enable { config = lib.mkIf config.app_list.hacking.enable {
home.packages = with pkgs; [ home.packages = with pkgs; [
ffuf ffuf
wireshark wireshark

View File

@ -5,21 +5,11 @@
... ...
}: { }: {
options = { options = {
group.programming.enable = app_list.programming.enable =
lib.mkEnableOption "enable programming toolset"; lib.mkEnableOption "enable programming toolset";
}; };
imports = [ config = lib.mkIf config.app_list.programming.enable {
./code.nix
./git.nix
./neovim.nix
];
config = lib.mkIf config.group.programming.enable {
program.vscode.enable = lib.mkDefault true;
program.git.enable = lib.mkDefault true;
program.neovim.enable = lib.mkDefault true;
home.packages = with pkgs; [ home.packages = with pkgs; [
arduino-ide arduino-ide
distrobox distrobox

View File

@ -0,0 +1,34 @@
{
pkgs,
lib,
config,
...
}: {
options = {
app_list.terminal_tools.enable =
lib.mkEnableOption "Enable terminal tools applist";
};
config = lib.mkIf config.app_list.terminal_tools.enable {
home.packages = with pkgs; [
pfetch
bat
btop
cmatrix
entr
figlet
jp2a
yt-dlp
eza
nvtopPackages.full
neofetch
wget
curl
fzf
tldr
ranger
unzip
];
};
}

View File

@ -10,13 +10,11 @@
}; };
config = lib.mkIf config.desktop.gnome.enable { config = lib.mkIf config.desktop.gnome.enable {
home.packages = with pkgs.gnomeExtensions; [ home.packages = with pkgs.gnomeExtensions; [
blur-my-shell blur-my-shell
gsconnect gsconnect
appindicator appindicator
privacy-settings-menu privacy-settings-menu
]; ];
dconf = { dconf = {

View File

@ -72,7 +72,7 @@
(writeShellScriptBin "keyboardswitch" '' (writeShellScriptBin "keyboardswitch" ''
hyprctl switchxkblayout all next hyprctl switchxkblayout all next
layMain=$(hyprctl -j devices | jq '.keyboards' | jq '.[] | select (.main == true)' | awk -F '"' '{if ($2=="active_keymap") print $4}') layMain=$(hyprctl -j devices | jq '.keyboards' | jq '.[] | select (.main == true)' | awk -F '"' '{if ($2=="active_keymap") print $4}')
${libnotify}/bin/notify-send -a "t1" -r 91190 -t 800 "$layMain" -i ~/dotfiles/config/keyboard.svg ${libnotify}/bin/notify-send -a "t1" -r 91190 -t 800 "$layMain" -i ~/dotfiles/config/icons/keyboard.svg
'') '')
#(writeShellScriptBin "windowpin") #(writeShellScriptBin "windowpin")

View File

@ -4,16 +4,45 @@
... ...
}: { }: {
imports = [ imports = [
./programming/programming.nix ./programming/code.nix
./hacking/hacking.nix ./programming/git.nix
./games.nix ./programming/neovim.nix
./terminal_tools.nix
./applications.nix ../apps/hacking.nix
../apps/games.nix
../apps/applications.nix
../apps/terminal_tools.nix
../apps/programming.nix
./applications/firefox.nix ./applications/firefox.nix
./applications/spotify.nix ./applications/spotify.nix
./tools/oh-my-posh.nix
./tools/shell.nix
./tools/kitty.nix
./tools/tmux.nix
./tools/zoxide.nix
]; ];
group = { sh.bash = {
enable = lib.mkDefault true;
oh-my-posh.enable = lib.mkDefault true;
};
program = {
kitty.enable = lib.mkDefault true;
tmux.enable = lib.mkDefault true;
zoxide.enable = lib.mkDefault true;
firefox.enable = lib.mkDefault true;
spotify.enable = lib.mkDefault true;
vscode.enable = lib.mkDefault true;
git.enable = lib.mkDefault true;
neovim.enable = lib.mkDefault true;
};
app_list = {
terminal_tools.enable = lib.mkDefault true; terminal_tools.enable = lib.mkDefault true;
programming.enable = lib.mkDefault true; programming.enable = lib.mkDefault true;
games.enable = lib.mkDefault false; games.enable = lib.mkDefault false;
@ -21,8 +50,18 @@
hacking.enable = lib.mkDefault true; hacking.enable = lib.mkDefault true;
}; };
program.firefox.enable = lib.mkDefault true; programs = {
program.spotify.enable = lib.mkDefault true; bat.enable = lib.mkDefault true;
btop.enable = lib.mkDefault true;
fzf.enable = lib.mkDefault true;
};
stylix.targets = {
bat.enable = lib.mkDefault true;
btop.enable = lib.mkDefault true;
fzf.enable = lib.mkDefault true;
neovim.enable = lib.mkDefault true;
};
home.packages = with pkgs; [ home.packages = with pkgs; [
alejandra alejandra

View File

@ -1,6 +1,7 @@
{ {
lib, lib,
config, config,
pkgs,
... ...
}: { }: {
options = { options = {
@ -15,5 +16,9 @@
"--cmd cd" "--cmd cd"
]; ];
}; };
home.packages= with pkgs; [
zoxide
];
}; };
} }

View File

@ -1,67 +0,0 @@
{
pkgs,
lib,
config,
...
}: {
options = {
group.terminal_tools.enable =
lib.mkEnableOption "enable terminal tools module";
};
imports = [
./tools/oh-my-posh.nix
./tools/shell.nix
./tools/kitty.nix
./tools/tmux.nix
./tools/zoxide.nix
];
config = lib.mkIf config.group.terminal_tools.enable {
sh.bash = {
enable = lib.mkDefault true;
oh-my-posh.enable = lib.mkDefault true;
};
program = {
kitty.enable = lib.mkDefault true;
tmux.enable = lib.mkDefault true;
zoxide.enable = lib.mkDefault true;
};
programs = {
bat.enable = lib.mkDefault true;
btop.enable = lib.mkDefault true;
fzf.enable = lib.mkDefault true;
};
stylix.targets = {
bat.enable = true;
btop.enable = true;
fzf.enable = true;
neovim.enable = true;
};
home.packages = with pkgs; [
pfetch
zoxide
bat
btop
cmatrix
entr
figlet
jp2a
yt-dlp
eza
nvtopPackages.full
neofetch
wget
curl
fzf
tldr
ranger
unzip
];
};
}

View File

@ -7,7 +7,7 @@
./packages/virtual-machines.nix ./packages/virtual-machines.nix
]; ];
package = { program = {
docker.enable = lib.mkDefault false; docker.enable = lib.mkDefault false;
podman.enable = lib.mkDefault true; podman.enable = lib.mkDefault true;
steam.enable = lib.mkDefault true; steam.enable = lib.mkDefault true;
@ -15,7 +15,7 @@
tor.enable = lib.mkDefault true; tor.enable = lib.mkDefault true;
virt-manager.enable = lib.mkDefault true; virt-manager.enable = lib.mkDefault true;
}; };
desktop.steamdeck.enable = lib.mkDefault false; sys.desktop.steamdeck.enable = lib.mkDefault false;
programs.kdeconnect.enable = lib.mkDefault true; programs.kdeconnect.enable = lib.mkDefault true;
programs.wireshark.enable = lib.mkDefault true; programs.wireshark.enable = lib.mkDefault true;
} }

View File

@ -5,10 +5,10 @@
... ...
}: { }: {
options = { options = {
package.docker.enable = lib.mkEnableOption "Enable Docker"; program.docker.enable = lib.mkEnableOption "Enable Docker";
}; };
config = lib.mkIf config.package.docker.enable { config = lib.mkIf config.program.docker.enable {
virtualisation.docker = { virtualisation.docker = {
enable = true; enable = true;
rootless = { rootless = {

View File

@ -5,10 +5,10 @@
... ...
}: { }: {
options = { options = {
package.podman.enable = lib.mkEnableOption "Enable Podman"; program.podman.enable = lib.mkEnableOption "Enable Podman";
}; };
config = lib.mkIf config.package.podman.enable { config = lib.mkIf config.program.podman.enable {
virtualisation.containers.enable = true; virtualisation.containers.enable = true;
virtualisation = { virtualisation = {
podman = { podman = {

View File

@ -6,12 +6,12 @@
... ...
}: { }: {
options = { options = {
package.steam.enable = lib.mkEnableOption "Enable Steam module"; program.steam.enable = lib.mkEnableOption "Enable Steam module";
desktop.steamdeck.enable = lib.mkEnableOption "Enable Steam desktop integration"; sys.desktop.steamdeck.enable = lib.mkEnableOption "Enable Steam desktop integration";
}; };
config = lib.mkMerge [ config = lib.mkMerge [
(lib.mkIf config.package.steam.enable { (lib.mkIf config.program.steam.enable {
programs.steam = { programs.steam = {
enable = true; enable = true;
gamescopeSession.enable = true; gamescopeSession.enable = true;
@ -20,7 +20,7 @@
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
}; };
}) })
(lib.mkIf config.desktop.steamdeck.enable { (lib.mkIf config.sys.desktop.steamdeck.enable {
services.getty.autologinUser = "${username}"; services.getty.autologinUser = "${username}";
environment = { environment = {
systemPackages = [pkgs.mangohud]; systemPackages = [pkgs.mangohud];

View File

@ -4,18 +4,18 @@
... ...
}: { }: {
options = { options = {
package.tor.enable = lib.mkEnableOption "Enable Tor"; program.tor.enable = lib.mkEnableOption "Enable Tor";
package.proxychains.enable = lib.mkEnableOption "Enable Proxychains"; program.proxychains.enable = lib.mkEnableOption "Enable Proxychains";
}; };
config = lib.mkMerge [ config = lib.mkMerge [
(lib.mkIf config.package.tor.enable { (lib.mkIf config.program.tor.enable {
services.tor = { services.tor = {
enable = true; enable = true;
}; };
services.tor.client.enable = true; services.tor.client.enable = true;
}) })
(lib.mkIf config.package.proxychains.enable { (lib.mkIf config.program.proxychains.enable {
programs.proxychains = { programs.proxychains = {
enable = true; enable = true;
chain.type = "dynamic"; chain.type = "dynamic";

View File

@ -4,9 +4,9 @@
... ...
}: { }: {
options = { options = {
package.virt-manager.enable = lib.mkEnableOption "Enable virt-manager"; program.virt-manager.enable = lib.mkEnableOption "Enable virt-manager";
}; };
config = lib.mkIf config.package.virt-manager.enable { config = lib.mkIf config.program.virt-manager.enable {
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true; programs.virt-manager.enable = true;
}; };

View File

@ -1,14 +1,14 @@
{lib, ...}: { {lib, ...}: {
imports = [ imports = [
./sys/audio.nix ./settings/audio.nix
./sys/desktops.nix ./settings/desktops.nix
./sys/fonts.nix ./settings/fonts.nix
./sys/locales.nix ./settings/locales.nix
./sys/network.nix ./settings/network.nix
./sys/nvidia.nix ./settings/nvidia.nix
./sys/printing.nix ./settings/printing.nix
./sys/loginManager.nix ./settings/loginManager.nix
./sys/style.nix ./settings/style.nix
]; ];
sys = { sys = {

View File

@ -7,14 +7,15 @@
}: { }: {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
./system/packages.nix ../nixos/system/packages.nix
./system/system.nix ../nixos/system/system.nix
inputs.home-manager.nixosModules.home-manager inputs.home-manager.nixosModules.home-manager
]; ];
nix.settings.experimental-features = ["nix-command" "flakes"]; nix.settings.experimental-features = ["nix-command" "flakes"];
programs.nix-ld.dev.enable = true; programs.nix-ld.dev.enable = true;
# Home manager
home-manager = { home-manager = {
extraSpecialArgs = {inherit inputs pkgs pkgs-stable username;}; extraSpecialArgs = {inherit inputs pkgs pkgs-stable username;};
backupFileExtension = "backup"; backupFileExtension = "backup";
@ -24,21 +25,63 @@
sharedModules = [inputs.plasma-manager.homeManagerModules.plasma-manager]; sharedModules = [inputs.plasma-manager.homeManagerModules.plasma-manager];
}; };
# Bootloader. # User configuration
boot.loader.systemd-boot.enable = true;
environment.sessionVariables = {
FLAKE = "/home/${username}/dotfiles";
DEFAULT_BROWSER = "${pkgs.librewolf}/bin/librewolf";
};
users.users.${username} = { users.users.${username} = {
isNormalUser = true; isNormalUser = true;
description = "${username}"; description = "${username}";
extraGroups = ["wheel"]; extraGroups = ["wheel"];
}; };
# Bootloader
boot.loader.systemd-boot.enable = true;
# Environment variables
environment.sessionVariables = {
FLAKE = "/home/${username}/dotfiles";
DEFAULT_BROWSER = "${pkgs.librewolf}/bin/librewolf";
};
# System level configuration
sys = {
audio.enable = true;
desktop = {
plasma.enable = true;
gnome.enable = false;
hyprland.enable = true;
steamdeck.enable = true;
};
fonts.packages = true;
locales.enable = true;
network.enable = true;
bluetooth = {
enable = true;
blueman.enable = true;
};
nvidia.enable = true;
printing.enable = true;
login = {
sddm.enable = true;
gdm.enable = false;
};
style.enable = true;
};
# Configured programs to enable
program = {
docker.enable = false;
podman.enable = true;
steam.enable = true;
proxychains.enable = true;
tor.enable = true;
virt-manager.enable = true;
};
# Basic programs to enable
programs.kdeconnect.enable = true;
programs.wireshark.enable = true;
# Default applications configuration
xdg.mime.enable = true; xdg.mime.enable = true;
xdg.mime.defaultApplications = { xdg.mime.defaultApplications = {
"text/html" = "librewolf.desktop"; "text/html" = "librewolf.desktop";

65
zenith/home.nix Normal file
View File

@ -0,0 +1,65 @@
{username, ...}: {
# Home manager configuration
home.username = "${username}";
home.homeDirectory = "/home/${username}";
home.stateVersion = "24.05"; # Please read the comment before changing.
imports = [
../nixos/home/packages/packages.nix
../nixos/home/desktop/desktops.nix
];
# Desktop management
desktop.hyprland.enable = true;
desktop.kde.enable = true;
desktop.gnome.enable = false;
# Shell management
sh.bash = {
enable = true;
oh-my-posh.enable = true;
};
# Application lists
app_list = {
hacking.enable = true;
applications.enable = true;
terminal_tools.enable = true;
programming.enable = true;
games.enable = true;
};
# Configured programs to enable
program = {
kitty.enable = true;
tmux.enable = true;
zoxide.enable = true;
vscode.enable = true;
git.enable = true;
neovim.enable = true;
firefox.enable = true;
spotify.enable = true;
};
# Basic programs to enable
programs = {
bat.enable = true;
btop.enable = true;
fzf.enable = true;
};
home.file = {
".config/hypr/hyprlock.conf".source = ../config/hyprlock.conf;
".config/hypr/mocha.conf".source = ../config/mocha.conf;
".config/hypr/hypridle.conf".source = ../config/hypridle.conf;
#".config/dolphinrc".source = ../config/dolphinrc;
".prettierrc".text = ''
{
"tabWidth": 4,
"useTabs": true
}
'';
};
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}