feat(*): new design gruvbox-dark/catppuccin-latte
This commit is contained in:
parent
b9119b20b1
commit
910e141268
213
flake.lock
213
flake.lock
|
@ -34,22 +34,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"base16-schemes": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1696158499,
|
|
||||||
"narHash": "sha256-5yIHgDTPjoX/3oDEfLSQ0eJZdFL1SaCfb9d6M0RmOTM=",
|
|
||||||
"owner": "tinted-theming",
|
|
||||||
"repo": "base16-schemes",
|
|
||||||
"rev": "a9112eaae86d9dd8ee6bb9445b664fba2f94037a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "tinted-theming",
|
|
||||||
"repo": "base16-schemes",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"crane": {
|
"crane": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -423,6 +407,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_6": {
|
"flake-compat_6": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696426674,
|
||||||
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_7": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1688025799,
|
"lastModified": 1688025799,
|
||||||
"narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=",
|
"narHash": "sha256-ktpB4dRtnksm9F5WawoIkEneh1nrEvuxb5lJFt1iOyw=",
|
||||||
|
@ -437,7 +437,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_7": {
|
"flake-compat_8": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696426674,
|
"lastModified": 1696426674,
|
||||||
|
@ -685,6 +685,24 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_4"
|
||||||
},
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1705309234,
|
||||||
|
"narHash": "sha256-uNRRNRKmJyCRC/8y1RqBkqWBLM034y4qN7EprSdmgyA=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "1ef2e671c3b0c19053962c07dbda38332dcebf26",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_7": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_5"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1710146030,
|
||||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
@ -699,9 +717,9 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_7": {
|
"flake-utils_8": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_5"
|
"systems": "systems_6"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1710146030,
|
||||||
|
@ -794,6 +812,28 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gitignore_3": {
|
"gitignore_3": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-wallpaper",
|
||||||
|
"pre-commit-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1703887061,
|
||||||
|
"narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore_4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"pre-commit-hooks-nix",
|
"pre-commit-hooks-nix",
|
||||||
|
@ -1054,8 +1094,8 @@
|
||||||
},
|
},
|
||||||
"lib-aggregate": {
|
"lib-aggregate": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_6",
|
"flake-utils": "flake-utils_7",
|
||||||
"nixpkgs-lib": "nixpkgs-lib_5"
|
"nixpkgs-lib": "nixpkgs-lib_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1711282133,
|
"lastModified": 1711282133,
|
||||||
|
@ -1168,25 +1208,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-colors": {
|
|
||||||
"inputs": {
|
|
||||||
"base16-schemes": "base16-schemes",
|
|
||||||
"nixpkgs-lib": "nixpkgs-lib_4"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1707825078,
|
|
||||||
"narHash": "sha256-hTfge2J2W+42SZ7VHXkf4kjU+qzFqPeC9k66jAUBMHk=",
|
|
||||||
"owner": "Misterio77",
|
|
||||||
"repo": "nix-colors",
|
|
||||||
"rev": "b01f024090d2c4fc3152cd0cf12027a7b8453ba1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Misterio77",
|
|
||||||
"repo": "nix-colors",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-eval-jobs": {
|
"nix-eval-jobs": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_6",
|
"flake-parts": "flake-parts_6",
|
||||||
|
@ -1284,6 +1305,28 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nix-wallpaper": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_6",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pre-commit-hooks": "pre-commit-hooks_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1708554876,
|
||||||
|
"narHash": "sha256-gaL/q2OtucwPrh/nVm1kvtLSvGdcem0E87WZ+rozBYc=",
|
||||||
|
"owner": "lunik1",
|
||||||
|
"repo": "nix-wallpaper",
|
||||||
|
"rev": "5058a76a9db42a7fdc05ce9cae0cc7c3c71acd22",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lunik1",
|
||||||
|
"repo": "nix-wallpaper",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1711274671,
|
"lastModified": 1711274671,
|
||||||
|
@ -1386,21 +1429,6 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-lib_4": {
|
"nixpkgs-lib_4": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1697935651,
|
|
||||||
"narHash": "sha256-qOfWjQ2JQSQL15KLh6D7xQhx0qgZlYZTYlcEiRuAMMw=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"rev": "e1e11fdbb01113d85c7f41cada9d2847660e3902",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nixpkgs.lib",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-lib_5": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1711241261,
|
"lastModified": 1711241261,
|
||||||
"narHash": "sha256-knrTvpl81yGFHIpm1SsLDApe0thFkw1cl3ISAMPmP/0=",
|
"narHash": "sha256-knrTvpl81yGFHIpm1SsLDApe0thFkw1cl3ISAMPmP/0=",
|
||||||
|
@ -1464,6 +1492,22 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_3": {
|
"nixpkgs-stable_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1704874635,
|
||||||
|
"narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "3dc440faeee9e889fe2d1b4d25ad0f430d449356",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-23.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710695816,
|
"lastModified": 1710695816,
|
||||||
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
|
"narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=",
|
||||||
|
@ -1479,7 +1523,7 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_4": {
|
"nixpkgs-stable_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1711233294,
|
"lastModified": 1711233294,
|
||||||
"narHash": "sha256-eEu5y4J145BYDw9o/YEmeJyqh8blgnZwuz9k234zuWc=",
|
"narHash": "sha256-eEu5y4J145BYDw9o/YEmeJyqh8blgnZwuz9k234zuWc=",
|
||||||
|
@ -1497,7 +1541,7 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-wayland": {
|
"nixpkgs-wayland": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_6",
|
"flake-compat": "flake-compat_7",
|
||||||
"lib-aggregate": "lib-aggregate",
|
"lib-aggregate": "lib-aggregate",
|
||||||
"nix-eval-jobs": "nix-eval-jobs",
|
"nix-eval-jobs": "nix-eval-jobs",
|
||||||
"nixpkgs": "nixpkgs_13"
|
"nixpkgs": "nixpkgs_13"
|
||||||
|
@ -1874,11 +1918,11 @@
|
||||||
},
|
},
|
||||||
"pre-commit-hooks-nix_3": {
|
"pre-commit-hooks-nix_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat_7",
|
"flake-compat": "flake-compat_8",
|
||||||
"flake-utils": "flake-utils_7",
|
"flake-utils": "flake-utils_8",
|
||||||
"gitignore": "gitignore_3",
|
"gitignore": "gitignore_4",
|
||||||
"nixpkgs": "nixpkgs_14",
|
"nixpkgs": "nixpkgs_14",
|
||||||
"nixpkgs-stable": "nixpkgs-stable_3"
|
"nixpkgs-stable": "nixpkgs-stable_4"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710923068,
|
"lastModified": 1710923068,
|
||||||
|
@ -1921,6 +1965,34 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"pre-commit-hooks_3": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_6",
|
||||||
|
"flake-utils": [
|
||||||
|
"nix-wallpaper",
|
||||||
|
"flake-utils"
|
||||||
|
],
|
||||||
|
"gitignore": "gitignore_3",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nix-wallpaper",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1708018599,
|
||||||
|
"narHash": "sha256-M+Ng6+SePmA8g06CmUZWi1AjG2tFBX9WCXElBHEKnyM=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"rev": "5df5a70ad7575f6601d91f0efec95dd9bc619431",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"pruned-racket-catalog": {
|
"pruned-racket-catalog": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
@ -1983,7 +2055,7 @@
|
||||||
"hyprland-contrib": "hyprland-contrib",
|
"hyprland-contrib": "hyprland-contrib",
|
||||||
"jovian-nixos": "jovian-nixos",
|
"jovian-nixos": "jovian-nixos",
|
||||||
"mensa": "mensa",
|
"mensa": "mensa",
|
||||||
"nix-colors": "nix-colors",
|
"nix-wallpaper": "nix-wallpaper",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_11",
|
"nixpkgs": "nixpkgs_11",
|
||||||
"nixpkgs-wayland": "nixpkgs-wayland",
|
"nixpkgs-wayland": "nixpkgs-wayland",
|
||||||
|
@ -1998,7 +2070,7 @@
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-stable": "nixpkgs-stable_4"
|
"nixpkgs-stable": "nixpkgs-stable_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1711249319,
|
"lastModified": 1711249319,
|
||||||
|
@ -2089,6 +2161,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_6": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"treefmt-nix": {
|
"treefmt-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_5"
|
"nixpkgs": "nixpkgs_5"
|
||||||
|
|
|
@ -10,8 +10,11 @@
|
||||||
nixpkgs.url = "nixpkgs/nixos-unstable";
|
nixpkgs.url = "nixpkgs/nixos-unstable";
|
||||||
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
nixos-hardware.url = "github:NixOS/nixos-hardware";
|
||||||
custom-udev-rules.url = "github:MalteT/custom-udev-rules";
|
custom-udev-rules.url = "github:MalteT/custom-udev-rules";
|
||||||
nix-colors.url = "github:Misterio77/nix-colors";
|
|
||||||
|
|
||||||
|
nix-wallpaper = {
|
||||||
|
url = "github:lunik1/nix-wallpaper";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
nixpkgs-wayland = {
|
nixpkgs-wayland = {
|
||||||
url = "github:nix-community/nixpkgs-wayland";
|
url = "github:nix-community/nixpkgs-wayland";
|
||||||
};
|
};
|
||||||
|
@ -71,6 +74,7 @@
|
||||||
# TODO: Remove once hydra fixes these removed aliases
|
# TODO: Remove once hydra fixes these removed aliases
|
||||||
inherit (super.perlPackages) buildPerlPackage;
|
inherit (super.perlPackages) buildPerlPackage;
|
||||||
netcat-openbsd = super.libressl.nc;
|
netcat-openbsd = super.libressl.nc;
|
||||||
|
nix-wallpaper = inputs.nix-wallpaper.packages.x86_64-linux.default;
|
||||||
})
|
})
|
||||||
(import ./overlays/qmk-udev-rules.nix)
|
(import ./overlays/qmk-udev-rules.nix)
|
||||||
];
|
];
|
||||||
|
@ -149,7 +153,6 @@
|
||||||
home-manager.verbose = true;
|
home-manager.verbose = true;
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = {inherit (inputs) nix-colors;};
|
|
||||||
};
|
};
|
||||||
nixUnstable = {pkgs, ...}: {
|
nixUnstable = {pkgs, ...}: {
|
||||||
nix.registry.nixpkgs.flake = inputs.nixpkgs;
|
nix.registry.nixpkgs.flake = inputs.nixpkgs;
|
||||||
|
|
|
@ -49,7 +49,7 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager.users.deck.imports = [../users/deck/default.nix inputs.nix-colors.homeManagerModule inputs.hyprland.homeManagerModules.default];
|
home-manager.users.deck.imports = [../users/deck/default.nix inputs.hyprland.homeManagerModules.default];
|
||||||
programs.fish.enable = true;
|
programs.fish.enable = true;
|
||||||
|
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
|
|
|
@ -38,7 +38,7 @@ in {
|
||||||
};
|
};
|
||||||
users.groups.adbusers = {};
|
users.groups.adbusers = {};
|
||||||
|
|
||||||
home-manager.users.malte.imports = [../users/malte/default.nix inputs.nix-colors.homeManagerModule inputs.hyprland.homeManagerModules.default];
|
home-manager.users.malte.imports = [../users/malte/default.nix inputs.hyprland.homeManagerModules.default];
|
||||||
programs.fish.enable = true;
|
programs.fish.enable = true;
|
||||||
|
|
||||||
services.udev.packages = [
|
services.udev.packages = [
|
||||||
|
|
|
@ -1,35 +0,0 @@
|
||||||
{
|
|
||||||
writeShellApplication,
|
|
||||||
bemenu,
|
|
||||||
hack-nerdfont,
|
|
||||||
# Color config
|
|
||||||
color ? {
|
|
||||||
base00 = "000000";
|
|
||||||
base05 = "ff0000";
|
|
||||||
base08 = "00ff00";
|
|
||||||
base0D = "0000ff";
|
|
||||||
},
|
|
||||||
# Command name,
|
|
||||||
cmd ? "bemenu-run",
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
writeShellApplication {
|
|
||||||
name = "bemenu-run-configured";
|
|
||||||
runtimeInputs = [
|
|
||||||
bemenu
|
|
||||||
hack-nerdfont
|
|
||||||
];
|
|
||||||
text = ''
|
|
||||||
exec ${cmd} -inl80 \
|
|
||||||
--fn 'Hack Nerd Font Mono 11' \
|
|
||||||
--tb=#${color.base08} \
|
|
||||||
--tf=#${color.base00} \
|
|
||||||
--fb=#${color.base00} \
|
|
||||||
--ff=#${color.base05} \
|
|
||||||
--nb=#${color.base00} \
|
|
||||||
--nf=#${color.base05} \
|
|
||||||
--hb=#${color.base0D} \
|
|
||||||
--hf=#${color.base00} \
|
|
||||||
"$@"
|
|
||||||
'';
|
|
||||||
}
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
|
lib,
|
||||||
nixosConfig,
|
nixosConfig,
|
||||||
nix-colors,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
wrap = name: pkg: postBuild:
|
wrap = name: pkg: postBuild:
|
||||||
|
@ -115,11 +115,9 @@ in {
|
||||||
./modules/scarlett-solo.nix
|
./modules/scarlett-solo.nix
|
||||||
./modules/helix.nix
|
./modules/helix.nix
|
||||||
./modules/mpv.nix
|
./modules/mpv.nix
|
||||||
./modules/broot.nix
|
|
||||||
./modules/hypr.nix
|
./modules/hypr.nix
|
||||||
./modules/notes.nix
|
./modules/notes.nix
|
||||||
../modules/restic-backup.nix
|
../modules/restic-backup.nix
|
||||||
../modules/colors.nix
|
|
||||||
../modules/profiles-cleanup.nix
|
../modules/profiles-cleanup.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -127,10 +125,6 @@ in {
|
||||||
settings.hyprland.enable = true;
|
settings.hyprland.enable = true;
|
||||||
settings.mail.enable = true;
|
settings.mail.enable = true;
|
||||||
|
|
||||||
# Define my color schemes
|
|
||||||
colorsLight = nix-colors.colorSchemes."papercolor-light";
|
|
||||||
colorsDark = nix-colors.colorSchemes."gruvbox-dark-medium";
|
|
||||||
|
|
||||||
home = {
|
home = {
|
||||||
packages =
|
packages =
|
||||||
[
|
[
|
||||||
|
@ -268,6 +262,32 @@ in {
|
||||||
include ${nixosConfig.sops.secrets.nix-conf-secrets.path}
|
include ${nixosConfig.sops.secrets.nix-conf-secrets.path}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
services.darkman.lightModeScripts."home-manager-generation" = lib.getExe (pkgs.writeShellApplication {
|
||||||
|
name = "darkman-switch-light-home-manager-generation";
|
||||||
|
runtimeInputs = [pkgs.findutils pkgs.gawk pkgs.home-manager pkgs.coreutils pkgs.bash];
|
||||||
|
text = ''
|
||||||
|
for path in $(home-manager generations | awk '{print $7}'); do
|
||||||
|
activate="$path/specialisation/light/activate"
|
||||||
|
if [ -x "$activate" ]; then
|
||||||
|
echo "$activate"
|
||||||
|
fi
|
||||||
|
done | head -n1 | xargs sh
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
|
services.darkman.darkModeScripts."home-manager-generation" = lib.getExe (pkgs.writeShellApplication {
|
||||||
|
name = "darkman-switch-dark-home-manager-generation";
|
||||||
|
runtimeInputs = [pkgs.findutils pkgs.gawk pkgs.home-manager pkgs.coreutils pkgs.bash];
|
||||||
|
text = ''
|
||||||
|
for path in $(home-manager generations | awk '{print $7}'); do
|
||||||
|
activate="$path/specialisation/dark/activate"
|
||||||
|
if [ -x "$activate" ]; then
|
||||||
|
echo "$activate"
|
||||||
|
fi
|
||||||
|
done | head -n1 | xargs sh
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
home.stateVersion = "18.09";
|
home.stateVersion = "18.09";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,69 +0,0 @@
|
||||||
_: {
|
|
||||||
programs.broot = {
|
|
||||||
enable = true;
|
|
||||||
enableFishIntegration = true;
|
|
||||||
settings.skin = {
|
|
||||||
# TODO: Fix all these colors, make them dependent on config.colors
|
|
||||||
default = "rgb(235, 219, 178) rgb(40, 40, 40) / rgb(189, 174, 147) rgb(40, 40, 40)";
|
|
||||||
tree = "rgb(168, 153, 132) None / rgb(102, 92, 84) None";
|
|
||||||
file = "None None / None None Italic";
|
|
||||||
directory = "rgb(131, 165, 152) None Bold / rgb(69, 133, 136) None";
|
|
||||||
exe = "rgb(184, 187, 38) None";
|
|
||||||
link = "rgb(104, 157, 106) None";
|
|
||||||
pruning = "rgb(124, 111, 100) None Italic";
|
|
||||||
perm__ = "None None";
|
|
||||||
perm_r = "rgb(215, 153, 33) None";
|
|
||||||
perm_w = "rgb(204, 36, 29) None";
|
|
||||||
perm_x = "rgb(152, 151, 26) None";
|
|
||||||
owner = "rgb(215, 153, 33) None Bold";
|
|
||||||
group = "rgb(215, 153, 33) None";
|
|
||||||
count = "rgb(69, 133, 136) rgb(50, 48, 47)";
|
|
||||||
dates = "rgb(168, 153, 132) None";
|
|
||||||
sparse = "rgb(250, 189,47) None";
|
|
||||||
content_extract = "rgb(142, 192, 124) None Italic";
|
|
||||||
content_match = "rgb(250, 189, 47) None Bold";
|
|
||||||
git_branch = "rgb(250, 189, 47) None Italic";
|
|
||||||
git_insertions = "rgb(152, 151, 26) None";
|
|
||||||
git_deletions = "rgb(190, 15, 23) None";
|
|
||||||
git_status_current = "rgb(60, 56, 54) None";
|
|
||||||
git_status_modified = "rgb(152, 151, 26) None";
|
|
||||||
git_status_new = "rgb(104, 187, 38) None Bold";
|
|
||||||
git_status_ignored = "rgb(213, 196, 161) None";
|
|
||||||
git_status_conflicted = "rgb(204, 36, 29) None";
|
|
||||||
git_status_other = "rgb(204, 36, 29) None";
|
|
||||||
selected_line = "None rgb(60, 56, 54) / None rgb(50, 48, 47)";
|
|
||||||
char_match = "rgb(250, 189, 47) None";
|
|
||||||
file_error = "rgb(251, 73, 52) None";
|
|
||||||
flag_label = "rgb(189, 174, 147) None";
|
|
||||||
flag_value = "rgb(211, 134, 155) None Bold";
|
|
||||||
input = "cyan None / rgb(189, 174, 147) None Italic";
|
|
||||||
status_error = "rgb(213, 196, 161) rgb(204, 36, 29)";
|
|
||||||
status_job = "rgb(250, 189, 47) rgb(60, 56, 54)";
|
|
||||||
status_normal = "None rgb(50, 48, 47) / None None";
|
|
||||||
status_italic = "rgb(211, 134, 155) rgb(50, 48, 47) Italic / None None";
|
|
||||||
status_bold = "rgb(211, 134, 155) rgb(50, 48, 47) Bold / None None";
|
|
||||||
status_code = "rgb(251, 241, 199) rgb(50, 48, 47) / None None";
|
|
||||||
status_ellipsis = "rgb(251, 241, 199) rgb(50, 48, 47) Bold / None None";
|
|
||||||
purpose_normal = "None None";
|
|
||||||
purpose_italic = "rgb(177, 98, 134) None Italic";
|
|
||||||
purpose_bold = "rgb(177, 98, 134) None Bold";
|
|
||||||
purpose_ellipsis = "None None";
|
|
||||||
scrollbar_track = "rgb(80, 73, 69) None / rgb(50, 48, 47) None";
|
|
||||||
scrollbar_thumb = "rgb(213, 196, 161) None / rgb(102, 92, 84) None";
|
|
||||||
help_paragraph = "None None";
|
|
||||||
help_bold = "rgb(214, 93, 14) None Bold";
|
|
||||||
help_italic = "rgb(211, 134, 155) None Italic";
|
|
||||||
help_code = "rgb(142, 192, 124) rgb(50, 48, 47)";
|
|
||||||
help_headers = "rgb(254, 128, 25) None Bold";
|
|
||||||
help_table_border = "rgb(80, 73, 69) None";
|
|
||||||
preview = "rgb(235, 219, 178) rgb(40, 40, 40) / rgb(235, 219, 178) rgb(40, 40, 40)";
|
|
||||||
preview_line_number = "rgb(124, 111, 100) None / rgb(124, 111, 100) rgb(40, 40, 40)";
|
|
||||||
preview_match = "None rgb(80, 73, 69) Bold Underlined";
|
|
||||||
hex_null = "rgb(189, 174, 147) None";
|
|
||||||
hex_ascii_graphic = "rgb(213, 196, 161) None";
|
|
||||||
hex_ascii_whitespace = "rgb(152, 151, 26) None";
|
|
||||||
hex_ascii_other = "rgb(254, 128, 25) None";
|
|
||||||
hex_non_ascii = "rgb(214, 93, 14) None";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,7 +1,9 @@
|
||||||
{pkgs, ...}: let
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
conf = import ./conf.nix;
|
conf = import ./conf.nix;
|
||||||
configDir = "~/.config/git";
|
|
||||||
deltaConfig = "${configDir}/delta";
|
|
||||||
|
|
||||||
lightDeltaConf = pkgs.writeText "light-delta-conf" ''
|
lightDeltaConf = pkgs.writeText "light-delta-conf" ''
|
||||||
[delta]
|
[delta]
|
||||||
|
@ -29,9 +31,6 @@
|
||||||
plus-style = "syntax '#302f29'"
|
plus-style = "syntax '#302f29'"
|
||||||
syntax-theme = "gruvbox-dark"
|
syntax-theme = "gruvbox-dark"
|
||||||
'';
|
'';
|
||||||
linkDeltaConfig = conf: ''
|
|
||||||
${pkgs.coreutils}/bin/ln -sf ${conf} ${deltaConfig}
|
|
||||||
'';
|
|
||||||
in {
|
in {
|
||||||
programs.git = {
|
programs.git = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -44,7 +43,7 @@ in {
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
pull.rebase = true;
|
pull.rebase = true;
|
||||||
init.defaultBranch = "main";
|
init.defaultBranch = "main";
|
||||||
include.path = deltaConfig;
|
include.path = "~/.config/git/delta";
|
||||||
rerere.enabled = true;
|
rerere.enabled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -56,12 +55,13 @@ in {
|
||||||
};
|
};
|
||||||
programs.fish.shellAbbrs.lg = "lazygit";
|
programs.fish.shellAbbrs.lg = "lazygit";
|
||||||
|
|
||||||
services.darkman.lightModeScripts."git-delta.sh" = ''
|
xdg.configFile."git/delta".source = lib.mkDefault darkDeltaConf;
|
||||||
mkdir -p ${configDir}
|
|
||||||
${linkDeltaConfig lightDeltaConf}
|
specialisation.light.configuration = {
|
||||||
'';
|
xdg.configFile."git/delta".source = lightDeltaConf;
|
||||||
services.darkman.darkModeScripts."git-delta.sh" = ''
|
};
|
||||||
mkdir -p ${configDir}
|
|
||||||
${linkDeltaConfig darkDeltaConf}
|
specialisation.dark.configuration = {
|
||||||
'';
|
xdg.configFile."git/delta".source = darkDeltaConf;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
# gruvbox dark by morhetz, https://github.com/morhetz/gruvbox
|
|
||||||
# This work is licensed under the terms of the MIT license.
|
|
||||||
# For a copy, see https://opensource.org/licenses/MIT.
|
|
||||||
|
|
||||||
background #282828
|
|
||||||
foreground #ebdbb2
|
|
||||||
|
|
||||||
cursor #928374
|
|
||||||
|
|
||||||
selection_foreground #928374
|
|
||||||
selection_background #3c3836
|
|
||||||
|
|
||||||
color0 #282828
|
|
||||||
color8 #928374
|
|
||||||
|
|
||||||
# red
|
|
||||||
color1 #cc241d
|
|
||||||
# light red
|
|
||||||
color9 #fb4934
|
|
||||||
|
|
||||||
# green
|
|
||||||
color2 #98971a
|
|
||||||
# light green
|
|
||||||
color10 #b8bb26
|
|
||||||
|
|
||||||
# yellow
|
|
||||||
color3 #d79921
|
|
||||||
# light yellow
|
|
||||||
color11 #fabd2d
|
|
||||||
|
|
||||||
# blue
|
|
||||||
color4 #458588
|
|
||||||
# light blue
|
|
||||||
color12 #83a598
|
|
||||||
|
|
||||||
# magenta
|
|
||||||
color5 #b16286
|
|
||||||
# light magenta
|
|
||||||
color13 #d3869b
|
|
||||||
|
|
||||||
# cyan
|
|
||||||
color6 #689d6a
|
|
||||||
# lighy cyan
|
|
||||||
color14 #8ec07c
|
|
||||||
|
|
||||||
# light gray
|
|
||||||
color7 #a89984
|
|
||||||
# dark gray
|
|
||||||
color15 #928374
|
|
|
@ -1,49 +0,0 @@
|
||||||
# gruvbox light by morhetz, https://github.com/morhetz/gruvbox
|
|
||||||
# This work is licensed under the terms of the MIT license.
|
|
||||||
# For a copy, see https://opensource.org/licenses/MIT.
|
|
||||||
|
|
||||||
background #fbf1c7
|
|
||||||
foreground #3c3836
|
|
||||||
|
|
||||||
cursor #928374
|
|
||||||
|
|
||||||
selection_foreground #3c3836
|
|
||||||
selection_background #928374
|
|
||||||
|
|
||||||
color0 #fbf1c7
|
|
||||||
color8 #282828
|
|
||||||
|
|
||||||
# red
|
|
||||||
color1 #cc241d
|
|
||||||
# light red
|
|
||||||
color9 #9d0006
|
|
||||||
|
|
||||||
# green
|
|
||||||
color2 #98971a
|
|
||||||
# light green
|
|
||||||
color10 #79740e
|
|
||||||
|
|
||||||
# yellow
|
|
||||||
color3 #d79921
|
|
||||||
# light yellow
|
|
||||||
color11 #b57614
|
|
||||||
|
|
||||||
# blue
|
|
||||||
color4 #458588
|
|
||||||
# light blue
|
|
||||||
color12 #076678
|
|
||||||
|
|
||||||
# magenta
|
|
||||||
color5 #b16286
|
|
||||||
# light magenta
|
|
||||||
color13 #8f3f71
|
|
||||||
|
|
||||||
# cyan
|
|
||||||
color6 #689d6a
|
|
||||||
# lighy cyan
|
|
||||||
color14 #427b58
|
|
||||||
|
|
||||||
# light gray
|
|
||||||
color7 #7c6f64
|
|
||||||
# dark gray
|
|
||||||
color15 #928374
|
|
|
@ -1,22 +1,49 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
|
lib,
|
||||||
config,
|
config,
|
||||||
nix-colors,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
inherit (nix-colors.lib-contrib {inherit pkgs;}) gtkThemeFromScheme;
|
theme = {
|
||||||
in {
|
dark = {
|
||||||
home.packages = [
|
name = "Gruvbox-Dark-B";
|
||||||
(gtkThemeFromScheme {scheme = config.colorsLight;})
|
package = pkgs.gruvbox-gtk-theme;
|
||||||
(gtkThemeFromScheme {scheme = config.colorsDark;})
|
};
|
||||||
];
|
light = {
|
||||||
|
name = "Catppuccin-Latte-Compact-Teal-Light-hdpi";
|
||||||
|
package = pkgs.catppuccin-gtk.override {
|
||||||
|
accents = ["teal"];
|
||||||
|
size = "compact";
|
||||||
|
variant = "macchiato";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
icons = {
|
||||||
|
dark = {
|
||||||
|
name = "Gruvbox-Plus-Dark";
|
||||||
|
package = pkgs.gruvbox-plus-icons;
|
||||||
|
};
|
||||||
|
light = {
|
||||||
|
name = "Zafiro-icons-Light";
|
||||||
|
package = pkgs.zafiro-icons;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk4ExtraCss = {
|
||||||
|
light = "";
|
||||||
|
dark = ''
|
||||||
|
.navigation-sidebar {
|
||||||
|
background-color: rgb(29,32,33);
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in {
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
iconTheme = {
|
|
||||||
package = pkgs.pop-icon-theme;
|
theme = lib.mkDefault theme.dark;
|
||||||
name = "Pop-Mono-Dark";
|
iconTheme = lib.mkDefault icons.dark;
|
||||||
};
|
|
||||||
|
|
||||||
gtk3.bookmarks = [
|
gtk3.bookmarks = [
|
||||||
"file:///home/malte/repos"
|
"file:///home/malte/repos"
|
||||||
|
@ -24,12 +51,26 @@ in {
|
||||||
"sftp://games@dataship.tail6cfa3.ts.net:2022 TheGim-Games"
|
"sftp://games@dataship.tail6cfa3.ts.net:2022 TheGim-Games"
|
||||||
"sftp://malte@dataship.tail6cfa3.ts.net:2022 TheGim-Data"
|
"sftp://malte@dataship.tail6cfa3.ts.net:2022 TheGim-Data"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
gtk4.extraCss = lib.mkDefault gtk4ExtraCss.dark;
|
||||||
};
|
};
|
||||||
|
|
||||||
services.darkman.lightModeScripts."gtk.sh" = ''
|
# Now symlink the `~/.config/gtk-4.0/` folder declaratively:
|
||||||
${pkgs.dconf}/bin/dconf write /org/gnome/desktop/interface/gtk-theme "'${config.colorsLight.slug}'"
|
xdg.configFile = {
|
||||||
'';
|
"gtk-4.0/assets".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/assets";
|
||||||
services.darkman.darkModeScripts."gtk.sh" = ''
|
"gtk-4.0/gtk.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk.css";
|
||||||
${pkgs.dconf}/bin/dconf write /org/gnome/desktop/interface/gtk-theme "'${config.colorsDark.slug}'"
|
"gtk-4.0/gtk-dark.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk-dark.css";
|
||||||
'';
|
};
|
||||||
|
|
||||||
|
specialisation.light.configuration = {
|
||||||
|
gtk.theme = theme.light;
|
||||||
|
gtk.iconTheme = icons.light;
|
||||||
|
gtk.gtk4.extraCss = gtk4ExtraCss.light;
|
||||||
|
};
|
||||||
|
|
||||||
|
specialisation.dark.configuration = {
|
||||||
|
gtk.theme = theme.dark;
|
||||||
|
gtk.iconTheme = icons.dark;
|
||||||
|
gtk.gtk4.extraCss = gtk4ExtraCss.dark;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,19 +3,13 @@
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
tomlFormat = pkgs.formats.toml {};
|
helixConfig = {
|
||||||
configFilePath = "~/.config/helix/config.toml";
|
theme = lib.mkDefault "gruvbox";
|
||||||
installConfig = file: ''
|
|
||||||
${pkgs.coreutils}/bin/ln -sf ${file} ${configFilePath}
|
|
||||||
'';
|
|
||||||
|
|
||||||
lightConfig = {
|
|
||||||
theme = "papercolor-light";
|
|
||||||
editor = {
|
editor = {
|
||||||
line-number = "relative";
|
line-number = "relative";
|
||||||
mouse = true;
|
mouse = true;
|
||||||
#cursorline = true;
|
#cursorline = true;
|
||||||
#color-modes = true;
|
color-modes = true;
|
||||||
cursor-shape = {
|
cursor-shape = {
|
||||||
insert = "bar";
|
insert = "bar";
|
||||||
};
|
};
|
||||||
|
@ -28,14 +22,8 @@
|
||||||
o.j = ":pipe ${pkgs.jq}/bin/jq --sort-keys --indent 4";
|
o.j = ":pipe ${pkgs.jq}/bin/jq --sort-keys --indent 4";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
lightConfigFile = tomlFormat.generate "config.toml" lightConfig;
|
|
||||||
|
|
||||||
darkConfig = lib.recursiveUpdate lightConfig {
|
extraHelixLanguages = {
|
||||||
theme = "gruvbox";
|
|
||||||
};
|
|
||||||
darkConfigFile = tomlFormat.generate "config.toml" darkConfig;
|
|
||||||
|
|
||||||
extraLanguages = (pkgs.formats.toml {}).generate "languages.toml" {
|
|
||||||
language-server = {
|
language-server = {
|
||||||
beancount-language-server = {
|
beancount-language-server = {
|
||||||
name = "beancount-language-server";
|
name = "beancount-language-server";
|
||||||
|
@ -105,28 +93,28 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
home.packages = with pkgs; [
|
programs.helix = {
|
||||||
helix
|
enable = true;
|
||||||
# Some helpful language servers
|
defaultEditor = true;
|
||||||
yaml-language-server
|
languages = extraHelixLanguages;
|
||||||
python311Packages.python-lsp-server
|
settings = helixConfig;
|
||||||
nodePackages.bash-language-server
|
extraPackages = [
|
||||||
taplo-lsp
|
pkgs.yaml-language-server
|
||||||
|
pkgs.python311Packages.python-lsp-server
|
||||||
|
pkgs.nodePackages.bash-language-server
|
||||||
|
pkgs.taplo-lsp
|
||||||
];
|
];
|
||||||
|
};
|
||||||
|
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
EDITOR = "${pkgs.helix}/bin/hx";
|
|
||||||
VISUAL = "${pkgs.kitty}/bin/kitty ${pkgs.helix}/bin/hx";
|
VISUAL = "${pkgs.kitty}/bin/kitty ${pkgs.helix}/bin/hx";
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."helix/languages.toml".source = extraLanguages;
|
specialisation.light.configuration = {
|
||||||
|
programs.helix.settings.theme = "catppuccin_latte";
|
||||||
|
};
|
||||||
|
|
||||||
services.darkman.lightModeScripts."helix.sh" = ''
|
specialisation.dark.configuration = {
|
||||||
mkdir -p $(dirname ${configFilePath})
|
programs.helix.settings.theme = "gruvbox";
|
||||||
${installConfig lightConfigFile}
|
};
|
||||||
'';
|
|
||||||
services.darkman.darkModeScripts."helix.sh" = ''
|
|
||||||
mkdir -p $(dirname ${configFilePath})
|
|
||||||
${installConfig darkConfigFile}
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,25 +7,42 @@
|
||||||
}: let
|
}: let
|
||||||
cfg = config.settings.hyprland;
|
cfg = config.settings.hyprland;
|
||||||
|
|
||||||
bemenu = pkgs.callPackage ../../../pkgs/bemenu-configured.nix {color = config.colorsDark.palette;};
|
|
||||||
doNotDisturb = pkgs.callPackage ../../../pkgs/do-not-disturb.nix {};
|
doNotDisturb = pkgs.callPackage ../../../pkgs/do-not-disturb.nix {};
|
||||||
|
|
||||||
wallpaper = [
|
background = {
|
||||||
(pkgs.fetchurl {
|
light = pkgs.nix-wallpaper.override {
|
||||||
url = "https://images.pexels.com/photos/7565653/pexels-photo-7565653.jpeg?cs=srgb&dl=pexels-shvets-production-7565653.jpg&fm=jpg";
|
preset = "catppuccin-latte-rainbow";
|
||||||
hash = "sha256-x84h0tjHXJw/7yP4Wh6j5oD4XSSs7V5nOyIJRTkEUJM=";
|
width = 3840;
|
||||||
})
|
height = 2160;
|
||||||
(pkgs.fetchurl {
|
};
|
||||||
url = "https://images.pexels.com/photos/12604899/pexels-photo-12604899.jpeg?cs=srgb&dl=pexels-hilal-b%C3%BClb%C3%BCl-12604899.jpg&fm=jpg";
|
dark = pkgs.nix-wallpaper.override {
|
||||||
hash = "sha256-dMNelRuFfvdqXOQHyoTFszFtN7+4bWUlRwg5+cRKnEQ=";
|
preset = "gruvbox-dark-rainbow";
|
||||||
})
|
width = 3840;
|
||||||
];
|
height = 2160;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
hyprpaperConfig = ''
|
monitors =
|
||||||
preload = ${builtins.elemAt wallpaper 0}
|
if nixosConfig.networking.hostName == "helix-texta"
|
||||||
wallpaper = HDMI-A-1,${builtins.elemAt wallpaper 0}
|
then {
|
||||||
preload = ${builtins.elemAt wallpaper 1}
|
eDP-1 = {
|
||||||
wallpaper = HDMI-A-2,${builtins.elemAt wallpaper 1}
|
background.light = "${background.light}/share/wallpapers/nixos-wallpaper.png";
|
||||||
|
background.dark = "${background.dark}/share/wallpapers/nixos-wallpaper.png";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else if nixosConfig.networking.hostName == "murex-pecten"
|
||||||
|
then {
|
||||||
|
}
|
||||||
|
else {};
|
||||||
|
|
||||||
|
hyprpaperConfig = builtins.concatStringsSep "\n" (lib.mapAttrsToList (_: config: ''
|
||||||
|
preload = ${config.background.light}
|
||||||
|
preload = ${config.background.dark}
|
||||||
|
'')
|
||||||
|
monitors);
|
||||||
|
|
||||||
|
mkHyprpaperSwitch = monitor: bg: ''
|
||||||
|
${pkgs.hyprland}/bin/hyprctl hyprpaper wallpaper ${monitor},${bg}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
wobFifo = "~/.local/share/wob/fifo";
|
wobFifo = "~/.local/share/wob/fifo";
|
||||||
|
@ -113,9 +130,8 @@
|
||||||
"$green" = "98971a";
|
"$green" = "98971a";
|
||||||
exec-once = [
|
exec-once = [
|
||||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
|
||||||
"${pkgs.waybar}/bin/waybar"
|
"${lib.getExe pkgs.hyprpaper}"
|
||||||
"${pkgs.hyprpaper}/bin/hyprpaper"
|
"${lib.getExe runWob}"
|
||||||
"${runWob}/bin/run-wob"
|
|
||||||
];
|
];
|
||||||
input = {
|
input = {
|
||||||
kb_variant =
|
kb_variant =
|
||||||
|
@ -126,6 +142,7 @@
|
||||||
else "";
|
else "";
|
||||||
kb_options = "compose:ralt";
|
kb_options = "compose:ralt";
|
||||||
kb_rules = "";
|
kb_rules = "";
|
||||||
|
resolve_binds_by_sym = "1";
|
||||||
|
|
||||||
follow_mouse = "1";
|
follow_mouse = "1";
|
||||||
sensitivity = "0";
|
sensitivity = "0";
|
||||||
|
@ -158,11 +175,11 @@
|
||||||
general = {
|
general = {
|
||||||
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
# See https://wiki.hyprland.org/Configuring/Variables/ for more
|
||||||
|
|
||||||
gaps_in = 3;
|
gaps_in = 5;
|
||||||
gaps_out = 3;
|
gaps_out = 5;
|
||||||
border_size = 1;
|
border_size = 1;
|
||||||
"col.active_border" = "rgba($bluecc) rgba($greencc) 45deg";
|
"col.active_border" = "rgba($bluecc) rgba($greencc) 45deg";
|
||||||
"col.inactive_border" = "rgba(282828cc)";
|
"col.inactive_border" = "rgba(bdae93cc)";
|
||||||
|
|
||||||
layout = "dwindle";
|
layout = "dwindle";
|
||||||
};
|
};
|
||||||
|
@ -313,10 +330,10 @@
|
||||||
"bind = $mainMod, mouse_down, workspace, e+1"
|
"bind = $mainMod, mouse_down, workspace, e+1"
|
||||||
"bind = $mainMod, mouse_up, workspace, e-1"
|
"bind = $mainMod, mouse_up, workspace, e-1"
|
||||||
# Menu
|
# Menu
|
||||||
"$mainMod, D, exec, ${bemenu}/bin/bemenu-run-configured -p 'Program:'"
|
"$mainMod, D, exec, ${lib.getExe pkgs.rofi-wayland} -show run"
|
||||||
|
|
||||||
# Passwords
|
# Passwords
|
||||||
"$mainMod, P, exec, passmenu-bemenu"
|
"$mainMod, P, exec, ${lib.getExe pkgs.rofi-pass-wayland}"
|
||||||
|
|
||||||
# Colorpicker
|
# Colorpicker
|
||||||
"$mainMod SHIFT, C, exec, ${pkgs.hyprpicker}/bin/hyprpicker -a"
|
"$mainMod SHIFT, C, exec, ${pkgs.hyprpicker}/bin/hyprpicker -a"
|
||||||
|
@ -377,14 +394,9 @@ in {
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.hyprpicker
|
pkgs.hyprpicker
|
||||||
pkgs.grimblast
|
pkgs.grimblast
|
||||||
|
pkgs.hyprpaper
|
||||||
];
|
];
|
||||||
|
|
||||||
home.pointerCursor = {
|
|
||||||
package = pkgs.vanilla-dmz;
|
|
||||||
name = "Vanilla-DMZ";
|
|
||||||
size = 48;
|
|
||||||
};
|
|
||||||
|
|
||||||
# If running from tty1 start hyprland
|
# If running from tty1 start hyprland
|
||||||
xdg.configFile."fish/conf.d/hyprland.fish".text = ''
|
xdg.configFile."fish/conf.d/hyprland.fish".text = ''
|
||||||
set TTY1 (tty)
|
set TTY1 (tty)
|
||||||
|
@ -397,5 +409,8 @@ in {
|
||||||
xdg.configFile."hypr/hyprpaper.conf".text = hyprpaperConfig;
|
xdg.configFile."hypr/hyprpaper.conf".text = hyprpaperConfig;
|
||||||
# Configure wob
|
# Configure wob
|
||||||
xdg.configFile."wob/wob.ini".text = wobConfig;
|
xdg.configFile."wob/wob.ini".text = wobConfig;
|
||||||
|
|
||||||
|
services.darkman.lightModeScripts."hyprpaper" = builtins.concatStringsSep "\n" (lib.mapAttrsToList (monitor: config: mkHyprpaperSwitch monitor config.background.light) monitors);
|
||||||
|
services.darkman.darkModeScripts."hyprpaper" = builtins.concatStringsSep "\n" (lib.mapAttrsToList (monitor: config: mkHyprpaperSwitch monitor config.background.dark) monitors);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,18 +1,11 @@
|
||||||
{pkgs, ...}: let
|
{
|
||||||
darkTheme = pkgs.writeTextFile {
|
pkgs,
|
||||||
name = "kitty-dark";
|
lib,
|
||||||
text = builtins.readFile ./gruvbox_dark.conf;
|
...
|
||||||
};
|
}: {
|
||||||
lightTheme = pkgs.writeTextFile {
|
|
||||||
name = "kitty-light";
|
|
||||||
text = builtins.readFile ./gruvbox_light.conf;
|
|
||||||
};
|
|
||||||
configDir = "~/.config/kitty";
|
|
||||||
themeConfigFile = "theme.conf";
|
|
||||||
loadTheme = name: "${pkgs.kitty}/bin/kitty +kitten themes --reload-in=all --config-file-name=${themeConfigFile} '${name}'";
|
|
||||||
in {
|
|
||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
theme = lib.mkDefault "Gruvbox Dark";
|
||||||
|
|
||||||
font = {
|
font = {
|
||||||
name = "Hack Nerd Font Mono";
|
name = "Hack Nerd Font Mono";
|
||||||
|
@ -29,21 +22,13 @@ in {
|
||||||
remember_window_size = false;
|
remember_window_size = false;
|
||||||
text_composition_strategy = "2.0 0";
|
text_composition_strategy = "2.0 0";
|
||||||
};
|
};
|
||||||
|
|
||||||
extraConfig = ''
|
|
||||||
include ${themeConfigFile}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile."kitty/themes/Light.conf".source = lightTheme;
|
specialisation.light.configuration = {
|
||||||
xdg.configFile."kitty/themes/Dark.conf".source = darkTheme;
|
programs.kitty.theme = "Catppuccin-Latte";
|
||||||
|
};
|
||||||
|
|
||||||
services.darkman.lightModeScripts."kitty.sh" = ''
|
specialisation.dark.configuration = {
|
||||||
mkdir -p ${configDir}
|
programs.kitty.theme = "Gruvbox Dark";
|
||||||
${loadTheme "PaperColor Light"}
|
};
|
||||||
'';
|
|
||||||
services.darkman.darkModeScripts."kitty.sh" = ''
|
|
||||||
mkdir -p ${configDir}
|
|
||||||
${loadTheme "Gruvbox Dark"}
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,14 +34,14 @@
|
||||||
# Virtual mailboxes governed by notmuch
|
# Virtual mailboxes governed by notmuch
|
||||||
virtualMailboxes = ''
|
virtualMailboxes = ''
|
||||||
unvirtual-mailboxes "My INBOX"
|
unvirtual-mailboxes "My INBOX"
|
||||||
virtual-mailboxes " INBOX" "notmuch://?query=tag:inbox%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
virtual-mailboxes " INBOX" "notmuch://?query=tag:inbox%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
||||||
virtual-mailboxes " FLAGGED" "notmuch://?query=tag:flagged%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
virtual-mailboxes " FLAGGED" "notmuch://?query=tag:flagged%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
||||||
virtual-mailboxes " ARCHIVE" "notmuch://?query=tag:archive%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
virtual-mailboxes " ARCHIVE" "notmuch://?query=tag:archive%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
||||||
virtual-mailboxes "黎SENT" "notmuch://?query=tag:sent%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
virtual-mailboxes " SENT" "notmuch://?query=tag:sent%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
||||||
virtual-mailboxes " DRAFT" "notmuch://?query=tag:draft%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
virtual-mailboxes " DRAFT" "notmuch://?query=tag:draft%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
||||||
virtual-mailboxes " ATTACHMENT" "notmuch://?query=tag:attachment%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
virtual-mailboxes " ATTACHMENT" "notmuch://?query=tag:attachment%20and%20not%20tag:trash%20and%20not%20tag:junk"
|
||||||
virtual-mailboxes " TRASH" "notmuch://?query=tag:trash"
|
virtual-mailboxes " TRASH" "notmuch://?query=tag:trash"
|
||||||
virtual-mailboxes " JUNK" "notmuch://?query=tag:junk"
|
virtual-mailboxes " JUNK" "notmuch://?query=tag:junk"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Color definitions for neomutt
|
# Color definitions for neomutt
|
||||||
|
@ -302,9 +302,9 @@ in {
|
||||||
# Don't show the help menu
|
# Don't show the help menu
|
||||||
help = "false";
|
help = "false";
|
||||||
# Configure some formats
|
# Configure some formats
|
||||||
to_chars = realStr " R";
|
to_chars = realStr " R";
|
||||||
crypt_chars = realStr " ";
|
crypt_chars = realStr " ";
|
||||||
flag_chars = realStr " ";
|
flag_chars = realStr "DdOo- ";
|
||||||
date_format = realStr "!%A, %b %d %Y %H:%M:%S %Z";
|
date_format = realStr "!%A, %b %d %Y %H:%M:%S %Z";
|
||||||
index_format = realStr " %S %T %zc %<[y?%<[m?%<[d?%{ %H:%M}&%{ %a %d}>&%{%b %d}>&%{ %m/%y}> %-25.25L %s %> %g";
|
index_format = realStr " %S %T %zc %<[y?%<[m?%<[d?%{ %H:%M}&%{ %a %d}>&%{%b %d}>&%{ %m/%y}> %-25.25L %s %> %g";
|
||||||
pager_format = realStr "-%S %T %zc ---[%C/%m]---[%g]%*-(%P)-";
|
pager_format = realStr "-%S %T %zc ---[%C/%m]---[%g]%*-(%P)-";
|
||||||
|
|
|
@ -1,62 +1,104 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
colDark = name: "#${config.colorsDark.palette.${name}}";
|
|
||||||
doNotDisturb = pkgs.callPackage ../../../pkgs/do-not-disturb.nix {};
|
doNotDisturb = pkgs.callPackage ../../../pkgs/do-not-disturb.nix {};
|
||||||
|
|
||||||
|
theme = {
|
||||||
|
dark = {
|
||||||
|
base00 = "282828";
|
||||||
|
base01 = "3c3836";
|
||||||
|
base02 = "504945";
|
||||||
|
base03 = "665c54";
|
||||||
|
base04 = "bdae93";
|
||||||
|
base05 = "d5c4a1";
|
||||||
|
base06 = "ebdbb2";
|
||||||
|
base07 = "fbf1c7";
|
||||||
|
base08 = "fb4934";
|
||||||
|
base09 = "fe8019";
|
||||||
|
base0A = "fabd2f";
|
||||||
|
base0B = "b8bb26";
|
||||||
|
base0C = "8ec07c";
|
||||||
|
base0D = "83a598";
|
||||||
|
base0E = "d3869b";
|
||||||
|
base0F = "d65d0e";
|
||||||
|
};
|
||||||
|
light = {
|
||||||
|
base00 = "eff1f5";
|
||||||
|
base01 = "e6e9ef";
|
||||||
|
base02 = "ccd0da";
|
||||||
|
base03 = "bcc0cc";
|
||||||
|
base04 = "acb0be";
|
||||||
|
base05 = "4c4f69";
|
||||||
|
base06 = "dc8a78";
|
||||||
|
base07 = "7287fd";
|
||||||
|
base08 = "d20f39";
|
||||||
|
base09 = "fe640b";
|
||||||
|
base0A = "df8e1d";
|
||||||
|
base0B = "40a02b";
|
||||||
|
base0C = "179299";
|
||||||
|
base0D = "1e66f5";
|
||||||
|
base0E = "8839ef";
|
||||||
|
base0F = "dd7878";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
mkMakoConfig = theme: let
|
||||||
|
col = name: "#${theme.${name}}";
|
||||||
in {
|
in {
|
||||||
services.mako = {
|
|
||||||
enable = true;
|
enable = true;
|
||||||
anchor = "top-right";
|
anchor = "top-right";
|
||||||
font = "Hack Nerd Font Mono 11";
|
font = "Hack Nerd Font Mono 11";
|
||||||
backgroundColor = colDark "base05";
|
|
||||||
textColor = colDark "base00";
|
|
||||||
borderColor = colDark "base00";
|
|
||||||
borderSize = 1;
|
borderSize = 1;
|
||||||
borderRadius = 3;
|
borderRadius = 3;
|
||||||
defaultTimeout = 4000;
|
defaultTimeout = 4000;
|
||||||
width = 400;
|
width = 400;
|
||||||
height = 500;
|
height = 500;
|
||||||
format = ''
|
|
||||||
<span color='${colDark "base01"}'><i>%a</i></span>\n<b>%s</b> %b'';
|
|
||||||
layer = "overlay";
|
layer = "overlay";
|
||||||
margin = "5";
|
margin = "5";
|
||||||
padding = "6";
|
padding = "6";
|
||||||
|
backgroundColor = col "base05";
|
||||||
|
textColor = col "base00";
|
||||||
|
borderColor = col "base00";
|
||||||
|
format = ''
|
||||||
|
<span color='${col "base01"}'><i>%a</i></span>\n<b>%s</b> %b'';
|
||||||
|
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
outer-margin=0
|
outer-margin=0
|
||||||
|
|
||||||
[urgency=low]
|
[urgency=low]
|
||||||
default-timeout=3000
|
default-timeout=3000
|
||||||
background-color=${colDark "base04"}
|
background-color=${col "base04"}
|
||||||
|
|
||||||
[urgency=normal]
|
[urgency=normal]
|
||||||
background-color=${colDark "base0E"}
|
background-color=${col "base0E"}
|
||||||
|
|
||||||
[urgency=high]
|
[urgency=high]
|
||||||
default-timeout=10000
|
default-timeout=10000
|
||||||
background-color=${colDark "base08"}
|
background-color=${col "base08"}
|
||||||
|
|
||||||
[actionable]
|
[actionable]
|
||||||
format=<span color="${colDark "base0D"}"><i>%a</i></span> \n<b>%s</b> %b
|
format=<span color="${col "base0D"}"><i>%a</i></span> \n<b>%s</b> %b
|
||||||
|
|
||||||
[hidden]
|
[hidden]
|
||||||
background-color=${colDark "base04"}
|
background-color=${col "base04"}
|
||||||
format=... %h more
|
format=... %h more
|
||||||
|
|
||||||
[mode=do-not-disturb]
|
[mode=do-not-disturb]
|
||||||
invisible=1
|
invisible=1
|
||||||
|
|
||||||
[app-name=fish urgency=normal]
|
[app-name=fish urgency=normal]
|
||||||
background-color=${colDark "base0B"}
|
background-color=${col "base0B"}
|
||||||
format= <b>%s</b>\n%b
|
format= <b>%s</b>\n%b
|
||||||
|
|
||||||
[app-name=fish urgency=critical]
|
[app-name=fish urgency=critical]
|
||||||
background-color=${colDark "base08"}
|
background-color=${col "base08"}
|
||||||
format= <b>%s</b>\n%b
|
format= <b>%s</b>\n%b
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
in {
|
||||||
|
services.mako = lib.mkDefault (mkMakoConfig theme.dark);
|
||||||
|
|
||||||
# This should really use the upstream service file, but I'm too lazy
|
# This should really use the upstream service file, but I'm too lazy
|
||||||
# https://github.com/emersion/mako/blob/aafbc91da038e5a6ebab67a66a644487db3410d7/contrib/systemd/mako.service
|
# https://github.com/emersion/mako/blob/aafbc91da038e5a6ebab67a66a644487db3410d7/contrib/systemd/mako.service
|
||||||
|
@ -82,4 +124,12 @@ in {
|
||||||
pkgs.hack-nerdfont
|
pkgs.hack-nerdfont
|
||||||
doNotDisturb
|
doNotDisturb
|
||||||
];
|
];
|
||||||
|
|
||||||
|
specialisation.light.configuration = {
|
||||||
|
services.mako = mkMakoConfig theme.light;
|
||||||
|
};
|
||||||
|
|
||||||
|
specialisation.dark.configuration = {
|
||||||
|
services.mako = mkMakoConfig theme.dark;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,16 +1,9 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
colDark = config.colorsDark.palette;
|
|
||||||
in {
|
|
||||||
programs.mpv = {
|
programs.mpv = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.mpv;
|
package = pkgs.mpv;
|
||||||
config = {
|
config = {
|
||||||
sub-color = "#fcc437";
|
sub-color = "#fcc437";
|
||||||
sub-border-color = "#${colDark.base00}";
|
|
||||||
sub-border-size = 1;
|
sub-border-size = 1;
|
||||||
sub-font-size = 45;
|
sub-font-size = 45;
|
||||||
af-add = "@normalize51:!lavfi=[pan=6c|c0=c0+0.2*c2|c1=c1+0.2*c2|c2=2*c2|c3=c3|c4=c4+0.2*c2|c5=c5+0.2*c2]";
|
af-add = "@normalize51:!lavfi=[pan=6c|c0=c0+0.2*c2|c1=c1+0.2*c2|c2=2*c2|c3=c3|c4=c4+0.2*c2|c5=c5+0.2*c2]";
|
||||||
|
|
|
@ -1,38 +1,4 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
bemenuConfigured = pkgs.callPackage ../../../pkgs/bemenu-configured.nix {
|
|
||||||
color = config.colorsDark.palette;
|
|
||||||
cmd = "bemenu";
|
|
||||||
};
|
|
||||||
|
|
||||||
passmenu-bemenu = pkgs.writeShellApplication {
|
|
||||||
name = "passmenu-bemenu";
|
|
||||||
runtimeInputs = [
|
|
||||||
bemenuConfigured
|
|
||||||
pkgs.fd
|
|
||||||
pkgs.gnused
|
|
||||||
pkgs.libnotify
|
|
||||||
pkgs.pass
|
|
||||||
pkgs.wl-clipboard
|
|
||||||
];
|
|
||||||
text = ''
|
|
||||||
PREFIX=~/.local/share/password-store/
|
|
||||||
SUFFIX=.gpg
|
|
||||||
|
|
||||||
selection=$( fd '.gpg' "$PREFIX" \
|
|
||||||
| sed "s|$PREFIX||" \
|
|
||||||
| sed "s|$SUFFIX||" \
|
|
||||||
| bemenu-run-configured -p 'Password:' )
|
|
||||||
|
|
||||||
PASSWORD_STORE_DIR="$PREFIX" pass show "$selection" | wl-copy -o || exit 2
|
|
||||||
|
|
||||||
notify-send -u low -a Pass "$selection" "Copied to clipboard"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
programs.password-store = {
|
programs.password-store = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.pass.withExtensions (exts: [
|
package = pkgs.pass.withExtensions (exts: [
|
||||||
|
@ -49,5 +15,5 @@ in {
|
||||||
# Install pass-ff extension required file:
|
# Install pass-ff extension required file:
|
||||||
home.file.".mozilla/native-messaging-hosts/passff.json".source = "${pkgs.passff-host}/share/passff-host/passff.json";
|
home.file.".mozilla/native-messaging-hosts/passff.json".source = "${pkgs.passff-host}/share/passff-host/passff.json";
|
||||||
|
|
||||||
home.packages = [passmenu-bemenu pkgs.hack-nerdfont];
|
home.packages = [pkgs.rofi-pass-wayland pkgs.hack-nerdfont];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
_: {
|
_: {
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme = "gtk";
|
platformTheme = "gtk3";
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
{pkgs, ...}: let
|
{
|
||||||
setBatTheme = theme: ''
|
pkgs,
|
||||||
mkdir -p ~/.config/bat
|
lib,
|
||||||
echo '--theme=${theme}' > ~/.config/bat/config
|
...
|
||||||
'';
|
}: {
|
||||||
in {
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
bottom
|
bottom
|
||||||
fd
|
fd
|
||||||
|
@ -145,6 +144,20 @@ in {
|
||||||
|
|
||||||
programs.bat = {
|
programs.bat = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
config = {
|
||||||
|
theme = lib.mkDefault "gruvbox-dark";
|
||||||
|
};
|
||||||
|
themes = {
|
||||||
|
catppuccin-latte = {
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "catppuccin";
|
||||||
|
repo = "bat";
|
||||||
|
rev = "b8134f0";
|
||||||
|
hash = "sha256-gzf0/Ltw8mGMsEFBTUuN33MSFtUP4xhdxfoZFntaycQ=";
|
||||||
|
};
|
||||||
|
file = "themes/Catppuccin Latte.tmTheme";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.nix-index = {
|
programs.nix-index = {
|
||||||
|
@ -164,10 +177,11 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.darkman.darkModeScripts."bat.sh" = ''
|
specialisation.light.configuration = {
|
||||||
${setBatTheme "gruvbox-dark"}
|
programs.bat.config.theme = "catppuccin-latte";
|
||||||
'';
|
};
|
||||||
services.darkman.lightModeScripts."bat.sh" = ''
|
|
||||||
${setBatTheme "base16-256"}
|
specialisation.dark.configuration = {
|
||||||
'';
|
programs.bat.config.theme = "gruvbox-dark";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,240 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
lib,
|
||||||
config,
|
|
||||||
nixosConfig,
|
nixosConfig,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
mkBorder = hex: ((config.myLib.mkColor hex).darker 0.4).hashRgb;
|
rofi = let
|
||||||
col = config.colorsDark.palette;
|
raw = "${pkgs.rofi-wayland}/bin/rofi";
|
||||||
|
themes = pkgs.fetchFromGitHub {
|
||||||
|
owner = "adi1090x";
|
||||||
|
repo = "rofi";
|
||||||
|
rev = "7e236dd";
|
||||||
|
hash = "sha256-K6WQ+olSy6Rorof/EGi9hP2WQpRONjuGREby+aBlzYg=";
|
||||||
|
};
|
||||||
|
theme = "${themes}/files/launchers/type-6/style-4.rasi";
|
||||||
|
in {
|
||||||
|
launcher = pkgs.writeScript "rofi-launcher" ''
|
||||||
|
${raw} -show drun -theme ${theme}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
lightColors = pkgs.writeText "colors.scss" ''
|
||||||
|
$active: #40a02b;
|
||||||
|
$base: #dce0e8;
|
||||||
|
$clock: #209fb5;
|
||||||
|
$error: #e64553;
|
||||||
|
$muted: #7c7f93;
|
||||||
|
$relevant: #8839ef;
|
||||||
|
$text: #4c4f69;
|
||||||
|
$warn: #df8e1d;
|
||||||
|
'';
|
||||||
|
|
||||||
|
darkColors = pkgs.writeText "colors.scss" ''
|
||||||
|
$active: #b8bb26;
|
||||||
|
$base: #1d2021;
|
||||||
|
$clock: #458588;
|
||||||
|
$error: #fb4934;
|
||||||
|
$muted: #928374;
|
||||||
|
$relevant: #b16286;
|
||||||
|
$text: #ebdbb2;
|
||||||
|
$warn: #d65d0e;
|
||||||
|
'';
|
||||||
|
|
||||||
|
style = {
|
||||||
|
light = pkgs.concatTextFile {
|
||||||
|
name = "style.scss";
|
||||||
|
files = [lightColors styleRaw];
|
||||||
|
};
|
||||||
|
dark = pkgs.concatTextFile {
|
||||||
|
name = "style.scss";
|
||||||
|
files = [darkColors styleRaw];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
compiledCssStyle = {
|
||||||
|
light = builtins.readFile ((pkgs.runCommand "compiled-waybar-sass" {} ''
|
||||||
|
mkdir "$out"
|
||||||
|
${pkgs.dart-sass}/bin/dart-sass ${style.light} "$out/style.css"
|
||||||
|
'')
|
||||||
|
+ /style.css);
|
||||||
|
dark = builtins.readFile ((pkgs.runCommand "compiled-waybar-sass" {} ''
|
||||||
|
mkdir "$out"
|
||||||
|
${pkgs.dart-sass}/bin/dart-sass ${style.dark} "$out/style.css"
|
||||||
|
'')
|
||||||
|
+ /style.css);
|
||||||
|
};
|
||||||
|
|
||||||
|
styleRaw = pkgs.writeText "style.scss" ''
|
||||||
|
$radius: 3px;
|
||||||
|
|
||||||
|
@mixin block-left-end {
|
||||||
|
margin-left: 5px;
|
||||||
|
border-top-left-radius: $radius;
|
||||||
|
border-bottom-left-radius: $radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin block-right-end {
|
||||||
|
margin-right: 5px;
|
||||||
|
border-top-right-radius: $radius;
|
||||||
|
border-bottom-right-radius: $radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
@mixin element {
|
||||||
|
background: $base;
|
||||||
|
/*opacity: 0.9;*/
|
||||||
|
padding: 0px 10px;
|
||||||
|
margin: 0px;
|
||||||
|
margin-top: 3px;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
* {
|
||||||
|
border: none;
|
||||||
|
border-radius: 0;
|
||||||
|
font-family: "Hack Nerd Font";
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 12px;
|
||||||
|
min-height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
window#waybar {
|
||||||
|
background: transparent;
|
||||||
|
color: $text;
|
||||||
|
}
|
||||||
|
|
||||||
|
tooltip {
|
||||||
|
background: $base;
|
||||||
|
color: $text;
|
||||||
|
border-radius: $radius;
|
||||||
|
border-width: 2px;
|
||||||
|
border-style: solid;
|
||||||
|
border-color: $muted;
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-rofi {
|
||||||
|
@include element;
|
||||||
|
@include block-left-end;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
|
#clock {
|
||||||
|
@include element;
|
||||||
|
@include block-left-end;
|
||||||
|
@include block-right-end;
|
||||||
|
color: $clock;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces {
|
||||||
|
@include element;
|
||||||
|
@include block-left-end;
|
||||||
|
@include block-right-end;
|
||||||
|
/*background: $base;*/
|
||||||
|
|
||||||
|
button {
|
||||||
|
padding: 3px;
|
||||||
|
color: $muted;
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.active {
|
||||||
|
color: $active;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.focused {
|
||||||
|
color: $active;
|
||||||
|
background: $warn;
|
||||||
|
border-radius: $radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.urgent {
|
||||||
|
color: $base;
|
||||||
|
background: $warn;
|
||||||
|
border-radius: $radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
color: $active;
|
||||||
|
border-radius: $radius;
|
||||||
|
border: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
@include element;
|
||||||
|
@include block-left-end;
|
||||||
|
@include block-right-end;
|
||||||
|
|
||||||
|
window#waybar.empty & {
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#custom-new-mail {
|
||||||
|
@include element;
|
||||||
|
@include block-left-end;
|
||||||
|
@include block-right-end;
|
||||||
|
color: $warn;
|
||||||
|
}
|
||||||
|
|
||||||
|
#network {
|
||||||
|
@include element;
|
||||||
|
@include block-left-end;
|
||||||
|
color: $muted;
|
||||||
|
|
||||||
|
&.disconnected {
|
||||||
|
color: $error;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.wifi {
|
||||||
|
color: $relevant;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#temperature {
|
||||||
|
@include element;
|
||||||
|
color: $muted;
|
||||||
|
|
||||||
|
&.critical {
|
||||||
|
color: $warn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#memory {
|
||||||
|
@include element;
|
||||||
|
color: $muted;
|
||||||
|
}
|
||||||
|
|
||||||
|
#battery {
|
||||||
|
@include element;
|
||||||
|
@include block-right-end;
|
||||||
|
color: $muted;
|
||||||
|
}
|
||||||
|
|
||||||
|
#pulseaudio {
|
||||||
|
@include element;
|
||||||
|
@include block-left-end;
|
||||||
|
color: $relevant;
|
||||||
|
|
||||||
|
&.muted {
|
||||||
|
color: $muted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#backlight {
|
||||||
|
@include element;
|
||||||
|
@include block-right-end;
|
||||||
|
color: $muted;
|
||||||
|
}
|
||||||
|
|
||||||
|
#tray {
|
||||||
|
@include element;
|
||||||
|
@include block-left-end;
|
||||||
|
@include block-right-end;
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
doNotDisturbJson = pkgs.writeShellApplication {
|
doNotDisturbJson = pkgs.writeShellApplication {
|
||||||
name = "do-not-disturb-json";
|
name = "do-not-disturb-json";
|
||||||
|
@ -18,7 +246,7 @@
|
||||||
text = ''
|
text = ''
|
||||||
state=$(do-not-disturb get-file)
|
state=$(do-not-disturb get-file)
|
||||||
if [ -f "$state" ]; then
|
if [ -f "$state" ]; then
|
||||||
printf "{ \"text\": \" \", \
|
printf "{ \"text\": \" \", \
|
||||||
\"tooltip\": \"DO NOT DISTURB!\" \
|
\"tooltip\": \"DO NOT DISTURB!\" \
|
||||||
}" | jq --unbuffered --compact-output
|
}" | jq --unbuffered --compact-output
|
||||||
fi
|
fi
|
||||||
|
@ -35,8 +263,8 @@
|
||||||
|
|
||||||
count=$(${notmuch} search tag:unread | ${wc} -l)
|
count=$(${notmuch} search tag:unread | ${wc} -l)
|
||||||
if [[ $count -ne 0 ]]; then
|
if [[ $count -ne 0 ]]; then
|
||||||
echo "{ \"text\": \" \", \
|
echo "{ \"text\": \" $count\", \
|
||||||
\"tooltip\": \"$count\" \
|
\"tooltip\": \"New Mails: $count\" \
|
||||||
}" | ${jq} --unbuffered --compact-output
|
}" | ${jq} --unbuffered --compact-output
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
@ -69,46 +297,54 @@
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
in {
|
in {
|
||||||
home.packages = [pkgs.hack-nerdfont];
|
|
||||||
|
|
||||||
programs.waybar = {
|
programs.waybar = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
style = lib.mkDefault compiledCssStyle.dark;
|
||||||
|
|
||||||
settings = [
|
settings = let
|
||||||
{
|
ordered = attrs: list: lib.throwIfNot (builtins.all (name: lib.throwIfNot (builtins.hasAttr name attrs) "Attrset missing member '${name}'" true) list) "Attrset missing member" list;
|
||||||
layer = "top";
|
|
||||||
position = "top";
|
|
||||||
|
|
||||||
modules-left = ["hyprland/workspaces" "hyprland/window"];
|
modules-left = {
|
||||||
modules-center = ["clock#time" "custom/check-system" "clock#date"];
|
"custom/rofi" = {
|
||||||
modules-right =
|
format = " {icon} ";
|
||||||
["custom/do-not-disturb" "custom/new-mail" "network"]
|
format-icons = "";
|
||||||
++ (lib.optional nixosConfig.settings.batteryStuff.enable "battery")
|
on-click = rofi.launcher;
|
||||||
++ ["tray"];
|
};
|
||||||
|
"clock" = {
|
||||||
modules = {
|
format = " {:%H:%M %A, %e. %B}";
|
||||||
|
interval = 60;
|
||||||
|
};
|
||||||
"hyprland/workspaces" = {
|
"hyprland/workspaces" = {
|
||||||
disable-scroll = true;
|
disable-scroll = true;
|
||||||
all-outputs = true;
|
all-outputs = true;
|
||||||
on-click = "activate";
|
on-click = "activate";
|
||||||
|
format = "{icon}";
|
||||||
|
format-icons = {
|
||||||
|
"1" = "1";
|
||||||
|
"2" = "2";
|
||||||
|
"3" = "3";
|
||||||
|
"4" = "4";
|
||||||
|
"5" = "5";
|
||||||
|
"6" = "6";
|
||||||
|
"7" = "7";
|
||||||
|
"8" = "8";
|
||||||
|
"9" = "9";
|
||||||
};
|
};
|
||||||
"hyprland/window" = {tooltip = false;};
|
};
|
||||||
|
"hyprland/window" = {
|
||||||
"clock#time" = {
|
|
||||||
interval = 1;
|
|
||||||
format = "{:%T}";
|
|
||||||
tooltip = false;
|
tooltip = false;
|
||||||
|
max-length = 100;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
modules-center = {};
|
||||||
|
|
||||||
|
modules-right = {
|
||||||
"custom/check-system" = {
|
"custom/check-system" = {
|
||||||
exec = "${checkSystem}/bin/check-system";
|
exec = "${checkSystem}/bin/check-system";
|
||||||
return-type = "json";
|
return-type = "json";
|
||||||
interval = 5;
|
interval = 5;
|
||||||
};
|
};
|
||||||
"clock#date" = {
|
|
||||||
format = "{:%d.%m.%y}";
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
"custom/do-not-disturb" = {
|
"custom/do-not-disturb" = {
|
||||||
exec = "${doNotDisturbJson}/bin/do-not-disturb-json";
|
exec = "${doNotDisturbJson}/bin/do-not-disturb-json";
|
||||||
return-type = "json";
|
return-type = "json";
|
||||||
|
@ -119,237 +355,107 @@ in {
|
||||||
return-type = "json";
|
return-type = "json";
|
||||||
interval = 1;
|
interval = 1;
|
||||||
};
|
};
|
||||||
"idle_inhibitor" = {
|
|
||||||
format = "{icon}";
|
|
||||||
format-icons = {
|
|
||||||
activated = " ";
|
|
||||||
deactivated = " ";
|
|
||||||
};
|
|
||||||
tooltip = false;
|
|
||||||
};
|
|
||||||
"battery" = {
|
"battery" = {
|
||||||
states = {
|
"states" = {
|
||||||
good = 95;
|
"good" = 95;
|
||||||
warning = 30;
|
"warning" = 30;
|
||||||
critical = 15;
|
"critical" = 20;
|
||||||
};
|
};
|
||||||
format = "{icon} {capacity}%";
|
"format" = "{icon} {capacity}%";
|
||||||
format-charging = " {capacity}%";
|
"format-charging" = " {capacity}%";
|
||||||
format-plugged = "";
|
"format-plugged" = " {capacity}%";
|
||||||
design-capacity = true;
|
"format-alt" = "{time} {icon}";
|
||||||
format-icons = ["" "" "" "" ""];
|
"format-icons" = ["" "" "" "" "" "" "" "" "" "" ""];
|
||||||
tooltip = false;
|
};
|
||||||
|
"memory" = {
|
||||||
|
"interval" = 30;
|
||||||
|
"format" = " {percentage}%";
|
||||||
|
"max-length" = 10;
|
||||||
|
"tooltip" = true;
|
||||||
|
"tooltip-format" = "Memory - {used:0.1f}GB used";
|
||||||
|
"on-click" = "${pkgs.kitty}/bin/kitty -e ${pkgs.btop}/bin/btop";
|
||||||
};
|
};
|
||||||
"network" = {
|
"network" = {
|
||||||
format-wifi = " <b>{essid}</b> ({signalStrength}%)";
|
"format-wifi" = " {essid} ({signalStrength}%)";
|
||||||
format-ethernet = "酪 <b>{ifname}</b> {ipaddr}/{cidr}";
|
"format-ethernet" = "{ipaddr}/{cidr} ";
|
||||||
format-linked = "酪 <b>{ifname}</b>";
|
"tooltip-format" = "{essid} - {ifname} via {gwaddr}";
|
||||||
format-disconnected = " ";
|
"format-linked" = "{ifname} (No IP)";
|
||||||
tooltip = false;
|
"format-disconnected" = "";
|
||||||
interval = 5;
|
"format-alt" = "{ifname}={essid} {ipaddr}/{cidr}";
|
||||||
|
"on-click-right" = "~/.config/rofi/bin/network";
|
||||||
|
};
|
||||||
|
backlight = {
|
||||||
|
device = "intel_backlight";
|
||||||
|
format = "{icon} {percent}";
|
||||||
|
format-icons = ["" "" ""];
|
||||||
|
on-scroll-down = "${pkgs.light}/bin/light -A 1";
|
||||||
|
on-scroll-up = "${pkgs.light}/bin/light -U 1";
|
||||||
|
};
|
||||||
|
|
||||||
|
"pulseaudio" = {
|
||||||
|
"format" = "{icon} {volume}";
|
||||||
|
"tooltip" = true;
|
||||||
|
"format-muted" = " Muted";
|
||||||
|
"on-click" = "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
|
||||||
|
"on-click-right" = "pavucontrol";
|
||||||
|
"on-scroll-up" = "wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%+";
|
||||||
|
"on-scroll-down" = "wpctl set-volume -l 1.4 @DEFAULT_AUDIO_SINK@ 5%-";
|
||||||
|
"scroll-step" = 5;
|
||||||
|
"format-icons" = {
|
||||||
|
"headphone" = "";
|
||||||
|
"hands-free" = "";
|
||||||
|
"headset" = "";
|
||||||
|
"phone" = "";
|
||||||
|
"portable" = "";
|
||||||
|
"car" = "";
|
||||||
|
"default" = ["" "" ""];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
"tray" = {
|
"tray" = {
|
||||||
spacing = 5;
|
icon-size = 12;
|
||||||
|
spacing = 10;
|
||||||
|
};
|
||||||
|
temperature = {
|
||||||
|
format = " {temperatureC}°C";
|
||||||
|
critical-threshold = 70;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
in [
|
||||||
|
{
|
||||||
|
layer = "top";
|
||||||
|
position = "top";
|
||||||
|
mod = "dock";
|
||||||
|
exclusive = true;
|
||||||
|
passthrough = false;
|
||||||
|
height = 30;
|
||||||
|
modules-left = ordered modules-left ["custom/rofi" "clock" "hyprland/workspaces" "hyprland/window"];
|
||||||
|
modules-center = ordered modules-center [];
|
||||||
|
modules-right = ordered modules-right ([
|
||||||
|
"custom/do-not-disturb"
|
||||||
|
"custom/new-mail"
|
||||||
|
"network"
|
||||||
|
"temperature"
|
||||||
|
"memory"
|
||||||
|
]
|
||||||
|
++ (lib.optional nixosConfig.settings.batteryStuff.enable "battery")
|
||||||
|
++ [
|
||||||
|
"pulseaudio"
|
||||||
|
"backlight"
|
||||||
|
"tray"
|
||||||
|
]);
|
||||||
|
|
||||||
|
modules = modules-left // modules-center // modules-right;
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
style = ''
|
systemd.enable = true;
|
||||||
@import "${config.myLib.mkCSSVariables config.colorsDark}";
|
};
|
||||||
|
|
||||||
* {
|
specialisation.light.configuration = {
|
||||||
border: none;
|
programs.waybar.style = compiledCssStyle.light;
|
||||||
border-radius: 0;
|
};
|
||||||
font-family: Hack Nerd Font;
|
|
||||||
font-size: 11px;
|
|
||||||
min-height: 20px;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar {
|
specialisation.dark.configuration = {
|
||||||
background-color: @base00;
|
programs.waybar.style = compiledCssStyle.dark;
|
||||||
border-bottom: 3px solid ${mkBorder col.base00};
|
|
||||||
color: @base0D;
|
|
||||||
}
|
|
||||||
|
|
||||||
window#waybar.hidden {
|
|
||||||
opacity: 0.2;
|
|
||||||
}
|
|
||||||
|
|
||||||
tooltip {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
background-color: @base00;
|
|
||||||
color: @base0D;
|
|
||||||
border: 1px solid ${mkBorder col.base00};
|
|
||||||
}
|
|
||||||
|
|
||||||
tooltip label {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
color: @base0D;
|
|
||||||
font-weight: bolder;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Workspace basics, existing workspaces on other displays */
|
|
||||||
#workspaces button {
|
|
||||||
padding: 0 5px;
|
|
||||||
background-color: transparent;
|
|
||||||
color: @base01;
|
|
||||||
font-weight: bolder;
|
|
||||||
min-width: 20px;
|
|
||||||
/* border-bottom: 3px solid ${mkBorder col.base00}; */
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.active {
|
|
||||||
color: @base00;
|
|
||||||
background-color: @base0D;
|
|
||||||
border-bottom: 3px solid ${mkBorder col.base0D};
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button.urgent {
|
|
||||||
color: @base00;
|
|
||||||
background-color: @base08;
|
|
||||||
border-bottom: 3px solid ${mkBorder col.base08};
|
|
||||||
}
|
|
||||||
|
|
||||||
#mode {
|
|
||||||
background-color: @base08;
|
|
||||||
color: @base00;
|
|
||||||
border-bottom: 3px solid ${mkBorder col.base08};
|
|
||||||
}
|
|
||||||
|
|
||||||
#workspaces button:hover {
|
|
||||||
color: @base00;
|
|
||||||
background-color: @base0D;
|
|
||||||
border-bottom: 3px solid ${mkBorder col.base0D};
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock,
|
|
||||||
#battery,
|
|
||||||
#network,
|
|
||||||
#mode,
|
|
||||||
#custom-do-not-disturb,
|
|
||||||
#custom-new-mail,
|
|
||||||
#custom-check-system {
|
|
||||||
padding: 0 10px;
|
|
||||||
color: @base05;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-do-not-disturb,
|
|
||||||
#custom-new-mail {
|
|
||||||
padding: 0px 10px 0px 13px;
|
|
||||||
margin-right: 10px;
|
|
||||||
font-weight: bolder;
|
|
||||||
background-color: @base09;
|
|
||||||
color: @base00;
|
|
||||||
border-bottom: 3px solid ${mkBorder col.base09};
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-do-not-disturb {
|
|
||||||
background-color: @base0B;
|
|
||||||
border-bottom: 3px solid ${mkBorder col.base0B};
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-check-system {
|
|
||||||
margin: 0 5px;
|
|
||||||
padding: 0 10px 0 13px;
|
|
||||||
font-weight: bolder;
|
|
||||||
color: @base08;
|
|
||||||
}
|
|
||||||
|
|
||||||
#network {
|
|
||||||
margin-right: 10px;
|
|
||||||
background-color: @base04;
|
|
||||||
color: @base00;
|
|
||||||
border-bottom: 3px solid ${mkBorder col.base04};
|
|
||||||
}
|
|
||||||
|
|
||||||
#network.disconnected {
|
|
||||||
padding: 0px 10px 0px 13px;
|
|
||||||
background-color: @base08;
|
|
||||||
color: @base00;
|
|
||||||
border-bottom: 3px solid ${mkBorder col.base08};
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock {
|
|
||||||
color: @base05;
|
|
||||||
border-bottom: 3px solid transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock.time {
|
|
||||||
font-weight: bolder;
|
|
||||||
padding-right: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#clock.date {
|
|
||||||
padding-left: 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window,
|
|
||||||
#workspaces {
|
|
||||||
margin: 0 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#window {
|
|
||||||
border-bottom: 3px solid transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If workspaces is the leftmost module, omit left margin */
|
|
||||||
.modules-left > widget:first-child > #workspaces {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* If workspaces is the rightmost module, omit right margin */
|
|
||||||
.modules-right > widget:last-child > #workspaces {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery {
|
|
||||||
background-color: @base05;
|
|
||||||
border-bottom: 3px solid ${mkBorder col.base05};
|
|
||||||
color: @base00;
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery.warning:not(.charging) {
|
|
||||||
background-color: @base08;
|
|
||||||
border-bottom: 3px solid ${mkBorder col.base08};
|
|
||||||
}
|
|
||||||
|
|
||||||
#battery.critical:not(.charging) {
|
|
||||||
background-color: @base0F;
|
|
||||||
border-bottom: 3px solid ${mkBorder col.base0F};
|
|
||||||
}
|
|
||||||
|
|
||||||
label:focus {
|
|
||||||
background-color: #000000;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray {
|
|
||||||
padding: 0 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray menu {
|
|
||||||
background-color: @base00;
|
|
||||||
color: @base0D;
|
|
||||||
border: 1px solid @base0D;
|
|
||||||
padding: 0;
|
|
||||||
margin: 10px;
|
|
||||||
font-weight: bold;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray menu menuitem {
|
|
||||||
border-bottom: 1px solid @base00;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray menu menuitem:last-child {
|
|
||||||
border-bottom: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
#tray menu menuitem:hover {
|
|
||||||
background-color: @base0D;
|
|
||||||
color: @base00;
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,15 +1,21 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
config,
|
lib,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
configDir = "~/.config/zathura";
|
catppuccinZathura = pkgs.fetchFromGitHub {
|
||||||
themeConfigFile = "themerc";
|
owner = "catppuccin";
|
||||||
linkTheme = theme: ''
|
repo = "zathura";
|
||||||
${pkgs.coreutils}/bin/ln -sf ${theme} ${configDir}/${themeConfigFile}
|
rev = "0adc53028d81bf047461bc61c43a484d11b15220";
|
||||||
'';
|
hash = "sha256-/vD/hOi6KcaGyAp6Az7jL5/tQSGRzIrf0oHjAJf4QbI=";
|
||||||
lightTheme = config.myLib.mkZathuraTheme config.colorsLight;
|
};
|
||||||
darkTheme = config.myLib.mkZathuraTheme config.colorsDark;
|
|
||||||
|
gruvboxZathura = pkgs.fetchFromGitHub {
|
||||||
|
owner = "MiragianCycle";
|
||||||
|
repo = "zathura-gruvbox";
|
||||||
|
rev = "0b49904fe77e6eb676a6318c1acb03afeb2965bb";
|
||||||
|
hash = "sha256-h7CIPjW2DjkDHetJM/EASaGQNUpMp8joOo1ghKIorN4=";
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
home.packages = [pkgs.hack-nerdfont];
|
home.packages = [pkgs.hack-nerdfont];
|
||||||
programs.zathura = {
|
programs.zathura = {
|
||||||
|
@ -26,16 +32,17 @@ in {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
map <Space> navigate next
|
map <Space> navigate next
|
||||||
map <S-Space> navigate previous
|
map <S-Space> navigate previous
|
||||||
include ${themeConfigFile}
|
include themerc
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
services.darkman.lightModeScripts."zathura.sh" = ''
|
xdg.configFile."zathura/themerc".source = lib.mkDefault (gruvboxZathura + /zathura-gruvbox-dark);
|
||||||
mkdir -p ${configDir}
|
|
||||||
${linkTheme lightTheme}
|
specialisation.light.configuration = {
|
||||||
'';
|
xdg.configFile."zathura/themerc".source = catppuccinZathura + /src/catppuccin-latte;
|
||||||
services.darkman.darkModeScripts."zathura.sh" = ''
|
};
|
||||||
mkdir -p ${configDir}
|
|
||||||
${linkTheme darkTheme}
|
specialisation.dark.configuration = {
|
||||||
'';
|
xdg.configFile."zathura/themerc".source = gruvboxZathura + /zathura-gruvbox-dark;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,8 +45,6 @@ in {
|
||||||
unzip
|
unzip
|
||||||
];
|
];
|
||||||
|
|
||||||
# TODO: Improve
|
|
||||||
programs.broot.enable = true;
|
|
||||||
programs.fish.enable = true;
|
programs.fish.enable = true;
|
||||||
|
|
||||||
xdg.enable = true;
|
xdg.enable = true;
|
||||||
|
|
|
@ -1,199 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
# Create a color from a hexadezimal 6 digit description, like 'FF0000' for pure red
|
|
||||||
# mkcolor :: hex -> Color
|
|
||||||
mkColor = rgb: let
|
|
||||||
# Mapping hex digits to actual numbers
|
|
||||||
hexDigitMap = {
|
|
||||||
"0" = 0;
|
|
||||||
"1" = 1;
|
|
||||||
"2" = 2;
|
|
||||||
"3" = 3;
|
|
||||||
"4" = 4;
|
|
||||||
"5" = 5;
|
|
||||||
"6" = 6;
|
|
||||||
"7" = 7;
|
|
||||||
"8" = 8;
|
|
||||||
"9" = 9;
|
|
||||||
"A" = 10;
|
|
||||||
"B" = 11;
|
|
||||||
"C" = 12;
|
|
||||||
"D" = 13;
|
|
||||||
"E" = 14;
|
|
||||||
"F" = 15;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Convert a single hexadezimal character to a number
|
|
||||||
# hexCharToInt :: char -> int
|
|
||||||
hexCharToInt = char: hexDigitMap.${lib.strings.toUpper char};
|
|
||||||
|
|
||||||
# Convert a hexadezimal string to a number
|
|
||||||
# hexStringToInt :: string -> int
|
|
||||||
hexStringToInt = string: let
|
|
||||||
chars = lib.strings.stringToCharacters string;
|
|
||||||
nums = map hexCharToInt chars;
|
|
||||||
fun = sum: el: sum * 16 + el;
|
|
||||||
in
|
|
||||||
lib.foldl fun 0 nums;
|
|
||||||
|
|
||||||
# Convert a float from [0.0, 1.0] to a hex string from [0, 255]
|
|
||||||
# floatToFF :: float -> string
|
|
||||||
floatToFF = float: lib.toHexString (builtins.floor (255 * float));
|
|
||||||
|
|
||||||
# Red part of the given color
|
|
||||||
# red :: int
|
|
||||||
red = hexStringToInt (lib.strings.substring 0 2 rgb);
|
|
||||||
|
|
||||||
# Green part of the given color
|
|
||||||
# green :: int
|
|
||||||
green = hexStringToInt (lib.strings.substring 2 2 rgb);
|
|
||||||
|
|
||||||
# Blue part of the given color
|
|
||||||
# blue :: int
|
|
||||||
blue = hexStringToInt (lib.strings.substring 4 2 rgb);
|
|
||||||
|
|
||||||
# Create an RGB hex string from red, green, and blue parts
|
|
||||||
# rgbFromParts :: int -> int -> int -> string
|
|
||||||
rgbFromParts = r: g: b: let
|
|
||||||
rHex = lib.strings.fixedWidthString 2 "0" (lib.toHexString r);
|
|
||||||
gHex = lib.strings.fixedWidthString 2 "0" (lib.toHexString g);
|
|
||||||
bHex = lib.strings.fixedWidthString 2 "0" (lib.toHexString b);
|
|
||||||
in
|
|
||||||
rHex + gHex + bHex;
|
|
||||||
|
|
||||||
# Create a Color darker than the color given by the rgb parts.
|
|
||||||
# amount is in range [0.0, 1.0], r,g, and b in range [0, 255]
|
|
||||||
# darkenColor :: int -> int -> int -> float -> Color
|
|
||||||
darkenColor = r: g: b: amount: let
|
|
||||||
r' = builtins.floor ((1.0 - amount) * r);
|
|
||||||
g' = builtins.floor ((1.0 - amount) * g);
|
|
||||||
b' = builtins.floor ((1.0 - amount) * b);
|
|
||||||
in
|
|
||||||
mkColor (rgbFromParts r' g' b');
|
|
||||||
|
|
||||||
# Create a Color lighter than the color given by the rgb parts. See darkenColor.
|
|
||||||
# darkenColor :: int -> int -> int -> float -> Color
|
|
||||||
lightenColor = r: g: b: amount: let
|
|
||||||
r' = lib.min (builtins.floor ((1.0 + amount) * r)) 255;
|
|
||||||
g' = lib.min (builtins.floor ((1.0 + amount) * g)) 255;
|
|
||||||
b' = lib.min (builtins.floor ((1.0 + amount) * b)) 255;
|
|
||||||
in
|
|
||||||
mkColor (rgbFromParts r' g' b');
|
|
||||||
in {
|
|
||||||
inherit rgb red green blue;
|
|
||||||
# e.g. "#FF0000"
|
|
||||||
hashRgb = "#" + rgb;
|
|
||||||
# e.g. rgbWithAlpha 1.0 -> "FF0000FF"
|
|
||||||
# rgbWithAlpha :: float -> string
|
|
||||||
rgbWithAlpha = alpha: rgb + (floatToFF alpha);
|
|
||||||
# e.g. hashRgbWithAlpha 1.0 -> "#FF0000FF"
|
|
||||||
# rgbWithAlpha :: float -> string
|
|
||||||
hashRgbWithAlpha = alpha: "#" + rgb + (floatToFF alpha);
|
|
||||||
# darker :: float -> Color
|
|
||||||
darker = darkenColor red green blue;
|
|
||||||
# lighter :: float -> Color
|
|
||||||
lighter = lightenColor red green blue;
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
# Dark and light colorschemes as provided by the nix-colors flake input
|
|
||||||
options.colorsLight = lib.mkOption {default = null;};
|
|
||||||
options.colorsDark = lib.mkOption {default = null;};
|
|
||||||
# Internal library functions
|
|
||||||
# TODO: This could probably be done more elegantly.
|
|
||||||
options.myLib = with lib; mkOption {type = with types; attrsOf anything;};
|
|
||||||
|
|
||||||
# === myLib functions ===
|
|
||||||
config.myLib = {
|
|
||||||
inherit mkColor;
|
|
||||||
mkKittyTheme = colorscheme: let
|
|
||||||
color = name: "#${colorscheme.palette.${name}}";
|
|
||||||
in
|
|
||||||
pkgs.writeText "kitty-theme-${colorscheme.slug}" ''
|
|
||||||
# https://github.com/kdrag0n/base16-kitty/blob/fe5862cec41bfd0b46a1ac3d7565a50680051226/templates/default.mustache
|
|
||||||
background ${color "base00"}
|
|
||||||
foreground ${color "base05"}
|
|
||||||
selection_background ${color "base05"}
|
|
||||||
selection_foreground ${color "base00"}
|
|
||||||
url_color ${color "base04"}
|
|
||||||
cursor ${color "base05"}
|
|
||||||
active_border_color ${color "base03"}
|
|
||||||
inactive_border_color ${color "base01"}
|
|
||||||
active_tab_background ${color "base00"}
|
|
||||||
active_tab_foreground ${color "base05"}
|
|
||||||
inactive_tab_background ${color "base01"}
|
|
||||||
inactive_tab_foreground ${color "base04"}
|
|
||||||
tab_bar_background ${color "base01"}
|
|
||||||
|
|
||||||
# normal
|
|
||||||
color0 ${color "base00"}
|
|
||||||
color1 ${color "base08"}
|
|
||||||
color2 ${color "base0B"}
|
|
||||||
color3 ${color "base0A"}
|
|
||||||
color4 ${color "base0D"}
|
|
||||||
color5 ${color "base0E"}
|
|
||||||
color6 ${color "base0C"}
|
|
||||||
color7 ${color "base05"}
|
|
||||||
# bright
|
|
||||||
color8 ${color "base03"}
|
|
||||||
color9 ${color "base09"}
|
|
||||||
color10 ${color "base01"}
|
|
||||||
color11 ${color "base02"}
|
|
||||||
color12 ${color "base04"}
|
|
||||||
color13 ${color "base06"}
|
|
||||||
color14 ${color "base0F"}
|
|
||||||
color15 ${color "base07"}
|
|
||||||
'';
|
|
||||||
mkZathuraTheme = colorscheme: let
|
|
||||||
color = name: "#${colorscheme.palette.${name}}";
|
|
||||||
in
|
|
||||||
pkgs.writeText "zathura-theme-${colorscheme.slug}" ''
|
|
||||||
# https://github.com/HaoZeke/base16-zathura/blob/9f148b4001dc67d399e645919225943d47e50125/templates/recolor.mustache
|
|
||||||
set default-bg "${color "base00"}"
|
|
||||||
set default-fg "${color "base01"}"
|
|
||||||
set statusbar-fg "${color "base04"}"
|
|
||||||
set statusbar-bg "${color "base02"}"
|
|
||||||
set inputbar-bg "${color "base00"}"
|
|
||||||
set inputbar-fg "${color "base07"}"
|
|
||||||
set notification-bg "${color "base00"}"
|
|
||||||
set notification-fg "${color "base07"}"
|
|
||||||
set notification-error-bg "${color "base00"}"
|
|
||||||
set notification-error-fg "${color "base08"}"
|
|
||||||
set notification-warning-bg "${color "base00"}"
|
|
||||||
set notification-warning-fg "${color "base08"}"
|
|
||||||
set highlight-color "${color "base0A"}"
|
|
||||||
set highlight-active-color "${color "base0D"}"
|
|
||||||
set completion-bg "${color "base01"}"
|
|
||||||
set completion-fg "${color "base0D"}"
|
|
||||||
set completion-highlight-fg "${color "base07"}"
|
|
||||||
set completion-highlight-bg "${color "base0D"}"
|
|
||||||
set recolor-lightcolor "${color "base00"}"
|
|
||||||
set recolor-darkcolor "${color "base06"}"
|
|
||||||
'';
|
|
||||||
|
|
||||||
# https://github.com/mnussbaum/base16-waybar
|
|
||||||
mkCSSVariables = colorscheme: let
|
|
||||||
color = name: "#${colorscheme.palette.${name}}";
|
|
||||||
in
|
|
||||||
pkgs.writeText "css-theme-${colorscheme.slug}" ''
|
|
||||||
@define-color base00 ${color "base00"};
|
|
||||||
@define-color base01 ${color "base01"};
|
|
||||||
@define-color base02 ${color "base02"};
|
|
||||||
@define-color base03 ${color "base03"};
|
|
||||||
@define-color base04 ${color "base04"};
|
|
||||||
@define-color base05 ${color "base05"};
|
|
||||||
@define-color base06 ${color "base06"};
|
|
||||||
@define-color base07 ${color "base07"};
|
|
||||||
@define-color base08 ${color "base08"};
|
|
||||||
@define-color base09 ${color "base09"};
|
|
||||||
@define-color base0A ${color "base0A"};
|
|
||||||
@define-color base0B ${color "base0B"};
|
|
||||||
@define-color base0C ${color "base0C"};
|
|
||||||
@define-color base0D ${color "base0D"};
|
|
||||||
@define-color base0E ${color "base0E"};
|
|
||||||
@define-color base0F ${color "base0F"};
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -5,7 +5,7 @@
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
# This is a fix for https://github.com/nix-community/home-manager/issues/4672
|
# This is a fix for https://github.com/nix-community/home-manager/issues/4672
|
||||||
systemd.user = {
|
systemd.user = lib.trace "Clean up HM systemd service configured. Has https://github.com/nix-community/home-manager/issues/4672 been fixed yet?" {
|
||||||
services = {
|
services = {
|
||||||
home-manager-profiles-cleanup = {
|
home-manager-profiles-cleanup = {
|
||||||
Unit.Description = "Clean up HM user profiles.";
|
Unit.Description = "Clean up HM user profiles.";
|
||||||
|
|
Loading…
Reference in a new issue