diff --git a/flake.lock b/flake.lock index 2b026da8..e4b43f70 100644 --- a/flake.lock +++ b/flake.lock @@ -383,6 +383,27 @@ "type": "github" } }, + "jovian": { + "inputs": { + "nix-github-actions": "nix-github-actions", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1728679815, + "narHash": "sha256-3IXvY30zzFq7lHFujMupPz3TiPXo8o8qiIjkXUvznCI=", + "owner": "Jovian-Experiments", + "repo": "Jovian-NixOS", + "rev": "e4f4d7832cc559389b93798c1f0d615e3816f4ef", + "type": "github" + }, + "original": { + "owner": "Jovian-Experiments", + "repo": "Jovian-NixOS", + "type": "github" + } + }, "lanzaboote": { "inputs": { "crane": "crane", @@ -410,6 +431,28 @@ "type": "github" } }, + "nix-github-actions": { + "inputs": { + "nixpkgs": [ + "jovian", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1690328911, + "narHash": "sha256-fxtExYk+aGf2YbjeWQ8JY9/n9dwuEt+ma1eUFzF8Jeo=", + "owner": "zhaofengli", + "repo": "nix-github-actions", + "rev": "96df4a39c52f53cb7098b923224d8ce941b64747", + "type": "github" + }, + "original": { + "owner": "zhaofengli", + "ref": "matrix-name", + "repo": "nix-github-actions", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1728492678, @@ -506,6 +549,7 @@ "disko": "disko", "home-manager": "home-manager_2", "iio-hyprland": "iio-hyprland", + "jovian": "jovian", "lanzaboote": "lanzaboote", "nixpkgs": "nixpkgs", "nixpkgs-unstable": "nixpkgs-unstable", diff --git a/flake.nix b/flake.nix index 5f99e624..6f4cebff 100644 --- a/flake.nix +++ b/flake.nix @@ -91,6 +91,7 @@ "fallarbor" "lavaridge" "mauville" + "pacifidlog" "petalburg" "rustboro" "slateport" diff --git a/hosts/pacifidlog/README.md b/hosts/pacifidlog/README.md new file mode 100644 index 00000000..56a5542c --- /dev/null +++ b/hosts/pacifidlog/README.md @@ -0,0 +1,29 @@ +# lavaridge + +## Overview + +Framework Laptop 13 with AMD 7000 series mainboard. My primary machine used for work, productivity, development work, media, you name it. + +## Todo + +- \[x\] upgrade to [2.8k 120Hz Framework screen](https://frame.work/products/display-kit?v=FRANJF0001). + +## Specs + +| Model | Framework Laptop 13 | +|---------|---------------------------| +| Display | 13.5" 2880x1920 120Hz | +| CPU | AMD Ryzen 7640U | +| RAM | 32GB 16GBx2 DDR5-5600Mhz | +| GPU | AMD Radeon 760M | +| Disks | 1TB Sk hynix P41 | + +## Filesystems + +### / + +Encrypted LUKS btrfs volume. + +## Display + +First-gen glossy Framework Laptop 13 screen. Typically used at 1.566667 scaling with Hyprland (1.6 causes strange blurryness). diff --git a/hosts/pacifidlog/default.nix b/hosts/pacifidlog/default.nix new file mode 100644 index 00000000..7d76d24a --- /dev/null +++ b/hosts/pacifidlog/default.nix @@ -0,0 +1,126 @@ +# Lenovo Legion Go +{ + config, + lib, + self, + ... +}: { + imports = [ + ./home.nix + ./secrets.nix + ./stylix.nix + (import ./../../disko/luks-btrfs-subvolumes.nix {disks = ["/dev/nvme0n1"];}) + self.inputs.jovian.nixosModules.default + self.nixosModules.common-base + self.nixosModules.common-locale + self.nixosModules.common-nix + self.nixosModules.common-overlays + self.nixosModules.common-pkgs + self.nixosModules.common-tailscale + self.nixosModules.common-wifi-profiles + self.nixosModules.hw-common-amd-cpu + self.nixosModules.hw-common-amd-gpu + self.nixosModules.hw-common-bluetooth + self.nixosModules.hw-common-laptop-amd-gpu + self.nixosModules.hw-common-ssd + ]; + + boot = { + initrd.systemd.enable = true; + + # lanzaboote = { + # enable = true; + # pkiBundle = "/etc/secureboot"; + # }; + + loader = { + efi.canTouchEfiVariables = true; + systemd-boot.enable = lib.mkForce true; + }; + }; + + environment.variables = { + FLAKE = lib.mkForce "github:alyraffauf/nixcfg/add-pacifidlog"; + GDK_SCALE = "2"; + }; + + jovian.steam = { + enable = true; + autoStart = true; + user = "aly"; + }; + + jovian.decky-loader = { + enable = true; + user = "aly"; + }; + + networking.hostName = "pacifidlog"; + + nixpkgs.overlays = [ + (final: prev: { + brave = prev.brave.override {commandLineArgs = "--gtk-version=4 --enable-wayland-ime";}; + + obsidian = prev.obsidian.overrideAttrs (old: { + installPhase = + builtins.replaceStrings ["--ozone-platform=wayland"] + ["--ozone-platform=wayland --enable-wayland-ime"] + old.installPhase; + }); + + vscodium = prev.vscodium.override {commandLineArgs = "--enable-wayland-ime";}; + + webcord = prev.webcord.overrideAttrs (old: { + installPhase = + builtins.replaceStrings ["--ozone-platform-hint=auto"] + ["--ozone-platform-hint=auto --enable-wayland-ime"] + old.installPhase; + }); + }) + ]; + + services = { + handheld-daemon = { + enable = true; + user = "aly"; + }; + + power-profiles-daemon.enable = true; + upower.enable = true; + }; + + swapDevices = [ + { + device = "/swap/swapfile"; + size = 18 * 1024; + } + ]; + + system.stateVersion = "24.11"; + + ar = { + apps = { + firefox.enable = true; + steam.enable = true; + }; + + desktop = { + hyprland.enable = true; + steam.enable = true; + }; + + laptopMode = true; + + users.aly = { + enable = true; + password = "$y$j9T$CXjk5Z9e2PXbSsWh5CK.81$I9Hm/Oa4KcYMqPi8KMBfsEv5NzoXCgaCK5xhyGeikH7"; + + syncthing = { + enable = true; + certFile = config.age.secrets.syncthingCert.path; + keyFile = config.age.secrets.syncthingKey.path; + syncMusic = false; + }; + }; + }; +} diff --git a/hosts/pacifidlog/home.nix b/hosts/pacifidlog/home.nix new file mode 100644 index 00000000..519fcc8e --- /dev/null +++ b/hosts/pacifidlog/home.nix @@ -0,0 +1,27 @@ +{self, ...}: { + home-manager = { + sharedModules = [ + { + wayland.windowManager.sway.config.output = { + "eDP-1" = { + adaptive_sync = "on"; + scale = "2.0"; + }; + }; + + ar.home = { + desktop.hyprland.laptopMonitors = ["eDP-1,2560x1600@144, preferred,auto, 2, transform, 0"]; + + # services = { + # easyeffects = { + # enable = true; + # preset = "fw13-easy-effects"; + # }; + # }; + }; + } + ]; + + users.aly = self.homeManagerModules.aly; + }; +} diff --git a/hosts/pacifidlog/secrets.nix b/hosts/pacifidlog/secrets.nix new file mode 100644 index 00000000..cb448683 --- /dev/null +++ b/hosts/pacifidlog/secrets.nix @@ -0,0 +1,6 @@ +{ + age.secrets = { + syncthingCert.file = ../../secrets/aly/syncthing/pacifidlog/cert.age; + syncthingKey.file = ../../secrets/aly/syncthing/pacifidlog/key.age; + }; +} diff --git a/hosts/pacifidlog/stylix.nix b/hosts/pacifidlog/stylix.nix new file mode 100644 index 00000000..194f2331 --- /dev/null +++ b/hosts/pacifidlog/stylix.nix @@ -0,0 +1,50 @@ +{ + pkgs, + self, + ... +}: { + stylix = { + enable = true; + base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; + image = "${self.inputs.wallpapers}/wallhaven-3lyrvy.png"; + imageScalingMode = "fill"; + polarity = "dark"; + + cursor = { + name = "Bibata-Modern-Classic"; + package = pkgs.bibata-cursors; + size = 24; + }; + + fonts = { + monospace = { + name = "CaskaydiaCove Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["CascadiaCode"];}; + }; + + sansSerif = { + name = "UbuntuSans Nerd Font"; + package = pkgs.nerdfonts.override {fonts = ["UbuntuSans"];}; + }; + + serif = { + name = "Source Serif Pro"; + package = pkgs.source-serif-pro; + }; + + sizes = { + applications = 12; + desktop = 11; + popups = 12; + terminal = 13; + }; + }; + + opacity = { + applications = 1.0; + desktop = 0.8; + terminal = 0.8; + popups = 0.8; + }; + }; +} diff --git a/nixosModules/apps/steam/default.nix b/nixosModules/apps/steam/default.nix index 32ddd189..c83d19b5 100644 --- a/nixosModules/apps/steam/default.nix +++ b/nixosModules/apps/steam/default.nix @@ -17,6 +17,7 @@ steam = { enable = true; dedicatedServer.openFirewall = true; + extest.enable = true; extraCompatPackages = with pkgs; [proton-ge-bin]; gamescopeSession.enable = config.ar.desktop.steam.enable; localNetworkGameTransfers.openFirewall = true; diff --git a/secrets/aly/syncthing/pacifidlog/cert.age b/secrets/aly/syncthing/pacifidlog/cert.age new file mode 100644 index 00000000..fde001da Binary files /dev/null and b/secrets/aly/syncthing/pacifidlog/cert.age differ diff --git a/secrets/aly/syncthing/pacifidlog/key.age b/secrets/aly/syncthing/pacifidlog/key.age new file mode 100644 index 00000000..ff12463d Binary files /dev/null and b/secrets/aly/syncthing/pacifidlog/key.age differ diff --git a/secrets/secrets.nix b/secrets/secrets.nix index 2bc697f3..362dcc40 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -29,6 +29,8 @@ in { "aly/syncthing/lavaridge/key.age".publicKeys = keys; "aly/syncthing/mauville/cert.age".publicKeys = keys; "aly/syncthing/mauville/key.age".publicKeys = keys; + "aly/syncthing/pacifidlog/cert.age".publicKeys = keys; + "aly/syncthing/pacifidlog/key.age".publicKeys = keys; "aly/syncthing/petalburg/cert.age".publicKeys = keys; "aly/syncthing/petalburg/key.age".publicKeys = keys; "aly/syncthing/rustboro/cert.age".publicKeys = keys; diff --git a/userModules/aly/syncthing.nix b/userModules/aly/syncthing.nix index 9f428241..b3e6b8d1 100644 --- a/userModules/aly/syncthing.nix +++ b/userModules/aly/syncthing.nix @@ -28,8 +28,8 @@ in { "gsgmba" = {id = "V2YCZSL-XY7H72L-FGJFWP2-JNYX72O-OJ5V2HY-V4SSSJM-77A7E3Z-7EJFAAV";}; # Work Macbook Air "iphone12" = {id = "SBQNUXS-H4XDJ3E-RBHJPT5-45WDJJA-2U43M4P-23XGUJ7-E3CNNKZ-BXSGIA3";}; # iPhone 12 Pro Max "lavaridge" = {id = "TMMSCVA-MDJTDPC-PC47NUA-2VPLAIB-6S6MEU7-KALIGUJ-AWDUOUU-XD73MAY";}; # Framework 13 AMD - "mauville" = {id = "52MTCMC-PKEWSAU-HADMTZU-DY5EKFO-B323P7V-OBXLNTQ-EJY7F7Y-EUWFBQX";}; # Desktop/homelab b - "mossdeep" = {id = "3DODR5S-WU6DTH6-Y35QZX7-7OZEOGG-CYVGGCJ-TJ6AOZX-MFDSRCR-NM727A6";}; # Yoga Slim 7x + "mauville" = {id = "52MTCMC-PKEWSAU-HADMTZU-DY5EKFO-B323P7V-OBXLNTQ-EJY7F7Y-EUWFBQX";}; # Desktop/homelab + "pacifidlog" = {id = "6EBVXYI-HZW4LQI-T6L3TTI-DZEBXJM-RP3DW7N-BCAG6FC-G2654DN-XJFSLQD";}; # Lenovo Legion Go "petalburg" = {id = "ECTD3LW-YZTJIXX-HLQYXT7-UGZSGST-3DDKF72-DJPMDHE-SUYDWIT-ASTKTAE";}; # Yoga 9i "rustboro" = {id = "7CXGPQN-7DYDYJN-DKELOR3-RD4HZUW-SSUDGLZ-WVXYFUT-DPT2MGD-6PO5BQF";}; # Thinkpad t440p "slateport" = {id = "MDJFDUG-UJAXQXI-AMEF2AR-PBMD5QK-Z5ZG6AA-RCJCU3M-GZHQQEA-X2JGOAK";}; # homelab a @@ -42,7 +42,7 @@ in { "sync" = { id = "default"; path = "/home/aly/sync"; - devices = ["brawly" "fallarbor" "gsgmba" "iphone12" "lavaridge" "mauville" "mossdeep" "petalburg" "rustboro" "slateport" "wallace" "winona"]; + devices = ["brawly" "fallarbor" "gsgmba" "iphone12" "lavaridge" "mauville" "pacifidlog" "petalburg" "rustboro" "slateport" "wallace" "winona"]; versioning = { type = "staggered"; params = {