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
|
||||
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
|
||||
|
||||
|
|
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -1,3 +1,5 @@
|
|||
.direnv/
|
||||
home.nix
|
||||
.DS_Store/
|
||||
.flake_in_nix_hash
|
||||
.luarc.json
|
||||
sys.nix
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
{
|
||||
"linux-wallpaperengine-latest": {
|
||||
"bang-bang": {
|
||||
"cargoLocks": null,
|
||||
"date": "2024-05-11",
|
||||
"date": "2023-07-23",
|
||||
"extract": null,
|
||||
"name": "linux-wallpaperengine-latest",
|
||||
"name": "bang-bang",
|
||||
"passthru": null,
|
||||
"pinned": false,
|
||||
"src": {
|
||||
|
@ -11,12 +11,172 @@
|
|||
"fetchSubmodules": false,
|
||||
"leaveDotGit": false,
|
||||
"name": null,
|
||||
"owner": "Almamu",
|
||||
"repo": "linux-wallpaperengine",
|
||||
"rev": "13cc080410444ea72cceebdd5ea0ae7c23dd2270",
|
||||
"sha256": "sha256-XdFU5BKZPyGpV0PYmmM12efMFimt3eJAsG+dzyycIzo=",
|
||||
"owner": "oh-my-fish",
|
||||
"repo": "plugin-bang-bang",
|
||||
"rev": "ec991b80ba7d4dda7a962167b036efc5c2d79419",
|
||||
"sha256": "sha256-oPPCtFN2DPuM//c48SXb4TrFRjJtccg0YPXcAo0Lxq0=",
|
||||
"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.
|
||||
{fetchFromGitHub}: {
|
||||
linux-wallpaperengine-latest = {
|
||||
pname = "linux-wallpaperengine-latest";
|
||||
version = "13cc080410444ea72cceebdd5ea0ae7c23dd2270";
|
||||
{
|
||||
fetchurl,
|
||||
fetchFromGitHub,
|
||||
}: {
|
||||
bang-bang = {
|
||||
pname = "bang-bang";
|
||||
version = "ec991b80ba7d4dda7a962167b036efc5c2d79419";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Almamu";
|
||||
repo = "linux-wallpaperengine";
|
||||
rev = "13cc080410444ea72cceebdd5ea0ae7c23dd2270";
|
||||
owner = "oh-my-fish";
|
||||
repo = "plugin-bang-bang";
|
||||
rev = "ec991b80ba7d4dda7a962167b036efc5c2d79419";
|
||||
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";
|
||||
};
|
||||
}
|
||||
|
|
111
flake.in.nix
111
flake.in.nix
|
@ -20,20 +20,24 @@
|
|||
type = "git";
|
||||
};
|
||||
in {
|
||||
determinate = mkInput "DeterminateSystems/determinate";
|
||||
agenix = mkInput "ryantm/agenix";
|
||||
catppuccin = mkInput "catppuccin/nix";
|
||||
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-plugins = mkFollowing "hyprwm/hyprland-plugins" "hyprland";
|
||||
impermanence = mkInput "nix-community/impermanence";
|
||||
nix-colors = mkInput "Misterio77/nix-colors";
|
||||
nixos-facter-modules = mkInput "numtide/nixos-facter-modules";
|
||||
nixpkgs = mkInput "NixOS/nixpkgs/nixos-unstable";
|
||||
nix-super = mkCustomUrl "git+https://git.privatevoid.net/max/nix-super.git";
|
||||
nixvim = mkInput "pupbrained/nixvim";
|
||||
schizofox = mkInput "schizofox/schizofox";
|
||||
sops-nix = mkInput "Mic92/sops-nix";
|
||||
nixvim = mkInput "pupbrained/nvim-config";
|
||||
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";
|
||||
nix-index-database = mkFollowingNixpkgs "nix-community/nix-index-database";
|
||||
snowfall-flake = mkFollowingNixpkgs "snowfallorg/flake";
|
||||
|
@ -41,62 +45,13 @@
|
|||
};
|
||||
|
||||
outputs = {...} @ inputs:
|
||||
with inputs; let
|
||||
pkgs = import nixpkgs {inherit system;};
|
||||
system = "x86_64-linux";
|
||||
in
|
||||
with inputs;
|
||||
snowfall-lib.mkFlake {
|
||||
inherit inputs;
|
||||
src = ./.;
|
||||
|
||||
formatter.${system} = treefmt-nix.lib.mkWrapper pkgs {
|
||||
projectRootFile = "flake.nix";
|
||||
programs = {
|
||||
alejandra.enable = true;
|
||||
deadnix.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
overlays = [
|
||||
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 = {
|
||||
|
@ -108,36 +63,56 @@
|
|||
home-manager.useGlobalPkgs = true;
|
||||
};
|
||||
|
||||
homes.modules = [
|
||||
catppuccin.homeManagerModules.catppuccin
|
||||
chaotic.homeManagerModules.default
|
||||
hyprland.homeManagerModules.default
|
||||
nix-colors.homeManagerModules.default
|
||||
nix-index-database.hmModules.nix-index
|
||||
schizofox.homeManagerModules.default
|
||||
];
|
||||
|
||||
systems.modules.nixos = [
|
||||
systems.modules.nixos =
|
||||
[
|
||||
agenix.nixosModules.default
|
||||
catppuccin.nixosModules.catppuccin
|
||||
chaotic.nixosModules.default
|
||||
cosmic.nixosModules.default
|
||||
determinate.nixosModules.default
|
||||
impermanence.nixosModules.impermanence
|
||||
nixos-facter-modules.nixosModules.facter
|
||||
]
|
||||
++ xmonad-contrib.nixosModules;
|
||||
|
||||
systems.modules.darwin = [
|
||||
"${home-manager}/nix-darwin"
|
||||
];
|
||||
|
||||
devShells.${system}.default = with pkgs;
|
||||
outputs-builder = channels: {
|
||||
formatter = treefmt-nix.lib.mkWrapper channels.nixpkgs {
|
||||
projectRootFile = "flake.nix";
|
||||
|
||||
programs = {
|
||||
alejandra.enable = true;
|
||||
deadnix.enable = true;
|
||||
jsonfmt.enable = true;
|
||||
stylua.enable = true;
|
||||
taplo.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
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 . -- --impure
|
||||
nh home switch
|
||||
nh os switch
|
||||
'')
|
||||
(writeScriptBin "up" "nix flake update")
|
||||
(writeScriptBin "up" "nix flake update && nvfetcher")
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
1945
flake.lock
1945
flake.lock
File diff suppressed because it is too large
Load diff
19
flake.nix
19
flake.nix
|
@ -1,10 +1,19 @@
|
|||
# Do not modify! This file is generated.
|
||||
|
||||
{
|
||||
inputs = {
|
||||
agenix.url = "github:ryantm/agenix";
|
||||
catppuccin.url = "github:catppuccin/nix";
|
||||
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";
|
||||
home-manager = {
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
|
@ -25,10 +34,9 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
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";
|
||||
nixvim.url = "github:pupbrained/nixvim";
|
||||
schizofox.url = "github:schizofox/schizofox";
|
||||
nixvim.url = "github:pupbrained/nvim-config";
|
||||
snowfall-flake = {
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:snowfallorg/flake";
|
||||
|
@ -37,8 +45,9 @@
|
|||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
url = "github:snowfallorg/lib/dev";
|
||||
};
|
||||
sops-nix.url = "github:Mic92/sops-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;
|
||||
}
|
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,
|
||||
...
|
||||
}: {
|
||||
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;
|
||||
|
||||
home = {
|
||||
packages = with pkgs;
|
||||
[
|
||||
alejandra
|
||||
beeper
|
||||
duf
|
||||
eternal-terminal
|
||||
((pkgs.emacsPackagesFor pkgs.emacs30-pgtk).emacsWithPackages (epkgs:
|
||||
builtins.attrValues {
|
||||
inherit (epkgs.treesit-grammars) with-all-grammars;
|
||||
}))
|
||||
emacs-lsp-booster
|
||||
equibop
|
||||
glow
|
||||
grc
|
||||
iamb
|
||||
jamesdsp
|
||||
jetbrains-toolbox
|
||||
jdk21
|
||||
killall
|
||||
libnotify
|
||||
lm_sensors
|
||||
loupe
|
||||
mpv
|
||||
mattermost-desktop
|
||||
neovide
|
||||
nodejs
|
||||
playerctl
|
||||
prismlauncher
|
||||
(python312.withPackages
|
||||
(p:
|
||||
with p; [
|
||||
epc
|
||||
orjson
|
||||
sexpdata
|
||||
six
|
||||
setuptools
|
||||
paramiko
|
||||
rapidfuzz
|
||||
]))
|
||||
slack
|
||||
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
|
||||
jetbrains.clion
|
||||
]
|
||||
++ (with jetbrains; [
|
||||
clion
|
||||
rust-rover
|
||||
phpstorm
|
||||
webstorm
|
||||
idea-ultimate
|
||||
])
|
||||
++ (with inputs; [
|
||||
nixvim.packages.${pkgs.system}.default
|
||||
])
|
||||
++ (with inputs.chaotic.packages.${pkgs.system}; [
|
||||
distrobox_git
|
||||
firefox_nightly
|
||||
zen-browser.packages.${pkgs.system}.specific
|
||||
chaotic.packages.${pkgs.system}.distrobox_git
|
||||
chaotic.packages.${pkgs.system}.zed-editor_git
|
||||
]);
|
||||
|
||||
pointerCursor = {
|
||||
gtk.enable = true;
|
||||
x11.enable = true;
|
||||
name = "Catppuccin-Mocha-Green-Cursors";
|
||||
package = pkgs.catppuccin-cursors.mochaGreen;
|
||||
size = 24;
|
||||
};
|
||||
|
||||
stateVersion = "24.05";
|
||||
};
|
||||
|
||||
|
@ -59,58 +111,121 @@
|
|||
enable = true;
|
||||
flavor = "mocha";
|
||||
accent = "green";
|
||||
pointerCursor.enable = true;
|
||||
};
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
gtk = let
|
||||
gradiencePreset = pkgs.fetchurl {
|
||||
url = "https://raw.githubusercontent.com/GradienceTeam/Community/next/official/catppuccin-macchiato.json";
|
||||
hash = "sha256-FgQvmK/Pjn980o+UVc2a70kGa6sGse045zPS9hzCs14=";
|
||||
};
|
||||
|
||||
catppuccin = {
|
||||
enable = true;
|
||||
icon.enable = true;
|
||||
cursor.enable = true;
|
||||
size = "standard";
|
||||
tweaks = ["rimless"];
|
||||
gradienceBuild = pkgs.stdenv.mkDerivation {
|
||||
name = "gradience-build";
|
||||
phases = ["buildPhase" "installPhase"];
|
||||
nativeBuildInputs = [pkgs.gradience];
|
||||
buildPhase = ''
|
||||
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 = {
|
||||
enable = true;
|
||||
platformTheme.name = "kvantum";
|
||||
style.name = "kvantum";
|
||||
style.catppuccin.enable = true;
|
||||
};
|
||||
|
||||
programs = {
|
||||
nix-index-database.comma.enable = true;
|
||||
nix-index.enable = true;
|
||||
ripgrep.enable = true;
|
||||
xmobar.enable = true;
|
||||
|
||||
fzf = {
|
||||
enable = true;
|
||||
catppuccin.enable = true;
|
||||
colors = with lib; {
|
||||
bg = mkForce "-1";
|
||||
"bg+" = mkForce "-1";
|
||||
};
|
||||
wezterm.extraConfig = builtins.readFile ./wezterm.lua;
|
||||
|
||||
git = {
|
||||
extraConfig.credential.helper = "libsecret";
|
||||
signing.key = "0FF5B8826803F895";
|
||||
};
|
||||
|
||||
eza = {
|
||||
enable = true;
|
||||
git = true;
|
||||
icons = true;
|
||||
};
|
||||
|
||||
btop = {
|
||||
mpv = {
|
||||
enable = true;
|
||||
scripts = [pkgs.mpvScripts.uosc];
|
||||
catppuccin.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
direnv = {
|
||||
services = {
|
||||
picom = {
|
||||
enable = true;
|
||||
nix-direnv.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;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dunst = {
|
||||
enable = true;
|
||||
settings.global = {
|
||||
corner_radius = 10;
|
||||
offset = "18x53";
|
||||
frame_width = 2;
|
||||
font = "SN Pro 12";
|
||||
frame_color = lib.mkForce "#a6e3a1";
|
||||
};
|
||||
catppuccin.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
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 = [
|
||||
./fish.nix
|
||||
./git.nix
|
||||
./wezterm.nix
|
||||
./macchina.nix
|
||||
./nushell
|
||||
./wezterm.nix
|
||||
];
|
||||
|
||||
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 = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
@ -22,6 +28,31 @@
|
|||
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 = {
|
||||
enable = true;
|
||||
options = ["--cmd" "cd"];
|
||||
|
|
|
@ -2,6 +2,15 @@
|
|||
with pkgs; {
|
||||
programs = {
|
||||
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:
|
||||
map (name: {
|
||||
inherit name;
|
||||
|
@ -12,54 +21,8 @@ with pkgs; {
|
|||
enable = true;
|
||||
|
||||
plugins =
|
||||
[
|
||||
{
|
||||
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"]);
|
||||
extraPlugins
|
||||
++ (mkFishPlugins ["autopair" "bass" "colored-man-pages" "done" "fifc" "forgit" "grc"]);
|
||||
|
||||
shellAliases = {
|
||||
cat = "${bat}/bin/bat";
|
||||
|
@ -72,6 +35,10 @@ with pkgs; {
|
|||
function fish_greeting
|
||||
macchina
|
||||
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";
|
||||
userEmail = "mars@pupbrained.xyz";
|
||||
aliases.pushall = "!git remote | xargs -L1 git push";
|
||||
delta.enable = true;
|
||||
delta.enable = false;
|
||||
signing.signByDefault = true;
|
||||
lfs.enable = true;
|
||||
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
push.autoSetupRemote = true;
|
||||
credential.helper = "libsecret";
|
||||
};
|
||||
|
||||
signing = {
|
||||
signByDefault = true;
|
||||
key = "0FF5B8826803F895";
|
||||
};
|
||||
};
|
||||
|
||||
|
|
|
@ -8,24 +8,28 @@ with pkgs; {
|
|||
interface = "wlp4s0";
|
||||
|
||||
show = [
|
||||
"DesktopEnvironment"
|
||||
"Distribution"
|
||||
"Kernel"
|
||||
"LocalIP"
|
||||
"Memory"
|
||||
"Packages"
|
||||
"ProcessorLoad"
|
||||
"Resolution"
|
||||
"Shell"
|
||||
"Terminal"
|
||||
"Uptime"
|
||||
"DesktopEnvironment"
|
||||
"WindowManager"
|
||||
"Packages"
|
||||
"Resolution"
|
||||
"Terminal"
|
||||
"Shell"
|
||||
"Uptime"
|
||||
"ProcessorLoad"
|
||||
"Memory"
|
||||
];
|
||||
};
|
||||
|
||||
themes = {
|
||||
Mezora = {
|
||||
custom_ascii = {
|
||||
custom_ascii =
|
||||
# I prefer to use the default icon on macOS
|
||||
if stdenv.isDarwin
|
||||
then {}
|
||||
else {
|
||||
path = writeText "nix_logo" ''
|
||||
[38;2;69;71;90m▗▄▄▄ ▗▄▄▄▄ ▄▄▄▖[0m
|
||||
[38;2;69;71;90m▜███▙ ▜███▙ ▟███▛[0m
|
||||
|
@ -56,14 +60,14 @@ with pkgs; {
|
|||
palette = {
|
||||
type = "Dark";
|
||||
visible = true;
|
||||
glyph = " ⬤ ";
|
||||
glyph = "⬤ ";
|
||||
};
|
||||
|
||||
box = {
|
||||
border = "rounded";
|
||||
visible = true;
|
||||
inner_margin = {
|
||||
x = 0;
|
||||
x = 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 = {
|
||||
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
|
||||
'';
|
||||
};
|
||||
programs.wezterm.enable = true;
|
||||
}
|
||||
|
|
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]
|
||||
src.git = "https://github.com/Almamu/linux-wallpaperengine"
|
||||
fetch.github = "Almamu/linux-wallpaperengine"
|
||||
[git-abbr]
|
||||
src.git = "https://github.com/pupbrained/fish-git-abbr"
|
||||
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,16 +4,56 @@
|
|||
inputs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib // pkgs // inputs; {
|
||||
imports = [
|
||||
./hardware.nix
|
||||
];
|
||||
}: {
|
||||
facter.reportPath = ./facter.json;
|
||||
|
||||
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 = {
|
||||
rtkit.enable = true;
|
||||
|
||||
pam.loginLimits = [
|
||||
pam = {
|
||||
services.login.enableGnomeKeyring = true;
|
||||
|
||||
loginLimits = [
|
||||
{
|
||||
domain = "*";
|
||||
item = "nofile";
|
||||
|
@ -27,15 +67,82 @@ with lib // pkgs // inputs; {
|
|||
value = "32768";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
sudo.extraConfig = ''
|
||||
Defaults lecture = never, pwfeedback
|
||||
'';
|
||||
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;
|
||||
|
||||
systemd.user.extraConfig = let
|
||||
systemd = {
|
||||
tpm2.enable = true;
|
||||
|
||||
network.networks = {
|
||||
"10-lan1" = {
|
||||
DHCP = "yes";
|
||||
matchConfig.MACAddress = "04:42:1a:02:fe:f5";
|
||||
|
||||
dhcpV4Config.RouteMetric = 10;
|
||||
dhcpV6Config.RouteMetric = 10;
|
||||
|
||||
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;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
user.extraConfig = let
|
||||
path = lib.concatStringsSep ":" [
|
||||
"/run/wrappers/bin"
|
||||
"/etc/profiles/per-user/%u/bin"
|
||||
|
@ -45,36 +152,16 @@ with lib // pkgs // inputs; {
|
|||
in ''
|
||||
DefaultEnvironment="PATH=${path}"
|
||||
'';
|
||||
};
|
||||
|
||||
age = {
|
||||
secrets.passwd.file = /etc/secrets/passwd.age;
|
||||
secrets.passwd.file = ../../../secrets/passwd.age;
|
||||
identityPaths = ["/persist/root/.ssh/id_ed25519"];
|
||||
};
|
||||
|
||||
chaotic = {
|
||||
scx = {
|
||||
enable = true;
|
||||
scheduler = "scx_rusty";
|
||||
};
|
||||
|
||||
steam.extraCompatPackages = [
|
||||
luxtorpeda
|
||||
proton-ge-custom
|
||||
];
|
||||
};
|
||||
|
||||
virtualisation = {
|
||||
spiceUSBRedirection.enable = true;
|
||||
|
||||
libvirtd = {
|
||||
enable = true;
|
||||
qemu = {
|
||||
package = qemu_kvm;
|
||||
swtpm.enable = true;
|
||||
ovmf.enable = true;
|
||||
ovmf.packages = [OVMFFull.fd];
|
||||
};
|
||||
};
|
||||
waydroid.enable = true;
|
||||
|
||||
podman = {
|
||||
enable = true;
|
||||
|
@ -85,18 +172,24 @@ with lib // pkgs // inputs; {
|
|||
|
||||
environment = {
|
||||
sessionVariables = {
|
||||
BROWSER = "firefox-nightly";
|
||||
EDITOR = "nvim";
|
||||
TERMINAL = "wezterm";
|
||||
BROWSER = "zen";
|
||||
DIRENV_WARN_TIMEOUT = "100s";
|
||||
EDITOR = "nvim";
|
||||
NIXOS_OZONE_WL = 1;
|
||||
TERMINAL = "wezterm";
|
||||
};
|
||||
|
||||
systemPackages = [
|
||||
agenix.packages.${system}.default
|
||||
gnome.nautilus
|
||||
internal.lightly-boehs-qt6
|
||||
systemPackages = with pkgs; [
|
||||
ddccontrol-db
|
||||
inputs.agenix.packages.${system}.default
|
||||
looking-glass-client
|
||||
nautilus
|
||||
qemu
|
||||
snowfallorg.flake
|
||||
sound-theme-freedesktop
|
||||
uutils-coreutils-noprefix
|
||||
virtio-win
|
||||
(warp-terminal.override {waylandSupport = true;})
|
||||
winetricks
|
||||
wineWowPackages.staging
|
||||
xclip
|
||||
|
@ -106,12 +199,11 @@ with lib // pkgs // inputs; {
|
|||
persistence."/persist" = {
|
||||
hideMounts = true;
|
||||
directories = [
|
||||
"/etc/NetworkManager"
|
||||
"/etc/secrets"
|
||||
"/etc/ssh"
|
||||
"/etc/mullvad-vpn"
|
||||
"/root/.ssh"
|
||||
"/var/lib/bluetooth"
|
||||
"/var/lib/iwd"
|
||||
"/var/lib/libvirt"
|
||||
"/var/lib/nixos"
|
||||
"/var/lib/systemd/coredump"
|
||||
];
|
||||
|
@ -120,33 +212,79 @@ with lib // pkgs // inputs; {
|
|||
};
|
||||
|
||||
boot = {
|
||||
blacklistedKernelModules = ["nouveau"];
|
||||
kernelPackages = linuxPackages_cachyos;
|
||||
blacklistedKernelModules = ["nouveau" "i915"];
|
||||
kernelPackages = pkgs.linuxPackages_cachyos;
|
||||
supportedFilesystems = ["btrfs" "ntfs"];
|
||||
tmp.useTmpfs = true;
|
||||
|
||||
initrd.systemd = {
|
||||
initrd = {
|
||||
# Encrypted device
|
||||
luks.devices."enc".device = "/dev/disk/by-uuid/9952fcd1-46eb-4c9c-ab7d-361d31fdb9a2";
|
||||
|
||||
systemd = {
|
||||
enable = true;
|
||||
emergencyAccess = true; # No password needed because of LUKS
|
||||
emergencyAccess = true;
|
||||
dbus.enable = true;
|
||||
|
||||
network = {
|
||||
enable = true;
|
||||
networks = {
|
||||
inherit (config.systemd.network.networks) "10-lan1" "10-wlan1";
|
||||
};
|
||||
};
|
||||
|
||||
plymouth = {
|
||||
enable = true;
|
||||
catppuccin.enable = true;
|
||||
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 =
|
||||
"options nvidia "
|
||||
+ concatStringsSep " " [
|
||||
"NVreg_UsePageAttributeTable=1"
|
||||
+ lib.concatStringsSep " " [
|
||||
"NVreg_EnablePCIeGen3=1"
|
||||
"NVreg_RegistryDwords=RMUseSwI2c=0x01;RMI2cSpeed=100"
|
||||
"NVreg_UsePageAttributeTable=1"
|
||||
];
|
||||
|
||||
kernelParams = [
|
||||
"intel_iommu=on"
|
||||
"iommu=pt"
|
||||
"kvm.ignore_msrs=1"
|
||||
"modprobe.blacklist=nouveau"
|
||||
"modprobe.blacklist=nouveau,i915"
|
||||
"nvidia_drm.fbdev=1"
|
||||
];
|
||||
|
||||
loader = {
|
||||
|
@ -159,17 +297,7 @@ with lib // pkgs // inputs; {
|
|||
};
|
||||
};
|
||||
|
||||
nix = let
|
||||
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;
|
||||
|
||||
nix = {
|
||||
daemonCPUSchedPolicy = "batch";
|
||||
daemonIOSchedClass = "idle";
|
||||
daemonIOSchedPriority = 7;
|
||||
|
@ -194,7 +322,7 @@ with lib // pkgs // inputs; {
|
|||
max-jobs = "auto";
|
||||
sandbox-fallback = false;
|
||||
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-xdg-base-directories = true;
|
||||
warn-dirty = false;
|
||||
|
@ -205,8 +333,6 @@ with lib // pkgs // inputs; {
|
|||
min-free = "${toString (5 * 1024 * 1024 * 1024)}";
|
||||
max-free = "${toString (10 * 1024 * 1024 * 1024)}";
|
||||
|
||||
extra-sandbox-paths = [config.programs.ccache.cacheDir];
|
||||
|
||||
extra-experimental-features = [
|
||||
"flakes" # flakes
|
||||
"nix-command" # experimental nix commands
|
||||
|
@ -217,28 +343,26 @@ with lib // pkgs // inputs; {
|
|||
];
|
||||
|
||||
substituters = [
|
||||
"https://cache.nixos.org"
|
||||
"https://cache.nixos.org?priority=100"
|
||||
"https://cache.privatevoid.net"
|
||||
"https://cosmic.cachix.org/"
|
||||
"https://cuda-maintainers.cachix.org"
|
||||
"https://hyprland.cachix.org"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://nyx.chaotic.cx/"
|
||||
];
|
||||
|
||||
trusted-public-keys = [
|
||||
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
|
||||
"cache.privatevoid.net:SErQ8bvNWANeAvtsOESUwVYr2VJynfuc9JRwlzTTkVg="
|
||||
"chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
|
||||
"cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE="
|
||||
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
||||
"hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
|
||||
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
|
||||
"nyx.chaotic.cx-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8="
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
ccache.enable = true;
|
||||
dconf.enable = true;
|
||||
fish.enable = true;
|
||||
gamemode.enable = true;
|
||||
|
@ -246,52 +370,58 @@ with lib // pkgs // inputs; {
|
|||
gnupg.agent.enable = true;
|
||||
virt-manager.enable = true;
|
||||
|
||||
hyprland = {
|
||||
appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
};
|
||||
|
||||
hyprland = {
|
||||
enable = false;
|
||||
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||
};
|
||||
|
||||
nh = {
|
||||
enable = true;
|
||||
clean.enable = true;
|
||||
clean.extraArgs = "--keep-since 4d --keep 3";
|
||||
flake = "/home/marshall/nix-config";
|
||||
};
|
||||
|
||||
obs-studio = {
|
||||
enable = true;
|
||||
enableVirtualCamera = true;
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
useDHCP = mkDefault true;
|
||||
hostName = "navis";
|
||||
firewall.enable = false;
|
||||
networkmanager.enable = false;
|
||||
hostName = "navis";
|
||||
nameservers = ["1.1.1.1" "1.0.0.1"];
|
||||
networkmanager.dns = "none";
|
||||
networkmanager.enable = true;
|
||||
useDHCP = lib.mkForce true;
|
||||
useNetworkd = true;
|
||||
wireless.iwd.enable = true;
|
||||
};
|
||||
|
||||
time.timeZone = "America/New_York";
|
||||
time = {
|
||||
hardwareClockInLocalTime = true;
|
||||
timeZone = "America/New_York";
|
||||
};
|
||||
|
||||
services = {
|
||||
btrfs.autoScrub.enable = true;
|
||||
ddccontrol.enable = true;
|
||||
flatpak.enable = true;
|
||||
getty.autologinUser = "marshall";
|
||||
gnome.gnome-keyring.enable = true;
|
||||
mullvad-vpn.enable = true;
|
||||
ollama.enable = true;
|
||||
openssh.enable = true;
|
||||
spice-vdagentd.enable = true;
|
||||
udisks2.enable = true;
|
||||
|
||||
greetd = {
|
||||
btrfs.autoScrub = {
|
||||
enable = true;
|
||||
settings = rec {
|
||||
initial_session = {
|
||||
command = "${pkgs.hyprland}/bin/Hyprland";
|
||||
user = "marshall";
|
||||
fileSystems = ["/dev/mapper/enc"];
|
||||
};
|
||||
|
||||
default_session = initial_session;
|
||||
};
|
||||
};
|
||||
displayManager.cosmic-greeter.enable = true;
|
||||
desktopManager.cosmic.enable = true;
|
||||
|
||||
libinput = {
|
||||
enable = true;
|
||||
|
@ -301,13 +431,28 @@ with lib // pkgs // inputs; {
|
|||
xserver = {
|
||||
enable = true;
|
||||
videoDrivers = ["nvidia"];
|
||||
|
||||
displayManager.startx.enable = true;
|
||||
|
||||
windowManager.xmonad = {
|
||||
enable = false;
|
||||
enableContribAndExtras = true;
|
||||
enableConfiguredRecompile = true;
|
||||
flake = {
|
||||
enable = true;
|
||||
compiler = "ghc982";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
|
||||
alsa = {
|
||||
enable = true;
|
||||
support32Bit = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -315,22 +460,36 @@ with lib // pkgs // inputs; {
|
|||
mutableUsers = false;
|
||||
|
||||
users.marshall = {
|
||||
isNormalUser = true;
|
||||
extraGroups = ["wheel" "gamemode" "libvirtd" "networkmanager"];
|
||||
shell = fish;
|
||||
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 = {
|
||||
bluetooth.enable = true;
|
||||
i2c.enable = true;
|
||||
|
||||
opengl = {
|
||||
graphics = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
extraPackages = [
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [
|
||||
vaapiVdpau
|
||||
nvidia-vaapi-driver
|
||||
];
|
||||
|
@ -342,14 +501,23 @@ with lib // pkgs // inputs; {
|
|||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = true;
|
||||
|
||||
prime = {
|
||||
sync.enable = true;
|
||||
|
||||
intelBusId = "PCI:0:2:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
open = false;
|
||||
};
|
||||
};
|
||||
|
||||
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";
|
||||
|
|
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