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 = [
./nixos/configuration.nix
./zenith/configuration.nix
inputs.stylix.nixosModules.stylix
inputs.nix-ld.nixosModules.nix-ld

View File

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

View File

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

View File

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

View File

@ -5,10 +5,10 @@
...
}: {
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; [
ffuf
wireshark

View File

@ -5,21 +5,11 @@
...
}: {
options = {
group.programming.enable =
app_list.programming.enable =
lib.mkEnableOption "enable programming toolset";
};
imports = [
./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;
config = lib.mkIf config.app_list.programming.enable {
home.packages = with pkgs; [
arduino-ide
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 {
home.packages = with pkgs.gnomeExtensions; [
blur-my-shell
gsconnect
appindicator
privacy-settings-menu
];
dconf = {

View File

@ -72,7 +72,7 @@
(writeShellScriptBin "keyboardswitch" ''
hyprctl switchxkblayout all next
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")

View File

@ -4,16 +4,45 @@
...
}: {
imports = [
./programming/programming.nix
./hacking/hacking.nix
./games.nix
./terminal_tools.nix
./applications.nix
./programming/code.nix
./programming/git.nix
./programming/neovim.nix
../apps/hacking.nix
../apps/games.nix
../apps/applications.nix
../apps/terminal_tools.nix
../apps/programming.nix
./applications/firefox.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;
programming.enable = lib.mkDefault true;
games.enable = lib.mkDefault false;
@ -21,8 +50,18 @@
hacking.enable = lib.mkDefault true;
};
program.firefox.enable = lib.mkDefault true;
program.spotify.enable = lib.mkDefault true;
programs = {
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; [
alejandra

View File

@ -1,6 +1,7 @@
{
lib,
config,
pkgs,
...
}: {
options = {
@ -15,5 +16,9 @@
"--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
];
package = {
program = {
docker.enable = lib.mkDefault false;
podman.enable = lib.mkDefault true;
steam.enable = lib.mkDefault true;
@ -15,7 +15,7 @@
tor.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.wireshark.enable = lib.mkDefault true;
}

View File

@ -5,10 +5,10 @@
...
}: {
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 = {
enable = true;
rootless = {

View File

@ -5,10 +5,10 @@
...
}: {
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 = {
podman = {

View File

@ -6,12 +6,12 @@
...
}: {
options = {
package.steam.enable = lib.mkEnableOption "Enable Steam module";
desktop.steamdeck.enable = lib.mkEnableOption "Enable Steam desktop integration";
program.steam.enable = lib.mkEnableOption "Enable Steam module";
sys.desktop.steamdeck.enable = lib.mkEnableOption "Enable Steam desktop integration";
};
config = lib.mkMerge [
(lib.mkIf config.package.steam.enable {
(lib.mkIf config.program.steam.enable {
programs.steam = {
enable = true;
gamescopeSession.enable = true;
@ -20,7 +20,7 @@
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}";
environment = {
systemPackages = [pkgs.mangohud];

View File

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

View File

@ -4,9 +4,9 @@
...
}: {
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;
programs.virt-manager.enable = true;
};

View File

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

View File

@ -7,14 +7,15 @@
}: {
imports = [
./hardware-configuration.nix
./system/packages.nix
./system/system.nix
../nixos/system/packages.nix
../nixos/system/system.nix
inputs.home-manager.nixosModules.home-manager
];
nix.settings.experimental-features = ["nix-command" "flakes"];
programs.nix-ld.dev.enable = true;
# Home manager
home-manager = {
extraSpecialArgs = {inherit inputs pkgs pkgs-stable username;};
backupFileExtension = "backup";
@ -24,21 +25,63 @@
sharedModules = [inputs.plasma-manager.homeManagerModules.plasma-manager];
};
# Bootloader.
boot.loader.systemd-boot.enable = true;
environment.sessionVariables = {
FLAKE = "/home/${username}/dotfiles";
DEFAULT_BROWSER = "${pkgs.librewolf}/bin/librewolf";
};
# User configuration
users.users.${username} = {
isNormalUser = true;
description = "${username}";
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.defaultApplications = {
"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;
}