flake: onboard petalburg (#174)

This commit is contained in:
Aly Raffauf 2024-11-24 20:32:06 -05:00
parent a20c208a7e
commit f5002b6bd5
10 changed files with 251 additions and 1 deletions

View file

@ -111,6 +111,22 @@ jobs:
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Build mauville - name: Build mauville
run: nix build --accept-flake-config .#nixosConfigurations.mauville.config.system.build.toplevel run: nix build --accept-flake-config .#nixosConfigurations.mauville.config.system.build.toplevel
petalburg-build:
runs-on: ubuntu-latest
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
- uses: actions/checkout@main
with:
fetch-depth: 1
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- uses: cachix/cachix-action@master
with:
name: alyraffauf
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Build petalburg
run: nix build --accept-flake-config .#nixosConfigurations.petalburg.config.system.build.toplevel
rustboro-build: rustboro-build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:

View file

@ -95,6 +95,7 @@
"fallarbor" "fallarbor"
"lavaridge" "lavaridge"
"mauville" "mauville"
"petalburg"
"rustboro" "rustboro"
"slateport" "slateport"
]; ];
@ -151,6 +152,8 @@
hw-common-laptop = import ./hwModules/common/laptop; hw-common-laptop = import ./hwModules/common/laptop;
hw-common-laptop-intel-cpu = import ./hwModules/common/laptop/intel-cpu.nix; hw-common-laptop-intel-cpu = import ./hwModules/common/laptop/intel-cpu.nix;
hw-common-ssd = import ./hwModules/common/ssd; hw-common-ssd = import ./hwModules/common/ssd;
hw-asus-tuf-a16-amd-7030 = import ./hwModules/asus/tuf/a16/amd-7030/default.nix;
hw-framework-13-amd-7000 = import ./hwModules/framework/13/amd-7000; hw-framework-13-amd-7000 = import ./hwModules/framework/13/amd-7000;
hw-framework-13-intel-11th = import ./hwModules/framework/13/intel-11th; hw-framework-13-intel-11th = import ./hwModules/framework/13/intel-11th;
hw-lenovo-legion-go = import ./hwModules/lenovo/legion/go; hw-lenovo-legion-go = import ./hwModules/lenovo/legion/go;

24
hosts/petalburg/README.md Normal file
View file

@ -0,0 +1,24 @@
# petalburg
## Overview
Asus TUF A16 AMD Advantage Edition (2023) with AMD Ryzen 7 7735HS and RX77000S dGPU.
## Todo
## Specs
| Model | Asus TUF A16 |
|---------|-------------------------|
| Display | 16.0" 1920x1200 165Hz |
| CPU | AMD Ryzen 7735HS |
| RAM | 16GB 8GBx2 DDR5-4800Mhz |
| iGPU | AMD Radeon 680M |
| dGPU | AMD Radeon RX 7700S |
| Disks | 512GB NVMe SSD |
## Filesystems
### /
Encrypted LUKS btrfs volume.

View file

@ -0,0 +1,96 @@
# Asus TUF A16 AMD Advantage Edition (2023) with AMD Ryzen 7 7735HS, 16GB RAM, RX7700S, 512GB SSD.
{
config,
lib,
pkgs,
self,
...
}: {
imports = [
./home.nix
./secrets.nix
./stylix.nix
(import ./../../disko/luks-btrfs-subvolumes.nix {disks = ["/dev/nvme0n1"];})
self.nixosModules.common-auto-upgrade
self.nixosModules.common-base
self.nixosModules.common-locale
self.nixosModules.common-mauville-share
self.nixosModules.common-nix
self.nixosModules.common-pkgs
self.nixosModules.common-tailscale
self.nixosModules.common-wifi-profiles
self.nixosModules.hw-asus-tuf-a16-amd-7030
self.nixosModules.hw-common-gaming
];
boot = {
initrd.systemd.enable = true;
lanzaboote = {
enable = true;
pkiBundle = "/etc/secureboot";
};
loader = {
efi.canTouchEfiVariables = true;
systemd-boot.enable = lib.mkForce false;
};
};
environment.variables.GDK_SCALE = "1";
networking.hostName = "petalburg";
services.udev.extraRules = let
hyprlandDynamicRes = pkgs.writeShellScript "hyprland-dynamic-resolution" ''
MON="eDP-1"
RES="1920x1200"
for dir in /run/user/*; do
for hypr_dir in "$dir/hypr/"*/; do
socket="''${hypr_dir}.socket.sock"
if [[ -S $socket ]]; then
monitor_info=$(echo -e "monitors" | ${lib.getExe pkgs.socat} - UNIX-CONNECT:"$socket")
if echo "$monitor_info" | grep -q "$MON"; then
echo -e "keyword monitor $MON, $RES@$1, 0x0, 2, vrr, $2" | ${lib.getExe pkgs.socat} - UNIX-CONNECT:"$socket"
fi
fi
done
done
'';
in ''
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_NAME}=="ACAD", ATTR{online}=="1", ACTION=="change", RUN+="${hyprlandDynamicRes} 165 1"
SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_NAME}=="ACAD", ATTR{online}=="0", ACTION=="change", RUN+="${hyprlandDynamicRes} 60 0"
'';
system.stateVersion = "24.11";
ar = {
apps = {
firefox.enable = true;
podman.enable = true;
steam.enable = true;
virt-manager.enable = true;
};
desktop = {
greetd.enable = true;
hyprland.enable = true;
sway.enable = true;
};
laptopMode = true;
users.aly = {
enable = true;
password = "$y$j9T$NSS7QcEtN4yiigPyofwlI/$nxdgz0lpySa0heDMjGlHe1gX3BWf48jK6Tkfg4xMEs6";
syncthing = {
enable = true;
certFile = config.age.secrets.syncthingCert.path;
keyFile = config.age.secrets.syncthingKey.path;
syncROMs = true;
};
};
};
}

18
hosts/petalburg/home.nix Normal file
View file

@ -0,0 +1,18 @@
{self, ...}: {
home-manager = {
sharedModules = [
{
wayland.windowManager.sway.config.output = {
"eDP-1" = {
adaptive_sync = "on";
scale = "2.0";
};
};
ar.home.desktop.hyprland.laptopMonitors = ["eDP-1,1920x1200@165, 0x0, 2, vrr, 0"];
}
];
users.aly = self.homeManagerModules.aly;
};
}

View file

@ -0,0 +1,6 @@
{
age.secrets = {
syncthingCert.file = ../../secrets/aly/syncthing/petalburg/cert.age;
syncthingKey.file = ../../secrets/aly/syncthing/petalburg/key.age;
};
}

View file

@ -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;
};
};
}

View file

@ -0,0 +1,35 @@
{
lib,
pkgs,
self,
...
}: {
imports = [
self.nixosModules.hw-common
self.nixosModules.hw-common-amd-cpu
self.nixosModules.hw-common-amd-gpu
self.nixosModules.hw-common-bluetooth
self.nixosModules.hw-common-laptop
self.nixosModules.hw-common-ssd
];
boot = {
initrd.availableKernelModules = ["nvme" "sd_mod" "thunderbolt" "usb_storage" "xhci_pci"];
kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
};
environment.systemPackages = with pkgs; [
supergfxctl
];
networking.networkmanager = {
enable = true;
wifi = {
backend = "iwd";
powersave = true;
};
};
services.supergfxd.enable = true;
}

View file

@ -4,7 +4,7 @@
... ...
}: { }: {
boot.kernel.sysctl = { boot.kernel.sysctl = {
"kernel.nmi_watchdog" = 0; "kernel.nmi_watchdog" = lib.mkDefault 0;
}; };
services = { services = {

View file

@ -31,6 +31,8 @@ in {
"aly/syncthing/mauville/key.age".publicKeys = keys; "aly/syncthing/mauville/key.age".publicKeys = keys;
"aly/syncthing/pacifidlog/cert.age".publicKeys = keys; "aly/syncthing/pacifidlog/cert.age".publicKeys = keys;
"aly/syncthing/pacifidlog/key.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; "aly/syncthing/rustboro/cert.age".publicKeys = keys;
"aly/syncthing/rustboro/key.age".publicKeys = keys; "aly/syncthing/rustboro/key.age".publicKeys = keys;
"aly/syncthing/slateport/cert.age".publicKeys = keys; "aly/syncthing/slateport/cert.age".publicKeys = keys;