25 Commits

Author SHA1 Message Date
6024b77535 added aagl flake, implemeneted into gaming apps module 2025-11-02 10:25:27 -05:00
257fab9832 flake update 2025-11-01 18:46:26 -04:00
a73194fed9 Merge pull request 'Overlay a couple of packages' (#3) from nix-override-overlay into master
Reviewed-on: #3
2025-10-23 21:44:32 -05:00
0572cacd28 added ldflags to lazygit override 2025-10-23 10:36:27 -04:00
ecf728bc11 working rust package override
plus flake update :P
2025-10-22 19:45:10 -04:00
5a59f98ebc working overlay to get latest version of lazygit 2025-10-22 08:19:52 -04:00
e1d13065f8 added shell greetings 2025-10-21 13:04:18 -04:00
5ab19d093a testing 2025-10-21 08:33:25 -04:00
569141d227 flake update 2025-10-18 20:31:32 -04:00
48edbfdc4b shairport service working
systemd service works now ig
2025-10-18 20:31:22 -04:00
50c62a4d3f shairport working
heard some static noise when listening, maybe something can fix that?
2025-10-18 18:13:50 -04:00
f4b518f806 little sway update 2025-10-15 08:40:54 -04:00
7fffa45e4e updated mountpoints: cloud 2025-10-14 01:29:14 -04:00
a3c53820b1 added sleep inhibiting aliases to fish 2025-10-02 18:44:58 -04:00
8cbdeb4cdc Merge pull request 'Superuser bypass' (#2) from macos-superuser-bypass-refactor into master
Reviewed-on: #2
2025-10-02 08:59:47 -05:00
bfa957adcd flake update 2025-10-02 09:58:03 -04:00
50d22afef8 Merge branch 'master' into macos-superuser-bypass-refactor 2025-10-02 08:25:09 -04:00
29feb9223e fixed git config
i think i am reverting a false fix, idk
2025-09-21 11:55:46 -04:00
7bc7749f51 fixed focusrite module 2025-09-21 11:55:14 -04:00
93052529b8 modified things 2025-09-13 16:30:26 -04:00
51beed138e added dedicated focusrite scarlett, appimage modules, modified cloud
these new modules include only packages, no other configuration. maybe
later but none currently
2025-09-13 16:09:21 -04:00
faed026258 some formatting modifications 2025-09-04 14:05:36 -04:00
3af5061a79 system update 2025-08-27 11:31:11 -04:00
ddd3fb39e4 bulk of the refactor 2025-08-27 11:31:06 -04:00
6ff4e13b03 flake update 2025-08-12 09:14:50 -04:00
24 changed files with 470 additions and 265 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 3840 0 res 1920x1080@59Hz output DP-3 pos 1920 0 res 1920x1080@60Hz
output HDMI-A-1 pos 0 0 res 1920x1080@59Hz output HDMI-A-1 pos 0 0 res 1920x1080@60Hz
output DP-2 pos 1920 0 res 1920x1080@60Hz output DP-2 pos 3840 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,22 +25,22 @@ output DP-3 bg ~/.wallpaper/.wallpaper.png fill
### Workspace binding ### Workspace binding
## DP-3 bindings ## DP-3 bindings
workspace 1 output DP-2 workspace 1 output DP-3
workspace 2 output DP-2 workspace 2 output DP-3
workspace 4 output DP-2 workspace 4 output DP-3
workspace 5 output DP-2 workspace 5 output DP-3
## 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-3 workspace 6 output DP-2
workspace 7 output DP-3 workspace 7 output DP-2
workspace 8 output DP-3 workspace 8 output DP-2
### Colour options ### Colour options
set $bg #24283b set $bg #24283b
set $bg-inactive #323232 set $bg-inactive #323232
set $bg-urgent #000000 set $bg-urgent #000000
set $text #eeeeec set $text #eeeeec

265
flake.lock generated
View File

@@ -1,5 +1,27 @@
{ {
"nodes": { "nodes": {
"aagl": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
],
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1761836926,
"narHash": "sha256-HnNzEUuBqmJCUV/N/IbL0wFT1LHmNGWTLkUg7yRIhpY=",
"owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"rev": "e601b479a3d08124ee6ceea391cdc3f395aab54e",
"type": "github"
},
"original": {
"owner": "ezKEa",
"repo": "aagl-gtk-on-nix",
"type": "github"
}
},
"darwin": { "darwin": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@@ -7,11 +29,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1749744770, "lastModified": 1759509947,
"narHash": "sha256-MEM9XXHgBF/Cyv1RES1t6gqAX7/tvayBC1r/KPyK1ls=", "narHash": "sha256-4XifSIHfpJKcCf5bZZRhj8C4aCpjNBaE3kXr02s4rHU=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "536f951efb1ccda9b968e3c9dee39fbeb6d3fdeb", "rev": "000eadb231812ad6ea6aebd7526974aaf4e79355",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -24,11 +46,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1747046372, "lastModified": 1761588595,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -40,37 +62,16 @@
"flake-compat_2": { "flake-compat_2": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1751685974, "lastModified": 1747046372,
"narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"ref": "refs/heads/main", "owner": "edolstra",
"rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", "repo": "flake-compat",
"revCount": 92, "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "git",
"url": "https://git.lix.systems/lix-project/flake-compat.git"
},
"original": {
"type": "git",
"url": "https://git.lix.systems/lix-project/flake-compat.git"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nvf",
"nixpkgs"
]
},
"locked": {
"lastModified": 1753121425,
"narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "644e0fc48951a860279da645ba77fe4a6e814c5e",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "hercules-ci", "owner": "edolstra",
"repo": "flake-parts", "repo": "flake-compat",
"type": "github" "type": "github"
} }
}, },
@@ -94,18 +95,18 @@
}, },
"ghostty": { "ghostty": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat_2",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs_2",
"zig": "zig", "zig": "zig",
"zon2nix": "zon2nix" "zon2nix": "zon2nix"
}, },
"locked": { "locked": {
"lastModified": 1751123364, "lastModified": 1761933492,
"narHash": "sha256-Nb3pxs1onnbdhhnoNc+IfHzrW9dM+UbEdjK0AguR2J4=", "narHash": "sha256-DNGhpvYt6dVbkDse4s/L/jJvejvOV0bs+YWfAAskJ7g=",
"owner": "ghostty-org", "owner": "ghostty-org",
"repo": "ghostty", "repo": "ghostty",
"rev": "f6d1c274b9c0e095dc0a1b411dec7410ad779bf5", "rev": "765ee6842930f0d6918574b9b87c2ee6583e4727",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -121,11 +122,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1750792728, "lastModified": 1758463745,
"narHash": "sha256-Lh3dopA8DdY+ZoaAJPrtkZOZaFEJGSYjOdAYYgOPgE4=", "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "366f00797b1efb70f2882d3da485e3c10fd3d557", "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -135,21 +136,6 @@
"type": "github" "type": "github"
} }
}, },
"mnw": {
"locked": {
"lastModified": 1748710831,
"narHash": "sha256-eZu2yH3Y2eA9DD3naKWy/sTxYS5rPK2hO7vj8tvUCSU=",
"owner": "Gerg-L",
"repo": "mnw",
"rev": "cff958a4e050f8d917a6ff3a5624bc4681c6187d",
"type": "github"
},
"original": {
"owner": "Gerg-L",
"repo": "mnw",
"type": "github"
}
},
"nix-flatpak": { "nix-flatpak": {
"locked": { "locked": {
"lastModified": 1739444422, "lastModified": 1739444422,
@@ -168,24 +154,53 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1748189127, "lastModified": 1744536153,
"narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=", "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334", "owner": "NixOS",
"type": "tarball", "repo": "nixpkgs",
"url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz" "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
"type": "github"
}, },
"original": { "original": {
"type": "tarball", "owner": "NixOS",
"url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz" "ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1750969886, "lastModified": 315532800,
"narHash": "sha256-zW/OFnotiz/ndPFdebpo3X0CrbVNf22n4DjN2vxlb58=", "narHash": "sha256-sV6pJNzFkiPc6j9Bi9JuHBnWdVhtKB/mHgVmMPvDFlk=",
"rev": "82c2e0d6dde50b17ae366d2aa36f224dc19af469",
"type": "tarball",
"url": "https://releases.nixos.org/nixpkgs/nixpkgs-25.11pre877938.82c2e0d6dde5/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1758360447,
"narHash": "sha256-XDY3A83bclygHDtesRoaRTafUd80Q30D/Daf9KSG6bs=",
"rev": "8eaee110344796db060382e15d3af0a9fc396e0e",
"type": "tarball",
"url": "https://releases.nixos.org/nixos/unstable/nixos-25.11pre864002.8eaee1103447/nixexprs.tar.xz"
},
"original": {
"type": "tarball",
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
}
},
"nixpkgs_4": {
"locked": {
"lastModified": 1761597516,
"narHash": "sha256-wxX7u6D2rpkJLWkZ2E932SIvDJW8+ON/0Yy8+a5vsDU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a676066377a2fe7457369dd37c31fd2263b662f4", "rev": "daf6dc47aa4b44791372d6139ab7b25269184d55",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -195,52 +210,67 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1753432016, "lastModified": 1744536153,
"narHash": "sha256-cnL5WWn/xkZoyH/03NNUS7QgW5vI7D1i74g48qplCvg=", "narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
"owner": "nixos", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6027c30c8e9810896b92429f0092f624f7b1aace", "rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "NixOS",
"ref": "nixpkgs-unstable", "ref": "nixpkgs-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nvf": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-parts": "flake-parts",
"mnw": "mnw",
"nixpkgs": "nixpkgs_3",
"systems": "systems_2"
},
"locked": {
"lastModified": 1754552918,
"narHash": "sha256-vbT+nGdMLNAeYZ1S5WBBLJTVWosGne2VRt46rqPfB2A=",
"owner": "notashelf",
"repo": "nvf",
"rev": "d61de135ce174f4e04b4e509de02e1afe040a834",
"type": "github"
},
"original": {
"owner": "notashelf",
"repo": "nvf",
"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_2", "nixpkgs": "nixpkgs_4",
"nvf": "nvf" "rust-overlay": "rust-overlay_2"
}
},
"rust-overlay": {
"inputs": {
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1761791894,
"narHash": "sha256-myRIDh+PxaREz+z9LzbqBJF+SnTFJwkthKDX9zMyddY=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "59c45eb69d9222a4362673141e00ff77842cd219",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
}
},
"rust-overlay_2": {
"inputs": {
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1761964689,
"narHash": "sha256-Zo3LQQDz+64EQ9zor/WmeNTFLoZkjmhp0UY3G0D3seE=",
"owner": "oxalica",
"repo": "rust-overlay",
"rev": "63d22578600f70d293aede6bc737efef60ebd97f",
"type": "github"
},
"original": {
"owner": "oxalica",
"repo": "rust-overlay",
"type": "github"
} }
}, },
"systems": { "systems": {
@@ -258,25 +288,11 @@
"type": "github" "type": "github"
} }
}, },
"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"
}
},
"zig": { "zig": {
"inputs": { "inputs": {
"flake-compat": [ "flake-compat": [
"ghostty" "ghostty",
"flake-compat"
], ],
"flake-utils": [ "flake-utils": [
"ghostty", "ghostty",
@@ -288,11 +304,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1748261582, "lastModified": 1760401936,
"narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=", "narHash": "sha256-/zj5GYO5PKhBWGzbHbqT+ehY8EghuABdQ2WGfCwZpCQ=",
"owner": "mitchellh", "owner": "mitchellh",
"repo": "zig-overlay", "repo": "zig-overlay",
"rev": "aafb1b093fb838f7a02613b719e85ec912914221", "rev": "365085b6652259753b598d43b723858184980bbe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -303,27 +319,20 @@
}, },
"zon2nix": { "zon2nix": {
"inputs": { "inputs": {
"flake-utils": [ "nixpkgs": "nixpkgs_3"
"ghostty",
"flake-utils"
],
"nixpkgs": [
"ghostty",
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1742104771, "lastModified": 1758405547,
"narHash": "sha256-LhidlyEA9MP8jGe1rEnyjGFCzLLgCdDpYeWggibayr0=", "narHash": "sha256-WgaDgvIZMPvlZcZrpPMjkaalTBnGF2lTG+62znXctWM=",
"owner": "jcollie", "owner": "jcollie",
"repo": "zon2nix", "repo": "zon2nix",
"rev": "56c159be489cc6c0e73c3930bd908ddc6fe89613", "rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "jcollie", "owner": "jcollie",
"ref": "56c159be489cc6c0e73c3930bd908ddc6fe89613",
"repo": "zon2nix", "repo": "zon2nix",
"rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
"type": "github" "type": "github"
} }
} }

View File

@@ -12,7 +12,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
ghostty.url = "github:ghostty-org/ghostty"; ghostty.url = "github:ghostty-org/ghostty";
nvf.url = "github:notashelf/nvf"; rust-overlay.url = "github:oxalica/rust-overlay";
aagl = {
url = "github:ezKEa/aagl-gtk-on-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
}; };
outputs = inputs @ { outputs = inputs @ {
@@ -22,17 +26,30 @@
darwin, darwin,
home-manager, home-manager,
ghostty, ghostty,
nvf, rust-overlay,
aagl,
... ...
}: let }: let
userName = "wyatt"; userName = "wyatt";
userEmail = "wyatt@wyattjmiller.com"; userEmail = "wyatt@wyattjmiller.com";
extraSpecialArgs = { extraSpecialArgs = {
inherit userName userEmail ghostty nvf; 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";
@@ -42,6 +59,7 @@
role = "devel"; role = "devel";
}; };
modules = [ modules = [
myOverlays
./modules/common ./modules/common
./modules/machine/sephiroth ./modules/machine/sephiroth
@@ -50,6 +68,7 @@
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;
} }
]; ];
@@ -59,11 +78,12 @@
nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem { nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
specialArgs = { specialArgs = {
inherit userName userEmail; inherit userName userEmail ghostty aagl;
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
@@ -73,6 +93,7 @@
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
]; ];
@@ -89,6 +110,7 @@
role = "server"; role = "server";
}; };
modules = [ modules = [
myOverlays
./modules/common ./modules/common
./modules/machine/valefor ./modules/machine/valefor
@@ -97,6 +119,7 @@
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
]; ];
@@ -113,6 +136,7 @@
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
@@ -125,6 +149,7 @@
# 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,6 +1,7 @@
{...}: { { pkgs, ...}: {
programs.atuin = { programs.atuin = {
enable = true; enable = true;
enableFishIntegration = true; enableFishIntegration = true;
package = pkgs.atuinLatest;
}; };
} }

View File

@@ -4,7 +4,6 @@
userName, userName,
userEmail, userEmail,
ghostty, ghostty,
nvf,
... ...
}: let }: let
# Have a file sturcture that holds all the configuration files that can't be configured by Nix # Have a file sturcture that holds all the configuration files that can't be configured by Nix
@@ -14,7 +13,7 @@
}; };
in { in {
# Import sub modules # Import sub modules
imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty nvf;}) [ imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty;}) [
./atuin.nix ./atuin.nix
./shell.nix ./shell.nix
./packages ./packages
@@ -28,6 +27,7 @@ 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

@@ -15,7 +15,7 @@
extraConfig = { extraConfig = {
init.defaultBranch = "master"; init.defaultBranch = "master";
push.autoSetupRemote = true; push.autoSetupRemote = true;
pull.merge = true; pull.rebase = false;
merge.tool = "nvimdiff"; merge.tool = "nvimdiff";
mergetool.keepBackup = false; mergetool.keepBackup = false;
}; };

View File

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

View File

@@ -1,22 +1,14 @@
{ nvf, ...}: { {dirs, ...}: {
imports = [ programs.neovim = {
nvf.homeManagerModules.default enable = true;
]; defaultEditor = true;
vimAlias = true;
};
programs.nvf.enable = true; xdg.configFile = {
nvim = {
### --- OLD NEOVIM CONFIG BASED ON LUA CONFIG --- onChange = "nvim --headless -c 'if exists(\":LuaCacheClear\") | :LuaCacheClear' +quitall";
# source = dirs.defaults + /nvim;
# programs.neovim = { };
# enable = true; };
# defaultEditor = true;
# vimAlias = true;
# };
#
# xdg.configFile = {
# nvim = {
# onChange = "nvim --headless -c 'if exists(\":LuaCacheClear\") | :LuaCacheClear' +quitall";
# source = dirs.defaults + /nvim;
# };
# };
} }

View File

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

View File

@@ -1,4 +1,4 @@
{pkgs, ...}: { {pkgs, lib, ...}: {
programs.fish = { programs.fish = {
enable = true; enable = true;
# initExtra = '' # initExtra = ''
@@ -43,7 +43,25 @@
"Can I get a waffle? Can I please get a waffle?" \ "Can I get a waffle? Can I please get a waffle?" \
"I'm lesbian. I thought you were American." \ "I'm lesbian. I thought you were American." \
"You gotta give 'em that 'hawk tuah' and spit on that thang!" \ "You gotta give 'em that 'hawk tuah' and spit on that thang!" \
"We don't do that here..." "We don't do that here..." \
"What are those?! They are my crocs..." \
"It's an avocado... Thanks!" \
"I am once again asking for your financial support" \
"Is that a weed?" \
"No, this is Patrick!" \
"Come ride, heroes, ride" \
"Away with the tide" \
"Concede your mind unto the fiend" \
"Darkness come, rend the shield of light" \
"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" \
"Snap click clank whirr whizz wham boom!" \
"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")]
@@ -52,6 +70,27 @@
''; '';
onEvent = "fish_greeting"; onEvent = "fish_greeting";
}; };
} // lib.optionalAttrs pkgs.stdenv.isLinux {
block = {
body = ''
systemd-inhibit --what=sleep --who="$USER" --why="manual invocation" --mode=block sleep infinity &
set -g INHIBIT_PID $last_pid
echo "Sleep inhibited. 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
echo "No active sleep inhibitor found."
end
'';
};
}; };
}; };

View File

@@ -147,20 +147,5 @@ in {
programs.waybar = { programs.waybar = {
enable = pkgs.stdenv.isLinux; enable = pkgs.stdenv.isLinux;
systemd.enable = true; systemd.enable = true;
package = pkgs.waybar.overrideAttrs (old: {
version = "0.11.0";
src = pkgs.fetchFromGitHub {
owner = "Alexays";
repo = "Waybar";
rev = "d56dd6ee7fdf8c5ba4e90790af62b7f7829d3a47";
sha256 = "sha256-3lc0voMU5RS+mEtxKuRayq/uJO09X7byq6Rm5NZohq8=";
fetchSubmodules = true;
};
buildInputs = old.buildInputs ++ [ pkgs.fftw pkgs.libcava ];
# mesonFlags = (old.mesonFlags or []) ++ [ "-Dcava=disabled" ];
});
}; };
} }

19
modules/apps/appimage.nix Normal file
View File

@@ -0,0 +1,19 @@
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.appimage;
in {
options.appimage = {
enable = mkEnableOption "AppImage support";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
appimageupdate
appimage-run
];
};
}

View File

@@ -1,11 +1,14 @@
{ {
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";
@@ -108,6 +111,16 @@ 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";
}; };
aagl = {
anime-game-launcher = {
enable = lib.mkEnableOption "AAGL (legacy)";
};
honkers-railway-launcher = {
enable = lib.mkEnableOption "Honkai: Star Rail launcher";
};
};
}; };
config = { config = {
@@ -139,6 +152,14 @@ in {
]; ];
}; };
programs.anime-game-launcher = lib.mkIf cfg.aagl.anime-game-launcher.enable {
enable = true;
};
programs.honkers-railway-launcher = lib.mkIf cfg.aagl.honkers-railway-launcher.enable {
enable = true;
};
environment.systemPackages = environment.systemPackages =
(lib.optionals cfg.lutris.enable ( (lib.optionals cfg.lutris.enable (
[cfg.lutris.package] ++ [cfg.lutris.package] ++
@@ -155,5 +176,13 @@ in {
)) ++ )) ++
(lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++ (lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++
(lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher]); (lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher]);
nix.settings = (lib.mkIf
(cfg.aagl.anime-game-launcher.enable || cfg.aagl.honkers-railway-laucher.enable)
{
substituters = [ "https://ezkea.cachix.org" ];
trusted-public-keys = [ "ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" ];
}
);
}; };
} }

View File

@@ -8,6 +8,9 @@
# 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,12 +1,9 @@
{ { ... }: {
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,20 +1,23 @@
{ lib, pkgs, ... }: { { 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
nix-ld
]) ++
lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
# nothing here, yet ;)
]);
# Common environment variables that every system will use
environment.variables.EDITOR = "nvim"; environment.variables.EDITOR = "nvim";
} }

View File

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

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

@@ -1,8 +1,8 @@
{ {
config,
lib, lib,
pkgs, pkgs,
userName, userName,
aagl,
... ...
}: let }: let
flatpakPackages = [ flatpakPackages = [
@@ -18,14 +18,16 @@
in { in {
imports = [ imports = [
(import ../../apps/flatpak.nix { (import ../../apps/flatpak.nix {
inherit lib pkgs flatpakPackages; inherit lib pkgs flatpakPackages userName aagl;
}) })
../../apps/gaming.nix ../../apps/gaming.nix
../../apps/appimage.nix
../../graphics ../../graphics
../../pwrMgmt ../../pwrMgmt
../../networking/core.nix ../../networking/core.nix
../../sound/pipewire.nix ../../sound/pipewire.nix
../../sound/shairport.nix ../../sound/shairport.nix
../../sound/focusrite.nix
../../virtualization/podman.nix ../../virtualization/podman.nix
../../virtualization/hardware.nix ../../virtualization/hardware.nix
]; ];
@@ -34,9 +36,13 @@ in {
nix.settings.experimental-features = ["nix-command" "flakes"]; nix.settings.experimental-features = ["nix-command" "flakes"];
# Custom kernel/boot stuff # Custom kernel/boot stuff
boot.kernelPackages = pkgs.linuxPackages_latest; boot = {
boot.loader.systemd-boot.enable = true; kernelPackages = pkgs.linuxPackages_latest;
boot.loader.efi.canTouchEfiVariables = true; loader = {
systemd-boot.enable = true;
efi.canTouchEfiVariables = true;
};
};
# Enable Bluetooth if present # Enable Bluetooth if present
hardware.bluetooth.enable = true; hardware.bluetooth.enable = true;
@@ -63,21 +69,6 @@ in {
wl-clip-persist wl-clip-persist
]; ];
# Enable OpenSSH
services.openssh.enable = true;
# Enable keyring
services.gnome.gnome-keyring.enable = true;
# Enable GnuPG
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# Enable SUID wrappers (some programs need them)
programs.mtr.enable = true;
# Enable Polkit # Enable Polkit
security.polkit.enable = true; security.polkit.enable = true;
@@ -117,6 +108,7 @@ in {
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)
@@ -145,14 +137,39 @@ in {
networkManager.enable = true; networkManager.enable = true;
}; };
# Enable dconf programs = {
programs.dconf.enable = true; # Enable GnuPG
gnupg.agent = {
enable = true;
enableSSHSupport = true;
};
# Enable SUID wrappers (some programs need them)
mtr.enable = true;
# Enable dconf
dconf.enable = true;
};
# Add username to groups "wheel" and "video" - more may be added here later # Add username to groups "wheel" and "video" - more may be added here later
users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"]; users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"];
# Flatpak packages (see ../../apps/flatpak.nix) services = {
services.flatpak.packages = flatpakPackages; # Enable OpenSSH
openssh.enable = true;
# Enable keyring
gnome.gnome-keyring.enable = true;
# Flatpak packages (see ../../apps/flatpak.nix)
flatpak.packages = flatpakPackages;
};
# Focusrite Scarlett audio interface support (see ../../sound/focusrite.nix)
sound.hardware.focusrite.enable = true;
# AppImage support
appimage.enable = true;
# XDG stuff # XDG stuff
xdg = { xdg = {
@@ -160,12 +177,12 @@ in {
enable = true; enable = true;
config = { config = {
sway = { sway = {
default = [ "wlr" "gtk" ]; default = ["wlr" "gtk"];
"org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
}; };
common = { common = {
default = [ "gtk" ]; default = ["gtk"];
"org.freedesktop.impl.portal.Secret" = [ "gnome-keyring" ]; "org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
}; };
}; };
extraPortals = with pkgs; [ extraPortals = with pkgs; [

View File

@@ -12,24 +12,24 @@
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "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-label/COMPUTER"; device = "/dev/disk/by-uuid/f8f39aae-61d2-437d-a8e1-01066bbb3c5c";
fsType = "xfs"; fsType = "xfs";
}; };
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-label/BOOT"; device = "/dev/disk/by-uuid/B72F-087F";
fsType = "vfat"; fsType = "vfat";
options = ["fmask=0022" "dmask=0022"]; options = ["fmask=0022" "dmask=0022"];
}; };
swapDevices = [ swapDevices = [
{device = "/dev/disk/by-label/SWAP";} {device = "/dev/disk/by-uuid/6d6bcc02-20a9-4ae8-9c1e-5124fb2b2634";}
]; ];
# 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.sudo = { security.sudoers = {
needsPassword = mkOption { needsPassword = mkOption {
type = types.bool; type = types.bool;
default = true; default = true;

View File

@@ -0,0 +1,33 @@
# Must be paired with the pipewire Nix module, this does nothing but install packages
{
config,
lib,
pkgs,
...
}:
with lib; let
cfg = config.sound.hardware.focusrite;
in {
options.sound.hardware.focusrite = {
enable = mkEnableOption "Focusrite audio interface support";
guiSupport = mkOption {
type = types.bool;
default = false;
description = "Enable GUI support for Focusrite Scarlett audio interface (installs alsa-scarlett-gui)";
};
};
config = mkIf cfg.enable (mkMerge [
{
environment.systemPackages = with pkgs;
[
scarlett2
alsa-scarlett-gui
]
++ (
if cfg.guiSupport
then [pkgs.alsa-scarlett-gui]
else []
);
}
]);
}

View File

@@ -1,7 +1,16 @@
{pkgs, ...}: { { lib, pkgs, userName, ...}: {
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 pw"; # arguments = "-v -o pa";
};
systemd.services.shairport-sync = {
serviceConfig = {
User = lib.mkForce "${userName}";
};
environment = {
XDG_RUNTIME_DIR = "/run/user/1000";
};
}; };
} }