1 Commits

Author SHA1 Message Date
4feb5b89e8 wip: got inhibit working but fish_greeting fails 2025-10-01 13:38:54 -04:00
26 changed files with 235 additions and 598 deletions

View File

@@ -13,9 +13,9 @@ set $term alacritty
set $menu wofi --term '$term' set $menu wofi --term '$term'
### Output configuration ### Output configuration
output DP-3 pos 1920 0 res 1920x1080@60Hz output DP-3 pos 3840 0 res 1920x1080@59Hz
output HDMI-A-1 pos 0 0 res 1920x1080@60Hz output HDMI-A-1 pos 0 0 res 1920x1080@59Hz
output DP-2 pos 3840 0 res 1920x1080@60Hz output DP-2 pos 1920 0 res 1920x1080@60Hz
### Wallpaper ### Wallpaper
output HDMI-A-1 bg ~/.wallpaper/.wallpaper.png fill output HDMI-A-1 bg ~/.wallpaper/.wallpaper.png fill
@@ -25,19 +25,19 @@ output DP-3 bg ~/.wallpaper/.wallpaper.png fill
### Workspace binding ### Workspace binding
## DP-3 bindings ## DP-3 bindings
workspace 1 output DP-3 workspace 1 output DP-2
workspace 2 output DP-3 workspace 2 output DP-2
workspace 4 output DP-3 workspace 4 output DP-2
workspace 5 output DP-3 workspace 5 output DP-2
## HDMI-A-1 bindings ## HDMI-A-1 bindings
workspace 3 output HDMI-A-1 workspace 3 output HDMI-A-1
workspace 9 output HDMI-A-1 workspace 9 output HDMI-A-1
## DP-2 bindings ## DP-2 bindings
workspace 6 output DP-2 workspace 6 output DP-3
workspace 7 output DP-2 workspace 7 output DP-3
workspace 8 output DP-2 workspace 8 output DP-3
### Colour options ### Colour options
set $bg #24283b set $bg #24283b

176
flake.lock generated
View File

@@ -1,27 +1,5 @@
{ {
"nodes": { "nodes": {
"aagl": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1765245541,
"narHash": "sha256-Q4KU8bvFL3tJb1sTAPFG6qvi0KP8HvAfLG7mGqdSQV8=",
"owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"rev": "f251969383969412b94a98c9378deaa114a76338",
"type": "github"
},
"original": {
"owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"type": "github"
}
},
"darwin": { "darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -29,11 +7,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1762912391, "lastModified": 1749744770,
"narHash": "sha256-4hpBE7bGd24SfD28rzMdUGXsLsNEYxCCrTipFdoqoNM=", "narHash": "sha256-MEM9XXHgBF/Cyv1RES1t6gqAX7/tvayBC1r/KPyK1ls=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "d76299b2cd01837c4c271a7b5186e3d5d8ebd126", "rev": "536f951efb1ccda9b968e3c9dee39fbeb6d3fdeb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -46,27 +24,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1761588595, "lastModified": 1747046372,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5", "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1761588595,
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -95,18 +57,18 @@
}, },
"ghostty": { "ghostty": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs",
"zig": "zig", "zig": "zig",
"zon2nix": "zon2nix" "zon2nix": "zon2nix"
}, },
"locked": { "locked": {
"lastModified": 1765752037, "lastModified": 1754941490,
"narHash": "sha256-hjqxmMTTiGBBELqnwiomBv8FaowC5MPHMVr+tKQZybU=", "narHash": "sha256-2AJf0q4u1zakqjr0y4dCyqzdDSil8P5m2YpZxAAzJJw=",
"owner": "ghostty-org", "owner": "ghostty-org",
"repo": "ghostty", "repo": "ghostty",
"rev": "1d7fe9e70d5800de8de6244ebb1d07efb74ec36e", "rev": "5bf632e9cc0e77a578bad983b0cbdf0451ce87d4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -122,11 +84,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1763992789, "lastModified": 1753592768,
"narHash": "sha256-WHkdBlw6oyxXIra/vQPYLtqY+3G8dUVZM8bEXk0t8x4=", "narHash": "sha256-oV695RvbAE4+R9pcsT9shmp6zE/+IZe6evHWX63f2Qg=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "44831a7eaba4360fb81f2acc5ea6de5fde90aaa3", "rev": "fc3add429f21450359369af74c2375cb34a2d204",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -154,40 +116,24 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1744536153, "lastModified": 1748189127,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=", "narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
"owner": "NixOS", "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
"repo": "nixpkgs", "type": "tarball",
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11", "url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz"
"type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "type": "tarball",
"ref": "nixpkgs-unstable", "url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
"repo": "nixpkgs",
"type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1763191728, "lastModified": 1754767907,
"narHash": "sha256-gI9PpaoX4/f28HkjcTbFVpFhtOxSDtOEdFaHZrdETe0=", "narHash": "sha256-8OnUzRQZkqtUol9vuUuQC30hzpMreKptNyET2T9lB6g=",
"rev": "1d4c88323ac36805d09657d13a5273aea1b34f0c",
"type": "tarball",
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre896415.1d4c88323ac3/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1765363881,
"narHash": "sha256-3C3xWn8/2Zzr7sxVBmpc1H1QfxjNfta5IMFe3O9ZEPw=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "d2b1213bf5ec5e62d96b003ab4b5cbc42abfc0d0", "rev": "c5f08b62ed75415439d48152c2a784e36909b1bc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -197,67 +143,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": {
"locked": {
"lastModified": 1744536153,
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"aagl": "aagl",
"darwin": "darwin", "darwin": "darwin",
"ghostty": "ghostty", "ghostty": "ghostty",
"home-manager": "home-manager", "home-manager": "home-manager",
"nix-flatpak": "nix-flatpak", "nix-flatpak": "nix-flatpak",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_2"
"rust-overlay": "rust-overlay_2"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1764470739,
"narHash": "sha256-sa9f81B1dWO16QtgDTWHX8DQbiHKzHndpaunY5EQtwE=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "3bfa664055e1a09c6aedab5533c5fc8d6ca5741a",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": {
"nixpkgs": "nixpkgs_4"
},
"locked": {
"lastModified": 1765680428,
"narHash": "sha256-fyPmRof9SZeI14ChPk5rVPOm7ISiiGkwGCunkhM+eUg=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "eb3898d8ef143d4bf0f7f2229105fc51c7731b2f",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
} }
}, },
"systems": { "systems": {
@@ -291,11 +183,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1763295135, "lastModified": 1748261582,
"narHash": "sha256-sGv/NHCmEnJivguGwB5w8LRmVqr1P72OjS+NzcJsssE=", "narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=",
"owner": "mitchellh", "owner": "mitchellh",
"repo": "zig-overlay", "repo": "zig-overlay",
"rev": "64f8b42cfc615b2cf99144adf2b7728c7847c72a", "rev": "aafb1b093fb838f7a02613b719e85ec912914221",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -306,23 +198,27 @@
}, },
"zon2nix": { "zon2nix": {
"inputs": { "inputs": {
"flake-utils": [
"ghostty",
"flake-utils"
],
"nixpkgs": [ "nixpkgs": [
"ghostty", "ghostty",
"nixpkgs" "nixpkgs"
] ]
}, },
"locked": { "locked": {
"lastModified": 1758405547, "lastModified": 1742104771,
"narHash": "sha256-WgaDgvIZMPvlZcZrpPMjkaalTBnGF2lTG+62znXctWM=", "narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=",
"owner": "jcollie", "owner": "jcollie",
"repo": "zon2nix", "repo": "zon2nix",
"rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245", "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "jcollie", "owner": "jcollie",
"repo": "zon2nix", "repo": "zon2nix",
"rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245", "rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
"type": "github" "type": "github"
} }
} }

View File

@@ -12,11 +12,6 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
ghostty.url = "github:ghostty-org/ghostty"; ghostty.url = "github:ghostty-org/ghostty";
rust-overlay.url = "github:oxalica/rust-overlay";
aagl = {
url = "github:ezKEa/aagl-gtk-on-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = inputs @ { outputs = inputs @ {
@@ -26,8 +21,6 @@
darwin, darwin,
home-manager, home-manager,
ghostty, ghostty,
rust-overlay,
aagl,
... ...
}: let }: let
userName = "wyatt"; userName = "wyatt";
@@ -35,21 +28,9 @@
extraSpecialArgs = { extraSpecialArgs = {
inherit userName userEmail ghostty; inherit userName userEmail ghostty;
}; };
myOverlays = { ... }: {
nixpkgs.overlays = [
rust-overlay.overlays.default
aagl.overlays.default
self.common.overlays
];
};
in { in {
meta = import ./meta; meta = import ./meta;
common = {
overlays = import ./modules/common/overlays.nix;
};
# Primary laptop - MacBook Pro (2023, M3) # Primary laptop - MacBook Pro (2023, M3)
darwinConfigurations."sephiroth" = darwin.lib.darwinSystem { darwinConfigurations."sephiroth" = darwin.lib.darwinSystem {
system = "aarch64-darwin"; system = "aarch64-darwin";
@@ -59,7 +40,6 @@
role = "devel"; role = "devel";
}; };
modules = [ modules = [
myOverlays
./modules/common ./modules/common
./modules/machine/sephiroth ./modules/machine/sephiroth
@@ -68,7 +48,6 @@
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = extraSpecialArgs; home-manager.extraSpecialArgs = extraSpecialArgs;
home-manager.backupFileExtension = "bak";
home-manager.users.${userName} = import ./home; home-manager.users.${userName} = import ./home;
} }
]; ];
@@ -78,12 +57,11 @@
nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem { nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { specialArgs = {
inherit userName userEmail ghostty aagl; inherit userName userEmail ghostty;
hostname = "cloud"; hostname = "cloud";
role = "devel"; role = "devel";
}; };
modules = [ modules = [
myOverlays
nix-flatpak.nixosModules.nix-flatpak nix-flatpak.nixosModules.nix-flatpak
./modules/common ./modules/common
./modules/machine/cloud ./modules/machine/cloud
@@ -93,7 +71,6 @@
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = extraSpecialArgs; home-manager.extraSpecialArgs = extraSpecialArgs;
home-manager.backupFileExtension = "bak";
home-manager.users.${userName}.imports = [ home-manager.users.${userName}.imports = [
./home ./home
]; ];
@@ -110,7 +87,6 @@
role = "server"; role = "server";
}; };
modules = [ modules = [
myOverlays
./modules/common ./modules/common
./modules/machine/valefor ./modules/machine/valefor
@@ -119,7 +95,6 @@
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = extraSpecialArgs; home-manager.extraSpecialArgs = extraSpecialArgs;
home-manager.backupFileExtension = "bak";
home-manager.users.${userName}.imports = [ home-manager.users.${userName}.imports = [
./home ./home
]; ];
@@ -136,7 +111,6 @@
role = "server"; role = "server";
}; };
# modules = [ # modules = [
# myOverlays
# nix-flatpak.nixosModules.nix-flatpak # nix-flatpak.nixosModules.nix-flatpak
# nix-ld.nixosModules.nix-ld # nix-ld.nixosModules.nix-ld
# ./modules/nixos/hardware-configuration.nix # ./modules/nixos/hardware-configuration.nix
@@ -149,7 +123,6 @@
# home-manager.useGlobalPkgs = true; # home-manager.useGlobalPkgs = true;
# home-manager.useUserPackages = true; # home-manager.useUserPackages = true;
# home-manager.extraSpecialArgs = extraSpecialArgs; # home-manager.extraSpecialArgs = extraSpecialArgs;
# home-manager.backupFileExtension = "bak";
# home-manager.users.${userName}.imports = [ # home-manager.users.${userName}.imports = [
# ./home # ./home
# ]; # ];

View File

@@ -1,7 +1,6 @@
{ pkgs, ...}: { {...}: {
programs.atuin = { programs.atuin = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration = true;
package = pkgs.atuinLatest;
}; };
} }

View File

@@ -40,37 +40,14 @@
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
sha256 = "sha256:0pdh1v0vx1d5vnl1zh7nbk6j1fh4k4hhwp1ljs203icn306lahsn"; sha256 = "sha256:0pdh1v0vx1d5vnl1zh7nbk6j1fh4k4hhwp1ljs203icn306lahsn";
# sha256 = lib.fakeSha256; # sha256 = lib.fakeSha256;
version = "1.67.0"; version = "1.64.0";
}) })
(createChromiumExtension { (createChromiumExtension {
# bitwarden # bitwarden
id = "nngceckbapebfimnlniiiahkandclblb"; id = "nngceckbapebfimnlniiiahkandclblb";
sha256 = "sha256:0jxk3cqmgd5qj8hnw7s0k5s4bfrcmr0w0rckp3x0bmng07azw4gi"; sha256 = "sha256:0jxk3cqmgd5qj8hnw7s0k5s4bfrcmr0w0rckp3x0bmng07azw4gi";
version = "2025.10.0"; # sha256 = lib.fakeSha256;
}) version = "2025.5.0";
(createChromiumExtension {
# react dev tools
id = "fmkadmapgofadopljbjfkapdkoienihi";
sha256 = "sha256:01vy0x7hdkj4g3m2l4kw5rwldhhpkcxmd2miy5rj2dzxdnbchw2z";
version = "7.0.1";
})
(createChromiumExtension {
# wappalyzer
id = "gppongmhjkpfnbhagpmjfkannfbllamg";
sha256 = "sha256:1mi1wpm714r8yp0zh0yg6kccnld36rj4xb8j4y0c18y9176vc6wx";
version = "6.10.86";
})
(createChromiumExtension {
# obsidian web clipper
id = "cnjifjpddelmedmihgijeibhnjfabmlf";
sha256 = "sha256:0bp6g63g9hk2xbq054lpf5hzwmn73jzh3hswyjfp9r7yqj83mzgy";
version = "0.12.0";
})
(createChromiumExtension {
# dark reader
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh";
sha256 = "sha256:06a9dz589i1da519kivzp7bljksl2xxsd151y7ww0hx28jd1694b";
version = "4.9.113";
}) })
]; ];
}; };

View File

@@ -27,7 +27,6 @@ in {
./browser.nix ./browser.nix
./zellij.nix ./zellij.nix
./bat.nix ./bat.nix
./lazygit.nix
]; ];
# Home Manager needs a bit of information about you and the # Home Manager needs a bit of information about you and the

View File

@@ -1,7 +1,6 @@
{ pkgs, ... }: { {...}: {
programs.lazygit = { programs.lazygit = {
enable = true; enable = true;
package = pkgs.lazygitLatest;
settings = { settings = {
gui.theme = { gui.theme = {

View File

@@ -1,4 +1,5 @@
{ {
lib,
pkgs, pkgs,
... ...
}: { }: {
@@ -13,6 +14,7 @@
# utils # utils
tmux tmux
lazygit
bottom bottom
ripgrep ripgrep
jq jq

View File

@@ -13,7 +13,6 @@
pavucontrol pavucontrol
godot godot
aseprite aseprite
zathura
gpu-screen-recorder gpu-screen-recorder
gpu-screen-recorder-gtk gpu-screen-recorder-gtk
# ungoogled-chromium # ungoogled-chromium

View File

@@ -1,30 +1,29 @@
{pkgs, lib, ...}: { {
programs.fish = { lib,
pkgs,
userName,
...
}: {
programs = {
fish = {
enable = true; enable = true;
# initExtra = ''
# export PATH="$PATH:$HOME/bin:$HOME/.local/bin:$HOME/go/bin"
# '';
shellAliases = { shellAliases = {
# ls aliases # ls aliases
ls = "eza --color"; ls = "eza --color";
la = "eza -l -all --color"; la = "eza -l -all --color";
ll = "eza -l --color"; ll = "eza -l --color";
lt = "eza -l --color --git"; lt = "eza -l --color --git";
# lazygit alias # lazygit alias
lg = "lazygit"; lg = "lazygit";
# cat, less, more alias # cat, less, more alias
cat = "bat"; cat = "bat";
less = "bat"; less = "bat";
more = "bat"; more = "bat";
# top alias # top alias
top = "btm"; top = "btm";
}; };
functions =
functions = { {
fish_greeting = { fish_greeting = {
body = '' body = ''
set memes \ set memes \
@@ -56,45 +55,47 @@
"The sun is setting, darkness taking over - a date with chaos and you're dressed to the nines" \ "The sun is setting, darkness taking over - a date with chaos and you're dressed to the nines" \
"Now kneel overdweller, your lord commands, there's no salvation for the sons of man" \ "Now kneel overdweller, your lord commands, there's no salvation for the sons of man" \
"Snap click clank whirr whizz wham boom!" \ "Snap click clank whirr whizz wham boom!" \
"Rohs an kyn ala na" \ "Rohs an kyn ala na"
"If youve brought your ivory standard, Ill be happy to tell you where you can stick it" \
"Speeches? Oh, yes, I love them. There's nothing like a good exposition when you're having trouble sleeping!" \
"Somehow, the boy just isn't very buoyant" \
"I am...not interested, little sun. Try again when you have become a man"
set choose_meme (random)"%"(count $memes) set choose_meme (random)"%"(count $memes)
set choose_meme $memes[(math $choose_meme"+1")] set choose_meme $memes[(math $choose_meme"+1")]
printf (set_color F90)"%s\n" $choose_meme printf (set_color F90)"%s\n" $choose_meme
''; '';
onEvent = "fish_greeting"; # onEvent = "fish_greeting";
}; };
} // lib.optionalAttrs pkgs.stdenv.isLinux { } // (lib.mkIf pkgs.stdenv.isLinux {
block = { block = {
body = '' body = ''
systemd-inhibit --what=sleep --who="$USER" --why="manual invocation" --mode=block sleep infinity & echo "Starting systemd-inhibit..."
set -g INHIBIT_PID $last_pid set inhibit_pid_file /tmp/fish_inhibit_pid_(whoami)
echo "Sleep inhibited. PID: $INHIBIT_PID" bash -c 'systemd-inhibit --no-ask-password --what=idle --who="'${userName}'" --why="manual invocation" sh & echo $! > '"$inhibit_pid_file"' && disown'
''; if test -f $inhibit_pid_file
}; set -g INHIBIT_PID (cat $inhibit_pid_file)
echo "Inhibit process started with PID: $INHIBIT_PID"
unblock = {
body = ''
if set -q INHIBIT_PID
kill $INHIBIT_PID 2>/dev/null
and echo "Sleep inhibitor removed. PID: $INHIBIT_PID"
or echo "Failed to kill process or already terminated."
set -e INHIBIT_PID
else else
echo "No active sleep inhibitor found." echo "Failed to start inhibit process"
return 1
end end
''; '';
}; };
unblock = {
body = ''
set inhibit_pid_file /tmp/fish_inhibit_pid_(whoami)
if test -f $inhibit_pid_file
set INHIBIT_PID (cat $inhibit_pid_file)
echo "Killing inhibit process: $INHIBIT_PID"
kill -SIGTERM $INHIBIT_PID 2>/dev/null; or kill -SIGKILL $INHIBIT_PID 2>/dev/null
rm -f $inhibit_pid_file
set -e INHIBIT_PID
echo "Inhibit process terminated"
else
echo "No inhibit process file found"
end
'';
}; };
});
}; };
zsh = {
programs.zsh = {
enable = true; enable = true;
initContent = '' initContent = ''
if [[ -z "$BASH_EXECUTION_STRING" ]]; then if [[ -z "$BASH_EXECUTION_STRING" ]]; then
@@ -107,8 +108,7 @@
fi fi
''; '';
}; };
bash = {
programs.bash = {
enable = true; enable = true;
initExtra = '' initExtra = ''
if [[ -z "$BASH_EXECUTION_STRING" ]]; then if [[ -z "$BASH_EXECUTION_STRING" ]]; then
@@ -121,4 +121,5 @@
fi fi
''; '';
}; };
};
} }

View File

@@ -2,13 +2,10 @@
config, config,
lib, lib,
pkgs, pkgs,
aagl,
... ...
}: let }: let
cfg = config.gaming; cfg = config.gaming;
in { in {
imports = [ aagl.nixosModules.default ];
options.gaming = { options.gaming = {
steam = { steam = {
enable = lib.mkEnableOption "Steam gaming platform"; enable = lib.mkEnableOption "Steam gaming platform";
@@ -65,14 +62,6 @@ in {
}; };
}; };
vkbasalt = {
enable = lib.mkEnableOption "vkBasalt/ReShade/GShade post processing shaders";
};
mangohud = {
enable = lib.mkEnableOption "OpenGL/Vulkan overlay tool shown in games presenting FPS, CPU/GPU/memory utilization, load, etc.";
};
lutris = { lutris = {
enable = lib.mkEnableOption "Lutris game manager and launcher"; enable = lib.mkEnableOption "Lutris game manager and launcher";
package = lib.mkOption { package = lib.mkOption {
@@ -119,34 +108,9 @@ in {
ffxiv = { ffxiv = {
enable = lib.mkEnableOption "Final Fantasy XIV and it's accompanied (unofficial) launcher"; enable = lib.mkEnableOption "Final Fantasy XIV and it's accompanied (unofficial) launcher";
}; };
# TODO: when aagl gets it's unified launcher all finished/in a stable state, transition to that launcher
aagl = {
anime-game-launcher = {
enable = lib.mkEnableOption "Genshin Impact launcher (legacy)";
}; };
honkers-railway-launcher = { config = {
enable = lib.mkEnableOption "Honkai: Star Rail launcher";
};
honkers-launcher = {
enable = lib.mkEnableOption "Honkai: Impact 3rd launcher";
};
wavey-launcher = {
enable = lib.mkEnableOption "Wuthering Waves launcher";
};
sleepy-launcher = {
enable = lib.mkEnableOption "Zenless Zone Zero (ZZZ) launcher";
};
};
};
config = let
agl = cfg.aagl;
in {
programs.steam = lib.mkIf cfg.steam.enable { programs.steam = lib.mkIf cfg.steam.enable {
enable = true; enable = true;
remotePlay.openFirewall = cfg.steam.firewall.remotePlay; remotePlay.openFirewall = cfg.steam.firewall.remotePlay;
@@ -175,26 +139,6 @@ in {
]; ];
}; };
programs.anime-game-launcher = lib.mkIf agl.anime-game-launcher.enable {
enable = true;
};
programs.honkers-railway-launcher = lib.mkIf agl.honkers-railway-launcher.enable {
enable = true;
};
programs.honkers-launcher = lib.mkIf agl.honkers-launcher.enable {
enable = true;
};
programs.wavey-launcher = lib.mkIf agl.wavey-launcher.enable {
enable = true;
};
programs.sleepy-launcher = lib.mkIf agl.sleepy-launcher.enable {
enable = true;
};
environment.systemPackages = environment.systemPackages =
(lib.optionals cfg.lutris.enable ( (lib.optionals cfg.lutris.enable (
[cfg.lutris.package] ++ [cfg.lutris.package] ++
@@ -210,19 +154,6 @@ in {
cfg.lutris.extraPackages cfg.lutris.extraPackages
)) ++ )) ++
(lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++ (lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++
(lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher pkgs.fflogs]) ++ (lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher]);
(lib.optionals cfg.vkbasalt.enable [pkgs.vkbasalt pkgs.vkBasalt pkgs.vkbasalt-cli]) ++
(lib.optionals cfg.mangohud.enable [pkgs.mangohud]) ++
(lib.optionals (cfg.vkbasalt.enable || cfg.mangohud.enable) [pkgs.goverlay pkgs.mesa-demos pkgs.vulkan-tools]);
nix.settings = let
inherit agl;
in (lib.mkIf
(agl.anime-game-launcher.enable || agl.honkers-railway-laucher.enable || agl.honkers-launcher.enable || agl.wavey-launcher.enable || agl.sleepy-launcher.enable)
{
substituters = [ "https://ezkea.cachix.org" ];
trusted-public-keys = [ "ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" ];
}
);
}; };
} }

View File

@@ -7,11 +7,3 @@ Licensed by the Mozilla Public License v2
## Synopsis ## Synopsis
This is the directory that holds shared configuration files amongst computers that I own. They are called by the root `flake.nix` file. This is the directory that holds shared configuration files amongst computers that I own. They are called by the root `flake.nix` file.
Here's a quick synopsis of each file:
- core: Sane Nix options that I set for myself
- environment: Core packages and environment variables to be set and installed
- fonts: Fonts and icons that are to be installed
- overlays: Customized packages tailored to my needs
- users: Users to be set on my system

View File

@@ -8,9 +8,6 @@
# Allow unfree packages # Allow unfree packages
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
nixpkgs.config.permittedInsecurePackages = [
"mbedtls-2.28.10"
];
nix.package = pkgs.nix; nix.package = pkgs.nix;

View File

@@ -1,9 +1,12 @@
{ ... }: { {
pkgs,
lib,
...
}: {
imports = [ imports = [
./core.nix ./core.nix
./environment.nix ./environment.nix
./fonts.nix ./fonts.nix
# ./overlays.nix
./users.nix ./users.nix
]; ];
} }

View File

@@ -1,85 +1,20 @@
{ lib, pkgs, config, ... }: { { lib, pkgs, ... }: {
# Common packages that every system will use
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
git git
vim vim
neovim neovim
usbutils usbutils
coreutils coreutils
lshw
systemd
dmidecode
pciutils pciutils
nix-ld
patchelf patchelf
htop htop
] ++
lib.optionals pkgs.stdenv.isLinux (with pkgs; [
systemd
lshw
dmidecode
]) ++
lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
# nothing here, yet ;)
]);
programs.nix-ld = lib.mkIf pkgs.stdenv.isLinux {
enable = true;
libraries = with pkgs;
[
acl
attr
bzip2
dbus
expat
fontconfig
freetype
fuse3
icu
libnotify
libsodium
libssh
libunwind
libusb1
libuuid
nspr
nss
stdenv.cc.cc
util-linux
zlib
zstd
]
++ lib.optionals (config.hardware.graphics.enable) [
pipewire
cups
libxkbcommon
pango
mesa
libdrm
libglvnd
libpulseaudio
atk
cairo
alsa-lib
at-spi2-atk
at-spi2-core
gdk-pixbuf
glib
gtk3
libGL
libappindicator-gtk3
vulkan-loader
xorg.libX11
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxcb
xorg.libxkbfile
xorg.libxshmfence
]; ];
};
# Common environment variables that every system will use
environment.variables.EDITOR = "nvim"; environment.variables.EDITOR = "nvim";
} }

View File

@@ -12,8 +12,4 @@
monaspace monaspace
] ]
++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts); ++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
environment.systemPackages = with pkgs; [
adwaita-icon-theme
];
} }

View File

@@ -1,50 +0,0 @@
final: prev: let
rust_1_90_0 = prev.rust-bin.stable."1.90.0".default;
myRustPlatform = prev.makeRustPlatform {
cargo = rust_1_90_0;
rustc = rust_1_90_0;
};
in {
lazygitLatest = prev.lazygit.overrideAttrs (_: rec {
version = "0.55.1";
src = prev.fetchFromGitHub {
owner = "jesseduffield";
repo = "lazygit";
rev = "v${version}";
hash = "sha256-UofhgILZhVXnYiGpb25m4Ct4sbu5pRmjVgj3oEf5Uyk=";
};
vendorHash = null;
subPackages = [ "." ];
ldflags = [
"-X main.version=${version}"
"-X main.buildSource=nix"
];
});
atuinLatest = (prev.atuin.override {
rustPlatform = myRustPlatform;
}).overrideAttrs (oldAttrs: rec {
version = "18.10.0";
src = prev.fetchFromGitHub {
owner = "atuinsh";
repo = "atuin";
rev = "v${version}";
hash = "sha256-bfSa3RtVXxHt3usDqqpE/oXKKDUZOrf+tD9uL59fr6M=";
};
cargoDeps = myRustPlatform.fetchCargoVendor {
# name = "atuin-${version}-vendor.tar.gz";
inherit src;
hash = "sha256-67ffivZVCly1GWA3fJ9mT8nGv2EGd6eCthbaIu/IW3M=";
};
preCheck = (oldAttrs.preCheck or "") + ''
export HOME="$TMPDIR"
export XDG_CONFIG_HOME="$TMPDIR/.config"
export XDG_DATA_HOME="$TMPDIR/.local/share"
export XDG_STATE_HOME="$TMPDIR/.local/state"
mkdir -p "$XDG_CONFIG_HOME" "$XDG_DATA_HOME" "$XDG_STATE_HOME"
'';
});
}

View File

@@ -1,23 +1,30 @@
{ lib, pkgs, userName, hostname, ... }:
{ {
lib,
pkgs,
userName,
hostname,
...
} @ args: {
networking.hostName = hostname; networking.hostName = hostname;
users.users."${userName}" = { # Don't forget to set a password with passwd!
home = if pkgs.stdenv.isDarwin users.users."${userName}" = lib.mkMerge [
{
home =
if pkgs.stdenv.isDarwin
then "/Users/${userName}" then "/Users/${userName}"
else "/home/${userName}"; else "/home/${userName}";
description = userName; description = userName;
} // lib.optionalAttrs pkgs.stdenv.isLinux { }
(lib.mkIf (pkgs.stdenv.isLinux) {
group = "${userName}"; group = "${userName}";
isNormalUser = true; isNormalUser = true;
}; })
];
users.groups.wyatt = {}; security.sudo = {
nix.settings.trusted-users = [userName]; extraRules = [
security = lib.optionalAttrs pkgs.stdenv.isLinux {
sudo.extraRules = [
{ {
groups = [ "wheel" ]; groups = [ "wheel" ];
commands = [ commands = [
@@ -30,9 +37,7 @@
]; ];
}; };
environment = lib.optionalAttrs pkgs.stdenv.isDarwin { users.groups.wyatt = {};
etc."sudoers.d/wheel-nopasswd".text = ''
%wheel ALL=(ALL:ALL) NOPASSWD: SETENV: ALL nix.settings.trusted-users = [userName];
'';
};
} }

View File

@@ -62,9 +62,9 @@ in {
(mkIf (cfg.gpuVendor == "amd") { (mkIf (cfg.gpuVendor == "amd") {
services.xserver.videoDrivers = ["amdgpu"]; services.xserver.videoDrivers = ["amdgpu"];
# hardware.graphics.extraPackages = with pkgs; [ hardware.graphics.extraPackages = with pkgs; [
# amdvlk amdvlk
# ]; ];
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
radeontop radeontop
]; ];

View File

@@ -12,4 +12,4 @@ These are named after Final Fantasy VII characters.
### Servers/Network Infrastructure ### Servers/Network Infrastructure
These are named after Final Fantasy summons. There is some infrastructure missing here like my routers and switches that I also name after summons. These are named after Final Fantasy summons.

View File

@@ -1,8 +1,8 @@
{ {
config,
lib, lib,
pkgs, pkgs,
userName, userName,
aagl,
... ...
}: let }: let
flatpakPackages = [ flatpakPackages = [
@@ -18,7 +18,7 @@
in { in {
imports = [ imports = [
(import ../../apps/flatpak.nix { (import ../../apps/flatpak.nix {
inherit lib pkgs flatpakPackages userName aagl; inherit lib pkgs flatpakPackages;
}) })
../../apps/gaming.nix ../../apps/gaming.nix
../../apps/appimage.nix ../../apps/appimage.nix
@@ -89,10 +89,8 @@ in {
localNetworkGameTransfers = true; localNetworkGameTransfers = true;
}; };
}; };
vkbasalt.enable = true;
gamemode.enable = true; gamemode.enable = true;
gamescope.enable = true; gamescope.enable = true;
mangohud.enable = true;
lutris = { lutris = {
enable = true; enable = true;
wine = { wine = {
@@ -102,11 +100,14 @@ in {
compatibility = { compatibility = {
protonSupport = true; protonSupport = true;
}; };
extraPackages = with pkgs; [
gamemode
mangohud
];
}; };
ffxiv.enable = true; ffxiv.enable = true;
minecraft.enable = true; minecraft.enable = true;
aagl.anime-game-launcher.enable = true;
}; };
# Power management (see ../../pwrMgmt/default.nix) # Power management (see ../../pwrMgmt/default.nix)

View File

@@ -12,24 +12,24 @@
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "ahci" "usb_storage" "usbhid" "sd_mod"]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = []; boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = []; boot.extraModulePackages = [];
fileSystems."/" = { fileSystems."/" = {
device = "/dev/disk/by-uuid/f8f39aae-61d2-437d-a8e1-01066bbb3c5c"; device = "/dev/disk/by-label/COMPUTER";
fsType = "xfs"; fsType = "xfs";
}; };
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-uuid/B72F-087F"; device = "/dev/disk/by-label/BOOT";
fsType = "vfat"; fsType = "vfat";
options = ["fmask=0022" "dmask=0022"]; options = ["fmask=0022" "dmask=0022"];
}; };
swapDevices = [ swapDevices = [
{device = "/dev/disk/by-uuid/6d6bcc02-20a9-4ae8-9c1e-5124fb2b2634";} {device = "/dev/disk/by-label/SWAP";}
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View File

@@ -5,7 +5,7 @@
}: }:
with lib; { with lib; {
options = { options = {
security.sudoers = { security.sudo = {
needsPassword = mkOption { needsPassword = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;

View File

@@ -1,11 +1,6 @@
# TODO: refactor into module {...}: {
{ pkgs, ...}: {
services.pipewire = { services.pipewire = {
enable = true; enable = true;
pulse.enable = true; pulse.enable = true;
}; };
environment.systemPackages = with pkgs; [
helvum
];
} }

View File

@@ -1,16 +1,7 @@
{ lib, pkgs, userName, ...}: { {pkgs, ...}: {
services.shairport-sync = { services.shairport-sync = {
enable = pkgs.stdenv.isLinux; enable = pkgs.stdenv.isLinux;
openFirewall = pkgs.stdenv.isLinux; openFirewall = pkgs.stdenv.isLinux;
# arguments = "-v -o pa"; arguments = "-v -o pw";
};
systemd.services.shairport-sync = {
serviceConfig = {
User = lib.mkForce "${userName}";
};
environment = {
XDG_RUNTIME_DIR = "/run/user/1000";
};
}; };
} }

View File

@@ -1,8 +1,4 @@
{ pkgs, ... }: { {...}: {
virtualisation.libvirtd.enable = true; virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true; programs.virt-manager.enable = true;
environment.systemPackages = with pkgs; [
qemu
quickemu
];
} }