aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.lock21
-rw-r--r--flake.nix5
-rw-r--r--hosts/ganymede/config.nix15
-rw-r--r--hosts/ganymede/nixos.nix3
-rw-r--r--hosts/gliese-key.age18
-rw-r--r--hosts/mercury/config.nix9
-rw-r--r--hosts/mercury/hjem.nix16
-rw-r--r--hosts/mercury/nixos.nix18
-rw-r--r--modules/desktop/hjem/default.nix6
-rw-r--r--modules/desktop/hjem/programs/foot.nix4
-rw-r--r--modules/desktop/hjem/wm/default.nix8
-rw-r--r--modules/desktop/hjem/wm/sway.nix5
-rw-r--r--modules/desktop/hjem/wm/tofi.nix42
-rw-r--r--modules/desktop/nixos/default.nix2
-rw-r--r--modules/desktop/nixos/portals.nix52
-rw-r--r--modules/desktop/nixos/qt.nix74
-rw-r--r--modules/desktop/options.nix1
-rw-r--r--modules/nix/nixos/default.nix22
-rw-r--r--modules/services/nixos/copyparty.nix2
-rw-r--r--modules/terminal/hjem/programs/helix.nix2
-rw-r--r--pkgs/yo/default.nix6
-rw-r--r--secrets.nix1
22 files changed, 292 insertions, 40 deletions
diff --git a/flake.lock b/flake.lock
index f94d240..6bd3280 100644
--- a/flake.lock
+++ b/flake.lock
@@ -293,6 +293,26 @@
"type": "github"
}
},
+ "nix-index-database": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1772945408,
+ "narHash": "sha256-PMt48sEQ8cgCeljQ9I/32uoBq/8t8y+7W/nAZhf72TQ=",
+ "owner": "nix-community",
+ "repo": "nix-index-database",
+ "rev": "1c1d8ea87b047788fd7567adf531418c5da321ec",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "nix-index-database",
+ "type": "github"
+ }
+ },
"nix-std": {
"locked": {
"lastModified": 1710870712,
@@ -388,6 +408,7 @@
"glide-browser": "glide-browser",
"hjem": "hjem",
"lanzaboote": "lanzaboote",
+ "nix-index-database": "nix-index-database",
"nixos-facter-modules": "nixos-facter-modules",
"nixpkgs": "nixpkgs",
"tmux-tsunami": "tmux-tsunami",
diff --git a/flake.nix b/flake.nix
index 671932d..d07a405 100644
--- a/flake.nix
+++ b/flake.nix
@@ -2,6 +2,11 @@
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
+ nix-index-database = {
+ url = "github:nix-community/nix-index-database";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
agenix = {
url = "github:ryantm/agenix";
inputs.nixpkgs.follows = "nixpkgs";
diff --git a/hosts/ganymede/config.nix b/hosts/ganymede/config.nix
index b67d057..bd990e8 100644
--- a/hosts/ganymede/config.nix
+++ b/hosts/ganymede/config.nix
@@ -8,6 +8,11 @@
owner = "wpa_supplicant";
};
+ "gliese-key" = {
+ file = ../gliese-key.age;
+ owner = "collin";
+ };
+
"caddy-env".file = ./secrets/caddy-env.age;
"collin-copyparty-password" = {
@@ -22,11 +27,6 @@
file = ./secrets/wireguard-pk.age;
owner = "systemd-network";
};
-
- "copilot-token" = {
- file = ./secrets/copilot-token.age;
- owner = "copilot-api";
- };
};
terminal = {
@@ -118,11 +118,6 @@
enable = true;
envFile = config.collinux.secrets."caddy-env".path;
};
-
- copilot-api = {
- enable = true;
- githubToken = config.collinux.secrets."copilot-token".path;
- };
};
};
}
diff --git a/hosts/ganymede/nixos.nix b/hosts/ganymede/nixos.nix
index f4d8d1b..043f67a 100644
--- a/hosts/ganymede/nixos.nix
+++ b/hosts/ganymede/nixos.nix
@@ -60,6 +60,7 @@
};
# deploy user
+ nix.settings.trusted-users = ["deploy"];
users.groups."deploy" = {};
users.users."deploy" = {
isSystemUser = true;
@@ -90,7 +91,7 @@
Host gliese
HostName 10.100.0.1
User green
- IdentityFile ~/Gliese_key_2.pem
+ IdentityFile ${config.collinux.secrets."gliese-key".path}
'';
# merge logs from subdomains
diff --git a/hosts/gliese-key.age b/hosts/gliese-key.age
new file mode 100644
index 0000000..6fc5ce5
--- /dev/null
+++ b/hosts/gliese-key.age
@@ -0,0 +1,18 @@
+-----BEGIN AGE ENCRYPTED FILE-----
+YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IGF6QmlsZyA0RCtu
+NWFrbW0zTU53Rk05NzRUUG1oRG4rK05EM1pnYTYwaEpCYWZBbFFrCmM3TmtRandq
+TnBVVk9ZRm1oMzlIajR1b1RJdHl4MERtbkw1MmQ3em55cncKLT4gc3NoLWVkMjU1
+MTkgSmc0eVdRIGJPcG56L3c0QUovSVJsVDlrTkJhNTBaSXlzQkkweU1mcTB5dEtK
+SDhKekUKaWEzdTUvbU5seVkvZUJDQW9XTVQ1bEJzWU5XVU5VREhIMnFxd0FRWHhS
+dwotPiAyQC1ncmVhc2UgLE85NyBOZ2ssbmIKMEN1MWNWL2dWZwotLS0gazN5U0xM
+ZjhXV1B2MmlhUm5rQXJGcWJKcVRUdXZ5Z3cxWEN2a3FVdEJWMAqoHBpRSjJB1CKI
+fWVLuRxB5c/gBXoiE8VfQ7O5v1JN6ZJ7C9m+d6PcgSKaCjEgPdnRxxe7JCDc3dUS
+cnebY/h7q+vAkLTqvtuiBMw67c5p79/EW7FpN6Wzzmc9wIHvbPf0zsn4EOqfc24I
+cuB55uviE0//E3Xh6iRvvx5XEgSBUGLeycZa5P0fmUJUOhG9CtJya4D2tB6huyNK
+2+dJgQdFkXghinzPQimnDXYhoD7PTM6yGaJQdrB0GT6lXMCBlRB9p2uEArrVYhJu
+/vAXFsGxENjI7XvH1RabM1gLN7Eytq/ptz+9/S/sMQ4D4FPp3L2gHklEqepOv3Df
+z1b7PA5aOQj3+jlpcAUkfKtgA32vT7KddlRXQWHzC7VyuEpGjT+qydNet+tBW5Z6
+DDNc/LJ/sNvOsBQE2wqvi4/bLpAG2By6CKrZYZrE+l1zJMWkbT6QnOR9/aby15am
+iSq4agnTdxsx3JrJ+V5thUyDNrAIY/DQg0rLfoGy37g877vENco+3USdoOeRJjHD
+1yRjq39y8h4EQCyeaAx0h3MQEJMiReHxbQ==
+-----END AGE ENCRYPTED FILE-----
diff --git a/hosts/mercury/config.nix b/hosts/mercury/config.nix
index e5d8720..418b9fe 100644
--- a/hosts/mercury/config.nix
+++ b/hosts/mercury/config.nix
@@ -2,11 +2,19 @@
collinux = {
theme = "catppuccin";
+ secrets = {
+ "gliese-key" = {
+ file = ../gliese-key.age;
+ owner = "collin";
+ };
+ };
+
user.useRun0 = true;
desktop = {
wallpaper = ./wallpapers/abstract-swirls.jpg;
gtk.enable = true;
+
greetd = {
enable = true;
autologin.enable = true;
@@ -24,6 +32,7 @@
programs = {
firefox.enable = true;
foot.enable = true;
+ tofi.enable = true;
research.enable = true;
};
diff --git a/hosts/mercury/hjem.nix b/hosts/mercury/hjem.nix
index 1839625..1e87ddd 100644
--- a/hosts/mercury/hjem.nix
+++ b/hosts/mercury/hjem.nix
@@ -8,9 +8,7 @@
prismlauncher
mpv
- claude-code
-
- lagrange
+ opencode
musescore
vital
@@ -43,16 +41,4 @@
socks5-addr = "localhost:1666"
'';
-
- files.".claude/settings.json".text = builtins.toJSON {
- env = {
- ANTHROPIC_BASE_URL = "http://localhost:4141";
- ANTHROPIC_AUTH_TOKEN = "sk-dummy";
- ANTHROPIC_MODEL = "claude-sonnet-4.5";
- ANTHROPIC_DEFAULT_HAIKU_MODEL = "gpt-5-mini";
- DISABLE_NON_ESSENTIAL_MODEL_CALLS = "1";
- CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC = "1";
- CLAUDE_CODE_ATTRIBUTION_HEADER = "0";
- };
- };
}
diff --git a/hosts/mercury/nixos.nix b/hosts/mercury/nixos.nix
index 5d8a63f..46153ae 100644
--- a/hosts/mercury/nixos.nix
+++ b/hosts/mercury/nixos.nix
@@ -1,6 +1,8 @@
{
lib,
+ pkgs,
inputs,
+ config,
...
}: {
imports = [
@@ -29,6 +31,8 @@
}
];
+ services.dbus.implementation = "broker";
+
environment.defaultPackages = lib.mkForce []; # im not a noob
security.pki.certificates = [
@@ -55,8 +59,22 @@
Host ganymede
HostName williamsfam.us.com
Port 22
+
+ Host gliese
+ HostName 10.100.0.1
+ User green
+ IdentityFile ${config.collinux.secrets."gliese-key".path}
+ ProxyJump collin@ganymede
'';
+ ## UUGGGG I DINT"W ATNT TO DO THIS
+ programs.nix-ld = {
+ enable = true;
+ libraries = with pkgs; [
+ libGL
+ ];
+ };
+
programs.firefox.policies.ExtensionSettings = {
"foxyproxy@eric.h.jung" = {
installation_mode = "force_installed";
diff --git a/modules/desktop/hjem/default.nix b/modules/desktop/hjem/default.nix
index 81014c2..f22fd78 100644
--- a/modules/desktop/hjem/default.nix
+++ b/modules/desktop/hjem/default.nix
@@ -2,11 +2,7 @@
imports = [
./gtk.nix
- ./wm/sway.nix
- ./wm/niri.nix
- ./wm/default.nix
- ./wm/dunst.nix
- ./wm/fuzzel.nix
+ ./wm
./programs/foot.nix
./programs/firefox.nix
diff --git a/modules/desktop/hjem/programs/foot.nix b/modules/desktop/hjem/programs/foot.nix
index c05e22c..f1bb0bb 100644
--- a/modules/desktop/hjem/programs/foot.nix
+++ b/modules/desktop/hjem/programs/foot.nix
@@ -12,6 +12,10 @@
shell = "${pkgs.fish}/bin/fish";
};
+ key-bindings = {
+ spawn-terminal = "Control+Return";
+ };
+
colors = with config.collinux.palette; {
alpha = "0.6";
diff --git a/modules/desktop/hjem/wm/default.nix b/modules/desktop/hjem/wm/default.nix
index 6b8aeed..a940132 100644
--- a/modules/desktop/hjem/wm/default.nix
+++ b/modules/desktop/hjem/wm/default.nix
@@ -1,4 +1,12 @@
{pkgs, ...}: {
+ imports = [
+ ./dunst.nix
+ ./fuzzel.nix
+ ./niri.nix
+ ./sway.nix
+ ./tofi.nix
+ ];
+
packages = [
(pkgs.callPackage ../../../../pkgs/util {}) # util.lua
];
diff --git a/modules/desktop/hjem/wm/sway.nix b/modules/desktop/hjem/wm/sway.nix
index 62e4203..0e5edb2 100644
--- a/modules/desktop/hjem/wm/sway.nix
+++ b/modules/desktop/hjem/wm/sway.nix
@@ -38,6 +38,7 @@
settings = ''
exec ${config.collinux.desktop.wallpaper_cmd}
exec ${pkgs.dunst}/bin/dunst
+ exec ${pkgs.dbus}/bin/dbus-update-activation-environment --systemd WAYLAND_DISPLAY DISPLAY SWAYSOCK XDG_CURRENT_DESKTOP GTK_USE_PORTAL NIXOS_OZONE_WL MOZ_ENABLE_WAYLAND
include catppuccin-mocha
@@ -78,11 +79,13 @@
bindsym Mod4+Shift+9 move container to workspace number 9
bindsym Mod4+Return exec ${pkgs.foot}/bin/foot
- bindsym Mod4+Space exec ${pkgs.fuzzel}/bin/fuzzel
+ bindsym Mod4+Space exec tofi-drun
bindsym Mod4+b exec ${pkgs.firefox}/bin/firefox
bindsym Mod4+Shift+b exec ${pkgs.qutebrowser}/bin/qutebrowser
bindsym Mod4+q kill
+ bindsym Mod4+w exec '${pkgs.iwmenu}/bin/iwmenu -l fuzzel -i font -s 2'
+
bindsym Mod4+Shift+s exec '${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)" ~/Pictures/$(date +"%s_grim.png")'
bindsym Mod4+Alt+s exec '${pkgs.hyprpicker}/bin/hyprpicker'
diff --git a/modules/desktop/hjem/wm/tofi.nix b/modules/desktop/hjem/wm/tofi.nix
new file mode 100644
index 0000000..f6a0703
--- /dev/null
+++ b/modules/desktop/hjem/wm/tofi.nix
@@ -0,0 +1,42 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.tofi;
+ flags = {
+ drun-launch = "true";
+ anchor = "bottom";
+ horizontal = "true";
+ width = "100%";
+ height = 20;
+ font-size = 12;
+ prompt-text = "";
+ font = "${pkgs.iosevka}/share/fonts/truetype/Iosevka-Regular.ttf";
+ outline-width = 0;
+ border-width = 0;
+ num-results = 20;
+ min-input-width = 0;
+ result-spacing = 10;
+ padding-top = 0;
+ padding-bottom = 0;
+ padding-left = 0;
+ padding-right = 0;
+ background-color = "#11111b";
+ text-color = "#585B70";
+ selection-color = "#CDD6F4";
+ selection-match-color = "#89B4FA";
+ };
+ flagsText = flags |> lib.mapAttrsToList (k: v: "--${k}=${toString v}") |> lib.concatStringsSep " ";
+in
+ lib.mkIf cfg.enable {
+ packages = [
+ (pkgs.writeShellScriptBin "tofi" ''
+ ${pkgs.tofi}/bin/tofi ${flagsText}
+ '')
+ (pkgs.writeShellScriptBin "tofi-drun" ''
+ ${pkgs.tofi}/bin/tofi-drun ${flagsText}
+ '')
+ ];
+ }
diff --git a/modules/desktop/nixos/default.nix b/modules/desktop/nixos/default.nix
index 1301483..97038d0 100644
--- a/modules/desktop/nixos/default.nix
+++ b/modules/desktop/nixos/default.nix
@@ -2,6 +2,8 @@
imports = [
./gnome.nix
./fonts.nix
+ ./portals.nix
+ ./qt.nix
./greeters/greetd.nix
./greeters/gdm.nix
diff --git a/modules/desktop/nixos/portals.nix b/modules/desktop/nixos/portals.nix
new file mode 100644
index 0000000..ff65868
--- /dev/null
+++ b/modules/desktop/nixos/portals.nix
@@ -0,0 +1,52 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ useKdePortal = config.collinux.desktop.wm.sway.enable || config.collinux.desktop.wm.niri.enable;
+in
+ lib.mkIf useKdePortal {
+ xdg.portal = {
+ enable = true;
+ xdgOpenUsePortal = true;
+
+ config = {
+ common = {
+ default = [
+ "kde"
+ "gtk"
+ ];
+ "org.freedesktop.impl.portal.FileChooser" = ["kde"];
+ };
+
+ sway = {
+ default = [
+ "kde"
+ "gtk"
+ ];
+ "org.freedesktop.impl.portal.FileChooser" = ["kde"];
+ };
+
+ niri = {
+ default = [
+ "kde"
+ "gtk"
+ ];
+ "org.freedesktop.impl.portal.FileChooser" = ["kde"];
+ };
+ };
+
+ extraPortals = with pkgs; [
+ kdePackages.xdg-desktop-portal-kde
+ xdg-desktop-portal-gtk
+ ];
+ };
+
+ environment.sessionVariables = {
+ XDG_CURRENT_DESKTOP = "KDE";
+ GTK_USE_PORTAL = "1";
+ NIXOS_OZONE_WL = "1";
+ MOZ_ENABLE_WAYLAND = "1";
+ };
+ }
diff --git a/modules/desktop/nixos/qt.nix b/modules/desktop/nixos/qt.nix
new file mode 100644
index 0000000..f65e361
--- /dev/null
+++ b/modules/desktop/nixos/qt.nix
@@ -0,0 +1,74 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ isCatppuccin = config.collinux.theme == "catppuccin";
+ useQtDesktop = config.collinux.desktop.wm.sway.enable || config.collinux.desktop.wm.niri.enable;
+in
+ lib.mkIf useQtDesktop {
+ qt = {
+ enable = true;
+ platformTheme = "kde";
+ style = "kvantum";
+ };
+
+ environment.systemPackages = lib.optionals isCatppuccin [
+ pkgs.papirus-icon-theme
+ (pkgs.catppuccin-kde.override {
+ flavour = ["mocha"];
+ accents = ["blue"];
+ winDecStyles = ["modern"];
+ })
+ (pkgs.catppuccin-kvantum.override {
+ variant = "mocha";
+ accent = "blue";
+ })
+ ];
+
+ environment.pathsToLink = lib.optionals isCatppuccin [
+ "/share/color-schemes"
+ "/share/Kvantum"
+ ];
+
+ environment.sessionVariables = lib.optionalAttrs isCatppuccin {
+ KVANTUM_THEME = "catppuccin-mocha-blue";
+ };
+
+ systemd.user.extraConfig = lib.optionalString isCatppuccin ''
+ DefaultEnvironment=KVANTUM_THEME=catppuccin-mocha-blue
+ DefaultEnvironment=QT_STYLE_OVERRIDE=kvantum
+ DefaultEnvironment=QT_QPA_PLATFORMTHEME=kde
+ DefaultEnvironment=KDE_COLOR_SCHEME=CatppuccinMochaBlue
+ '';
+
+ systemd.user.services.plasma-xdg-desktop-portal-kde = lib.mkIf isCatppuccin {
+ overrideStrategy = "asDropin";
+ serviceConfig.Environment = [
+ "XDG_CURRENT_DESKTOP=KDE"
+ "QT_QPA_PLATFORMTHEME=kde"
+ "QT_STYLE_OVERRIDE=kvantum"
+ "KVANTUM_THEME=catppuccin-mocha-blue"
+ "KDE_COLOR_SCHEME=CatppuccinMochaBlue"
+ ];
+ };
+
+ hjem.users."${config.collinux.user.name}".xdg.config.files = lib.optionalAttrs isCatppuccin {
+ "Kvantum/kvantum.kvconfig".text = ''
+ [General]
+ theme=catppuccin-mocha-blue
+ '';
+
+ "kdeglobals".text = ''
+ [General]
+ ColorScheme=CatppuccinMochaBlue
+
+ [Icons]
+ Theme=Papirus
+
+ [KDE]
+ widgetStyle=kvantum
+ '';
+ };
+ }
diff --git a/modules/desktop/options.nix b/modules/desktop/options.nix
index 9081ba9..3d6b9e3 100644
--- a/modules/desktop/options.nix
+++ b/modules/desktop/options.nix
@@ -132,6 +132,7 @@ in {
};
foot = mkProgramOption "foot";
+ tofi = mkProgramOption "tofi";
blackbox.enable = mkEnableOption "blackbox";
ghostty.enable = mkEnableOption "ghostty";
alacritty.enable = mkEnableOption "alacritty";
diff --git a/modules/nix/nixos/default.nix b/modules/nix/nixos/default.nix
index 3aa8930..7441236 100644
--- a/modules/nix/nixos/default.nix
+++ b/modules/nix/nixos/default.nix
@@ -2,9 +2,16 @@
config,
lib,
pkgs,
+ inputs,
...
}: {
+ imports = [
+ inputs.nix-index-database.nixosModules.default
+ ];
+
nix = {
+ # package = inputs.determinate.packages.${pkgs.system}.default;
+
gc.automatic = false; # use nh cleaner instead
# Make builds run with low priority so my system stays responsive
@@ -15,18 +22,23 @@
extra-experimental-features = ["nix-command" "flakes" "pipe-operators"];
auto-optimise-store = true;
use-xdg-base-directories = true;
+
+ # lazy-trees = true;
+ # eval-cores = 0;
};
# Disable channels
channel.enable = false;
};
-
nixpkgs.config.allowUnfree = true;
- programs.nh = lib.mkIf config.collinux.terminal.programs.nh.enable {
- enable = true;
- flake = "/home/${config.collinux.user.name}/nixos";
- clean.enable = true;
+ programs = {
+ nh = lib.mkIf config.collinux.terminal.programs.nh.enable {
+ enable = true;
+ flake = "/home/${config.collinux.user.name}/nixos";
+ clean.enable = true;
+ };
+ nix-index-database.comma.enable = true;
};
environment.systemPackages = [pkgs.cached-nix-shell];
diff --git a/modules/services/nixos/copyparty.nix b/modules/services/nixos/copyparty.nix
index df7018e..cfc69bc 100644
--- a/modules/services/nixos/copyparty.nix
+++ b/modules/services/nixos/copyparty.nix
@@ -74,7 +74,7 @@ in {
};
flags = {
fk = 6;
- dk = 6;
+ dks = 6;
e2ts = true; # enable music indexing
};
};
diff --git a/modules/terminal/hjem/programs/helix.nix b/modules/terminal/hjem/programs/helix.nix
index ae8ad03..a544616 100644
--- a/modules/terminal/hjem/programs/helix.nix
+++ b/modules/terminal/hjem/programs/helix.nix
@@ -18,7 +18,7 @@
installPhase = ''
mkdir -p $out/bin
makeWrapper ${pkgs.rust-analyzer}/bin/rust-analyzer $out/bin/rust-analyzer \
- --prefix PATH : ${pkgs.lib.makeBinPath (with pkgs; [rustc cargo])}
+ --prefix PATH : ${lib.makeBinPath (with pkgs; [rustc cargo])}
'';
};
in "${env}/bin/rust-analyzer";
diff --git a/pkgs/yo/default.nix b/pkgs/yo/default.nix
index a29bb2e..30a90f0 100644
--- a/pkgs/yo/default.nix
+++ b/pkgs/yo/default.nix
@@ -14,7 +14,11 @@
hostname: hostname,
use_nom: true
)
- Nix.switch_to_configuration_remote(store_path: store_path, ssh_host: ssh_host, use_magic_rollback: true)
+ Nix.switch_to_configuration_remote(
+ store_path: store_path,
+ ssh_host: ssh_host,
+ use_magic_rollback: true
+ )
when "switch", "sw"
store_path = Nix.build_configuration(
flake_path: FLAKE_PATH,
diff --git a/secrets.nix b/secrets.nix
index 67ab5fd..75733c7 100644
--- a/secrets.nix
+++ b/secrets.nix
@@ -2,6 +2,7 @@ let
inherit ((builtins.fromTOML (builtins.readFile ./hosts.toml)).hosts) mercury ganymede jupiter;
in {
"modules/terminal/nixos/github-ssh-key.age".publicKeys = [mercury.host_pubkey jupiter.host_pubkey ganymede.host_pubkey];
+ "hosts/gliese-key.age".publicKeys = [mercury.host_pubkey ganymede.host_pubkey];
"hosts/ganymede/secrets/caddy-env.age".publicKeys = [ganymede.host_pubkey];
"hosts/ganymede/secrets/williams-psk.age".publicKeys = [ganymede.host_pubkey];