diff options
| author | stefan <stefan@s00.xyz> | 2025-03-03 21:34:53 -0500 |
|---|---|---|
| committer | stefan <stefan@s00.xyz> | 2025-03-03 21:34:53 -0500 |
| commit | 390d23083905e9cd26ea44393422630ffe99c9a5 (patch) | |
| tree | 431c2e0b7afd8bdd4897aeb2219f83faa7fd8c05 /form | |
| parent | e22ff337702e41ad4cd214894ab3b1a3d6fb8d96 (diff) | |
| download | home-390d23083905e9cd26ea44393422630ffe99c9a5.tar.gz | |
getting started with multi-system support
Diffstat (limited to 'form')
| -rw-r--r-- | form/configuration.nix | 109 | ||||
| -rw-r--r-- | form/hardware-configuration.nix | 41 | ||||
| -rw-r--r-- | form/home.nix | 33 |
3 files changed, 183 insertions, 0 deletions
diff --git a/form/configuration.nix b/form/configuration.nix new file mode 100644 index 0000000..d78bcd9 --- /dev/null +++ b/form/configuration.nix @@ -0,0 +1,109 @@ +{ config, lib, pkgs, inputs, ... }: + +{ + imports = + [ + ./hardware-configuration.nix + ]; + + boot.loader.systemd-boot.enable = true; + boot.loader.systemd-boot.consoleMode = "max"; + boot.loader.efi.canTouchEfiVariables = true; + + nixpkgs.config.allowUnfree = true; + + networking.hostName = "form"; + + networking.networkmanager.enable = true; + + time.timeZone = "America/New_York"; + + console = { + useXkbConfig = true; # use xkb.options in tty. + }; + + services.xserver.xkb.layout = "us"; + services.xserver.xkb.variant = "colemak_dh"; + + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + wireplumber.enable = true; + pulse.enable = true; + }; + + services.libinput.enable = true; + + programs.zsh = { + enable = true; + ohMyZsh = { + enable = true; + }; + }; + + users.users.stefan = { + isNormalUser = true; + extraGroups = [ "wheel" "networkmanager" ]; # Enable ‘sudo’ for the user. + packages = with pkgs; [ + tree + ]; + shell = pkgs.zsh; + }; + + #programs.firefox.enable = true; + programs.foot.enable = true; + programs.sway.enable = true; + security.polkit.enable = true; + + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --cmd 'sway --unsupported-gpu'"; + user = "greeter"; + }; + }; + }; + + environment.systemPackages = with pkgs; [ + zsh + neovim + wl-clipboard + wmenu + ]; + + environment.pathsToLink = [ "/share/zsh" ]; + + # 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; + + hardware.graphics.enable = true; + services.xserver.videoDrivers = ["nvidia"]; + hardware.nvidia = { + modesetting.enable = true; + open = true; + nvidiaSettings = true; + package = config.boot.kernelPackages.nvidiaPackages.latest; + }; + + nix = { + settings.experimental-features = [ "nix-command" "flakes" ]; + }; + + system.stateVersion = "24.11"; +} + diff --git a/form/hardware-configuration.nix b/form/hardware-configuration.nix new file mode 100644 index 0000000..64f00e2 --- /dev/null +++ b/form/hardware-configuration.nix @@ -0,0 +1,41 @@ +# Do not modify this file! It was generated by ‘nixos-generate-config’ +# and may be overwritten by future invocations. Please make changes +# to /etc/nixos/configuration.nix instead. +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/1e39c424-417d-4218-8655-de4bb9ad57b3"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/F50B-956E"; + fsType = "vfat"; + options = [ "fmask=0077" "dmask=0077" ]; + }; + + swapDevices = + [ { device = "/dev/disk/by-uuid/6fa8f3f6-f884-4879-9c11-90340ff6b3c2"; } + ]; + + # Enables DHCP on each ethernet and wireless interface. In case of scripted networking + # (the default) this is the recommended approach. When using systemd-networkd it's + # still possible to use this option, but it's recommended to use it in conjunction + # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp9s0.useDHCP = lib.mkDefault true; + # networking.interfaces.wlp8s0.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} diff --git a/form/home.nix b/form/home.nix new file mode 100644 index 0000000..c141011 --- /dev/null +++ b/form/home.nix @@ -0,0 +1,33 @@ +{ inputs, config, lib, pkgs, ... }: +{ + imports = [ + ../modules/global.nix + ../modules + ]; + + config.modules = { + global = { + wayland = true; + + extraPackages = with pkgs; [ + wmenu + cmatrix + ]; + }; + + foot.enable = true; + + neovim = { + enable = true; + }; + + sway = { + enable = true; + terminal = "foot"; + }; + + mako.enable = true; + neovide.enable = true; + zsh.enable = true; + }; +} |