diff --git a/configuration.nix b/configuration.nix deleted file mode 100644 index 8e1266e..0000000 --- a/configuration.nix +++ /dev/null @@ -1,159 +0,0 @@ -{ - inputs, - pkgs, - ... -}: -{ - imports = [ - ./stylix.nix - ./nixvim/nixvim.nix - ]; - - boot.loader.systemd-boot = { - edk2-uefi-shell.enable = true; - configurationLimit = 5; - }; - boot.loader.efi.canTouchEfiVariables = true; - boot.kernelPackages = pkgs.linuxPackages_latest; - nix.settings.experimental-features = [ - "nix-command" - "flakes" - ]; - nix.package = pkgs.lixPackageSets.stable.lix; - nix.settings.trusted-users = [ "lucy" ]; - networking.hostName = "nixos"; # Define your hostname. - networking.networkmanager.enable = true; - networking.networkmanager.wifi.powersave = false; - time.timeZone = "Europe/Berlin"; - i18n.defaultLocale = "en_US.UTF-8"; - i18n.extraLocaleSettings = { - LC_ADDRESS = "de_DE.UTF-8"; - LC_IDENTIFICATION = "de_DE.UTF-8"; - LC_MEASUREMENT = "de_DE.UTF-8"; - LC_MONETARY = "de_DE.UTF-8"; - LC_NAME = "de_DE.UTF-8"; - LC_NUMERIC = "de_DE.UTF-8"; - LC_PAPER = "de_DE.UTF-8"; - LC_TELEPHONE = "de_DE.UTF-8"; - LC_TIME = "de_DE.UTF-8"; - }; - services.xserver.xkb = { - layout = "eu"; - variant = ""; - }; - services.displayManager.ly.enable = true; - programs.steam = { - enable = true; - remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play - dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server - localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers - }; - programs.hyprland = { - package = pkgs.hyprland; - enable = true; - withUWSM = true; # recommended for most users - xwayland.enable = true; # Xwayland can be disabled. - }; - security.doas.enable = true; - security.sudo.enable = false; - security.doas.extraRules = [ - { - users = [ - "lucy" - "root" - ]; - groups = [ "wheel" ]; - keepEnv = true; - persist = true; # Optional, only require password verification a single time - } - ]; - - programs.zsh = { - enable = true; - enableCompletion = true; - autosuggestions.enable = true; - syntaxHighlighting.enable = true; - ohMyZsh.enable = true; - ohMyZsh.theme = "gentoo"; - interactiveShellInit = ''eval "$(devenv hook zsh)"''; - }; - # Enable CUPS to print documents. - services.printing.enable = true; - - # Enable sound with pipewire. - services.pulseaudio.enable = false; - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - }; - - # Enable touchpad support (enabled default in most desktopManager). - services.libinput.enable = true; - programs.xppen = { - enable = true; - package = pkgs.xppen_4.overrideAttrs (old: { - src = pkgs.fetchurl { - url = "https://download01.xp-pen.com/file/2026/04/XPPenLinux4.0.15-260422.tar.gz"; - hash = "sha256-Jady+pbqnzmVMuM0Io4/aE5B7dqNlDKPsnRj/Fbln6U="; - }; - buildInputs = (old.buildInputs or [ ]) ++ [ - pkgs.libXtst - pkgs.libXrandr - ]; - }); - }; - - # Define a user account. Don't forget to set a password with ‘passwd’. - fonts.packages = with pkgs; [ - noto-fonts - noto-fonts-cjk-sans - noto-fonts-color-emoji - nerd-fonts.symbols-only - ]; - users.users."lucy" = { - shell = pkgs.zsh; - isNormalUser = true; - description = "lucy"; - extraGroups = [ - "networkmanager" - "wheel" - ]; - }; - programs.direnv.enable = true; - # Allow unfree packages - nixpkgs.config.allowUnfree = true; - - environment.systemPackages = with pkgs; [ - wl-clipboard - btop - ripgrep - fd - bat - grimblast - git - blueman - devenv - inetutils - filezilla - ]; - hardware.bluetooth = { - enable = true; - powerOnBoot = true; - settings = { - General = { - Experimental = true; - FastConnectable = true; - }; - Policy = { - AutoEnable = true; - }; - }; - }; - - # DO NOT CHANGE!! - system.stateVersion = "26.05"; # Did you read the comment? - -} diff --git a/flake.nix b/flake.nix index 9a7db1f..f4df926 100644 --- a/flake.nix +++ b/flake.nix @@ -46,9 +46,9 @@ nixosConfigurations.seele = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ - ./easyroam.nix - ./configuration.nix - ./nixvim/nixvim.nix + ./nixos/easyroam.nix + ./nixos/configuration.nix + ./nixos/nixvim/nixvim.nix ./hw-configs/laptop.nix nix-easyroam.nixosModules.nix-easyroam stylix.nixosModules.stylix @@ -85,8 +85,8 @@ nixosConfigurations.nerv = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ - ./configuration.nix - ./nixvim/nixvim.nix + ./nixos/configuration.nix + ./nixos/nixvim/nixvim.nix ./hw-configs/desktop.nix lanzaboote.nixosModules.lanzaboote nix-easyroam.nixosModules.nix-easyroam diff --git a/home-manager/home.nix b/home-manager/home.nix new file mode 100644 index 0000000..09e029c --- /dev/null +++ b/home-manager/home.nix @@ -0,0 +1,23 @@ +{ + inputs, + ... +}: + +{ + imports = [ + ./stylix.nix + ./fastfetch.nix + ./hyprland.nix + ./programs/common.nix + ./programs/foot.nix + ./programs/git.nix + ./programs/nixcord.nix + ./hyprland/hyprland.nix + inputs.nixcord.homeModules.nixcord + inputs.spicetify-nix.homeManagerModules.spicetify + ]; + home.pointerCursor.enable = true; + home.username = "lucy"; + home.homeDirectory = "/home/lucy"; + home.stateVersion = "26.05"; +} diff --git a/home/hyprland.lua b/home-manager/hyprland/hyprland.lua similarity index 100% rename from home/hyprland.lua rename to home-manager/hyprland/hyprland.lua diff --git a/home/hyprland.nix b/home-manager/hyprland/hyprland.nix similarity index 83% rename from home/hyprland.nix rename to home-manager/hyprland/hyprland.nix index 50c016d..d400fce 100644 --- a/home/hyprland.nix +++ b/home-manager/hyprland/hyprland.nix @@ -1,6 +1,5 @@ { config, - inputs, pkgs, ... }: @@ -12,11 +11,10 @@ extraConfig = '' require("main") ''; - portalPackage = - pkgs.xdg-desktop-portal-hyprland; + portalPackage = pkgs.xdg-desktop-portal-hyprland; }; xdg.configFile."hypr/main.lua".source = - config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos/home/hyprland.lua"; + config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/nixos/home/hyprland/hyprland.lua"; xdg.portal.config = { common = { default = [ "gtk" ]; diff --git a/home-manager/programs/common.nix b/home-manager/programs/common.nix new file mode 100644 index 0000000..d0d6599 --- /dev/null +++ b/home-manager/programs/common.nix @@ -0,0 +1,16 @@ +{ pkgs, ... }: { + programs.quickshell.enable = true; + programs.fuzzel.enable = true; + programs.google-chrome.enable = true; + programs.home-manager.enable = true; + services.syncthing.enable = true; + programs.spicetify.enable = true; + home.packages = with pkgs; [ + xournalpp + fastfetch + hyfetch + nemo + pavucontrol + material-symbols + ]; +} diff --git a/home/fastfetch.nix b/home-manager/programs/fastfetch.nix similarity index 100% rename from home/fastfetch.nix rename to home-manager/programs/fastfetch.nix diff --git a/home-manager/programs/foot.nix b/home-manager/programs/foot.nix new file mode 100644 index 0000000..fbf4bb8 --- /dev/null +++ b/home-manager/programs/foot.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: { + programs.foot = { + enable = true; + settings = { + main = { + pad = "20x20"; + }; + }; + }; +} diff --git a/home-manager/programs/git.nix b/home-manager/programs/git.nix new file mode 100644 index 0000000..29f1d64 --- /dev/null +++ b/home-manager/programs/git.nix @@ -0,0 +1,10 @@ +{ + programs.git = { + enable = true; + settings = { + user.name = "lucy"; + user.email = "lucykaufmann@protonmail.com"; + init.defaultBranch = "main"; + }; + }; +} diff --git a/home-manager/programs/nixcord.nix b/home-manager/programs/nixcord.nix new file mode 100644 index 0000000..f284d3d --- /dev/null +++ b/home-manager/programs/nixcord.nix @@ -0,0 +1,12 @@ +{ + programs.nixcord = { + enable = true; + discord.vencord.enable = true; + config = { + plugins = { + messageClickActions.enable = true; + messageLogger.enable = true; + }; + }; + }; +} diff --git a/home/stylix.nix b/home-manager/stylix.nix similarity index 100% rename from home/stylix.nix rename to home-manager/stylix.nix diff --git a/home/home.nix b/home/home.nix deleted file mode 100644 index 6fa1c50..0000000 --- a/home/home.nix +++ /dev/null @@ -1,65 +0,0 @@ -{ - inputs, - pkgs, - ... -}: - -{ - imports = [ - ./stylix.nix - ./fastfetch.nix - ./hyprland.nix - inputs.nixcord.homeModules.nixcord - inputs.spicetify-nix.homeManagerModules.spicetify - ]; - programs.spicetify = { - enable = true; - wayland = true; - }; - # Home Manager needs a bit of information about you and the - # paths it should manage. - home.packages = with pkgs; [ - xournalpp - fastfetch - hyfetch - nemo - pavucontrol - material-symbols - ]; - home.pointerCursor.enable = true; - home.username = "lucy"; - home.homeDirectory = "/home/lucy"; - services.syncthing.enable = true; - programs.git = { - enable = true; - settings = { - user.name = "lucy"; - user.email = "lucykaufmann@protonmail.com"; - init.defaultBranch = "main"; - }; - }; - programs.quickshell.enable = true; - programs.fuzzel.enable = true; - programs.nixcord = { - enable = true; - discord.vencord.enable = true; - config = { - plugins = { - messageClickActions.enable = true; - messageLogger.enable = true; - }; - }; - }; - programs.google-chrome.enable = true; - programs.foot = { - enable = true; - settings = { - main = { - pad = "20x20"; - }; - }; - }; - # DANGER ZONE - programs.home-manager.enable = true; - home.stateVersion = "26.05"; -} diff --git a/nixos/configuration.nix b/nixos/configuration.nix new file mode 100644 index 0000000..760d8c3 --- /dev/null +++ b/nixos/configuration.nix @@ -0,0 +1,80 @@ +{ + pkgs, + ... +}: +{ + imports = [ + ./stylix.nix + ./nixvim/nixvim.nix + ./programs/common.nix + ./programs/steam.nix + ./programs/system-packages.nix + ./programs/xppen.nix + ./programs/zsh.nix + ./hardware/common.nix + ./hardware/bluetooth.nix + ./services/common.nix + ./services/pipewire.nix + ./stylix/stylix.nix + ./easyroam.nix + ]; + + boot.loader.systemd-boot = { + edk2-uefi-shell.enable = true; + configurationLimit = 5; + }; + boot.loader.efi.canTouchEfiVariables = true; + boot.kernelPackages = pkgs.linuxPackages_latest; + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; + nix.package = pkgs.lixPackageSets.stable.lix; + nix.settings.trusted-users = [ "lucy" ]; + networking.hostName = "nixos"; # Define your hostname. + networking.networkmanager.enable = true; + networking.networkmanager.wifi.powersave = false; + time.timeZone = "Europe/Berlin"; + i18n.defaultLocale = "en_US.UTF-8"; + i18n.extraLocaleSettings = { + LC_ADDRESS = "de_DE.UTF-8"; + LC_IDENTIFICATION = "de_DE.UTF-8"; + LC_MEASUREMENT = "de_DE.UTF-8"; + LC_MONETARY = "de_DE.UTF-8"; + LC_NAME = "de_DE.UTF-8"; + LC_NUMERIC = "de_DE.UTF-8"; + LC_PAPER = "de_DE.UTF-8"; + LC_TELEPHONE = "de_DE.UTF-8"; + LC_TIME = "de_DE.UTF-8"; + }; + services.xserver.xkb = { + layout = "eu"; + variant = ""; + }; + security.doas.enable = true; + security.sudo.enable = false; + security.doas.extraRules = [ + { + users = [ + "lucy" + "root" + ]; + groups = [ "wheel" ]; + keepEnv = true; + persist = true; # Optional, only require password verification a single time + } + ]; + + users.users."lucy" = { + shell = pkgs.zsh; + isNormalUser = true; + description = "lucy"; + extraGroups = [ + "networkmanager" + "wheel" + ]; + }; + nixpkgs.config.allowUnfree = true; + system.stateVersion = "26.05"; # Did you read the comment? + +} diff --git a/easyroam.nix b/nixos/easyroam.nix similarity index 100% rename from easyroam.nix rename to nixos/easyroam.nix diff --git a/nixos/hardware/bluetooth.nix b/nixos/hardware/bluetooth.nix new file mode 100644 index 0000000..b0f12a3 --- /dev/null +++ b/nixos/hardware/bluetooth.nix @@ -0,0 +1,15 @@ +{ + hardware.bluetooth = { + enable = true; + powerOnBoot = true; + settings = { + General = { + Experimental = true; + FastConnectable = true; + }; + Policy = { + AutoEnable = true; + }; + }; + }; +} diff --git a/nixos/hardware/common.nix b/nixos/hardware/common.nix new file mode 100644 index 0000000..e69de29 diff --git a/hw-configs/desktop.nix b/nixos/hardware/desktop.nix similarity index 100% rename from hw-configs/desktop.nix rename to nixos/hardware/desktop.nix diff --git a/hw-configs/laptop.nix b/nixos/hardware/laptop.nix similarity index 100% rename from hw-configs/laptop.nix rename to nixos/hardware/laptop.nix diff --git a/nixvim/keymaps.nix b/nixos/nixvim/keymaps.nix similarity index 100% rename from nixvim/keymaps.nix rename to nixos/nixvim/keymaps.nix diff --git a/nixvim/nixvim.nix b/nixos/nixvim/nixvim.nix similarity index 100% rename from nixvim/nixvim.nix rename to nixos/nixvim/nixvim.nix diff --git a/nixvim/plugins.nix b/nixos/nixvim/plugins.nix similarity index 100% rename from nixvim/plugins.nix rename to nixos/nixvim/plugins.nix diff --git a/nixos/programs/common.nix b/nixos/programs/common.nix new file mode 100644 index 0000000..aca4709 --- /dev/null +++ b/nixos/programs/common.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: { + programs.hyprland = { + package = pkgs.hyprland; + enable = true; + withUWSM = true; # recommended for most users + xwayland.enable = true; # Xwayland can be disabled. + }; + programs.direnv.enable = true; + +} diff --git a/nixos/programs/fonts.nix b/nixos/programs/fonts.nix new file mode 100644 index 0000000..4ff17f3 --- /dev/null +++ b/nixos/programs/fonts.nix @@ -0,0 +1,10 @@ +{ pkgs }: { + + fonts.packages = with pkgs; [ + noto-fonts + noto-fonts-cjk-sans + noto-fonts-color-emoji + nerd-fonts.symbols-only + ]; + +} diff --git a/nixos/programs/steam.nix b/nixos/programs/steam.nix new file mode 100644 index 0000000..65035f8 --- /dev/null +++ b/nixos/programs/steam.nix @@ -0,0 +1,8 @@ +{ + programs.steam = { + enable = true; + remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play + dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server + localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers + }; +} diff --git a/nixos/programs/system-packages.nix b/nixos/programs/system-packages.nix new file mode 100644 index 0000000..6c059d2 --- /dev/null +++ b/nixos/programs/system-packages.nix @@ -0,0 +1,15 @@ +{ pkgs }: { + environment.systemPackages = with pkgs; [ + wl-clipboard + btop + ripgrep + fd + bat + grimblast + git + blueman + devenv + inetutils + filezilla + ]; +} diff --git a/nixos/programs/xppen.nix b/nixos/programs/xppen.nix new file mode 100644 index 0000000..5f48934 --- /dev/null +++ b/nixos/programs/xppen.nix @@ -0,0 +1,16 @@ +{ pkgs }: { + + programs.xppen = { + enable = true; + package = pkgs.xppen_4.overrideAttrs (old: { + src = pkgs.fetchurl { + url = "https://download01.xp-pen.com/file/2026/04/XPPenLinux4.0.15-260422.tar.gz"; + hash = "sha256-Jady+pbqnzmVMuM0Io4/aE5B7dqNlDKPsnRj/Fbln6U="; + }; + buildInputs = (old.buildInputs or [ ]) ++ [ + pkgs.libXtst + pkgs.libXrandr + ]; + }); + }; +} diff --git a/nixos/programs/zsh.nix b/nixos/programs/zsh.nix new file mode 100644 index 0000000..8ae74e4 --- /dev/null +++ b/nixos/programs/zsh.nix @@ -0,0 +1,11 @@ +{ + programs.zsh = { + enable = true; + enableCompletion = true; + autosuggestions.enable = true; + syntaxHighlighting.enable = true; + ohMyZsh.enable = true; + ohMyZsh.theme = "gentoo"; + interactiveShellInit = ''eval "$(devenv hook zsh)"''; + }; +} diff --git a/nixos/services/common.nix b/nixos/services/common.nix new file mode 100644 index 0000000..0809de1 --- /dev/null +++ b/nixos/services/common.nix @@ -0,0 +1,5 @@ +{ + services.printing.enable = true; + services.libinput.enable = true; + services.displayManager.ly.enable = true; +} diff --git a/nixos/services/pipewire.nix b/nixos/services/pipewire.nix new file mode 100644 index 0000000..ba917dc --- /dev/null +++ b/nixos/services/pipewire.nix @@ -0,0 +1,10 @@ +{ + services.pulseaudio.enable = false; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; +} diff --git a/stylix.nix b/nixos/stylix/stylix.nix similarity index 95% rename from stylix.nix rename to nixos/stylix/stylix.nix index 7e498d7..99c7c49 100644 --- a/stylix.nix +++ b/nixos/stylix/stylix.nix @@ -50,7 +50,7 @@ in stylix = { enable = true; autoEnable = false; - base16Scheme = "${pkgs.base16-schemes}/share/themes/gruber.yaml"; + base16Scheme = "${pkgs.base16-schemes}/share/themes/catppuccin-mocha.yaml"; polarity = "dark"; image = ./wallpaper.png; targets = { diff --git a/wallpaper.png b/nixos/stylix/wallpaper.png similarity index 100% rename from wallpaper.png rename to nixos/stylix/wallpaper.png