Compare commits
56 commits
Author | SHA1 | Date | |
---|---|---|---|
Mars | 3ff659d3d3 | ||
Mars | adfa70e186 | ||
Mars | bba149b83d | ||
Mars | 5e44ad7ffd | ||
Mars | 781c570a55 | ||
Mars | 091d7180a5 | ||
Mars | 76c1d36e5f | ||
Mars | b32af9ddda | ||
Mars | c9621b6788 | ||
Mars | 15dd66b9da | ||
Mars | 7ee8de53a1 | ||
Mars | 0753f6a4fc | ||
Mars | d2ab8f38e3 | ||
Mars | 47b0b54cb3 | ||
Mars | cbfbd740fb | ||
Mars | 332a517bf8 | ||
Mars | 4cb75e5f9c | ||
Mars | 9323a7d87a | ||
Mars | 017cad38b0 | ||
Mars | a1115d88b4 | ||
Mars | ee5244c63f | ||
Mars | 275aa03108 | ||
Mars | ce86ca48aa | ||
Mars | b783094f4f | ||
Mars | 36cb2963d8 | ||
Mars | 882286bb39 | ||
Mars | 00a54cc852 | ||
Mars | 0e52acf1a3 | ||
Mars | 3cfef43aca | ||
Mars | 0b96cec4cb | ||
Mars | 47f44bb546 | ||
Mars | 479e93469e | ||
Mars | 0e54d36faf | ||
Mars | fefde6933f | ||
Mars | f103ffdc46 | ||
Mars | 59987ac080 | ||
Mars | e55f9661a3 | ||
Mars | 09232be6a3 | ||
Mars | 468bac3270 | ||
Mars | dbbb08523b | ||
Mars | e7e32dfa48 | ||
Mars | 769bc078ef | ||
Mars | e556fec612 | ||
Mars | d41e0276b3 | ||
Mars | 3b1d76f533 | ||
Mars | 0ac8781c63 | ||
Mars | ad4158596a | ||
Mars | 5b0a9850bc | ||
Mars | e0e24a42ad | ||
Mars | e4c20f0163 | ||
Mars | eb2692dff9 | ||
Mars | 6794105303 | ||
Mars | 34ab1b9119 | ||
Mars | e1177bee61 | ||
Mars | 7cf1ac0c36 | ||
Mars | 624c5100fd |
21
.envrc
21
.envrc
|
@ -1,3 +1,22 @@
|
||||||
watch_file flake.in.nix
|
watch_file flake.in.nix
|
||||||
cp $(nix eval --raw .#nextFlake) flake.nix
|
|
||||||
|
# Calculate the hash of flake.in.nix
|
||||||
|
current_hash=$(md5sum flake.in.nix | cut -d ' ' -f 1)
|
||||||
|
stored_hash_file=".flake_in_nix_hash"
|
||||||
|
|
||||||
|
# Read the stored hash if it exists
|
||||||
|
if [ -f "$stored_hash_file" ]; then
|
||||||
|
stored_hash=$(cat "$stored_hash_file")
|
||||||
|
else
|
||||||
|
stored_hash=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Compare the hashes and copy if they are different
|
||||||
|
if [ "$current_hash" != "$stored_hash" ]; then
|
||||||
|
cp $(nix eval --raw .#nextFlake) flake.nix
|
||||||
|
# Store the new hash
|
||||||
|
echo "$current_hash" > "$stored_hash_file"
|
||||||
|
fi
|
||||||
|
|
||||||
use_flake
|
use_flake
|
||||||
|
|
||||||
|
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,3 +1,5 @@
|
||||||
.direnv/
|
.direnv/
|
||||||
home.nix
|
.DS_Store/
|
||||||
|
.flake_in_nix_hash
|
||||||
|
.luarc.json
|
||||||
sys.nix
|
sys.nix
|
||||||
|
|
|
@ -1,22 +1,182 @@
|
||||||
{
|
{
|
||||||
"linux-wallpaperengine-latest": {
|
"bang-bang": {
|
||||||
"cargoLocks": null,
|
"cargoLocks": null,
|
||||||
"date": "2024-05-11",
|
"date": "2023-07-23",
|
||||||
"extract": null,
|
"extract": null,
|
||||||
"name": "linux-wallpaperengine-latest",
|
"name": "bang-bang",
|
||||||
"passthru": null,
|
"passthru": null,
|
||||||
"pinned": false,
|
"pinned": false,
|
||||||
"src": {
|
"src": {
|
||||||
"deepClone": false,
|
"deepClone": false,
|
||||||
"fetchSubmodules": false,
|
"fetchSubmodules": false,
|
||||||
"leaveDotGit": false,
|
"leaveDotGit": false,
|
||||||
"name": null,
|
"name": null,
|
||||||
"owner": "Almamu",
|
"owner": "oh-my-fish",
|
||||||
"repo": "linux-wallpaperengine",
|
"repo": "plugin-bang-bang",
|
||||||
"rev": "13cc080410444ea72cceebdd5ea0ae7c23dd2270",
|
"rev": "ec991b80ba7d4dda7a962167b036efc5c2d79419",
|
||||||
"sha256": "sha256-XdFU5BKZPyGpV0PYmmM12efMFimt3eJAsG+dzyycIzo=",
|
"sha256": "sha256-oPPCtFN2DPuM//c48SXb4TrFRjJtccg0YPXcAo0Lxq0=",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"version": "13cc080410444ea72cceebdd5ea0ae7c23dd2270"
|
"version": "ec991b80ba7d4dda7a962167b036efc5c2d79419"
|
||||||
}
|
},
|
||||||
}
|
"fix-window-role": {
|
||||||
|
"cargoLocks": null,
|
||||||
|
"date": null,
|
||||||
|
"extract": null,
|
||||||
|
"name": "fix-window-role",
|
||||||
|
"passthru": null,
|
||||||
|
"pinned": false,
|
||||||
|
"src": {
|
||||||
|
"name": null,
|
||||||
|
"sha256": "sha256-H4Qj6n5uZsmsbdjjexGZctqhJk3gAXKiSnmnEO/LgTA=",
|
||||||
|
"type": "url",
|
||||||
|
"url": "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-28/fix-window-role.patch"
|
||||||
|
},
|
||||||
|
"version": "latest"
|
||||||
|
},
|
||||||
|
"git-abbr": {
|
||||||
|
"cargoLocks": null,
|
||||||
|
"date": "2023-06-19",
|
||||||
|
"extract": null,
|
||||||
|
"name": "git-abbr",
|
||||||
|
"passthru": null,
|
||||||
|
"pinned": false,
|
||||||
|
"src": {
|
||||||
|
"deepClone": false,
|
||||||
|
"fetchSubmodules": false,
|
||||||
|
"leaveDotGit": false,
|
||||||
|
"name": null,
|
||||||
|
"owner": "pupbrained",
|
||||||
|
"repo": "fish-git-abbr",
|
||||||
|
"rev": "dc590a5b9d9d2095f95f7d90608b48e55bea0b0e",
|
||||||
|
"sha256": "sha256-6z3Wr2t8CP85xVEp6UCYaM2KC9PX4MDyx19f/wjHkb0=",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"version": "dc590a5b9d9d2095f95f7d90608b48e55bea0b0e"
|
||||||
|
},
|
||||||
|
"gityaw": {
|
||||||
|
"cargoLocks": null,
|
||||||
|
"date": "2019-01-07",
|
||||||
|
"extract": null,
|
||||||
|
"name": "gityaw",
|
||||||
|
"passthru": null,
|
||||||
|
"pinned": false,
|
||||||
|
"src": {
|
||||||
|
"deepClone": false,
|
||||||
|
"fetchSubmodules": false,
|
||||||
|
"leaveDotGit": false,
|
||||||
|
"name": null,
|
||||||
|
"owner": "oh-my-fish",
|
||||||
|
"repo": "plugin-gityaw",
|
||||||
|
"rev": "59196560e0f4520db63fb8cab645510377bb8b13",
|
||||||
|
"sha256": "sha256-STXNxSsjSopB+lbB4hEYdhJifRfsImRwbZ1SxwEhkuM=",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"version": "59196560e0f4520db63fb8cab645510377bb8b13"
|
||||||
|
},
|
||||||
|
"license": {
|
||||||
|
"cargoLocks": null,
|
||||||
|
"date": "2018-10-22",
|
||||||
|
"extract": null,
|
||||||
|
"name": "license",
|
||||||
|
"passthru": null,
|
||||||
|
"pinned": false,
|
||||||
|
"src": {
|
||||||
|
"deepClone": false,
|
||||||
|
"fetchSubmodules": false,
|
||||||
|
"leaveDotGit": false,
|
||||||
|
"name": null,
|
||||||
|
"owner": "oh-my-fish",
|
||||||
|
"repo": "plugin-license",
|
||||||
|
"rev": "0155b16f102957ec0c734a90979245dc1073f979",
|
||||||
|
"sha256": "sha256-Bi9Q5rekZoyXYbRV+U4SmwCdqCl0pFupzm5si7SxFns=",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"version": "0155b16f102957ec0c734a90979245dc1073f979"
|
||||||
|
},
|
||||||
|
"poll": {
|
||||||
|
"cargoLocks": null,
|
||||||
|
"date": null,
|
||||||
|
"extract": null,
|
||||||
|
"name": "poll",
|
||||||
|
"passthru": null,
|
||||||
|
"pinned": false,
|
||||||
|
"src": {
|
||||||
|
"name": null,
|
||||||
|
"sha256": "sha256-Weh2+C5v2ORYO8JFYzntpPmJyGseFqArByZwLpX2CCU=",
|
||||||
|
"type": "url",
|
||||||
|
"url": "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/poll.patch"
|
||||||
|
},
|
||||||
|
"version": "latest"
|
||||||
|
},
|
||||||
|
"replay-fish": {
|
||||||
|
"cargoLocks": null,
|
||||||
|
"date": "2024-07-01",
|
||||||
|
"extract": null,
|
||||||
|
"name": "replay-fish",
|
||||||
|
"passthru": null,
|
||||||
|
"pinned": false,
|
||||||
|
"src": {
|
||||||
|
"deepClone": false,
|
||||||
|
"fetchSubmodules": false,
|
||||||
|
"leaveDotGit": false,
|
||||||
|
"name": null,
|
||||||
|
"owner": "jorgebucaran",
|
||||||
|
"repo": "replay.fish",
|
||||||
|
"rev": "d2ecacd3fe7126e822ce8918389f3ad93b14c86c",
|
||||||
|
"sha256": "sha256-TzQ97h9tBRUg+A7DSKeTBWLQuThicbu19DHMwkmUXdg=",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"version": "d2ecacd3fe7126e822ce8918389f3ad93b14c86c"
|
||||||
|
},
|
||||||
|
"round-undecorated-frame": {
|
||||||
|
"cargoLocks": null,
|
||||||
|
"date": null,
|
||||||
|
"extract": null,
|
||||||
|
"name": "round-undecorated-frame",
|
||||||
|
"passthru": null,
|
||||||
|
"pinned": false,
|
||||||
|
"src": {
|
||||||
|
"name": null,
|
||||||
|
"sha256": "sha256-dFH4D1WYQOVOagUuVdEQB3irxV+Y8dDAOKJOJXc/KHQ=",
|
||||||
|
"type": "url",
|
||||||
|
"url": "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/round-undecorated-frame.patch"
|
||||||
|
},
|
||||||
|
"version": "latest"
|
||||||
|
},
|
||||||
|
"system-appearance": {
|
||||||
|
"cargoLocks": null,
|
||||||
|
"date": null,
|
||||||
|
"extract": null,
|
||||||
|
"name": "system-appearance",
|
||||||
|
"passthru": null,
|
||||||
|
"pinned": false,
|
||||||
|
"src": {
|
||||||
|
"name": null,
|
||||||
|
"sha256": "sha256-nrPOgGQAJb/5brrrWJNDARY2jWNJ9OsMtO+LPVhHfbY=",
|
||||||
|
"type": "url",
|
||||||
|
"url": "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/system-appearance.patch"
|
||||||
|
},
|
||||||
|
"version": "latest"
|
||||||
|
},
|
||||||
|
"wttr": {
|
||||||
|
"cargoLocks": null,
|
||||||
|
"date": "2016-05-23",
|
||||||
|
"extract": null,
|
||||||
|
"name": "wttr",
|
||||||
|
"passthru": null,
|
||||||
|
"pinned": false,
|
||||||
|
"src": {
|
||||||
|
"deepClone": false,
|
||||||
|
"fetchSubmodules": false,
|
||||||
|
"leaveDotGit": false,
|
||||||
|
"name": null,
|
||||||
|
"owner": "oh-my-fish",
|
||||||
|
"repo": "plugin-wttr",
|
||||||
|
"rev": "7500e382e6b29a463edc57598217ce0cfaf8c90c",
|
||||||
|
"sha256": "sha256-k3FrRPxKCiObO6HgtDx8ORbcLmfSYQsQeq5SAoNfZbE=",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"version": "7500e382e6b29a463edc57598217ce0cfaf8c90c"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,15 +1,110 @@
|
||||||
# This file was generated by nvfetcher, please do not modify it manually.
|
# This file was generated by nvfetcher, please do not modify it manually.
|
||||||
{fetchFromGitHub}: {
|
{
|
||||||
linux-wallpaperengine-latest = {
|
fetchurl,
|
||||||
pname = "linux-wallpaperengine-latest";
|
fetchFromGitHub,
|
||||||
version = "13cc080410444ea72cceebdd5ea0ae7c23dd2270";
|
}: {
|
||||||
|
bang-bang = {
|
||||||
|
pname = "bang-bang";
|
||||||
|
version = "ec991b80ba7d4dda7a962167b036efc5c2d79419";
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Almamu";
|
owner = "oh-my-fish";
|
||||||
repo = "linux-wallpaperengine";
|
repo = "plugin-bang-bang";
|
||||||
rev = "13cc080410444ea72cceebdd5ea0ae7c23dd2270";
|
rev = "ec991b80ba7d4dda7a962167b036efc5c2d79419";
|
||||||
fetchSubmodules = false;
|
fetchSubmodules = false;
|
||||||
sha256 = "sha256-XdFU5BKZPyGpV0PYmmM12efMFimt3eJAsG+dzyycIzo=";
|
sha256 = "sha256-oPPCtFN2DPuM//c48SXb4TrFRjJtccg0YPXcAo0Lxq0=";
|
||||||
};
|
};
|
||||||
date = "2024-05-11";
|
date = "2023-07-23";
|
||||||
|
};
|
||||||
|
fix-window-role = {
|
||||||
|
pname = "fix-window-role";
|
||||||
|
version = "latest";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-28/fix-window-role.patch";
|
||||||
|
sha256 = "sha256-H4Qj6n5uZsmsbdjjexGZctqhJk3gAXKiSnmnEO/LgTA=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
git-abbr = {
|
||||||
|
pname = "git-abbr";
|
||||||
|
version = "dc590a5b9d9d2095f95f7d90608b48e55bea0b0e";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "pupbrained";
|
||||||
|
repo = "fish-git-abbr";
|
||||||
|
rev = "dc590a5b9d9d2095f95f7d90608b48e55bea0b0e";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
sha256 = "sha256-6z3Wr2t8CP85xVEp6UCYaM2KC9PX4MDyx19f/wjHkb0=";
|
||||||
|
};
|
||||||
|
date = "2023-06-19";
|
||||||
|
};
|
||||||
|
gityaw = {
|
||||||
|
pname = "gityaw";
|
||||||
|
version = "59196560e0f4520db63fb8cab645510377bb8b13";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "oh-my-fish";
|
||||||
|
repo = "plugin-gityaw";
|
||||||
|
rev = "59196560e0f4520db63fb8cab645510377bb8b13";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
sha256 = "sha256-STXNxSsjSopB+lbB4hEYdhJifRfsImRwbZ1SxwEhkuM=";
|
||||||
|
};
|
||||||
|
date = "2019-01-07";
|
||||||
|
};
|
||||||
|
license = {
|
||||||
|
pname = "license";
|
||||||
|
version = "0155b16f102957ec0c734a90979245dc1073f979";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "oh-my-fish";
|
||||||
|
repo = "plugin-license";
|
||||||
|
rev = "0155b16f102957ec0c734a90979245dc1073f979";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
sha256 = "sha256-Bi9Q5rekZoyXYbRV+U4SmwCdqCl0pFupzm5si7SxFns=";
|
||||||
|
};
|
||||||
|
date = "2018-10-22";
|
||||||
|
};
|
||||||
|
poll = {
|
||||||
|
pname = "poll";
|
||||||
|
version = "latest";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/poll.patch";
|
||||||
|
sha256 = "sha256-Weh2+C5v2ORYO8JFYzntpPmJyGseFqArByZwLpX2CCU=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
replay-fish = {
|
||||||
|
pname = "replay-fish";
|
||||||
|
version = "d2ecacd3fe7126e822ce8918389f3ad93b14c86c";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "jorgebucaran";
|
||||||
|
repo = "replay.fish";
|
||||||
|
rev = "d2ecacd3fe7126e822ce8918389f3ad93b14c86c";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
sha256 = "sha256-TzQ97h9tBRUg+A7DSKeTBWLQuThicbu19DHMwkmUXdg=";
|
||||||
|
};
|
||||||
|
date = "2024-07-01";
|
||||||
|
};
|
||||||
|
round-undecorated-frame = {
|
||||||
|
pname = "round-undecorated-frame";
|
||||||
|
version = "latest";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/round-undecorated-frame.patch";
|
||||||
|
sha256 = "sha256-dFH4D1WYQOVOagUuVdEQB3irxV+Y8dDAOKJOJXc/KHQ=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
system-appearance = {
|
||||||
|
pname = "system-appearance";
|
||||||
|
version = "latest";
|
||||||
|
src = fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/system-appearance.patch";
|
||||||
|
sha256 = "sha256-nrPOgGQAJb/5brrrWJNDARY2jWNJ9OsMtO+LPVhHfbY=";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
wttr = {
|
||||||
|
pname = "wttr";
|
||||||
|
version = "7500e382e6b29a463edc57598217ce0cfaf8c90c";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "oh-my-fish";
|
||||||
|
repo = "plugin-wttr";
|
||||||
|
rev = "7500e382e6b29a463edc57598217ce0cfaf8c90c";
|
||||||
|
fetchSubmodules = false;
|
||||||
|
sha256 = "sha256-k3FrRPxKCiObO6HgtDx8ORbcLmfSYQsQeq5SAoNfZbE=";
|
||||||
|
};
|
||||||
|
date = "2016-05-23";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
137
flake.in.nix
137
flake.in.nix
|
@ -20,20 +20,24 @@
|
||||||
type = "git";
|
type = "git";
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
determinate = mkInput "DeterminateSystems/determinate";
|
||||||
agenix = mkInput "ryantm/agenix";
|
agenix = mkInput "ryantm/agenix";
|
||||||
catppuccin = mkInput "catppuccin/nix";
|
catppuccin = mkInput "catppuccin/nix";
|
||||||
chaotic = mkInput "chaotic-cx/nyx/nyxpkgs-unstable";
|
chaotic = mkInput "chaotic-cx/nyx/nyxpkgs-unstable";
|
||||||
|
emacs = mkCustomUrl "git+https://git.pupbrained.xyz/pupbrained/nixmacs.git";
|
||||||
hyprland = mkWithSubmodules "https://github.com/hyprwm/Hyprland";
|
hyprland = mkWithSubmodules "https://github.com/hyprwm/Hyprland";
|
||||||
hyprland-plugins = mkFollowing "hyprwm/hyprland-plugins" "hyprland";
|
hyprland-plugins = mkFollowing "hyprwm/hyprland-plugins" "hyprland";
|
||||||
impermanence = mkInput "nix-community/impermanence";
|
impermanence = mkInput "nix-community/impermanence";
|
||||||
nix-colors = mkInput "Misterio77/nix-colors";
|
nix-colors = mkInput "Misterio77/nix-colors";
|
||||||
|
nixos-facter-modules = mkInput "numtide/nixos-facter-modules";
|
||||||
nixpkgs = mkInput "NixOS/nixpkgs/nixos-unstable";
|
nixpkgs = mkInput "NixOS/nixpkgs/nixos-unstable";
|
||||||
nix-super = mkCustomUrl "git+https://git.privatevoid.net/max/nix-super.git";
|
nixvim = mkInput "pupbrained/nvim-config";
|
||||||
nixvim = mkInput "pupbrained/nixvim";
|
|
||||||
schizofox = mkInput "schizofox/schizofox";
|
|
||||||
sops-nix = mkInput "Mic92/sops-nix";
|
|
||||||
treefmt-nix = mkInput "numtide/treefmt-nix";
|
treefmt-nix = mkInput "numtide/treefmt-nix";
|
||||||
|
xmonad-contrib = mkInput "xmonad/xmonad-contrib";
|
||||||
|
zen-browser = mkInput "fufexan/zen-browser-flake";
|
||||||
|
|
||||||
|
cosmic = mkFollowingNixpkgs "lilyinstarlight/nixos-cosmic";
|
||||||
|
darwin = mkFollowingNixpkgs "LnL7/nix-darwin/master";
|
||||||
home-manager = mkFollowingNixpkgs "nix-community/home-manager";
|
home-manager = mkFollowingNixpkgs "nix-community/home-manager";
|
||||||
nix-index-database = mkFollowingNixpkgs "nix-community/nix-index-database";
|
nix-index-database = mkFollowingNixpkgs "nix-community/nix-index-database";
|
||||||
snowfall-flake = mkFollowingNixpkgs "snowfallorg/flake";
|
snowfall-flake = mkFollowingNixpkgs "snowfallorg/flake";
|
||||||
|
@ -41,62 +45,13 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {...} @ inputs:
|
outputs = {...} @ inputs:
|
||||||
with inputs; let
|
with inputs;
|
||||||
pkgs = import nixpkgs {inherit system;};
|
|
||||||
system = "x86_64-linux";
|
|
||||||
in
|
|
||||||
snowfall-lib.mkFlake {
|
snowfall-lib.mkFlake {
|
||||||
inherit inputs;
|
inherit inputs;
|
||||||
src = ./.;
|
src = ./.;
|
||||||
|
|
||||||
formatter.${system} = treefmt-nix.lib.mkWrapper pkgs {
|
|
||||||
projectRootFile = "flake.nix";
|
|
||||||
programs = {
|
|
||||||
alejandra.enable = true;
|
|
||||||
deadnix.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
overlays = [
|
overlays = [
|
||||||
snowfall-flake.overlays.default
|
snowfall-flake.overlays.default
|
||||||
|
|
||||||
(_final: prev: {
|
|
||||||
nixSuper = nix-super.packages.${system}.default;
|
|
||||||
|
|
||||||
ccacheWrapper = prev.ccacheWrapper.override {
|
|
||||||
extraConfig = ''
|
|
||||||
export CCACHE_COMPRESS=1
|
|
||||||
export CCACHE_DIR="${config.programs.ccache.cacheDir}"
|
|
||||||
export CCACHE_UMASK=007
|
|
||||||
if [ ! -d "$CCACHE_DIR" ]; then
|
|
||||||
echo "====="
|
|
||||||
echo "Directory '$CCACHE_DIR' does not exist"
|
|
||||||
echo "Please create it with:"
|
|
||||||
echo " sudo mkdir -m0770 '$CCACHE_DIR'"
|
|
||||||
echo " sudo chown root:nixbld '$CCACHE_DIR'"
|
|
||||||
echo "====="
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
if [ ! -w "$CCACHE_DIR" ]; then
|
|
||||||
echo "====="
|
|
||||||
echo "Directory '$CCACHE_DIR' is not accessible for user $(whoami)"
|
|
||||||
echo "Please verify its access permissions"
|
|
||||||
echo "====="
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
picom = prev.picom.overrideAttrs {
|
|
||||||
src = prev.fetchFromGitHub {
|
|
||||||
owner = "yshui";
|
|
||||||
repo = "picom";
|
|
||||||
rev = "94faacbd4ac917cca5abac3ac5c539f5fe1dc61d";
|
|
||||||
hash = "sha256-KfMy8lV3FMS+AWDozlpPRkXX1eZCWsj39Y5T8q+c9Bs=";
|
|
||||||
fetchSubmodules = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
|
|
||||||
channels-config = {
|
channels-config = {
|
||||||
|
@ -108,36 +63,56 @@
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
homes.modules = [
|
systems.modules.nixos =
|
||||||
catppuccin.homeManagerModules.catppuccin
|
[
|
||||||
chaotic.homeManagerModules.default
|
agenix.nixosModules.default
|
||||||
hyprland.homeManagerModules.default
|
catppuccin.nixosModules.catppuccin
|
||||||
nix-colors.homeManagerModules.default
|
chaotic.nixosModules.default
|
||||||
nix-index-database.hmModules.nix-index
|
cosmic.nixosModules.default
|
||||||
schizofox.homeManagerModules.default
|
determinate.nixosModules.default
|
||||||
|
impermanence.nixosModules.impermanence
|
||||||
|
nixos-facter-modules.nixosModules.facter
|
||||||
|
]
|
||||||
|
++ xmonad-contrib.nixosModules;
|
||||||
|
|
||||||
|
systems.modules.darwin = [
|
||||||
|
"${home-manager}/nix-darwin"
|
||||||
];
|
];
|
||||||
|
|
||||||
systems.modules.nixos = [
|
outputs-builder = channels: {
|
||||||
agenix.nixosModules.default
|
formatter = treefmt-nix.lib.mkWrapper channels.nixpkgs {
|
||||||
catppuccin.nixosModules.catppuccin
|
projectRootFile = "flake.nix";
|
||||||
chaotic.nixosModules.default
|
|
||||||
impermanence.nixosModules.impermanence
|
|
||||||
];
|
|
||||||
|
|
||||||
devShells.${system}.default = with pkgs;
|
programs = {
|
||||||
mkShellNoCC {
|
alejandra.enable = true;
|
||||||
packages = [
|
deadnix.enable = true;
|
||||||
alejandra
|
jsonfmt.enable = true;
|
||||||
git
|
stylua.enable = true;
|
||||||
nvfetcher
|
taplo.enable = true;
|
||||||
statix
|
};
|
||||||
(writeScriptBin "build" ''
|
|
||||||
nix fmt
|
|
||||||
nh os switch . -- --impure
|
|
||||||
nh home switch
|
|
||||||
'')
|
|
||||||
(writeScriptBin "up" "nix flake update")
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
devShells.default = with channels.nixpkgs;
|
||||||
|
mkShellNoCC {
|
||||||
|
packages = [
|
||||||
|
alejandra
|
||||||
|
git
|
||||||
|
lua-language-server
|
||||||
|
nvfetcher
|
||||||
|
statix
|
||||||
|
|
||||||
|
(writeScriptBin "build" ''
|
||||||
|
sudo nix run \
|
||||||
|
--option experimental-features "nix-command flakes" \
|
||||||
|
--option extra-substituters https://numtide.cachix.org \
|
||||||
|
--option extra-trusted-public-keys numtide.cachix.org-1:2ps1kLBUWjxIneOy1Ik6cQjb41X0iXVXeHigGmycPPE= \
|
||||||
|
github:numtide/nixos-facter -- -o systems/${system}/$(hostname)/facter.json
|
||||||
|
nix fmt
|
||||||
|
nh os switch
|
||||||
|
'')
|
||||||
|
(writeScriptBin "up" "nix flake update && nvfetcher")
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
1945
flake.lock
1945
flake.lock
File diff suppressed because it is too large
Load diff
21
flake.nix
21
flake.nix
|
@ -1,10 +1,19 @@
|
||||||
# Do not modify! This file is generated.
|
# Do not modify! This file is generated.
|
||||||
|
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
agenix.url = "github:ryantm/agenix";
|
agenix.url = "github:ryantm/agenix";
|
||||||
catppuccin.url = "github:catppuccin/nix";
|
catppuccin.url = "github:catppuccin/nix";
|
||||||
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
|
||||||
|
cosmic = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:lilyinstarlight/nixos-cosmic";
|
||||||
|
};
|
||||||
|
darwin = {
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
url = "github:LnL7/nix-darwin/master";
|
||||||
|
};
|
||||||
|
determinate.url = "github:DeterminateSystems/determinate";
|
||||||
|
emacs.url = "git+https://git.pupbrained.xyz/pupbrained/nixmacs.git";
|
||||||
flakegen.url = "github:jorsn/flakegen";
|
flakegen.url = "github:jorsn/flakegen";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -25,10 +34,9 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
url = "github:nix-community/nix-index-database";
|
url = "github:nix-community/nix-index-database";
|
||||||
};
|
};
|
||||||
nix-super.url = "git+https://git.privatevoid.net/max/nix-super.git";
|
nixos-facter-modules.url = "github:numtide/nixos-facter-modules";
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
nixvim.url = "github:pupbrained/nixvim";
|
nixvim.url = "github:pupbrained/nvim-config";
|
||||||
schizofox.url = "github:schizofox/schizofox";
|
|
||||||
snowfall-flake = {
|
snowfall-flake = {
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
url = "github:snowfallorg/flake";
|
url = "github:snowfallorg/flake";
|
||||||
|
@ -37,8 +45,9 @@
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
url = "github:snowfallorg/lib/dev";
|
url = "github:snowfallorg/lib/dev";
|
||||||
};
|
};
|
||||||
sops-nix.url = "github:Mic92/sops-nix";
|
|
||||||
treefmt-nix.url = "github:numtide/treefmt-nix";
|
treefmt-nix.url = "github:numtide/treefmt-nix";
|
||||||
|
xmonad-contrib.url = "github:xmonad/xmonad-contrib";
|
||||||
|
zen-browser.url = "github:fufexan/zen-browser-flake";
|
||||||
};
|
};
|
||||||
outputs = inputs: inputs.flakegen ./flake.in.nix inputs;
|
outputs = inputs: inputs.flakegen ./flake.in.nix inputs;
|
||||||
}
|
}
|
||||||
|
|
119
homes/aarch64-darwin/marshall@canis/default.nix
Normal file
119
homes/aarch64-darwin/marshall@canis/default.nix
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = with inputs; [
|
||||||
|
nix-index-database.hmModules.nix-index
|
||||||
|
catppuccin.homeManagerModules.catppuccin
|
||||||
|
chaotic.homeManagerModules.default
|
||||||
|
nix-colors.homeManagerModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
snowfallorg.user = {
|
||||||
|
enable = true;
|
||||||
|
name = "marshall";
|
||||||
|
};
|
||||||
|
|
||||||
|
home = {
|
||||||
|
packages = with pkgs;
|
||||||
|
[
|
||||||
|
alejandra
|
||||||
|
bit
|
||||||
|
cargo-edit
|
||||||
|
cargo-udeps
|
||||||
|
cmake
|
||||||
|
duf
|
||||||
|
emacs-lsp-booster
|
||||||
|
eternal-terminal
|
||||||
|
grc
|
||||||
|
huniq
|
||||||
|
hurl
|
||||||
|
keybase
|
||||||
|
keychain
|
||||||
|
monolith
|
||||||
|
nix-output-monitor
|
||||||
|
nix-prefetch-scripts
|
||||||
|
nil
|
||||||
|
nixd
|
||||||
|
nodePackages_latest.nodejs
|
||||||
|
nurl
|
||||||
|
pinentry_mac
|
||||||
|
pnpm
|
||||||
|
rm-improved
|
||||||
|
rnr
|
||||||
|
slack
|
||||||
|
stylua
|
||||||
|
tailspin
|
||||||
|
tokei
|
||||||
|
typst
|
||||||
|
typst-live
|
||||||
|
typstfmt
|
||||||
|
unrar
|
||||||
|
unzip
|
||||||
|
upx
|
||||||
|
vgrep
|
||||||
|
wget
|
||||||
|
xcp
|
||||||
|
xh
|
||||||
|
|
||||||
|
(emacs30-pgtk.overrideAttrs (old: let
|
||||||
|
sources = import ../../../_sources/generated.nix {inherit (pkgs) fetchurl fetchFromGitHub;};
|
||||||
|
|
||||||
|
getPatch = name: sources.${name}.src;
|
||||||
|
in {
|
||||||
|
patches =
|
||||||
|
(old.patches or [])
|
||||||
|
++ [
|
||||||
|
# Fix OS window role (needed for window managers like yabai)
|
||||||
|
(getPatch "fix-window-role")
|
||||||
|
# Use poll instead of select to get file descriptors
|
||||||
|
(getPatch "poll")
|
||||||
|
# Enable rounded window with no decoration
|
||||||
|
(getPatch "round-undecorated-frame")
|
||||||
|
# Make Emacs aware of OS-level light/dark mode
|
||||||
|
(getPatch "system-appearance")
|
||||||
|
];
|
||||||
|
}))
|
||||||
|
|
||||||
|
(python312.withPackages (pkgs:
|
||||||
|
with pkgs; [
|
||||||
|
epc
|
||||||
|
orjson
|
||||||
|
sexpdata
|
||||||
|
six
|
||||||
|
setuptools
|
||||||
|
paramiko
|
||||||
|
rapidfuzz
|
||||||
|
]))
|
||||||
|
]
|
||||||
|
++ (with inputs; [nixvim.packages.${pkgs.system}.default]);
|
||||||
|
|
||||||
|
stateVersion = "24.05";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
bacon.enable = true;
|
||||||
|
btop.enable = true;
|
||||||
|
bun.enable = true;
|
||||||
|
gpg.enable = true;
|
||||||
|
skim.enable = false;
|
||||||
|
tealdeer.enable = false;
|
||||||
|
wezterm.extraConfig = builtins.readFile ./wezterm.lua;
|
||||||
|
|
||||||
|
jujutsu = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
user = {
|
||||||
|
email = "mars@pupbrained.xyz";
|
||||||
|
name = "Mars";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
git = {
|
||||||
|
extraConfig.credential.helper = "osxkeychain";
|
||||||
|
signing.key = "874E22DF2F9DFCB5";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
135
homes/aarch64-darwin/marshall@canis/wezterm.lua
Normal file
135
homes/aarch64-darwin/marshall@canis/wezterm.lua
Normal file
|
@ -0,0 +1,135 @@
|
||||||
|
local c = wezterm.config_builder()
|
||||||
|
|
||||||
|
wezterm.on('user-var-changed', function(window, pane, name, value)
|
||||||
|
local overrides = window:get_config_overrides() or {}
|
||||||
|
if name == 'ZEN_MODE' then
|
||||||
|
local incremental = value:find('+')
|
||||||
|
local number_value = tonumber(value)
|
||||||
|
if incremental ~= nil then
|
||||||
|
while number_value > 0 do
|
||||||
|
window:perform_action(wezterm.action.IncreaseFontSize, pane)
|
||||||
|
number_value = number_value - 1
|
||||||
|
end
|
||||||
|
overrides.enable_tab_bar = false
|
||||||
|
elseif number_value < 0 then
|
||||||
|
window:perform_action(wezterm.action.ResetFontSize, pane)
|
||||||
|
overrides.font_size = nil
|
||||||
|
overrides.enable_tab_bar = true
|
||||||
|
else
|
||||||
|
overrides.font_size = number_value
|
||||||
|
overrides.enable_tab_bar = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
window:set_config_overrides(overrides)
|
||||||
|
end)
|
||||||
|
|
||||||
|
wezterm.on('format-window-title', function(tab, pane, tabs, panes, config)
|
||||||
|
local zoomed = ''
|
||||||
|
|
||||||
|
if tab.active_pane.is_zoomed then
|
||||||
|
zoomed = '[Z] '
|
||||||
|
end
|
||||||
|
|
||||||
|
local index = ''
|
||||||
|
|
||||||
|
if #tabs > 1 then
|
||||||
|
index = string.format('[%d/%d] ', tab.tab_index + 1, #tabs)
|
||||||
|
end
|
||||||
|
|
||||||
|
return 'WezTerm - ' .. zoomed .. index .. tab.active_pane.title
|
||||||
|
end)
|
||||||
|
|
||||||
|
wezterm.plugin.require('https://github.com/nekowinston/wezterm-bar').apply_to_config(c, {
|
||||||
|
position = 'bottom',
|
||||||
|
max_width = 32,
|
||||||
|
dividers = 'slant_right',
|
||||||
|
indicator = {
|
||||||
|
leader = {
|
||||||
|
enabled = true,
|
||||||
|
off = ' ',
|
||||||
|
on = ' ',
|
||||||
|
},
|
||||||
|
mode = {
|
||||||
|
enabled = true,
|
||||||
|
names = {
|
||||||
|
resize_mode = 'RESIZE',
|
||||||
|
copy_mode = 'VISUAL',
|
||||||
|
search_mode = 'SEARCH',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
tabs = {
|
||||||
|
numerals = 'arabic',
|
||||||
|
pane_count = 'subscript',
|
||||||
|
brackets = {
|
||||||
|
active = { '', ':' },
|
||||||
|
inactive = { '', ':' },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
clock = {
|
||||||
|
enabled = true,
|
||||||
|
format = '%l:%M %p',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
local act = wezterm.action
|
||||||
|
|
||||||
|
local keybinds = {
|
||||||
|
{
|
||||||
|
key = 'Enter',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.SplitHorizontal({ domain = 'CurrentPaneDomain' }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = 'h',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.ActivatePaneDirection('Left'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = 'l',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.ActivatePaneDirection('Right'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = 'k',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.ActivatePaneDirection('Up'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = 'j',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.ActivatePaneDirection('Down'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = 't',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.SpawnCommandInNewTab({ cwd = wezterm.home_dir }),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local config = {
|
||||||
|
adjust_window_size_when_changing_font_size = false,
|
||||||
|
color_scheme = 'Catppuccin Mocha',
|
||||||
|
cursor_blink_ease_in = 'Constant',
|
||||||
|
cursor_blink_ease_out = 'Constant',
|
||||||
|
cursor_blink_rate = 500,
|
||||||
|
default_cursor_style = 'BlinkingBar',
|
||||||
|
enable_scroll_bar = false,
|
||||||
|
font = wezterm.font('PragmataPro Mono Liga'),
|
||||||
|
font_size = 14,
|
||||||
|
front_end = 'WebGpu',
|
||||||
|
hide_tab_bar_if_only_one_tab = true,
|
||||||
|
keys = keybinds,
|
||||||
|
macos_window_background_blur = 32,
|
||||||
|
use_fancy_tab_bar = false,
|
||||||
|
webgpu_power_preference = 'HighPerformance',
|
||||||
|
window_background_opacity = 0.85,
|
||||||
|
window_decorations = 'RESIZE',
|
||||||
|
window_padding = { left = 0, right = 0, top = 0, bottom = 0 },
|
||||||
|
}
|
||||||
|
|
||||||
|
for k, v in pairs(config) do
|
||||||
|
c[k] = v
|
||||||
|
end
|
||||||
|
|
||||||
|
return c
|
|
@ -4,45 +4,97 @@
|
||||||
inputs,
|
inputs,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
|
imports = with inputs; [
|
||||||
|
catppuccin.homeManagerModules.catppuccin
|
||||||
|
chaotic.homeManagerModules.default
|
||||||
|
hyprland.homeManagerModules.default
|
||||||
|
nix-colors.homeManagerModules.default
|
||||||
|
nix-index-database.hmModules.nix-index
|
||||||
|
|
||||||
|
./hyprland
|
||||||
|
./screenshot
|
||||||
|
];
|
||||||
|
|
||||||
|
snowfallorg.user = {
|
||||||
|
enable = true;
|
||||||
|
name = "marshall";
|
||||||
|
};
|
||||||
|
|
||||||
colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;
|
colorScheme = inputs.nix-colors.colorSchemes.catppuccin-mocha;
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
packages = with pkgs;
|
packages = with pkgs;
|
||||||
[
|
[
|
||||||
|
alejandra
|
||||||
|
beeper
|
||||||
duf
|
duf
|
||||||
eternal-terminal
|
eternal-terminal
|
||||||
|
((pkgs.emacsPackagesFor pkgs.emacs30-pgtk).emacsWithPackages (epkgs:
|
||||||
|
builtins.attrValues {
|
||||||
|
inherit (epkgs.treesit-grammars) with-all-grammars;
|
||||||
|
}))
|
||||||
|
emacs-lsp-booster
|
||||||
|
equibop
|
||||||
|
glow
|
||||||
grc
|
grc
|
||||||
iamb
|
|
||||||
jamesdsp
|
jamesdsp
|
||||||
jetbrains-toolbox
|
jdk21
|
||||||
killall
|
killall
|
||||||
libnotify
|
libnotify
|
||||||
lm_sensors
|
lm_sensors
|
||||||
loupe
|
loupe
|
||||||
mpv
|
mattermost-desktop
|
||||||
|
neovide
|
||||||
|
nodejs
|
||||||
playerctl
|
playerctl
|
||||||
prismlauncher
|
prismlauncher
|
||||||
|
(python312.withPackages
|
||||||
|
(p:
|
||||||
|
with p; [
|
||||||
|
epc
|
||||||
|
orjson
|
||||||
|
sexpdata
|
||||||
|
six
|
||||||
|
setuptools
|
||||||
|
paramiko
|
||||||
|
rapidfuzz
|
||||||
|
]))
|
||||||
|
slack
|
||||||
telegram-desktop
|
telegram-desktop
|
||||||
vesktop
|
xdotool
|
||||||
|
(xwinwrap.overrideAttrs {
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "camonater62";
|
||||||
|
repo = "xwinwrap";
|
||||||
|
rev = "ec74e730072225ffa740bf5076a1dd0a343bb113";
|
||||||
|
sha256 = "0vfwbcx5y1aphiaix2zps1bl7lhbhdvm6vhys2m0kwvl6igy0cc8";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
make all
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out/bin
|
||||||
|
mv xwinwrap $out/bin
|
||||||
|
'';
|
||||||
|
})
|
||||||
youki
|
youki
|
||||||
jetbrains.clion
|
|
||||||
]
|
]
|
||||||
|
++ (with jetbrains; [
|
||||||
|
clion
|
||||||
|
rust-rover
|
||||||
|
phpstorm
|
||||||
|
webstorm
|
||||||
|
idea-ultimate
|
||||||
|
])
|
||||||
++ (with inputs; [
|
++ (with inputs; [
|
||||||
nixvim.packages.${pkgs.system}.default
|
nixvim.packages.${pkgs.system}.default
|
||||||
])
|
zen-browser.packages.${pkgs.system}.specific
|
||||||
++ (with inputs.chaotic.packages.${pkgs.system}; [
|
chaotic.packages.${pkgs.system}.distrobox_git
|
||||||
distrobox_git
|
chaotic.packages.${pkgs.system}.zed-editor_git
|
||||||
firefox_nightly
|
|
||||||
]);
|
]);
|
||||||
|
|
||||||
pointerCursor = {
|
|
||||||
gtk.enable = true;
|
|
||||||
x11.enable = true;
|
|
||||||
name = "Catppuccin-Mocha-Green-Cursors";
|
|
||||||
package = pkgs.catppuccin-cursors.mochaGreen;
|
|
||||||
size = 24;
|
|
||||||
};
|
|
||||||
|
|
||||||
stateVersion = "24.05";
|
stateVersion = "24.05";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -59,58 +111,121 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
flavor = "mocha";
|
flavor = "mocha";
|
||||||
accent = "green";
|
accent = "green";
|
||||||
|
pointerCursor.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
gtk = {
|
gtk = let
|
||||||
enable = true;
|
gradiencePreset = pkgs.fetchurl {
|
||||||
|
url = "https://raw.githubusercontent.com/GradienceTeam/Community/next/official/catppuccin-macchiato.json";
|
||||||
|
hash = "sha256-FgQvmK/Pjn980o+UVc2a70kGa6sGse045zPS9hzCs14=";
|
||||||
|
};
|
||||||
|
|
||||||
catppuccin = {
|
gradienceBuild = pkgs.stdenv.mkDerivation {
|
||||||
enable = true;
|
name = "gradience-build";
|
||||||
icon.enable = true;
|
phases = ["buildPhase" "installPhase"];
|
||||||
cursor.enable = true;
|
nativeBuildInputs = [pkgs.gradience];
|
||||||
size = "standard";
|
buildPhase = ''
|
||||||
tweaks = ["rimless"];
|
shopt -s nullglob
|
||||||
|
export HOME=$TMPDIR
|
||||||
|
mkdir -p $HOME/.config/presets
|
||||||
|
gradience-cli apply -p ${gradiencePreset} --gtk both
|
||||||
|
'';
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p $out
|
||||||
|
cp -r .config/gtk-4.0 $out/
|
||||||
|
cp -r .config/gtk-3.0 $out/
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
enable = false;
|
||||||
|
theme.name = "adw-gtk3-dark";
|
||||||
|
theme.package = pkgs.adw-gtk3;
|
||||||
|
|
||||||
|
gtk3 = {
|
||||||
|
extraCss = builtins.readFile "${gradienceBuild}/gtk-3.0/gtk.css";
|
||||||
|
extraConfig = {
|
||||||
|
gtk-application-prefer-dark-theme = 1;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk4 = {
|
||||||
|
extraCss = builtins.readFile "${gradienceBuild}/gtk-4.0/gtk.css";
|
||||||
|
extraConfig = {
|
||||||
|
gtk-application-prefer-dark-theme = 1;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
platformTheme.name = "kvantum";
|
||||||
style.name = "kvantum";
|
style.name = "kvantum";
|
||||||
style.catppuccin.enable = true;
|
style.catppuccin.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
nix-index-database.comma.enable = true;
|
xmobar.enable = true;
|
||||||
nix-index.enable = true;
|
|
||||||
ripgrep.enable = true;
|
|
||||||
|
|
||||||
fzf = {
|
wezterm.extraConfig = builtins.readFile ./wezterm.lua;
|
||||||
|
|
||||||
|
git = {
|
||||||
|
extraConfig.credential.helper = "libsecret";
|
||||||
|
signing.key = "0FF5B8826803F895";
|
||||||
|
};
|
||||||
|
|
||||||
|
mpv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
scripts = [pkgs.mpvScripts.uosc];
|
||||||
catppuccin.enable = true;
|
catppuccin.enable = true;
|
||||||
colors = with lib; {
|
};
|
||||||
bg = mkForce "-1";
|
};
|
||||||
"bg+" = mkForce "-1";
|
|
||||||
|
services = {
|
||||||
|
picom = {
|
||||||
|
enable = true;
|
||||||
|
backend = "glx";
|
||||||
|
fadeDelta = 5;
|
||||||
|
fade = true;
|
||||||
|
shadow = true;
|
||||||
|
vSync = true;
|
||||||
|
|
||||||
|
shadowExclude = [
|
||||||
|
"class_g = 'firefox' && argb"
|
||||||
|
"class_g *?= 'slop'"
|
||||||
|
];
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
corner-radius = 10;
|
||||||
|
|
||||||
|
blur-background-exclude = [
|
||||||
|
"class_g = 'slop'"
|
||||||
|
];
|
||||||
|
|
||||||
|
rounded-corners-exclude = [
|
||||||
|
"window_type = 'dock'"
|
||||||
|
"window_type = 'desktop'"
|
||||||
|
];
|
||||||
|
|
||||||
|
blur = {
|
||||||
|
method = "gaussian";
|
||||||
|
size = 10;
|
||||||
|
deviation = 5.0;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
eza = {
|
dunst = {
|
||||||
enable = true;
|
|
||||||
git = true;
|
|
||||||
icons = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
btop = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
settings.global = {
|
||||||
|
corner_radius = 10;
|
||||||
|
offset = "18x53";
|
||||||
|
frame_width = 2;
|
||||||
|
font = "SN Pro 12";
|
||||||
|
frame_color = lib.mkForce "#a6e3a1";
|
||||||
|
};
|
||||||
catppuccin.enable = true;
|
catppuccin.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.startServices = "sd-switch";
|
systemd.user.startServices = "sd-switch";
|
||||||
|
|
||||||
nix.package = lib.mkForce pkgs.nixSuper;
|
|
||||||
}
|
}
|
||||||
|
|
231
homes/x86_64-linux/marshall@navis/hyprland/default.nix
Normal file
231
homes/x86_64-linux/marshall@navis/hyprland/default.nix
Normal file
|
@ -0,0 +1,231 @@
|
||||||
|
{pkgs, ...}:
|
||||||
|
with pkgs; {
|
||||||
|
imports = [
|
||||||
|
./rofi.nix
|
||||||
|
./services.nix
|
||||||
|
./waybar.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home.packages = [
|
||||||
|
wl-clipboard
|
||||||
|
];
|
||||||
|
|
||||||
|
wayland.windowManager.hyprland = {
|
||||||
|
enable = false;
|
||||||
|
systemd.variables = ["--all"];
|
||||||
|
|
||||||
|
settings = let
|
||||||
|
rofi-clipboard = pkgs.writeScriptBin "rofi-clipboard" ''
|
||||||
|
tmp_dir="/tmp/cliphist"
|
||||||
|
rm -rf "$tmp_dir"
|
||||||
|
|
||||||
|
if [[ -n "$1" ]]; then
|
||||||
|
cliphist decode <<<"$1" | wl-copy
|
||||||
|
exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p "$tmp_dir"
|
||||||
|
|
||||||
|
read -r -d "" prog <<EOF
|
||||||
|
/^[0-9]+\s<meta http-equiv=/ { next }
|
||||||
|
match(\$0, /^([0-9]+)\s(\[\[\s)?binary.*(jpg|jpeg|png|bmp)/, grp) {
|
||||||
|
system("echo " grp[1] "\\\\\t | cliphist decode >$tmp_dir/"grp[1]"."grp[3])
|
||||||
|
print \$0"\0icon\x1f$tmp_dir/"grp[1]"."grp[3]
|
||||||
|
next
|
||||||
|
}
|
||||||
|
1
|
||||||
|
EOF
|
||||||
|
|
||||||
|
cliphist list | gawk "$prog"
|
||||||
|
'';
|
||||||
|
|
||||||
|
scratchpad = pkgs.writeScriptBin "hyprscratchpad" ''
|
||||||
|
COMMAND=$1
|
||||||
|
CLASS=$2
|
||||||
|
WORKSPACE=$3
|
||||||
|
|
||||||
|
if [[ $(hyprctl clients | grep -v '"title":' | grep "class: $CLASS") ]];then
|
||||||
|
hyprctl dispatch togglespecialworkspace $WORKSPACE
|
||||||
|
else
|
||||||
|
hyprctl dispatch togglespecialworkspace $WORKSPACE && hyprctl dispatch exec "$COMMAND"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
|
mod = "SUPER";
|
||||||
|
modC = "SUPER CTRL";
|
||||||
|
modS = "SUPER SHIFT";
|
||||||
|
|
||||||
|
browser = "firefox-nightly";
|
||||||
|
colorPicker = "notify-send -i gtk-color-picker $(${hyprpicker}/bin/hyprpicker -a) 'Copied to clipboard.'";
|
||||||
|
fileManager = "nautilus";
|
||||||
|
launcher = "rofi -show drun";
|
||||||
|
clipboard = "rofi -modi ' ':${rofi-clipboard}/bin/rofi-clipboard -show ' ' -show-icons";
|
||||||
|
terminal = "wezterm";
|
||||||
|
|
||||||
|
screenshot = mode: "${hyprshot}/bin/hyprshot --clipboard-only -m ${mode}";
|
||||||
|
in {
|
||||||
|
decoration.rounding = 10;
|
||||||
|
dwindle.preserve_split = true;
|
||||||
|
gestures.workspace_swipe = true;
|
||||||
|
input.touchpad = {
|
||||||
|
clickfinger_behavior = true;
|
||||||
|
natural_scroll = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
device = [
|
||||||
|
{
|
||||||
|
name = "logitech-g502-x-plus";
|
||||||
|
sensitivity = -0.5;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
windowrule = [
|
||||||
|
"float, ^(vesktop)$"
|
||||||
|
"float, ^(org.telegram.desktop)$"
|
||||||
|
];
|
||||||
|
|
||||||
|
layerrule = [
|
||||||
|
"dimaround, rofi"
|
||||||
|
];
|
||||||
|
|
||||||
|
animations = {
|
||||||
|
enabled = true;
|
||||||
|
|
||||||
|
bezier = [
|
||||||
|
"overshot,0.7,0.6,0.1,1.1"
|
||||||
|
"bounce,1,1.6,0.1,0.85"
|
||||||
|
];
|
||||||
|
|
||||||
|
animation = [
|
||||||
|
"windows,1,5,bounce,popin"
|
||||||
|
"border,1,20,default"
|
||||||
|
"fade,1,5,default"
|
||||||
|
"workspaces,1,5,overshot,slide"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
general = {
|
||||||
|
border_size = 2;
|
||||||
|
gaps_in = 10;
|
||||||
|
resize_on_border = true;
|
||||||
|
|
||||||
|
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
||||||
|
"col.inactive_border" = "rgba(595959aa)";
|
||||||
|
};
|
||||||
|
|
||||||
|
exec-once = [
|
||||||
|
"${mpvpaper.overrideAttrs {
|
||||||
|
version = "unstable-2024-07-05";
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "GhostNaN";
|
||||||
|
repo = "mpvpaper";
|
||||||
|
rev = "a445391ff7491053fef78e3645eeed934f0c8fae";
|
||||||
|
sha256 = "sha256-3wHsUtIkh765EiMnx3BPzztvffIDf1NCqF0I/OATTZ4=";
|
||||||
|
};
|
||||||
|
}}/bin/mpvpaper -vp -o 'no-audio loop' DP-1 ${builtins.toString ./wall.mp4}"
|
||||||
|
"waybar"
|
||||||
|
];
|
||||||
|
|
||||||
|
misc = {
|
||||||
|
force_default_wallpaper = 0;
|
||||||
|
disable_hyprland_logo = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
monitor = [
|
||||||
|
"eDP-1, disable"
|
||||||
|
"DP-1, 2560x1440@165, auto, auto"
|
||||||
|
];
|
||||||
|
|
||||||
|
env = [
|
||||||
|
# Nvidia stuff
|
||||||
|
"GBM_BACKEND, nvidia-drm"
|
||||||
|
"__GLX_VENDOR_LIBRARY_NAME, nvidia"
|
||||||
|
"LIBVA_DRIVER_NAME, nvidia"
|
||||||
|
"WLR_DRM_DEVICES, $HOME/.config/hypr/card"
|
||||||
|
|
||||||
|
# Cursors
|
||||||
|
"HYPRCURSOR_SIZE, 24"
|
||||||
|
"XCURSOR_SIZE, 24"
|
||||||
|
];
|
||||||
|
|
||||||
|
bindm = [
|
||||||
|
"${mod}, mouse:272, movewindow"
|
||||||
|
"${mod}, mouse:273, resizewindow"
|
||||||
|
];
|
||||||
|
|
||||||
|
bind =
|
||||||
|
[
|
||||||
|
# Apps
|
||||||
|
"${mod}, v, exec, ${clipboard}"
|
||||||
|
"${mod}, c, exec, ${colorPicker}"
|
||||||
|
"${mod}, w, exec, ${browser}"
|
||||||
|
"${mod}, e, exec, ${fileManager}"
|
||||||
|
"${mod}, r, exec, ${launcher}"
|
||||||
|
"${mod}, Return, exec, ${terminal}"
|
||||||
|
|
||||||
|
# Scratchpads
|
||||||
|
"${mod}, d, exec, ${scratchpad}/bin/hyprscratchpad vesktop vesktop vesktop"
|
||||||
|
"${mod}, t, exec, ${scratchpad}/bin/hyprscratchpad telegram-desktop org.telegram.desktop telegram"
|
||||||
|
|
||||||
|
# Screenshots
|
||||||
|
"${modS}, s, exec, ${screenshot "window"}"
|
||||||
|
"${modC}, 3, exec, ${screenshot "output -c"}"
|
||||||
|
"${modC}, 4, exec, ${screenshot "region -C 0,0"}"
|
||||||
|
|
||||||
|
# Mouse controls
|
||||||
|
"${mod}, mouse_down, workspace, e-1"
|
||||||
|
"${mod}, mouse_up, workspace, e+1"
|
||||||
|
|
||||||
|
# Quitting
|
||||||
|
"${mod}, q, killactive"
|
||||||
|
"${modS}, q, exit"
|
||||||
|
|
||||||
|
# Toggles
|
||||||
|
"${mod}, Space, togglefloating"
|
||||||
|
|
||||||
|
# Focus movements
|
||||||
|
"${mod}, h, movefocus, l"
|
||||||
|
"${mod}, j, movefocus, d"
|
||||||
|
"${mod}, k, movefocus, u"
|
||||||
|
"${mod}, l, movefocus, r"
|
||||||
|
|
||||||
|
# Window movements
|
||||||
|
"${modS}, h, movewindow, l"
|
||||||
|
"${modS}, j, movewindow, d"
|
||||||
|
"${modS}, k, movewindow, u"
|
||||||
|
"${modS}, l, movewindow, r"
|
||||||
|
|
||||||
|
# Window resizing
|
||||||
|
"${modC}, h, resizeactive, -30 0"
|
||||||
|
"${modC}, j, resizeactive, 0 30"
|
||||||
|
"${modC}, k, resizeactive, 0 -30"
|
||||||
|
"${modC}, l, resizeactive, 30 0"
|
||||||
|
|
||||||
|
# Volume controls
|
||||||
|
", XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
|
||||||
|
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
|
||||||
|
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
|
||||||
|
|
||||||
|
# Media controls
|
||||||
|
", XF86AudioPlay, exec, playerctl play-pause"
|
||||||
|
", XF86AudioNext, exec, playerctl next"
|
||||||
|
", XF86AudioPrev, exec, playerctl previous"
|
||||||
|
]
|
||||||
|
++ (
|
||||||
|
builtins.concatLists (builtins.genList (
|
||||||
|
x: let
|
||||||
|
ws = let
|
||||||
|
c = (x + 1) / 10;
|
||||||
|
in
|
||||||
|
builtins.toString (x + 1 - (c * 10));
|
||||||
|
in [
|
||||||
|
# Workspaces
|
||||||
|
"${mod}, ${ws}, workspace, ${builtins.toString (x + 1)}"
|
||||||
|
"${modS}, ${ws}, movetoworkspace, ${builtins.toString (x + 1)}"
|
||||||
|
]
|
||||||
|
)
|
||||||
|
10)
|
||||||
|
);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
28
homes/x86_64-linux/marshall@navis/hyprland/rofi.nix
Normal file
28
homes/x86_64-linux/marshall@navis/hyprland/rofi.nix
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
programs.rofi = {
|
||||||
|
enable = true;
|
||||||
|
catppuccin.enable = true;
|
||||||
|
package = pkgs.rofi-wayland;
|
||||||
|
|
||||||
|
extraConfig = {
|
||||||
|
modi = "run,drun,window";
|
||||||
|
icon-theme = "Oranchelo";
|
||||||
|
show-icons = true;
|
||||||
|
terminal = "wezterm";
|
||||||
|
drun-display-format = "{icon} {name}";
|
||||||
|
location = 0;
|
||||||
|
disable-history = false;
|
||||||
|
hide-scrollbar = true;
|
||||||
|
display-drun = " Apps ";
|
||||||
|
display-run = " Run ";
|
||||||
|
display-window = " Window";
|
||||||
|
display-Network = " Network";
|
||||||
|
sidebar-mode = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
"*".font = "Maple Mono NF 14";
|
||||||
|
window.border-radius = 10;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
14
homes/x86_64-linux/marshall@navis/hyprland/services.nix
Normal file
14
homes/x86_64-linux/marshall@navis/hyprland/services.nix
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
{...}: {
|
||||||
|
services = {
|
||||||
|
cliphist.enable = false;
|
||||||
|
udiskie.enable = false;
|
||||||
|
|
||||||
|
swaync = {
|
||||||
|
enable = false;
|
||||||
|
style = builtins.fetchurl {
|
||||||
|
url = "https://github.com/catppuccin/swaync/releases/download/v0.2.3/mocha.css";
|
||||||
|
sha256 = "1xr1wkg4zb467b35xhsfqiwhimfnn88i3ml5rf173rkm7fyby9qy";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
282
homes/x86_64-linux/marshall@navis/hyprland/waybar.nix
Normal file
282
homes/x86_64-linux/marshall@navis/hyprland/waybar.nix
Normal file
|
@ -0,0 +1,282 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
palette = config.colorScheme.palette;
|
||||||
|
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
|
||||||
|
in {
|
||||||
|
programs.waybar = {
|
||||||
|
enable = false;
|
||||||
|
package = pkgs.waybar;
|
||||||
|
settings = [
|
||||||
|
{
|
||||||
|
layer = "top";
|
||||||
|
position = "top";
|
||||||
|
|
||||||
|
modules-center = ["hyprland/workspaces"];
|
||||||
|
|
||||||
|
modules-left = [
|
||||||
|
"custom/startmenu"
|
||||||
|
"hyprland/window"
|
||||||
|
"pulseaudio"
|
||||||
|
"cpu"
|
||||||
|
"memory"
|
||||||
|
];
|
||||||
|
|
||||||
|
modules-right = [
|
||||||
|
"mpris"
|
||||||
|
"network"
|
||||||
|
"custom/notification"
|
||||||
|
"tray"
|
||||||
|
"clock"
|
||||||
|
];
|
||||||
|
|
||||||
|
"mpris" = {
|
||||||
|
format = "{player_icon} {title} - {artist}";
|
||||||
|
format-paused = "{status_icon} {title} - {artist}";
|
||||||
|
player-icons.default = "";
|
||||||
|
status-icons.paused = "";
|
||||||
|
max-length = 40;
|
||||||
|
};
|
||||||
|
|
||||||
|
"hyprland/workspaces" = {
|
||||||
|
format = "{name}";
|
||||||
|
format-icons = {
|
||||||
|
default = " ";
|
||||||
|
active = " ";
|
||||||
|
urgent = " ";
|
||||||
|
};
|
||||||
|
on-scroll-up = "hyprctl dispatch workspace e-1";
|
||||||
|
on-scroll-down = "hyprctl dispatch workspace e+1";
|
||||||
|
};
|
||||||
|
|
||||||
|
"clock" = {
|
||||||
|
format = " {:L%I:%M %p}";
|
||||||
|
tooltip = true;
|
||||||
|
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
|
||||||
|
};
|
||||||
|
|
||||||
|
"hyprland/window" = {
|
||||||
|
max-length = 40;
|
||||||
|
rewrite = {
|
||||||
|
"" = " Desktop";
|
||||||
|
"(.*) — Firefox Nightly" = " $1";
|
||||||
|
"Slack" = " Slack";
|
||||||
|
".*?Discord \\| @?(.*)" = " $1";
|
||||||
|
"wezterm" = " WezTerm";
|
||||||
|
"Telegram(?: \\((\\d+)\\))?" = " Telegram";
|
||||||
|
"Steam" = " Steam";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"memory" = {
|
||||||
|
interval = 5;
|
||||||
|
format = " {}%";
|
||||||
|
tooltip = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"cpu" = {
|
||||||
|
interval = 5;
|
||||||
|
format = " {usage:2}%";
|
||||||
|
tooltip = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"disk" = {
|
||||||
|
format = " {free}";
|
||||||
|
tooltip = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"network" = {
|
||||||
|
format-icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
format-ethernet = " {bandwidthDownOctets}";
|
||||||
|
format-wifi = "{icon} {essid}";
|
||||||
|
format-disconnected = "";
|
||||||
|
tooltip = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
"tray" = {
|
||||||
|
spacing = 12;
|
||||||
|
};
|
||||||
|
|
||||||
|
"pulseaudio" = {
|
||||||
|
format = "{icon} {volume}% {format_source}";
|
||||||
|
format-bluetooth = "{volume}% {icon} {format_source}";
|
||||||
|
format-bluetooth-muted = " {icon} {format_source}";
|
||||||
|
format-muted = " {format_source}";
|
||||||
|
format-source = " {volume}%";
|
||||||
|
format-source-muted = "";
|
||||||
|
format-icons = {
|
||||||
|
headphone = "";
|
||||||
|
hands-free = "";
|
||||||
|
headset = "";
|
||||||
|
phone = "";
|
||||||
|
portable = "";
|
||||||
|
car = "";
|
||||||
|
default = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
};
|
||||||
|
on-click = "sleep 0.1 && pavucontrol";
|
||||||
|
};
|
||||||
|
|
||||||
|
"custom/startmenu" = {
|
||||||
|
tooltip = false;
|
||||||
|
format = " ";
|
||||||
|
on-click = "rofi -show drun";
|
||||||
|
};
|
||||||
|
|
||||||
|
"custom/notification" = {
|
||||||
|
tooltip = false;
|
||||||
|
format = "{icon} {}";
|
||||||
|
format-icons = {
|
||||||
|
notification = "<span foreground='red'><sup></sup></span>";
|
||||||
|
none = "";
|
||||||
|
dnd-notification = "<span foreground='red'><sup></sup></span>";
|
||||||
|
dnd-none = "";
|
||||||
|
inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
||||||
|
inhibited-none = "";
|
||||||
|
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
||||||
|
dnd-inhibited-none = "";
|
||||||
|
};
|
||||||
|
return-type = "json";
|
||||||
|
exec = "swaync-client -swb";
|
||||||
|
on-click = "swaync-client -t &";
|
||||||
|
escape = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
style = lib.concatStrings [
|
||||||
|
''
|
||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0px;
|
||||||
|
font-family: Maple Mono NF;
|
||||||
|
font-size: 16px;
|
||||||
|
min-height: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background-color: #${palette.base00};
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
background: #${palette.base01};
|
||||||
|
border-radius: 16px;
|
||||||
|
color: #${palette.base00};
|
||||||
|
margin: 4px 4px;
|
||||||
|
padding: 8px 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button {
|
||||||
|
animation: gradient_horizontal 15s ease infinite;
|
||||||
|
background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09});
|
||||||
|
background-size: 300% 300%;
|
||||||
|
border-radius: 16px;
|
||||||
|
color: #${palette.base00};
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0px 3px;
|
||||||
|
opacity: 0.5;
|
||||||
|
padding: 0px 5px;
|
||||||
|
transition: ${betterTransition};
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.active {
|
||||||
|
animation: gradient_horizontal 15s ease infinite;
|
||||||
|
background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09});
|
||||||
|
background-size: 300% 300%;
|
||||||
|
border-radius: 16px;
|
||||||
|
color: #${palette.base00};
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0px 3px;
|
||||||
|
min-width: 40px;
|
||||||
|
opacity: 1.0;
|
||||||
|
padding: 0px 5px;
|
||||||
|
transition: ${betterTransition};
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button:hover {
|
||||||
|
animation: gradient_horizontal 15s ease infinite;
|
||||||
|
background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09});
|
||||||
|
background-size: 300% 300%;
|
||||||
|
border-radius: 16px;
|
||||||
|
color: #${palette.base00};
|
||||||
|
font-weight: bold;
|
||||||
|
opacity: 0.8;
|
||||||
|
transition: ${betterTransition};
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes gradient_horizontal {
|
||||||
|
0% { background-position: 0% 50%; }
|
||||||
|
50% { background-position: 100% 50%; }
|
||||||
|
100% { background-position: 0% 50%; }
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes swiping {
|
||||||
|
0% { background-position: 0% 200%; }
|
||||||
|
100% { background-position: 200% 200%; }
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
background: #${palette.base00};
|
||||||
|
border: 1px solid #${palette.base0E};
|
||||||
|
border-radius: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip label {
|
||||||
|
color: #${palette.base07};
|
||||||
|
}
|
||||||
|
|
||||||
|
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
|
||||||
|
background: #${palette.base01};
|
||||||
|
border-radius: 24px 10px 24px 10px;
|
||||||
|
color: #${palette.base05};
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 4px 0px;
|
||||||
|
margin-left: 7px;
|
||||||
|
padding: 0px 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-startmenu {
|
||||||
|
background: #${palette.base01};
|
||||||
|
border-radius: 0px 0px 40px 0px;
|
||||||
|
color: #${palette.base0D};
|
||||||
|
font-size: 28px;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px 30px 0px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mpris, #network, #custom-notification, #tray {
|
||||||
|
background: #${palette.base01};
|
||||||
|
border-radius: 10px 24px 10px 24px;
|
||||||
|
color: #${palette.base05};
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 4px 0px;
|
||||||
|
margin-right: 7px;
|
||||||
|
padding: 0px 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
animation: gradient_horizontal 15s ease infinite;
|
||||||
|
background: linear-gradient(45deg, #${palette.base0C}, #${palette.base0F}, #${palette.base0B}, #${palette.base08});
|
||||||
|
background-size: 300% 300%;
|
||||||
|
border-radius: 0px 0px 0px 40px;
|
||||||
|
color: #${palette.base00};
|
||||||
|
font-weight: bold;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px 15px 0px 30px;
|
||||||
|
}
|
||||||
|
''
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
Before Width: | Height: | Size: 578 B After Width: | Height: | Size: 578 B |
134
homes/x86_64-linux/marshall@navis/wezterm.lua
Normal file
134
homes/x86_64-linux/marshall@navis/wezterm.lua
Normal file
|
@ -0,0 +1,134 @@
|
||||||
|
local c = wezterm.config_builder()
|
||||||
|
wezterm.on('user-var-changed', function(window, pane, name, value)
|
||||||
|
local overrides = window:get_config_overrides() or {}
|
||||||
|
if name == 'ZEN_MODE' then
|
||||||
|
local incremental = value:find('+')
|
||||||
|
local number_value = tonumber(value)
|
||||||
|
if incremental ~= nil then
|
||||||
|
while number_value > 0 do
|
||||||
|
window:perform_action(wezterm.action.IncreaseFontSize, pane)
|
||||||
|
number_value = number_value - 1
|
||||||
|
end
|
||||||
|
overrides.enable_tab_bar = false
|
||||||
|
elseif number_value < 0 then
|
||||||
|
window:perform_action(wezterm.action.ResetFontSize, pane)
|
||||||
|
overrides.font_size = nil
|
||||||
|
overrides.enable_tab_bar = true
|
||||||
|
else
|
||||||
|
overrides.font_size = number_value
|
||||||
|
overrides.enable_tab_bar = false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
window:set_config_overrides(overrides)
|
||||||
|
end)
|
||||||
|
wezterm.on('format-window-title', function(tab, pane, tabs, panes, config)
|
||||||
|
local zoomed = ''
|
||||||
|
|
||||||
|
if tab.active_pane.is_zoomed then
|
||||||
|
zoomed = '[Z] '
|
||||||
|
end
|
||||||
|
|
||||||
|
local index = ''
|
||||||
|
|
||||||
|
if #tabs > 1 then
|
||||||
|
index = string.format('[%d/%d] ', tab.tab_index + 1, #tabs)
|
||||||
|
end
|
||||||
|
|
||||||
|
return 'WezTerm - ' .. zoomed .. index .. tab.active_pane.title
|
||||||
|
end)
|
||||||
|
|
||||||
|
wezterm.plugin.require('https://github.com/nekowinston/wezterm-bar').apply_to_config(c, {
|
||||||
|
position = 'bottom',
|
||||||
|
max_width = 32,
|
||||||
|
dividers = 'slant_right',
|
||||||
|
indicator = {
|
||||||
|
leader = {
|
||||||
|
enabled = true,
|
||||||
|
off = ' ',
|
||||||
|
on = ' ',
|
||||||
|
},
|
||||||
|
mode = {
|
||||||
|
enabled = true,
|
||||||
|
names = {
|
||||||
|
resize_mode = 'RESIZE',
|
||||||
|
copy_mode = 'VISUAL',
|
||||||
|
search_mode = 'SEARCH',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
tabs = {
|
||||||
|
numerals = 'arabic',
|
||||||
|
pane_count = 'subscript',
|
||||||
|
brackets = {
|
||||||
|
active = { '', ':' },
|
||||||
|
inactive = { '', ':' },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
clock = {
|
||||||
|
enabled = true,
|
||||||
|
format = '%l:%M %p',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
local act = wezterm.action
|
||||||
|
|
||||||
|
local keybinds = {
|
||||||
|
{
|
||||||
|
key = 'Enter',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.SplitHorizontal({ domain = 'CurrentPaneDomain' }),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = 'h',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.ActivatePaneDirection('Left'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = 'l',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.ActivatePaneDirection('Right'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = 'k',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.ActivatePaneDirection('Up'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = 'j',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.ActivatePaneDirection('Down'),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key = 't',
|
||||||
|
mods = 'CTRL|SHIFT',
|
||||||
|
action = act.SpawnCommandInNewTab({ cwd = wezterm.home_dir }),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
local config = {
|
||||||
|
adjust_window_size_when_changing_font_size = false,
|
||||||
|
color_scheme = 'Catppuccin Mocha',
|
||||||
|
cursor_blink_ease_in = 'Constant',
|
||||||
|
cursor_blink_ease_out = 'Constant',
|
||||||
|
cursor_blink_rate = 500,
|
||||||
|
default_cursor_style = 'BlinkingBar',
|
||||||
|
enable_kitty_graphics = true,
|
||||||
|
enable_scroll_bar = false,
|
||||||
|
enable_wayland = true,
|
||||||
|
font_size = 12,
|
||||||
|
font = wezterm.font('Iosevka Comfy Motion'),
|
||||||
|
front_end = 'WebGpu',
|
||||||
|
keys = keybinds,
|
||||||
|
underline_position = -4,
|
||||||
|
use_fancy_tab_bar = false,
|
||||||
|
window_decorations = 'NONE',
|
||||||
|
warn_about_missing_glyphs = false,
|
||||||
|
window_background_opacity = 0.8,
|
||||||
|
window_padding = { left = 0, right = 0, top = 0, bottom = 0 },
|
||||||
|
}
|
||||||
|
|
||||||
|
for k, v in pairs(config) do
|
||||||
|
c[k] = v
|
||||||
|
end
|
||||||
|
|
||||||
|
return c
|
64
homes/x86_64-linux/marshall@polaris-nix/default.nix
Normal file
64
homes/x86_64-linux/marshall@polaris-nix/default.nix
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with pkgs; {
|
||||||
|
imports = with inputs; [
|
||||||
|
catppuccin.homeManagerModules.catppuccin
|
||||||
|
nix-index-database.hmModules.nix-index
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs = {
|
||||||
|
config.allowUnfree = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
home = {
|
||||||
|
homeDirectory = "/home/marshall";
|
||||||
|
username = "marshall";
|
||||||
|
|
||||||
|
packages =
|
||||||
|
[
|
||||||
|
alejandra
|
||||||
|
bun
|
||||||
|
grc
|
||||||
|
macchina
|
||||||
|
wl-clipboard
|
||||||
|
xclip
|
||||||
|
zed-editor
|
||||||
|
]
|
||||||
|
++ (with inputs; [
|
||||||
|
nixvim.packages.${pkgs.system}.default
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
gpg.enable = true;
|
||||||
|
skim.enable = true;
|
||||||
|
tealdeer.enable = true;
|
||||||
|
wezterm.enable = lib.mkForce false;
|
||||||
|
|
||||||
|
atuin = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
inline_height = 20;
|
||||||
|
show_preview = true;
|
||||||
|
style = "compact";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
git = {
|
||||||
|
extraConfig.credential.helper = "libsecret";
|
||||||
|
signing.key = "91B1F40056A01DDF";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
cliphist.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.startServices = "sd-switch";
|
||||||
|
|
||||||
|
home.stateVersion = "23.11";
|
||||||
|
}
|
|
@ -1,464 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
palette = config.colorScheme.palette;
|
|
||||||
betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
|
|
||||||
in
|
|
||||||
with pkgs; {
|
|
||||||
home.packages = [
|
|
||||||
wl-clipboard-rs
|
|
||||||
];
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
rofi = {
|
|
||||||
enable = true;
|
|
||||||
catppuccin.enable = true;
|
|
||||||
package = pkgs.rofi-wayland;
|
|
||||||
|
|
||||||
extraConfig = {
|
|
||||||
modi = "run,drun,window";
|
|
||||||
icon-theme = "Oranchelo";
|
|
||||||
show-icons = true;
|
|
||||||
terminal = "wezterm";
|
|
||||||
drun-display-format = "{icon} {name}";
|
|
||||||
location = 0;
|
|
||||||
disable-history = false;
|
|
||||||
hide-scrollbar = true;
|
|
||||||
display-drun = " Apps ";
|
|
||||||
display-run = " Run ";
|
|
||||||
display-window = " Window";
|
|
||||||
display-Network = " Network";
|
|
||||||
sidebar-mode = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
theme = {
|
|
||||||
"*".font = "Maple Mono NF 14";
|
|
||||||
window.border-radius = 10;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
waybar = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.waybar;
|
|
||||||
settings = [
|
|
||||||
{
|
|
||||||
layer = "top";
|
|
||||||
position = "top";
|
|
||||||
|
|
||||||
modules-center = ["hyprland/workspaces"];
|
|
||||||
|
|
||||||
modules-left = [
|
|
||||||
"custom/startmenu"
|
|
||||||
"hyprland/window"
|
|
||||||
"pulseaudio"
|
|
||||||
"cpu"
|
|
||||||
"memory"
|
|
||||||
];
|
|
||||||
|
|
||||||
modules-right = [
|
|
||||||
"network"
|
|
||||||
"custom/notification"
|
|
||||||
"tray"
|
|
||||||
"clock"
|
|
||||||
];
|
|
||||||
|
|
||||||
"hyprland/workspaces" = {
|
|
||||||
format = "{name}";
|
|
||||||
format-icons = {
|
|
||||||
default = " ";
|
|
||||||
active = " ";
|
|
||||||
urgent = " ";
|
|
||||||
};
|
|
||||||
on-scroll-up = "hyprctl dispatch workspace e+1";
|
|
||||||
on-scroll-down = "hyprctl dispatch workspace e-1";
|
|
||||||
};
|
|
||||||
|
|
||||||
"clock" = {
|
|
||||||
format = " {:L%I:%M %p}";
|
|
||||||
tooltip = true;
|
|
||||||
tooltip-format = "<big>{:%A, %d.%B %Y }</big>\n<tt><small>{calendar}</small></tt>";
|
|
||||||
};
|
|
||||||
|
|
||||||
"hyprland/window" = {
|
|
||||||
max-length = 22;
|
|
||||||
separate-outputs = false;
|
|
||||||
rewrite = {
|
|
||||||
"" = "Desktop";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
"memory" = {
|
|
||||||
interval = 5;
|
|
||||||
format = " {}%";
|
|
||||||
tooltip = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"cpu" = {
|
|
||||||
interval = 5;
|
|
||||||
format = " {usage:2}%";
|
|
||||||
tooltip = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"disk" = {
|
|
||||||
format = " {free}";
|
|
||||||
tooltip = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
"network" = {
|
|
||||||
format-icons = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
format-ethernet = " {bandwidthDownOctets}";
|
|
||||||
format-wifi = "{icon} {essid}";
|
|
||||||
format-disconnected = "";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"tray" = {
|
|
||||||
spacing = 12;
|
|
||||||
};
|
|
||||||
|
|
||||||
"pulseaudio" = {
|
|
||||||
format = "{icon} {volume}% {format_source}";
|
|
||||||
format-bluetooth = "{volume}% {icon} {format_source}";
|
|
||||||
format-bluetooth-muted = " {icon} {format_source}";
|
|
||||||
format-muted = " {format_source}";
|
|
||||||
format-source = " {volume}%";
|
|
||||||
format-source-muted = "";
|
|
||||||
format-icons = {
|
|
||||||
headphone = "";
|
|
||||||
hands-free = "";
|
|
||||||
headset = "";
|
|
||||||
phone = "";
|
|
||||||
portable = "";
|
|
||||||
car = "";
|
|
||||||
default = [
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
};
|
|
||||||
on-click = "sleep 0.1 && pavucontrol";
|
|
||||||
};
|
|
||||||
|
|
||||||
"custom/startmenu" = {
|
|
||||||
tooltip = false;
|
|
||||||
format = " ";
|
|
||||||
on-click = "rofi -show drun";
|
|
||||||
};
|
|
||||||
|
|
||||||
"custom/notification" = {
|
|
||||||
tooltip = false;
|
|
||||||
format = "{icon} {}";
|
|
||||||
format-icons = {
|
|
||||||
notification = "<span foreground='red'><sup></sup></span>";
|
|
||||||
none = "";
|
|
||||||
dnd-notification = "<span foreground='red'><sup></sup></span>";
|
|
||||||
dnd-none = "";
|
|
||||||
inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
|
||||||
inhibited-none = "";
|
|
||||||
dnd-inhibited-notification = "<span foreground='red'><sup></sup></span>";
|
|
||||||
dnd-inhibited-none = "";
|
|
||||||
};
|
|
||||||
return-type = "json";
|
|
||||||
exec = "swaync-client -swb";
|
|
||||||
on-click = "swaync-client -t &";
|
|
||||||
escape = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
style = lib.concatStrings [
|
|
||||||
''
|
|
||||||
* {
|
|
||||||
border: none;
|
|
||||||
border-radius: 0px;
|
|
||||||
font-family: Maple Mono NF;
|
|
||||||
font-size: 16px;
|
|
||||||
min-height: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar {
|
|
||||||
background-color: #${palette.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces {
|
|
||||||
background: #${palette.base01};
|
|
||||||
border-radius: 16px;
|
|
||||||
color: #${palette.base00};
|
|
||||||
margin: 4px 4px;
|
|
||||||
padding: 8px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button {
|
|
||||||
animation: gradient_horizontal 15s ease infinite;
|
|
||||||
background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09});
|
|
||||||
background-size: 300% 300%;
|
|
||||||
border-radius: 16px;
|
|
||||||
color: #${palette.base00};
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 0px 3px;
|
|
||||||
opacity: 0.5;
|
|
||||||
padding: 0px 5px;
|
|
||||||
transition: ${betterTransition};
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.active {
|
|
||||||
animation: gradient_horizontal 15s ease infinite;
|
|
||||||
background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09});
|
|
||||||
background-size: 300% 300%;
|
|
||||||
border-radius: 16px;
|
|
||||||
color: #${palette.base00};
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 0px 3px;
|
|
||||||
min-width: 40px;
|
|
||||||
opacity: 1.0;
|
|
||||||
padding: 0px 5px;
|
|
||||||
transition: ${betterTransition};
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button:hover {
|
|
||||||
animation: gradient_horizontal 15s ease infinite;
|
|
||||||
background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09});
|
|
||||||
background-size: 300% 300%;
|
|
||||||
border-radius: 16px;
|
|
||||||
color: #${palette.base00};
|
|
||||||
font-weight: bold;
|
|
||||||
opacity: 0.8;
|
|
||||||
transition: ${betterTransition};
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes gradient_horizontal {
|
|
||||||
0% { background-position: 0% 50%; }
|
|
||||||
50% { background-position: 100% 50%; }
|
|
||||||
100% { background-position: 0% 50%; }
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes swiping {
|
|
||||||
0% { background-position: 0% 200%; }
|
|
||||||
100% { background-position: 200% 200%; }
|
|
||||||
}
|
|
||||||
|
|
||||||
tooltip {
|
|
||||||
background: #${palette.base00};
|
|
||||||
border: 1px solid #${palette.base0E};
|
|
||||||
border-radius: 12px;
|
|
||||||
}
|
|
||||||
|
|
||||||
tooltip label {
|
|
||||||
color: #${palette.base07};
|
|
||||||
}
|
|
||||||
|
|
||||||
#window, #pulseaudio, #cpu, #memory, #idle_inhibitor {
|
|
||||||
background: #${palette.base01};
|
|
||||||
border-radius: 24px 10px 24px 10px;
|
|
||||||
color: #${palette.base05};
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 4px 0px;
|
|
||||||
margin-left: 7px;
|
|
||||||
padding: 0px 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-startmenu {
|
|
||||||
background: #${palette.base01};
|
|
||||||
border-radius: 0px 0px 40px 0px;
|
|
||||||
color: #${palette.base0D};
|
|
||||||
font-size: 28px;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 30px 0px 15px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#network, #custom-notification, #tray {
|
|
||||||
background: #${palette.base01};
|
|
||||||
border-radius: 10px 24px 10px 24px;
|
|
||||||
color: #${palette.base05};
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 4px 0px;
|
|
||||||
margin-right: 7px;
|
|
||||||
padding: 0px 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
|
||||||
animation: gradient_horizontal 15s ease infinite;
|
|
||||||
background: linear-gradient(45deg, #${palette.base0C}, #${palette.base0F}, #${palette.base0B}, #${palette.base08});
|
|
||||||
background-size: 300% 300%;
|
|
||||||
border-radius: 0px 0px 0px 40px;
|
|
||||||
color: #${palette.base00};
|
|
||||||
font-weight: bold;
|
|
||||||
margin: 0px;
|
|
||||||
padding: 0px 15px 0px 30px;
|
|
||||||
}
|
|
||||||
''
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
udiskie.enable = true;
|
|
||||||
|
|
||||||
swaync = {
|
|
||||||
enable = true;
|
|
||||||
style = builtins.fetchurl {
|
|
||||||
url = "https://github.com/catppuccin/swaync/releases/download/v0.2.3/mocha.css";
|
|
||||||
sha256 = "1xr1wkg4zb467b35xhsfqiwhimfnn88i3ml5rf173rkm7fyby9qy";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
systemd.variables = ["--all"];
|
|
||||||
|
|
||||||
settings = let
|
|
||||||
mod = "SUPER";
|
|
||||||
modC = "SUPER CTRL";
|
|
||||||
modS = "SUPER SHIFT";
|
|
||||||
|
|
||||||
browser = "firefox-nightly";
|
|
||||||
colorPicker = "notify-send -i gtk-color-picker $(${hyprpicker}/bin/hyprpicker -a) 'Copied to clipboard.'";
|
|
||||||
fileManager = "nautilus";
|
|
||||||
launcher = "rofi -show drun";
|
|
||||||
terminal = "wezterm";
|
|
||||||
|
|
||||||
screenshot = mode: "${
|
|
||||||
hyprshot.overrideAttrs {
|
|
||||||
# Fixes cursors showing in region shots
|
|
||||||
src = pkgs.fetchFromGitHub {
|
|
||||||
owner = "BenCarmichael01";
|
|
||||||
repo = "Hyprshot";
|
|
||||||
rev = "84e2adcd5dd9060178d0d028ad032734797fba23";
|
|
||||||
hash = "sha256-XDKwBiUMWvxoWpkdJ0EK4kEqPSTZLcF6axHjom3c5Jk=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
}/bin/hyprshot --clipboard-only -m ${mode}";
|
|
||||||
in {
|
|
||||||
decoration.rounding = 10;
|
|
||||||
dwindle.preserve_split = true;
|
|
||||||
gestures.workspace_swipe = true;
|
|
||||||
input.touchpad.natural_scroll = true;
|
|
||||||
|
|
||||||
layerrule = [
|
|
||||||
"dimaround, rofi"
|
|
||||||
];
|
|
||||||
|
|
||||||
animations = {
|
|
||||||
enabled = true;
|
|
||||||
|
|
||||||
bezier = [
|
|
||||||
"overshot,0.7,0.6,0.1,1.1"
|
|
||||||
"bounce,1,1.6,0.1,0.85"
|
|
||||||
];
|
|
||||||
|
|
||||||
animation = [
|
|
||||||
"windows,1,5,bounce,popin"
|
|
||||||
"border,1,20,default"
|
|
||||||
"fade,1,5,default"
|
|
||||||
"workspaces,1,5,overshot,slide"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
general = {
|
|
||||||
border_size = 2;
|
|
||||||
gaps_in = 10;
|
|
||||||
resize_on_border = true;
|
|
||||||
|
|
||||||
"col.active_border" = "rgba(33ccffee) rgba(00ff99ee) 45deg";
|
|
||||||
"col.inactive_border" = "rgba(595959aa)";
|
|
||||||
};
|
|
||||||
|
|
||||||
exec-once = [
|
|
||||||
"waybar"
|
|
||||||
"${mpvpaper}/bin/mpvpaper -vp -o 'no-audio loop' DP-1 ${builtins.toString ./wall.mp4}"
|
|
||||||
"mullvad connect"
|
|
||||||
];
|
|
||||||
|
|
||||||
misc = {
|
|
||||||
force_default_wallpaper = 0;
|
|
||||||
disable_hyprland_logo = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
monitor = [
|
|
||||||
"eDP-1, disable"
|
|
||||||
"DP-1, 2560x1440@165, auto, auto"
|
|
||||||
];
|
|
||||||
|
|
||||||
env = [
|
|
||||||
# Nvidia stuff
|
|
||||||
"GBM_BACKEND, nvidia-drm"
|
|
||||||
"__GLX_VENDOR_LIBRARY_NAME, nvidia"
|
|
||||||
"LIBVA_DRIVER_NAME, nvidia"
|
|
||||||
"WLR_DRM_DEVICES, $HOME/.config/hypr/card"
|
|
||||||
|
|
||||||
# Cursors
|
|
||||||
"HYPRCURSOR_SIZE, 24"
|
|
||||||
"XCURSOR_SIZE, 24"
|
|
||||||
];
|
|
||||||
|
|
||||||
bindm = [
|
|
||||||
"${mod}, mouse:272, movewindow"
|
|
||||||
"${mod}, mouse:273, resizewindow"
|
|
||||||
];
|
|
||||||
|
|
||||||
bind =
|
|
||||||
[
|
|
||||||
# Apps
|
|
||||||
"${mod}, c, exec, ${colorPicker}"
|
|
||||||
"${mod}, w, exec, ${browser}"
|
|
||||||
"${mod}, e, exec, ${fileManager}"
|
|
||||||
"${mod}, r, exec, ${launcher}"
|
|
||||||
"${mod}, Return, exec, ${terminal}"
|
|
||||||
|
|
||||||
# Screenshots
|
|
||||||
"${modS}, s, exec, ${screenshot "window"}"
|
|
||||||
"${modC}, 3, exec, ${screenshot "output -c"}"
|
|
||||||
"${modC}, 4, exec, ${screenshot "region -C 0,0"}"
|
|
||||||
|
|
||||||
# Mouse controls
|
|
||||||
"${mod}, mouse_down, workspace, e-1"
|
|
||||||
"${mod}, mouse_up, workspace, e+1"
|
|
||||||
|
|
||||||
# Quitting
|
|
||||||
"${mod}, q, killactive"
|
|
||||||
"${modS}, q, exit"
|
|
||||||
|
|
||||||
# Toggles
|
|
||||||
"${mod}, j, togglesplit"
|
|
||||||
"${mod}, Space, togglefloating"
|
|
||||||
|
|
||||||
# Focus movements
|
|
||||||
"${mod}, h, movefocus, l"
|
|
||||||
"${mod}, j, movefocus, d"
|
|
||||||
"${mod}, k, movefocus, u"
|
|
||||||
"${mod}, l, movefocus, r"
|
|
||||||
|
|
||||||
# Window movements
|
|
||||||
"${modS}, h, movewindow, l"
|
|
||||||
"${modS}, j, movewindow, d"
|
|
||||||
"${modS}, k, movewindow, u"
|
|
||||||
"${modS}, l, movewindow, r"
|
|
||||||
]
|
|
||||||
++ (
|
|
||||||
builtins.concatLists (builtins.genList (
|
|
||||||
x: let
|
|
||||||
ws = let
|
|
||||||
c = (x + 1) / 10;
|
|
||||||
in
|
|
||||||
builtins.toString (x + 1 - (c * 10));
|
|
||||||
in [
|
|
||||||
# Workspaces
|
|
||||||
"${mod}, ${ws}, workspace, ${builtins.toString (x + 1)}"
|
|
||||||
"${modS}, ${ws}, movetoworkspace, ${builtins.toString (x + 1)}"
|
|
||||||
]
|
|
||||||
)
|
|
||||||
10)
|
|
||||||
);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,13 +1,19 @@
|
||||||
{...}: {
|
{lib, ...}: {
|
||||||
imports = [
|
imports = [
|
||||||
./fish.nix
|
./fish.nix
|
||||||
./git.nix
|
./git.nix
|
||||||
./wezterm.nix
|
|
||||||
./macchina.nix
|
./macchina.nix
|
||||||
./nushell
|
./wezterm.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
|
fd.enable = true;
|
||||||
|
git-cliff.enable = true;
|
||||||
|
jq.enable = true;
|
||||||
|
nix-index-database.comma.enable = true;
|
||||||
|
nix-index.enable = true;
|
||||||
|
ripgrep.enable = true;
|
||||||
|
|
||||||
atuin = {
|
atuin = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
@ -22,6 +28,31 @@
|
||||||
catppuccin.enable = true;
|
catppuccin.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
btop = {
|
||||||
|
enable = true;
|
||||||
|
catppuccin.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
eza = {
|
||||||
|
enable = true;
|
||||||
|
git = true;
|
||||||
|
icons = "always";
|
||||||
|
};
|
||||||
|
|
||||||
|
fzf = {
|
||||||
|
enable = true;
|
||||||
|
catppuccin.enable = true;
|
||||||
|
colors = with lib; {
|
||||||
|
bg = mkForce "-1";
|
||||||
|
"bg+" = mkForce "-1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
zoxide = {
|
zoxide = {
|
||||||
enable = true;
|
enable = true;
|
||||||
options = ["--cmd" "cd"];
|
options = ["--cmd" "cd"];
|
||||||
|
|
|
@ -2,6 +2,15 @@
|
||||||
with pkgs; {
|
with pkgs; {
|
||||||
programs = {
|
programs = {
|
||||||
fish = let
|
fish = let
|
||||||
|
mkFishPlugin = sources: {
|
||||||
|
inherit (sources) src;
|
||||||
|
name = sources.pname;
|
||||||
|
};
|
||||||
|
|
||||||
|
sources = import ../../../_sources/generated.nix {inherit (pkgs) fetchurl fetchFromGitHub;};
|
||||||
|
|
||||||
|
extraPlugins = lib.attrsets.mapAttrsToList (_: value: mkFishPlugin value) sources;
|
||||||
|
|
||||||
mkFishPlugins = names:
|
mkFishPlugins = names:
|
||||||
map (name: {
|
map (name: {
|
||||||
inherit name;
|
inherit name;
|
||||||
|
@ -12,54 +21,8 @@ with pkgs; {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
plugins =
|
plugins =
|
||||||
[
|
extraPlugins
|
||||||
{
|
++ (mkFishPlugins ["autopair" "bass" "colored-man-pages" "done" "fifc" "forgit" "grc"]);
|
||||||
name = "replay.fish";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "jorgebucaran";
|
|
||||||
repo = "replay.fish";
|
|
||||||
rev = "bd8e5b89ec78313538e747f0292fcaf631e87bd2";
|
|
||||||
hash = "sha256-bM6+oAd/HXaVgpJMut8bwqO54Le33hwO9qet9paK1kY=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "license";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "oh-my-fish";
|
|
||||||
repo = "plugin-license";
|
|
||||||
rev = "0155b16f102957ec0c734a90979245dc1073f979";
|
|
||||||
hash = "sha256-Bi9Q5rekZoyXYbRV+U4SmwCdqCl0pFupzm5si7SxFns=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "wttr";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "oh-my-fish";
|
|
||||||
repo = "plugin-wttr";
|
|
||||||
rev = "7500e382e6b29a463edc57598217ce0cfaf8c90c";
|
|
||||||
hash = "sha256-k3FrRPxKCiObO6HgtDx8ORbcLmfSYQsQeq5SAoNfZbE=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "gityaw";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "oh-my-fish";
|
|
||||||
repo = "plugin-gityaw";
|
|
||||||
rev = "59196560e0f4520db63fb8cab645510377bb8b13";
|
|
||||||
hash = "sha256-STXNxSsjSopB+lbB4hEYdhJifRfsImRwbZ1SxwEhkuM=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
name = "bang-bang";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "oh-my-fish";
|
|
||||||
repo = "plugin-bang-bang";
|
|
||||||
rev = "ec991b80ba7d4dda7a962167b036efc5c2d79419";
|
|
||||||
hash = "sha256-oPPCtFN2DPuM//c48SXb4TrFRjJtccg0YPXcAo0Lxq0=";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
]
|
|
||||||
++ (mkFishPlugins ["autopair" "bass" "colored-man-pages" "done" "fifc" "git-abbr" "forgit" "grc"]);
|
|
||||||
|
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
cat = "${bat}/bin/bat";
|
cat = "${bat}/bin/bat";
|
||||||
|
@ -72,6 +35,10 @@ with pkgs; {
|
||||||
function fish_greeting
|
function fish_greeting
|
||||||
macchina
|
macchina
|
||||||
end
|
end
|
||||||
|
|
||||||
|
bind --erase \ct
|
||||||
|
fish_add_path /opt/homebrew/bin
|
||||||
|
fish_add_path /Users/marshall/.nix-profile/bin
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -7,17 +7,13 @@ with pkgs; {
|
||||||
userName = "pupbrained";
|
userName = "pupbrained";
|
||||||
userEmail = "mars@pupbrained.xyz";
|
userEmail = "mars@pupbrained.xyz";
|
||||||
aliases.pushall = "!git remote | xargs -L1 git push";
|
aliases.pushall = "!git remote | xargs -L1 git push";
|
||||||
delta.enable = true;
|
delta.enable = false;
|
||||||
|
signing.signByDefault = true;
|
||||||
|
lfs.enable = true;
|
||||||
|
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
init.defaultBranch = "main";
|
init.defaultBranch = "main";
|
||||||
push.autoSetupRemote = true;
|
push.autoSetupRemote = true;
|
||||||
credential.helper = "libsecret";
|
|
||||||
};
|
|
||||||
|
|
||||||
signing = {
|
|
||||||
signByDefault = true;
|
|
||||||
key = "0FF5B8826803F895";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -8,47 +8,51 @@ with pkgs; {
|
||||||
interface = "wlp4s0";
|
interface = "wlp4s0";
|
||||||
|
|
||||||
show = [
|
show = [
|
||||||
"DesktopEnvironment"
|
|
||||||
"Distribution"
|
"Distribution"
|
||||||
"Kernel"
|
"Kernel"
|
||||||
"LocalIP"
|
"LocalIP"
|
||||||
"Memory"
|
"DesktopEnvironment"
|
||||||
"Packages"
|
|
||||||
"ProcessorLoad"
|
|
||||||
"Resolution"
|
|
||||||
"Shell"
|
|
||||||
"Terminal"
|
|
||||||
"Uptime"
|
|
||||||
"WindowManager"
|
"WindowManager"
|
||||||
|
"Packages"
|
||||||
|
"Resolution"
|
||||||
|
"Terminal"
|
||||||
|
"Shell"
|
||||||
|
"Uptime"
|
||||||
|
"ProcessorLoad"
|
||||||
|
"Memory"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
themes = {
|
themes = {
|
||||||
Mezora = {
|
Mezora = {
|
||||||
custom_ascii = {
|
custom_ascii =
|
||||||
path = writeText "nix_logo" ''
|
# I prefer to use the default icon on macOS
|
||||||
[38;2;69;71;90m▗▄▄▄ ▗▄▄▄▄ ▄▄▄▖[0m
|
if stdenv.isDarwin
|
||||||
[38;2;69;71;90m▜███▙ ▜███▙ ▟███▛[0m
|
then {}
|
||||||
[38;2;127;132;156m▜███▙ ▜███▙▟███▛[0m
|
else {
|
||||||
[38;2;127;132;156m▜███▙ ▜██████▛[0m
|
path = writeText "nix_logo" ''
|
||||||
[38;2;127;132;156m▟█████████████████▙ ▜████▛ ▟▙[0m
|
[38;2;69;71;90m▗▄▄▄ ▗▄▄▄▄ ▄▄▄▖[0m
|
||||||
▟███████████████████▙ ▜███▙ ▟██▙
|
[38;2;69;71;90m▜███▙ ▜███▙ ▟███▛[0m
|
||||||
▄▄▄▄▖ ▜███▙ ▟███▛
|
[38;2;127;132;156m▜███▙ ▜███▙▟███▛[0m
|
||||||
▟███▛ ▜██▛ ▟███▛
|
[38;2;127;132;156m▜███▙ ▜██████▛[0m
|
||||||
[32m▟███▛ ▜▛ ▟███▛[0m
|
[38;2;127;132;156m▟█████████████████▙ ▜████▛ ▟▙[0m
|
||||||
[32m▟███████████▛ ▟██████████▙[0m
|
▟███████████████████▙ ▜███▙ ▟██▙
|
||||||
[32m▜██████████▛ ▟███████████▛[0m
|
▄▄▄▄▖ ▜███▙ ▟███▛
|
||||||
[32m▟███▛ ▟▙ ▟███▛[0m
|
▟███▛ ▜██▛ ▟███▛
|
||||||
▟███▛ ▟██▙ ▟███▛
|
[32m▟███▛ ▜▛ ▟███▛[0m
|
||||||
▟███▛ ▜███▙ ▝▀▀▀▀
|
[32m▟███████████▛ ▟██████████▙[0m
|
||||||
▜██▛ ▜███▙ ▜██████████████████▛
|
[32m▜██████████▛ ▟███████████▛[0m
|
||||||
[38;2;127;132;156m▜▛ ▟████▙ ▜████████████████▛[0m
|
[32m▟███▛ ▟▙ ▟███▛[0m
|
||||||
[38;2;127;132;156m▟██████▙ ▜███▙[0m
|
▟███▛ ▟██▙ ▟███▛
|
||||||
[38;2;127;132;156m▟███▛▜███▙ ▜███▙[0m
|
▟███▛ ▜███▙ ▝▀▀▀▀
|
||||||
[38;2;69;71;90m▟███▛ ▜███▙ ▜███▙[0m
|
▜██▛ ▜███▙ ▜██████████████████▛
|
||||||
[38;2;69;71;90m▝▀▀▀ ▀▀▀▀▘ ▀▀▀▘[0m
|
[38;2;127;132;156m▜▛ ▟████▙ ▜████████████████▛[0m
|
||||||
'';
|
[38;2;127;132;156m▟██████▙ ▜███▙[0m
|
||||||
};
|
[38;2;127;132;156m▟███▛▜███▙ ▜███▙[0m
|
||||||
|
[38;2;69;71;90m▟███▛ ▜███▙ ▜███▙[0m
|
||||||
|
[38;2;69;71;90m▝▀▀▀ ▀▀▀▀▘ ▀▀▀▘[0m
|
||||||
|
'';
|
||||||
|
};
|
||||||
separator = "";
|
separator = "";
|
||||||
separator_color = "blue";
|
separator_color = "blue";
|
||||||
key_color = "blue";
|
key_color = "blue";
|
||||||
|
@ -56,14 +60,14 @@ with pkgs; {
|
||||||
palette = {
|
palette = {
|
||||||
type = "Dark";
|
type = "Dark";
|
||||||
visible = true;
|
visible = true;
|
||||||
glyph = " ⬤ ";
|
glyph = "⬤ ";
|
||||||
};
|
};
|
||||||
|
|
||||||
box = {
|
box = {
|
||||||
border = "rounded";
|
border = "rounded";
|
||||||
visible = true;
|
visible = true;
|
||||||
inner_margin = {
|
inner_margin = {
|
||||||
x = 0;
|
x = 1;
|
||||||
y = 1;
|
y = 1;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,113 +0,0 @@
|
||||||
const color_palette = {
|
|
||||||
rosewater: "#f5e0dc"
|
|
||||||
flamingo: "#f2cdcd"
|
|
||||||
pink: "#f5c2e7"
|
|
||||||
mauve: "#cba6f7"
|
|
||||||
red: "#f38ba8"
|
|
||||||
maroon: "#eba0ac"
|
|
||||||
peach: "#fab387"
|
|
||||||
yellow: "#f9e2af"
|
|
||||||
green: "#a6e3a1"
|
|
||||||
teal: "#94e2d5"
|
|
||||||
sky: "#89dceb"
|
|
||||||
sapphire: "#74c7ec"
|
|
||||||
blue: "#89b4fa"
|
|
||||||
lavender: "#b4befe"
|
|
||||||
text: "#cdd6f4"
|
|
||||||
subtext1: "#bac2de"
|
|
||||||
subtext0: "#a6adc8"
|
|
||||||
overlay2: "#9399b2"
|
|
||||||
overlay1: "#7f849c"
|
|
||||||
overlay0: "#6c7086"
|
|
||||||
surface2: "#585b70"
|
|
||||||
surface1: "#45475a"
|
|
||||||
surface0: "#313244"
|
|
||||||
base: "#1e1e2e"
|
|
||||||
mantle: "#181825"
|
|
||||||
crust: "#11111b"
|
|
||||||
}
|
|
||||||
|
|
||||||
$env.config.color_config = {
|
|
||||||
separator: $color_palette.overlay0
|
|
||||||
leading_trailing_space_bg: { attr: "n" }
|
|
||||||
header: { fg: $color_palette.blue attr: "b" }
|
|
||||||
empty: $color_palette.lavender
|
|
||||||
bool: $color_palette.lavender
|
|
||||||
int: $color_palette.peach
|
|
||||||
duration: $color_palette.text
|
|
||||||
filesize: {|e|
|
|
||||||
if $e < 1mb {
|
|
||||||
$color_palette.green
|
|
||||||
} else if $e < 100mb {
|
|
||||||
$color_palette.yellow
|
|
||||||
} else if $e < 500mb {
|
|
||||||
$color_palette.peach
|
|
||||||
} else if $e < 800mb {
|
|
||||||
$color_palette.maroon
|
|
||||||
} else if $e > 800mb {
|
|
||||||
$color_palette.red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
date: {|| (date now) - $in |
|
|
||||||
if $in < 1hr {
|
|
||||||
$color_palette.green
|
|
||||||
} else if $in < 1day {
|
|
||||||
$color_palette.yellow
|
|
||||||
} else if $in < 3day {
|
|
||||||
$color_palette.peach
|
|
||||||
} else if $in < 1wk {
|
|
||||||
$color_palette.maroon
|
|
||||||
} else if $in > 1wk {
|
|
||||||
$color_palette.red
|
|
||||||
}
|
|
||||||
}
|
|
||||||
range: $color_palette.text
|
|
||||||
float: $color_palette.text
|
|
||||||
string: $color_palette.text
|
|
||||||
nothing: $color_palette.text
|
|
||||||
binary: $color_palette.text
|
|
||||||
cellpath: $color_palette.text
|
|
||||||
row_index: { fg: $color_palette.mauve attr: "b" }
|
|
||||||
record: $color_palette.text
|
|
||||||
list: $color_palette.text
|
|
||||||
block: $color_palette.text
|
|
||||||
hints: $color_palette.overlay1
|
|
||||||
search_result: { fg: $color_palette.red bg: $color_palette.text }
|
|
||||||
|
|
||||||
shape_and: { fg: $color_palette.pink attr: "b" }
|
|
||||||
shape_binary: { fg: $color_palette.pink attr: "b" }
|
|
||||||
shape_block: { fg: $color_palette.blue attr: "b" }
|
|
||||||
shape_bool: $color_palette.teal
|
|
||||||
shape_custom: $color_palette.green
|
|
||||||
shape_datetime: { fg: $color_palette.teal attr: "b" }
|
|
||||||
shape_directory: $color_palette.teal
|
|
||||||
shape_external: $color_palette.teal
|
|
||||||
shape_externalarg: { fg: $color_palette.green attr: "b" }
|
|
||||||
shape_filepath: $color_palette.teal
|
|
||||||
shape_flag: { fg: $color_palette.blue attr: "b" }
|
|
||||||
shape_float: { fg: $color_palette.pink attr: "b" }
|
|
||||||
shape_garbage: { fg: $color_palette.text bg: $color_palette.red attr: "b" }
|
|
||||||
shape_globpattern: { fg: $color_palette.teal attr: "b" }
|
|
||||||
shape_int: { fg: $color_palette.pink attr: "b" }
|
|
||||||
shape_internalcall: { fg: $color_palette.teal attr: "b" }
|
|
||||||
shape_list: { fg: $color_palette.teal attr: "b" }
|
|
||||||
shape_literal: $color_palette.blue
|
|
||||||
shape_match_pattern: $color_palette.green
|
|
||||||
shape_matching_brackets: { attr: "u" }
|
|
||||||
shape_nothing: $color_palette.teal
|
|
||||||
shape_operator: $color_palette.peach
|
|
||||||
shape_or: { fg: $color_palette.pink attr: "b" }
|
|
||||||
shape_pipe: { fg: $color_palette.pink attr: "b" }
|
|
||||||
shape_range: { fg: $color_palette.peach attr: "b" }
|
|
||||||
shape_record: { fg: $color_palette.teal attr: "b" }
|
|
||||||
shape_redirection: { fg: $color_palette.pink attr: "b" }
|
|
||||||
shape_signature: { fg: $color_palette.green attr: "b" }
|
|
||||||
shape_string: $color_palette.green
|
|
||||||
shape_string_interpolation: { fg: $color_palette.teal attr: "b" }
|
|
||||||
shape_table: { fg: $color_palette.blue attr: "b" }
|
|
||||||
shape_variable: $color_palette.pink
|
|
||||||
|
|
||||||
background: $color_palette.base
|
|
||||||
foreground: $color_palette.text
|
|
||||||
cursor: $color_palette.blue
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{pkgs, ...}:
|
|
||||||
with pkgs; {
|
|
||||||
programs = {
|
|
||||||
carapace.enable = true;
|
|
||||||
|
|
||||||
nushell = {
|
|
||||||
enable = true;
|
|
||||||
configFile.source = ./config.nu;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,115 +1,3 @@
|
||||||
{...}: {
|
{...}: {
|
||||||
programs.wezterm = {
|
programs.wezterm.enable = true;
|
||||||
enable = true;
|
|
||||||
extraConfig = ''
|
|
||||||
local wezterm = require('wezterm')
|
|
||||||
local c = wezterm.config_builder()
|
|
||||||
|
|
||||||
local resize_amount = 3;
|
|
||||||
|
|
||||||
local wezmodeConfig = {
|
|
||||||
theme = {
|
|
||||||
textColor = "white",
|
|
||||||
hintColor = "#a6e3a1",
|
|
||||||
normalModeColor = "#cba6f7",
|
|
||||||
modeTextColor = "#11111b",
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
wezterm.plugin.require('https://github.com/nekowinston/wezterm-bar').apply_to_config(c, {
|
|
||||||
position = 'bottom',
|
|
||||||
max_width = 32,
|
|
||||||
dividers = 'slant_right',
|
|
||||||
indicator = {
|
|
||||||
leader = {
|
|
||||||
enabled = true,
|
|
||||||
off = ' ',
|
|
||||||
on = ' ',
|
|
||||||
},
|
|
||||||
mode = {
|
|
||||||
enabled = true,
|
|
||||||
names = {
|
|
||||||
resize_mode = 'RESIZE',
|
|
||||||
copy_mode = 'VISUAL',
|
|
||||||
search_mode = 'SEARCH',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
tabs = {
|
|
||||||
numerals = 'arabic',
|
|
||||||
pane_count = 'subscript',
|
|
||||||
brackets = {
|
|
||||||
active = { "", ':' },
|
|
||||||
inactive = { "", ':' },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
clock = {
|
|
||||||
enabled = true,
|
|
||||||
format = '%l:%M %p',
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
local act = wezterm.action
|
|
||||||
|
|
||||||
local keybinds = {
|
|
||||||
{
|
|
||||||
key = 'Enter',
|
|
||||||
mods = 'CTRL|SHIFT',
|
|
||||||
action = act.SplitHorizontal({ domain = 'CurrentPaneDomain' }),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key = 'h',
|
|
||||||
mods = 'ALT|SHIFT',
|
|
||||||
action = act.ActivatePaneDirection('Left'),
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key = 'l',
|
|
||||||
mods = 'ALT|SHIFT',
|
|
||||||
action = act.ActivatePaneDirection 'Right',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key = 'k',
|
|
||||||
mods = 'ALT|SHIFT',
|
|
||||||
action = act.ActivatePaneDirection 'Up',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key = 'j',
|
|
||||||
mods = 'ALT|SHIFT',
|
|
||||||
action = act.ActivatePaneDirection 'Down',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
key = 't',
|
|
||||||
mods = 'CTRL|SHIFT',
|
|
||||||
action = act.SpawnCommandInNewTab { cwd = wezterm.home_dir },
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
local config = {
|
|
||||||
initial_cols = 160,
|
|
||||||
adjust_window_size_when_changing_font_size = false,
|
|
||||||
color_scheme = 'Catppuccin Mocha',
|
|
||||||
cursor_blink_ease_in = 'Constant',
|
|
||||||
cursor_blink_ease_out = 'Constant',
|
|
||||||
cursor_blink_rate = 500,
|
|
||||||
default_cursor_style = 'BlinkingBar',
|
|
||||||
enable_kitty_graphics = true,
|
|
||||||
enable_scroll_bar = false,
|
|
||||||
enable_wayland = false,
|
|
||||||
font_size = 12,
|
|
||||||
font = wezterm.font('Maple Mono NF'),
|
|
||||||
keys = keybinds,
|
|
||||||
front_end = 'OpenGL',
|
|
||||||
underline_position = -4,
|
|
||||||
use_fancy_tab_bar = false,
|
|
||||||
window_background_opacity = 0.8,
|
|
||||||
window_padding = { left = 0, right = 0, top = 0, bottom = 0 },
|
|
||||||
}
|
|
||||||
|
|
||||||
for k, v in pairs(config) do
|
|
||||||
c[k] = v
|
|
||||||
end
|
|
||||||
|
|
||||||
return c
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
63
modules/home/vscode/default.nix
Normal file
63
modules/home/vscode/default.nix
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
programs.vscode = {
|
||||||
|
enable = true;
|
||||||
|
package =
|
||||||
|
if pkgs.hostPlatform.isDarwin
|
||||||
|
then pkgs.vscode
|
||||||
|
else pkgs.vscode.fhsWithPackages (ps: with ps; [rustup zlib openssl.dev pkg-config]);
|
||||||
|
|
||||||
|
extensions = with pkgs.vscode-extensions; [
|
||||||
|
bbenoist.nix
|
||||||
|
catppuccin.catppuccin-vsc
|
||||||
|
catppuccin.catppuccin-vsc-icons
|
||||||
|
llvm-vs-code-extensions.vscode-clangd
|
||||||
|
kamadorueda.alejandra
|
||||||
|
mkhl.direnv
|
||||||
|
usernamehw.errorlens
|
||||||
|
vadimcn.vscode-lldb
|
||||||
|
vscodevim.vim
|
||||||
|
];
|
||||||
|
|
||||||
|
userSettings = {
|
||||||
|
"files.autoSave" = "afterDelay";
|
||||||
|
|
||||||
|
"editor.fontFamily" = "Iosevka Comfy Motion";
|
||||||
|
"editor.fontLigatures" = true;
|
||||||
|
"editor.fontSize" =
|
||||||
|
if pkgs.hostPlatform.isDarwin
|
||||||
|
then 14
|
||||||
|
else 16;
|
||||||
|
"editor.formatOnSave" = true;
|
||||||
|
"editor.minimap.enabled" = false;
|
||||||
|
|
||||||
|
"git.autofetch" = true;
|
||||||
|
"git.confirmSync" = false;
|
||||||
|
"git.enableSmartCommit" = true;
|
||||||
|
|
||||||
|
"vim.camelCaseMotion.enable" = true;
|
||||||
|
"vim.smartRelativeLine" = false;
|
||||||
|
"vim.sneak" = true;
|
||||||
|
"vim.useSystemClipboard" = true;
|
||||||
|
"vim.normalModeKeyBindingsNonRecursive" = [
|
||||||
|
{
|
||||||
|
before = ["K"];
|
||||||
|
commands = ["editor.action.showHover"];
|
||||||
|
silent = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
"mesonbuild.downloadLanguageServer" = true;
|
||||||
|
|
||||||
|
"terminal.integrated.fontSize" =
|
||||||
|
if pkgs.hostPlatform.isDarwin
|
||||||
|
then 14
|
||||||
|
else 16;
|
||||||
|
|
||||||
|
"workbench.colorTheme" = "Catppuccin Mocha";
|
||||||
|
"workbench.iconTheme" = "catppuccin-mocha";
|
||||||
|
|
||||||
|
"window.menuBarVisibility" = "toggle";
|
||||||
|
"window.titleBarStyle" = "custom";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,110 +0,0 @@
|
||||||
{pkgs, ...}:
|
|
||||||
with pkgs; {
|
|
||||||
boot.binfmt.registrations.appimage = {
|
|
||||||
wrapInterpreterInShell = false;
|
|
||||||
interpreter = "${appimage-run}/bin/appimage-run";
|
|
||||||
recognitionType = "magic";
|
|
||||||
offset = 0;
|
|
||||||
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
|
|
||||||
magicOrExtension = ''\x7fELF....AI\x02'';
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.user.services.appimage-menu-updater = let
|
|
||||||
appimage-menu-update = writeShellScript "appimage-menu-updater.sh" ''
|
|
||||||
shopt -s nullglob
|
|
||||||
|
|
||||||
remove_old_files () {
|
|
||||||
for path in "$HOME"/.local/share/applications/appimage-menu-updater*; do
|
|
||||||
rm "$path"
|
|
||||||
done
|
|
||||||
for path in "$HOME"/.local/share/icons/hicolor/appimage-menu-updater*; do
|
|
||||||
rm "$path"
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
update_each () {
|
|
||||||
path="$1"
|
|
||||||
file="$2"
|
|
||||||
|
|
||||||
echo "found $file"
|
|
||||||
|
|
||||||
desktop_source=$(${p7zip.outPath}/bin/7z l -ba -slt "$path" | grep '\.desktop$' | head -n1 | sed --expression 's/Path = //')
|
|
||||||
desktop_target="$HOME/.local/share/applications/appimage-menu-updater-$file.desktop"
|
|
||||||
${p7zip.outPath}/bin/7z e "$path" "$desktop_source" -y -so > "$desktop_target"
|
|
||||||
sed -i "s@Exec=.*@Exec=${appimage-run.outPath}/bin/appimage-run $path@" "$desktop_target"
|
|
||||||
|
|
||||||
update_icon "$path" "$desktop_target"
|
|
||||||
}
|
|
||||||
|
|
||||||
update_icon () {
|
|
||||||
path="$1"
|
|
||||||
desktop_target="$2"
|
|
||||||
|
|
||||||
echo "updating icon"
|
|
||||||
|
|
||||||
icon_link_proto_source=$(grep Icon= "$desktop_target" | head -n1 | sed 's/Icon=//')
|
|
||||||
icon_link_source=$(${p7zip.outPath}/bin/7z l -ba -slt "$path" | grep -e "Path = $icon_link_proto_source.\(png\|svg\)" | head -n1 | sed 's/Path = //')
|
|
||||||
if [[ "$icon_link_source" ]]; then
|
|
||||||
tempdir=$(mktemp -d)
|
|
||||||
${p7zip.outPath}/bin/7z x "$path" "$icon_link_source" -o"$tempdir" >/dev/null
|
|
||||||
|
|
||||||
icon_temp_maybe_link=$(find "$tempdir"/* | head -n1)
|
|
||||||
if [[ -L "$icon_temp_maybe_link" ]]; then
|
|
||||||
icon_source=$(readlink "$icon_temp_maybe_link")
|
|
||||||
|
|
||||||
if [[ "$icon_source" ]]; then
|
|
||||||
${p7zip.outPath}/bin/7z x "$path" "$icon_source" -y -o"$tempdir"
|
|
||||||
if [[ -f "$tempdir/$icon_source" ]]; then
|
|
||||||
icon_temp_source=$tempdir/$icon_source
|
|
||||||
else
|
|
||||||
echo 'icon link target does not exists'
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo 'icon link is invalid'
|
|
||||||
fi
|
|
||||||
|
|
||||||
else
|
|
||||||
icon_temp_source=$icon_temp_maybe_link
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$icon_temp_source" ]]; then
|
|
||||||
icon_target="$HOME/.local/share/icons/hicolor/appimage-menu-updater-"$(basename "$icon_temp_source")
|
|
||||||
mv "$icon_temp_source" "$icon_target"
|
|
||||||
sed -i "s@Icon=.*@Icon=$icon_target@" "$desktop_target"
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -Rf "$tempdir"
|
|
||||||
else
|
|
||||||
echo 'icon file not found'
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
update () {
|
|
||||||
echo 'updating...'
|
|
||||||
|
|
||||||
remove_old_files
|
|
||||||
|
|
||||||
for path in "$HOME"/Applications/*.AppImage; do
|
|
||||||
update_each "$path" $(basename "$path")
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
mkdir -p "$HOME/Applications"
|
|
||||||
|
|
||||||
update
|
|
||||||
while ${inotify-tools.outPath}/bin/inotifywait -e modify,delete,moved_to,moved_from "$HOME"/Applications; do
|
|
||||||
update
|
|
||||||
done
|
|
||||||
'';
|
|
||||||
in {
|
|
||||||
enable = true;
|
|
||||||
description = "AppImage Menu Updater";
|
|
||||||
unitConfig = {
|
|
||||||
Type = "simple";
|
|
||||||
};
|
|
||||||
serviceConfig = {
|
|
||||||
ExecStart = "/bin/sh -c 'HOME=%h ${appimage-menu-update}'";
|
|
||||||
};
|
|
||||||
wantedBy = ["default.target"];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,3 +1,39 @@
|
||||||
[linux-wallpaperengine-latest]
|
[git-abbr]
|
||||||
src.git = "https://github.com/Almamu/linux-wallpaperengine"
|
src.git = "https://github.com/pupbrained/fish-git-abbr"
|
||||||
fetch.github = "Almamu/linux-wallpaperengine"
|
fetch.github = "pupbrained/fish-git-abbr"
|
||||||
|
|
||||||
|
[replay-fish]
|
||||||
|
src.git = "https://github.com/jorgebucaran/replay.fish"
|
||||||
|
fetch.github = "jorgebucaran/replay.fish"
|
||||||
|
|
||||||
|
[license]
|
||||||
|
src.git = "https://github.com/oh-my-fish/plugin-license"
|
||||||
|
fetch.github = "oh-my-fish/plugin-license"
|
||||||
|
|
||||||
|
[wttr]
|
||||||
|
src.git = "https://github.com/oh-my-fish/plugin-wttr"
|
||||||
|
fetch.github = "oh-my-fish/plugin-wttr"
|
||||||
|
|
||||||
|
[gityaw]
|
||||||
|
src.git = "https://github.com/oh-my-fish/plugin-gityaw"
|
||||||
|
fetch.github = "oh-my-fish/plugin-gityaw"
|
||||||
|
|
||||||
|
[bang-bang]
|
||||||
|
src.git = "https://github.com/oh-my-fish/plugin-bang-bang"
|
||||||
|
fetch.github = "oh-my-fish/plugin-bang-bang"
|
||||||
|
|
||||||
|
[fix-window-role]
|
||||||
|
src.manual = "latest"
|
||||||
|
fetch.url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-28/fix-window-role.patch"
|
||||||
|
|
||||||
|
[poll]
|
||||||
|
src.manual = "latest"
|
||||||
|
fetch.url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/poll.patch"
|
||||||
|
|
||||||
|
[round-undecorated-frame]
|
||||||
|
src.manual = "latest"
|
||||||
|
fetch.url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/round-undecorated-frame.patch"
|
||||||
|
|
||||||
|
[system-appearance]
|
||||||
|
src.manual = "latest"
|
||||||
|
fetch.url = "https://raw.githubusercontent.com/d12frosted/homebrew-emacs-plus/master/patches/emacs-30/system-appearance.patch"
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with pkgs;
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
pname = "lightly-boehs-qt6";
|
|
||||||
version = "v0.4.2";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "boehs";
|
|
||||||
repo = "Lightly";
|
|
||||||
rev = "00ca23447844114d41bfc0d37cf8823202c082e8";
|
|
||||||
sha256 = "sha256-NpgOcN9sDqgQMjqcfx92bfKohxaJpnwMgxb9MCu9uJM=";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = with kdePackages; [
|
|
||||||
kcmutils
|
|
||||||
kconfig
|
|
||||||
kdecoration
|
|
||||||
kirigami
|
|
||||||
kguiaddons
|
|
||||||
kcolorscheme
|
|
||||||
kcoreaddons
|
|
||||||
ki18n
|
|
||||||
kiconthemes
|
|
||||||
kwindowsystem
|
|
||||||
];
|
|
||||||
|
|
||||||
extraCmakeFlags = ["-DBUILD_TESTING=OFF"];
|
|
||||||
|
|
||||||
nativeBuildInputs = [
|
|
||||||
cmake
|
|
||||||
kdePackages.qttools
|
|
||||||
kdePackages.extra-cmake-modules
|
|
||||||
kdePackages.wrapQtAppsHook
|
|
||||||
];
|
|
||||||
patches = [./missing.patch];
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "A fork of the Lightly breeze theme style that aims to be visually modern and minimalistic";
|
|
||||||
mainProgram = "lightly-settings";
|
|
||||||
homepage = "https://github.com/boehs/Lightly";
|
|
||||||
license = licenses.gpl2Plus;
|
|
||||||
maintainers = [maintainers.hikari];
|
|
||||||
platforms = platforms.all;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,186 +0,0 @@
|
||||||
diff --git a/kdecoration/config/CMakeLists.txt b/kdecoration/config/CMakeLists.txt
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..e4b08f0a
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/kdecoration/config/CMakeLists.txt
|
|
||||||
@@ -0,0 +1,37 @@
|
|
||||||
+##### config classes ææææææ
|
|
||||||
+
|
|
||||||
+set(lightlydecoration_config_SRCS
|
|
||||||
+ ../lightlyexceptionlist.cpp
|
|
||||||
+ lightlyconfigwidget.cpp
|
|
||||||
+ lightlydetectwidget.cpp
|
|
||||||
+ lightlyexceptiondialog.cpp
|
|
||||||
+ lightlyexceptionlistwidget.cpp
|
|
||||||
+ lightlyexceptionmodel.cpp
|
|
||||||
+ lightlyitemmodel.cpp
|
|
||||||
+)
|
|
||||||
+ki18n_wrap_ui(lightlydecoration_config_SRCS
|
|
||||||
+ ui/lightlyconfigurationui.ui
|
|
||||||
+ ui/lightlydetectwidget.ui
|
|
||||||
+ ui/lightlyexceptiondialog.ui
|
|
||||||
+ ui/lightlyexceptionlistwidget.ui
|
|
||||||
+)
|
|
||||||
+
|
|
||||||
+kcoreaddons_add_plugin(kcm_lightlydecoration SOURCES kcm_lightlydecoration.cpp ${lightlydecoration_config_SRCS} INSTALL_NAMESPACE "${KDECORATION_KCM_PLUGIN_DIR}")
|
|
||||||
+kconfig_add_kcfg_files(kcm_lightlydecoration ../lightlysettings.kcfgc)
|
|
||||||
+target_include_directories(kcm_lightlydecoration PRIVATE ${CMAKE_SOURCE_DIR}/kdecoration ${CMAKE_BINARY_DIR}/kdecoration/)
|
|
||||||
+target_link_libraries(kcm_lightlydecoration
|
|
||||||
+ PUBLIC
|
|
||||||
+ Qt6::Core
|
|
||||||
+ Qt6::Gui
|
|
||||||
+ Qt6::DBus
|
|
||||||
+ KDecoration2::KDecoration
|
|
||||||
+ PRIVATE
|
|
||||||
+ KF6::CoreAddons
|
|
||||||
+ KF6::ConfigWidgets
|
|
||||||
+ KF6::GuiAddons
|
|
||||||
+ KF6::I18n
|
|
||||||
+ KF6::IconThemes
|
|
||||||
+ KF6::WindowSystem
|
|
||||||
+ KF6::KCMUtils
|
|
||||||
+)
|
|
||||||
+kcmutils_generate_desktop_file(kcm_lightlydecoration)
|
|
||||||
diff --git a/kdecoration/config/kcm_lightlydecoration.cpp b/kdecoration/config/kcm_lightlydecoration.cpp
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..de9ac802
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/kdecoration/config/kcm_lightlydecoration.cpp
|
|
||||||
@@ -0,0 +1,6 @@
|
|
||||||
+#include "lightlyconfigwidget.h"
|
|
||||||
+#include <KPluginFactory>
|
|
||||||
+
|
|
||||||
+K_PLUGIN_CLASS_WITH_JSON(Lightly::ConfigWidget, "kcm_lightlydecoration.json")
|
|
||||||
+
|
|
||||||
+#include "kcm_lightlydecoration.moc"
|
|
||||||
diff --git a/kdecoration/config/kcm_lightlydecoration.json b/kdecoration/config/kcm_lightlydecoration.json
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..d2013276
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/kdecoration/config/kcm_lightlydecoration.json
|
|
||||||
@@ -0,0 +1,60 @@
|
|
||||||
+{
|
|
||||||
+ "KPlugin": {
|
|
||||||
+ "Description": "Modify the appearance of window decorations",
|
|
||||||
+ "Description[ar]": "عدّل مظهر زخرفات النّوافذ",
|
|
||||||
+ "Description[az]": "Pəncərə tərtibatının görünüşünü dəyişdirin",
|
|
||||||
+ "Description[bg]": "Настройване на външния изглед на прозорците",
|
|
||||||
+ "Description[ca@valencia]": "Modifica l'aparença de les decoracions de les finestres",
|
|
||||||
+ "Description[ca]": "Modifica l'aparença de les decoracions de les finestres",
|
|
||||||
+ "Description[cs]": "Změnit vzhled dekorace oken",
|
|
||||||
+ "Description[da]": "Ændr vinduesdekorationers udseende",
|
|
||||||
+ "Description[de]": "Das Erscheinungsbild der Fensterdekoration ändern",
|
|
||||||
+ "Description[el]": "Τροποποίηση εμφάνισης της διακόσμησης παραθύρου",
|
|
||||||
+ "Description[en_GB]": "Modify the appearance of window decorations",
|
|
||||||
+ "Description[es]": "Modificar el aspecto de las decoraciones de las ventanas",
|
|
||||||
+ "Description[et]": "Akna dekoratsioonide välimuse muutmine",
|
|
||||||
+ "Description[eu]": "Aldatu leiho apainduren itxura",
|
|
||||||
+ "Description[fi]": "Muuta ikkunoiden kehysten ulkoasua",
|
|
||||||
+ "Description[fr]": "Modifier l'apparence des décorations des fenêtres",
|
|
||||||
+ "Description[gl]": "Modifica a aparencia da decoración da xanela",
|
|
||||||
+ "Description[he]": "התאם את מראה מסגרות החלונות",
|
|
||||||
+ "Description[hi]": "विंडो सजावटों की दिखावट को परिवर्तित करें",
|
|
||||||
+ "Description[hu]": "Az ablakdekorációk megjelenésének módosítása",
|
|
||||||
+ "Description[ia]": "Modifica le apparentia de decorationes de fenestra",
|
|
||||||
+ "Description[id]": "Memodifikasi penampilan dekorasi window",
|
|
||||||
+ "Description[it]": "Modifica l'aspetto delle decorazioni delle finestre",
|
|
||||||
+ "Description[ja]": "ウィンドウ装飾の外観を編集",
|
|
||||||
+ "Description[ko]": "창 장식의 모습을 수정합니다",
|
|
||||||
+ "Description[lt]": "Keisti lango dekoracijų išvaizdą",
|
|
||||||
+ "Description[nb]": "Endre utseende for vindusdekorasjoner",
|
|
||||||
+ "Description[nl]": "Wijzig het uiterlijk van vensterdecoraties",
|
|
||||||
+ "Description[nn]": "Endra utsjånad på vindaugspynt",
|
|
||||||
+ "Description[pa]": "ਵਿੰਡੋ ਸਜਾਵਟ ਦੀ ਦਿੱਖ ਨੂੰ ਸੋਧੋ",
|
|
||||||
+ "Description[pl]": "Zmień wygląd i wystrój okien",
|
|
||||||
+ "Description[pt]": "Modificar a aparência das decorações das janelas",
|
|
||||||
+ "Description[pt_BR]": "Modifica a aparência das decorações da janela",
|
|
||||||
+ "Description[ro]": "Modifică aspectul decorațiilor pentru ferestre",
|
|
||||||
+ "Description[ru]": "Настройка заголовков окон в стиле Breeze",
|
|
||||||
+ "Description[sk]": "Zmena vzhľadu dekorácie okien",
|
|
||||||
+ "Description[sl]": "Spremenite videz okrasitve oken",
|
|
||||||
+ "Description[sr@ijekavian]": "Измијените изглед декорација прозора",
|
|
||||||
+ "Description[sr@ijekavianlatin]": "Izmijenite izgled dekoracija prozora",
|
|
||||||
+ "Description[sr@latin]": "Izmenite izgled dekoracija prozora",
|
|
||||||
+ "Description[sr]": "Измените изглед декорација прозора",
|
|
||||||
+ "Description[sv]": "Ändra utseendet hos fönsterdekorationer",
|
|
||||||
+ "Description[tg]": "Тағйир додани ороиши намуди зоҳирии равзанаҳо",
|
|
||||||
+ "Description[tr]": "Pencere dekorasyonlarının görünümünü değiştir",
|
|
||||||
+ "Description[uk]": "Зміна вигляду декорацій вікон",
|
|
||||||
+ "Description[x-test]": "xxModify the appearance of window decorationsxx",
|
|
||||||
+ "Description[zh_CN]": "修改窗口装饰外观",
|
|
||||||
+ "Description[zh_TW]": "變更視窗裝飾外觀",
|
|
||||||
+ "Icon": "preferences-system-windows",
|
|
||||||
+ "Name": "Lightly: Window Decoration",
|
|
||||||
+ "ServiceTypes": [
|
|
||||||
+ "KCModule"
|
|
||||||
+ ]
|
|
||||||
+ },
|
|
||||||
+ "X-KDE-Keywords": "Lightly,decoration",
|
|
||||||
+ "X-KDE-ParentApp": "kcontrol",
|
|
||||||
+ "X-KDE-Weight": 50
|
|
||||||
+}
|
|
||||||
diff --git a/kstyle/config/lightlystyleconfig.json b/kstyle/config/lightlystyleconfig.json
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000..f4f58aeb
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/kstyle/config/lightlystyleconfig.json
|
|
||||||
@@ -0,0 +1,59 @@
|
|
||||||
+{
|
|
||||||
+ "KPlugin": {
|
|
||||||
+ "Description": "Modify the appearance of widgets",
|
|
||||||
+ "Description[ar]": "عدّل مظهر الودجات",
|
|
||||||
+ "Description[az]": "Vidjetin görünüşünü dəyişin",
|
|
||||||
+ "Description[bg]": "Настройване на външния изглед на приставките",
|
|
||||||
+ "Description[ca@valencia]": "Modifica l'aparença dels ginys",
|
|
||||||
+ "Description[ca]": "Modifica l'aparença dels ginys",
|
|
||||||
+ "Description[cs]": "Změnit vzhled widgetů",
|
|
||||||
+ "Description[da]": "Ændr kontrollers udseende",
|
|
||||||
+ "Description[de]": "Das Erscheinungsbild der Bedienelemente ändern",
|
|
||||||
+ "Description[el]": "Τροποποίηση εμφάνισης συστατικών",
|
|
||||||
+ "Description[en_GB]": "Modify the appearance of widgets",
|
|
||||||
+ "Description[es]": "Modificar el aspecto de los elementos gráficos",
|
|
||||||
+ "Description[et]": "Vidinate välimuse muutmine",
|
|
||||||
+ "Description[eu]": "Aldatu trepeten itxura",
|
|
||||||
+ "Description[fi]": "Muuta elementtien ulkoasua",
|
|
||||||
+ "Description[fr]": "Modifier l'apparence des composants graphiques",
|
|
||||||
+ "Description[gl]": "Modifica a aparencia dos trebellos",
|
|
||||||
+ "Description[he]": "התאם את המראה של היישומונים",
|
|
||||||
+ "Description[hi]": "विजेट की दिखावट को परिवर्तित करें",
|
|
||||||
+ "Description[hu]": "Az elemek megjelenésének módosítása",
|
|
||||||
+ "Description[ia]": "Modifica le apparentia de widgets",
|
|
||||||
+ "Description[id]": "Memodifikasi penampilan widget",
|
|
||||||
+ "Description[it]": "Modifica l'aspetto degli oggetti",
|
|
||||||
+ "Description[ja]": "ウィジェットの外観を編集",
|
|
||||||
+ "Description[ko]": "위젯의 모습을 수정합니다",
|
|
||||||
+ "Description[lt]": "Keisti valdiklių išvaizdą",
|
|
||||||
+ "Description[nb]": "Endre utseende for skjermelementer",
|
|
||||||
+ "Description[nl]": "Wijzig het uiterlijk van widgets",
|
|
||||||
+ "Description[nn]": "Endra utsjånaden på skjermkontrollar",
|
|
||||||
+ "Description[pl]": "Zmień wygląd interfejsu",
|
|
||||||
+ "Description[pt]": "Modificar a aparência dos elementos gráficos",
|
|
||||||
+ "Description[pt_BR]": "Modifica a aparência dos widgets",
|
|
||||||
+ "Description[ro]": "Modifică aspectul controalelor",
|
|
||||||
+ "Description[ru]": "Настройка элементов интерфейса в стиле Breeze",
|
|
||||||
+ "Description[sk]": "Zmena vzhľadu miniaplikácií",
|
|
||||||
+ "Description[sl]": "Spremenite videz gradnikov",
|
|
||||||
+ "Description[sr@ijekavian]": "Измијените изглед виџета̂",
|
|
||||||
+ "Description[sr@ijekavianlatin]": "Izmijenite izgled vidžetâ̂",
|
|
||||||
+ "Description[sr@latin]": "Izmenite izgled vidžetâ̂",
|
|
||||||
+ "Description[sr]": "Измените изглед виџета̂",
|
|
||||||
+ "Description[sv]": "Ändra utseende hos grafiska komponenter",
|
|
||||||
+ "Description[tg]": "Тағйир додани намуди зоҳирии виҷетҳо",
|
|
||||||
+ "Description[tr]": "Araç takımlarının görünümünü değiştir",
|
|
||||||
+ "Description[uk]": "Зміна вигляду віджетів",
|
|
||||||
+ "Description[x-test]": "xxModify the appearance of widgetsxx",
|
|
||||||
+ "Description[zh_CN]": "调整窗口部件外观",
|
|
||||||
+ "Description[zh_TW]": "變更元件外觀",
|
|
||||||
+ "Icon": "preferences-desktop-theme",
|
|
||||||
+ "Name": "Lightly: Widget Style",
|
|
||||||
+ "ServiceTypes": [
|
|
||||||
+ "KCModule"
|
|
||||||
+ ]
|
|
||||||
+ },
|
|
||||||
+ "X-KDE-Keywords": "lightly,widget,style",
|
|
||||||
+ "X-KDE-ParentApp": "kcontrol",
|
|
||||||
+ "X-KDE-Weight": 60
|
|
||||||
+}
|
|
7
secrets/mailer_passwd.age
Normal file
7
secrets/mailer_passwd.age
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 Rnre+g 2qc+9205o7uT68Fo6ZmJWdOC8TkIvfNVFiuEop4crH8
|
||||||
|
eCywuzUaNYQ6+23DBlnhK7FExAvFWDrjzcOi7sIMDzY
|
||||||
|
-> ssh-ed25519 TwwU0w fMO1xuxh/nEE2mhscChrxnz7ZKv7LJQgivORxH/QLSk
|
||||||
|
U4acV2ubZaVtpLceEjW3/J7q3YENNeD55vLsivCA/Pw
|
||||||
|
--- /4REYNdKs9m2g1OtlLcPDhOJFZs9atAP/fW6UyNeXa8
|
||||||
|
š0!<21>b(½}ׄ³õ½ÈGË$2…tðÂ!Äwþýr>Ý/þ]oŠÎ'ã<>TvPÁt¿@?Д<C390>ÌfUÁ©í‚0΋òæÍO½5
|
10
secrets/passwd.age
Normal file
10
secrets/passwd.age
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 Rnre+g OUN16bvLoM64rGq1M1TkQyRBOHygfDfhlQ5GS+8tZ1A
|
||||||
|
m3TVkE8x+XycNBUGMEPNO24kZT+vlCVCPM/IP44hTt8
|
||||||
|
-> ssh-ed25519 TwwU0w GA9PhE+RTCMGgV4UP/Km0ok8d6T/lEiqC2pRilhd+h8
|
||||||
|
uELdOpsKjQacjZooio7PMN/qjT5gHt+8ofaKNZNjJCo
|
||||||
|
--- S7SPN5ps/jdCjG+3c6aN6UgKC958ISDvJx7UjVDwrFQ
|
||||||
|
/Òä<C392>Ø÷;Ô@é¶Ã2ˆ‡¢öW/Œ){ä!1*ÎÂî»Ø 4¢ÓÕöÎZ`Êd‡*›t ;DÌ
|
||||||
|
xŸÒÊÞK%Ǫ‰r_ŒÓ]Oœ±¤¥Ä†=\N¹ô¬à’=â
|
||||||
|
…Ÿ·Öeüz
1y0ݿÓÒèoþpn’ÿ,˜cÒÔÑÀðµ
|
||||||
|
ò.
|
8
secrets/secrets.nix
Normal file
8
secrets/secrets.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
let
|
||||||
|
marshall = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL2vmQG3o3yMTXUbHYM7evCpUo/V+gK8Lofajt/hEjrB navis";
|
||||||
|
system = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJe8dn/plNp53zGSzHTZjjrQbo94WWMZf7508agyIwQQ agenix";
|
||||||
|
in {
|
||||||
|
"passwd.age".publicKeys = [marshall system];
|
||||||
|
"mailer_passwd.age".publicKeys = [marshall system];
|
||||||
|
"token.age".publicKeys = [marshall system];
|
||||||
|
}
|
BIN
secrets/token.age
Normal file
BIN
secrets/token.age
Normal file
Binary file not shown.
5
stylua.toml
Normal file
5
stylua.toml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
line_endings = "Unix"
|
||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 2
|
||||||
|
quote_style = "AutoPreferSingle"
|
||||||
|
call_parentheses = "Always"
|
159
systems/aarch64-darwin/canis/default.nix
Normal file
159
systems/aarch64-darwin/canis/default.nix
Normal file
|
@ -0,0 +1,159 @@
|
||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
environment.variables.FLAKE = "/Users/marshall/nix-config";
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; ([
|
||||||
|
font-awesome
|
||||||
|
inter
|
||||||
|
maple-mono
|
||||||
|
nerdfonts
|
||||||
|
]
|
||||||
|
++ (with iosevka-comfy; [
|
||||||
|
comfy
|
||||||
|
comfy-duo
|
||||||
|
comfy-fixed
|
||||||
|
comfy-motion
|
||||||
|
comfy-motion-duo
|
||||||
|
comfy-motion-fixed
|
||||||
|
comfy-wide
|
||||||
|
comfy-wide-duo
|
||||||
|
comfy-wide-fixed
|
||||||
|
comfy-wide-motion
|
||||||
|
comfy-wide-motion-duo
|
||||||
|
comfy-wide-motion-fixed
|
||||||
|
]));
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
computerName = "MacBook Air";
|
||||||
|
hostName = "canis";
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
gc = {
|
||||||
|
automatic = true;
|
||||||
|
interval.Day = 7;
|
||||||
|
};
|
||||||
|
|
||||||
|
daemonIOLowPriority = true;
|
||||||
|
daemonProcessType = "Adaptive";
|
||||||
|
distributedBuilds = true;
|
||||||
|
nixPath = ["nixpkgs=${inputs.nixpkgs}"];
|
||||||
|
registry = lib.mapAttrs (_: v: {flake = v;}) inputs;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
auto-optimise-store = true;
|
||||||
|
builders-use-substitutes = true;
|
||||||
|
extra-experimental-features = "nix-command flakes";
|
||||||
|
flake-registry = "/etc/nix/registry.json";
|
||||||
|
keep-derivations = true;
|
||||||
|
keep-outputs = true;
|
||||||
|
max-jobs = "auto";
|
||||||
|
warn-dirty = false;
|
||||||
|
extra-sandbox-paths = ["/nix/var/cache/ccache"];
|
||||||
|
|
||||||
|
substituters = [
|
||||||
|
"https://cache.nixos.org"
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
];
|
||||||
|
|
||||||
|
trusted-substituters = [
|
||||||
|
"cache.nixos.org"
|
||||||
|
"nix-community.cachix.org"
|
||||||
|
];
|
||||||
|
|
||||||
|
trusted-public-keys = [
|
||||||
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ="
|
||||||
|
];
|
||||||
|
|
||||||
|
trusted-users = ["marshall"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
fish.enable = true;
|
||||||
|
gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
security.pam.enableSudoTouchIdAuth = true;
|
||||||
|
|
||||||
|
services = {
|
||||||
|
nix-daemon.enable = true;
|
||||||
|
|
||||||
|
emacs = {
|
||||||
|
enable = true;
|
||||||
|
package = inputs.emacs.packages.${pkgs.system}.default;
|
||||||
|
};
|
||||||
|
|
||||||
|
skhd = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.skhd;
|
||||||
|
|
||||||
|
skhdConfig = ''
|
||||||
|
alt - return : open -na "WezTerm"
|
||||||
|
alt - w : open -a "Arc"
|
||||||
|
|
||||||
|
cmd - space : yabai -m window --toggle float
|
||||||
|
|
||||||
|
shift + cmd - q : yabai -m window --close
|
||||||
|
|
||||||
|
alt - h : yabai -m window --focus west
|
||||||
|
alt - j : yabai -m window --focus south
|
||||||
|
alt - k : yabai -m window --focus north
|
||||||
|
alt - l : yabai -m window --focus east
|
||||||
|
|
||||||
|
shift + cmd - h : yabai -m window --swap west
|
||||||
|
shift + cmd - j : yabai -m window --swap south
|
||||||
|
shift + cmd - k : yabai -m window --swap north
|
||||||
|
shift + cmd - l : yabai -m window --swap east
|
||||||
|
|
||||||
|
shift + cmd - 1 : yabai -m window --space 1
|
||||||
|
shift + cmd - 2 : yabai -m window --space 2
|
||||||
|
shift + cmd - 3 : yabai -m window --space 3
|
||||||
|
shift + cmd - 4 : yabai -m window --space 4
|
||||||
|
shift + cmd - 5 : yabai -m window --space 5
|
||||||
|
shift + cmd - 6 : yabai -m window --space 6
|
||||||
|
shift + cmd - 7 : yabai -m window --space 7
|
||||||
|
shift + cmd - 8 : yabai -m window --space 8
|
||||||
|
shift + cmd - 9 : yabai -m window --space 9
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.marshall = {
|
||||||
|
name = "marshall";
|
||||||
|
home = "/Users/marshall";
|
||||||
|
};
|
||||||
|
|
||||||
|
system = {
|
||||||
|
keyboard.enableKeyMapping = true;
|
||||||
|
stateVersion = 5;
|
||||||
|
|
||||||
|
defaults = {
|
||||||
|
NSGlobalDomain = {
|
||||||
|
KeyRepeat = 1;
|
||||||
|
NSAutomaticCapitalizationEnabled = false;
|
||||||
|
NSAutomaticSpellingCorrectionEnabled = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
dock = {
|
||||||
|
autohide = true;
|
||||||
|
autohide-delay = 1000.0;
|
||||||
|
expose-animation-duration = 0.0;
|
||||||
|
orientation = "bottom";
|
||||||
|
showhidden = true;
|
||||||
|
tilesize = 48;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -4,77 +4,164 @@
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}:
|
}: {
|
||||||
with lib // pkgs // inputs; {
|
facter.reportPath = ./facter.json;
|
||||||
imports = [
|
|
||||||
./hardware.nix
|
fileSystems = {
|
||||||
];
|
"/" = {
|
||||||
|
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = ["subvol=root"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/home" = {
|
||||||
|
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = ["subvol=home" "compress=zstd"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/nix" = {
|
||||||
|
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = ["subvol=nix" "compress=zstd" "noatime"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/persist" = {
|
||||||
|
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
||||||
|
neededForBoot = true;
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = ["subvol=persist" "compress=zstd"];
|
||||||
|
};
|
||||||
|
|
||||||
|
"/var/log" = {
|
||||||
|
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
||||||
|
fsType = "btrfs";
|
||||||
|
options = ["subvol=log" "compress=zstd" "noatime"];
|
||||||
|
neededForBoot = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/12CE-A600";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = ["fmask=0022" "dmask=0022"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
security = {
|
security = {
|
||||||
rtkit.enable = true;
|
rtkit.enable = true;
|
||||||
|
|
||||||
pam.loginLimits = [
|
pam = {
|
||||||
{
|
services.login.enableGnomeKeyring = true;
|
||||||
domain = "*";
|
|
||||||
item = "nofile";
|
|
||||||
type = "-";
|
|
||||||
value = "32768";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
domain = "*";
|
|
||||||
item = "memlock";
|
|
||||||
type = "-";
|
|
||||||
value = "32768";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
sudo.extraConfig = ''
|
loginLimits = [
|
||||||
Defaults lecture = never, pwfeedback
|
{
|
||||||
'';
|
domain = "*";
|
||||||
|
item = "nofile";
|
||||||
|
type = "-";
|
||||||
|
value = "32768";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
domain = "*";
|
||||||
|
item = "memlock";
|
||||||
|
type = "-";
|
||||||
|
value = "32768";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
sudo-rs = {
|
||||||
|
enable = true;
|
||||||
|
wheelNeedsPassword = false;
|
||||||
|
execWheelOnly = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
tpm2 = {
|
||||||
|
enable = true;
|
||||||
|
pkcs11.enable = true;
|
||||||
|
tctiEnvironment.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts = {
|
||||||
|
packages = with pkgs;
|
||||||
|
[
|
||||||
|
ibm-plex
|
||||||
|
nerdfonts
|
||||||
|
]
|
||||||
|
++ (with iosevka-comfy; [
|
||||||
|
comfy
|
||||||
|
comfy-duo
|
||||||
|
comfy-fixed
|
||||||
|
comfy-motion
|
||||||
|
comfy-motion-duo
|
||||||
|
comfy-motion-fixed
|
||||||
|
comfy-wide
|
||||||
|
comfy-wide-duo
|
||||||
|
comfy-wide-fixed
|
||||||
|
comfy-wide-motion
|
||||||
|
comfy-wide-motion-duo
|
||||||
|
comfy-wide-motion-fixed
|
||||||
|
]);
|
||||||
|
|
||||||
|
fontconfig = {
|
||||||
|
hinting.enable = true;
|
||||||
|
subpixel.lcdfilter = "none";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
console.catppuccin.enable = true;
|
console.catppuccin.enable = true;
|
||||||
|
|
||||||
systemd.user.extraConfig = let
|
systemd = {
|
||||||
path = lib.concatStringsSep ":" [
|
tpm2.enable = true;
|
||||||
"/run/wrappers/bin"
|
|
||||||
"/etc/profiles/per-user/%u/bin"
|
|
||||||
"/nix/var/nix/profiles/default/bin"
|
|
||||||
"/run/current-system/sw/bin"
|
|
||||||
];
|
|
||||||
in ''
|
|
||||||
DefaultEnvironment="PATH=${path}"
|
|
||||||
'';
|
|
||||||
|
|
||||||
age = {
|
network.networks = {
|
||||||
secrets.passwd.file = /etc/secrets/passwd.age;
|
"10-lan1" = {
|
||||||
identityPaths = ["/persist/root/.ssh/id_ed25519"];
|
DHCP = "yes";
|
||||||
};
|
matchConfig.MACAddress = "04:42:1a:02:fe:f5";
|
||||||
|
|
||||||
chaotic = {
|
dhcpV4Config.RouteMetric = 10;
|
||||||
scx = {
|
dhcpV6Config.RouteMetric = 10;
|
||||||
enable = true;
|
|
||||||
scheduler = "scx_rusty";
|
networkConfig = {
|
||||||
|
IPv6PrivacyExtensions = "yes";
|
||||||
|
MulticastDNS = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"10-wlan1" = {
|
||||||
|
DHCP = "yes";
|
||||||
|
matchConfig.MACAddress = "64:49:7d:c1:01:10";
|
||||||
|
|
||||||
|
dhcpV4Config.RouteMetric = 40;
|
||||||
|
dhcpV6Config.RouteMetric = 40;
|
||||||
|
|
||||||
|
networkConfig = {
|
||||||
|
IPv6PrivacyExtensions = "yes";
|
||||||
|
MulticastDNS = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
steam.extraCompatPackages = [
|
user.extraConfig = let
|
||||||
luxtorpeda
|
path = lib.concatStringsSep ":" [
|
||||||
proton-ge-custom
|
"/run/wrappers/bin"
|
||||||
];
|
"/etc/profiles/per-user/%u/bin"
|
||||||
|
"/nix/var/nix/profiles/default/bin"
|
||||||
|
"/run/current-system/sw/bin"
|
||||||
|
];
|
||||||
|
in ''
|
||||||
|
DefaultEnvironment="PATH=${path}"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
age = {
|
||||||
|
secrets.passwd.file = ../../../secrets/passwd.age;
|
||||||
|
identityPaths = ["/persist/root/.ssh/id_ed25519"];
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation = {
|
virtualisation = {
|
||||||
spiceUSBRedirection.enable = true;
|
spiceUSBRedirection.enable = true;
|
||||||
|
waydroid.enable = true;
|
||||||
libvirtd = {
|
|
||||||
enable = true;
|
|
||||||
qemu = {
|
|
||||||
package = qemu_kvm;
|
|
||||||
swtpm.enable = true;
|
|
||||||
ovmf.enable = true;
|
|
||||||
ovmf.packages = [OVMFFull.fd];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
podman = {
|
podman = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -85,18 +172,24 @@ with lib // pkgs // inputs; {
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
BROWSER = "firefox-nightly";
|
BROWSER = "zen";
|
||||||
EDITOR = "nvim";
|
|
||||||
TERMINAL = "wezterm";
|
|
||||||
DIRENV_WARN_TIMEOUT = "100s";
|
DIRENV_WARN_TIMEOUT = "100s";
|
||||||
|
EDITOR = "nvim";
|
||||||
|
NIXOS_OZONE_WL = 1;
|
||||||
|
TERMINAL = "wezterm";
|
||||||
};
|
};
|
||||||
|
|
||||||
systemPackages = [
|
systemPackages = with pkgs; [
|
||||||
agenix.packages.${system}.default
|
ddccontrol-db
|
||||||
gnome.nautilus
|
inputs.agenix.packages.${system}.default
|
||||||
internal.lightly-boehs-qt6
|
looking-glass-client
|
||||||
|
nautilus
|
||||||
|
qemu
|
||||||
snowfallorg.flake
|
snowfallorg.flake
|
||||||
sound-theme-freedesktop
|
sound-theme-freedesktop
|
||||||
|
uutils-coreutils-noprefix
|
||||||
|
virtio-win
|
||||||
|
(warp-terminal.override {waylandSupport = true;})
|
||||||
winetricks
|
winetricks
|
||||||
wineWowPackages.staging
|
wineWowPackages.staging
|
||||||
xclip
|
xclip
|
||||||
|
@ -106,12 +199,11 @@ with lib // pkgs // inputs; {
|
||||||
persistence."/persist" = {
|
persistence."/persist" = {
|
||||||
hideMounts = true;
|
hideMounts = true;
|
||||||
directories = [
|
directories = [
|
||||||
"/etc/NetworkManager"
|
|
||||||
"/etc/secrets"
|
|
||||||
"/etc/ssh"
|
"/etc/ssh"
|
||||||
"/etc/mullvad-vpn"
|
|
||||||
"/root/.ssh"
|
"/root/.ssh"
|
||||||
"/var/lib/bluetooth"
|
"/var/lib/bluetooth"
|
||||||
|
"/var/lib/iwd"
|
||||||
|
"/var/lib/libvirt"
|
||||||
"/var/lib/nixos"
|
"/var/lib/nixos"
|
||||||
"/var/lib/systemd/coredump"
|
"/var/lib/systemd/coredump"
|
||||||
];
|
];
|
||||||
|
@ -120,33 +212,79 @@ with lib // pkgs // inputs; {
|
||||||
};
|
};
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
blacklistedKernelModules = ["nouveau"];
|
blacklistedKernelModules = ["nouveau" "i915"];
|
||||||
kernelPackages = linuxPackages_cachyos;
|
kernelPackages = pkgs.linuxPackages_cachyos;
|
||||||
supportedFilesystems = ["btrfs" "ntfs"];
|
supportedFilesystems = ["btrfs" "ntfs"];
|
||||||
|
tmp.useTmpfs = true;
|
||||||
|
|
||||||
initrd.systemd = {
|
initrd = {
|
||||||
enable = true;
|
# Encrypted device
|
||||||
emergencyAccess = true; # No password needed because of LUKS
|
luks.devices."enc".device = "/dev/disk/by-uuid/9952fcd1-46eb-4c9c-ab7d-361d31fdb9a2";
|
||||||
};
|
|
||||||
|
|
||||||
plymouth = {
|
systemd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
catppuccin.enable = true;
|
emergencyAccess = true;
|
||||||
|
dbus.enable = true;
|
||||||
|
|
||||||
|
network = {
|
||||||
|
enable = true;
|
||||||
|
networks = {
|
||||||
|
inherit (config.systemd.network.networks) "10-lan1" "10-wlan1";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
initrdBin = with pkgs; [
|
||||||
|
iwd
|
||||||
|
nix
|
||||||
|
vim
|
||||||
|
];
|
||||||
|
|
||||||
|
services.wipe-root = {
|
||||||
|
requires = ["dev-mapper-enc.device"];
|
||||||
|
after = ["dev-mapper-enc.device"];
|
||||||
|
wantedBy = ["initrd.target"];
|
||||||
|
script = lib.mkAfter ''
|
||||||
|
mkdir /btrfs_tmp
|
||||||
|
mount /dev/mapper/enc /btrfs_tmp
|
||||||
|
if [[ -e /btrfs_tmp/root ]]; then
|
||||||
|
mkdir -p /btrfs_tmp/old_roots
|
||||||
|
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
|
||||||
|
mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
delete_subvolume_recursively() {
|
||||||
|
IFS=$'\n'
|
||||||
|
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
||||||
|
delete_subvolume_recursively "/btrfs_tmp/$i"
|
||||||
|
done
|
||||||
|
btrfs subvolume delete "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
|
||||||
|
delete_subvolume_recursively "$i"
|
||||||
|
done
|
||||||
|
|
||||||
|
btrfs subvolume create /btrfs_tmp/root
|
||||||
|
umount /btrfs_tmp
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
extraModprobeConfig =
|
extraModprobeConfig =
|
||||||
"options nvidia "
|
"options nvidia "
|
||||||
+ concatStringsSep " " [
|
+ lib.concatStringsSep " " [
|
||||||
"NVreg_UsePageAttributeTable=1"
|
|
||||||
"NVreg_EnablePCIeGen3=1"
|
"NVreg_EnablePCIeGen3=1"
|
||||||
"NVreg_RegistryDwords=RMUseSwI2c=0x01;RMI2cSpeed=100"
|
"NVreg_RegistryDwords=RMUseSwI2c=0x01;RMI2cSpeed=100"
|
||||||
|
"NVreg_UsePageAttributeTable=1"
|
||||||
];
|
];
|
||||||
|
|
||||||
kernelParams = [
|
kernelParams = [
|
||||||
"intel_iommu=on"
|
"intel_iommu=on"
|
||||||
"iommu=pt"
|
"iommu=pt"
|
||||||
"kvm.ignore_msrs=1"
|
"kvm.ignore_msrs=1"
|
||||||
"modprobe.blacklist=nouveau"
|
"modprobe.blacklist=nouveau,i915"
|
||||||
|
"nvidia_drm.fbdev=1"
|
||||||
];
|
];
|
||||||
|
|
||||||
loader = {
|
loader = {
|
||||||
|
@ -159,17 +297,7 @@ with lib // pkgs // inputs; {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
nix = let
|
nix = {
|
||||||
mappedRegistry = pipe inputs [
|
|
||||||
(filterAttrs (_: isType "flake"))
|
|
||||||
(mapAttrs (_: flake: {inherit flake;}))
|
|
||||||
(x: x // {nixpkgs.flake = nixpkgs;})
|
|
||||||
];
|
|
||||||
in {
|
|
||||||
package = mkForce nixSuper;
|
|
||||||
registry = mappedRegistry // optionalAttrs (config.nix.package == nixSuper) {default = mappedRegistry.nixpkgs;};
|
|
||||||
nixPath = mapAttrsToList (key: _: "${key}=flake:${key}") config.nix.registry;
|
|
||||||
|
|
||||||
daemonCPUSchedPolicy = "batch";
|
daemonCPUSchedPolicy = "batch";
|
||||||
daemonIOSchedClass = "idle";
|
daemonIOSchedClass = "idle";
|
||||||
daemonIOSchedPriority = 7;
|
daemonIOSchedPriority = 7;
|
||||||
|
@ -194,7 +322,7 @@ with lib // pkgs // inputs; {
|
||||||
max-jobs = "auto";
|
max-jobs = "auto";
|
||||||
sandbox-fallback = false;
|
sandbox-fallback = false;
|
||||||
sandbox = true;
|
sandbox = true;
|
||||||
system-features = ["nixos-test" "kvm" "recursive-nix" "big-parallel"];
|
system-features = ["nixos-test" "kvm" "recursive-nix" "big-parallel" "gccarch-x86-64-v4"];
|
||||||
use-cgroups = true;
|
use-cgroups = true;
|
||||||
use-xdg-base-directories = true;
|
use-xdg-base-directories = true;
|
||||||
warn-dirty = false;
|
warn-dirty = false;
|
||||||
|
@ -205,8 +333,6 @@ with lib // pkgs // inputs; {
|
||||||
min-free = "${toString (5 * 1024 * 1024 * 1024)}";
|
min-free = "${toString (5 * 1024 * 1024 * 1024)}";
|
||||||
max-free = "${toString (10 * 1024 * 1024 * 1024)}";
|
max-free = "${toString (10 * 1024 * 1024 * 1024)}";
|
||||||
|
|
||||||
extra-sandbox-paths = [config.programs.ccache.cacheDir];
|
|
||||||
|
|
||||||
extra-experimental-features = [
|
extra-experimental-features = [
|
||||||
"flakes" # flakes
|
"flakes" # flakes
|
||||||
"nix-command" # experimental nix commands
|
"nix-command" # experimental nix commands
|
||||||
|
@ -217,28 +343,26 @@ with lib // pkgs // inputs; {
|
||||||
];
|
];
|
||||||
|
|
||||||
substituters = [
|
substituters = [
|
||||||
"https://cache.nixos.org"
|
"https://cache.nixos.org?priority=100"
|
||||||
"https://cache.privatevoid.net"
|
"https://cache.privatevoid.net"
|
||||||
|
"https://cosmic.cachix.org/"
|
||||||
"https://cuda-maintainers.cachix.org"
|
"https://cuda-maintainers.cachix.org"
|
||||||
"https://hyprland.cachix.org"
|
"https://hyprland.cachix.org"
|
||||||
"https://nix-community.cachix.org"
|
"https://nix-community.cachix.org"
|
||||||
"https://nyx.chaotic.cx/"
|
|
||||||
];
|
];
|
||||||
|
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||||
"cache.privatevoid.net:SErQ8bvNWANeAvtsOESUwVYr2VJynfuc9JRwlzTTkVg="
|
"cache.privatevoid.net:SErQ8bvNWANeAvtsOESUwVYr2VJynfuc9JRwlzTTkVg="
|
||||||
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
|
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
||||||
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
||||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
"nyx.chaotic.cx-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
ccache.enable = true;
|
|
||||||
dconf.enable = true;
|
dconf.enable = true;
|
||||||
fish.enable = true;
|
fish.enable = true;
|
||||||
gamemode.enable = true;
|
gamemode.enable = true;
|
||||||
|
@ -246,53 +370,59 @@ with lib // pkgs // inputs; {
|
||||||
gnupg.agent.enable = true;
|
gnupg.agent.enable = true;
|
||||||
virt-manager.enable = true;
|
virt-manager.enable = true;
|
||||||
|
|
||||||
hyprland = {
|
appimage = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
binfmt = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
hyprland = {
|
||||||
|
enable = false;
|
||||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
};
|
};
|
||||||
|
|
||||||
nh = {
|
nh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
clean.enable = true;
|
|
||||||
clean.extraArgs = "--keep-since 4d --keep 3";
|
|
||||||
flake = "/home/marshall/nix-config";
|
flake = "/home/marshall/nix-config";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
obs-studio = {
|
||||||
|
enable = true;
|
||||||
|
enableVirtualCamera = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
useDHCP = mkDefault true;
|
|
||||||
hostName = "navis";
|
|
||||||
firewall.enable = false;
|
firewall.enable = false;
|
||||||
|
networkmanager.enable = false;
|
||||||
|
hostName = "navis";
|
||||||
nameservers = ["1.1.1.1" "1.0.0.1"];
|
nameservers = ["1.1.1.1" "1.0.0.1"];
|
||||||
networkmanager.dns = "none";
|
useDHCP = lib.mkForce true;
|
||||||
networkmanager.enable = true;
|
useNetworkd = true;
|
||||||
|
wireless.iwd.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
time.timeZone = "America/New_York";
|
time = {
|
||||||
|
hardwareClockInLocalTime = true;
|
||||||
|
timeZone = "America/New_York";
|
||||||
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
btrfs.autoScrub.enable = true;
|
ddccontrol.enable = true;
|
||||||
flatpak.enable = true;
|
flatpak.enable = true;
|
||||||
getty.autologinUser = "marshall";
|
getty.autologinUser = "marshall";
|
||||||
gnome.gnome-keyring.enable = true;
|
gnome.gnome-keyring.enable = true;
|
||||||
mullvad-vpn.enable = true;
|
|
||||||
ollama.enable = true;
|
|
||||||
openssh.enable = true;
|
openssh.enable = true;
|
||||||
spice-vdagentd.enable = true;
|
spice-vdagentd.enable = true;
|
||||||
udisks2.enable = true;
|
udisks2.enable = true;
|
||||||
|
|
||||||
greetd = {
|
btrfs.autoScrub = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = rec {
|
fileSystems = ["/dev/mapper/enc"];
|
||||||
initial_session = {
|
|
||||||
command = "${pkgs.hyprland}/bin/Hyprland";
|
|
||||||
user = "marshall";
|
|
||||||
};
|
|
||||||
|
|
||||||
default_session = initial_session;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
displayManager.cosmic-greeter.enable = true;
|
||||||
|
desktopManager.cosmic.enable = true;
|
||||||
|
|
||||||
libinput = {
|
libinput = {
|
||||||
enable = true;
|
enable = true;
|
||||||
touchpad.naturalScrolling = true;
|
touchpad.naturalScrolling = true;
|
||||||
|
@ -301,13 +431,28 @@ with lib // pkgs // inputs; {
|
||||||
xserver = {
|
xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
videoDrivers = ["nvidia"];
|
videoDrivers = ["nvidia"];
|
||||||
|
|
||||||
|
displayManager.startx.enable = true;
|
||||||
|
|
||||||
|
windowManager.xmonad = {
|
||||||
|
enable = false;
|
||||||
|
enableContribAndExtras = true;
|
||||||
|
enableConfiguredRecompile = true;
|
||||||
|
flake = {
|
||||||
|
enable = true;
|
||||||
|
compiler = "ghc982";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
pipewire = {
|
pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
|
|
||||||
|
alsa = {
|
||||||
|
enable = true;
|
||||||
|
support32Bit = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -315,22 +460,36 @@ with lib // pkgs // inputs; {
|
||||||
mutableUsers = false;
|
mutableUsers = false;
|
||||||
|
|
||||||
users.marshall = {
|
users.marshall = {
|
||||||
isNormalUser = true;
|
|
||||||
extraGroups = ["wheel" "gamemode" "libvirtd" "networkmanager"];
|
|
||||||
shell = fish;
|
|
||||||
hashedPasswordFile = config.age.secrets.passwd.path;
|
hashedPasswordFile = config.age.secrets.passwd.path;
|
||||||
|
isNormalUser = true;
|
||||||
|
shell = pkgs.fish;
|
||||||
|
|
||||||
|
extraGroups = [
|
||||||
|
"disk"
|
||||||
|
"gamemode"
|
||||||
|
"libvirtd"
|
||||||
|
"qemu-libvirtd"
|
||||||
|
"tss"
|
||||||
|
"wheel"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
snowfallorg.users.marshall = {
|
||||||
|
create = true;
|
||||||
|
admin = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
|
||||||
hardware = {
|
hardware = {
|
||||||
bluetooth.enable = true;
|
bluetooth.enable = true;
|
||||||
i2c.enable = true;
|
i2c.enable = true;
|
||||||
|
|
||||||
opengl = {
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport = true;
|
enable32Bit = true;
|
||||||
driSupport32Bit = true;
|
extraPackages = with pkgs; [
|
||||||
extraPackages = [
|
|
||||||
vaapiVdpau
|
vaapiVdpau
|
||||||
nvidia-vaapi-driver
|
nvidia-vaapi-driver
|
||||||
];
|
];
|
||||||
|
@ -342,15 +501,24 @@ with lib // pkgs // inputs; {
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
powerManagement.enable = true;
|
powerManagement.enable = true;
|
||||||
|
open = false;
|
||||||
prime = {
|
|
||||||
sync.enable = true;
|
|
||||||
|
|
||||||
intelBusId = "PCI:0:2:0";
|
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
xdgOpenUsePortal = true;
|
||||||
|
|
||||||
|
config.common.default = [
|
||||||
|
"cosmic"
|
||||||
|
"gtk"
|
||||||
|
];
|
||||||
|
|
||||||
|
extraPortals = [
|
||||||
|
pkgs.xdg-desktop-portal-cosmic
|
||||||
|
pkgs.xdg-desktop-portal-gtk
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.05";
|
||||||
}
|
}
|
||||||
|
|
7106
systems/x86_64-linux/navis/facter.json
Normal file
7106
systems/x86_64-linux/navis/facter.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -1,96 +0,0 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
modulesPath,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod"];
|
|
||||||
boot.initrd.kernelModules = [];
|
|
||||||
boot.kernelModules = ["kvm-intel"];
|
|
||||||
boot.extraModulePackages = [];
|
|
||||||
boot.tmp.useTmpfs = true;
|
|
||||||
|
|
||||||
fileSystems."/" = {
|
|
||||||
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = ["subvol=root"];
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.initrd.systemd.services.wipe-root = {
|
|
||||||
requires = ["dev-mapper-enc.device"];
|
|
||||||
after = ["dev-mapper-enc.device"];
|
|
||||||
wantedBy = ["initrd.target"];
|
|
||||||
script = lib.mkAfter ''
|
|
||||||
mkdir /btrfs_tmp
|
|
||||||
mount /dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b /btrfs_tmp
|
|
||||||
if [[ -e /btrfs_tmp/root ]]; then
|
|
||||||
mkdir -p /btrfs_tmp/old_roots
|
|
||||||
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
|
|
||||||
mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
|
|
||||||
fi
|
|
||||||
|
|
||||||
delete_subvolume_recursively() {
|
|
||||||
IFS=$'\n'
|
|
||||||
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
|
||||||
delete_subvolume_recursively "/btrfs_tmp/$i"
|
|
||||||
done
|
|
||||||
btrfs subvolume delete "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
|
|
||||||
delete_subvolume_recursively "$i"
|
|
||||||
done
|
|
||||||
|
|
||||||
btrfs subvolume create /btrfs_tmp/root
|
|
||||||
umount /btrfs_tmp
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
boot.initrd.luks.devices."enc".device = "/dev/disk/by-uuid/9952fcd1-46eb-4c9c-ab7d-361d31fdb9a2";
|
|
||||||
|
|
||||||
fileSystems."/home" = {
|
|
||||||
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = ["subvol=home" "compress=zstd"];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/nix" = {
|
|
||||||
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = ["subvol=nix" "compress=zstd" "noatime"];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/persist" = {
|
|
||||||
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
|
||||||
neededForBoot = true;
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = ["subvol=persist" "compress=zstd"];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/var/log" = {
|
|
||||||
device = "/dev/disk/by-uuid/d375c3a3-63a3-47f8-8b77-58fabbb8f67b";
|
|
||||||
fsType = "btrfs";
|
|
||||||
options = ["subvol=log" "compress=zstd" "noatime"];
|
|
||||||
neededForBoot = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
|
||||||
device = "/dev/disk/by-uuid/12CE-A600";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = ["fmask=0022" "dmask=0022"];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [];
|
|
||||||
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
575
systems/x86_64-linux/polaris-nix/default.nix
Normal file
575
systems/x86_64-linux/polaris-nix/default.nix
Normal file
|
@ -0,0 +1,575 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
system,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
facter.reportPath = ./facter.json;
|
||||||
|
|
||||||
|
fileSystems = {
|
||||||
|
"/" = {
|
||||||
|
device = "/dev/disk/by-uuid/64079eb2-d3e3-47b7-a889-d5b2fee4fa82";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
"/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/BC12-6397";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [{device = "/dev/disk/by-uuid/d36507db-7392-4852-9b2a-12d2a476cd31";}];
|
||||||
|
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
system.stateVersion = "23.11";
|
||||||
|
time.timeZone = "America/New_York";
|
||||||
|
|
||||||
|
age = {
|
||||||
|
secrets.token.file = ../../../secrets/token.age;
|
||||||
|
secrets.mailer_passwd.file = ../../../secrets/mailer_passwd.age;
|
||||||
|
identityPaths = ["/root/.ssh/id_ed25519"];
|
||||||
|
};
|
||||||
|
|
||||||
|
nix = {
|
||||||
|
nixPath = ["nixpkgs=flake:nixpkgs"];
|
||||||
|
registry =
|
||||||
|
(lib.mapAttrs (_: flake: {inherit flake;}))
|
||||||
|
((lib.filterAttrs (_: lib.isType "flake")) inputs);
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
auto-optimise-store = true;
|
||||||
|
experimental-features = "nix-command flakes";
|
||||||
|
warn-dirty = false;
|
||||||
|
trusted-users = ["marshall"];
|
||||||
|
|
||||||
|
substituters = [
|
||||||
|
"https://cache.nixos.org"
|
||||||
|
"https://nix-community.cachix.org"
|
||||||
|
"https://nyx.chaotic.cx/"
|
||||||
|
"https://cuda-maintainers.cachix.org"
|
||||||
|
];
|
||||||
|
|
||||||
|
trusted-substituters = [
|
||||||
|
"cache.nixos.org"
|
||||||
|
"nix-community.cachix.org"
|
||||||
|
"nyx.chaotic.cx"
|
||||||
|
"cuda-maintainers.cachix.org"
|
||||||
|
];
|
||||||
|
|
||||||
|
trusted-public-keys = [
|
||||||
|
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||||
|
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||||
|
"nyx.chaotic.cx-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
|
||||||
|
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
|
||||||
|
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
||||||
|
"conduwuit:lYPVh7o1hLu1idH4Xt2QHaRa49WRGSAqzcfFd94aOTw="
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
localBinInPath = true;
|
||||||
|
|
||||||
|
sessionVariables.FLAKE = "/home/marshall/nix-config";
|
||||||
|
|
||||||
|
systemPackages = [
|
||||||
|
pkgs.miniupnpc
|
||||||
|
inputs.agenix.packages.${system}.default
|
||||||
|
pkgs.codeium
|
||||||
|
];
|
||||||
|
|
||||||
|
etc =
|
||||||
|
lib.mapAttrs'
|
||||||
|
(name: value: {
|
||||||
|
name = "nix/path/${name}";
|
||||||
|
value.source = value.flake;
|
||||||
|
})
|
||||||
|
config.nix.registry;
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.packages = with pkgs; [
|
||||||
|
inter
|
||||||
|
maple-mono-SC-NF
|
||||||
|
nerdfonts
|
||||||
|
];
|
||||||
|
|
||||||
|
boot = {
|
||||||
|
kernelPackages = pkgs.linuxPackages_xanmod_latest;
|
||||||
|
supportedFilesystems = ["ntfs"];
|
||||||
|
|
||||||
|
binfmt = {
|
||||||
|
emulatedSystems = ["aarch64-linux"];
|
||||||
|
|
||||||
|
registrations.appimage = {
|
||||||
|
wrapInterpreterInShell = false;
|
||||||
|
interpreter = "${pkgs.appimage-run}/bin/appimage-run";
|
||||||
|
recognitionType = "magic";
|
||||||
|
offset = 0;
|
||||||
|
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
|
||||||
|
magicOrExtension = ''\x7fELF....AI\x02'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
|
efi.canTouchEfiVariables = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
pulseaudio.enable = false;
|
||||||
|
|
||||||
|
bluetooth = {
|
||||||
|
enable = true;
|
||||||
|
powerOnBoot = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
opengl = {
|
||||||
|
enable = true;
|
||||||
|
driSupport32Bit = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
libGL
|
||||||
|
libGLU
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "polaris-nix";
|
||||||
|
networkmanager.enable = true;
|
||||||
|
firewall.enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
security = {
|
||||||
|
pam.services.gdm.enableGnomeKeyring = true;
|
||||||
|
rtkit.enable = true;
|
||||||
|
|
||||||
|
sudo.extraConfig = ''
|
||||||
|
Defaults lecture = never
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
fish.enable = true;
|
||||||
|
gnupg.agent.enable = true;
|
||||||
|
ssh.startAgent = true;
|
||||||
|
|
||||||
|
nix-ld = {
|
||||||
|
enable = true;
|
||||||
|
libraries = with pkgs; [
|
||||||
|
SDL
|
||||||
|
SDL2
|
||||||
|
SDL2_image
|
||||||
|
SDL2_mixer
|
||||||
|
SDL2_ttf
|
||||||
|
SDL_image
|
||||||
|
SDL_mixer
|
||||||
|
SDL_ttf
|
||||||
|
alsa-lib
|
||||||
|
at-spi2-atk
|
||||||
|
at-spi2-core
|
||||||
|
atk
|
||||||
|
bzip2
|
||||||
|
cairo
|
||||||
|
cups
|
||||||
|
curlWithGnuTls
|
||||||
|
dbus
|
||||||
|
dbus-glib
|
||||||
|
desktop-file-utils
|
||||||
|
e2fsprogs
|
||||||
|
expat
|
||||||
|
flac
|
||||||
|
fontconfig
|
||||||
|
freeglut
|
||||||
|
freetype
|
||||||
|
fribidi
|
||||||
|
fuse
|
||||||
|
fuse3
|
||||||
|
gdk-pixbuf
|
||||||
|
glew110
|
||||||
|
glib
|
||||||
|
gmp
|
||||||
|
gst_all_1.gst-plugins-base
|
||||||
|
gst_all_1.gst-plugins-ugly
|
||||||
|
gst_all_1.gstreamer
|
||||||
|
gtk2
|
||||||
|
harfbuzz
|
||||||
|
icu
|
||||||
|
keyutils.lib
|
||||||
|
libgcc
|
||||||
|
libGL
|
||||||
|
libGLU
|
||||||
|
libappindicator-gtk2
|
||||||
|
libcaca
|
||||||
|
libcanberra
|
||||||
|
libcap
|
||||||
|
libclang.lib
|
||||||
|
libdbusmenu
|
||||||
|
libdrm
|
||||||
|
libgcrypt
|
||||||
|
libgpg-error
|
||||||
|
libidn
|
||||||
|
libjack2
|
||||||
|
libjpeg
|
||||||
|
libmikmod
|
||||||
|
libogg
|
||||||
|
libpng12
|
||||||
|
libpulseaudio
|
||||||
|
librsvg
|
||||||
|
libsamplerate
|
||||||
|
libthai
|
||||||
|
libtheora
|
||||||
|
libtiff
|
||||||
|
libudev0-shim
|
||||||
|
libusb1
|
||||||
|
libuuid
|
||||||
|
libvdpau
|
||||||
|
libvorbis
|
||||||
|
libvpx
|
||||||
|
libxcrypt-legacy
|
||||||
|
libxkbcommon
|
||||||
|
libxml2
|
||||||
|
mesa
|
||||||
|
nspr
|
||||||
|
nss
|
||||||
|
openssl
|
||||||
|
p11-kit
|
||||||
|
pango
|
||||||
|
pixman
|
||||||
|
python3
|
||||||
|
speex
|
||||||
|
stdenv.cc.cc
|
||||||
|
tbb
|
||||||
|
udev
|
||||||
|
vulkan-loader
|
||||||
|
wayland
|
||||||
|
xorg.libICE
|
||||||
|
xorg.libSM
|
||||||
|
xorg.libX11
|
||||||
|
xorg.libXScrnSaver
|
||||||
|
xorg.libXcomposite
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXdamage
|
||||||
|
xorg.libXext
|
||||||
|
xorg.libXfixes
|
||||||
|
xorg.libXft
|
||||||
|
xorg.libXi
|
||||||
|
xorg.libXinerama
|
||||||
|
xorg.libXmu
|
||||||
|
xorg.libXrandr
|
||||||
|
xorg.libXrender
|
||||||
|
xorg.libXt
|
||||||
|
xorg.libXtst
|
||||||
|
xorg.libXxf86vm
|
||||||
|
xorg.libpciaccess
|
||||||
|
xorg.libxcb
|
||||||
|
xorg.xcbutil
|
||||||
|
xorg.xcbutilimage
|
||||||
|
xorg.xcbutilkeysyms
|
||||||
|
xorg.xcbutilrenderutil
|
||||||
|
xorg.xcbutilwm
|
||||||
|
xorg.xkeyboardconfig
|
||||||
|
xz
|
||||||
|
zlib
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
eternal-terminal.enable = true;
|
||||||
|
tailscale.enable = true;
|
||||||
|
xe-guest-utilities.enable = true;
|
||||||
|
|
||||||
|
code-server = {
|
||||||
|
enable = true;
|
||||||
|
disableTelemetry = true;
|
||||||
|
disableUpdateCheck = true;
|
||||||
|
disableWorkspaceTrust = true;
|
||||||
|
host = "0.0.0.0";
|
||||||
|
port = 8080;
|
||||||
|
hashedPassword = "$argon2i$v=19$m=16,t=2,p=1$alg3SXBFSkhzbDRhZXlCRw$2COxhvVifNMmIIozs14AkQ";
|
||||||
|
user = "marshall";
|
||||||
|
group = "users";
|
||||||
|
extraEnvironment = {
|
||||||
|
NIX_LD = lib.fileContents "${pkgs.stdenv.cc}/nix-support/dynamic-linker";
|
||||||
|
NIX_LD_LIBRARY_PATH = with pkgs;
|
||||||
|
lib.makeLibraryPath [
|
||||||
|
SDL
|
||||||
|
SDL2
|
||||||
|
SDL2_image
|
||||||
|
SDL2_mixer
|
||||||
|
SDL2_ttf
|
||||||
|
SDL_image
|
||||||
|
SDL_mixer
|
||||||
|
SDL_ttf
|
||||||
|
alsa-lib
|
||||||
|
at-spi2-atk
|
||||||
|
at-spi2-core
|
||||||
|
atk
|
||||||
|
bzip2
|
||||||
|
cairo
|
||||||
|
cups
|
||||||
|
curlWithGnuTls
|
||||||
|
dbus
|
||||||
|
dbus-glib
|
||||||
|
desktop-file-utils
|
||||||
|
e2fsprogs
|
||||||
|
expat
|
||||||
|
flac
|
||||||
|
fontconfig
|
||||||
|
freeglut
|
||||||
|
freetype
|
||||||
|
fribidi
|
||||||
|
fuse
|
||||||
|
fuse3
|
||||||
|
gdk-pixbuf
|
||||||
|
glew110
|
||||||
|
glib
|
||||||
|
gmp
|
||||||
|
gst_all_1.gst-plugins-base
|
||||||
|
gst_all_1.gst-plugins-ugly
|
||||||
|
gst_all_1.gstreamer
|
||||||
|
gtk2
|
||||||
|
harfbuzz
|
||||||
|
icu
|
||||||
|
keyutils.lib
|
||||||
|
libgcc
|
||||||
|
libGL
|
||||||
|
libGLU
|
||||||
|
libappindicator-gtk2
|
||||||
|
libcaca
|
||||||
|
libcanberra
|
||||||
|
libcap
|
||||||
|
libclang.lib
|
||||||
|
libdbusmenu
|
||||||
|
libdrm
|
||||||
|
libgcrypt
|
||||||
|
libgpg-error
|
||||||
|
libidn
|
||||||
|
libjack2
|
||||||
|
libjpeg
|
||||||
|
libmikmod
|
||||||
|
libogg
|
||||||
|
libpng12
|
||||||
|
libpulseaudio
|
||||||
|
librsvg
|
||||||
|
libsamplerate
|
||||||
|
libthai
|
||||||
|
libtheora
|
||||||
|
libtiff
|
||||||
|
libudev0-shim
|
||||||
|
libusb1
|
||||||
|
libuuid
|
||||||
|
libvdpau
|
||||||
|
libvorbis
|
||||||
|
libvpx
|
||||||
|
libxcrypt-legacy
|
||||||
|
libxkbcommon
|
||||||
|
libxml2
|
||||||
|
mesa
|
||||||
|
nspr
|
||||||
|
nss
|
||||||
|
openssl
|
||||||
|
p11-kit
|
||||||
|
pango
|
||||||
|
pixman
|
||||||
|
python3
|
||||||
|
speex
|
||||||
|
stdenv.cc.cc
|
||||||
|
tbb
|
||||||
|
udev
|
||||||
|
vulkan-loader
|
||||||
|
wayland
|
||||||
|
xorg.libICE
|
||||||
|
xorg.libSM
|
||||||
|
xorg.libX11
|
||||||
|
xorg.libXScrnSaver
|
||||||
|
xorg.libXcomposite
|
||||||
|
xorg.libXcursor
|
||||||
|
xorg.libXdamage
|
||||||
|
xorg.libXext
|
||||||
|
xorg.libXfixes
|
||||||
|
xorg.libXft
|
||||||
|
xorg.libXi
|
||||||
|
xorg.libXinerama
|
||||||
|
xorg.libXmu
|
||||||
|
xorg.libXrandr
|
||||||
|
xorg.libXrender
|
||||||
|
xorg.libXt
|
||||||
|
xorg.libXtst
|
||||||
|
xorg.libXxf86vm
|
||||||
|
xorg.libpciaccess
|
||||||
|
xorg.libxcb
|
||||||
|
xorg.xcbutil
|
||||||
|
xorg.xcbutilimage
|
||||||
|
xorg.xcbutilkeysyms
|
||||||
|
xorg.xcbutilrenderutil
|
||||||
|
xorg.xcbutilwm
|
||||||
|
xorg.xkeyboardconfig
|
||||||
|
xz
|
||||||
|
zlib
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
forgejo = let
|
||||||
|
forgejoDomain = "git.pupbrained.xyz";
|
||||||
|
in {
|
||||||
|
enable = true;
|
||||||
|
user = "git";
|
||||||
|
group = "git";
|
||||||
|
lfs.enable = true;
|
||||||
|
secrets.mailer.PASSWD = config.age.secrets.mailer_passwd.path;
|
||||||
|
settings = {
|
||||||
|
log.LEVEL = "Debug";
|
||||||
|
DEFAULT.APP_NAME = "MarGit";
|
||||||
|
|
||||||
|
actions = {
|
||||||
|
ENABLED = true;
|
||||||
|
DEFAULT_ACTIONS_URL = "github";
|
||||||
|
};
|
||||||
|
|
||||||
|
database = {
|
||||||
|
SQLITE_JOURNAL_MODE = "WAL";
|
||||||
|
LOG_SQL = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
federation.ENABLED = true;
|
||||||
|
|
||||||
|
mailer = {
|
||||||
|
ENABLED = true;
|
||||||
|
SMTP_ADDR = "email-smtp.us-east-2.amazonaws.com";
|
||||||
|
FROM = "noreply@git.pupbrained.xyz";
|
||||||
|
USER = "AKIAVIRH7PRQXI3FCBZ4";
|
||||||
|
SEND_AS_PLAIN_TEXT = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
metrics = {
|
||||||
|
ENABLED = true;
|
||||||
|
ENABLED_ISSUE_BY_REPOSITORY = true;
|
||||||
|
ENABLED_ISSUE_BY_LABEL = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
oauth2_client = {
|
||||||
|
ACCOUNT_LINKING = "login";
|
||||||
|
USERNAME = "nickname";
|
||||||
|
ENABLE_AUTO_REGISTRATION = false;
|
||||||
|
REGISTER_EMAIL_CONFIRM = false;
|
||||||
|
UPDATE_AVATAR = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
packages.ENABLED = true;
|
||||||
|
|
||||||
|
repository = {
|
||||||
|
DEFAULT_PRIVATE = "private";
|
||||||
|
ENABLE_PUSH_CREATE_USER = true;
|
||||||
|
ENABLE_PUSH_CREATE_ORG = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
server = {
|
||||||
|
HTTP_ADDR = "0.0.0.0";
|
||||||
|
HTTP_PORT = 6610;
|
||||||
|
DOMAIN = forgejoDomain;
|
||||||
|
ROOT_URL = "https://${forgejoDomain}/";
|
||||||
|
SSH_USER = "git";
|
||||||
|
SSH_DOMAIN = "ssh.pupbrained.xyz";
|
||||||
|
};
|
||||||
|
|
||||||
|
service = {
|
||||||
|
DISABLE_REGISTRATION = false;
|
||||||
|
SHOW_REGISTRATION_BUTTON = true;
|
||||||
|
REGISTER_EMAIL_CONFIRM = false;
|
||||||
|
ENABLE_NOTIFY_MAIL = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
session.COOKIE_SECURE = true;
|
||||||
|
|
||||||
|
ui = {
|
||||||
|
DEFAULT_THEME = "forgejo-auto";
|
||||||
|
};
|
||||||
|
|
||||||
|
"ui.meta".AUTHOR = "MarGit";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
matrix-conduit = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.conduwuit_git;
|
||||||
|
settings.global.database_backend = "rocksdb";
|
||||||
|
settings.global.allow_registration = true;
|
||||||
|
settings.global.address = "0.0.0.0";
|
||||||
|
settings.global.server_name = "pupbrained.xyz";
|
||||||
|
settings.global.registration_token = "blehh";
|
||||||
|
};
|
||||||
|
|
||||||
|
openssh = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
PermitRootLogin = "no";
|
||||||
|
PasswordAuthentication = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
|
||||||
|
alsa = {
|
||||||
|
enable = true;
|
||||||
|
support32Bit = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
xserver = {
|
||||||
|
enable = true;
|
||||||
|
displayManager.gdm.enable = true;
|
||||||
|
desktopManager.gnome.enable = true;
|
||||||
|
layout = "us";
|
||||||
|
xkbVariant = "";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.cloudflared = {
|
||||||
|
description = "Point traffic to tunnel subdomain";
|
||||||
|
wantedBy = ["default.target"];
|
||||||
|
serviceConfig = {
|
||||||
|
EnvironmentFile = config.age.secrets.token.path;
|
||||||
|
Type = "oneshot";
|
||||||
|
ExecStart = "${lib.getExe pkgs.cloudflared} tunnel --no-autoupdate run";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
users.users.marshall = {
|
||||||
|
isNormalUser = true;
|
||||||
|
shell = pkgs.fish;
|
||||||
|
extraGroups = ["wheel" "libvirtd" "kvm"];
|
||||||
|
};
|
||||||
|
|
||||||
|
users.groups.git = {};
|
||||||
|
|
||||||
|
users.users.git = {
|
||||||
|
isSystemUser = true;
|
||||||
|
useDefaultShell = true;
|
||||||
|
group = "git";
|
||||||
|
home = config.services.forgejo.stateDir;
|
||||||
|
};
|
||||||
|
|
||||||
|
i18n = {
|
||||||
|
defaultLocale = "en_US.UTF-8";
|
||||||
|
|
||||||
|
extraLocaleSettings = {
|
||||||
|
LC_ADDRESS = "en_US.UTF-8";
|
||||||
|
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||||
|
LC_MEASUREMENT = "en_US.UTF-8";
|
||||||
|
LC_MONETARY = "en_US.UTF-8";
|
||||||
|
LC_NAME = "en_US.UTF-8";
|
||||||
|
LC_NUMERIC = "en_US.UTF-8";
|
||||||
|
LC_PAPER = "en_US.UTF-8";
|
||||||
|
LC_TELEPHONE = "en_US.UTF-8";
|
||||||
|
LC_TIME = "en_US.UTF-8";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
2010
systems/x86_64-linux/polaris-nix/facter.json
Normal file
2010
systems/x86_64-linux/polaris-nix/facter.json
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue