diff --git a/overlay.nix b/overlay.nix index a3f0151..59c88d5 100644 --- a/overlay.nix +++ b/overlay.nix @@ -23,7 +23,7 @@ # See https://github.com/jj-vcs/jj/issues/5723 (prev.fetchpatch2 { url = "https://github.com/pluiedev/jj/commit/daa88d4dd485ed0c188023d2af8f811fd4db4a14.patch"; - hash = "sha256-F8fp+LXQwuFVVVnYHJAEaQ9dFr6z9tdCkmcKDC39mM8="; + hash = "sha256-6fDLHVB/tZMNxD7okUVpgT7Fd77KCWThVANJ/Xqg1Xc="; }) ]; doCheck = false; diff --git a/systems/bavette/configuration.nix b/systems/bavette/configuration.nix index 4a6b31f..8a7778c 100644 --- a/systems/bavette/configuration.nix +++ b/systems/bavette/configuration.nix @@ -1,8 +1,8 @@ { inputs, pkgs, - lib, - config, + # lib, + # config, ... }: { @@ -11,26 +11,30 @@ device = "lenovo-wormdingler"; }) ../desktop.nix - ../../users + ../../users/leah ]; # TODO: is this truly necessary? - mobile.system.depthcharge.kpart.dtbs = lib.mkForce ( - pkgs.runCommand "sc7180-dtbs" { } '' - mkdir -p $out - cd $out - ln -sv ${config.mobile.boot.stage-1.kernel.package}/dtbs/qcom/sc7180-trogdor-wormdingler-rev1-inx.dtb - '' - ); + # mobile.system.depthcharge.kpart.dtbs = lib.mkForce ( + # pkgs.runCommand "sc7180-dtbs" { } '' + # mkdir -p $out + # cd $out + # ln -sv ${config.mobile.boot.stage-1.kernel.package}/dtbs/qcom/sc7180-trogdor-wormdingler-rev1-inx.dtb + # '' + # ); hardware.firmware = with pkgs; [ chromeos-sc7180-unredistributable-firmware ]; - users.users.leah = { - enable = true; - presets.niri.enable = false; - }; - services.desktopManager.gnome.enable = true; + services.displayManager.gdm.enable = true; + + networking.hostName = "bavette"; + + # The default mobile-nixos kernel isn't compiled with + # IPv6 FIB lookup, so the default setting would cause + # nftables to stop working. Not that this little thing + # needs extra security anyways. + networking.firewall.checkReversePath = false; } diff --git a/systems/common.nix b/systems/common.nix index dbd4b54..106db73 100644 --- a/systems/common.nix +++ b/systems/common.nix @@ -57,8 +57,6 @@ # Use dbus-broker for higher D-Bus performance services.dbus.implementation = "broker"; - services.tailscale.enable = true; - # This is very bizarre. # # Within the Tangled CI environment there's no user information at all, @@ -99,6 +97,14 @@ nftables.enable = true; }; + services.tailscale.enable = true; + + # Make nftables wait for tailscaled to go up + systemd.services.nftables = { + after = [ "tailscaled.service" ]; + wants = [ "tailscaled.service" ]; + }; + i18n = { defaultLocale = "en_US.UTF-8"; extraLocales = [ diff --git a/systems/focaccia/configuration.nix b/systems/focaccia/configuration.nix index 6183dcd..fa8e1f7 100644 --- a/systems/focaccia/configuration.nix +++ b/systems/focaccia/configuration.nix @@ -43,10 +43,6 @@ "wheel" # 1984 powers ]; home = "/home/leah"; - - openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINcpWY17MNJBx56APRSvLOfUjHllXn9gY/cV51JaLoh6" - ]; }; services.openssh = { @@ -58,10 +54,6 @@ settings.PermitRootLogin = "prohibit-password"; }; - users.users.root.openssh.authorizedKeys.keys = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKbsavGX9rGRx5R+7ovLn+r7D/w3zkbqCik4bS31moSz" - ]; - # Reverse proxy services.caddy = { enable = true; diff --git a/systems/laptop.nix b/systems/laptop.nix index 2a7ca1f..8a8cc63 100644 --- a/systems/laptop.nix +++ b/systems/laptop.nix @@ -6,7 +6,8 @@ { imports = [ ./desktop.nix - ../users + ../users/leah + ../users/leah/presets/niri ]; # Enable building and testing aarch64 packages for Nixpkgs dev diff --git a/users/leah/default.nix b/users/leah/default.nix index f0d7f5f..ec57f00 100644 --- a/users/leah/default.nix +++ b/users/leah/default.nix @@ -7,12 +7,10 @@ imports = [ ../common.nix ./appearance.nix - ./presets/niri ./programs ]; users.users.leah = { - enable = lib.mkDefault false; # Machines must manually enable the user isNormalUser = true; description = "Leah C"; extraGroups = [ @@ -25,8 +23,12 @@ # FIXME: huge fucking hack # Why isn't this working? who knows packages = config.hjem.users.leah.packages; + + openssh.authorizedKeys.keys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINcpWY17MNJBx56APRSvLOfUjHllXn9gY/cV51JaLoh6" + ]; }; # Name and directory should be populated by users.users - hjem.users.leah.enable = config.users.users.leah.enable; + hjem.users.leah.enable = true; } diff --git a/users/leah/presets/niri/default.nix b/users/leah/presets/niri/default.nix index 1f28175..1b82a01 100644 --- a/users/leah/presets/niri/default.nix +++ b/users/leah/presets/niri/default.nix @@ -13,84 +13,78 @@ ./swayosd ]; - config.users.users.leah.presets.niri = { - enable = lib.mkEnableOption "the Niri preset"; - }; - - options = lib.mkIf config.users.users.leah.presets.niri { - programs.niri.enable = true; + programs.niri.enable = true; - services.gnome.gnome-keyring.enable = true; - security.pam.services.login.enableGnomeKeyring = true; + services.gnome.gnome-keyring.enable = true; + security.pam.services.login.enableGnomeKeyring = true; - hjem.users.leah = { - packages = with pkgs; [ - networkmanagerapplet - xwayland-satellite - brightnessctl - wleave + hjem.users.leah = { + packages = with pkgs; [ + networkmanagerapplet + xwayland-satellite + brightnessctl + wleave - # Desktop utilities - file-roller - loupe - gnome-logs - resources - # I'm using Nautilus here because it a) looks nice - # and b) avoids configuring XDP GNOME to use a XDP GTK's file chooser - nautilus - ]; + # Desktop utilities + file-roller + loupe + gnome-logs + resources + # I'm using Nautilus here because it a) looks nice + # and b) avoids configuring XDP GNOME to use a XDP GTK's file chooser + nautilus + ]; - xdg.config.files."niri/config.kdl".source = ./config.kdl; + xdg.config.files."niri/config.kdl".source = ./config.kdl; - ext.programs.swaylock = { - enable = true; - package = pkgs.swaylock-effects; + ext.programs.swaylock = { + enable = true; + package = pkgs.swaylock-effects; - settings = { - show-failed-attempts = true; - ignore-empty-password = true; - daemonize = true; + settings = { + show-failed-attempts = true; + ignore-empty-password = true; + daemonize = true; - screenshots = true; - scaling = "fit"; - clock = true; - indicator-idle-visible = true; - grace = 3; - effect-blur = "10x10"; - effect-vignette = "0.5:0.8"; - effect-pixelate = 4; + screenshots = true; + scaling = "fit"; + clock = true; + indicator-idle-visible = true; + grace = 3; + effect-blur = "10x10"; + effect-vignette = "0.5:0.8"; + effect-pixelate = 4; - text-color = "#cdd6f4"; - inside-color = "#181825"; - inside-clear-color = "#a6e3a1"; - inside-ver-color = "#cba6f7"; - inside-wrong-color = "#f38ba8"; - ring-color = "#1e1e2e"; - ring-clear-color = "#a6e3a1"; - ring-ver-color = "#cba6f7"; - ring-wrong-color = "#f38ba8"; - key-hl-color = "#eba0ac"; - bs-hl-color = "#6c7086"; - line-color = "#313244"; + text-color = "#cdd6f4"; + inside-color = "#181825"; + inside-clear-color = "#a6e3a1"; + inside-ver-color = "#cba6f7"; + inside-wrong-color = "#f38ba8"; + ring-color = "#1e1e2e"; + ring-clear-color = "#a6e3a1"; + ring-ver-color = "#cba6f7"; + ring-wrong-color = "#f38ba8"; + key-hl-color = "#eba0ac"; + bs-hl-color = "#6c7086"; + line-color = "#313244"; - timestr = "%H:%M"; - datestr = "%e %b '%y / %a"; - }; + timestr = "%H:%M"; + datestr = "%e %b '%y / %a"; }; + }; - ext.programs.vicinae = { - enable = true; - settings = { - closeOnFocusLoss = false; - considerPreedit = true; - font.size = 12; - keybinding = "default"; - popToRootOnClose = true; - window = { - csd = true; - opacity = 0.85; - rounding = 16; - }; + ext.programs.vicinae = { + enable = true; + settings = { + closeOnFocusLoss = false; + considerPreedit = true; + font.size = 12; + keybinding = "default"; + popToRootOnClose = true; + window = { + csd = true; + opacity = 0.85; + rounding = 16; }; }; }; diff --git a/users/leah/programs/steam.nix b/users/leah/programs/steam.nix index b1cc094..0360b6b 100644 --- a/users/leah/programs/steam.nix +++ b/users/leah/programs/steam.nix @@ -5,35 +5,37 @@ ... }: { - programs.gamemode.enable = true; + config = lib.mkIf (pkgs.stdenv.hostPlatform.system == "x86_64-linux") { + programs.gamemode.enable = true; - programs.steam = { - enable = true; + programs.steam = { + enable = true; - package = pkgs.steam.override { - extraEnv = lib.optionalAttrs config.hardware.nvidia.prime.offload.enable { - __NV_PRIME_RENDER_OFFLOAD = 1; - __GLX_VENDOR_LIBRARY_NAME = "nvidia"; + package = pkgs.steam.override { + extraEnv = lib.optionalAttrs config.hardware.nvidia.prime.offload.enable { + __NV_PRIME_RENDER_OFFLOAD = 1; + __GLX_VENDOR_LIBRARY_NAME = "nvidia"; + }; }; - }; - # Install Proton GE by default - extraCompatPackages = [ pkgs.proton-ge-bin ]; + # Install Proton GE by default + extraCompatPackages = [ pkgs.proton-ge-bin ]; - # Some native Linux games *assume* the distro has - # certain packages that may not be present on NixOS. - extraPackages = [ - pkgs.ncurses6 # Crusader Kings III - ]; + # Some native Linux games *assume* the distro has + # certain packages that may not be present on NixOS. + extraPackages = [ + pkgs.ncurses6 # Crusader Kings III + ]; - protontricks.enable = true; - remotePlay.openFirewall = true; - }; + protontricks.enable = true; + remotePlay.openFirewall = true; + }; - hjem.users.leah.packages = [ - (pkgs.makeAutostartItem { - name = "steam"; - package = pkgs.steam; - }) - ]; + hjem.users.leah.packages = [ + (pkgs.makeAutostartItem { + name = "steam"; + package = pkgs.steam; + }) + ]; + }; }