diff --git a/audio.nix b/audio.nix new file mode 100644 index 0000000..0044e8e --- /dev/null +++ b/audio.nix @@ -0,0 +1,11 @@ +{ pkgs, ... }: + +{ + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; +} diff --git a/boot.nix b/boot.nix new file mode 100644 index 0000000..cba18ae --- /dev/null +++ b/boot.nix @@ -0,0 +1,6 @@ +{ ... }: + +{ + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; +} diff --git a/configuration.nix b/configuration.nix deleted file mode 100644 index ae34248..0000000 --- a/configuration.nix +++ /dev/null @@ -1,71 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - imports = - [ - ./hardware-configuration.nix - ]; - - hardware.graphics = { - enable = true; - extraPackages = with pkgs; [ mesa ]; - }; - - fonts = { - enableDefaultPackages = true; - - packages = with pkgs; [ - nerd-fonts.hurmit - ]; - - fontconfig.defaultFonts.monospace = [ "Hurmit Nerd Font Mono" ]; - }; - - environment.sessionVariables = { - NIXOS_OZONE_WL = "1"; - }; - - programs.hyprland = { - enable = true; - xwayland.enable = true; - }; - - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - - networking.hostName = "nixos"; - networking.networkmanager.enable = true; - - time.timeZone = "Europe/Prague"; - - services.printing.enable = true; - - users.users.odweta = { - isNormalUser = true; - extraGroups = [ "wheel" "plugdev" "lp" "lpadmin" "dialout" "audio" "video" "network" "networkmanager" ]; - }; - - environment.systemPackages = with pkgs; [ - waybar - dunst - swww - wofi - ungoogled-chromium - ]; - - security.rtkit.enable = true; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - jack.enable = true; - }; - - services.openssh.enable = true; - - system.stateVersion = "25.11"; -} - diff --git a/display-manager.nix b/display-manager.nix new file mode 100644 index 0000000..616a2d0 --- /dev/null +++ b/display-manager.nix @@ -0,0 +1,27 @@ +{ pkgs, ... }: + +{ + # Enable Display Manager + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${pkgs.greetd.tuigreet}/bin/tuigreet \ + --time --time-format '%I:%M %p | %a • %h | %F' \ + --cmd 'uwsm start hyprland'"; + user = "greeter"; + }; + }; + }; + + users.users.greeter = { + isNormalUser = false; + description = "greetd greeter user"; + extraGroups = [ "video" "audio" ]; + linger = true; + }; + + environment.systemPackages = with pkgs; [ + greetd.tuigreet + ]; +} diff --git a/env-vars.nix b/env-vars.nix index b30c8a7..619f762 100644 --- a/env-vars.nix +++ b/env-vars.nix @@ -1,4 +1,4 @@ -{ pkgs, ... }: +{ ... }: { environment.variables = { diff --git a/flake.nix b/flake.nix index ad288c7..6226691 100644 --- a/flake.nix +++ b/flake.nix @@ -15,11 +15,25 @@ nixosConfigurations."nixos" = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ - ./configuration.nix # FIXME: MODULARIZE + ./audio.nix + ./boot.nix + ./display-manager.nix ./env-vars.nix - #./hardware-configuration.nix + ./fonts.nix + ./hardware-configuration.nix ./hyprland-system.nix + ./networking.nix + ./nix-settings.nix + ./opengl.nix + ./openssh.nix + ./printing.nix + ./screen.nix + ./security.nix ./theme.nix + ./time.nix + ./usb.nix + ./users.nix + ./waybar-system.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; diff --git a/fonts.nix b/fonts.nix new file mode 100644 index 0000000..0b18b00 --- /dev/null +++ b/fonts.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: + +{ + fonts = { + enableDefaultPackages = true; + + packages = with pkgs; [ + nerd-fonts.hurmit + ]; + + fontconfig.defaultFonts.monospace = [ "Hurmit Nerd Font Mono" ]; + }; +} diff --git a/home.nix b/home.nix index 278c6d0..3faaa0d 100644 --- a/home.nix +++ b/home.nix @@ -11,6 +11,7 @@ ./git.nix ./hyprland.nix ./kitty.nix + ./ungoogled-chromium.nix ./vim.nix ./waybar.nix ./xdg.nix diff --git a/hyprland-system.nix b/hyprland-system.nix index 8f2145e..7d2b139 100644 --- a/hyprland-system.nix +++ b/hyprland-system.nix @@ -2,7 +2,10 @@ { # program enable - programs.hyprland.enable = true; + programs.hyprland = { + enable = true; + xwayland.enable = true; + }; # xdg portal for hyprland xdg.portal = { diff --git a/networking.nix b/networking.nix new file mode 100644 index 0000000..373d3c2 --- /dev/null +++ b/networking.nix @@ -0,0 +1,6 @@ +{ ... }: + +{ + networking.hostName = "nixos"; + networking.networkmanager.enable = true; +} diff --git a/nix-settings.nix b/nix-settings.nix new file mode 100644 index 0000000..91e6156 --- /dev/null +++ b/nix-settings.nix @@ -0,0 +1,6 @@ +{ pkgs, ... }: + +{ + system.stateVersion = "25.11"; + nix.settings.experimental-features = [ "nix-command" "flakes" ]; +} diff --git a/opengl.nix b/opengl.nix new file mode 100644 index 0000000..bbfb8f1 --- /dev/null +++ b/opengl.nix @@ -0,0 +1,8 @@ +{ pkgs, ... }: + +{ + hardware.graphics = { + enable = true; + extraPackages = with pkgs; [ mesa ]; + }; +} diff --git a/openssh.nix b/openssh.nix new file mode 100644 index 0000000..81d5d48 --- /dev/null +++ b/openssh.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: + +{ + services.openssh.enable = true; +} diff --git a/printing.nix b/printing.nix new file mode 100644 index 0000000..4610bde --- /dev/null +++ b/printing.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + services.printing.enable = true; +} diff --git a/screen.nix b/screen.nix new file mode 100644 index 0000000..429521c --- /dev/null +++ b/screen.nix @@ -0,0 +1,9 @@ +{ pkgs, ... }: + +{ + programs.light.enable = true; + + environment.systemPackages = with pkgs; [ + brightnessctl + ]; +} diff --git a/security.nix b/security.nix new file mode 100644 index 0000000..58d0238 --- /dev/null +++ b/security.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + security.rtkit.enable = true; +} diff --git a/time.nix b/time.nix new file mode 100644 index 0000000..a949d18 --- /dev/null +++ b/time.nix @@ -0,0 +1,6 @@ +{ ... }: + +{ + time.hardwareClockInLocalTime = true; + time.timeZone = "Europe/Prague"; +} diff --git a/ungoogled-chromium.nix b/ungoogled-chromium.nix new file mode 100644 index 0000000..00aa6f8 --- /dev/null +++ b/ungoogled-chromium.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: + +{ + programs.ungoogled-chromium.enable = true; +} diff --git a/usb.nix b/usb.nix new file mode 100644 index 0000000..bd7d85e --- /dev/null +++ b/usb.nix @@ -0,0 +1,5 @@ +{ pkgs, ... }: + +{ + service.gvfs.enable = true; +} diff --git a/users.nix b/users.nix new file mode 100644 index 0000000..0588595 --- /dev/null +++ b/users.nix @@ -0,0 +1,18 @@ +{ ... }: + +{ + users.users.odweta = { + isNormalUser = true; + extraGroups = [ + "wheel" + "plugdev" + "lp" + "lpadmin" + "dialout" + "audio" + "video" + "network" + "networkmanager" + ]; + }; +} diff --git a/waybar-system.nix b/waybar-system.nix new file mode 100644 index 0000000..46aa426 --- /dev/null +++ b/waybar-system.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: + +{ + environment.systemPackages = with pkgs; [ + waybar + dunst + swww + wofi + ]; +}