Compare commits

..

2 Commits
main ... main

Author SHA1 Message Date
81e521ee5c makin piss 2025-08-16 18:53:00 -04:00
Blaine
b6737fcb9a replaced instances of javi with blaine 2025-08-16 13:52:16 -04:00
23 changed files with 132 additions and 1313 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 MiB

532
flake.lock generated
View File

@ -1,38 +1,5 @@
{ {
"nodes": { "nodes": {
"aquamarine": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1755946532,
"narHash": "sha256-POePremlUY5GyA1zfbtic6XLxDaQcqHN6l+bIxdT5gc=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "81584dae2df6ac79f6b6dae0ecb7705e95129ada",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"base16": { "base16": {
"inputs": { "inputs": {
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
@ -148,38 +115,6 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_3": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"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-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@ -243,24 +178,6 @@
"type": "github" "type": "github"
} }
}, },
"flake-utils": {
"inputs": {
"systems": "systems_3"
},
"locked": {
"lastModified": 1705309234,
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"fromYaml": { "fromYaml": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -279,8 +196,8 @@
}, },
"git-hooks": { "git-hooks": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_2",
"gitignore": "gitignore_2", "gitignore": "gitignore",
"nixpkgs": [ "nixpkgs": [
"neovim-nightly-overlay", "neovim-nightly-overlay",
"nixpkgs" "nixpkgs"
@ -301,28 +218,6 @@
} }
}, },
"gitignore": { "gitignore": {
"inputs": {
"nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_2": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
"neovim-nightly-overlay", "neovim-nightly-overlay",
@ -403,218 +298,9 @@
"type": "github" "type": "github"
} }
}, },
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753964049,
"narHash": "sha256-lIqabfBY7z/OANxHoPeIrDJrFyYy9jAM4GQLzZ2feCM=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "44e91d467bdad8dcf8bbd2ac7cf49972540980a5",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprgraphics": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1755678602,
"narHash": "sha256-uEC5O/NIUNs1zmc1aH1+G3GRACbODjk2iS0ET5hXtuk=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "157cc52065a104fc3b8fa542ae648b992421d1c7",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprgraphics",
"type": "github"
}
},
"hyprland": {
"inputs": {
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
"hyprgraphics": "hyprgraphics",
"hyprland-protocols": "hyprland-protocols",
"hyprland-qtutils": "hyprland-qtutils",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1756656879,
"narHash": "sha256-QCNUXw1J0BaykSKSb9jp5h1v4YVBLVcekhrxnivlgY4=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "5bb8adbc3228901d199e8d22d6f712bd1d7d4e15",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1749046714,
"narHash": "sha256-kymV5FMnddYGI+UjwIw8ceDjdeg7ToDVjbHCvUlhn14=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "613878cb6f459c5e323aaafe1e6f388ac8a36330",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprland-qt-support": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprland-qtutils",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"hyprland-qtutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-qtutils",
"systems"
]
},
"locked": {
"lastModified": 1749154592,
"narHash": "sha256-DO7z5CeT/ddSGDEnK9mAXm1qlGL47L3VAHLlLXoCjhE=",
"owner": "hyprwm",
"repo": "hyprland-qt-support",
"rev": "4c8053c3c888138a30c3a6c45c2e45f5484f2074",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-qt-support",
"type": "github"
}
},
"hyprland-qtutils": {
"inputs": {
"hyprland-qt-support": "hyprland-qt-support",
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-qtutils",
"hyprlang",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753819801,
"narHash": "sha256-tHe6XeNeVeKapkNM3tcjW4RuD+tB2iwwoogWJOtsqTI=",
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"rev": "b308a818b9dcaa7ab8ccab891c1b84ebde2152bc",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-qtutils",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1753622892,
"narHash": "sha256-0K+A+gmOI8IklSg5It1nyRNv0kCNL51duwnhUO/B8JA=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "23f0debd2003f17bd65f851cd3f930cff8a8c809",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprshell": { "hyprshell": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_2" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1754802608, "lastModified": 1754802608,
@ -630,56 +316,6 @@
"url": "https://gitgud.foo/thegrind/hypr-shell.git" "url": "https://gitgud.foo/thegrind/hypr-shell.git"
} }
}, },
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1756117388,
"narHash": "sha256-oRDel6pNl/T2tI+nc/USU9ZP9w08dxtl7hiZxa0C/Wc=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "b2ae3204845f5f2f79b4703b441252d8ad2ecfd0",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1755184602,
"narHash": "sha256-RCBQN8xuADB0LEgaKbfRqwm6CdyopE1xIEhNc67FAbw=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "b3b0f1f40ae09d4447c20608e5a4faf8bf3c492d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"my-assets": { "my-assets": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -694,12 +330,12 @@
}, },
"neovim-nightly-overlay": { "neovim-nightly-overlay": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"git-hooks": "git-hooks", "git-hooks": "git-hooks",
"hercules-ci-effects": "hercules-ci-effects", "hercules-ci-effects": "hercules-ci-effects",
"neovim-src": "neovim-src", "neovim-src": "neovim-src",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_2",
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
@ -733,22 +369,6 @@
} }
}, },
"nixpkgs": { "nixpkgs": {
"locked": {
"lastModified": 1756266583,
"narHash": "sha256-cr748nSmpfvnhqSXPiCfUPxRz2FJnvf/RjJGvFfaCsM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "8a6d5427d99ec71c64f0b93d45778c889005d9c2",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1754725699, "lastModified": 1754725699,
"narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=", "narHash": "sha256-iAcj9T/Y+3DBy2J0N+yF9XQQQ8IEb5swLFzs23CdP88=",
@ -764,7 +384,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1754800730, "lastModified": 1754800730,
"narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=", "narHash": "sha256-HfVZCXic9XLBgybP0318ym3cDnGwBs/+H5MgxFVYF4I=",
@ -780,7 +400,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1754498491, "lastModified": 1754498491,
"narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=", "narHash": "sha256-erbiH2agUTD0Z30xcVSFcDHzkRvkRXOQ3lb887bcVrs=",
@ -796,22 +416,6 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": {
"locked": {
"lastModified": 1708161998,
"narHash": "sha256-6KnemmUorCvlcAvGziFosAVkrlWZGIc6UNT9GUYr0jQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "84d981bae8b5e783b3b548de505b22880559515f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-23.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": [ "flake-parts": [
@ -837,39 +441,14 @@
"type": "github" "type": "github"
} }
}, },
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1755960406,
"narHash": "sha256-RF7j6C1TmSTK9tYWO6CdEMtg6XZaUKcvZwOCD2SICZs=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "e891a93b193fcaf2fc8012d890dc7f0befe86ec2",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"hyprland": "hyprland",
"hyprshell": "hyprshell", "hyprshell": "hyprshell",
"my-assets": "my-assets", "my-assets": "my-assets",
"neovim-nightly-overlay": "neovim-nightly-overlay", "neovim-nightly-overlay": "neovim-nightly-overlay",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_3",
"stylix": "stylix", "stylix": "stylix"
"zig": "zig"
} }
}, },
"stylix": { "stylix": {
@ -885,7 +464,7 @@
"nixpkgs" "nixpkgs"
], ],
"nur": "nur", "nur": "nur",
"systems": "systems_2", "systems": "systems",
"tinted-foot": "tinted-foot", "tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
@ -907,36 +486,6 @@
} }
}, },
"systems": { "systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"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"
}
},
"systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -1052,67 +601,6 @@
"repo": "treefmt-nix", "repo": "treefmt-nix",
"type": "github" "type": "github"
} }
},
"xdph": {
"inputs": {
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1755354946,
"narHash": "sha256-zdov5f/GcoLQc9qYIS1dUTqtJMeDqmBmo59PAxze6e4=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "a10726d6a8d0ef1a0c645378f983b6278c42eaa0",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
},
"zig": {
"inputs": {
"flake-compat": "flake-compat_4",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs_5"
},
"locked": {
"lastModified": 1755864794,
"narHash": "sha256-hgnov6RLA+DD4Uocs/vCbiH3/3sKvqiJOKHpdhGyVAI=",
"owner": "mitchellh",
"repo": "zig-overlay",
"rev": "5cd601f8760d2383210b7b8c8a45fc79388f3ddf",
"type": "github"
},
"original": {
"owner": "mitchellh",
"repo": "zig-overlay",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@ -7,17 +7,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
hyprshell.url = "git+https://gitgud.foo/thegrind/hypr-shell.git"; hyprshell.url = "git+https://gitgud.foo/thegrind/hypr-shell.git";
hyprland.url = "github:hyprwm/Hyprland";
# hyprland-plugins = {
# url = "github:hyprwm/hyprland-plugins";
# inputs.hyprland.follows = "hyprland";
# };
stylix = { stylix = {
url = "github:danth/stylix"; url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay";
zig.url = "github:mitchellh/zig-overlay";
my-assets = { my-assets = {
url = "path:./assets"; url = "path:./assets";
@ -30,7 +24,6 @@
self, self,
nixpkgs, nixpkgs,
my-assets, my-assets,
zig,
... ...
}@inputs: }@inputs:
let let
@ -39,7 +32,6 @@
# Common overlays for all hosts # Common overlays for all hosts
overlays = [ overlays = [
inputs.neovim-nightly-overlay.overlays.default inputs.neovim-nightly-overlay.overlays.default
inputs.zig.overlays.default
]; ];
# Helper function to create a host configuration # Helper function to create a host configuration
@ -76,7 +68,7 @@
{ {
nixosConfigurations = { nixosConfigurations = {
desktop = mkHost "desktop" [ desktop = mkHost "desktop" [
./modules/system/nvidia.nix #./modules/system/nvidia.nix
./modules/system/nfs.nix ./modules/system/nfs.nix
./modules/system/display-manager/sddm.nix ./modules/system/display-manager/sddm.nix
./modules/system/gaming.nix ./modules/system/gaming.nix

View File

@ -99,6 +99,7 @@
brave brave
git git
openssh openssh
firefox
xdg-user-dirs-gtk # This helps with Nautilus integration xdg-user-dirs-gtk # This helps with Nautilus integration
cachix cachix
]; ];
@ -109,9 +110,9 @@
}; };
}; };
users.users.javi = { users.users.blaine = {
isNormalUser = true; isNormalUser = true;
description = "javi"; description = "blaine";
shell = pkgs.zsh; shell = pkgs.zsh;
useDefaultShell = true; useDefaultShell = true;
extraGroups = [ extraGroups = [
@ -124,7 +125,7 @@
stateVersion = "25.05"; # Did you read the comment? stateVersion = "25.05"; # Did you read the comment?
activationScripts.avatar = '' activationScripts.avatar = ''
mkdir -p /var/lib/AccountsService/icons mkdir -p /var/lib/AccountsService/icons
ln -sf /etc/avatars/javi.png /var/lib/AccountsService/icons/javi ln -sf /etc/avatars/javi.png /var/lib/AccountsService/icons/blaine
''; '';
}; };
@ -142,6 +143,7 @@
programs = { programs = {
hyprland.enable = true; hyprland.enable = true;
ssh = { ssh = {
startAgent = true; startAgent = true;
extraConfig = " extraConfig = "
@ -167,21 +169,19 @@
# Theme # Theme
stylix = { stylix = {
enable = true; enable = true;
base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-hard.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark.yaml";
# image = "/home/javi/Documents/wallpapers/Fantasy-Mountain.png"; # image = "/home/blaine/Documents/wallpapers/Fantasy-Mountain.png";
polarity = "dark"; polarity = "dark";
}; };
# Enable home manager # Enable home manager
home-manager = { home-manager = {
useGlobalPkgs = true;
extraSpecialArgs = { extraSpecialArgs = {
inherit inputs; inherit inputs;
zigpkg = pkgs.zigpkgs.master;
assets = assets; assets = assets;
}; };
users = { users = {
"javi" = { "blaine" = {
imports = [ imports = [
../modules/home/home.nix ../modules/home/home.nix
]; ];

View File

@ -9,7 +9,7 @@
{ {
imports = [ imports = [
../common-config.nix ../common-config.nix
../../modules/system/nix-valet.nix # ../../modules/system/nix-valet.nix
../../modules/system/device-management/logitech.nix ../../modules/system/device-management/logitech.nix
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
@ -21,16 +21,15 @@
]; ];
}; };
fileSystems."/home/javi/working-files" = { fileSystems."/mnt/working-files" = {
device = "/dev/disk/by-uuid/BE8EBBDA8EBB8A03"; device = "/dev/disk/by-uuid/BE8EBBDA8EBB8A03";
fsType = "ntfs"; fsType = "ntfs";
options = [ options = [
"uid=1000" # your user ID (check with `id -u`) "uid=1000" # your user ID (check with `id -u`)
"gid=100" # your primary group ID (check with `id -g`) "gid=100" # your primary group ID (check with `id -g`)
"dmask=022" # dir permissions "dmask=022" # dir permissions
"fmask=022" # file permissions "fmask=133" # file permissions
"nofail" "nofail"
"exec"
# make Nautilus show it with a friendly name/icon # make Nautilus show it with a friendly name/icon
"x-gvfs-show" "x-gvfs-show"
@ -41,7 +40,6 @@
environment = { environment = {
systemPackages = with pkgs; [ systemPackages = with pkgs; [
pkgs.ntfs3g pkgs.ntfs3g
zigpkgs.master
]; ];
}; };
} }

View File

@ -1,71 +1,40 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }:
config,
lib,
pkgs,
modulesPath,
...
}:
{ {
imports = [ imports =
(modulesPath + "/installer/scan/not-detected.nix") [ (modulesPath + "/installer/scan/not-detected.nix")
]; ];
boot.initrd.availableKernelModules = [ boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
"nvme"
"xhci_pci"
"ahci"
"usb_storage"
"usbhid"
"sd_mod"
];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" =
device = "/dev/disk/by-uuid/8f492948-4572-44d4-9da9-9394894320f4"; { device = "/dev/disk/by-uuid/bba79e96-6fd2-4124-b3cd-157c299eb999";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = { fileSystems."/boot" =
device = "/dev/disk/by-uuid/EAA9-478C"; { device = "/dev/disk/by-uuid/95EC-A63C";
fsType = "vfat"; fsType = "vfat";
options = [ options = [ "fmask=0077" "dmask=0077" ];
"fmask=0077" };
"dmask=0077"
swapDevices =
[ { device = "/dev/disk/by-uuid/b13461ea-9ff4-4843-b39b-d9d0759fff1e"; }
]; ];
};
fileSystems."/home" = {
device = "/dev/disk/by-uuid/6646d409-6417-4410-b3a0-fe6bafb2b9f3";
fsType = "ext4";
};
fileSystems."/tmp" = {
device = "/dev/disk/by-uuid/9fe1009a-f604-40ff-a13d-e78d9041397f";
fsType = "ext4";
};
fileSystems."/var/log" = {
device = "/dev/disk/by-uuid/9d39eb6d-09ab-4d66-8864-c19f9d59f620";
fsType = "ext4";
};
swapDevices = [
{ device = "/dev/disk/by-uuid/6fa52bf4-b1d9-468f-bc3a-f0c740e80c86"; }
];
# 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
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp7s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp6s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View File

@ -6,7 +6,7 @@
}: }:
let let
kittyConfig = '' kittyConfig = ''
font_size 16.0 font_size 11
background_opacity 0.7 background_opacity 0.7
background_blur 1 background_blur 1

View File

@ -60,10 +60,6 @@
# Golang # Golang
gr = "go run ."; gr = "go run .";
gmt = "go mod tidy"; gmt = "go mod tidy";
# Zig
zb = "zig build";
zbr = "zig build run";
}; };
# Additional bash configuration # Additional bash configuration

View File

@ -1,427 +0,0 @@
{
config,
pkgs,
lib,
inputs,
zigpkg,
...
}:
{
programs.vscode = {
enable = true;
package = pkgs.vscode; # or pkgs.vscodium for the open-source version
# Extensions
extensions =
with pkgs.vscode-extensions;
[
# Misc
vscodevim.vim
eamodio.gitlens
christian-kohler.path-intellisense
catppuccin.catppuccin-vsc-icons
foxundermoon.shell-format
gruntfuggly.todo-tree
jdinhlife.gruvbox
redhat.ansible
redhat.vscode-yaml
shd101wyy.markdown-preview-enhanced
ms-vsliveshare.vsliveshare
pkief.material-icon-theme
tamasfe.even-better-toml
# PHP
bmewburn.vscode-intelephense-client
# Html/Front End Support
bradlc.vscode-tailwindcss
formulahendry.auto-close-tag
formulahendry.auto-rename-tag
svelte.svelte-vscode
vue.volar
# Go
golang.go
mikestead.dotenv
# Python
ms-python.debugpy
ms-python.python
ms-python.vscode-pylance
# Zig
# ziglang.vscode-zig
# C++
ms-vscode.cpptools
ms-vscode.cmake-tools
# delgan.qml-format
# Nix
mkhl.direnv
jnoortheen.nix-ide
# adpyke.vscode-sql-formatter
# adrianwilczynski.alpine-js-intellisense
# anthropic.claude-code
# cierra.livewire-vscode
# neilbrayfield.php-docblocker
# zignd.html-css-class-completion
]
++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
# Extensions not in nixpkgs
{
name = "base16-tinted-themes";
publisher = "TintedTheming";
version = "0.27.0";
sha256 = "7wLBwfaXEoumAfp9kK5Mv1VaGffuGdoYMGZ+ZjN9G8Q=";
}
{
name = "vscode-laravel";
publisher = "laravel";
version = "1.0.14";
sha256 = "DEHr8kAGm6ShdQCThh7MUhv24Ghwg10mGDhZgUIojrY=";
}
{
name = "phpstorm-snippets";
publisher = "phiter";
version = "1.1.2";
sha256 = "EHEzM4YKYR+2r6RVun8tSjGYDsbriBPATNwxczEuqjQ=";
}
{
name = "laravel-blade";
publisher = "onecentlin";
version = "1.37.0";
sha256 = "q5CTRj746404yM9mhOWYAGTzt/8CJ7Fx4QUQSJ+LdLs=";
}
{
name = "vscode-antlers";
publisher = "stillat-llc";
version = "2.6.22";
sha256 = "3JtT5AxtbxciivfG6JaUYNPL74+8ydhDeB7SCE/92ko=";
}
# Qt Extension Pack
{
name = "qt-qml";
publisher = "TheQtCompany";
version = "1.7.0";
sha256 = "QjfvZIcE4LcJU93YiYN/zykEluHtR7zVOwYiPL0k+cQ=";
}
{
name = "qt-ui";
publisher = "TheQtCompany";
version = "1.7.0";
sha256 = "XDOIyCZIUYPGfcszZMUkR9MHH+zrXZgympKNhcQwITY=";
}
{
name = "qt-core";
publisher = "TheQtCompany";
version = "1.7.0";
sha256 = "2413vMpvxSYBKpaD14sMgI92W8NtCYa/sJ7PZO62WfY=";
}
];
# User settings
userSettings = {
# Disable the fucking copilot chat
"github.copilot.chat.showChatPanel" = false;
"github.copilot.enable" = false;
"window.titleBarStyle" = "custom";
"window.customTitleBarVisibility" = "auto";
"workbench.colorTheme" = lib.mkForce "Stylix";
"git.autofetch" = true;
"editor.fontSize" = lib.mkForce 18;
"editor.snippetSuggestions" = "top";
"editor.formatOnPaste" = true;
"editor.formatOnSave" = true;
"qt-qml.qmlls.useQmlImportPathEnvVar" = true;
"[qml]" = {
"editor.defaultFormatter" = "Delgan.qml-format";
"editor.formatOnSave" = true;
};
"[yaml]" = {
"editor.formatOnSave" = false;
};
"[astro]" = {
"editor.formatOnSave" = false;
};
"[dockerfile]" = {
"editor.formatOnSave" = false;
"editor.formatOnPaste" = false;
"editor.formatOnType" = false;
"editor.defaultFormatter" = "ms-azuretools.vscode-containers";
};
"tailwindCSS.includeLanguages" = {
"templ" = "html";
};
"emmet.triggerExpansionOnTab" = true;
"editor.autoIndent" = "full";
"files.eol" = "\n";
"emmet.excludeLanguages" = [ ];
"emmet.includeLanguages" = {
"blade" = "html";
"templ" = "html";
"markdown" = "html";
};
"explorer.openEditors.visible" = 0;
"editor.tabCompletion" = "on";
"workbench.editor.highlightModifiedTabs" = true;
"git.enableSmartCommit" = true;
"extensions.ignoreRecommendations" = true;
"blade.format.enable" = true;
"editor.autoClosingBrackets" = "always";
"material-icon-theme.folders.theme" = "specific";
"security.workspace.trust.untrustedFiles" = "open";
"editor.unusualLineTerminators" = "auto";
"files.associations" = { };
"intelephense.environment.phpVersion" = "8.1.0";
"git.useEditorAsCommitInput" = false;
"editor.inlineSuggest.enabled" = true;
"[xml]" = {
"editor.defaultFormatter" = "redhat.vscode-xml";
};
"terminal.integrated.fontSize" = lib.mkForce 18;
"explorer.confirmDragAndDrop" = false;
"editor.unicodeHighlight.nonBasicASCII" = false;
"markdown-preview-enhanced.previewTheme" = "github-dark.css";
"window.commandCenter" = false;
"workbench.editor.editorActionsLocation" = "hidden";
"workbench.layoutControl.enabled" = false;
"editor.minimap.enabled" = false;
"workbench.activityBar.location" = "hidden";
"editor.fontFamily" = lib.mkForce "'Fira Code Retina'";
"editor.fontLigatures" = true;
"keyboard.dispatch" = "keyCode";
"workbench.iconTheme" = "catppuccin-frappe";
"search.useIgnoreFiles" = false;
"search.exclude" = {
# Hide everything in /vendor; except the "laravel" and "livewire" folder.
"**/vendor/{[^l];?[^ai]}*" = true;
# Hide everything in /public; except "index.php"
"**/public/{[^i];?[^n]}*" = true;
"**/node_modules" = true;
"**/dist" = true;
"**/_ide_helper.php" = true;
"**/composer.lock" = true;
"**/package-lock.json" = true;
"storage" = true;
".phpunit.result.cache" = true;
};
"scm.diffDecorations" = "none";
"editor.hover.enabled" = false;
"editor.matchBrackets" = "never";
"workbench.tips.enabled" = false;
"editor.colorDecorators" = false;
"git.decorations.enabled" = false;
"workbench.startupEditor" = "none";
"editor.lightbulb.enabled" = "off";
"editor.selectionHighlight" = false;
"editor.overviewRulerBorder" = false;
"editor.renderLineHighlight" = "none";
"editor.occurrencesHighlight" = "off";
"problems.decorations.enabled" = false;
"editor.renderControlCharacters" = false;
"editor.hideCursorInOverviewRuler" = true;
"editor.gotoLocation.multipleReferences" = "goto";
"editor.gotoLocation.multipleDefinitions" = "goto";
"editor.gotoLocation.multipleDeclarations" = "goto";
"workbench.editor.enablePreviewFromQuickOpen" = false;
"editor.gotoLocation.multipleImplementations" = "goto";
"editor.gotoLocation.multipleTypeDefinitions" = "goto";
"editor.cursorSurroundingLines" = 200;
"workbench.editor.pinnedTabsOnSeparateRow" = true;
"C_Cpp.default.compileCommands" = "\${workspaceFolder}/build/compile_commands.json";
"C_Cpp.default.configurationProvider" = "ms-vscode.cmake-tools";
"antlersLanguageServer.languageVersion" = "runtime";
"[antlers]" = {
"editor.defaultFormatter" = "html";
};
"window.menuBarVisibility" = "compact";
"vim.leader" = "<space>";
"vim.normalModeKeyBindings" = [
{
"before" = [
"g"
"r"
];
"commands" = [ "editor.action.goToReferences" ];
}
{
"before" = [
"g"
"v"
];
"commands" = [ "editor.action.revealDefinitionAside" ];
}
{
"before" = [
"<leader>"
"o"
];
"commands" = [ "workbench.action.quickOpen" ];
}
{
"before" = [
"<leader>"
"p"
];
"commands" = [ "workbench.action.showCommands" ];
}
{
"before" = [
"<leader>"
"i"
];
"commands" = [ "workbench.action.quickOpenPreviousRecentlyUsedEditorInGroup" ];
}
];
"vim.insertModeKeyBindings" = [
{
"before" = [
"j"
"j"
];
"after" = [ "<Esc>" ];
}
];
"vim.visualModeKeyBindings" = [
{
"before" = [ "<Enter>" ];
"after" = [ "<Esc>" ];
}
];
"workbench.editor.showTabs" = "none";
"ansible.lightspeed.enabled" = false;
"ansible.lightspeed.suggestions.enabled" = false;
"[sql]" = {
"editor.formatOnSave" = false;
};
"svelte.enable-ts-plugin" = true;
"workbench.sideBar.location" = "right";
"workbench.panel.defaultLocation" = "right";
"zig.zls.enabled" = "on";
"zig.path" = "${zigpkg}/bin/zig";
"zig.zls.path" = "${pkgs.zls}/bin/zls";
"zig.zls.zigLibPath" = "${zigpkg}/lib";
"zig.zls.completionLabelDetails" = false;
"zig.zls.enableArgumentPlaceholders" = false;
"zig.zls.inlayHintsShowParameterName" = false;
"zig.zls.inlayHintsShowVariableTypeHints" = false;
};
# Keybindings
keybindings = [
{
"key" = "ctrl+k";
"command" = "git.commitAll";
"when" = "!inDebugMode && !terminalFocus";
}
{
"key" = "ctrl+shift+k";
"command" = "git.pushTo";
"when" = "!inDebugMode && !terminalFocus";
}
{
"key" = "ctrl+shift+n";
"command" = "workbench.action.quickOpen";
}
{
"key" = "shift+escape";
"command" = "workbench.action.terminal.toggleTerminal";
}
{
"key" = "ctrl+shift+`";
"command" = "workbench.action.closeAllEditors";
}
{
"key" = "ctrl+shift+1";
"command" = "workbench.files.action.collapseExplorerFolders";
}
{
"key" = "ctrl+shift+e";
"command" = "workbench.view.explorer";
}
{
"key" = "ctrl+shift+e";
"command" = "workbench.action.toggleSidebarVisibility";
"when" = "!editorFocus";
}
{
"key" = "ctrl+1";
"command" = "workbench.action.toggleSidebarVisibility";
}
{
"key" = "ctrl+a";
"command" = "explorer.newFile";
"when" = "explorerViewletVisible && filesExplorerFocus && !inputFocus";
}
{
"key" = "ctrl+shift+a";
"command" = "explorer.newFolder";
"when" = "explorerViewletVisible && filesExplorerFocus && !inputFocus";
}
{
"key" = "ctrl+d";
"command" = "deleteFile";
"when" = "explorerViewletVisible && filesExplorerFocus && !inputFocus";
}
{
"key" = "ctrl+\\";
"command" = "workbench.action.splitEditorRight";
"when" = "editorFocus";
}
{
"key" = "ctrl+h";
"command" = "workbench.action.navigateLeft";
"when" = "editorFocus";
}
{
"key" = "ctrl+l";
"command" = "workbench.action.navigateRight";
"when" = "editorFocus";
}
{
"key" = "ctrl+*";
"command" = "workbench.action.increaseViewSize";
"when" = "editorFocus";
}
{
"key" = "ctrl+/";
"command" = "workbench.action.decreaseViewSize";
"when" = "editorFocus";
}
{
"key" = "ctrl+shift+w";
"command" = "workbench.action.joinAllGroups";
"when" = "editorFocus";
}
{
"key" = "ctrl+shift+alt+p";
"command" = "editor.emmet.action.wrapWithAbbreviation";
"when" = "editorTextFocus";
}
{
"key" = "ctrl+shift+alt+i";
"command" = "editor.emmet.action.balanceIn";
"when" = "editorTextFocus";
}
{
"key" = "ctrl+shift+alt+o";
"command" = "editor.emmet.action.balanceOut";
"when" = "editorTextFocus";
}
{
"key" = "alt+n";
"command" = "workbench.action.quickOpenSelectNext";
"when" = "inQuickOpen";
}
{
"key" = "alt+p";
"command" = "workbench.action.quickOpenSelectPrevious";
"when" = "inQuickOpen";
}
{
"key" = "alt+0";
"command" = "workbench.action.closeQuickOpen";
"when" = "inQuickOpen";
}
{
"key" = "ctrl+shift+\\";
"command" = "workbench.action.toggleAuxiliaryBar";
}
];
};
}

View File

@ -14,7 +14,6 @@
./common/starship.nix ./common/starship.nix
./common/yazi.nix ./common/yazi.nix
./common/fzf.nix ./common/fzf.nix
./common/vscode.nix
./hyprland ./hyprland
]; ];
@ -27,17 +26,14 @@
# package = pkgs.papirus-icon-theme; # package = pkgs.papirus-icon-theme;
# }; # };
# }; # };
home = { home = {
username = "javi"; username = "blaine";
homeDirectory = "/home/javi"; homeDirectory = "/home/blaine";
stateVersion = "25.05"; # Home manager version. Do not update carelessly stateVersion = "25.05"; # Home manager version. Do not update carelessly
packages = with pkgs; [ packages = with pkgs; [
# Basics # Basics
quickshell quickshell
zoom-us
obsidian
kdePackages.kdenlive
ffmpeg
# Terminal tools # Terminal tools
ripgrep ripgrep
@ -53,7 +49,6 @@
claude-code claude-code
xsel xsel
nss.tools nss.tools
ansible
# System tools # System tools
btop btop
@ -69,7 +64,6 @@
go go
nodejs_22 nodejs_22
bun bun
zls # Zig language server
]; ];
sessionVariables = { sessionVariables = {
@ -83,7 +77,6 @@
XDG_CONFIG_HOME = "${config.home.homeDirectory}/.config"; XDG_CONFIG_HOME = "${config.home.homeDirectory}/.config";
XDG_DATA_HOME = "${config.home.homeDirectory}/.local/share"; XDG_DATA_HOME = "${config.home.homeDirectory}/.local/share";
XDG_STATE_HOME = "${config.home.homeDirectory}/.local/state"; XDG_STATE_HOME = "${config.home.homeDirectory}/.local/state";
QT_QPA_PLATFORM = "wayland";
}; };
}; };
@ -92,11 +85,6 @@
btop = { btop = {
enable = true; enable = true;
}; };
direnv = {
enable = true;
enableZshIntegration = true;
};
}; };
stylix = { stylix = {

View File

@ -23,7 +23,6 @@
]; ];
bind = [ bind = [
# "$mod, a, hyprexpo:expo, toggle"
# Start programs # Start programs
"$mod, q, exec, $terminal" "$mod, q, exec, $terminal"
"$mod SHIFT, o, exec, $browser" "$mod SHIFT, o, exec, $browser"
@ -53,19 +52,17 @@
"$mod, f, fullscreen, 0" "$mod, f, fullscreen, 0"
"$mod, v, togglefloating, active" "$mod, v, togglefloating, active"
# "$mod, SPACE, exec, wofi --show drun" "$mod, SPACE, exec, wofi --show drun"
"$mod, SPACE, exec, waycast"
"$mod, d, exec, ${pkgs.wofi-emoji}/bin/wofi-emoji" "$mod, d, exec, ${pkgs.wofi-emoji}/bin/wofi-emoji"
"$mod SHIFT, s, exec, flameshot gui" "$mod SHIFT, s, exec, hyprshot --mode region"
", PRINT, exec, hyprshot --mode output" ", PRINT, exec, hyprshot --mode output"
"$mod SHIFT, c, togglespecialworkspace, comms" "$mod SHIFT, c, togglespecialworkspace, comms"
"$mod SHIFT, a, togglespecialworkspace, research" "$mod SHIFT, a, togglespecialworkspace, research"
"$mod SHIFT ALT, x, exec, hyprctl dispatch exit" "$mod SHIFT ALT, x, exec, hyprctl dispatch exit"
"$mod SHIFT ALT, l, exec, hyprlock" "SHIFT, Print, exec, grimblast copy area"
# "SHIFT, Print, exec, grimblast copy area" "CTRL, Print, exec, grimblast copy active"
# "CTRL, Print, exec, grimblast copy active"
] ]
++ ( ++ (
# workspaces # workspaces
@ -84,4 +81,9 @@
) )
); );
}; };
wayland.windowManager.hyprland.plugins = [
# inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars
];
} }

View File

@ -10,30 +10,28 @@
./binds.nix ./binds.nix
./hyprpaper.nix ./hyprpaper.nix
./hyprpanel.nix ./hyprpanel.nix
./hyprlock.nix
./wofi.nix ./wofi.nix
./desktop-env.nix ./desktop-env.nix
./screenshots.nix
]; ];
home = { home = {
sessionVariables = { sessionVariables = {
NIXOS_OZON_WL = "1"; NIXOS_OZON_WL = "1";
HYPR_PLUGIN_DIR = pkgs.symlinkJoin {
name = "hyprland-plugins";
paths = with pkgs.hyprlandPlugins; [
hyprexpo
];
};
}; };
packages = with pkgs; [ packages = with pkgs; [
# Notifications # Notifications
libnotify libnotify
# Screenshots
grim
slurp
wl-clipboard
hyprshot
# Desktop env # Desktop env
hyprpanel hyprpanel
hyprpolkitagent
# Utility # Utility
wl-clipboard wl-clipboard
]; ];
@ -61,10 +59,6 @@
enable = true; enable = true;
plugins = with pkgs.hyprlandPlugins; [
hyprexpo
];
settings = { settings = {
input = { input = {
@ -72,8 +66,10 @@
repeat_rate = 20; repeat_rate = 20;
}; };
monitor = [ monitor = [
"DP-5, 3440x1440@179.99, 0x0, 1" "DP-1, 2560x1600@59.97200, 0x0, 1"
"DP-2, 1920x1080@60.00000, 2560x-375, 1, transform, 1"
]; ];
general = { general = {
@ -110,9 +106,11 @@
exec-once = [ exec-once = [
# "quickshell -c hyprshell" # "quickshell -c hyprshell"
"hyprpanel" "hyprpanel"
"hypridle"
"systemctl --user start hyprpolkitagent"
]; ];
}; };
plugins = [
# inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprbars
];
}; };
} }

View File

@ -1,87 +0,0 @@
{
inputs,
assets,
lib,
...
}:
{
programs.hyprlock = {
enable = true;
settings = {
# Variables
"$font" = "Monospace";
general = {
hide_cursor = false;
};
animations = {
enabled = true;
bezier = "linear, 1, 1, 0, 0";
animation = [
"fadeIn, 1, 5, linear"
"fadeOut, 1, 5, linear"
"inputFieldDots, 1, 2, linear"
];
};
background = lib.mkForce [
{
monitor = "";
path = "/etc/lockscreen.png";
blur_passes = 1;
}
];
# input-field = [
# {
# monitor = "";
# size = "20%, 5%";
# fade_on_empty = false;
# rounding = 15;
# font_family = "$font";
# placeholder_text = "Input password...";
# fail_text = "$PAMFAIL";
# # Uncomment to use a letter instead of a dot to indicate the typed password
# # dots_text_format = "*";
# # dots_size = 0.4;
# dots_spacing = 0.3;
# # Uncomment to use an input indicator that does not show the password length
# # hide_input = true;
# position = "0, -20";
# halign = "center";
# valign = "center";
# }
# ];
# Labels are defined as a list since there are multiple
label = [
# TIME
{
monitor = "";
text = "$TIME"; # ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#variable-substitution
font_size = 90;
font_family = "$font";
position = "-30, 0";
halign = "right";
valign = "top";
}
# DATE
{
monitor = "";
text = ''cmd[update:60000] date +"%A, %d %B %Y"''; # update every 60 seconds
font_size = 25;
font_family = "$font";
position = "-30, -150";
halign = "right";
valign = "top";
}
];
};
};
stylix.targets.hyprlock = {
useWallpaper = true;
};
}

View File

@ -1,42 +1,5 @@
{ { inputs, pkgs, ... }:
inputs,
pkgs,
config,
lib,
...
}:
let
themeDirectory = "${config.programs.hyprpanel.package}/share/themes";
currentTheme = "gruvbox_vivid";
raw = lib.importJSON "${themeDirectory}/${currentTheme}.json";
selectedTheme = if raw ? theme then raw.theme else raw;
# We need to turn the theme json into a nested attribute set. Otherwise we
# end up with an incorrect configuration that looks like:
# theme: {theme.bar.transparent: "value", theme.foo.bar: "another value"}
# when what we really want is: theme: {bar: ..., buttons: ...}
# ----
# turn "foo.bar.baz" and value into { foo = { bar = { baz = value; }; }; }
nestAttr = path: value: lib.attrsets.setAttrByPath (lib.splitString "." path) value;
# merge a flat attrset into nested
unflatten =
flat:
lib.foldlAttrs (
acc: k: v:
lib.recursiveUpdate acc (nestAttr k v)
) { } flat;
themeAttrs = unflatten selectedTheme;
base = themeAttrs.theme;
themeOverrides = {
font.size = "14px";
bar.background = "#000000";
};
finalTheme = lib.recursiveUpdate base themeOverrides;
in
{ {
programs.hyprpanel = { programs.hyprpanel = {
enable = true; enable = true;
@ -78,8 +41,17 @@ in
menus.dashboard.directories.enabled = false; menus.dashboard.directories.enabled = false;
menus.dashboard.stats.enable_gpu = true; menus.dashboard.stats.enable_gpu = true;
# theme = builtins.fromJSON (builtins.readFile "${themeDirectory}/${currentTheme}.json"); theme = import ./hyprpanel/theme-gruvbox.nix;
theme = finalTheme;
# theme.bar.transparent = {
# transparent = false;
# buttons.style = "wave";
# };
# theme.font = {
# name = "CaskaydiaCove NF";
# size = "14px";
# };
}; };
}; };
} }

View File

@ -11,18 +11,18 @@
pkgs.hyprpaper pkgs.hyprpaper
]; ];
# Home Manager # Home Manager
xdg.configFile."wallpaper.png".source = "${assets}/slums.png"; xdg.configFile."wallpaper.png".source = "${assets}/wallpaper.png";
services.hyprpaper = { services.hyprpaper = {
enable = true; enable = true;
settings = { settings = {
ipc = "on"; ipc = "on";
splash = false; splash = false;
preload = [ preload = [
"/home/javi/.config/wallpaper.png" "/home/blaine/.config/wallpaper.png"
]; ];
wallpaper = [ wallpaper = [
", /home/javi/.config/wallpaper.png" ", /home/blaine/.config/wallpaper.png"
]; ];
}; };
}; };

View File

@ -1,20 +0,0 @@
{
config,
pkgs,
inputs,
...
}:
{
nixpkgs.config.packageOverrides = pkgs: {
flameshot = pkgs.flameshot.override {
enableWlrSupport = true;
};
};
home.packages = with pkgs; [
flameshot
grim
slurp
];
}

View File

@ -23,7 +23,7 @@
}; };
}; };
users.users.javi.extraGroups = [ users.users.blaine.extraGroups = [
"input" "input"
"plugdev" "plugdev"
]; ];

View File

@ -6,14 +6,13 @@
... ...
}: }:
let let
basePath = "/home/javi/Documents/wallpapers"; basePath = "/home/blaine/Documents/wallpapers";
wallpaper = "Fantasy-Mountain.png"; wallpaper = "Fantasy-Mountain.png";
in in
{ {
environment = { environment = {
etc = { etc = {
"sddm-wallpaper.png".source = "${assets}/sddm-background.png"; "sddm-wallpaper.png".source = "${assets}/sddm-background.png";
"lockscreen.png".source = "${assets}/lockscreen.png";
"gtk-3.0/settings.ini".text = '' "gtk-3.0/settings.ini".text = ''
[Settings] [Settings]
gtk-icon-theme-name=Papirus gtk-icon-theme-name=Papirus

View File

@ -1,4 +1,4 @@
{ pkgs, ... }: { ... }:
{ {
# Install Steam # Install Steam
@ -8,15 +8,4 @@
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
}; };
environment.systemPackages = with pkgs; [
gamemode
];
# In your configuration.nix
hardware.opengl = {
enable = true;
};
services.xserver.videoDrivers = [ "nvidia" ];
} }

View File

@ -6,12 +6,11 @@ let
shares = [ shares = [
"backups" "backups"
"container-data" "container-data"
"javi" "blaine"
"xrandr"
]; ];
configureShare = share: { configureShare = share: {
name = "/home/javi/network-shares/${share}"; name = "/mnt/${share}";
value = { value = {
device = "${nasIp}:${baseMnt}/${share}"; device = "${nasIp}:${baseMnt}/${share}";
fsType = "nfs"; fsType = "nfs";
@ -20,6 +19,11 @@ let
"noauto" "noauto"
"rw" "rw"
"vers=4" "vers=4"
# make Nautilus/Dolphin/Any File Manager show it with a friendly name/icon
"x-gvfs-show"
"x-gvfs-name=NAS ${share}"
"x-gvfs-icon=network-server"
]; ];
}; };
}; };

View File

@ -11,7 +11,18 @@
lib, lib,
... ...
}: }:
let
customCaddy = pkgs.xcaddy {
pname = "caddy-frankenphp";
version = "2.7.6";
subPackages = [ "cmd/caddy" ];
plugins = [
"github.com/dunglas/frankenphp/caddy"
];
};
in
{ {
services = { services = {
# Enable dnsmasq # Enable dnsmasq
@ -36,92 +47,44 @@
}; };
# Enable PHP-FPM # Enable PHP-FPM
# phpfpm = { phpfpm = {
# pools.www = { pools.www = {
# user = "javi"; user = "blaine";
# group = "users"; group = "users";
# settings = { settings = {
# "listen.owner" = "javi"; "listen.owner" = "blaine";
# "listen.group" = "users"; "listen.group" = "users";
# "listen.mode" = "0660"; "listen.mode" = "0660";
# "pm" = "dynamic"; "pm" = "dynamic";
# "pm.max_children" = 32; "pm.max_children" = 32;
# "pm.start_servers" = 2; "pm.start_servers" = 2;
# "pm.min_spare_servers" = 2; "pm.min_spare_servers" = 2;
# "pm.max_spare_servers" = 4; "pm.max_spare_servers" = 4;
# "pm.max_requests" = 500; "pm.max_requests" = 500;
# }; };
# phpEnv."PATH" = lib.makeBinPath [ pkgs.php ]; phpEnv."PATH" = lib.makeBinPath [ pkgs.php ];
# }; };
# }; };
# Enable Caddy # Enable Caddy
caddy = { caddy = {
enable = true; enable = true;
package = pkgs.frankenphp; package = customCaddy;
globalConfig = '' globalConfig = ''
auto_https off auto_https off
frankenphp frankenphp
debug
order php_server before file_server order php_server before file_server
''; '';
/*
WORKING CONFIG
map {host} {pname} {
~^(.+)\.test$ $1
default "unknown"
}
root * /home/javi/projects/{pname}/public
# Add file server directive with browse enabled for debugging
file_server browse
# Or for PHP apps, add try_files
try_files {path} {path}/ /index.php?{query}
php_server
*/
extraConfig = '' extraConfig = ''
# Specific subdomain first (more specific routes come first) # Specific subdomain first (more specific routes come first)
http://caddytest.test { http://caddytest.test {
respond "fuck" respond "We in caddyland"
} }
http://*.test, http://*.*.test { # Wildcard for other .test domains
map {host} {project_dir} { http://*.test {
~^(.+)\.test$ $1 root * /home/blaine/projects/{labels.1}/public
default "unknown"
}
vars base_path "/home/javi/projects/{project_dir}"
@laravel file {
root {vars.base_path}/public
try_files index.php
}
@jigsaw file {
root {vars.base_path}/build_local
try_files index.html
}
handle @laravel {
root * {vars.base_path}/public
php_server php_server
file_server
try_files {path} {path}/ /index.php?{query}
}
handle @jigsaw {
root * {vars.base_path}/build_local
try_files {path} {path}/ /index.html
file_server
}
handle {
respond "Unknown project type"
}
} }
''; '';
}; };
@ -162,18 +125,13 @@
# Create a dedicated caddy config directory # Create a dedicated caddy config directory
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d /var/lib/caddy 0755 javi users -" "d /var/lib/caddy 0755 blaine users -"
]; ];
systemd.services.caddy = { systemd.services.caddy = {
serviceConfig = { serviceConfig = {
User = lib.mkForce "javi"; User = lib.mkForce "blaine";
Group = lib.mkForce "users"; Group = lib.mkForce "users";
ProtectHome = lib.mkForce false; # This is key!
ProtectSystem = lib.mkForce false;
PrivateTmp = lib.mkForce false;
# More comprehensive capabilities # More comprehensive capabilities
AmbientCapabilities = [ AmbientCapabilities = [
"CAP_NET_BIND_SERVICE" "CAP_NET_BIND_SERVICE"
@ -193,7 +151,7 @@
}; };
# And make sure your user is in the caddy group # And make sure your user is in the caddy group
users.users.javi = { users.users.blaine = {
extraGroups = [ extraGroups = [
"users" "users"
]; ];