diff --git a/.sops.yaml b/.sops.yaml
index 6f83c66..b84ea99 100644
--- a/.sops.yaml
+++ b/.sops.yaml
@@ -8,7 +8,7 @@ keys:
# ssh host "nix shell nixpkgs#ssh-to-age -c $SHELL -c 'cat /etc/ssh/ssh_host_ed25519_key.pub | ssh-to-age'"
- &sshd-at-beefcake age1etv56f7kf78a55lxqtydrdd32dpmsjnxndf4u28qezxn6p7xt9esqvqdq7
- &sshd-at-router age1zd7c3g5d20shdftq8ghqm0r92488dg4pdp4gulur7ex3zx2yq35ssxawpn
- - &sshd-at-dragon age1ez4why08hdx0qf940cjzs6ep4q5rk2gqq7lp99pe58fktpwv65esx4xrht
+ - &sshd-at-dragon age12x49p3mwf27r9gdkfmfqu7lr6gwcwznlhcvcgmv8dz3gac2mkdgsp36y9p
- &ssh-foxtrot age1njnet9ltjuxasqv3ckn67r5natke6xgd8wlx8psf64pyc4duvurqhedw80
# after updating this file, you may need to update the keys for any associated files like so:
diff --git a/disko/default.nix b/disko/default.nix
index 2a8b32d..ea75e54 100644
--- a/disko/default.nix
+++ b/disko/default.nix
@@ -1,8 +1,35 @@
{lib, ...}: let
inherit (lib.attrsets) mapAttrs' filterAttrs;
-in {
+ ESP = inputs @ {
+ size ? "4G",
+ label ? "ESP",
+ name ? "ESP",
+ }:
+ {
+ priority = 1;
+ start = "1M";
+ label = label;
+ name = name;
+ end = size;
+ type = "EF00";
+ content = {
+ type = "filesystem";
+ format = "vfat";
+ mountpoint = "/boot";
+ mountOptions = [
+ "umask=0077"
+ ];
+ };
+ }
+ // inputs;
+in rec {
standardWithHibernateSwap = {
- disks ? ["/dev/sda"],
+ esp ? {
+ label = "ESP";
+ size = "4G";
+ name = "ESP";
+ },
+ disk,
swapSize,
...
}: {
@@ -17,24 +44,11 @@ in {
disk = {
primary = {
type = "disk";
- device = builtins.elemAt disks 0;
+ device = disk;
content = {
type = "gpt";
partitions = {
- ESP = {
- label = "EFI";
- name = "ESP";
- size = "4G";
- type = "EF00";
- content = {
- type = "filesystem";
- format = "vfat";
- mountpoint = "/boot";
- mountOptions = [
- "defaults"
- ];
- };
- };
+ ESP = ESP esp;
swap = {
size = swapSize;
content = {
@@ -48,7 +62,6 @@ in {
content = {
type = "luks";
name = "crypted";
- extraOpenArgs = ["--allow-discards"];
# if you want to use the key for interactive login be sure there is no trailing newline
# for example use `echo -n "password" > /tmp/secret.key`
keyFile = "/tmp/secret.key"; # Interactive
@@ -58,75 +71,13 @@ in {
type = "btrfs";
extraArgs = ["-f"];
subvolumes = {
- "/nixos" = {
+ "/rootfs" = {
mountpoint = "/";
- mountOptions = ["compress=zstd" "noatime"];
+ mountOptions = ["compress=zstd"];
};
"/home" = {
mountpoint = "/home";
- mountOptions = ["compress=zstd" "noatime"];
- };
- "/nix" = {
- mountpoint = "/nix";
- mountOptions = ["compress=zstd" "noatime"];
- };
- };
- };
- };
- };
- };
- };
- };
- };
- };
- };
- standard = {disks ? ["/dev/vda"], ...}: {
- # this is my standard partitioning scheme for my machines: an LUKS-encrypted
- # btrfs volume
- disko.devices = {
- disk = {
- primary = {
- type = "disk";
- device = builtins.elemAt disks 0;
- content = {
- type = "gpt";
- partitions = {
- ESP = {
- label = "EFI";
- name = "ESP";
- size = "512M";
- type = "EF00";
- content = {
- type = "filesystem";
- format = "vfat";
- mountpoint = "/boot";
- mountOptions = [
- "defaults"
- ];
- };
- };
- luks = {
- size = "100%";
- content = {
- type = "luks";
- name = "crypted";
- extraOpenArgs = ["--allow-discards"];
- # if you want to use the key for interactive login be sure there is no trailing newline
- # for example use `echo -n "password" > /tmp/secret.key`
- keyFile = "/tmp/secret.key"; # Interactive
- # settings.keyFile = "/tmp/password.key";
- # additionalKeyFiles = ["/tmp/additionalSecret.key"];
- content = {
- type = "btrfs";
- extraArgs = ["-f"];
- subvolumes = {
- "/root" = {
- mountpoint = "/";
- mountOptions = ["compress=zstd" "noatime"];
- };
- "/home" = {
- mountpoint = "/home";
- mountOptions = ["compress=zstd" "noatime"];
+ mountOptions = ["compress=zstd"];
};
"/nix" = {
mountpoint = "/nix";
@@ -143,38 +94,84 @@ in {
};
};
- unencrypted = {disks ? ["/dev/vda"], ...}: {
+ foxtrot = standardWithHibernateSwap {
+ disk = "nvme0n1";
+ swapSize = "32G";
+ esp = {
+ label = "disk-primary-ESP";
+ name = "disk-primary-ESP";
+ };
+ };
+
+ standard = {disk, ...}: {
+ # this is my standard partitioning scheme for my machines: an LUKS-encrypted
+ # btrfs volume
disko.devices = {
disk = {
primary = {
type = "disk";
- device = builtins.elemAt disks 0;
+ device = disk;
content = {
type = "gpt";
partitions = {
- ESP = {
- label = "EFI";
- name = "ESP";
- size = "512M";
- type = "EF00";
+ ESP = ESP {size = "4G";};
+ luks = {
+ size = "100%";
content = {
- type = "filesystem";
- format = "vfat";
- mountpoint = "/boot";
- mountOptions = [
- "defaults"
- ];
+ type = "luks";
+ name = "crypted";
+ # if you want to use the key for interactive login be sure there is no trailing newline
+ # for example use `echo -n "password" > /tmp/secret.key`
+ keyFile = "/tmp/secret.key"; # Interactive
+ # settings.keyFile = "/tmp/password.key";
+ # additionalKeyFiles = ["/tmp/additionalSecret.key"];
+ content = {
+ type = "btrfs";
+ extraArgs = ["-f"];
+ subvolumes = {
+ "/root" = {
+ mountpoint = "/";
+ mountOptions = ["compress=zstd"];
+ };
+ "/home" = {
+ mountpoint = "/home";
+ mountOptions = ["compress=zstd"];
+ };
+ "/nix" = {
+ mountpoint = "/nix";
+ mountOptions = ["compress=zstd" "noatime"];
+ };
+ };
+ };
};
};
+ };
+ };
+ };
+ };
+ };
+ };
+
+ unencrypted = {disk, ...}: {
+ disko.devices = {
+ disk = {
+ primary = {
+ type = "disk";
+ device = disk;
+ content = {
+ type = "gpt";
+ partitions = {
+ ESP = ESP {size = "5G";};
root = {
size = "100%";
content = {
type = "btrfs";
extraArgs = ["-f"];
+ mountpoint = "/partition-root";
subvolumes = {
- "/root" = {
+ "/rootfs" = {
mountpoint = "/";
- mountOptions = [];
+ mountOptions = ["compress=zstd"];
};
"/home" = {
mountpoint = "/home";
@@ -390,7 +387,7 @@ in {
};
};
};
- legacy = {disks ? ["/dev/vda"], ...}: {
+ legacy = {disks, ...}: {
disko.devices = {
disk = {
primary = {
diff --git a/flake.lock b/flake.lock
index 74483e3..75fd8f7 100644
--- a/flake.lock
+++ b/flake.lock
@@ -117,10 +117,44 @@
"type": "github"
}
},
+ "flake-compat_4": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1696426674,
+ "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
+ "type": "github"
+ },
+ "original": {
+ "owner": "edolstra",
+ "repo": "flake-compat",
+ "type": "github"
+ }
+ },
"flake-utils": {
"inputs": {
"systems": "systems"
},
+ "locked": {
+ "lastModified": 1705309234,
+ "narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
+ "type": "github"
+ },
+ "original": {
+ "owner": "numtide",
+ "repo": "flake-utils",
+ "type": "github"
+ }
+ },
+ "flake-utils_2": {
+ "inputs": {
+ "systems": "systems_2"
+ },
"locked": {
"lastModified": 1726560853,
"narHash": "sha256-X6rJYSESBVr3hBoH0WbKE5KvhPU5bloyZ2L4K60/fPQ=",
@@ -135,7 +169,7 @@
"type": "github"
}
},
- "flake-utils_2": {
+ "flake-utils_3": {
"inputs": {
"systems": "systems_4"
},
@@ -170,9 +204,34 @@
"type": "github"
}
},
- "git-hooks": {
+ "ghostty": {
"inputs": {
"flake-compat": "flake-compat",
+ "nixpkgs-stable": [
+ "nixpkgs"
+ ],
+ "nixpkgs-unstable": [
+ "nixpkgs-unstable"
+ ],
+ "zig": "zig"
+ },
+ "locked": {
+ "lastModified": 1735330177,
+ "narHash": "sha256-JGoqNnhSr632eLo1NWKJWoZyepCZlXT0o1/2A6e1Ph4=",
+ "owner": "ghostty-org",
+ "repo": "ghostty",
+ "rev": "8111f5b9958c21e0157f63cc4ce2dfc2329c67ac",
+ "type": "github"
+ },
+ "original": {
+ "owner": "ghostty-org",
+ "repo": "ghostty",
+ "type": "github"
+ }
+ },
+ "git-hooks": {
+ "inputs": {
+ "flake-compat": "flake-compat_2",
"gitignore": "gitignore",
"nixpkgs": [
"nixpkgs"
@@ -195,7 +254,7 @@
},
"git-hooks_2": {
"inputs": {
- "flake-compat": "flake-compat_3",
+ "flake-compat": "flake-compat_4",
"gitignore": "gitignore_3",
"nixpkgs": [
"slippi",
@@ -317,10 +376,18 @@
"helix": {
"inputs": {
"crane": "crane",
+<<<<<<< HEAD
"flake-utils": "flake-utils",
"nixpkgs": [
"nixpkgs-unstable"
],
+||||||| b4bc4ce
+ "flake-utils": "flake-utils",
+ "nixpkgs": "nixpkgs",
+=======
+ "flake-utils": "flake-utils_2",
+ "nixpkgs": "nixpkgs",
+>>>>>>> origin/main
"rust-overlay": "rust-overlay"
},
"locked": {
@@ -471,7 +538,7 @@
"nixpkgs-unstable"
],
"pre-commit-hooks": "pre-commit-hooks",
- "systems": "systems_2",
+ "systems": "systems_3",
"xdph": "xdph"
},
"locked": {
@@ -801,7 +868,7 @@
},
"pre-commit-hooks": {
"inputs": {
- "flake-compat": "flake-compat_2",
+ "flake-compat": "flake-compat_3",
"gitignore": "gitignore_2",
"nixpkgs": [
"hyprland",
@@ -826,6 +893,7 @@
"root": {
"inputs": {
"disko": "disko",
+ "ghostty": "ghostty",
"git-hooks": "git-hooks",
"hardware": "hardware",
"helix": "helix",
@@ -945,6 +1013,21 @@
}
},
"systems_2": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_3": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -959,7 +1042,7 @@
"type": "github"
}
},
- "systems_3": {
+ "systems_4": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -991,7 +1074,7 @@
},
"wezterm": {
"inputs": {
- "flake-utils": "flake-utils_2",
+ "flake-utils": "flake-utils_3",
"freetype2": "freetype2",
"harfbuzz": "harfbuzz",
"libpng": "libpng",
@@ -1058,6 +1141,31 @@
"type": "github"
}
},
+ "zig": {
+ "inputs": {
+ "flake-compat": [
+ "ghostty"
+ ],
+ "flake-utils": "flake-utils",
+ "nixpkgs": [
+ "ghostty",
+ "nixpkgs-stable"
+ ]
+ },
+ "locked": {
+ "lastModified": 1717848532,
+ "narHash": "sha256-d+xIUvSTreHl8pAmU1fnmkfDTGQYCn2Rb/zOwByxS2M=",
+ "owner": "mitchellh",
+ "repo": "zig-overlay",
+ "rev": "02fc5cc555fc14fda40c42d7c3250efa43812b43",
+ "type": "github"
+ },
+ "original": {
+ "owner": "mitchellh",
+ "repo": "zig-overlay",
+ "type": "github"
+ }
+ },
"zlib": {
"flake": false,
"locked": {
diff --git a/flake.nix b/flake.nix
index 2167e91..0b90410 100644
--- a/flake.nix
+++ b/flake.nix
@@ -43,6 +43,10 @@
jovian.url = "github:Jovian-Experiments/Jovian-NixOS/development";
jovian.inputs.nixpkgs.follows = "nixpkgs-unstable";
+ ghostty.url = "github:ghostty-org/ghostty";
+ ghostty.inputs.nixpkgs-unstable.follows = "nixpkgs-unstable";
+ ghostty.inputs.nixpkgs-stable.follows = "nixpkgs";
+
# nnf.url = "github:thelegy/nixos-nftables-firewall?rev=71fc2b79358d0dbacde83c806a0f008ece567b7b";
mobile-nixos = {
@@ -60,6 +64,7 @@
"https://nix-community.cachix.org"
"https://nix.h.lyte.dev"
"https://hyprland.cachix.org"
+ "https://ghostty.cachix.org"
];
extra-trusted-public-keys = [
@@ -68,6 +73,7 @@
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
"h.lyte.dev-2:te9xK/GcWPA/5aXav8+e5RHImKYMug8hIIbhHsKPN0M="
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
+ "ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns="
];
};
@@ -88,6 +94,7 @@
# nnf,
# hyprland,
slippi,
+ ghostty,
...
}: let
inherit (self) outputs;
@@ -334,7 +341,7 @@
modules = with nixosModules; [
home-manager-unstable-defaults
- outputs.diskoConfigurations.standard
+ outputs.diskoConfigurations.unencrypted
hardware.nixosModules.common-cpu-amd
hardware.nixosModules.common-pc-ssd
@@ -463,7 +470,7 @@
modules = with nixosModules; [
home-manager-unstable-defaults
- outputs.diskoConfigurations.standard
+ outputs.diskoConfigurations.foxtrot
hardware.nixosModules.framework-13-7040-amd
common
@@ -490,6 +497,7 @@
];
};
environment.systemPackages = with pkgs; [
+ ghostty.outputs.packages.${pkgs.system}.ghostty
fw-ectool
(writeShellApplication
{
@@ -597,7 +605,7 @@
swapSize = "32G";
};
}
- outputs.diskoConfigurations.standardWithHibernateSwap
+ outputs.diskoConfigurations.standard
hardware.nixosModules.lenovo-thinkpad-t480
hardware.nixosModules.common-pc-laptop-ssd
@@ -605,7 +613,7 @@
common
password-manager
graphical-workstation
- plasma6
+ # plasma6
laptop
gaming
diff --git a/modules/home-manager/eww/eww.yuck b/modules/home-manager/eww/eww.yuck
index 0133c45..30ce94e 100644
--- a/modules/home-manager/eww/eww.yuck
+++ b/modules/home-manager/eww/eww.yuck
@@ -13,7 +13,7 @@
(geometry
:x "0%"
:y "5px"
- :width "100%"
+ :width "80%"
:height "32px"
:anchor "bottom center")
(bar))
@@ -25,10 +25,10 @@
:geometry
(geometry
:x "0%"
- :y "20%"
- :width "90%"
- :height "60px"
- :anchor "top center")
+ :y "5px"
+ :width "80%"
+ :height "32px"
+ :anchor "bottom center")
(bar))
(defwidget rightsidestuff []
diff --git a/modules/home-manager/hyprland.nix b/modules/home-manager/hyprland.nix
index 9fb0789..1b1d108 100644
--- a/modules/home-manager/hyprland.nix
+++ b/modules/home-manager/hyprland.nix
@@ -11,6 +11,7 @@ in {
# TODO: Hyprland seems to sometimes use a ton of CPU?
home.packages = with pkgs; [
+ glib
swayosd
];
@@ -47,8 +48,15 @@ in {
"hypridle"
];
+ exec = [
+ ''gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"''
+ ''gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"''
+ ];
+
env = [
"XCURSOR_SIZE,24"
+ "QT_QPA_PLATFORMTHEME,qt6ct"
+ "GTK_THEME,Adwaita-dark"
];
input = {
@@ -96,7 +104,7 @@ in {
gaps_out = 6;
border_size = 2;
resize_on_border = true;
- no_focus_fallback = true;
+ no_focus_fallback = false;
layout = "dwindle";
};
@@ -129,7 +137,7 @@ in {
"$mod SHIFT, return, exec, wezterm"
*/
"$mod, return, exec, wezterm"
- "$mod SHIFT, return, exec, kitty"
+ "$mod SHIFT, return, exec, [float] wezterm start --always-new-process"
"$mod, U, exec, firefox"
"$mod, space, exec, tofi-run | xargs hyprctl dispatch exec --"
"$mod, C, killactive,"
@@ -150,10 +158,10 @@ in {
"$mod, l, movefocus, r"
"$mod, k, movefocus, u"
"$mod, j, movefocus, d"
- "$mod SHIFT, H, movewindow, l"
- "$mod SHIFT, L, movewindow, r"
- "$mod SHIFT, K, movewindow, u"
- "$mod SHIFT, J, movewindow, d"
+ "$mod SHIFT, H, movewindow, l silent"
+ "$mod SHIFT, L, movewindow, r silent"
+ "$mod SHIFT, K, movewindow, u silent"
+ "$mod SHIFT, J, movewindow, d silent"
"$mod SHIFT, V, exec, swayosd-client --input-volume mute-toggle"
", XF86AudioMicMute, exec, swayosd-client --input-volume mute-toggle"
@@ -184,16 +192,16 @@ in {
"$mod, 0, workspace, 10"
# Move active window to a workspace with mod + SHIFT + [0-9]
- "$mod SHIFT, 1, movetoworkspace, 1"
- "$mod SHIFT, 2, movetoworkspace, 2"
- "$mod SHIFT, 3, movetoworkspace, 3"
- "$mod SHIFT, 4, movetoworkspace, 4"
- "$mod SHIFT, 5, movetoworkspace, 5"
- "$mod SHIFT, 6, movetoworkspace, 6"
- "$mod SHIFT, 7, movetoworkspace, 7"
- "$mod SHIFT, 8, movetoworkspace, 8"
- "$mod SHIFT, 9, movetoworkspace, 9"
- "$mod SHIFT, 0, movetoworkspace, 10"
+ "$mod SHIFT, 1, movetoworkspacesilent, 1"
+ "$mod SHIFT, 2, movetoworkspacesilent, 2"
+ "$mod SHIFT, 3, movetoworkspacesilent, 3"
+ "$mod SHIFT, 4, movetoworkspacesilent, 4"
+ "$mod SHIFT, 5, movetoworkspacesilent, 5"
+ "$mod SHIFT, 6, movetoworkspacesilent, 6"
+ "$mod SHIFT, 7, movetoworkspacesilent, 7"
+ "$mod SHIFT, 8, movetoworkspacesilent, 8"
+ "$mod SHIFT, 9, movetoworkspacesilent, 9"
+ "$mod SHIFT, 0, movetoworkspacesilent, 10"
"$mod SHIFT, S, exec, clipshot"
# Scroll through existing workspaces with mod + scroll
diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix
index 2f2f7b8..9633fa7 100644
--- a/modules/nixos/default.nix
+++ b/modules/nixos/default.nix
@@ -86,9 +86,11 @@
xdg.portal = {
enable = true;
wlr.enable = true;
+ # gtk.enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-wlr
+ xdg-desktop-portal-gtk
];
};
diff --git a/nixos/beefcake.nix b/nixos/beefcake.nix
index ca178e5..8ea10ee 100644
--- a/nixos/beefcake.nix
+++ b/nixos/beefcake.nix
@@ -866,7 +866,7 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
pkgs.writeText "header.tmpl"
''
-
+
'';
forgejoCustomHomeTmpl =
pkgs.writeText "home.tmpl"
@@ -1263,6 +1263,10 @@ sudo nix run nixpkgs#ipmitool -- raw 0x30 0x30 0x02 0xff 0x00
};
virtualisation.oci-containers.containers.minecraft-flanilla = {
autoStart = false;
+
+ environmentFiles = [
+ # config.sops.secrets."jland.env".path
+ ];
image = "docker.io/itzg/minecraft-server";
# user = "${toString uid}:${toString gid}";
extraOptions = ["--tty" "--interactive"];
diff --git a/nixos/foxtrot.nix b/nixos/foxtrot.nix
index 53e0e26..9a5291b 100644
--- a/nixos/foxtrot.nix
+++ b/nixos/foxtrot.nix
@@ -1,248 +1,8 @@
-{pkgs, ...}:
-/*
-## source: https://community.frame.work/t/speakers-sound-quality/1078/82
-let
- pipewire-speakers-profile-json = ''{
- "output": {
- "blocklist": [],
- "equalizer": {
- "balance": 0.0,
- "bypass": false,
- "input-gain": 0.0,
- "left": {
- "band0": {
- "frequency": 100.0,
- "gain": 0.0,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 1.0,
- "slope": "x4",
- "solo": false,
- "type": "Hi-pass"
- },
- "band1": {
- "frequency": 150.0,
- "gain": 4.02,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 3.0,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band2": {
- "frequency": 600.0,
- "gain": -5.07,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 4.000000000000008,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band3": {
- "frequency": 1200.0,
- "gain": -3.49,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 4.17,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band4": {
- "frequency": 2000.0,
- "gain": 1.43,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 4.0,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band5": {
- "frequency": 5300.0,
- "gain": 3.84,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 2.64,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band6": {
- "frequency": 6000.0,
- "gain": 4.02,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 4.36,
- "slope": "x1",
- "solo": false,
- "type": "Hi-shelf"
- },
- "band7": {
- "frequency": 7500.0,
- "gain": -2.09,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 3.0,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band8": {
- "frequency": 8000.0,
- "gain": 2.01,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 4.36,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band9": {
- "frequency": 900.0,
- "gain": -4.12,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 5.909999999999967,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- }
- },
- "mode": "IIR",
- "num-bands": 10,
- "output-gain": -1.5,
- "pitch-left": 0.0,
- "pitch-right": 0.0,
- "right": {
- "band0": {
- "frequency": 100.0,
- "gain": 0.0,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 1.0,
- "slope": "x4",
- "solo": false,
- "type": "Hi-pass"
- },
- "band1": {
- "frequency": 150.0,
- "gain": 4.02,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 3.0,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band2": {
- "frequency": 600.0,
- "gain": -5.07,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 4.000000000000008,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band3": {
- "frequency": 1200.0,
- "gain": -3.49,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 4.17,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band4": {
- "frequency": 2000.0,
- "gain": 1.43,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 4.0,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band5": {
- "frequency": 5300.0,
- "gain": 3.84,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 2.64,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band6": {
- "frequency": 6000.0,
- "gain": 4.02,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 4.36,
- "slope": "x1",
- "solo": false,
- "type": "Hi-shelf"
- },
- "band7": {
- "frequency": 7500.0,
- "gain": -2.09,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 3.0,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band8": {
- "frequency": 8000.0,
- "gain": 2.01,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 4.36,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- },
- "band9": {
- "frequency": 900.0,
- "gain": -4.12,
- "mode": "RLC (BT)",
- "mute": false,
- "q": 5.909999999999967,
- "slope": "x1",
- "solo": false,
- "type": "Bell"
- }
- },
- "split-channels": false
- },
- "loudness": {
- "bypass": false,
- "clipping": false,
- "clipping-range": 6.0,
- "fft": "4096",
- "input-gain": 0.0,
- "output-gain": 0.0,
- "std": "ISO226-2003",
- "volume": 6.999999999999991
- },
- "plugins_order": [
- "loudness",
- "equalizer"
- ]
- }
-}'';
-in
-*/
-{
+{pkgs, ...}: {
imports = [
{
- system.stateVersion = "24.05";
- home-manager.users.daniel.home.stateVersion = "24.05";
+ system.stateVersion = "24.11";
+ home-manager.users.daniel.home.stateVersion = "24.11";
networking.hostName = "foxtrot";
}
{
@@ -254,10 +14,9 @@ in
sudo btrfs filesystem mkswapfile --size 32g --uuid clear /swap/swapfile
sudo swapon /swap/swapfile
*/
- {device = "/swap/swapfile";}
];
# findmnt -no UUID -T /swap/swapfile
- boot.resumeDevice = "/dev/disk/by-uuid/81c3354a-f629-4b6b-a249-7705aeb9f0d5";
+ # boot.resumeDevice = "/dev/disk/by-uuid/81c3354a-f629-4b6b-a249-7705aeb9f0d5";
# systemd.sleep.extraConfig = "HibernateDelaySec=180m";
services.fwupd.enable = true;
services.fwupd.extraRemotes = ["lvfs-testing"];
@@ -337,7 +96,7 @@ in
];
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
monitor = [
- "eDP-1,2880x1920@120Hz,0x0,1.66667"
+ "eDP-1,2880x1920@120Hz,0x0,1.5"
];
};
};
@@ -430,6 +189,7 @@ in
kernelParams = [
"rtc_cmos.use_acpi_alarm=1"
"amdgpu.sg_display=0"
+ "boot.shell_on_fail=1"
"acpi_osi=\"!Windows 2020\""
# "nvme.noacpi=1" # maybe causing crashes upon waking?
diff --git a/nixos/router.nix b/nixos/router.nix
index 751b99b..d0dbc29 100644
--- a/nixos/router.nix
+++ b/nixos/router.nix
@@ -162,6 +162,7 @@ in {
in {
enable = true;
checkRuleset = true;
+ flushRuleset = true;
ruleset = with inf; ''
table inet filter {
## set LANv4 {
diff --git a/nixos/thinker.nix b/nixos/thinker.nix
index 3fd7a1b..a695440 100644
--- a/nixos/thinker.nix
+++ b/nixos/thinker.nix
@@ -12,9 +12,59 @@
btrfs inspect-internal map-swapfile -r /swap/swapfile
https://wiki.archlinux.org/title/Power_management/Suspend_and_hibernate#Hibernation_into_swap_file
*/
- kernelParams = ["boot.shell_on_fail"];
+ # kernelParams = ["boot.shell_on_fail"];
initrd.availableKernelModules = ["xhci_pci" "nvme" "ahci"];
};
+ home-manager.users.daniel = {
+ programs.hyprlock.settings = {
+ label = [
+ {
+ monitor = "";
+ font_size = 32;
+
+ halign = "center";
+ valign = "center";
+ text_align = "center";
+ color = "rgba(255, 255, 255, 0.5)";
+
+ position = "0 -500";
+ font_family = "IosevkaLyteTerm";
+ text = "cmd[update:30000] acpi";
+
+ shadow_passes = 3;
+ shadow_size = 1;
+ shadow_color = "rgba(0, 0, 0, 1.0)";
+ shadow_boost = 1.0;
+ }
+ ];
+ };
+ services.hypridle = let
+ secondsPerMinute = 60;
+ lockSeconds = 10 * secondsPerMinute;
+ in {
+ settings = {
+ listener = [
+ {
+ timeout = lockSeconds + 55;
+ on-timeout = ''systemctl suspend'';
+ }
+ ];
+ };
+ };
+
+ wayland.windowManager.hyprland = {
+ settings = {
+ exec-once = [
+ "eww open bar0"
+ ];
+ # See https://wiki.hyprland.org/Configuring/Keywords/ for more
+ monitor = [
+ "eDP-1,1920x1080@60Hz,0x0,1.0"
+ ];
+ };
+ };
+ };
+
hardware.bluetooth.enable = true;
}
diff --git a/secrets/beefcake/secrets.yml b/secrets/beefcake/secrets.yml
index b8afa1a..f3b9f82 100644
--- a/secrets/beefcake/secrets.yml
+++ b/secrets/beefcake/secrets.yml
@@ -28,6 +28,7 @@ restic-rascal-ssh-private-key: ENC[AES256_GCM,data:ddsOs0XsayyQI9qc6LzwQpdDnfwNp
restic-ssh-priv-key-benland: ENC[AES256_GCM,data:G+uiYZTvqXhpJb66j6Q6S+otlXeRX0CdYeMHzSMjIbvbI0AVm0yCU7COO5/O8i47NpvrKKS1kVxVEK8ixLRUowkl3hgRXhxsBIPFnpkMD0ENmJttm4HOpi0qIWMwzPYTjkz/slY4HcTFnCfYy1ZpURQdWwZsr1EdAA05bUMTtM22R3uOMzjO8uf72PCWX7yffo8MxsLmWvNVAOhVlrb2H5KQNR/IquFK3TFoZitq5nVDG9tcEFkX+lgA3zsmCHU/2DvvodgeRoltaAFvgjVznNGf4e5p8owHUtSzX52HwGZRiUlMuhpre2gm1r73n8AyZe41II+LX/85fMfZDdyayIGv3AAMBib8H0/AoChexRcdLQEmzOgRrXsgucDJrWSWP6WMBVyamUm79m5ep0fvL1lJftuJqN0uuq9dBrispdso4x+6jk/pDf5pEM/FE6s1rY832BEb7q0PnjyvVogOez+cIihmMpDdnS0A/8TFzg29i3C+93x5vrt3k7atNzR/jN+/GqX2FKLzxWrrIw2d,iv:IP+N8JQu+XRvwTtBnxu54ujzU5UliltXG3mk9HfJaN8=,tag:4oinE9QMaSh8IfUd/ttM3Q==,type:str]
paperless-superuser-password: ENC[AES256_GCM,data:lypWK73mOYI2hyQAW/4T3cDiVtsts3kKb7LZb9ES3n97Kn5l,iv:jBHUBFbb4GqQ3gnK0h5VCaGj3/kd3/eGa1QFiE7+B9I=,tag:UoQar+x1xVnCV2k+9hYjWA==,type:str]
factorio-server-settings: ENC[AES256_GCM,data:KlHkHGenkoLtqt0YCETwQdhH0tvvqsyake3lC9Wimso3Y8IXvDfkLpOTE53Jq4frf1QMJh0LYyle+AmIgGvB0gAp/4fM1E4Ah9JPtKkcjVPyQIypuaDsPaVQMxMlJt1+TLX2fbSWdxOo0lulNg==,iv:AHq37PY3ZxKF0+ClUrSvhJSBuXFtGZLBZW/ZADrVqLI=,tag:B0gFyy6rmd6CGJfzAhO02A==,type:str]
+flanilla.env: ENC[AES256_GCM,data:qp0cpjHgpFx2gICtH8vNusJt08MLOIS3,iv:lugXNEJpMJ8mSwvo2jDwTwsY0x3kcHQDc29Z2Wz+LB4=,tag:0/FWQKUXePemFWGXbH1Tjg==,type:str]
sops:
kms: []
gcp_kms: []
@@ -52,8 +53,8 @@ sops:
bGpacHFRSkJYUUMwOEh4cVBXZ1NESmsKa5EhZ7148ojCqZldukLcPLr93HqnpNgq
rMI0Nyz4Z4lkTVMRpA94zyNTkNwJ02/CYcKi8EJi6jGZnNPUTcnTwg==
-----END AGE ENCRYPTED FILE-----
- lastmodified: "2024-10-22T22:31:46Z"
- mac: ENC[AES256_GCM,data:nCGtkRXZuo3SZLjL2I3fJelaS1g9U4SVdzPZlZPgXzCWVyxokIMFwoSM15HgDu5KsFR+3kIfWVzIQk/lwt9lQPG3O6iUkfPRsIg0dnVrNSauNk0QXR91vCVlDmbFuDUf0C4EVrbE9RRgHzGzToSJYxQHSInMYVhJBcBfdbYZF9A=,iv:qu6p45+ATOs5Ms3bqM8ynXK0tKnN3wNmtwAsc2DSQbU=,tag:xpTeHWawPXfeqq/azPIPPg==,type:str]
+ lastmodified: "2024-12-26T16:42:22Z"
+ mac: ENC[AES256_GCM,data:COh57637D7BnYa2ke+SsGnRuyWmS3X6xDJNV0ATWEHqKjckZ2tqyfL1ugGuokmqilIsRcXi2q5sqCd8uNrWZLicZ/6eQ5w7CqoFU8OEON6ERibQ36X0oLsz9teuT+bx9ZMfzYOKh0LZY0XP9es7W+4PC3XiBJcIB2GWTTrrGaI4=,iv:aeBvVjC7Qn/ohYmpC6lvcve0bMSBsvfRSa1kyiyj0Rg=,tag:hld5rkOq5mfcGFShKuKgng==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
- version: 3.9.0
+ version: 3.9.1
diff --git a/secrets/dragon/secrets.yml b/secrets/dragon/secrets.yml
index e98ae5d..dd89775 100644
--- a/secrets/dragon/secrets.yml
+++ b/secrets/dragon/secrets.yml
@@ -8,20 +8,20 @@ sops:
- recipient: age1stdue5q5teskee057ced6rh9pzzr93xsy66w4sc3zu49rgxl7cjshztt45
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
- YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCTitMaFRiK1BSMEcwRmNk
- Q0hmOGlZSFpkUUhyZkkwSU40QXB5cmlkR1FRCkRhbVBXQ2FjUzRhdEhrSEZKcWhM
- dTNuVUljU0NSbVQzbXhZeFNENmN5QjgKLS0tIDFncEMrUCtWWTMyUGZIelY5aXB4
- NmJWeDFSVVoxZCtRWlhNNXNyVWRvY28KgPbg6RScxBrxI0DvD6R7iKm8/70kJLdG
- FhbgK9d/7UPMfefluEah7vKzXV/dn+/4KsCJuKFFZ1AsM5hDFQ+JGQ==
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlSFVjMEhNUEF5Q1ZWRmRB
+ cUQvQ0JYY2ZzNndPeVN4UTNhTUxZVzBvc3hBCkcwNHUyeEhMZFFHU3RIQWlONTRT
+ dUhlZUlHRjJQeGZwRk9td1FSZzZtR0kKLS0tIHphbVpncE9HLys2bWJicUtmU2Fp
+ b05GOEpRVURQYnJSZzhhalp3TW1kbHMKk/z68IP6WMZV+PbjJvM2EWhacJZoLMj3
+ iSGt5TqerVUOrQT00+Gx3laImdismLp9CjulEl82QyaYpmUvVYkEMA==
-----END AGE ENCRYPTED FILE-----
- - recipient: age1ez4why08hdx0qf940cjzs6ep4q5rk2gqq7lp99pe58fktpwv65esx4xrht
+ - recipient: age12x49p3mwf27r9gdkfmfqu7lr6gwcwznlhcvcgmv8dz3gac2mkdgsp36y9p
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
- YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXa1owK21QNUovZzZHekpw
- OWdsSy9ZcmhGNzc1enNGVHRHTTlSb1E5UEJJCkF3MlpYQ1c5UGNySk94aENHMDh2
- ME1rUlZscHFYSUVwOWFSczZGV2Z5aEEKLS0tIFlXTUFZaVJtWXltZGdEZzJPSjFJ
- bTdCNS9zMzdvT2NiZVRyT1JzVmRFUFEKguq2i4rnVvGECZlUcEEubXfv4Ya/zI1N
- 3mWQslPHgnnWuwG7flbvafHYnyZCXsMqNKnNDM6wayDgKAbtCx3Syg==
+ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6eW9QekJRTzlNWHVvK3hD
+ b0ZTWDdWY2RiZTBwZEZMcnpEMjlydkJrOGlrCldxZFhHcjlGRVRYNVJEc0R4Y1BZ
+ TldMNW81a2VjMm5SWHhHNFRVMWlFQTgKLS0tIEIycWtsT3pEbVZIc2FvZGpsbENz
+ MENZdE13U2J0eWtoOHJSbEJ3TVFUS2sK23t+MAjYfBI1j7B97mU0akq8zuRh7pOv
+ admjZR86rxMqs/Guj+nKhQ2pn/JeozlPOvwiaxD9eIVJBtIQK2my4A==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-09-14T12:41:15Z"
mac: ENC[AES256_GCM,data:sO3omCYH1urB/qcW3VippCinCUO1cmp5KrUSQk5ms7k+i9xUhdL3tTYHGVTa4PHV6VluukKnHuwAijo+rneNdCeMdIkAEskk/X6SDYgkwmjXuNcNEA4la22EqSrenJ8W3UafHDvP8+vpUKAzVo0E82Vmo9/YNJaqvqQM8PtciSc=,iv:2GboNZpAezZsWK3CbcwVw40zW4CucP3JhsYlvZ/Hy2M=,tag:w3XmkN76oYV+PmliPB01MQ==,type:str]
diff --git a/templates/rust/.gitignore b/templates/rust/.gitignore
index 228f69f..86c240d 100644
--- a/templates/rust/.gitignore
+++ b/templates/rust/.gitignore
@@ -1,3 +1,4 @@
/target
+/result
/.direnv
/.pre-commit-config.yaml
diff --git a/templates/rust/flake.nix b/templates/rust/flake.nix
index af7240e..57d515b 100644
--- a/templates/rust/flake.nix
+++ b/templates/rust/flake.nix
@@ -3,12 +3,12 @@
inputs.git-hooks.url = "github:cachix/git-hooks.nix";
inputs.git-hooks.inputs.nixpkgs.follows = "nixpkgs";
outputs = inputs: let
- inherit (import nix/boilerplate.nix inputs) fullImport genPkgs;
+ inherit (import nix/boilerplate.nix inputs) call genPkgs;
in {
# overlays = import nix/overlays.nix;
- checks = fullImport nix/checks.nix;
- packages = fullImport nix/packages.nix;
- devShells = fullImport nix/shells.nix;
+ checks = call (import nix/checks.nix);
+ packages = call (import nix/packages.nix);
+ devShells = call (import nix/shells.nix);
formatter = genPkgs (p: p.alejandra);
};
}
diff --git a/templates/rust/nix/boilerplate.nix b/templates/rust/nix/boilerplate.nix
index 2778326..e0b4acd 100644
--- a/templates/rust/nix/boilerplate.nix
+++ b/templates/rust/nix/boilerplate.nix
@@ -4,7 +4,7 @@ inputs @ {
...
}: let
forSelfOverlay =
- if builtins.hasAttr "forSelf" self.overlays
+ if builtins.hasAttr "overlays" self && builtins.hasAttr "forSelf" self.overlays
then self.overlays.forSelf
else (_: p: p);
in rec {
diff --git a/templates/rust/nix/packages.nix b/templates/rust/nix/packages.nix
index 7d1b63b..72d06e2 100644
--- a/templates/rust/nix/packages.nix
+++ b/templates/rust/nix/packages.nix
@@ -1,6 +1,6 @@
{pkgs, ...}: rec {
- lyrs = pkgs.rustPlatform.buildRustPackage {
- pname = "lyrs";
+ my-package = pkgs.rustPlatform.buildRustPackage {
+ pname = "my-binary";
version = "0.1.0";
/*
@@ -15,38 +15,8 @@
src = ./..;
hash = pkgs.lib.fakeHash;
- cargoHash = "sha256-XHCXOlG4sdr1A3lqIK/7bB3soms1jxMIdfsFABmHVog=";
+ cargoHash = pkgs.lib.fakeHash;
};
- pwatch = pkgs.writeShellScriptBin "pwatch" ''
- dir="$(dirname "$(cargo locate-project --workspace --message-format plain)")"
- pushd "$dir"
-
- additional_watchexec_args=""
- if [[ -f apps/$pkg/build.rs ]]; then
- additional_watchexec_args="--watch apps/$pkg/build.rs"
- fi
-
- pkg="$1"; shift
- cargo_subcmd="$1"; shift
- cargo_subcmd_args="$@"; shift
-
- argfile="apps/$pkg/.watchexec.argfile"
- argfile_args=""
-
- if [[ -f $argfile ]]; then
- argfile_args="@$argfile"
- fi
- watchexec $argfile_args --stop-timeout 0s --restart \
- --watch Cargo.toml \
- --watch libs \
- --watch apps/$pkg/src/ \
- --watch apps/$pkg/Cargo.toml \
- $additional_watchexec_args \
- cargo "$cargo_subcmd" --package "$pkg" "$cargo_subcmd_args"
-
- popd
- '';
-
- default = lyrs;
+ default = my-package;
}
diff --git a/templates/rust/nix/shells.nix b/templates/rust/nix/shells.nix
index a5f3e2b..85be850 100644
--- a/templates/rust/nix/shells.nix
+++ b/templates/rust/nix/shells.nix
@@ -5,9 +5,9 @@
}: let
inherit (pkgs) system;
in rec {
- lyrs-dev = pkgs.mkShell {
+ my-package-dev = pkgs.mkShell {
inherit (self.checks.${system}.git-hooks) shellHook;
- inputsFrom = [self.packages.${system}.lyrs];
+ inputsFrom = [self.packages.${system}.my-package];
packages = with pkgs; [
convco
rustPackages.clippy
@@ -18,5 +18,5 @@ in rec {
lldb
];
};
- default = lyrs-dev;
+ default = my-package-dev;
}