diff options
author | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2024-09-26 17:59:09 -0500 |
---|---|---|
committer | Jacob Janzen <jacob.a.s.janzen@gmail.com> | 2024-09-26 17:59:44 -0500 |
commit | 5eb63082b564c2b44ff1858a7894d055e006043a (patch) | |
tree | dc68167e7b0bc52c75243c8298929498eea5f423 /nixos/.flake/system | |
parent | 178ef69d9d606fe6c7500a328a822845e73a53b2 (diff) |
modularize config
Diffstat (limited to 'nixos/.flake/system')
-rw-r--r-- | nixos/.flake/system/boot.nix | 6 | ||||
-rw-r--r-- | nixos/.flake/system/core.nix | 138 | ||||
-rw-r--r-- | nixos/.flake/system/desktop.nix | 54 | ||||
-rw-r--r-- | nixos/.flake/system/locale.nix | 6 | ||||
-rw-r--r-- | nixos/.flake/system/network.nix | 15 | ||||
-rw-r--r-- | nixos/.flake/system/users.nix | 9 |
6 files changed, 99 insertions, 129 deletions
diff --git a/nixos/.flake/system/boot.nix b/nixos/.flake/system/boot.nix new file mode 100644 index 0000000..d911b6b --- /dev/null +++ b/nixos/.flake/system/boot.nix @@ -0,0 +1,6 @@ +{ config, lib, pkgs, ... }: + +{ + boot.loader.systemd-boot.enable = true; + boot.loader.efi.canTouchEfiVariables = true; +} diff --git a/nixos/.flake/system/core.nix b/nixos/.flake/system/core.nix index 3747531..b15a520 100644 --- a/nixos/.flake/system/core.nix +++ b/nixos/.flake/system/core.nix @@ -5,136 +5,16 @@ { config, lib, pkgs, ... }: { - imports = - [ # Include the results of the hardware scan. - ./hardware-configuration.nix - ]; - - nix.settings.experimental-features = [ "nix-command" "flakes" ]; - nixpkgs.config.allowUnfree = true; - - # Use the systemd-boot EFI boot loader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - - networking.hostName = "nixos"; # Define your hostname. - networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. - hardware.bluetooth.enable = true; - hardware.bluetooth.powerOnBoot = true; - services.blueman.enable = true; - - security.pam.services.hyprlock = {}; - - services.flatpak.enable = true; - xdg.portal.enable = true; - - # Set your time zone. - time.timeZone = "America/Winnipeg"; - - # Select internationalisation properties. - i18n.defaultLocale = "en_CA.UTF-8"; - - # Enable the X11 windowing system. - services.xserver.enable = true; - services.greetd = { - enable = true; - settings = { - default_session = { - command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --remember-session --sessions ${pkgs.hyprland}/share/wayland-sessions --cmd \"dbus-run-session Hyprland\""; - user = "greeter"; - }; - }; - }; - systemd.services.greetd.serviceConfig = { - Type = "idle"; - StandardInput = "tty"; - StanardOutput = "tty"; - StandardError = "journal"; - TTYReset = true; - TTYVHangup = true; - TTYVTDisallocate = true; - }; - - programs.hyprland.enable = true; - - # Configure keymap in X11 - services.xserver.xkb.layout = "us"; - - # Enable CUPS to print documents. - services.printing.enable = true; - - # Enable sound. - services.pipewire = { - enable = true; - pulse.enable = true; - }; - - # Define a user account. Don't forget to set a password with ‘passwd’. - users.users.jane = { - shell = pkgs.zsh; - isNormalUser = true; - extraGroups = [ "networkmanager" "wheel" ]; # Enable ‘sudo’ for the user. - packages = with pkgs; [ - firefox - tree - ]; - }; - programs.zsh.enable = true; - - # List packages installed in system profile. To search, run: - environment.systemPackages = with pkgs; [ - greetd.tuigreet - kitty - dolphin - git - neovim - wget + imports = [ + ./boot.nix + ./desktop.nix + ./hardware-configuration.nix + ./locale.nix + ./network.nix + ./users.nix ]; - environment.variables.EDITOR = "vim"; - environment.pathsToLink = [ "/share/zsh" ]; - environment.sessionVariables.NIXOS_OZONE_WL = "1"; - - # Some programs need SUID wrappers, can be configured further or are - # started in user sessions. - # programs.mtr.enable = true; - programs.gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; - # List services that you want to enable: - - # Enable the OpenSSH daemon. - services.openssh.enable = true; - - # Open ports in the firewall. - # networking.firewall.allowedTCPPorts = [ ... ]; - # networking.firewall.allowedUDPPorts = [ ... ]; - # Or disable the firewall altogether. - # networking.firewall.enable = false; - - # Copy the NixOS configuration file and link it from the resulting system - # (/run/current-system/configuration.nix). This is useful in case you - # accidentally delete configuration.nix. - # system.copySystemConfiguration = true; - - # This option defines the first version of NixOS you have installed on this particular machine, - # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. - # - # Most users should NEVER change this value after the initial install, for any reason, - # even if you've upgraded your system to a new NixOS release. - # - # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, - # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how - # to actually do that. - # - # This value being lower than the current NixOS release does NOT mean your system is - # out of date, out of support, or vulnerable. - # - # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, - # and migrated your data accordingly. - # - # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . - system.stateVersion = "24.05"; # Did you read the comment? + nix.settings.experimental-features = [ "nix-command" "flakes" ]; + system.stateVersion = "24.05"; } diff --git a/nixos/.flake/system/desktop.nix b/nixos/.flake/system/desktop.nix new file mode 100644 index 0000000..2e3fa2b --- /dev/null +++ b/nixos/.flake/system/desktop.nix @@ -0,0 +1,54 @@ +{ config, lib, pkgs, ... }: + +{ + nixpkgs.config.allowUnfree = true; + security.pam.services.hyprlock = {}; + services.flatpak.enable = true; + xdg.portal.enable = true; + services.xserver.enable = true; + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --remember --remember-session --sessions ${pkgs.hyprland}/share/wayland-sessions --cmd \"dbus-run-session Hyprland\""; + user = "greeter"; + }; + }; + }; + systemd.services.greetd.serviceConfig = { + Type = "idle"; + StandardInput = "tty"; + StanardOutput = "tty"; + StandardError = "journal"; + TTYReset = true; + TTYVHangup = true; + TTYVTDisallocate = true; + }; + + programs.hyprland.enable = true; + + services.xserver.xkb.layout = "us"; + + services.pipewire = { + enable = true; + pulse.enable = true; + }; + environment.systemPackages = with pkgs; [ + dolphin + firefox + git + greetd.tuigreet + kitty + neovim + wget + ]; + environment.sessionVariables.NIXOS_OZONE_WL = "1"; + programs.zsh.enable = true; + environment.variables.EDITOR = "vim"; + environment.pathsToLink = [ "/share/zsh" ]; + + programs.gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; +} diff --git a/nixos/.flake/system/locale.nix b/nixos/.flake/system/locale.nix new file mode 100644 index 0000000..320604a --- /dev/null +++ b/nixos/.flake/system/locale.nix @@ -0,0 +1,6 @@ +{ config, lib, pkgs, ... }: + +{ + time.timeZone = "America/Winnipeg"; + i18n.defaultLocale = "en_CA.UTF-8"; +} diff --git a/nixos/.flake/system/network.nix b/nixos/.flake/system/network.nix new file mode 100644 index 0000000..56951de --- /dev/null +++ b/nixos/.flake/system/network.nix @@ -0,0 +1,15 @@ +{ config, lib, pkgs, ... }: + +{ + networking.hostName = "nixos"; + networking.networkmanager.enable = true; + hardware.bluetooth.enable = true; + hardware.bluetooth.powerOnBoot = true; + services.blueman.enable = true; + services.printing.enable = true; + services.openssh.enable = true; + networking.firewall = { + allowedTCPPorts = [ ]; + allowedUDPPorts = [ ]; + }; +} diff --git a/nixos/.flake/system/users.nix b/nixos/.flake/system/users.nix new file mode 100644 index 0000000..59c9e21 --- /dev/null +++ b/nixos/.flake/system/users.nix @@ -0,0 +1,9 @@ +{ config, lib, pkgs, ... }: + +{ + users.users.jane = { + shell = pkgs.zsh; + isNormalUser = true; + extraGroups = [ "networkmanager" "wheel" ]; + }; +} |