diff --git a/flake.nix b/flake.nix index ed46b5b..76445b6 100644 --- a/flake.nix +++ b/flake.nix @@ -1,35 +1,35 @@ { - description = "Entry point for NixOS"; + description = "Entry point for NixOS"; - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - nur.url = "github:nix-community/NUR"; - home-manager.url = "github:nix-community/home-manager"; - home-manager.inputs.nixpkgs.follows = "nixpkgs"; - hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; - nixvim.url = "git+https://git.wanderingcrow.net/TheWanderingCrow/nvix"; - alejandra.url = "github:kamadorueda/alejandra/3.1.0"; - alejandra.inputs.nixpkgs.follows = "nixpkgs"; + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + nur.url = "github:nix-community/NUR"; + home-manager.url = "github:nix-community/home-manager"; + home-manager.inputs.nixpkgs.follows = "nixpkgs"; + hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; + nixvim.url = "git+https://git.wanderingcrow.net/TheWanderingCrow/nvix"; + alejandra.url = "github:kamadorueda/alejandra/3.1.0"; + alejandra.inputs.nixpkgs.follows = "nixpkgs"; + }; + + outputs = inputs: let + system = "x86_64-linux"; + inherit (inputs.nixpkgs) lib; + + overlays = [inputs.nur.overlay]; + + pkgs = import inputs.nixpkgs { + inherit system overlays; + config.allowUnfree = true; + config.android_sdk.accept_license = true; }; - outputs = inputs: let - system = "x86_64-linux"; - inherit (inputs.nixpkgs) lib; - - overlays = [ inputs.nur.overlay ]; - - pkgs = import inputs.nixpkgs { - inherit system overlays; - config.allowUnfree = true; - config.android_sdk.accept_license = true; - }; - - ns = host: (lib.nixosSystem { - specialArgs = {inherit pkgs inputs;}; - modules = [ - (./hosts + "/${host}") - inputs.home-manager.nixosModules.home-manager - ]; - }); - in {nixosConfigurations = lib.attrsets.genAttrs [ "Parzival" "Parzival-Mobile" "WCE-Overseer" ] ns;}; + ns = host: (lib.nixosSystem { + specialArgs = {inherit pkgs inputs;}; + modules = [ + (./hosts + "/${host}") + inputs.home-manager.nixosModules.home-manager + ]; + }); + in {nixosConfigurations = lib.attrsets.genAttrs ["Parzival" "Parzival-Mobile" "WCE-Overseer"] ns;}; } diff --git a/hosts/Parzival-Mobile/default.nix b/hosts/Parzival-Mobile/default.nix index 7ff7c0f..4a1775c 100644 --- a/hosts/Parzival-Mobile/default.nix +++ b/hosts/Parzival-Mobile/default.nix @@ -1,18 +1,22 @@ -{config, pkgs, ...}:{ - imports = [ +{ + config, + pkgs, + ... +}: { + imports = [ ./hardware-configuration.nix ../../modules - ]; + ]; - networking.hostName = "Parzival-Mobile"; + networking.hostName = "Parzival-Mobile"; - user.crow.enable = true; + user.crow.enable = true; - desktop.sway.enable = true; + desktop.sway.enable = true; - module.gui.enable = true; - module.wayland.enable = true; - module.programming.enable = true; - module.hacking.enable = true; - module.mudding.enable = true; + module.gui.enable = true; + module.wayland.enable = true; + module.programming.enable = true; + module.hacking.enable = true; + module.mudding.enable = true; } diff --git a/hosts/Parzival-Mobile/hardware-configuration.nix b/hosts/Parzival-Mobile/hardware-configuration.nix index 31b3a13..5ab001c 100644 --- a/hosts/Parzival-Mobile/hardware-configuration.nix +++ b/hosts/Parzival-Mobile/hardware-configuration.nix @@ -1,32 +1,36 @@ # 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") - ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/0e8c3f30-2abb-4687-b541-3f6dfdb2fa72"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/0e8c3f30-2abb-4687-b541-3f6dfdb2fa72"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/E6CB-9DA5"; - fsType = "vfat"; - options = [ "fmask=0022" "dmask=0022" ]; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/E6CB-9DA5"; + fsType = "vfat"; + options = ["fmask=0022" "dmask=0022"]; + }; - swapDevices = - [ { device = "/dev/disk/by-uuid/928718de-b495-4a7c-b9d4-eb491b6c8253"; } - ]; + swapDevices = [ + {device = "/dev/disk/by-uuid/928718de-b495-4a7c-b9d4-eb491b6c8253";} + ]; # 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 diff --git a/hosts/Parzival-Work/default.nix b/hosts/Parzival-Work/default.nix index 8c2b38b..56bc91a 100644 --- a/hosts/Parzival-Work/default.nix +++ b/hosts/Parzival-Work/default.nix @@ -1,19 +1,24 @@ -{lib, config, pkgs, ...}:{ - imports = [ +{ + lib, + config, + pkgs, + ... +}: { + imports = [ ./hardware-configuration.nix ../../modules - ]; + ]; - networking.hostName = "Parzival-Work"; + networking.hostName = "Parzival-Work"; - user.crow.enable = true; + user.crow.enable = true; - desktop.sway.enable = true; - desktop.i3.enable = true; + desktop.sway.enable = true; + desktop.i3.enable = true; - module.gui.enable = true; - module.programming.enable = true; - module.wayland.enable = true; - module.x11.enable = true; - module.mudding.enable = true; + module.gui.enable = true; + module.programming.enable = true; + module.wayland.enable = true; + module.x11.enable = true; + module.mudding.enable = true; } diff --git a/hosts/Parzival/default.nix b/hosts/Parzival/default.nix index 31bafda..118e30c 100644 --- a/hosts/Parzival/default.nix +++ b/hosts/Parzival/default.nix @@ -1,25 +1,30 @@ -{lib, config, pkgs, ...}:{ - imports = [ +{ + lib, + config, + pkgs, + ... +}: { + imports = [ ./hardware-configuration.nix ../../modules - ]; + ]; - networking.hostName = "Parzival"; - - user.crow.enable = true; + networking.hostName = "Parzival"; - desktop.sway.enable = true; - desktop.i3.enable = true; + user.crow.enable = true; - module.gui.enable = true; - module.programming.enable = true; - module.hacking.enable = true; - module.wayland.enable = true; - module.x11.enable = true; - module.mudding.enable = true; - module.gaming.enable = true; - module.appdevel.enable = true; - module.vr.enable = true; + desktop.sway.enable = true; + desktop.i3.enable = true; - virtualisation.vmware.host.enable = true; + module.gui.enable = true; + module.programming.enable = true; + module.hacking.enable = true; + module.wayland.enable = true; + module.x11.enable = true; + module.mudding.enable = true; + module.gaming.enable = true; + module.appdevel.enable = true; + module.vr.enable = true; + + virtualisation.vmware.host.enable = true; } diff --git a/hosts/Parzival/hardware-configuration.nix b/hosts/Parzival/hardware-configuration.nix index b24f0e1..6db7cc1 100644 --- a/hosts/Parzival/hardware-configuration.nix +++ b/hosts/Parzival/hardware-configuration.nix @@ -1,47 +1,50 @@ # 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") - ]; + config, + lib, + pkgs, + modulesPath, + ... +}: { + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-amd" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-amd"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-label/nixos"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-label/nixos"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-label/boot"; - fsType = "vfat"; - options = [ "fmask=0022" "dmask=0022" ]; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-label/boot"; + fsType = "vfat"; + options = ["fmask=0022" "dmask=0022"]; + }; - swapDevices = [ ]; + swapDevices = []; -# 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..useDHCP`. - networking.useDHCP = lib.mkDefault true; -# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true; -# networking.interfaces.wlp8s0.useDHCP = lib.mkDefault true; + # 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..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.enp4s0.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; - hardware.amdgpu = { - initrd.enable = true; - amdvlk.enable = true; - opencl.enable = true; - }; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; + hardware.amdgpu = { + initrd.enable = true; + amdvlk.enable = true; + opencl.enable = true; + }; - - hardware.rtl-sdr.enable = true; + hardware.rtl-sdr.enable = true; } diff --git a/hosts/WCE-Overseer/default.nix b/hosts/WCE-Overseer/default.nix index 2f50e17..0c27c5f 100644 --- a/hosts/WCE-Overseer/default.nix +++ b/hosts/WCE-Overseer/default.nix @@ -1,13 +1,17 @@ -{lib, config, pkgs, ...}:{ - imports = [ +{ + lib, + config, + pkgs, + ... +}: { + imports = [ ../../modules - ]; + ]; - networking.hostName = "WCE-Overseer"; - proxmoxLXC.manageNetwork = true; + networking.hostName = "WCE-Overseer"; + proxmoxLXC.manageNetwork = true; - - nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - user.overseer.enable = true; + user.overseer.enable = true; } diff --git a/modules/boot.nix b/modules/boot.nix index 6c8f23e..dcf7f43 100644 --- a/modules/boot.nix +++ b/modules/boot.nix @@ -1,8 +1,8 @@ { - boot.loader = { - systemd-boot.enable = true; - efi = { - canTouchEfiVariables = true; - }; - }; + boot.loader = { + systemd-boot.enable = true; + efi = { + canTouchEfiVariables = true; + }; + }; } diff --git a/modules/core.nix b/modules/core.nix index 4731748..e4de41a 100644 --- a/modules/core.nix +++ b/modules/core.nix @@ -1,184 +1,183 @@ { - config, - lib, - pkgs, - inputs, - ... + config, + lib, + pkgs, + inputs, + ... }: { - options = { - module = { - enable = lib.mkEnableOption "enables packages"; - core.enable = lib.mkEnableOption "enables required packages"; - gui.enable = lib.mkEnableOption "enables gui+DE packages"; - wayland.enable = lib.mkEnableOption "enables wayland packages"; - x11.enable = lib.mkEnableOption "enables x11 packages"; - programming.enable = lib.mkEnableOption "enables programming packages"; - hacking.enable = lib.mkEnableOption "enables hacking packages"; - mudding.enable = lib.mkEnableOption "enables mudding packages"; - gaming.enable = lib.mkEnableOption "enables gaming packages"; - appdevel.enable = lib.mkEnableOption "enables app development in flutter"; - vr.enable = lib.mkEnableOption "enables VR utilities"; - }; - - user = { - enable = lib.mkEnableOption "enables users"; - crow = { - enable = lib.mkEnableOption "enable crow"; - home.enable = lib.mkEnableOption "enable home configuration"; - }; - overseer = { - enable = lib.mkEnableOption "enable container overseer user"; - }; - }; + options = { + module = { + enable = lib.mkEnableOption "enables packages"; + core.enable = lib.mkEnableOption "enables required packages"; + gui.enable = lib.mkEnableOption "enables gui+DE packages"; + wayland.enable = lib.mkEnableOption "enables wayland packages"; + x11.enable = lib.mkEnableOption "enables x11 packages"; + programming.enable = lib.mkEnableOption "enables programming packages"; + hacking.enable = lib.mkEnableOption "enables hacking packages"; + mudding.enable = lib.mkEnableOption "enables mudding packages"; + gaming.enable = lib.mkEnableOption "enables gaming packages"; + appdevel.enable = lib.mkEnableOption "enables app development in flutter"; + vr.enable = lib.mkEnableOption "enables VR utilities"; }; - - config = { - system.stateVersion = "24.05"; - time.timeZone = "America/New_York"; - nix.settings.experimental-features = ["flakes" "nix-command"]; - - environment.variables = { - EDITOR = "nvim"; - VISUAL = "nvim"; - }; - user = { - enable = lib.mkDefault true; - crow = { - enable = lib.mkDefault false; - home.enable = lib.mkDefault config.user.crow.enable; - }; - overseer = { - enable = lib.mkDefault false; - }; - }; - - fonts.packages = with pkgs; [ - font-awesome - nerdfonts - ]; - - - module = { - enable = lib.mkDefault true; - core.enable = lib.mkDefault true; - gui.enable = lib.mkDefault false; - programming.enable = lib.mkDefault false; - wayland.enable = lib.mkDefault false; - x11.enable = lib.mkDefault false; - hacking.enable = lib.mkDefault false; - mudding.enable = lib.mkDefault false; - gaming.enable = lib.mkDefault false; - appdevel.enable = lib.mkDefault false; - vr.enable = lib.mkDefault false; - }; - - desktop = { - sway.enable = lib.mkDefault false; - i3.enable = lib.mkDefault false; - }; - - xdg.portal = { - xdgOpenUsePortal = true; - enable = true; - wlr.enable = true; - lxqt.enable = true; - extraPortals = [ - pkgs.xdg-desktop-portal-wlr - pkgs.xdg-desktop-portal-gtk - pkgs.xdg-desktop-portal-kde - ]; - }; - - programs.zsh = { - enable = true; - autosuggestions = { - enable = true; - async = true; - }; - syntaxHighlighting = { - enable = true; - }; - }; - - programs.starship = { - enable = true; - settings = { - format = "[░▒▓](#a3aed2)[  ](bg:#a3aed2 fg:#090c0c)[](bg:#769ff0 fg:#a3aed2)$directory[](fg:#769ff0 bg:#394260)$git_branch$git_status[](fg:#394260 bg:#212736)$php[](fg:#212736 bg:#1d2230)$time[ ](fg:#1d2230)$character"; - - directory = { - style = "fg:#e3e5e5 bg:#769ff0"; - format = "[ $path ]($style)"; - truncation_length = 3; - truncation_symbol = "…/"; - }; - git_branch = { - symbol = ""; - style = "bg:#394260"; - format = "[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)"; - }; - git_status = { - style = "bg:#394260"; - format = "[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)"; - }; - php = { - symbol = ""; - style = "bg:#212736"; - format = "[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)"; - }; - time = { - disabled = false; - time_format = "%R"; # Hour:Minute Format - style = "bg:#1d2230"; - format = "[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)"; - }; - }; - }; - - users.defaultUserShell = pkgs.zsh; - - # Configure pulseaudio - hardware.graphics.enable32Bit = config.module.gaming.enable; - hardware.pulseaudio.support32Bit = config.module.gaming.enable; - services.pipewire = { - enable = true; - alsa.enable = true; - alsa.support32Bit = true; - pulse.enable = true; - }; - services.keyd = { - enable = true; - keyboards.default = { - ids = [ "*" ]; - extraConfig = '' - [global] - - default_layout = main - - [main:layout] - - capslock = layer(standardL2) - - [standardL2] - - w = up - s = down - a = left - d = right - - b = C-b - - space = playpause - . = nextsong - , = previoussong - - [ = delete - ] = end - escape = ~ - - home = end - ''; - }; - }; + user = { + enable = lib.mkEnableOption "enables users"; + crow = { + enable = lib.mkEnableOption "enable crow"; + home.enable = lib.mkEnableOption "enable home configuration"; + }; + overseer = { + enable = lib.mkEnableOption "enable container overseer user"; + }; }; + }; + + config = { + system.stateVersion = "24.05"; + time.timeZone = "America/New_York"; + nix.settings.experimental-features = ["flakes" "nix-command"]; + + environment.variables = { + EDITOR = "nvim"; + VISUAL = "nvim"; + }; + + user = { + enable = lib.mkDefault true; + crow = { + enable = lib.mkDefault false; + home.enable = lib.mkDefault config.user.crow.enable; + }; + overseer = { + enable = lib.mkDefault false; + }; + }; + + fonts.packages = with pkgs; [ + font-awesome + nerdfonts + ]; + + module = { + enable = lib.mkDefault true; + core.enable = lib.mkDefault true; + gui.enable = lib.mkDefault false; + programming.enable = lib.mkDefault false; + wayland.enable = lib.mkDefault false; + x11.enable = lib.mkDefault false; + hacking.enable = lib.mkDefault false; + mudding.enable = lib.mkDefault false; + gaming.enable = lib.mkDefault false; + appdevel.enable = lib.mkDefault false; + vr.enable = lib.mkDefault false; + }; + + desktop = { + sway.enable = lib.mkDefault false; + i3.enable = lib.mkDefault false; + }; + + xdg.portal = { + xdgOpenUsePortal = true; + enable = true; + wlr.enable = true; + lxqt.enable = true; + extraPortals = [ + pkgs.xdg-desktop-portal-wlr + pkgs.xdg-desktop-portal-gtk + pkgs.xdg-desktop-portal-kde + ]; + }; + + programs.zsh = { + enable = true; + autosuggestions = { + enable = true; + async = true; + }; + syntaxHighlighting = { + enable = true; + }; + }; + + programs.starship = { + enable = true; + settings = { + format = "[░▒▓](#a3aed2)[  ](bg:#a3aed2 fg:#090c0c)[](bg:#769ff0 fg:#a3aed2)$directory[](fg:#769ff0 bg:#394260)$git_branch$git_status[](fg:#394260 bg:#212736)$php[](fg:#212736 bg:#1d2230)$time[ ](fg:#1d2230)$character"; + + directory = { + style = "fg:#e3e5e5 bg:#769ff0"; + format = "[ $path ]($style)"; + truncation_length = 3; + truncation_symbol = "…/"; + }; + git_branch = { + symbol = ""; + style = "bg:#394260"; + format = "[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)"; + }; + git_status = { + style = "bg:#394260"; + format = "[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)"; + }; + php = { + symbol = ""; + style = "bg:#212736"; + format = "[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)"; + }; + time = { + disabled = false; + time_format = "%R"; # Hour:Minute Format + style = "bg:#1d2230"; + format = "[[  $time ](fg:#a0a9cb bg:#1d2230)]($style)"; + }; + }; + }; + + users.defaultUserShell = pkgs.zsh; + + # Configure pulseaudio + hardware.graphics.enable32Bit = config.module.gaming.enable; + hardware.pulseaudio.support32Bit = config.module.gaming.enable; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + }; + services.keyd = { + enable = true; + keyboards.default = { + ids = ["*"]; + extraConfig = '' + [global] + + default_layout = main + + [main:layout] + + capslock = layer(standardL2) + + [standardL2] + + w = up + s = down + a = left + d = right + + b = C-b + + space = playpause + . = nextsong + , = previoussong + + [ = delete + ] = end + escape = ~ + + home = end + ''; + }; + }; + }; } diff --git a/modules/default.nix b/modules/default.nix index fe52a1d..aa5782f 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,10 +1,14 @@ -{ lib, config, ...}: { - imports = [ - ./core.nix - ./boot.nix - ./networking.nix - ./programs.nix - ./users - ./desktops - ]; +{ + lib, + config, + ... +}: { + imports = [ + ./core.nix + ./boot.nix + ./networking.nix + ./programs.nix + ./users + ./desktops + ]; } diff --git a/modules/desktops/default.nix b/modules/desktops/default.nix index 1d67e60..f9d2e0d 100644 --- a/modules/desktops/default.nix +++ b/modules/desktops/default.nix @@ -1,10 +1,13 @@ -{ lib, config, ...}: { - imports = [ - # Wayland desktops here - ./wayland/sway.nix - - # X11 desktops here - ./x11/i3.nix - ]; -} +{ + lib, + config, + ... +}: { + imports = [ + # Wayland desktops here + ./wayland/sway.nix + # X11 desktops here + ./x11/i3.nix + ]; +} diff --git a/modules/desktops/wayland/sway.nix b/modules/desktops/wayland/sway.nix index 7717b16..fbfc62f 100644 --- a/modules/desktops/wayland/sway.nix +++ b/modules/desktops/wayland/sway.nix @@ -1,18 +1,23 @@ -{ inputs, pkgs, lib, config, ...}: { - options.desktop.sway.enable = lib.mkEnableOption "enables sway"; +{ + inputs, + pkgs, + lib, + config, + ... +}: { + options.desktop.sway.enable = lib.mkEnableOption "enables sway"; - config = { - programs.sway = lib.mkIf config.desktop.sway.enable { - enable = true; - xwayland.enable = true; - }; - programs.dconf.enable = true; + config = { + programs.sway = lib.mkIf config.desktop.sway.enable { + enable = true; + xwayland.enable = true; }; + programs.dconf.enable = true; + }; - - config.environment = lib.mkIf config.desktop.sway.enable { - sessionVariables = { - NIXOS_OZONE_WL = "1"; - }; + config.environment = lib.mkIf config.desktop.sway.enable { + sessionVariables = { + NIXOS_OZONE_WL = "1"; }; + }; } diff --git a/modules/desktops/x11/i3.nix b/modules/desktops/x11/i3.nix index c2d9136..3427a3e 100644 --- a/modules/desktops/x11/i3.nix +++ b/modules/desktops/x11/i3.nix @@ -1,12 +1,18 @@ -{ inputs, pkgs, lib, config, ...}: { - options.desktop.i3.enable = lib.mkEnableOption "enables i3"; +{ + inputs, + pkgs, + lib, + config, + ... +}: { + options.desktop.i3.enable = lib.mkEnableOption "enables i3"; - config = lib.mkIf config.desktop.i3.enable { - services.xserver = { - displayManager.startx.enable = true; - windowManager.i3 = { - enable = true; - }; - }; + config = lib.mkIf config.desktop.i3.enable { + services.xserver = { + displayManager.startx.enable = true; + windowManager.i3 = { + enable = true; + }; }; + }; } diff --git a/modules/networking.nix b/modules/networking.nix index 571520e..0169bec 100644 --- a/modules/networking.nix +++ b/modules/networking.nix @@ -1,4 +1,4 @@ { - networking.networkmanager.enable = true; - networking.firewall.enable = false; + networking.networkmanager.enable = true; + networking.firewall.enable = false; } diff --git a/modules/programs.nix b/modules/programs.nix index c316310..c3cd84e 100644 --- a/modules/programs.nix +++ b/modules/programs.nix @@ -1,152 +1,168 @@ -{ inputs, pkgs, lib, config, ...}: { - environment.systemPackages = with pkgs; - ( - # Core packages - if config.module.core.enable - then [ - vim - wget - screen - git - curl - tmux - pulseaudio - keyd - unar - alejandra - ] else [] - ) - ++ ( - if config.module.gui.enable - then [ - # Writing - hunspellDicts.en-us - libreoffice - hunspell +{ + inputs, + pkgs, + lib, + config, + ... +}: { + environment.systemPackages = with pkgs; + ( + # Core packages + if config.module.core.enable + then [ + vim + wget + screen + git + curl + tmux + pulseaudio + keyd + unar + alejandra + ] + else [] + ) + ++ ( + if config.module.gui.enable + then [ + # Writing + hunspellDicts.en-us + libreoffice + hunspell - # Audio - pavucontrol - pulsemixer - noisetorch + # Audio + pavucontrol + pulsemixer + noisetorch - # Communication - mattermost-desktop - slack - zoom-us - vesktop - discord - signal-desktop - teamspeak_client + # Communication + mattermost-desktop + slack + zoom-us + vesktop + discord + signal-desktop + teamspeak_client - # Browsing - tor-browser + # Browsing + tor-browser - # Music - spotify - strawberry-qt6 + # Music + spotify + strawberry-qt6 - # Utilities - taskwarrior3 - neofetch - gimp - pulseaudio-ctl - playerctl - brightnessctl - ] else [] - ) - ++ ( - if config.module.wayland.enable - then [ - foot - wofi - swaynotificationcenter - udiskie - polkit_gnome - swayidle - sway-audio-idle-inhibit - swaylock-effects - sway-contrib.grimshot - glfw-wayland-minecraft - waybar - wl-clipboard - xorg.xrandr - ] else [] - ) - ++ ( - if config.module.x11.enable - then [ - xterm - rofi - xorg.xrandr - ] else [] - ) - ++ ( - if config.module.programming.enable - then [ - inputs.nixvim.packages.${pkgs.system}.default - lua - libgcc - php83 - php83Packages.composer - python3 - serverless - jwt-cli - jq - ddev - cloc - ansible - ] else [] - ) - ++ ( - if config.module.hacking.enable - then [ - metasploit - exploitdb - ghidra - wireshark - termshark - nmap - hashcat - dirstalk - rtl-sdr - ] else [] - ) - ++ ( - if config.module.mudding.enable - then [ - mudlet - ] else [] - ) - ++ ( - if config.module.appdevel.enable - then [ - flutter - waydroid - ungoogled-chromium - android-studio-full - ] else [] - ) - ++ ( - if config.module.gaming.enable - then [ - steam - protonup-qt - steamtinkerlaunch - prismlauncher - mudlet - widelands - wesnoth - gamescope - gamemode - r2modman - ] else [] - ) - ++ ( - if config.module.vr.enable - then [ - alvr - wlx-overlay-s - immersed - ] else [] - ); + # Utilities + taskwarrior3 + neofetch + gimp + pulseaudio-ctl + playerctl + brightnessctl + ] + else [] + ) + ++ ( + if config.module.wayland.enable + then [ + foot + wofi + swaynotificationcenter + udiskie + polkit_gnome + swayidle + sway-audio-idle-inhibit + swaylock-effects + sway-contrib.grimshot + glfw-wayland-minecraft + waybar + wl-clipboard + xorg.xrandr + ] + else [] + ) + ++ ( + if config.module.x11.enable + then [ + xterm + rofi + xorg.xrandr + ] + else [] + ) + ++ ( + if config.module.programming.enable + then [ + inputs.nixvim.packages.${pkgs.system}.default + lua + libgcc + php83 + php83Packages.composer + python3 + serverless + jwt-cli + jq + ddev + cloc + ansible + ] + else [] + ) + ++ ( + if config.module.hacking.enable + then [ + metasploit + exploitdb + ghidra + wireshark + termshark + nmap + hashcat + dirstalk + rtl-sdr + ] + else [] + ) + ++ ( + if config.module.mudding.enable + then [ + mudlet + ] + else [] + ) + ++ ( + if config.module.appdevel.enable + then [ + flutter + waydroid + ungoogled-chromium + android-studio-full + ] + else [] + ) + ++ ( + if config.module.gaming.enable + then [ + steam + protonup-qt + steamtinkerlaunch + prismlauncher + mudlet + widelands + wesnoth + gamescope + gamemode + r2modman + ] + else [] + ) + ++ ( + if config.module.vr.enable + then [ + alvr + wlx-overlay-s + immersed + ] + else [] + ); } diff --git a/modules/users/crow/default.nix b/modules/users/crow/default.nix index 9712fa4..bc8c704 100644 --- a/modules/users/crow/default.nix +++ b/modules/users/crow/default.nix @@ -1,5 +1,9 @@ -{lib, config, ...}: { - imports = [ - ./user.nix - ]; +{ + lib, + config, + ... +}: { + imports = [ + ./user.nix + ]; } diff --git a/modules/users/crow/home.nix b/modules/users/crow/home.nix index 730c78f..c42a25e 100644 --- a/modules/users/crow/home.nix +++ b/modules/users/crow/home.nix @@ -1,97 +1,108 @@ -{osConfig, config, inputs, pkgs, lib, ...}: -let - hyprMonitorConfig = if osConfig.networking.hostName == "Parzival" then ./configs/hypr/parzival-monitors.conf - else if osConfig.networking.hostName == "Parzival-Mobile" then ./configs/hypr/parzival_mobile-monitors.conf - else null; - swayMonitorConfig = if osConfig.networking.hostName == "Parzival" then ./configs/sway/parzival-monitors.conf - else if osConfig.networking.hostName == "Parzival-Mobile" then ./configs/sway/parzival_mobile-monitors.conf - else null; -in { - home = { - username = "crow"; - homeDirectory = "/home/crow"; - stateVersion = "24.05"; + osConfig, + config, + inputs, + pkgs, + lib, + ... +}: let + hyprMonitorConfig = + if osConfig.networking.hostName == "Parzival" + then ./configs/hypr/parzival-monitors.conf + else if osConfig.networking.hostName == "Parzival-Mobile" + then ./configs/hypr/parzival_mobile-monitors.conf + else null; + swayMonitorConfig = + if osConfig.networking.hostName == "Parzival" + then ./configs/sway/parzival-monitors.conf + else if osConfig.networking.hostName == "Parzival-Mobile" + then ./configs/sway/parzival_mobile-monitors.conf + else null; +in { + home = { + username = "crow"; + homeDirectory = "/home/crow"; + stateVersion = "24.05"; - # Tools - file.".config/tmux/tmux.conf".source = ./configs/tmux/tmux.conf; - file.".config/git/config".source = ./configs/git/git.conf; - - # Hyprland - file.".config/hypr/hyprland.conf".source = ./configs/hypr/hyprland.conf; - file.".config/hypr/monitors.conf".source = lib.mkIf (hyprMonitorConfig != null) hyprMonitorConfig; - - # Waybar - file.".config/waybar/config.jsonc".source = ./configs/waybar/config.jsonc; - file.".config/waybar/style.css".source = ./configs/waybar/style.css; - - # Sway - file.".config/sway/config".source = ./configs/sway/sway.conf; - file.".config/sway/monitors.conf".source = lib.mkIf (swayMonitorConfig != null) swayMonitorConfig; - file.".config/sway/background-1".source = ./configs/wallpapers/cyber_defiance.jpg; - file.".config/sway/background-2".source = ./configs/wallpapers/cyber_skyscrapers.jpg; - file.".config/sway/background-3".source = ./configs/wallpapers/kali_lol.jpg; + # Tools + file.".config/tmux/tmux.conf".source = ./configs/tmux/tmux.conf; + file.".config/git/config".source = ./configs/git/git.conf; - # i3 - file.".config/i3/config".source = ./configs/i3/i3.conf; - file."/home/crow/.xinitrc".source = ./configs/x11/xinitrc; - }; + # Hyprland + file.".config/hypr/hyprland.conf".source = ./configs/hypr/hyprland.conf; + file.".config/hypr/monitors.conf".source = lib.mkIf (hyprMonitorConfig != null) hyprMonitorConfig; - xdg = { - configHome = "/home/crow/.config"; - enable = true; - }; - - programs = { - firefox = { - enable = true; - policies = { - BlockAboutConfig = true; - DisableFirefoxStudies = true; - DisableFormHistory = true; - DisablePasswordReveal = true; - DisablePocket = true; - DisableProfileImport = true; - DontCheckDefaultBrowser = true; - EnableTrackingProtection = { - Value = true; - Locked = true; - Cryptomining = true; - Fingerprinting = true; - }; - Homepage = { - URL = "https://home.wanderingcrow.net"; - StartPage = "homepage"; - }; - OfferToSaveLogins = false; - PasswordManagerEnabled = false; - ExtensionSettings = { - "*".installation_mode = "blocked"; - "*".blocked_install_message = "Please manage extensions through your NixOS config"; - # Bitwarden - "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { - installation_mode = "force_installed"; - install_url = "https://addons.mozilla.org/firefox/downloads/latest/{446900e4-71c2-419f-a6a7-df9c091e268b}/latest.xpl"; - default_area = "navbar"; - }; - "contact@grimoire.pro" = { - installation_mode = "force_installed"; - install_url = "https://addons.mozilla.org/firefox/downloads/latest/contact@grimoire.pro/latest.xpl"; - default_area = "navbar"; - }; - "uBlock0@raymondhill.net" = { - installation_mode = "force_installed"; - install_url = "https://addons.mozilla.org/firefox/downloads/latest/uBlock0@raymondhill.net/latest.xpl"; - default_area = "menupanel"; - }; - # Vimium - "{d7742d87-e61d-4b78-b8a1-b469842139fa}" = { - installation_mode = "force_installed"; - install_url = "https://addons.mozilla.org/firefox/downloads/latest/{d7742d87-e61d-4b78-b8a1-b469842139fa}/latest.xpl"; - default_area = "menupanel"; - }; - }; - }; + # Waybar + file.".config/waybar/config.jsonc".source = ./configs/waybar/config.jsonc; + file.".config/waybar/style.css".source = ./configs/waybar/style.css; + + # Sway + file.".config/sway/config".source = ./configs/sway/sway.conf; + file.".config/sway/monitors.conf".source = lib.mkIf (swayMonitorConfig != null) swayMonitorConfig; + file.".config/sway/background-1".source = ./configs/wallpapers/cyber_defiance.jpg; + file.".config/sway/background-2".source = ./configs/wallpapers/cyber_skyscrapers.jpg; + file.".config/sway/background-3".source = ./configs/wallpapers/kali_lol.jpg; + + # i3 + file.".config/i3/config".source = ./configs/i3/i3.conf; + file."/home/crow/.xinitrc".source = ./configs/x11/xinitrc; + }; + + xdg = { + configHome = "/home/crow/.config"; + enable = true; + }; + + programs = { + firefox = { + enable = true; + policies = { + BlockAboutConfig = true; + DisableFirefoxStudies = true; + DisableFormHistory = true; + DisablePasswordReveal = true; + DisablePocket = true; + DisableProfileImport = true; + DontCheckDefaultBrowser = true; + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; }; + Homepage = { + URL = "https://home.wanderingcrow.net"; + StartPage = "homepage"; + }; + OfferToSaveLogins = false; + PasswordManagerEnabled = false; + ExtensionSettings = { + "*".installation_mode = "blocked"; + "*".blocked_install_message = "Please manage extensions through your NixOS config"; + # Bitwarden + "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { + installation_mode = "force_installed"; + install_url = "https://addons.mozilla.org/firefox/downloads/latest/{446900e4-71c2-419f-a6a7-df9c091e268b}/latest.xpl"; + default_area = "navbar"; + }; + "contact@grimoire.pro" = { + installation_mode = "force_installed"; + install_url = "https://addons.mozilla.org/firefox/downloads/latest/contact@grimoire.pro/latest.xpl"; + default_area = "navbar"; + }; + "uBlock0@raymondhill.net" = { + installation_mode = "force_installed"; + install_url = "https://addons.mozilla.org/firefox/downloads/latest/uBlock0@raymondhill.net/latest.xpl"; + default_area = "menupanel"; + }; + # Vimium + "{d7742d87-e61d-4b78-b8a1-b469842139fa}" = { + installation_mode = "force_installed"; + install_url = "https://addons.mozilla.org/firefox/downloads/latest/{d7742d87-e61d-4b78-b8a1-b469842139fa}/latest.xpl"; + default_area = "menupanel"; + }; + }; + }; }; + }; } diff --git a/modules/users/crow/user.nix b/modules/users/crow/user.nix index 24ac2cc..1bd2597 100644 --- a/modules/users/crow/user.nix +++ b/modules/users/crow/user.nix @@ -1,25 +1,30 @@ -{ pkgs, lib, config, ...}: { - config.users.users.crow = lib.mkIf config.user.crow.enable { - isNormalUser = true; - initialPassword = "changeme"; - extraGroups = [ "wheel" "networkmanager" "audio" "plugdev" ]; - }; +{ + pkgs, + lib, + config, + ... +}: { + config.users.users.crow = lib.mkIf config.user.crow.enable { + isNormalUser = true; + initialPassword = "changeme"; + extraGroups = ["wheel" "networkmanager" "audio" "plugdev"]; + }; - config.systemd.services.note_sync = { - enable = true; - description = "Auto sync notes to remote"; - serviceConfig = { - User = "crow"; - Type = "oneshot"; - }; - path = [ - "/run/current-system/sw" - ]; - startAt = [ - "*:0/5" - ]; - script = "cd /home/crow/Notes\ngit pull\ngit add .\ngit diff-index --quiet HEAD || git commit -am 'automatic backup'\ngit push"; + config.systemd.services.note_sync = { + enable = true; + description = "Auto sync notes to remote"; + serviceConfig = { + User = "crow"; + Type = "oneshot"; }; + path = [ + "/run/current-system/sw" + ]; + startAt = [ + "*:0/5" + ]; + script = "cd /home/crow/Notes\ngit pull\ngit add .\ngit diff-index --quiet HEAD || git commit -am 'automatic backup'\ngit push"; + }; - config.home-manager.users.crow = lib.mkIf config.user.crow.home.enable ./home.nix; + config.home-manager.users.crow = lib.mkIf config.user.crow.home.enable ./home.nix; } diff --git a/modules/users/default.nix b/modules/users/default.nix index cc7e1d1..ff84344 100644 --- a/modules/users/default.nix +++ b/modules/users/default.nix @@ -1,12 +1,12 @@ {config, ...}: { - imports = [ - ./crow - ./overseer - ]; + imports = [ + ./crow + ./overseer + ]; - config.home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - backupFileExtension = "backup"; - }; + config.home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + backupFileExtension = "backup"; + }; } diff --git a/modules/users/overseer/default.nix b/modules/users/overseer/default.nix index cc13c74..ae86a01 100644 --- a/modules/users/overseer/default.nix +++ b/modules/users/overseer/default.nix @@ -1,6 +1,10 @@ -{lib, config, ...}: { - imports = [ - ./user.nix - ./podman.nix - ]; +{ + lib, + config, + ... +}: { + imports = [ + ./user.nix + ./podman.nix + ]; } diff --git a/modules/users/overseer/podman.nix b/modules/users/overseer/podman.nix index c842737..f4b94b7 100644 --- a/modules/users/overseer/podman.nix +++ b/modules/users/overseer/podman.nix @@ -1,10 +1,11 @@ -{ lib, config, ...}: { - -# virtualisation.oci-containers = { -# backend = "podman"; -# containers = { -# containers.grimoire = { -# - - +{ + lib, + config, + ... +}: { + # virtualisation.oci-containers = { + # backend = "podman"; + # containers = { + # containers.grimoire = { + # } diff --git a/modules/users/overseer/user.nix b/modules/users/overseer/user.nix index c048b85..878c947 100644 --- a/modules/users/overseer/user.nix +++ b/modules/users/overseer/user.nix @@ -1,7 +1,11 @@ -{ lib, config, ...}: { - config.users.users.overseer = lib.mkIf config.user.overseer.enable { - isNormalUser = true; - initialPassword = "changeme"; - extraGroups = [ "wheel" "libvirtd" ]; - }; +{ + lib, + config, + ... +}: { + config.users.users.overseer = lib.mkIf config.user.overseer.enable { + isNormalUser = true; + initialPassword = "changeme"; + extraGroups = ["wheel" "libvirtd"]; + }; }