diff --git a/config/keyboard.svg b/config/icons/keyboard.svg similarity index 100% rename from config/keyboard.svg rename to config/icons/keyboard.svg diff --git a/flake.nix b/flake.nix index 418aabc..57cd76a 100644 --- a/flake.nix +++ b/flake.nix @@ -69,7 +69,7 @@ }; modules = [ - ./nixos/configuration.nix + ./zenith/configuration.nix inputs.stylix.nixosModules.stylix inputs.nix-ld.nixosModules.nix-ld diff --git a/leanix/configuration.nix b/leanix/configuration.nix index f47f527..003512e 100644 --- a/leanix/configuration.nix +++ b/leanix/configuration.nix @@ -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; diff --git a/leanix/home.nix b/leanix/home.nix index 42b08bf..4627bcd 100644 --- a/leanix/home.nix +++ b/leanix/home.nix @@ -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 diff --git a/nixos/home.nix b/nixos/home.nix deleted file mode 100644 index f694646..0000000 --- a/nixos/home.nix +++ /dev/null @@ -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; -} diff --git a/nixos/packages/applications.nix b/nixos/home/apps/applications.nix similarity index 84% rename from nixos/packages/applications.nix rename to nixos/home/apps/applications.nix index cf6ddfa..3947be2 100644 --- a/nixos/packages/applications.nix +++ b/nixos/home/apps/applications.nix @@ -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 diff --git a/nixos/packages/games.nix b/nixos/home/apps/games.nix similarity index 87% rename from nixos/packages/games.nix rename to nixos/home/apps/games.nix index 2ded95d..cbe8864 100644 --- a/nixos/packages/games.nix +++ b/nixos/home/apps/games.nix @@ -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 diff --git a/nixos/packages/hacking/hacking.nix b/nixos/home/apps/hacking.nix similarity index 66% rename from nixos/packages/hacking/hacking.nix rename to nixos/home/apps/hacking.nix index e1c13cc..50adf3a 100644 --- a/nixos/packages/hacking/hacking.nix +++ b/nixos/home/apps/hacking.nix @@ -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 diff --git a/nixos/packages/programming/programming.nix b/nixos/home/apps/programming.nix similarity index 50% rename from nixos/packages/programming/programming.nix rename to nixos/home/apps/programming.nix index b45c021..b760640 100644 --- a/nixos/packages/programming/programming.nix +++ b/nixos/home/apps/programming.nix @@ -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 diff --git a/nixos/home/apps/terminal_tools.nix b/nixos/home/apps/terminal_tools.nix new file mode 100644 index 0000000..9db0b91 --- /dev/null +++ b/nixos/home/apps/terminal_tools.nix @@ -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 + ]; + }; +} diff --git a/nixos/desktop/desktops.nix b/nixos/home/desktop/desktops.nix similarity index 100% rename from nixos/desktop/desktops.nix rename to nixos/home/desktop/desktops.nix diff --git a/nixos/desktop/gnome/gnome.nix b/nixos/home/desktop/gnome/gnome.nix similarity index 98% rename from nixos/desktop/gnome/gnome.nix rename to nixos/home/desktop/gnome/gnome.nix index 56050f2..5362bf7 100644 --- a/nixos/desktop/gnome/gnome.nix +++ b/nixos/home/desktop/gnome/gnome.nix @@ -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 = { diff --git a/nixos/desktop/hyprland/dependencies.nix b/nixos/home/desktop/hyprland/dependencies.nix similarity index 98% rename from nixos/desktop/hyprland/dependencies.nix rename to nixos/home/desktop/hyprland/dependencies.nix index e45e161..5463566 100644 --- a/nixos/desktop/hyprland/dependencies.nix +++ b/nixos/home/desktop/hyprland/dependencies.nix @@ -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") diff --git a/nixos/desktop/hyprland/hyprland.nix b/nixos/home/desktop/hyprland/hyprland.nix similarity index 100% rename from nixos/desktop/hyprland/hyprland.nix rename to nixos/home/desktop/hyprland/hyprland.nix diff --git a/nixos/desktop/hyprland/rofi.nix b/nixos/home/desktop/hyprland/rofi.nix similarity index 100% rename from nixos/desktop/hyprland/rofi.nix rename to nixos/home/desktop/hyprland/rofi.nix diff --git a/nixos/desktop/hyprland/waybar.nix b/nixos/home/desktop/hyprland/waybar.nix similarity index 100% rename from nixos/desktop/hyprland/waybar.nix rename to nixos/home/desktop/hyprland/waybar.nix diff --git a/nixos/desktop/hyprland/wlogout.nix b/nixos/home/desktop/hyprland/wlogout.nix similarity index 100% rename from nixos/desktop/hyprland/wlogout.nix rename to nixos/home/desktop/hyprland/wlogout.nix diff --git a/nixos/desktop/kde/kde.nix b/nixos/home/desktop/kde/kde.nix similarity index 100% rename from nixos/desktop/kde/kde.nix rename to nixos/home/desktop/kde/kde.nix diff --git a/nixos/packages/applications/firefox.nix b/nixos/home/packages/applications/firefox.nix similarity index 100% rename from nixos/packages/applications/firefox.nix rename to nixos/home/packages/applications/firefox.nix diff --git a/nixos/packages/applications/spotify.nix b/nixos/home/packages/applications/spotify.nix similarity index 100% rename from nixos/packages/applications/spotify.nix rename to nixos/home/packages/applications/spotify.nix diff --git a/nixos/packages/packages.nix b/nixos/home/packages/packages.nix similarity index 58% rename from nixos/packages/packages.nix rename to nixos/home/packages/packages.nix index b99a08e..3dc14ee 100644 --- a/nixos/packages/packages.nix +++ b/nixos/home/packages/packages.nix @@ -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 diff --git a/nixos/packages/programming/code.nix b/nixos/home/packages/programming/code.nix similarity index 100% rename from nixos/packages/programming/code.nix rename to nixos/home/packages/programming/code.nix diff --git a/nixos/packages/programming/git.nix b/nixos/home/packages/programming/git.nix similarity index 100% rename from nixos/packages/programming/git.nix rename to nixos/home/packages/programming/git.nix diff --git a/nixos/packages/programming/neovim.nix b/nixos/home/packages/programming/neovim.nix similarity index 100% rename from nixos/packages/programming/neovim.nix rename to nixos/home/packages/programming/neovim.nix diff --git a/nixos/packages/tools/kitty.nix b/nixos/home/packages/tools/kitty.nix similarity index 100% rename from nixos/packages/tools/kitty.nix rename to nixos/home/packages/tools/kitty.nix diff --git a/nixos/packages/tools/oh-my-posh.nix b/nixos/home/packages/tools/oh-my-posh.nix similarity index 100% rename from nixos/packages/tools/oh-my-posh.nix rename to nixos/home/packages/tools/oh-my-posh.nix diff --git a/nixos/packages/tools/shell.nix b/nixos/home/packages/tools/shell.nix similarity index 100% rename from nixos/packages/tools/shell.nix rename to nixos/home/packages/tools/shell.nix diff --git a/nixos/packages/tools/tmux.nix b/nixos/home/packages/tools/tmux.nix similarity index 100% rename from nixos/packages/tools/tmux.nix rename to nixos/home/packages/tools/tmux.nix diff --git a/nixos/packages/tools/zoxide.nix b/nixos/home/packages/tools/zoxide.nix similarity index 83% rename from nixos/packages/tools/zoxide.nix rename to nixos/home/packages/tools/zoxide.nix index ce22fe6..208c351 100644 --- a/nixos/packages/tools/zoxide.nix +++ b/nixos/home/packages/tools/zoxide.nix @@ -1,6 +1,7 @@ { lib, config, + pkgs, ... }: { options = { @@ -15,5 +16,9 @@ "--cmd cd" ]; }; + + home.packages= with pkgs; [ + zoxide + ]; }; } diff --git a/nixos/packages/terminal_tools.nix b/nixos/packages/terminal_tools.nix deleted file mode 100644 index b99f5d6..0000000 --- a/nixos/packages/terminal_tools.nix +++ /dev/null @@ -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 - ]; - }; -} diff --git a/nixos/system/packages.nix b/nixos/system/packages.nix index 5dce75d..a4006e4 100644 --- a/nixos/system/packages.nix +++ b/nixos/system/packages.nix @@ -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; } diff --git a/nixos/system/packages/docker.nix b/nixos/system/packages/docker.nix index cf513df..38669bb 100644 --- a/nixos/system/packages/docker.nix +++ b/nixos/system/packages/docker.nix @@ -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 = { diff --git a/nixos/system/packages/podman.nix b/nixos/system/packages/podman.nix index 9cfacfb..656a247 100644 --- a/nixos/system/packages/podman.nix +++ b/nixos/system/packages/podman.nix @@ -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 = { diff --git a/nixos/system/packages/steam.nix b/nixos/system/packages/steam.nix index 5dd5f20..ff0c328 100644 --- a/nixos/system/packages/steam.nix +++ b/nixos/system/packages/steam.nix @@ -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]; diff --git a/nixos/system/packages/tor.nix b/nixos/system/packages/tor.nix index 64000d6..d14d7ad 100644 --- a/nixos/system/packages/tor.nix +++ b/nixos/system/packages/tor.nix @@ -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"; diff --git a/nixos/system/packages/virtual-machines.nix b/nixos/system/packages/virtual-machines.nix index ff42bd1..6c58605 100644 --- a/nixos/system/packages/virtual-machines.nix +++ b/nixos/system/packages/virtual-machines.nix @@ -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; }; diff --git a/nixos/system/sys/audio.nix b/nixos/system/settings/audio.nix similarity index 100% rename from nixos/system/sys/audio.nix rename to nixos/system/settings/audio.nix diff --git a/nixos/system/sys/desktops.nix b/nixos/system/settings/desktops.nix similarity index 100% rename from nixos/system/sys/desktops.nix rename to nixos/system/settings/desktops.nix diff --git a/nixos/system/sys/fonts.nix b/nixos/system/settings/fonts.nix similarity index 100% rename from nixos/system/sys/fonts.nix rename to nixos/system/settings/fonts.nix diff --git a/nixos/system/sys/locales.nix b/nixos/system/settings/locales.nix similarity index 100% rename from nixos/system/sys/locales.nix rename to nixos/system/settings/locales.nix diff --git a/nixos/system/sys/loginManager.nix b/nixos/system/settings/loginManager.nix similarity index 100% rename from nixos/system/sys/loginManager.nix rename to nixos/system/settings/loginManager.nix diff --git a/nixos/system/sys/network.nix b/nixos/system/settings/network.nix similarity index 100% rename from nixos/system/sys/network.nix rename to nixos/system/settings/network.nix diff --git a/nixos/system/sys/nvidia.nix b/nixos/system/settings/nvidia.nix similarity index 100% rename from nixos/system/sys/nvidia.nix rename to nixos/system/settings/nvidia.nix diff --git a/nixos/system/sys/printing.nix b/nixos/system/settings/printing.nix similarity index 100% rename from nixos/system/sys/printing.nix rename to nixos/system/settings/printing.nix diff --git a/nixos/system/sys/style.nix b/nixos/system/settings/style.nix similarity index 100% rename from nixos/system/sys/style.nix rename to nixos/system/settings/style.nix diff --git a/nixos/system/system.nix b/nixos/system/system.nix index 37f59cf..a201750 100644 --- a/nixos/system/system.nix +++ b/nixos/system/system.nix @@ -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 = { diff --git a/nixos/configuration.nix b/zenith/configuration.nix similarity index 70% rename from nixos/configuration.nix rename to zenith/configuration.nix index 5fb51ce..b096420 100644 --- a/nixos/configuration.nix +++ b/zenith/configuration.nix @@ -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"; diff --git a/nixos/hardware-configuration.nix b/zenith/hardware-configuration.nix similarity index 100% rename from nixos/hardware-configuration.nix rename to zenith/hardware-configuration.nix diff --git a/zenith/home.nix b/zenith/home.nix new file mode 100644 index 0000000..a383dde --- /dev/null +++ b/zenith/home.nix @@ -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; +}