diff --git a/home/programs/firefox.nix b/home/programs/firefox.nix index e1378f2..02fbd88 100644 --- a/home/programs/firefox.nix +++ b/home/programs/firefox.nix @@ -1,5 +1,4 @@ { - osConfig, pkgs, lib, ... @@ -7,7 +6,7 @@ profileName = "jsw.nixos-default"; in { programs.firefox = { - enable = osConfig.niksos.desktop; + enable = true; package = pkgs.wrapFirefox pkgs.firefox-unwrapped { extraPolicies = { DisableFirefoxStudies = true; diff --git a/home/programs/mpv.nix b/home/programs/mpv.nix index f59a5d5..c9bc832 100644 --- a/home/programs/mpv.nix +++ b/home/programs/mpv.nix @@ -4,7 +4,7 @@ ... }: { programs.mpv = { - enable = osConfig.niksos.desktop; + enable = true; config = { vo = "gpu"; profile = "gpu-hq"; diff --git a/home/programs/nixcord.nix b/home/programs/nixcord.nix index 01883e1..b64db78 100644 --- a/home/programs/nixcord.nix +++ b/home/programs/nixcord.nix @@ -1,7 +1,6 @@ {osConfig, ...}: { programs.nixcord = { - enable = osConfig.niksos.neovim; - + enable = true; discord.enable = false; vesktop.enable = true; vesktopConfig = { diff --git a/home/programs/other.nix b/home/programs/other.nix index 8213aec..fd53b51 100644 --- a/home/programs/other.nix +++ b/home/programs/other.nix @@ -4,7 +4,7 @@ osConfig, ... }: { - home.packages = lib.mkIf osConfig.niksos.desktop [ + home.packages = [ pkgs.spotify pkgs.signal-desktop ]; diff --git a/home/services/udiskie.nix b/home/services/udiskie.nix index 4d2526b..7f39023 100644 --- a/home/services/udiskie.nix +++ b/home/services/udiskie.nix @@ -1,6 +1,5 @@ -{osConfig, ...}: { +{ services.udiskie = { - enable = osConfig.niksos.desktop; tray = "never"; #NOTE: Don't have a bar (yet?) }; } diff --git a/home/shell/other.nix b/home/shell/other.nix index 97bf8c0..d3c260c 100644 --- a/home/shell/other.nix +++ b/home/shell/other.nix @@ -10,21 +10,21 @@ pkgs.gh pkgs.ripgrep pkgs.p7zip - pkgs.rsync pkgs.usbutils pkgs.pciutils pkgs.inetutils pkgs.aria2 pkgs.dua pkgs.file - ] - ++ lib.optionals osConfig.niksos.desktop [ - inputs.somcli.defaultPackage.${pkgs.system} pkgs.ffmpeg pkgs.gurk-rs pkgs.playerctl ] ++ lib.optionals osConfig.niksos.bluetooth [ pkgs.ear2ctl + ] + ++ lib.optionals osConfig.niksos.portable [ + inputs.somcli.defaultPackage.${pkgs.system} ]; + ; } diff --git a/home/shell/repl/lib.nix b/home/shell/repl/lib.nix index 7a2f2b3..e90348a 100644 --- a/home/shell/repl/lib.nix +++ b/home/shell/repl/lib.nix @@ -32,7 +32,9 @@ nixpkgsFromInputsPath = flake.inputs.nixpkgs.outPath or ""; nixpkgs = - flake.pkgs.${currentSystem}.nixpkgs + flake.pkgs.${ + currentSystem + }.nixpkgs or ( if nixpkgsFromInputsPath != "" then import nixpkgsFromInputsPath {} diff --git a/home/style/default.nix b/home/style/default.nix index 6a7d5ce..ea66857 100644 --- a/home/style/default.nix +++ b/home/style/default.nix @@ -5,7 +5,7 @@ ... }: { stylix = { - enable = osConfig.niksos.desktop; + enable = true; autoEnable = lib.mkDefault true; image = ./background.png; diff --git a/home/wayland/default.nix b/home/wayland/default.nix index b1171b6..fc64e5b 100644 --- a/home/wayland/default.nix +++ b/home/wayland/default.nix @@ -5,7 +5,7 @@ ... }: let inherit (lib) mkIf; - inherit (osConfig.niksos) desktop; + cfg = osConfig.niksos.desktop.hyprland; in { imports = [ ./fuzzel.nix @@ -14,11 +14,11 @@ in { ./mako.nix ]; - home.packages = mkIf desktop [ + home.packages = mkIf cfg [ pkgs.wl-clipboard ]; - home.sessionVariables = mkIf desktop { + home.sessionVariables = mkIf cfg { #FIXME: migrate to hyprconf QT_QPA_PLATFORM = "wayland"; SDL_VIDEODRIVER = "wayland"; XDG_SESSION_TYPE = "wayland"; diff --git a/home/wayland/fuzzel.nix b/home/wayland/fuzzel.nix index 57894ef..0b8649c 100644 --- a/home/wayland/fuzzel.nix +++ b/home/wayland/fuzzel.nix @@ -5,7 +5,7 @@ ... }: { programs.fuzzel = { - enable = osConfig.niksos.desktop; + enable = osConfig.niksos.desktop.hyprland; settings.main = { launch-prefix = "${lib.getExe pkgs.uwsm} app --"; }; diff --git a/home/wayland/hyprland/binds.nix b/home/wayland/hyprland/binds.nix index 6328310..cec1a52 100644 --- a/home/wayland/hyprland/binds.nix +++ b/home/wayland/hyprland/binds.nix @@ -8,6 +8,7 @@ }: let inherit (lib) getExe; inherit (config.lib.stylix.colors) base0D; + inherit (osConfig.niksos) desktop games portable fingerprint; runOnce = program: "pgrep ${program} || uwsm app -- ${program}"; uwsm = getExe pkgs.uwsm; @@ -35,11 +36,11 @@ nmtui = termapp "${pkgs.networkmanager}/bin/nmtui"; somcli = let - interactiveSom = pkgs.writeShellScriptBin "somcli" '' + somSleep = pkgs.writeShellScriptBin "somsleep" '' ${getExe inputs.somcli.defaultPackage.${pkgs.system}} && sleep 5 ''; termSom = pkgs.writeShellScriptBin "somfoot" '' - ${foot} -a "foot-somcli" ${getExe interactiveSom} + ${foot} -a "foot-somcli" ${getExe somSleep} ''; in appE termSom; @@ -61,7 +62,7 @@ ) 10); in { - config = lib.mkIf osConfig.niksos.desktop { + config = lib.mkIf desktop { home.file.".XCompose".text = '' : "¯\\_(ツ)_/¯" # Shrug. ''; @@ -88,7 +89,6 @@ in { "$mod, Return, exec, ${foot}" "$mod Shift, Return, exec, ${firefox}" "$mod, Escape, exec, ${hyprlock}" - "$mod Shift, S, exec, ${somcli}" "$mod, A, exec, ${pulsemixer}" "$mod, B, exec, ${bluetui}" @@ -111,13 +111,18 @@ in { "$mod SHIFT, j, movewindow, d" ] ++ workspaces - ++ lib.optionals osConfig.niksos.games (let + ++ lib.optionals games (let suyu = "${appE pkgs.suyu} -ql"; dolphin = appE pkgs.dolphin-emu; in [ "Super, s, exec, ${suyu}" "Super, d, exec, ${dolphin}" - ]); + ]) + ++ lib.optionals portable [ + "$mod Shift, S, exec, ${somcli}" + ] ++ lib.optionals fingerprint [ + ", XF86PowerOff, exec, ${uwsm} app -- pgrep fprintd-verify && exit 0 || ${foot} -a 'foot-fprintd' sh -c 'fprintd-verify && systemctl sleep'" #NOTE: Also check home/wayland/hyprland/settings + system/hardware/fingerprint + ]; bindl = [ # media controls diff --git a/home/wayland/hyprland/default.nix b/home/wayland/hyprland/default.nix index 59852c2..6baaa62 100644 --- a/home/wayland/hyprland/default.nix +++ b/home/wayland/hyprland/default.nix @@ -15,7 +15,7 @@ in { ]; wayland.windowManager.hyprland = { - enable = osConfig.niksos.desktop; + enable = osConfig.niksos.desktop.hyprland; settings = { env = [ "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" diff --git a/home/wayland/hyprland/settings.nix b/home/wayland/hyprland/settings.nix index 40bf90b..225ede9 100644 --- a/home/wayland/hyprland/settings.nix +++ b/home/wayland/hyprland/settings.nix @@ -1,4 +1,4 @@ -{ +{lib, osConfig, ...}: { wayland.windowManager.hyprland.settings = { xwayland = { force_zero_scaling = true; @@ -93,6 +93,10 @@ "float, class:com.github.phase1geo.annotator" "float, class:foot-somcli" "size >30% >30%, class:foot-somcli" + ] ++ lib.optionals osConfig.niksos.fingerprint [ + "float, class:foot-fprintd" ]; + #NOTE: Also check home/wayland/hyprland/binds + system/hardware/fingerprint + }; } diff --git a/home/wayland/hyprlock.nix b/home/wayland/hyprlock.nix index 3ed7b91..cfdc5e8 100644 --- a/home/wayland/hyprlock.nix +++ b/home/wayland/hyprlock.nix @@ -1,12 +1,12 @@ { - config, osConfig, + config, ... }: let inherit (config.lib.stylix.colors) base05; in { programs.hyprlock = { - enable = osConfig.niksos.desktop; + enable = osConfig.niksos.desktop.hyprland; settings = { general = { diff --git a/home/wayland/mako.nix b/home/wayland/mako.nix index cb26363..a528178 100644 --- a/home/wayland/mako.nix +++ b/home/wayland/mako.nix @@ -1,6 +1,6 @@ -{osConfig, ...}: { +{osConfig, ...}:{ services.mako = { - enable = osConfig.niksos.desktop; + enable = osConfig.niksos.desktop.hyprland; settings.defaultTimeout = 5000; }; } diff --git a/hosts/default.nix b/hosts/default.nix index a472c62..7ffc0a6 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -54,7 +54,10 @@ in { networking.hostName = "vm"; niksos = { - desktop = true; + desktop = { + enable = true; + hyprland = true; + }; neovim = true; }; diff --git a/hosts/lapserv/default.nix b/hosts/lapserv/default.nix index 69b99ee..5490548 100644 --- a/hosts/lapserv/default.nix +++ b/hosts/lapserv/default.nix @@ -13,7 +13,7 @@ # settings.ffmepg.accel = "nvenc"; settings.ffmpeg.preferredHwDevice = "/dev/dri/renderD128"; accelerationDevices = [ - "/dev/dri/renderD128" + "/dev/dri/renderD128" ]; }; diff --git a/hosts/lapserv/hardware-configuration.nix b/hosts/lapserv/hardware-configuration.nix index 07af40e..f5ae11a 100644 --- a/hosts/lapserv/hardware-configuration.nix +++ b/hosts/lapserv/hardware-configuration.nix @@ -1,30 +1,34 @@ # 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" "sd_mod" ]; - boot.initrd.kernelModules = [ ]; - boot.kernelModules = [ "kvm-intel" ]; - boot.extraModulePackages = [ ]; + boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "sd_mod"]; + boot.initrd.kernelModules = []; + boot.kernelModules = ["kvm-intel"]; + boot.extraModulePackages = []; - fileSystems."/" = - { device = "/dev/disk/by-uuid/33b7e681-d92a-40db-a172-b797591a1e2e"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/33b7e681-d92a-40db-a172-b797591a1e2e"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/0BEA-7525"; - fsType = "vfat"; - options = [ "fmask=0022" "dmask=0022" ]; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/0BEA-7525"; + 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 diff --git a/hosts/laptop/default.nix b/hosts/laptop/default.nix index fc74b03..9028eee 100644 --- a/hosts/laptop/default.nix +++ b/hosts/laptop/default.nix @@ -13,13 +13,17 @@ in { ]; niksos = { - bluetooth = true; fingerprint = true; - games = true; - desktop = true; + bluetooth = true; portable = true; + neovim = true; - kde = true; + games = true; + desktop = { + enable = true; + hyprland = true; + kde = false; + }; }; home-manager.users.jsw.wayland.windowManager.hyprland.settings.monitor = ["eDP-1,2880x1920@120,0x0,1.5,vrr,1"]; diff --git a/hosts/minimal/default.nix b/hosts/minimal/default.nix index d26559f..69cc980 100644 --- a/hosts/minimal/default.nix +++ b/hosts/minimal/default.nix @@ -1,4 +1,6 @@ { + #NOTE: This config serves as a list of all of the available options + imports = [ ./hardware-configuration.nix ]; @@ -6,9 +8,21 @@ boot.plymouth.enable = false; services.fwupd.enable = false; - # Other stuff that's enabled by default because i'll use it but it's still bloat is (note that this list shares a lot of resources): - # - graphics drivers (~1.8gb) - # - networkmanager (~1.25gb) - # - polkit (~1.25gb) - # - other stuff.. total: 4.68gb + niksos = { + bluetooth = false; + desktop = { enable = false; hyprland = false; kde = false; }; + fingerprint = false; + games = false; + graphics = { enable = false; intel = false; nvidia = false; }; + neovim = false; + portable = false; + server = false; + }; + + #NOTE: Old info + ## Other stuff that's enabled by default because i'll use it but it's still bloat is (note that this list shares a lot of resources): + ## - graphics drivers (~1.8gb) + ## - networkmanager (~1.25gb) + ## - polkit (~1.25gb) + ## - other stuff.. total: 4.68gb } diff --git a/system/core/defaultPackages.nix b/system/core/defaultPackages.nix index b6e9f36..b62d80c 100644 --- a/system/core/defaultPackages.nix +++ b/system/core/defaultPackages.nix @@ -4,8 +4,10 @@ ... }: { environment.defaultPackages = [ + pkgs.git # We need git for flakes pkgs.neovim inputs.agenix.packages.${pkgs.system}.default + pkgs.rsync ]; # Still have to be able to edit configs. environment.sessionVariables = {EDITOR = "nvim";}; } diff --git a/system/default.nix b/system/default.nix index b82f665..c57b7cf 100644 --- a/system/default.nix +++ b/system/default.nix @@ -7,5 +7,6 @@ ./programs ./server ./services + ./desktop ]; } diff --git a/system/desktop/default.nix b/system/desktop/default.nix new file mode 100644 index 0000000..3ff2506 --- /dev/null +++ b/system/desktop/default.nix @@ -0,0 +1,18 @@ +{lib, ...}: let + mkEO = lib.mkEnableOption; +in { + imports = [ + ./greetd.nix + ./hyprland.nix + ./pipewire.nix + ./plasma6.nix + ./polkit.nix + ./xdg.nix + ]; + + options.niksos.desktop = { + enable = mkEO "enable desktop related programs."; + hyprland = mkEO "enable hyprland related programs."; + kde = mkEO "enable kde specialisation."; + }; +} diff --git a/system/services/greetd.nix b/system/desktop/greetd.nix similarity index 78% rename from system/services/greetd.nix rename to system/desktop/greetd.nix index 2558b1f..ea8c60d 100644 --- a/system/services/greetd.nix +++ b/system/desktop/greetd.nix @@ -2,8 +2,10 @@ config, lib, ... -}: { - config = lib.mkIf config.niksos.desktop { +}: let + cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland.enable; +in { + config = lib.mkIf cfg { # greetd display manager services.greetd = let session = { diff --git a/system/desktop/hyprland.nix b/system/desktop/hyprland.nix new file mode 100644 index 0000000..f281e5a --- /dev/null +++ b/system/desktop/hyprland.nix @@ -0,0 +1,16 @@ +{ + config, + pkgs, + lib, + ... +}: let + cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland.enable; +in { + config = lib.mkIf cfg { + programs.hyprland = { + enable = true; + withUWSM = true; + }; + environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Makes electron apps use wayland. + }; +} diff --git a/system/services/pipewire.nix b/system/desktop/pipewire.nix similarity index 94% rename from system/services/pipewire.nix rename to system/desktop/pipewire.nix index 4d4f59d..e6ccf2e 100644 --- a/system/services/pipewire.nix +++ b/system/desktop/pipewire.nix @@ -3,8 +3,10 @@ lib, pkgs, ... -}: { - config = lib.mkIf config.niksos.desktop { +}: let + cfg = config.niksos.desktop.enable; +in { + config = lib.mkIf cfg { security.rtkit.enable = true; services.pipewire = { diff --git a/system/desktop/plasma6.nix b/system/desktop/plasma6.nix new file mode 100644 index 0000000..9a033d0 --- /dev/null +++ b/system/desktop/plasma6.nix @@ -0,0 +1,33 @@ +{ + lib, + pkgs, + config, + ... +}: let + cfg = config.niksos.desktop.enable && config.niksos.desktop.kde.enable; +in { + config = lib.mkIf cfg { + niksos.desktop.hyprland = lib.mkForce false; + specialisation.de.configuration = { + services = { + greetd = let + session = { + command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland"; + user = "jsw"; + }; + in { + enable = true; + settings = { + terminal.vt = 1; + default_session = session; + initial_session = session; + }; + }; + + desktopManager.plasma6.enable = true; + }; + + home-manager.users.jsw.stylix.autoEnable = false; + }; + }; +} diff --git a/system/desktop/polkit.nix b/system/desktop/polkit.nix new file mode 100644 index 0000000..2b90acd --- /dev/null +++ b/system/desktop/polkit.nix @@ -0,0 +1,22 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland.enable; +in { + systemd.user.services.polkit-gnome-authentication-agent-1 = lib.mkIf cfg { + description = "polkit-gnome-authentication-agent-1"; + wantedBy = ["graphical-session.target"]; + wants = ["graphical-session.target"]; + after = ["graphical-session.target"]; + serviceConfig = { + Type = "simple"; + ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; + Restart = "on-failure"; + RestartSec = 1; + TimeoutStopSec = 10; + }; + }; +} diff --git a/system/programs/xdg.nix b/system/desktop/xdg.nix similarity index 67% rename from system/programs/xdg.nix rename to system/desktop/xdg.nix index 18c971f..a4562df 100644 --- a/system/programs/xdg.nix +++ b/system/desktop/xdg.nix @@ -3,8 +3,10 @@ config, lib, ... -}: { - xdg.portal = lib.mkIf config.niksos.desktop { +}: let + cfg = config.niksos.desktop.enable && config.niksos.desktop.hyprland.enable; +in { + xdg.portal = lib.mkIf cfg { enable = true; xdgOpenUsePortal = true; config = { diff --git a/system/hardware/fingerprint.nix b/system/hardware/fingerprint.nix index 1212b33..d683549 100644 --- a/system/hardware/fingerprint.nix +++ b/system/hardware/fingerprint.nix @@ -9,13 +9,14 @@ uwsm = lib.getExe pkgs.uwsm; foot = lib.getExe pkgs.foot; in { - options.niksos.fingerprint = mkEnableOption "fingerprint support."; + #NOTE: Also check home/wayland/hyprland/settings + home/wayland/hyprland/binds + options.niksos.fingerprint = mkEnableOption "fingerprint support."; config = mkIf fingerprint { services.fprintd.enable = true; - home-manager.users.jsw.wayland.windowManager.hyprland.settings = mkIf desktop { - bind = [ + home-manager.users.jsw.wayland.windowManager.hyprland.settings = mkIf desktop.hyprland { + bind = mkIf fingerprint [ ", XF86PowerOff, exec, ${uwsm} app -- pgrep fprintd-verify && exit 0 || ${foot} -a 'foot-fprintd' sh -c 'fprintd-verify && systemctl sleep'" ]; windowrule = [ diff --git a/system/hardware/graphics.nix b/system/hardware/graphics.nix index 7683306..c9b79fe 100644 --- a/system/hardware/graphics.nix +++ b/system/hardware/graphics.nix @@ -3,14 +3,13 @@ pkgs, lib, ... -}: let +}: let inherit (lib) optionals mkEnableOption mkDefault; graphics = config.niksos.graphics; enable = graphics.enable; nvidia = graphics.enable && graphics.nvidia; intel = graphics.enable && graphics.intel; - in { options.niksos.graphics = { enable = mkEnableOption "core graphics"; diff --git a/system/network/default.nix b/system/network/default.nix index 073f9ef..8c9c424 100644 --- a/system/network/default.nix +++ b/system/network/default.nix @@ -3,9 +3,9 @@ imports = [ ./avahi.nix ./tailscale.nix - ./wireguard.nix ]; + #FIXME: networking = { # use quad9 with DNS over TLS nameservers = ["9.9.9.9#dns.quad9.net"]; diff --git a/system/network/wireguard.nix b/system/network/wireguard.nix deleted file mode 100644 index 7dcaa49..0000000 --- a/system/network/wireguard.nix +++ /dev/null @@ -1,72 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: let - inherit (lib) mkIf optionals; - inherit (config.networking) hostName; - iptables = lib.getExe' pkgs.iptables "iptables"; - - port = 53; - server = "lapserv"; - - serverCfg = { - externalInterface = "eth0"; - privateKeyFile = config.age.secrets.wg-lapserv-private.path; - publicKey = "aM+OrvByr63RxKsU9hu0A1lKJr8fPHifHDhBekkHR0c="; - publicIp = "80.242.224.170"; - ip = "10.100.0.1"; - }; - deviceConfig = { - laptop = { - publicKey = config.age.secrets.wg-laptop-private.path; - privateKeyFile = "1su1FfHuEYIvJLaZPwpN86kmH19d/NH/zuh9DjIOyQI="; - ip = "10.100.0.2"; - }; - }; - - isServer = server == config.networking.hostName; - currentConfig = - if isServer - then serverCfg - else deviceConfig.${hostName}; -in { - networking.nat = mkIf isServer { - enable = true; - inherit (serverCfg) externalInterface; - internalInterfaces = ["wg0"]; - }; - networking.firewall.allowedUDPPorts = [port]; - - networking.wireguard.interfaces.wg0 = { - inherit (currentConfig) privateKeyFile; - - listenPort = port; - ips = ["${currentConfig.ip}/24"]; - - peers = - [] - ++ (optionals isServer (builtins.concatMap (x: { - inherit (x) publicKey; - allowedIPs = ["${x.ip}/32"]; - }) - (builtins.attrValues - deviceConfig))) - ++ (optionals (!isServer) [ - { - inherit (serverCfg) publicKey; - allowedIPs = ["0.0.0.0/0"]; - endpoint = "${serverCfg.publicIp}:${builtins.toString port}"; - persistentKeepalive = 25; - } - ]); - - postSetup = mkIf isServer '' - ${iptables} -t nat -A POSTROUTING -s 10.100.0.0/24 -o ${serverCfg.externalInterface} -j MASQUERADE - ''; - postShutdown = mkIf isServer '' - ${iptables} -t nat -D POSTROUTING -s 10.100.0.0/24 -o ${serverCfg.externalInterface} -j MASQUERADE - ''; - }; -} diff --git a/system/nix/default.nix b/system/nix/default.nix index 0cb22f4..3bdf577 100644 --- a/system/nix/default.nix +++ b/system/nix/default.nix @@ -9,9 +9,11 @@ ./nh.nix ./nixpkgs.nix ./substituters.nix - ./nix-index.nix ]; + # Really annoying message when command not found + programs.command-not-found.enable = false; + # we need git for flakes environment.systemPackages = [pkgs.git]; diff --git a/system/nix/nix-index.nix b/system/nix/nix-index.nix deleted file mode 100644 index 7cb8b17..0000000 --- a/system/nix/nix-index.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - programs.command-not-found.enable = false; - programs.nix-index = { - enable = true; - enableFishIntegration = true; - }; -} diff --git a/system/programs/default.nix b/system/programs/default.nix index 55efbe8..45d9867 100644 --- a/system/programs/default.nix +++ b/system/programs/default.nix @@ -3,10 +3,6 @@ ./fish.nix ./games.nix ./home-manager.nix - ./hyprland.nix ./neovim.nix - ./plasma6.nix - ./polkit.nix - ./xdg.nix ]; } diff --git a/system/programs/games.nix b/system/programs/games.nix index e06e2f1..a65faf3 100644 --- a/system/programs/games.nix +++ b/system/programs/games.nix @@ -3,65 +3,66 @@ pkgs, lib, ... -}: { +}: let + cfg = config.niksos.games && config.niksos.desktop.enable; +in { options.niksos.games = lib.mkEnableOption "gaming related stuff."; - config = lib.mkIf config.niksos.games { - # nixpkgs.overlays = [ - # (final: prev: let - # version = "1.4.2"; - # hash = "sha256-xe0qlbtt06CUK8bXyaGDtCcHOXpSnkbuvcxaDJjeS/c="; - # npmHash = "sha256-/+NhlQydGS6+2jEjpbwycwKplVo/++wcdPiBNY3R3FI="; - # cargoHash = "sha256-VwzGbm34t7mg9ndmTkht6Ho32NQ+6uxuPTKi3+VrhYo="; - # in { - # gale = prev.gale.overrideAttrs (new: old: { - # src = prev.fetchFromGitHub { - # inherit version hash; - # owner = "Kesomannen"; - # repo = "gale"; - # rev = "1.4.2"; - # }; - # npmDeps = prev.fetchNpmDeps { - # hash = npmHash; - # name = "${new.pname}-${new.version}-npm-deps"; - # inherit (new) src; - # }; - # cargoDeps = prev.rustPlatform.fetchCargoVendor { - # inherit - # (new) - # pname - # version - # src - # cargoRoot - # ; - # hash = cargoHash; - # }; - # }); - # }) - # ]; - users.users.jsw.packages = [pkgs.gale]; + config = lib.mkIf cfg { + # nixpkgs.overlays = [ + # (final: prev: let + # version = "1.4.2"; + # hash = "sha256-xe0qlbtt06CUK8bXyaGDtCcHOXpSnkbuvcxaDJjeS/c="; + # npmHash = "sha256-/+NhlQydGS6+2jEjpbwycwKplVo/++wcdPiBNY3R3FI="; + # cargoHash = "sha256-VwzGbm34t7mg9ndmTkht6Ho32NQ+6uxuPTKi3+VrhYo="; + # in { + # gale = prev.gale.overrideAttrs (new: old: { + # src = prev.fetchFromGitHub { + # inherit version hash; + # owner = "Kesomannen"; + # repo = "gale"; + # rev = "1.4.2"; + # }; + # npmDeps = prev.fetchNpmDeps { + # hash = npmHash; + # name = "${new.pname}-${new.version}-npm-deps"; + # inherit (new) src; + # }; + # cargoDeps = prev.rustPlatform.fetchCargoVendor { + # inherit + # (new) + # pname + # version + # src + # cargoRoot + # ; + # hash = cargoHash; + # }; + # }); + # }) + # ]; - programs = { - gamescope = { - enable = true; - capSysNice = true; - args = [ - "--rt" - "--expose-wayland" - ]; + programs = { + gamescope = { + enable = true; + capSysNice = true; + args = [ + "--rt" + "--expose-wayland" + ]; + }; + + steam = { + enable = true; + + extraCompatPackages = [ + pkgs.proton-ge-bin + ]; + + gamescopeSession.enable = true; + }; }; - - steam = { - enable = true; - - extraCompatPackages = [ - pkgs.proton-ge-bin - ]; - - gamescopeSession.enable = true; + environment.variables = { + "STEAM_FORCE_DESKTOP_UI_SCALING" = "1.5"; #FIXME:. }; }; - environment.variables = { - "STEAM_FORCE_DESKTOP_UI_SCALING" = "1.5"; #FIXME:. - }; - }; } diff --git a/system/programs/home-manager.nix b/system/programs/home-manager.nix index 45bef32..6be68d4 100644 --- a/system/programs/home-manager.nix +++ b/system/programs/home-manager.nix @@ -1,13 +1,13 @@ { inputs, specialArgs, + lib, + config, ... -}: { - imports = [ - inputs.hm.nixosModules.default - ]; - - home-manager = { +}: let + cfg = config.niksos.desktop.enable; +in { + home-manager = lib.mkIf cfg { useGlobalPkgs = true; useUserPackages = true; extraSpecialArgs = specialArgs; @@ -16,5 +16,5 @@ users.jsw = import ../../home; }; - programs.dconf.enable = true; # else gtk-managed stuff won't work + programs.dconf.enable = cfg; # else gtk-managed stuff won't work } diff --git a/system/programs/hyprland.nix b/system/programs/hyprland.nix deleted file mode 100644 index 3202614..0000000 --- a/system/programs/hyprland.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: { - options.niksos.desktop = lib.mkEnableOption "desktop related stuff."; - config = lib.mkIf config.niksos.desktop { - programs.hyprland = { - enable = true; - withUWSM = true; - }; - environment.systemPackages = [ - #FIXME: migrated to home-manager - pkgs.kitty # This is the default config's terminal and also my main one. - ]; - environment.sessionVariables.NIXOS_OZONE_WL = "1"; # Makes electron apps use wayland. - }; -} diff --git a/system/programs/neovim.nix b/system/programs/neovim.nix index 0608a57..a82ff7b 100644 --- a/system/programs/neovim.nix +++ b/system/programs/neovim.nix @@ -1,4 +1,5 @@ {lib, ...}: { options.niksos.neovim = lib.mkEnableOption "the neovim editor"; # The actual config resides in NixOS/home/programs/neovim. + # NOTE: This is for the customisation of the neovim editor, which uses a lot of disk space. Barebones version will be installed anyhow. } diff --git a/system/programs/plasma6.nix b/system/programs/plasma6.nix deleted file mode 100644 index 3af89c9..0000000 --- a/system/programs/plasma6.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - lib, - pkgs, - config, - ... -}: { - options.niksos.kde = lib.mkEnableOption "a kde specialisation. Will enable desktop settings."; - - config.specialisation.de.configuration = lib.mkIf config.niksos.kde { - niksos.desktop = lib.mkForce true; - - services = { - greetd = let - session = { - command = "${pkgs.kdePackages.plasma-workspace}/bin/startplasma-wayland"; - user = "jsw"; - }; - in { - settings = lib.mkForce { - terminal.vt = 1; - default_session = session; - initial_session = session; - }; - }; - - desktopManager.plasma6.enable = true; - }; - - home-manager.users.jsw = { - stylix.autoEnable = false; - }; - }; -} diff --git a/system/programs/polkit.nix b/system/programs/polkit.nix deleted file mode 100644 index 2b3f5a4..0000000 --- a/system/programs/polkit.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: { - systemd = { - user.services.polkit-gnome-authentication-agent-1 = lib.mkIf config.niksos.desktop { - description = "polkit-gnome-authentication-agent-1"; - wantedBy = ["graphical-session.target"]; - wants = ["graphical-session.target"]; - after = ["graphical-session.target"]; - serviceConfig = { - Type = "simple"; - ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; - Restart = "on-failure"; - RestartSec = 1; - TimeoutStopSec = 10; - }; - }; - }; -} diff --git a/system/server/bot.nix b/system/server/bot.nix index 04da767..78bcec2 100644 --- a/system/server/bot.nix +++ b/system/server/bot.nix @@ -49,7 +49,7 @@ in { ExecStart = "${bash} -c 'cd ${dataDir} && deno run -A ${programDir}/src/main.ts'"; User = "dcbot"; Group = "dcbot"; - Restart = "always"; + Restart = "always"; }; }; diff --git a/system/services/default.nix b/system/services/default.nix index c4d122c..8157213 100644 --- a/system/services/default.nix +++ b/system/services/default.nix @@ -1,8 +1,6 @@ { imports = [ - ./greetd.nix ./kanata.nix - ./pipewire.nix ./power.nix ./ssh.nix ];