Compare commits
15 Commits
837e64c377
...
9a4e3d7a78
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a4e3d7a78 | ||
|
|
1005cc522d | ||
|
|
729e7e5f0e | ||
|
|
79cbdc9f69 | ||
|
|
c6ca7c95f4 | ||
|
|
e878158b71 | ||
|
|
ed5f0784d1 | ||
|
|
051648954a | ||
|
|
f5538e69a5 | ||
|
|
a82660b049 | ||
|
|
f828268b14 | ||
|
|
02c7814ce4 | ||
|
|
e36ffd828b | ||
|
|
219a19a3a8 | ||
|
|
683913e0fe |
4
configuration.nix
Executable file → Normal file
4
configuration.nix
Executable file → Normal file
@@ -100,7 +100,7 @@
|
|||||||
blueman
|
blueman
|
||||||
dmidecode
|
dmidecode
|
||||||
file
|
file
|
||||||
cowsay
|
parallel
|
||||||
# ]) ++ (with pkgs-unstable; [
|
# ]) ++ (with pkgs-unstable; [
|
||||||
# # sendme
|
# # sendme
|
||||||
]);
|
]);
|
||||||
@@ -117,7 +117,7 @@
|
|||||||
xwayland.enable = true;
|
xwayland.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
system.stateVersion = "24.11";
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
|||||||
@@ -6,44 +6,42 @@ pkgs: rec {
|
|||||||
rounding = 3;
|
rounding = 3;
|
||||||
gap-size = 5;
|
gap-size = 5;
|
||||||
border-width = 2;
|
border-width = 2;
|
||||||
color =
|
color = let
|
||||||
let
|
dark = (-0.5);
|
||||||
dark = (-0.5);
|
bright = (0.5);
|
||||||
bright = (0.5);
|
alter-set = let f = lib.alter-luminace-hex; in color-name: color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; };
|
||||||
alter-set = let f = lib.alter-luminace-hex; in color-name: color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; };
|
alter = let f = lib.alter-luminace-hex; in color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; };
|
||||||
alter = let f = lib.alter-luminace-hex; in color-value: { base = color-value; dark = f color-value dark; bright = f color-value bright; };
|
# ccolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json));
|
||||||
# ccolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json));
|
ccolor = builtins.mapAttrs alter-set {
|
||||||
ccolor = builtins.mapAttrs alter-set {
|
black = "#111111"; # "#111111" "#001100";
|
||||||
black = "#111111"; # "#111111" "#001100";
|
white = "#dddddd"; # "#dddddd" "#66dd66";
|
||||||
white = "#dddddd"; # "#dddddd" "#66dd66";
|
blue = "#4444dd"; # "#3333dd" "#003300";
|
||||||
blue = "#4444dd"; # "#3333dd" "#003300";
|
cyan = "#44dddd"; # "#11dddd" "#00dd55";
|
||||||
cyan = "#44dddd"; # "#11dddd" "#00dd55";
|
green = "#44dd44"; # "#11dd11" "#11dd11";
|
||||||
green = "#44dd44"; # "#11dd11" "#11dd11";
|
magenta = "#dd44dd"; # "#dd11dd" "#005500";
|
||||||
magenta = "#dd44dd"; # "#dd11dd" "#005500";
|
red = "#dd4444"; # "#dd1111" "#00aa00";
|
||||||
red = "#dd4444"; # "#dd1111" "#00aa00";
|
yellow = "#dddd44"; # "#dddd11" "#ffff00";
|
||||||
yellow = "#dddd44"; # "#dddd11" "#ffff00";
|
};
|
||||||
};
|
facolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json)).to_alter;
|
||||||
facolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json)).to_alter;
|
fbcolor = (builtins.fromJSON (builtins.readFile ./colors.json)).base;
|
||||||
fbcolor = (builtins.fromJSON (builtins.readFile ./colors.json)).base;
|
fcolor = facolor // fbcolor;
|
||||||
fcolor = facolor // fbcolor;
|
xcolor = with ccolor; with fcolor; {
|
||||||
xcolor = with ccolor; with fcolor; rec {
|
background = "#000000";
|
||||||
background = "#000000";
|
# foreground = "#dddddd";
|
||||||
# foreground = "#dddddd";
|
# accent = blue;
|
||||||
# accent = blue;
|
# secondary = cyan;
|
||||||
# secondary = cyan;
|
# tertiary = magenta;
|
||||||
# tertiary = magenta;
|
# special = yellow;
|
||||||
# special = yellow;
|
# weird = green;
|
||||||
# weird = green;
|
positive = alter "#00dd00";
|
||||||
positive = alter "#00dd00";
|
negative = alter "#dd0000";
|
||||||
negative = alter "#dd0000";
|
border = accent.base;
|
||||||
border = accent.base;
|
border2 = secondary.base;
|
||||||
border2 = secondary.base;
|
};
|
||||||
};
|
in ccolor // fcolor // xcolor;
|
||||||
in ccolor // fcolor // xcolor;
|
|
||||||
font = {
|
font = {
|
||||||
code = {
|
code = {
|
||||||
name = "JetBrainsMono-NF";
|
name = "JetBrainsMono Nerd Font";
|
||||||
name2 = "JetBrainsMono Nerd Font";
|
|
||||||
package = (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; });
|
package = (pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; });
|
||||||
# name = "CascadiaCove-NF";
|
# name = "CascadiaCove-NF";
|
||||||
# package = (pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; });
|
# package = (pkgs.nerdfonts.override { fonts = [ "CascadiaCode" ]; });
|
||||||
|
|||||||
189
flake.lock
generated
Executable file → Normal file
189
flake.lock
generated
Executable file → Normal file
@@ -8,11 +8,11 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730569007,
|
"lastModified": 1732650593,
|
||||||
"narHash": "sha256-cwbcYg+rPmvHFFtAEie7nw5IaBidrTYe5XsTlhOyoyQ=",
|
"narHash": "sha256-/fDdm6O0ljOqmN+xlZMxy9NjhFfYxOPCLhCRw11diEA=",
|
||||||
"owner": "KZDKM",
|
"owner": "KZDKM",
|
||||||
"repo": "Hyprspace",
|
"repo": "Hyprspace",
|
||||||
"rev": "260f386075c7f6818033b05466a368d8821cde2d",
|
"rev": "55da6e2363d8298b54f3aba2d8cac8057163e2b7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -41,11 +41,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731774881,
|
"lastModified": 1731959031,
|
||||||
"narHash": "sha256-1Dxryiw8u2ejntxrrv3sMtIE8WHKxmlN4KeH+uMGbmc=",
|
"narHash": "sha256-TGcvIjftziC1CjuiHCzrYDwmOoSFYIhdiKmLetzB5L0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "b31a6a4da8199ae3489057db7d36069a70749a56",
|
"rev": "4468981c1c50999f315baa1508f0e53c4ee70c52",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -176,6 +176,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils-plus": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": [
|
||||||
|
"yazi-plugins",
|
||||||
|
"flake-utils"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1696281284,
|
||||||
|
"narHash": "sha256-xcmtTmoiiAOSk4abifbtqVZk0iwBcqJfg47iUbkwhcE=",
|
||||||
|
"owner": "gytis-ivaskevicius",
|
||||||
|
"repo": "flake-utils-plus",
|
||||||
|
"rev": "6cf1e312fb259693c4930d07ca3cbe1d07ef4a48",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "gytis-ivaskevicius",
|
||||||
|
"ref": "v1.4.0",
|
||||||
|
"repo": "flake-utils-plus",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-utils_2": {
|
"flake-utils_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_4"
|
"systems": "systems_4"
|
||||||
@@ -194,6 +216,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_3": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": [
|
||||||
|
"yazi-plugins",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1710146030,
|
||||||
|
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"gitignore": {
|
"gitignore": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -238,6 +281,28 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"haumea": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"yazi-plugins",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1685133229,
|
||||||
|
"narHash": "sha256-FePm/Gi9PBSNwiDFq3N+DWdfxFq0UKsVVTJS3cQPn94=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "haumea",
|
||||||
|
"rev": "34dd58385092a23018748b50f9b23de6266dffc2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"ref": "v0.2.2",
|
||||||
|
"repo": "haumea",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -245,16 +310,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726989464,
|
"lastModified": 1733050161,
|
||||||
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
|
"narHash": "sha256-lYnT+EYE47f5yY3KS/Kd4pJ6CO9fhCqumkYYkQ3TK20=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
|
"rev": "62d536255879be574ebfe9b87c4ac194febf47c5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.05",
|
"ref": "release-24.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -302,11 +367,11 @@
|
|||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732100541,
|
"lastModified": 1733157082,
|
||||||
"narHash": "sha256-vFeNbKUstvSZbe9TD4bDYozZd+A/bKD+fxCye+p/Mp8=",
|
"narHash": "sha256-wbfUls7vwEs00xdGbYn1L8ZOrMS4zhisq9XVwjND/fc=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "940f7aa990dbc99815bab8d355999d8277534b17",
|
"rev": "92186898c0ca1b3f72922b72c4af1723f0d9b888",
|
||||||
"revCount": 5484,
|
"revCount": 5509,
|
||||||
"submodules": true,
|
"submodules": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hyprwm/Hyprland"
|
"url": "https://github.com/hyprwm/Hyprland"
|
||||||
@@ -407,11 +472,11 @@
|
|||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732059967,
|
"lastModified": 1732716575,
|
||||||
"narHash": "sha256-PN7B3bzpXJgfJ5oUzTWx7Y/v2Zeq6bsRLxqeWmqXN1I=",
|
"narHash": "sha256-OvFJCj52HuXxRrcCXrieIoiOzbeYFvDXNO8SndFiyAE=",
|
||||||
"owner": "h3rmt",
|
"owner": "h3rmt",
|
||||||
"repo": "hyprswitch",
|
"repo": "hyprswitch",
|
||||||
"rev": "e9c4cf7a9f69d52bdbaec14006f04b1205eeceb5",
|
"rev": "2b77dbcb422123dfce9bb82d698649e9757f35e0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -433,11 +498,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731702627,
|
"lastModified": 1732288281,
|
||||||
"narHash": "sha256-+JeO9gevnXannQxMfR5xzZtF4sYmSlWkX/BPmPx0mWk=",
|
"narHash": "sha256-XTU9B53IjGeJiJ7LstOhuxcRjCOFkQFl01H78sT9Lg4=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "e911361a687753bbbdfe3b6a9eab755ecaf1d9e1",
|
"rev": "b26f33cc1c8a7fd5076e19e2cce3f062dca6351c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -498,11 +563,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731676054,
|
"lastModified": 1732758367,
|
||||||
"narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=",
|
"narHash": "sha256-RzaI1RO0UXqLjydtz3GAXSTzHkpb/lLD1JD8a0W4Wpo=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add",
|
"rev": "fa42b5a5f401aab8a32bd33c9a4de0738180dc59",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -514,11 +579,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-latest": {
|
"nixpkgs-latest": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732219096,
|
"lastModified": 1733169301,
|
||||||
"narHash": "sha256-gbvtOPW7K7v4EFo7Feo5s+SI7FMVrCOA5CgnuMhWO/Y=",
|
"narHash": "sha256-0KG/PlnFOQ1IsOen9zUXKsnd6R1rkn0YwKr3jTUZWsM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "328abff1f7a707dc8da8e802f724f025521793ea",
|
"rev": "3b932c5d6fd8a8153e45f67f85af3b17827126b5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -574,11 +639,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732014248,
|
"lastModified": 1733015953,
|
||||||
"narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=",
|
"narHash": "sha256-t4BBVpwG9B4hLgc6GUBuj3cjU7lP/PJfpTHuSqE+crk=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "23e89b7da85c3640bbc2173fe04f4bd114342367",
|
"rev": "ac35b104800bff9028425fec3b6e8a41de2bbfff",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -620,16 +685,16 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731797254,
|
"lastModified": 1732981179,
|
||||||
"narHash": "sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g=",
|
"narHash": "sha256-F7thesZPvAMSwjRu0K8uFshTk3ZZSNAsXTIFvXBT+34=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "e8c38b73aeb218e27163376a2d617e61a2ad9b59",
|
"rev": "62c435d93bf046a5396f3016472e8f7c8e2aed65",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-24.05",
|
"ref": "nixos-24.11",
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -676,11 +741,11 @@
|
|||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731363552,
|
"lastModified": 1732021966,
|
||||||
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
|
"narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=",
|
||||||
"owner": "cachix",
|
"owner": "cachix",
|
||||||
"repo": "git-hooks.nix",
|
"repo": "git-hooks.nix",
|
||||||
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
|
"rev": "3308484d1a443fc5bc92012435d79e80458fe43c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -733,6 +798,7 @@
|
|||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"yazi": "yazi",
|
"yazi": "yazi",
|
||||||
|
"yazi-plugins": "yazi-plugins",
|
||||||
"zen-browser": "zen-browser"
|
"zen-browser": "zen-browser"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -789,11 +855,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732186149,
|
"lastModified": 1733128155,
|
||||||
"narHash": "sha256-N9JGWe/T8BC0Tss2Cv30plvZUYoiRmykP7ZdY2on2b0=",
|
"narHash": "sha256-m6/qwJAJYcidGMEdLqjKzRIjapK4nUfMq7rDCTmZajc=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "53c853fb1a7e4f25f68805ee25c83d5de18dc699",
|
"rev": "c6134b6fff6bda95a1ac872a2a9d5f32e3c37856",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -862,6 +928,21 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_5": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689347949,
|
||||||
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"xdph": {
|
"xdph": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprland-protocols": [
|
"hyprland-protocols": [
|
||||||
@@ -910,11 +991,11 @@
|
|||||||
"rust-overlay": "rust-overlay_2"
|
"rust-overlay": "rust-overlay_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1732207337,
|
"lastModified": 1733065969,
|
||||||
"narHash": "sha256-lPgx3ElbhNp2q0ASAIUDwuszh8cYGmJTNQSdiasmBGI=",
|
"narHash": "sha256-g4bDtyNyKKHHFYY3xTImIttFosn9PcrVbomAiyuu59g=",
|
||||||
"owner": "sxyazi",
|
"owner": "sxyazi",
|
||||||
"repo": "yazi",
|
"repo": "yazi",
|
||||||
"rev": "428c92270385c55ffc2862947f2377f4247268e4",
|
"rev": "20dc0550bc2266fef04f1b3b0b3ec662431951a6",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -923,6 +1004,30 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"yazi-plugins": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_3",
|
||||||
|
"flake-utils-plus": "flake-utils-plus",
|
||||||
|
"haumea": "haumea",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems_5"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1732366073,
|
||||||
|
"narHash": "sha256-rTWuZ7yr3JeCcmeWgbgsribsxyN5TH14vzZrsB869WA=",
|
||||||
|
"owner": "lordkekz",
|
||||||
|
"repo": "nix-yazi-plugins",
|
||||||
|
"rev": "064746e112746ddce3527a77d4524c2447672754",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "lordkekz",
|
||||||
|
"repo": "nix-yazi-plugins",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"zen-browser": {
|
"zen-browser": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": "nixpkgs_6"
|
||||||
|
|||||||
9
flake.nix
Executable file → Normal file
9
flake.nix
Executable file → Normal file
@@ -2,10 +2,10 @@
|
|||||||
description = "Multisystem NixOS Flake of Lennart J. Kurzweg";
|
description = "Multisystem NixOS Flake of Lennart J. Kurzweg";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs = { url = "nixpkgs/nixos-24.05"; };
|
nixpkgs = { url = "nixpkgs/nixos-24.11"; };
|
||||||
nixpkgs-unstable = { url = "nixpkgs/nixos-unstable"; };
|
nixpkgs-unstable = { url = "nixpkgs/nixos-unstable"; };
|
||||||
nixpkgs-latest = { url = "github:nixos/nixpkgs?ref=master"; };
|
nixpkgs-latest = { url = "github:nixos/nixpkgs?ref=master"; };
|
||||||
home-manager = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs"; };
|
home-manager = { url = "github:nix-community/home-manager/release-24.11"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||||
sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
|
||||||
lanzaboote = { url = "github:nix-community/lanzaboote/v0.3.0"; };
|
lanzaboote = { url = "github:nix-community/lanzaboote/v0.3.0"; };
|
||||||
|
|
||||||
@@ -14,8 +14,11 @@
|
|||||||
Hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; };
|
Hyprspace = { url = "github:KZDKM/Hyprspace"; inputs.hyprland.follows = "hyprland"; };
|
||||||
hyprswitch = { url = "github:h3rmt/hyprswitch/release"; };
|
hyprswitch = { url = "github:h3rmt/hyprswitch/release"; };
|
||||||
|
|
||||||
# firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; };
|
|
||||||
yazi.url = "github:sxyazi/yazi";
|
yazi.url = "github:sxyazi/yazi";
|
||||||
|
yazi-plugins = {
|
||||||
|
url = "github:lordkekz/nix-yazi-plugins";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
zen-browser.url = "github:MarceColl/zen-browser-flake";
|
zen-browser.url = "github:MarceColl/zen-browser-flake";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@@ -1,51 +1,31 @@
|
|||||||
{ pkgs, lib, rice, user, secrets, ... }:
|
{ pkgs, lib, rice, user, secrets, ... }:
|
||||||
let
|
let
|
||||||
channels = [
|
channels = [
|
||||||
"Caedrel"
|
|
||||||
"NoWay4u_Sir"
|
|
||||||
"zackrawrr"
|
|
||||||
|
|
||||||
"agurin"
|
"agurin"
|
||||||
"asmongold"
|
"asmongold"
|
||||||
"Broeki"
|
"Caedrel"
|
||||||
"Broxah"
|
|
||||||
# "Caedrel"
|
|
||||||
"chrissyofficial"
|
|
||||||
"EintrachtSpandau"
|
"EintrachtSpandau"
|
||||||
"GamesDoneQuick"
|
"GamesDoneQuick"
|
||||||
"gdolphn"
|
"gdolphn"
|
||||||
"GRONKH"
|
"GRONKH"
|
||||||
"handofblood"
|
"handofblood"
|
||||||
"HisWattson"
|
"HisWattson"
|
||||||
"imls"
|
|
||||||
"iskall85"
|
|
||||||
"Jankos"
|
"Jankos"
|
||||||
"Karni"
|
|
||||||
"KuruHS"
|
"KuruHS"
|
||||||
"kutcherlol"
|
"kutcherlol"
|
||||||
"LCK"
|
|
||||||
"LCS"
|
|
||||||
"LEC"
|
"LEC"
|
||||||
"lol_nemesis"
|
"lol_nemesis"
|
||||||
"loltyler1"
|
|
||||||
"LPL"
|
|
||||||
"maxim"
|
|
||||||
"NASA"
|
"NASA"
|
||||||
"NNOPrime"
|
"NNOPrime"
|
||||||
# "NoWay4u_Sir"
|
"NoWay4u_Sir"
|
||||||
"OfficialMikeShinoda"
|
"OfficialMikeShinoda"
|
||||||
"ow_esports"
|
|
||||||
"PrimeGaming"
|
|
||||||
"PrimeLeague"
|
|
||||||
"Rekkles"
|
"Rekkles"
|
||||||
"riotgames"
|
"riotgames"
|
||||||
"Sola"
|
|
||||||
"ThePrimeagen"
|
"ThePrimeagen"
|
||||||
"Tolkin"
|
"Tolkin"
|
||||||
"Trick2g"
|
|
||||||
"TSM_ImperialHal"
|
"TSM_ImperialHal"
|
||||||
"Xisuma"
|
"Xisuma"
|
||||||
# "zackrawrr"
|
"zackrawrr"
|
||||||
];
|
];
|
||||||
tabber = channel-name: {
|
tabber = channel-name: {
|
||||||
highlightsEnabled = true;
|
highlightsEnabled = true;
|
||||||
|
|||||||
@@ -5,17 +5,18 @@
|
|||||||
<div class="color-container" style="border-color: ${color-set.base}">
|
<div class="color-container" style="border-color: ${color-set.base}">
|
||||||
<div class="color-box" style="background: ${color-set.dark}; height: ${builtins.toString size}px;">
|
<div class="color-box" style="background: ${color-set.dark}; height: ${builtins.toString size}px;">
|
||||||
<p style="color: ${color-set.bright}"> ${color-name}.dark </p>
|
<p style="color: ${color-set.bright}"> ${color-name}.dark </p>
|
||||||
|
<p style="color: ${color-set.bright}"> ${color-set.dark} </p>
|
||||||
</div>
|
</div>
|
||||||
<div class="color-box" style="background: ${color-set.base}; height: ${builtins.toString size}px;">
|
<div class="color-box" style="background: ${color-set.base}; height: ${builtins.toString size}px;">
|
||||||
<p class="dynamic-text"> ${color-name}.base </p>
|
<p class="dynamic-text"> ${color-name}.base </p>
|
||||||
|
<p class="dynamic-text"> ${color-set.base} </p>
|
||||||
</div>
|
</div>
|
||||||
<div class="color-box" style="background: ${color-set.bright}; height: ${builtins.toString size}px;">
|
<div class="color-box" style="background: ${color-set.bright}; height: ${builtins.toString size}px;">
|
||||||
<p style="color: ${color-set.dark}"> ${color-name}.bright </p>
|
<p style="color: ${color-set.dark}"> ${color-name}.bright </p>
|
||||||
|
<p style="color: ${color-set.dark}"> ${color-set.bright} </p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
||||||
in /* html */ ''
|
in /* html */ ''
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<head>
|
<head>
|
||||||
@@ -37,7 +38,7 @@
|
|||||||
color: ${foreground};
|
color: ${foreground};
|
||||||
width: fit-content;
|
width: fit-content;
|
||||||
margin: 10px auto 10px auto;
|
margin: 10px auto 10px auto;
|
||||||
background: ${background};
|
background: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency});
|
||||||
border: ${builtins.toString rice.border-width}px solid ${border};
|
border: ${builtins.toString rice.border-width}px solid ${border};
|
||||||
border-radius: ${builtins.toString rice.rounding}px;
|
border-radius: ${builtins.toString rice.rounding}px;
|
||||||
padding: ${builtins.toString rice.gap-size}px;
|
padding: ${builtins.toString rice.gap-size}px;
|
||||||
@@ -46,7 +47,7 @@
|
|||||||
margin: ${builtins.toString rice.gap-size}px;
|
margin: ${builtins.toString rice.gap-size}px;
|
||||||
}
|
}
|
||||||
.color-container {
|
.color-container {
|
||||||
font-family: ${rice.font.code.name2};
|
font-family: ${rice.font.code.name};
|
||||||
display: flex;
|
display: flex;
|
||||||
gap: ${builtins.toString rice.gap-size}px;
|
gap: ${builtins.toString rice.gap-size}px;
|
||||||
margin: ${builtins.toString rice.gap-size}px;
|
margin: ${builtins.toString rice.gap-size}px;
|
||||||
@@ -66,18 +67,20 @@
|
|||||||
${cb accent "accent" 100}
|
${cb accent "accent" 100}
|
||||||
${cb secondary "secondary" 100}
|
${cb secondary "secondary" 100}
|
||||||
${cb tertiary "tertiary" 100}
|
${cb tertiary "tertiary" 100}
|
||||||
${cb weird "weird" 75}
|
${cb weird "weird" 100}
|
||||||
${cb special "special" 75}
|
${cb special "special" 100}
|
||||||
${cb positive "positive" 30}
|
<br>
|
||||||
${cb negative "negative" 30}
|
${cb positive "positive" 70}
|
||||||
${cb black "black" 25}
|
${cb negative "negative" 70}
|
||||||
${cb white "white" 25}
|
<br>
|
||||||
${cb blue "blue" 25}
|
${cb black "black" 50}
|
||||||
${cb cyan "cyan" 25}
|
${cb white "white" 50}
|
||||||
${cb green "green" 25}
|
${cb blue "blue" 50}
|
||||||
${cb magenta "magenta" 25}
|
${cb cyan "cyan" 50}
|
||||||
${cb red "red" 25}
|
${cb green "green" 50}
|
||||||
${cb yellow "yellow" 25}
|
${cb magenta "magenta" 50}
|
||||||
|
${cb red "red" 50}
|
||||||
|
${cb yellow "yellow" 50}
|
||||||
</body>
|
</body>
|
||||||
<script>
|
<script>
|
||||||
function getLuminance(color) {
|
function getLuminance(color) {
|
||||||
|
|||||||
@@ -9,14 +9,7 @@ lib.mkIf (host != "NxACE")
|
|||||||
programs.thunderbird = let
|
programs.thunderbird = let
|
||||||
inherit (lib.generators) toJSON;
|
inherit (lib.generators) toJSON;
|
||||||
extensions = toJSON {} {
|
extensions = toJSON {} {
|
||||||
"default-theme@mozilla.org" = "5787f490-29b8-436e-a111-640da8590790";
|
|
||||||
"google@search.mozilla.org" = "cc340383-7068-4b32-a10f-9f19334bfebc";
|
|
||||||
"ddg@search.mozilla.org" = "0c340210-f7ab-48e8-9778-600ed5d00160";
|
|
||||||
"amazondotcom@search.mozilla.org" = "881d8fdf-5772-4e33-81ff-faac2d1fa92c";
|
|
||||||
"wikipedia@search.mozilla.org" = "7ea3d39d-3eea-430f-9bd7-f902d8124d45";
|
|
||||||
"bing@search.mozilla.org" = "f480cce8-68af-4082-908e-f8996153352b";
|
|
||||||
"addon@darkreader.org" = "71d6c69d-55f9-4c56-888c-abdcf6efd73d";
|
"addon@darkreader.org" = "71d6c69d-55f9-4c56-888c-abdcf6efd73d";
|
||||||
"lightningcalendartabs@jlx.84" = "12d48e41-412e-4d09-835a-fa6fb8c180eb";
|
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -48,23 +41,20 @@ lib.mkIf (host != "NxACE")
|
|||||||
"mailnews.headers.showUserAgent" = true;
|
"mailnews.headers.showUserAgent" = true;
|
||||||
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
"toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
||||||
};
|
};
|
||||||
userChrome = with rice.color; /* css */ ''
|
# userChrome = with rice.color; /* css */ ''
|
||||||
* {
|
# * {
|
||||||
color: ${rice.lib.hex-to-rgb-comma-string foreground} !important;
|
# color: ${foreground} !important;
|
||||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
# background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString 0.1}) !important;
|
||||||
border: none !important;
|
# border: none !important;
|
||||||
}
|
# -moz-appearance: none !important;
|
||||||
treechildren::-moz-tree-row(odd), treechildren::-moz-tree-row(even) {
|
# }
|
||||||
background-color: rgba(${rice.lib.hex-to-rgb-comma-string background}, ${builtins.toString rice.transparency}) !important;
|
# '';
|
||||||
}
|
|
||||||
'';
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
accounts.email.accounts =
|
accounts.email.accounts = let
|
||||||
let
|
|
||||||
OAuth2Settings = id: {
|
OAuth2Settings = id: {
|
||||||
"mail.smtpserver.smtp_${id}.authMethod" = 10;
|
"mail.smtpserver.smtp_${id}.authMethod" = 10;
|
||||||
"mail.server.server_${id}.authMethod" = 10;
|
"mail.server.server_${id}.authMethod" = 10;
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
# { pkgs-unstable, secrets, user, system, inputs, ...}:
|
# { pkgs-unstable, secrets, user, system, inputs, ...}:
|
||||||
{ rice, user, ... }:
|
{ rice, user, ... }:
|
||||||
# browser.tabs.allow_transparent_browser
|
# browser.tabs.allow_transparent_browser
|
||||||
|
# https://www.reddit.com/r/FirefoxCSS/comments/1dqws4b/firefox_128_will_allow_the_main_browser_content/
|
||||||
{
|
{
|
||||||
home.file = with rice.color; let
|
home.file = with rice.color; let
|
||||||
blur = builtins.toString 20;
|
blur = builtins.toString 20;
|
||||||
in {
|
in {
|
||||||
".mozilla/firefox/${user}/chrome/userChrome.css".text = /* css */ ''
|
".mozilla/firefox/${user}/chrome/userChrome.css".text = /* css */ ''
|
||||||
:root{
|
:root{
|
||||||
/* Popup panels */
|
/* Popup panels */
|
||||||
@@ -110,9 +111,15 @@
|
|||||||
|
|
||||||
/* new-tab */
|
/* new-tab */
|
||||||
@-moz-document url-prefix(about:home), url-prefix(about:newtab) {
|
@-moz-document url-prefix(about:home), url-prefix(about:newtab) {
|
||||||
|
:root{
|
||||||
|
--newtab-background-color-secondary: ${background} !important;
|
||||||
|
}
|
||||||
body, html {
|
body, html {
|
||||||
background: transparent !important;
|
background: transparent !important;
|
||||||
}
|
}
|
||||||
|
.tile, .search-handoff-button {
|
||||||
|
border: ${builtins.toString rice.border-width}px solid ${border} !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@-moz-document domain(youtube.com) {
|
@-moz-document domain(youtube.com) {
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
$(echo -e "$logo" | sed -n 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev)
|
$(echo -e "$logo" | sed -n 7p): fish $(fish --version | rev | cut -f 1 -d' ' | rev)
|
||||||
$(echo -e "$logo" | sed -n 8p): ''$(uname -r)
|
$(echo -e "$logo" | sed -n 8p): ''$(uname -r)
|
||||||
$(echo -e "$logo" | sed -n 9p): $($EDITOR --version | head -n 1 | sed -E 's-(.+?) \(.*-\1-g')
|
$(echo -e "$logo" | sed -n 9p): $($EDITOR --version | head -n 1 | sed -E 's-(.+?) \(.*-\1-g')
|
||||||
$(echo -e "$logo" | sed -n 10p): $(yazi --version | yazi --version | sed -E 's-(.*?) \(.*-\1-g')
|
$(echo -e "$logo" | sed -n 10p): $(yazi --version | sed -E 's-(.*?) \(.*-\1-g')
|
||||||
$(echo -e "$logo" | sed -n 11p): $(starship --version | head -n 1)
|
$(echo -e "$logo" | sed -n 11p): $(starship --version | head -n 1)
|
||||||
"
|
"
|
||||||
echo -e "$msg"
|
echo -e "$msg"
|
||||||
@@ -85,20 +85,18 @@
|
|||||||
# ya = "yazi"; # function
|
# ya = "yazi"; # function
|
||||||
# nxfiglet = "figlet";
|
# nxfiglet = "figlet";
|
||||||
};
|
};
|
||||||
interactiveShellInit = ''
|
interactiveShellInit = /* fish */ ''
|
||||||
set -g fish_greeting
|
set -g fish_greeting
|
||||||
if not set -q IN_NIX_SHELL
|
if not set -q IN_NIX_SHELL
|
||||||
nxfetch
|
|
||||||
# yazi
|
|
||||||
if set -q SESSION_FROM_DE
|
if set -q SESSION_FROM_DE
|
||||||
set -e SESSION_FROM_DE
|
|
||||||
set tmp (mktemp -t "yazi-cwd.XXXXX")
|
set tmp (mktemp -t "yazi-cwd.XXXXX")
|
||||||
yazi $argv --cwd-file="$tmp"
|
yazi --cwd-file="$tmp"
|
||||||
if set cwd (cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
|
if set cwd (cat -- "$tmp"); and [ -n "$cwd" ]; and [ "$cwd" != "$PWD" ]
|
||||||
cd -- "$cwd"
|
builtin cd -- "$cwd"
|
||||||
end
|
end
|
||||||
rm -f -- "$tmp"
|
rm -f -- "$tmp"
|
||||||
end
|
end
|
||||||
|
nxfetch
|
||||||
end
|
end
|
||||||
'';
|
'';
|
||||||
functions = {
|
functions = {
|
||||||
|
|||||||
9
home-modules/gimp.nix
Executable file
9
home-modules/gimp.nix
Executable file
@@ -0,0 +1,9 @@
|
|||||||
|
{ pkgs, lib, host, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
(gimp-with-plugins.override {
|
||||||
|
plugins = with gimpPlugins; [ bimp ];
|
||||||
|
})
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
{ config, pkgs, lib, rice, user, ... }: let
|
{ config, pkgs, rice, ... }:
|
||||||
|
let
|
||||||
# theme-name = "Colloid-Pink-Dark-Compact";
|
# theme-name = "Colloid-Pink-Dark-Compact";
|
||||||
# theme-package = pkgs.colloid-gtk-theme.override {
|
# theme-package = pkgs.colloid-gtk-theme.override {
|
||||||
# themeVariants = [ "pink" ];
|
# themeVariants = [ "pink" ];
|
||||||
@@ -6,65 +7,192 @@
|
|||||||
# sizeVariants = [ "compact" ];
|
# sizeVariants = [ "compact" ];
|
||||||
# tweaks = [ "black" ];
|
# tweaks = [ "black" ];
|
||||||
# };
|
# };
|
||||||
theme-name = "catppuccin-macchiato-pink-compact+rimless,black";
|
|
||||||
theme-package = pkgs.catppuccin-gtk.override {
|
# theme-name = "catppuccin-macchiato-pink-compact+rimless,black";
|
||||||
accents = [ "pink" ];
|
# theme-package = pkgs.catppuccin-gtk.override {
|
||||||
size = "compact";
|
# accents = [ "pink" ];
|
||||||
tweaks = [ "rimless" "black" ];
|
# size = "compact";
|
||||||
variant = "macchiato";
|
# tweaks = [ "rimless" "black" ];
|
||||||
};
|
# variant = "macchiato";
|
||||||
|
# };
|
||||||
|
theme-name = "Materia-dark-compact";
|
||||||
|
theme-package = pkgs.materia-theme-transparent;
|
||||||
|
# theme-name = "numix";
|
||||||
|
# theme-name = "adw-gtk3-dark";
|
||||||
|
# theme-package = pkgs.adw-gtk3;
|
||||||
|
# theme-package = let
|
||||||
|
# theme-string = with rice.color; let
|
||||||
|
# h = rice.lib.nohash;
|
||||||
|
# d = rice.lib.float-to-drune;
|
||||||
|
# in /* ini */ ''
|
||||||
|
# BG=${h background}
|
||||||
|
# FG=${h foreground}
|
||||||
|
# SEL_BG=${h accent.base}
|
||||||
|
# SEL_FG=${h black.base}
|
||||||
|
# ACCENT_BG=${h accent.base}
|
||||||
|
# TXT_BG=${h black.dark}
|
||||||
|
# TXT_FG=${h foreground}
|
||||||
|
# HDR_BG=${h background}
|
||||||
|
# HDR_FG=${h foreground}
|
||||||
|
# BTN_BG=${h accent.dark}
|
||||||
|
# BTN_FG=${h foreground}
|
||||||
|
# HDR_BTN_BG=${h accent.dark}
|
||||||
|
# HDR_BTN_FG=${h foreground}
|
||||||
|
# WM_BORDER_FOCUS=${h border}
|
||||||
|
# WM_BORDER_UNFOCUS=${h accent.dark}
|
||||||
|
# ROUNDNESS=${builtins.toString rice.rounding}
|
||||||
|
# ROUNDNESS_GTK2_HIDPI=${builtins.toString rice.rounding}
|
||||||
|
# OUTLINE_WIDTH=${builtins.toString rice.border-width}
|
||||||
|
# BTN_OUTLINE_OFFSET=-3
|
||||||
|
# BTN_OUTLINE_WIDTH=1
|
||||||
|
# SPACING=${builtins.toString rice.gap-size}
|
||||||
|
# GRADIENT=0.0
|
||||||
|
# CINNAMON_OPACITY=${builtins.toString rice.transparency}
|
||||||
|
# INACTIVE_FG=${h foreground}
|
||||||
|
# INACTIVE_TXT_FG=${h foreground}
|
||||||
|
# INACTIVE_HDR_FG=${h foreground}
|
||||||
|
# ICONS_DARK=${h accent.dark}
|
||||||
|
# ICONS_MEDIUM=${h accent.base}
|
||||||
|
# ICONS_LIGHT=${h accent.bright}
|
||||||
|
# ICONS_LIGHT_FOLDER=${h accent.base}
|
||||||
|
# ICONS_SYMBOLIC_ACTION=${h accent.base}
|
||||||
|
# ICONS_SYMBOLIC_PANEL=${h accent.base}
|
||||||
|
# ICONS_STYLE=icons_papirus
|
||||||
|
# CARET1_FG=${h white.dark}
|
||||||
|
# CARET2_FG=${h black.bright}
|
||||||
|
# CARET_SIZE=0.04
|
||||||
|
# MENU_BG=${h accent.dark}
|
||||||
|
# MENU_FG=${h foreground}
|
||||||
|
# OUTLINE_WIDTH=${builtins.toString rice.border-width}
|
||||||
|
# SPOTIFY_PROTO_BG=${h accent.dark}
|
||||||
|
# SPOTIFY_PROTO_FG=${h foreground}
|
||||||
|
# SPOTIFY_PROTO_SEL=${h blue.base}
|
||||||
|
# BASE16_GENERATE_DARK=False
|
||||||
|
# BASE16_INVERT_TERMINAL=False
|
||||||
|
# BASE16_MILD_TERMINAL=False
|
||||||
|
# UNITY_DEFAULT_LAUNCHER_STYLE=False
|
||||||
|
# '';
|
||||||
|
# # theme-source-pkg = pkgs.materia-theme;
|
||||||
|
# theme-source-pkg = pkgs.themix-gui;
|
||||||
|
# in pkgs.stdenv.mkDerivation {
|
||||||
|
# name = "oomox-gtk";
|
||||||
|
# version = theme-source-pkg.version;
|
||||||
|
# src = theme-source-pkg.src;
|
||||||
|
# dontBuild = true;
|
||||||
|
# nativeBuildInputs = with pkgs; [
|
||||||
|
# glib
|
||||||
|
# libxml2
|
||||||
|
# bc
|
||||||
|
# ];
|
||||||
|
# buildInputs = with pkgs; [
|
||||||
|
# gnome-themes-extra
|
||||||
|
# gdk-pixbuf
|
||||||
|
# librsvg
|
||||||
|
# sassc
|
||||||
|
# inkscape
|
||||||
|
# optipng
|
||||||
|
# ];
|
||||||
|
# propagatedUserEnvPkgs = with pkgs; [
|
||||||
|
# gtk-engine-murrine
|
||||||
|
# ];
|
||||||
|
# # installPhase = ''
|
||||||
|
# # mkdir -p $out/share/themes/materia
|
||||||
|
# # patchShebangs .
|
||||||
|
# # ./change_color.sh -o materia -t $out/share/themes <(echo -e "${theme-string}")
|
||||||
|
# # '';
|
||||||
|
# installPhase = ''
|
||||||
|
# mkdir -p $out/share/icons/icons_papirus
|
||||||
|
# mkdir -p $out/share/icons/icons_numix
|
||||||
|
# mkdir -p $out/share/icons/icons_suruplus
|
||||||
|
# echo "${theme-string}" > $out/oomox.colors
|
||||||
|
# pushd plugins/icons_papirus
|
||||||
|
# patchShebangs .
|
||||||
|
# ./change_color.sh -o icons_papirus -d $out/share/icons/icons_papirus $out/oomox.colors
|
||||||
|
# popd
|
||||||
|
# pushd plugins/icons_numix
|
||||||
|
# patchShebangs .
|
||||||
|
# ./change_color.sh -o icons_numix -d $out/share/icons/icons_numix $out/oomox.colors
|
||||||
|
# popd
|
||||||
|
# pushd plugins/icons_suruplus
|
||||||
|
# patchShebangs .
|
||||||
|
# ./change_color.sh -o icons_suruplus -d $out/share/icons/icons_suruplus $out/oomox.colors
|
||||||
|
# popd
|
||||||
|
# mkdir -p $out/share/themes/numix
|
||||||
|
# pushd plugins/theme_oomox
|
||||||
|
# patchShebangs .
|
||||||
|
# HOME=$out ./change_color.sh -o numix -m all -t $out/share/themes $out/oomox.colors
|
||||||
|
# popd
|
||||||
|
# '';
|
||||||
|
# meta = {
|
||||||
|
# description = "custom theme utility";
|
||||||
|
# homepage = "https://github.com/themix-project/themix-gui";
|
||||||
|
# maintainers = [ ];
|
||||||
|
# };
|
||||||
|
# };
|
||||||
in {
|
in {
|
||||||
home.packages = with pkgs; [
|
home = {
|
||||||
# gnome.gnome-themes-extra
|
packages = with pkgs; [
|
||||||
# gnome.adwaita-icon-theme
|
# gnome.gnome-themes-extra
|
||||||
gnome.gnome-tweaks
|
adwaita-icon-theme
|
||||||
gtk3
|
gnome-tweaks
|
||||||
gtk4
|
gtk3
|
||||||
# catppuccin-gtk
|
gtk4
|
||||||
bibata-cursors
|
# catppuccin-gtk
|
||||||
] ++ [
|
bibata-cursors
|
||||||
# pkgs-unstable.themix-gui
|
] ++ [
|
||||||
];
|
# pkgs-unstable.themix-gui
|
||||||
|
];
|
||||||
|
sessionVariables.GTK_THEME = theme-name;
|
||||||
home.sessionVariables.GTK_THEME = theme-name;
|
pointerCursor = {
|
||||||
|
gtk.enable = true;
|
||||||
|
x11.enable = true;
|
||||||
|
} // rice.cursor;
|
||||||
|
};
|
||||||
gtk = {
|
gtk = {
|
||||||
enable = true;
|
enable = true;
|
||||||
theme = {
|
theme = {
|
||||||
name = theme-name;
|
name = theme-name;
|
||||||
package = theme-package;
|
package = theme-package;
|
||||||
};
|
|
||||||
gtk3.extraConfig = {
|
|
||||||
gtk-application-prefer-dark-theme = 1;
|
|
||||||
};
|
|
||||||
gtk4.extraConfig = {
|
|
||||||
gtk-application-prefer-dark-theme = 1;
|
|
||||||
};
|
|
||||||
cursorTheme = rice.cursor;
|
|
||||||
};
|
};
|
||||||
|
gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
|
||||||
|
gtk3 = {
|
||||||
|
extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||||
|
# extraCss = with rice.color; /* css */ ''
|
||||||
|
# wnck-pager {
|
||||||
|
# color: ${black.bright};
|
||||||
|
# background-color: ${background};
|
||||||
|
# }
|
||||||
|
|
||||||
home.pointerCursor = {
|
# wnck-pager:selected {
|
||||||
gtk.enable = true;
|
# color: ${background};
|
||||||
x11.enable = true;
|
# background-color: ${accent.base};
|
||||||
} // rice.cursor;
|
# }
|
||||||
|
# '';
|
||||||
xdg.configFile = {
|
# window.background {
|
||||||
"gtk-4.0/assets".source = "${theme-package}/share/themes/${theme-name}/gtk-4.0/assets";
|
# background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency});
|
||||||
"gtk-4.0/gtk.css".source = "${theme-package}/share/themes/${theme-name}/gtk-4.0/gtk.css";
|
# }
|
||||||
"gtk-4.0/gtk-dark.css".source = "${theme-package}/share/themes/${theme-name}/gtk-4.0/gtk-dark.css";
|
# .background, .view, .surface, .frame, box, window.decoration, stack {
|
||||||
|
# background-color: transparent;
|
||||||
|
# }
|
||||||
};
|
};
|
||||||
|
gtk4 = {
|
||||||
|
extraConfig.gtk-application-prefer-dark-theme = 1;
|
||||||
|
extraCss = config.gtk.gtk3.extraCss;
|
||||||
|
};
|
||||||
dconf = {
|
cursorTheme = rice.cursor;
|
||||||
enable = true;
|
};
|
||||||
settings = {
|
xdg.configFile = {
|
||||||
"org/gnome/desktop/interface" = {
|
"gtk-4.0/assets".source = "${theme-package}/share/themes/${theme-name}/gtk-3.20/assets";
|
||||||
color-scheme = "prefer-dark";
|
"gtk-4.0/gtk.css".source = "${theme-package}/share/themes/${theme-name}/gtk-3.20/gtk.css";
|
||||||
gtk-theme = theme-name;
|
"gtk-4.0/gtk-dark.css".source = "${theme-package}/share/themes/${theme-name}/gtk-3.20/gtk-dark.css";
|
||||||
};
|
};
|
||||||
|
dconf = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "prefer-dark";
|
||||||
|
# gtk-theme = theme-name;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
};
|
||||||
|
}
|
||||||
|
|||||||
@@ -92,47 +92,49 @@ in {
|
|||||||
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
"${main.name}, ${main.resolution}, ${main.position}, ${main.scale}"
|
||||||
]));
|
]));
|
||||||
|
|
||||||
workspace =
|
workspace = let
|
||||||
let
|
d1 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||||
d1 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
d2 = if host == "NxXPS" then monitors.xps.second.name else (if host == "NxNORTH" then monitors.north.left.name else monitors.ace.main.name);
|
||||||
d2 = if host == "NxXPS" then monitors.xps.second.name else (if host == "NxNORTH" then monitors.north.left.name else monitors.ace.main.name);
|
d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
||||||
d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.main.name else monitors.ace.main.name);
|
# d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.right.name else monitors.ace.main.name);
|
||||||
# d3 = if host == "NxXPS" then monitors.xps.main.name else (if host == "NxNORTH" then monitors.north.right.name else monitors.ace.main.name);
|
compact = "gapsin:0, gapsout:0, bordersize:1, rounding:false";
|
||||||
compact = "gapsin:0, gapsout:0, bordersize:1, rounding:false";
|
in [
|
||||||
in
|
"11, monitor:${d1}, default:true"
|
||||||
[
|
"12, monitor:${d1}"
|
||||||
"11, monitor:${d1}, default:true"
|
"13, monitor:${d1}"
|
||||||
"12, monitor:${d1}"
|
"14, monitor:${d1}"
|
||||||
"13, monitor:${d1}"
|
"15, monitor:${d1}"
|
||||||
"14, monitor:${d1}"
|
"16, monitor:${d1}"
|
||||||
"15, monitor:${d1}"
|
"17, monitor:${d1}"
|
||||||
"16, monitor:${d1}"
|
"18, monitor:${d1}"
|
||||||
"17, monitor:${d1}"
|
"19, monitor:${d1}"
|
||||||
"18, monitor:${d1}"
|
"10, monitor:${d1}, ${compact}"
|
||||||
"19, monitor:${d1}"
|
"100, monitor:${d1}, ${compact}"
|
||||||
"10, monitor:${d1}, ${compact}"
|
"21, monitor:${d2}, default:true, ${compact}"
|
||||||
"100, monitor:${d1}, ${compact}"
|
"22, monitor:${d2}"
|
||||||
"21, monitor:${d2}, default:true, ${compact}"
|
"23, monitor:${d2}"
|
||||||
"22, monitor:${d2}"
|
"24, monitor:${d2}"
|
||||||
"23, monitor:${d2}"
|
"25, monitor:${d2}"
|
||||||
"24, monitor:${d2}"
|
"26, monitor:${d2}"
|
||||||
"25, monitor:${d2}"
|
"27, monitor:${d2}"
|
||||||
"26, monitor:${d2}"
|
"28, monitor:${d2}"
|
||||||
"27, monitor:${d2}"
|
"29, monitor:${d2}"
|
||||||
"28, monitor:${d2}"
|
"20, monitor:${d2}"
|
||||||
"29, monitor:${d2}"
|
"31, monitor:${d3}, default:${let x = if host == "NxNORTH" then "true" else "false"; in x}"
|
||||||
"20, monitor:${d2}"
|
"32, monitor:${d3}"
|
||||||
"31, monitor:${d3}, default:${let x = if host == "NxNORTH" then "true" else "false"; in x}"
|
"33, monitor:${d3}"
|
||||||
"32, monitor:${d3}"
|
"34, monitor:${d3}"
|
||||||
"33, monitor:${d3}"
|
"35, monitor:${d3}"
|
||||||
"34, monitor:${d3}"
|
"36, monitor:${d3}"
|
||||||
"35, monitor:${d3}"
|
"37, monitor:${d3}"
|
||||||
"36, monitor:${d3}"
|
"38, monitor:${d3}"
|
||||||
"37, monitor:${d3}"
|
"39, monitor:${d3}"
|
||||||
"38, monitor:${d3}"
|
"30, monitor:${d3}, ${compact}"
|
||||||
"39, monitor:${d3}"
|
] ++ [
|
||||||
"30, monitor:${d3}, ${compact}"
|
# no gaps when only
|
||||||
];
|
"w[tv1], gapsout:0, gapsin:0"
|
||||||
|
"f[1], gapsout:0, gapsin:0"
|
||||||
|
];
|
||||||
|
|
||||||
# "device:logitech-wireless-mouse-mx-master-1" = {
|
# "device:logitech-wireless-mouse-mx-master-1" = {
|
||||||
# sensitivity = -0.2;
|
# sensitivity = -0.2;
|
||||||
@@ -175,12 +177,12 @@ in {
|
|||||||
|
|
||||||
decoration = {
|
decoration = {
|
||||||
rounding = rice.rounding;
|
rounding = rice.rounding;
|
||||||
drop_shadow = false;
|
# drop_shadow = false;
|
||||||
shadow_range = "20";
|
# shadow_range = "20";
|
||||||
shadow_offset = "0 0";
|
# shadow_offset = "0 0";
|
||||||
shadow_render_power = "4";
|
# shadow_render_power = "4";
|
||||||
"col.shadow" = "rgba(${rice.lib.nohash rice.color.red.base}ff)";
|
# "col.shadow" = "rgba(${rice.lib.nohash rice.color.red.base}ff)";
|
||||||
"col.shadow_inactive" = "rgba(${rice.lib.nohash rice.color.black.base}ff)";
|
# "col.shadow_inactive" = "rgba(${rice.lib.nohash rice.color.black.base}ff)";
|
||||||
|
|
||||||
active_opacity = "1.0";
|
active_opacity = "1.0";
|
||||||
inactive_opacity = "1.0";
|
inactive_opacity = "1.0";
|
||||||
@@ -229,7 +231,6 @@ in {
|
|||||||
|
|
||||||
dwindle = {
|
dwindle = {
|
||||||
preserve_split = true; # you probably want this
|
preserve_split = true; # you probably want this
|
||||||
no_gaps_when_only = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# master = {
|
# master = {
|
||||||
@@ -259,6 +260,11 @@ in {
|
|||||||
"opacity ${transparency},class:^(com.chatterino.*)$"
|
"opacity ${transparency},class:^(com.chatterino.*)$"
|
||||||
"opacity ${transparency},class:^(chatterino)$"
|
"opacity ${transparency},class:^(chatterino)$"
|
||||||
"bordercolor rgba(${rice.lib.nohash rice.color.magenta.bright}ff), pinned:1"
|
"bordercolor rgba(${rice.lib.nohash rice.color.magenta.bright}ff), pinned:1"
|
||||||
|
] ++ [
|
||||||
|
"bordersize 0, floating:0, onworkspace:w[tv1]"
|
||||||
|
"rounding 0, floating:0, onworkspace:w[tv1]"
|
||||||
|
"bordersize 0, floating:0, onworkspace:f[1]"
|
||||||
|
"rounding 0, floating:0, onworkspace:f[1]"
|
||||||
];
|
];
|
||||||
|
|
||||||
windowrule = [
|
windowrule = [
|
||||||
@@ -275,12 +281,12 @@ in {
|
|||||||
"opacity ${transparency}, discord"
|
"opacity ${transparency}, discord"
|
||||||
"opacity ${transparency}, vesktop"
|
"opacity ${transparency}, vesktop"
|
||||||
"opacity ${transparency}, Element"
|
"opacity ${transparency}, Element"
|
||||||
"opacity ${transparency}, thunderbird"
|
# "opacity ${transparency}, thunderbird"
|
||||||
"opacity ${transparency}, lutris"
|
"opacity ${transparency}, lutris"
|
||||||
"opacity ${transparency}, element"
|
"opacity ${transparency}, element"
|
||||||
"opacity ${transparency}, ^([sS]potify)$"
|
# "opacity ${transparency}, ^([sS]potify)$"
|
||||||
"opacity ${transparency}, virt-manager"
|
# "opacity ${transparency}, virt-manager"
|
||||||
"opacity ${transparency}, thunar"
|
# "opacity ${transparency}, thunar"
|
||||||
"opacity ${transparency}, title:^(wlogout)$"
|
"opacity ${transparency}, title:^(wlogout)$"
|
||||||
"opaque, title:^(GNU Image Manipulation Program)$"
|
"opaque, title:^(GNU Image Manipulation Program)$"
|
||||||
"float, title:^(Picture-in-Picture)$"
|
"float, title:^(Picture-in-Picture)$"
|
||||||
@@ -327,13 +333,13 @@ in {
|
|||||||
"SUPER, F1, workspace, 100"
|
"SUPER, F1, workspace, 100"
|
||||||
"SUPER SHIFT, F1, movetoworkspace, 100"
|
"SUPER SHIFT, F1, movetoworkspace, 100"
|
||||||
# "SUPER, F2,"
|
# "SUPER, F2,"
|
||||||
"SUPER, F3, toggleopaque"
|
# "SUPER, F3, toggleopaque"
|
||||||
# "SUPER, F4,"
|
# "SUPER, F4,"
|
||||||
"SUPER, F5, exec, nx_gcal_event force-lookup"
|
"SUPER, F5, exec, nx_gcal_event force-lookup"
|
||||||
"SUPER SHIFT, F5, exec, nx_gcal_event reauthenticate"
|
"SUPER SHIFT, F5, exec, nx_gcal_event reauthenticate"
|
||||||
"SUPER, F6, exec, kitty -e 'htop'"
|
"SUPER, F6, exec, kitty -e 'htop'"
|
||||||
"SUPER, F7, exec, kitty -e 'nmtui'"
|
"SUPER, F7, exec, kitty -e 'nmtui'"
|
||||||
''SUPER, F8, exec, find ~/Pictures/wallpapers/* -type f -not -path "~/Pictures/wallpapers/.git/*" | sort -R | head -n 1 | xargs swww img --transition-type wipe --transition-angle 60 --transition-step 120 --transition-fps 120''
|
''SUPER, F8, exec, find ~/Pictures/wallpapers/* -type f -not -path "~/Pictures/wallpapers/.git/*" | sort -R | head -n 1 | xargs -d '\n' swww img --transition-type wipe --transition-angle 60 --transition-step 120 --transition-fps 120 --transition-duration 2''
|
||||||
"SUPER, F9, execr, waybar_mode set ' '"
|
"SUPER, F9, execr, waybar_mode set ' '"
|
||||||
"SUPER, F9, submap, color"
|
"SUPER, F9, submap, color"
|
||||||
# "SUPER, F10, hyprload,update"
|
# "SUPER, F10, hyprload,update"
|
||||||
@@ -565,9 +571,9 @@ in {
|
|||||||
submap = reset
|
submap = reset
|
||||||
|
|
||||||
submap = color
|
submap = color
|
||||||
${action_simple { key = "W"; cmd = ''exec,kitty -e sh -c 'change_colors_json img $(swww query | sed -n 1p | sed -e "s-.*image: --g") && nh home switch' ''; }}
|
${action_simple { key = "W"; cmd = ''exec,swww query | sed -n 1p | sed -E 's-.*image: (.*)-"\1"-g' | xargs change_colors_json img && notify-send 'change_colors_json img successfull' ''; }}
|
||||||
${action_simple { key = "M"; cmd = ''exec,change_colors_json manual && kitty -e sh -c 'nh home switch && firefox /home/${user}/.config/color-pallete.html' ''; }}
|
${action_simple { key = "M"; cmd = ''exec,change_colors_json manual && notify-send 'change_colors_json manual successfull' ''; }}
|
||||||
${action_simple { key = "D"; cmd = ''exec,firefox /home/${user}/.config/color-pallete.html ''; }}
|
${action_simple { key = "D"; cmd = ''exec,firefox /home/${user}/.config/color-pallete.html''; }}
|
||||||
bind = , Escape, execr, waybar_mode unset
|
bind = , Escape, execr, waybar_mode unset
|
||||||
bind = , Escape, submap, reset
|
bind = , Escape, submap, reset
|
||||||
submap = reset
|
submap = reset
|
||||||
@@ -584,12 +590,10 @@ in {
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file =
|
home.file = let
|
||||||
let
|
m = if host == "NxXPS" then monitors.xps.main.name else monitors.north.main.name;
|
||||||
m = if host == "NxXPS" then monitors.xps.main.name else monitors.north.main.name;
|
in {
|
||||||
in
|
".config/hypr/hyprlock.conf".text = ''
|
||||||
{
|
|
||||||
".config/hypr/hyprlock.conf".text = ''
|
|
||||||
background {
|
background {
|
||||||
monitor = ${m}
|
monitor = ${m}
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
programs.kitty = {
|
programs.kitty = {
|
||||||
enable = true;
|
enable = true;
|
||||||
font = {
|
font = {
|
||||||
name = rice.font.code.name2;
|
name = rice.font.code.name;
|
||||||
package = rice.font.code.package;
|
package = rice.font.code.package;
|
||||||
};
|
};
|
||||||
settings = with rice.color; {
|
settings = with rice.color; {
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
home.packages = with pkgs; [ libnotify ];
|
home.packages = with pkgs; [ libnotify ];
|
||||||
services.mako = with rice; {
|
services.mako = with rice; {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultTimeout = 5000; # in ms
|
defaultTimeout = 10000; # in ms
|
||||||
backgroundColor = color.background;
|
backgroundColor = color.background;
|
||||||
textColor = color.foreground;
|
textColor = color.foreground;
|
||||||
borderColor = color.border;
|
borderColor = color.border;
|
||||||
borderSize = border-width;
|
borderSize = border-width;
|
||||||
font = font.code.name2;
|
font = font.code.name;
|
||||||
borderRadius = rounding;
|
borderRadius = rounding;
|
||||||
anchor = "top-right";
|
anchor = "top-right";
|
||||||
margin = builtins.toString (gap-size * 2) ;
|
margin = builtins.toString (gap-size * 2) ;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
font: "${rice.font.code.name2} 12";
|
font: "${rice.font.code.name} 12";
|
||||||
foreground: ${foreground};
|
foreground: ${foreground};
|
||||||
background-color: ${background}${trdr};
|
background-color: ${background}${trdr};
|
||||||
padding: 0px;
|
padding: 0px;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
];
|
];
|
||||||
userSettings = {
|
userSettings = {
|
||||||
workbench.colorTheme = "Just Black";
|
workbench.colorTheme = "Just Black";
|
||||||
editor.fontFamily = "'${rice.font.code.name2}', 'monospace', monospace";
|
editor.fontFamily = "'${rice.font.code.name}', 'monospace', monospace";
|
||||||
remote.SSH.useLocalServer = false;
|
remote.SSH.useLocalServer = false;
|
||||||
};
|
};
|
||||||
enableUpdateCheck = false;
|
enableUpdateCheck = false;
|
||||||
|
|||||||
@@ -5,155 +5,158 @@
|
|||||||
libraries = with python3Packages; [ numpy pillow scikit-learn ];
|
libraries = with python3Packages; [ numpy pillow scikit-learn ];
|
||||||
flakeIgnore = [ "E302" "E305" "E226" "E501" ];
|
flakeIgnore = [ "E302" "E305" "E226" "E501" ];
|
||||||
} /*python */ ''
|
} /*python */ ''
|
||||||
from colorsys import hls_to_rgb, rgb_to_hls
|
from colorsys import hls_to_rgb, rgb_to_hls
|
||||||
import json
|
import json
|
||||||
import sys
|
import sys
|
||||||
import subprocess
|
import subprocess
|
||||||
from typing import Literal, cast
|
from time import sleep
|
||||||
from numpy.typing import NDArray
|
from typing import Literal, cast
|
||||||
from sklearn.cluster import KMeans
|
from numpy.typing import NDArray
|
||||||
import numpy as np
|
from sklearn.cluster import KMeans
|
||||||
from PIL import Image
|
import numpy as np
|
||||||
|
from PIL import Image
|
||||||
|
|
||||||
def fc(c: int) -> str:
|
def fc(c: int) -> str:
|
||||||
assert c < 256
|
assert c < 256
|
||||||
s = str(hex(c))[2:]
|
s = str(hex(c))[2:]
|
||||||
if c < 16:
|
if c < 16:
|
||||||
return "0" + s
|
return "0" + s
|
||||||
elif len(s) == 1:
|
elif len(s) == 1:
|
||||||
return s + s
|
return s + s
|
||||||
else:
|
else:
|
||||||
return s
|
return s
|
||||||
|
|
||||||
class Color(object):
|
class Color(object):
|
||||||
def __init__(self, rgb: tuple[int, ...], frequency: float = 1):
|
def __init__(self, rgb: tuple[int, ...], frequency: float = 1):
|
||||||
assert len(rgb) == 3, "RGB values must be a tuple of length 3"
|
assert len(rgb) == 3, "RGB values must be a tuple of length 3"
|
||||||
self.rgb = cast(tuple[int, int, int], rgb)
|
self.rgb = cast(tuple[int, int, int], rgb)
|
||||||
self.freq: float = frequency
|
self.freq: float = frequency
|
||||||
|
|
||||||
def __lt__(self, other: "Color") -> bool:
|
def __lt__(self, other: "Color") -> bool:
|
||||||
return self.freq < other.freq
|
return self.freq < other.freq
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def hls(self) -> tuple[float, float, float]:
|
def hls(self) -> tuple[float, float, float]:
|
||||||
return rgb_to_hls(r=self.rgb[0] / 255, g=self.rgb[1] / 255, b=self.rgb[2] / 255)
|
return rgb_to_hls(r=self.rgb[0] / 255, g=self.rgb[1] / 255, b=self.rgb[2] / 255)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def luminance(self) -> float:
|
def luminance(self) -> float:
|
||||||
return np.dot(np.array([0.2126, 0.7152, 0.0722]), self.rgb)
|
return np.dot(np.array([0.2126, 0.7152, 0.0722]), self.rgb)
|
||||||
|
|
||||||
def k_means_extraction(arr: NDArray[float], height: int, width: int, palette_size: int) -> list[Color]:
|
def k_means_extraction(arr: NDArray[float], height: int, width: int, palette_size: int) -> list[Color]:
|
||||||
arr = np.reshape(arr, (width * height, -1))
|
arr = np.reshape(arr, (width * height, -1))
|
||||||
model = KMeans(n_clusters=palette_size, n_init="auto", init="k-means++", random_state=2024)
|
model = KMeans(n_clusters=palette_size, n_init="auto", init="k-means++", random_state=2024)
|
||||||
labels = model.fit_predict(arr)
|
labels = model.fit_predict(arr)
|
||||||
palette = np.array(model.cluster_centers_, dtype=int)
|
palette = np.array(model.cluster_centers_, dtype=int)
|
||||||
color_count = np.bincount(labels)
|
color_count = np.bincount(labels)
|
||||||
color_frequency = color_count / float(np.sum(color_count))
|
color_frequency = color_count / float(np.sum(color_count))
|
||||||
colors = []
|
colors = []
|
||||||
for color, freq in zip(palette, color_frequency):
|
for color, freq in zip(palette, color_frequency):
|
||||||
colors.append(Color(color, freq))
|
colors.append(Color(color, freq))
|
||||||
return colors
|
return colors
|
||||||
|
|
||||||
|
|
||||||
class Palette:
|
class Palette:
|
||||||
def __init__(self, colors: list[Color]):
|
def __init__(self, colors: list[Color]):
|
||||||
self.colors = colors
|
self.colors = colors
|
||||||
self.frequencies = [c.freq for c in colors]
|
self.frequencies = [c.freq for c in colors]
|
||||||
|
|
||||||
def __getitem__(self, item: int) -> Color:
|
def __getitem__(self, item: int) -> Color:
|
||||||
return self.colors[item]
|
return self.colors[item]
|
||||||
|
|
||||||
def __len__(self) -> int:
|
def __len__(self) -> int:
|
||||||
return self.number_of_colors
|
return self.number_of_colors
|
||||||
|
|
||||||
def ensure_color(c: Color, alter_sat: bool) -> list[int]:
|
def ensure_color(c: Color, alter_sat: bool) -> list[int]:
|
||||||
hue, lum, sat = c.hls
|
hue, lum, sat = c.hls
|
||||||
if alter_sat:
|
if alter_sat:
|
||||||
new_sat = min((sat**0.5) + 0.4, 1)
|
new_sat = min((sat**0.5) + 0.4, 1)
|
||||||
else:
|
else:
|
||||||
new_sat = sat
|
new_sat = sat
|
||||||
new_lum = max(lum, 0.5)
|
new_lum = max(lum, 0.5)
|
||||||
r, g, b = hls_to_rgb(h=hue, l=new_lum, s=new_sat)
|
r, g, b = hls_to_rgb(h=hue, l=new_lum, s=new_sat)
|
||||||
return [int(r*255), int(g*255), int(b*255)]
|
return [int(r*255), int(g*255), int(b*255)]
|
||||||
|
|
||||||
def list_to_hex(ilist: list[int]) -> str:
|
def list_to_hex(ilist: list[int]) -> str:
|
||||||
return f"#{fc(ilist[0])}{fc(ilist[1])}{fc(ilist[2])}"
|
return f"#{fc(ilist[0])}{fc(ilist[1])}{fc(ilist[2])}"
|
||||||
|
|
||||||
def alter_hue(ilist: list[int], hue: int) -> list[int]:
|
def alter_hue(ilist: list[int], hue: int) -> list[int]:
|
||||||
assert hue >= 0 and hue <= 360
|
assert hue >= 0 and hue <= 360
|
||||||
r, g, b = ilist
|
r, g, b = ilist
|
||||||
h, l, s = rgb_to_hls((r/255), (g/255), (b/255))
|
h, l, s = rgb_to_hls((r/255), (g/255), (b/255))
|
||||||
new_hue = (((h*360) + hue) % 360) / 360
|
new_hue = (((h*360) + hue) % 360) / 360
|
||||||
r, g, b = hls_to_rgb(h=new_hue, l=l, s=s)
|
r, g, b = hls_to_rgb(h=new_hue, l=l, s=s)
|
||||||
return [int(r*255), int(g*255), int(b*255)]
|
return [int(r*255), int(g*255), int(b*255)]
|
||||||
|
|
||||||
def alter_l(ilist: list[int], l_in_1_0: float) -> list[int]:
|
def alter_l(ilist: list[int], l_in_1_0: float) -> list[int]:
|
||||||
assert l_in_1_0 >= 0 and l_in_1_0 <= 1
|
assert l_in_1_0 >= 0 and l_in_1_0 <= 1
|
||||||
r, g, b = ilist
|
r, g, b = ilist
|
||||||
h, _, s = rgb_to_hls((r/255), (g/255), (b/255))
|
h, _, s = rgb_to_hls((r/255), (g/255), (b/255))
|
||||||
r, g, b = hls_to_rgb(h=h, l=l_in_1_0, s=s)
|
r, g, b = hls_to_rgb(h=h, l=l_in_1_0, s=s)
|
||||||
return [int(r*255), int(g*255), int(b*255)]
|
return [int(r*255), int(g*255), int(b*255)]
|
||||||
|
|
||||||
def extract_colors(
|
def extract_colors(
|
||||||
image: str,
|
image: str,
|
||||||
palette_size: int = 5,
|
palette_size: int = 5,
|
||||||
resize: bool = True,
|
resize: bool = True,
|
||||||
sort_mode: Literal["luminance", "frequency"] | None = None,
|
sort_mode: Literal["luminance", "frequency"] | None = None,
|
||||||
) -> Palette:
|
) -> Palette:
|
||||||
|
|
||||||
img = Image.open(image).convert("RGB")
|
img = Image.open(image).convert("RGB")
|
||||||
|
|
||||||
# open the image
|
# open the image
|
||||||
img = img.resize((256, 256))
|
img = img.resize((256, 256))
|
||||||
width, height = img.size
|
width, height = img.size
|
||||||
arr = np.asarray(img)
|
arr = np.asarray(img)
|
||||||
|
|
||||||
colors = k_means_extraction(arr, height, width, palette_size)
|
colors = k_means_extraction(arr, height, width, palette_size)
|
||||||
|
|
||||||
if sort_mode == "luminance":
|
if sort_mode == "luminance":
|
||||||
colors.sort(key=lambda c: c.luminance, reverse=False)
|
colors.sort(key=lambda c: c.luminance, reverse=False)
|
||||||
else:
|
else:
|
||||||
colors.sort(reverse=True)
|
colors.sort(reverse=True)
|
||||||
|
|
||||||
return Palette(colors)
|
return Palette(colors)
|
||||||
|
|
||||||
def hyprpicker() -> Color:
|
def hyprpicker() -> Color:
|
||||||
ret = str(subprocess.run(["${pkgs.hyprpicker}/bin/hyprpicker", "-f", "rgb"], capture_output=True).stdout)[2:-3]
|
ret = str(subprocess.run(["${pkgs.hyprpicker}/bin/hyprpicker", "-n", "-f", "rgb"], capture_output=True).stdout)[2:-3]
|
||||||
return Color([int(c) for c in ret.split(" ")])
|
return Color([int(c) for c in ret.split(" ")])
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
if sys.argv[1] == "img":
|
if sys.argv[1] == "img":
|
||||||
img = sys.argv[2]
|
img = sys.argv[2]
|
||||||
palette = extract_colors(image=img, palette_size=3)
|
palette = extract_colors(image=img, palette_size=3)
|
||||||
accent = ensure_color(c=palette[0], alter_sat=False)
|
accent = ensure_color(c=palette[0], alter_sat=False)
|
||||||
secondary = ensure_color(c=palette[1], alter_sat=True)
|
secondary = ensure_color(c=palette[1], alter_sat=True)
|
||||||
tertiary = ensure_color(c=palette[2], alter_sat=False)
|
tertiary = ensure_color(c=palette[2], alter_sat=False)
|
||||||
elif sys.argv[1] == "manual":
|
elif sys.argv[1] == "manual":
|
||||||
accent = ensure_color(c=hyprpicker(), alter_sat=False)
|
accent = ensure_color(c=hyprpicker(), alter_sat=False)
|
||||||
secondary = ensure_color(c=hyprpicker(), alter_sat=True)
|
sleep(0.1)
|
||||||
tertiary = ensure_color(c=hyprpicker(), alter_sat=False)
|
secondary = ensure_color(c=hyprpicker(), alter_sat=True)
|
||||||
|
sleep(0.1)
|
||||||
|
tertiary = ensure_color(c=hyprpicker(), alter_sat=False)
|
||||||
|
|
||||||
weird = alter_hue(ilist=accent, hue=80)
|
weird = alter_hue(ilist=accent, hue=80)
|
||||||
special = alter_hue(ilist=accent, hue=180)
|
special = alter_hue(ilist=accent, hue=180)
|
||||||
foreground = alter_l(accent, 0.9)
|
foreground = alter_l(accent, 0.9)
|
||||||
background = alter_l(accent, 0.1)
|
background = alter_l(accent, 0.1)
|
||||||
|
|
||||||
d = {
|
d = {
|
||||||
"base": {
|
"base": {
|
||||||
"foreground": list_to_hex(foreground),
|
"foreground": list_to_hex(foreground),
|
||||||
"background": list_to_hex(background)
|
"background": list_to_hex(background)
|
||||||
},
|
},
|
||||||
"to_alter": {
|
"to_alter": {
|
||||||
"accent": list_to_hex(accent),
|
"accent": list_to_hex(accent),
|
||||||
"secondary": list_to_hex(secondary),
|
"secondary": list_to_hex(secondary),
|
||||||
"tertiary": list_to_hex(tertiary),
|
"tertiary": list_to_hex(tertiary),
|
||||||
"special": list_to_hex(special),
|
"special": list_to_hex(special),
|
||||||
"weird": list_to_hex(weird)
|
"weird": list_to_hex(weird)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
with open("/home/nx2/nix-dots/flake-modules/colors.json", "w") as f:
|
with open("/home/nx2/nix-dots/flake-modules/colors.json", "w") as f:
|
||||||
f.write(json.dumps(d, indent=4))
|
f.write(json.dumps(d, indent=4))
|
||||||
'')
|
'')
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ in {
|
|||||||
};
|
};
|
||||||
style = with rice.color; let f = rice.lib.hex-to-rgb-comma-string; in ''
|
style = with rice.color; let f = rice.lib.hex-to-rgb-comma-string; in ''
|
||||||
* {
|
* {
|
||||||
font-family: ${rice.font.code.name2};
|
font-family: ${rice.font.code.name};
|
||||||
font-size: 1em;
|
font-size: 1em;
|
||||||
min-height: 0px;
|
min-height: 0px;
|
||||||
margin: 0px;
|
margin: 0px;
|
||||||
@@ -223,7 +223,7 @@ in {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#window, #custom-ctimeremaining {
|
#window, #custom-ctimeremaining {
|
||||||
font-family: ${rice.font.base.name}, ${rice.font.code.name2};
|
font-family: ${rice.font.base.name}, ${rice.font.code.name};
|
||||||
color: rgb(${f tertiary.bright});
|
color: rgb(${f tertiary.bright});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,14 +3,149 @@
|
|||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# yazi
|
# yazi
|
||||||
dragon
|
# dragon
|
||||||
unar
|
unar
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.yazi = {
|
programs.yazi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
# package = pkgs.yazi;
|
||||||
package = inputs.yazi.packages.${system}.default;
|
package = inputs.yazi.packages.${system}.default;
|
||||||
enableFishIntegration = true;
|
enableFishIntegration = true;
|
||||||
|
shellWrapperName = "ya";
|
||||||
|
plugins = with inputs.yazi-plugins.packages.${system}; {
|
||||||
|
inherit chmod starship;
|
||||||
|
};
|
||||||
|
# initLua = /* lua */ '' '';
|
||||||
|
keymap = {
|
||||||
|
keymap = [
|
||||||
|
{ on = "<Esc>"; run = "escape"; desc = "Exit visual mode, clear selected, or cancel search"; }
|
||||||
|
{ on = "q"; run = "quit"; desc = "Exit the process"; }
|
||||||
|
{ on = "Q"; run = "quit --no-cwd-file"; desc = "Exit the process without writing cwd-file"; }
|
||||||
|
{ on = "<C-w>"; run = "close"; desc = "Close the current tab, or quit if it is last tab"; }
|
||||||
|
{ on = "<C-z>"; run = "suspend"; desc = "Suspend the process"; }
|
||||||
|
# Hopping
|
||||||
|
{ on = "k"; run = "arrow -1"; desc = "Move cursor up"; }
|
||||||
|
{ on = "j"; run = "arrow 1"; desc = "Move cursor down"; }
|
||||||
|
{ on = "<Up>"; run = "arrow -1"; desc = "Move cursor up"; }
|
||||||
|
{ on = "<Down>"; run = "arrow 1"; desc = "Move cursor down"; }
|
||||||
|
{ on = "<C-u>"; run = "arrow -50%"; desc = "Move cursor up half page"; }
|
||||||
|
{ on = "<C-d>"; run = "arrow 50%"; desc = "Move cursor down half page"; }
|
||||||
|
{ on = "<C-b>"; run = "arrow -100%"; desc = "Move cursor up one page"; }
|
||||||
|
{ on = "<C-f>"; run = "arrow 100%"; desc = "Move cursor down one page"; }
|
||||||
|
{ on = "<PageUp>"; run = "arrow -100%"; desc = "Move cursor up one page"; }
|
||||||
|
{ on = "<PageDown>"; run = "arrow 100%"; desc = "Move cursor down one page"; }
|
||||||
|
{ on = [ "g" "g" ]; run = "arrow -99999999"; desc = "Move cursor to the top"; }
|
||||||
|
{ on = [ "g" "e" ]; run = "arrow 99999999"; desc = "Move cursor to the end"; }
|
||||||
|
{ on = [ "g" "h" ]; run = "cd ~"; desc = "Go to the home directory"; }
|
||||||
|
{ on = [ "g" "n" ]; run = "cd ~/nix-dots"; desc = "Go to the Nix-Dotfiles directory"; }
|
||||||
|
{ on = [ "g" "n" ]; run = "cd /nix/store"; desc = "Go to the Nix-Store"; }
|
||||||
|
{ on = [ "g" "c" ]; run = "cd ~/.config"; desc = "Go to the config directory"; }
|
||||||
|
{ on = [ "g" "l" ]; run = "cd ~/.locale"; desc = "Go to the .locale directory"; }
|
||||||
|
{ on = [ "g" "C" ]; run = "cd ~/.cache"; desc = "Go to the .cache directory"; }
|
||||||
|
{ on = [ "g" "m" ]; run = "cd ~/media"; desc = "Go to the media (udiskie mount) directory"; }
|
||||||
|
{ on = [ "g" "v" ]; run = "cd ~/Videos"; desc = "Go to the Videos directory"; }
|
||||||
|
{ on = [ "g" "d" ]; run = "cd ~/Downloads"; desc = "Go to the downloads directory"; }
|
||||||
|
{ on = [ "g" "D" ]; run = "cd ~/Documents"; desc = "Go to the Documents directory"; }
|
||||||
|
{ on = [ "g" "r" ]; run = "cd /"; desc = "Go to the root (/) directory"; }
|
||||||
|
{ on = [ "g" "/" ]; run = "cd /"; desc = "Go to the root (/) directory"; }
|
||||||
|
{ on = [ "g" "<Space>" ]; run = "cd --interactive"; desc = "Go to a directory interactively"; }
|
||||||
|
# Navigation
|
||||||
|
{ on = "h"; run = "leave"; desc = "Go back to the parent directory"; }
|
||||||
|
{ on = "l"; run = "enter"; desc = "Enter the child directory"; }
|
||||||
|
{ on = "<Left>"; run = "leave"; desc = "Go back to the parent directory"; }
|
||||||
|
{ on = "<Right>"; run = "enter"; desc = "Enter the child directory"; }
|
||||||
|
{ on = "H"; run = "back"; desc = "Go back to the previous directory"; }
|
||||||
|
{ on = "L"; run = "forward"; desc = "Go forward to the next directory"; }
|
||||||
|
# Seeking
|
||||||
|
{ on = "K"; run = "seek -5"; desc = "Seek up 5 units in the preview"; }
|
||||||
|
{ on = "J"; run = "seek 5"; desc = "Seek down 5 units in the preview"; }
|
||||||
|
# Selection
|
||||||
|
{ on = "<Space>"; run = [ "select --state=none" "arrow 1" ]; desc = "Toggle the current selection state"; }
|
||||||
|
{ on = "v"; run = "visual_mode"; desc = "Enter visual mode (selection mode)"; }
|
||||||
|
{ on = "V"; run = "visual_mode --unset"; desc = "Enter visual mode (unset mode)"; }
|
||||||
|
{ on = "<C-a>"; run = "select_all --state=true"; desc = "Select all files"; }
|
||||||
|
{ on = "<C-r>"; run = "select_all --state=none"; desc = "Inverse selection of all files"; }
|
||||||
|
# Operation
|
||||||
|
{ on = "o"; run = "open"; desc = "Open selected files"; }
|
||||||
|
{ on = "O"; run = "open --interactive"; desc = "Open selected files interactively"; }
|
||||||
|
{ on = "<Enter>"; run = "open"; desc = "Open selected files"; }
|
||||||
|
{ on = "<S-Enter>"; run = "open --interactive"; desc = "Open selected files interactively"; }
|
||||||
|
{ on = "y"; run = "yank"; desc = "Yank selected files (copy)"; }
|
||||||
|
{ on = "x"; run = "yank --cut"; desc = "Yank selected files (cut)"; }
|
||||||
|
{ on = "p"; run = "paste"; desc = "Paste yanked "; }
|
||||||
|
{ on = "P"; run = "paste --force"; desc = "Paste yanked (overwrite if exists)"; }
|
||||||
|
{ on = "-"; run = "link"; desc = "Symlink the absolute path of yanked files"; }
|
||||||
|
{ on = "_"; run = "link --relative"; desc = "Symlink the relative path of yanked files"; }
|
||||||
|
{ on = "<C-->"; run = "hardlink"; desc = "Hardlink yanked files"; }
|
||||||
|
{ on = "Y"; run = "unyank"; desc = "Cancel the yank status"; }
|
||||||
|
{ on = "X"; run = "unyank"; desc = "Cancel the yank status"; }
|
||||||
|
{ on = "d"; run = "remove"; desc = "Trash selected files"; }
|
||||||
|
{ on = "D"; run = "remove --permanently"; desc = "Permanently delete selected files"; }
|
||||||
|
{ on = "a"; run = "create"; desc = "Create a file (ends with / for directories)"; }
|
||||||
|
{ on = "r"; run = "rename --cursor=before_ext"; desc = "Rename selected file(s)"; }
|
||||||
|
{ on = ";"; run = "shell --interactive"; desc = "Run a shell command"; }
|
||||||
|
{ on = ":"; run = "shell --block --interactive"; desc = "Run a shell command (block until finishes)"; }
|
||||||
|
{ on = "."; run = "hidden toggle"; desc = "Toggle the visibility of hidden files"; }
|
||||||
|
{ on = "s"; run = "search fd"; desc = "Search files by name using fd"; }
|
||||||
|
{ on = "S"; run = "search rg"; desc = "Search files by content using ripgrep"; }
|
||||||
|
{ on = "<C-s>"; run = "escape --search"; desc = "Cancel the ongoing search"; }
|
||||||
|
{ on = "z"; run = "plugin zoxide"; desc = "Jump to a directory using zoxide"; }
|
||||||
|
{ on = "Z"; run = "plugin fzf"; desc = "Jump to a directory or reveal a file using fzf"; }
|
||||||
|
# Linemode
|
||||||
|
{ on = [ "m" "s" ]; run = "linemode size"; desc = "Set linemode to size"; }
|
||||||
|
{ on = [ "m" "p" ]; run = "linemode permissions"; desc = "Set linemode to permissions"; }
|
||||||
|
{ on = [ "m" "c" ]; run = "linemode ctime"; desc = "Set linemode to ctime"; }
|
||||||
|
{ on = [ "m" "m" ]; run = "linemode mtime"; desc = "Set linemode to mtime"; }
|
||||||
|
{ on = [ "m" "o" ]; run = "linemode owner"; desc = "Set linemode to owner"; }
|
||||||
|
{ on = [ "m" "n" ]; run = "linemode none"; desc = "Set linemode to none"; }
|
||||||
|
# Copy
|
||||||
|
{ on = [ "c" "c" ]; run = "copy path"; desc = "Copy the file path"; }
|
||||||
|
{ on = [ "c" "d" ]; run = "copy dirname"; desc = "Copy the directory path"; }
|
||||||
|
{ on = [ "c" "f" ]; run = "copy filename"; desc = "Copy the filename"; }
|
||||||
|
{ on = [ "c" "n" ]; run = "copy name_without_ext"; desc = "Copy the filename without extension"; }
|
||||||
|
# Filter
|
||||||
|
{ on = "f"; run = "filter --smart"; desc = "Filter files"; }
|
||||||
|
# Find
|
||||||
|
{ on = "/"; run = "find --smart"; desc = "Find next file"; }
|
||||||
|
{ on = "?"; run = "find --previous --smart"; desc = "Find previous file"; }
|
||||||
|
{ on = "n"; run = "find_arrow"; desc = "Go to the next found"; }
|
||||||
|
{ on = "N"; run = "find_arrow --previous"; desc = "Go to the previous found"; }
|
||||||
|
# Sortin
|
||||||
|
{ on = [ "," "m" ]; run = [ "sort modified --reverse=no" "linemode mtime" ]; desc = "Sort by modified time"; }
|
||||||
|
{ on = [ "," "M" ]; run = [ "sort modified --reverse" "linemode mtime" ]; desc = "Sort by modified time (reverse)"; }
|
||||||
|
{ on = [ "," "c" ]; run = [ "sort created --reverse=no" "linemode ctime" ]; desc = "Sort by created time"; }
|
||||||
|
{ on = [ "," "C" ]; run = [ "sort created --reverse" "linemode ctime" ]; desc = "Sort by created time (reverse)"; }
|
||||||
|
{ on = [ "," "e" ]; run = "sort extension --reverse=no"; desc = "Sort by extension"; }
|
||||||
|
{ on = [ "," "E" ]; run = "sort extension --reverse"; desc = "Sort by extension (reverse)"; }
|
||||||
|
{ on = [ "," "a" ]; run = "sort alphabetical --reverse=no"; desc = "Sort alphabetically"; }
|
||||||
|
{ on = [ "," "A" ]; run = "sort alphabetical --reverse"; desc = "Sort alphabetically (reverse)"; }
|
||||||
|
{ on = [ "," "n" ]; run = "sort natural --reverse=no"; desc = "Sort naturally"; }
|
||||||
|
{ on = [ "," "N" ]; run = "sort natural --reverse"; desc = "Sort naturally (reverse)"; }
|
||||||
|
{ on = [ "," "s" ]; run = [ "sort size --reverse=no" "linemode size" ]; desc = "Sort by size"; }
|
||||||
|
{ on = [ "," "S" ]; run = [ "sort size --reverse" "linemode size" ]; desc = "Sort by size (reverse)"; }
|
||||||
|
# Tab
|
||||||
|
{ on = "t"; run = "tab_create --current"; desc = "Create a new tab with CWD"; }
|
||||||
|
{ on = "1"; run = "tab_switch 0"; desc = "Switch to the first tab"; }
|
||||||
|
{ on = "2"; run = "tab_switch 1"; desc = "Switch to the second tab"; }
|
||||||
|
{ on = "3"; run = "tab_switch 2"; desc = "Switch to the third tab"; }
|
||||||
|
{ on = "4"; run = "tab_switch 3"; desc = "Switch to the fourth tab"; }
|
||||||
|
{ on = "5"; run = "tab_switch 4"; desc = "Switch to the fifth tab"; }
|
||||||
|
{ on = "6"; run = "tab_switch 5"; desc = "Switch to the sixth tab"; }
|
||||||
|
{ on = "7"; run = "tab_switch 6"; desc = "Switch to the seventh tab"; }
|
||||||
|
{ on = "8"; run = "tab_switch 7"; desc = "Switch to the eighth tab"; }
|
||||||
|
{ on = "9"; run = "tab_switch 8"; desc = "Switch to the ninth tab"; }
|
||||||
|
{ on = "["; run = "tab_switch -1 --relative"; desc = "Switch to the previous tab"; }
|
||||||
|
{ on = "]"; run = "tab_switch 1 --relative"; desc = "Switch to the next tab"; }
|
||||||
|
{ on = "{"; run = "tab_swap -1"; desc = "Swap current tab with previous tab"; }
|
||||||
|
{ on = "}"; run = "tab_swap 1"; desc = "Swap current tab with next tab"; }
|
||||||
|
# Task
|
||||||
|
{ on = "w"; run = "tasks_show"; desc = "Show task manager"; }
|
||||||
|
# Hel
|
||||||
|
{ on = "~"; run = "help"; desc = "Open help"; }
|
||||||
|
{ on = "<F1>"; run = "help"; desc = "Open help"; }
|
||||||
|
];
|
||||||
|
};
|
||||||
settings = {
|
settings = {
|
||||||
manager = {
|
manager = {
|
||||||
layout = [2 3 4];
|
layout = [2 3 4];
|
||||||
@@ -21,20 +156,15 @@
|
|||||||
linemode = "size";
|
linemode = "size";
|
||||||
show_hidden = false;
|
show_hidden = false;
|
||||||
show_symlink = true;
|
show_symlink = true;
|
||||||
append_keymap = [
|
|
||||||
{ on = [ "<C-g>" ]; run = "lazygit"; desc = "Run Lazygit in current directory"; }
|
|
||||||
{ on = [ "<C-D>" ]; run = ''shell 'dragon -x -i -T "$1"' --confirm''; }
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
opener = {
|
opener = {
|
||||||
"edit" = [
|
"edit" = [
|
||||||
{ run = ''hx "$@"''; desc = "helix"; block = true;}
|
{ run = ''hx "$@"''; desc = "helix"; block = true; }
|
||||||
{ run = ''codium "$@"''; orphan = true;}
|
{ run = ''codium "$@"''; desc = "helix"; orphan = true; }
|
||||||
{ run = ''nano "$@"''; desc = "nano"; block = true;}
|
|
||||||
];
|
];
|
||||||
"play" = [
|
"play" = [
|
||||||
{ run = ''mpv "$@"''; }
|
{ run = ''mpv "$@"''; }
|
||||||
{ run = ''mediainfo "$1"; echo "Press enter to exit"; read''; block = true; desc = "Show mediainfo";}
|
{ run = ''mediainfo "$1"; echo "Press enter to exit"; read''; block = true; desc = "Show mediainfo"; }
|
||||||
];
|
];
|
||||||
"archive" = [
|
"archive" = [
|
||||||
{ run = ''unar "$1"''; desc = "Extract here"; }
|
{ run = ''unar "$1"''; desc = "Extract here"; }
|
||||||
@@ -42,9 +172,9 @@
|
|||||||
{ run = ''unzip "$1"''; desc = "unzip"; }
|
{ run = ''unzip "$1"''; desc = "unzip"; }
|
||||||
];
|
];
|
||||||
"image" = [
|
"image" = [
|
||||||
{ run = ''imv "$@"''; desc = "imv";}
|
{ run = ''imv "$@"''; desc = "imv"; }
|
||||||
{ run = ''gimp "$@"''; desc = "gimp";}
|
{ run = ''gimp "$@"''; desc = "gimp"; }
|
||||||
{ run = ''swww img --transition-type wipe --transition-angle 60 --transition-step 120 --transition-fps 120 "$@"''; desc = "swww wallpaper";}
|
{ run = ''swww img --transition-type wipe --transition-angle 60 --transition-step 120 --transition-fps 120 "$@"''; desc = "swww wallpaper"; }
|
||||||
];
|
];
|
||||||
"svg" = [
|
"svg" = [
|
||||||
{ run = ''inkscape "$@"''; desc = "inkscape";}
|
{ run = ''inkscape "$@"''; desc = "inkscape";}
|
||||||
@@ -55,8 +185,8 @@
|
|||||||
{ run = ''fontforge "$@"''; desc = "fortforge"; }
|
{ run = ''fontforge "$@"''; desc = "fortforge"; }
|
||||||
];
|
];
|
||||||
"document" = [
|
"document" = [
|
||||||
{ run = ''zathura "$@"''; desc = "zathura"; }
|
{ run = ''zathura "$@"''; desc = "zathura"; orphan = true; }
|
||||||
{ run = ''xournal "$@"''; desc = "xournal"; }
|
{ run = ''xournal "$@"''; desc = "xournal"; orphan = true; }
|
||||||
{ run = ''firefox "$@"''; desc = "firefox"; }
|
{ run = ''firefox "$@"''; desc = "firefox"; }
|
||||||
];
|
];
|
||||||
"browser" = [
|
"browser" = [
|
||||||
@@ -83,8 +213,8 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
open.rules = [
|
open.rules = [
|
||||||
{ mime = "text/html"; use = ["edit" "browser"]; }
|
{ mime = "text/html"; use = [ "edit" "browser" ]; }
|
||||||
{ mime = "text/htm"; use = ["edit" "browser"]; }
|
{ mime = "text/htm"; use = [ "edit" "browser" ]; }
|
||||||
{ mime = "text/x-python"; use = "python"; }
|
{ mime = "text/x-python"; use = "python"; }
|
||||||
{ mime = "text/*"; use = "edit"; }
|
{ mime = "text/*"; use = "edit"; }
|
||||||
|
|
||||||
@@ -92,11 +222,12 @@
|
|||||||
{ mine = "inode/directory"; use = "edit"; }
|
{ mine = "inode/directory"; use = "edit"; }
|
||||||
|
|
||||||
{ mime = "image/*"; use = "image"; }
|
{ mime = "image/*"; use = "image"; }
|
||||||
{ mime = "image/svg"; use = ["image" "edit"]; }
|
{ mime = "image/svg"; use = [ "image" "edit" ]; }
|
||||||
|
|
||||||
{ mime = "video/*"; use = "video"; }
|
{ mime = "video/*"; use = "play"; }
|
||||||
|
{ mime = "audio/*"; use = "play"; }
|
||||||
|
|
||||||
{ mime = "application/x-httpd-php"; use = ["edit" "browser"]; }
|
{ mime = "application/x-httpd-php"; use = [ "edit" "browser" ]; }
|
||||||
{ mime = "application/json"; use = "edit"; }
|
{ mime = "application/json"; use = "edit"; }
|
||||||
{ mime = "application/ld+json"; use = "edit"; }
|
{ mime = "application/ld+json"; use = "edit"; }
|
||||||
{ mime = "application/pdf"; use = "document"; }
|
{ mime = "application/pdf"; use = "document"; }
|
||||||
@@ -104,9 +235,9 @@
|
|||||||
{ mime = "application/vnd.oasis.opendocument.*"; use = "office"; }
|
{ mime = "application/vnd.oasis.opendocument.*"; use = "office"; }
|
||||||
{ mime = "application/vnd.ms-powerpoint"; use = "office"; }
|
{ mime = "application/vnd.ms-powerpoint"; use = "office"; }
|
||||||
{ mime = "application/vnd.ms-excel"; use = "office"; }
|
{ mime = "application/vnd.ms-excel"; use = "office"; }
|
||||||
{ mime = "application/vnd.openxmlformats-officedocument.*"; use = ["office" "edit"]; }
|
{ mime = "application/vnd.openxmlformats-officedocument.*"; use = [ "office" "edit" ]; }
|
||||||
{ mime = "application/rtf"; use = "office"; }
|
{ mime = "application/rtf"; use = "office"; }
|
||||||
{ mime = "application/x-sh"; use = ["edit" "shell"]; }
|
{ mime = "application/x-sh"; use = [ "edit" "shell" ]; }
|
||||||
{ mime = "application/x-python-code"; use = "python"; }
|
{ mime = "application/x-python-code"; use = "python"; }
|
||||||
{ mime = "application/xml"; use = "edit"; }
|
{ mime = "application/xml"; use = "edit"; }
|
||||||
{ mime = "application/xul"; use = "edit"; }
|
{ mime = "application/xul"; use = "edit"; }
|
||||||
|
|||||||
@@ -1,18 +1,21 @@
|
|||||||
{ pkgs, rice, ... }:
|
{ pkgs, rice, ... }:
|
||||||
{
|
{
|
||||||
programs.zathura = {
|
programs.zathura = {
|
||||||
enable = true;
|
enable = true;
|
||||||
options = with rice.color; {
|
options = with rice.color; {
|
||||||
completion-bg = background;
|
completion-bg = background;
|
||||||
completion-fg = foreground;
|
completion-fg = foreground;
|
||||||
completion-highlight-bg = background;
|
completion-highlight-bg = background;
|
||||||
completion-highlight-fg = accent.base;
|
completion-highlight-fg = accent.base;
|
||||||
default-bg = "rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency})";
|
default-bg = "rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency})";
|
||||||
default-fg = foreground;
|
default-fg = foreground;
|
||||||
highlight-active-color = "rgba(${rice.lib.hex-to-rgb-comma-string accent.base},0.5)";
|
highlight-active-color = "rgba(${rice.lib.hex-to-rgb-comma-string accent.base},0.5)";
|
||||||
highlight-color = "rgba(${rice.lib.hex-to-rgb-comma-string secondary.base},0.5)";
|
highlight-color = "rgba(${rice.lib.hex-to-rgb-comma-string secondary.base},0.5)";
|
||||||
highlight-fg = "rgba(${rice.lib.hex-to-rgb-comma-string secondary.base},0.5)";
|
highlight-fg = "rgba(${rice.lib.hex-to-rgb-comma-string secondary.base},0.5)";
|
||||||
index-active-bg = background;
|
index-fg = accent.bright;
|
||||||
|
index-bg = black.dark;
|
||||||
|
index-active-fg = background;
|
||||||
|
index-active-bg = foreground;
|
||||||
inputbar-bg = background;
|
inputbar-bg = background;
|
||||||
inputbar-fg = foreground;
|
inputbar-fg = foreground;
|
||||||
notification-bg = background;
|
notification-bg = background;
|
||||||
@@ -29,8 +32,9 @@
|
|||||||
statusbar-bg = black.base;
|
statusbar-bg = black.base;
|
||||||
statusbar-fg = foreground;
|
statusbar-fg = foreground;
|
||||||
|
|
||||||
n-completion-items = 9999999999999;
|
n-completion-items = 9999999999999;
|
||||||
exec-command = "open";
|
exec-command = "open";
|
||||||
};
|
page-padding = rice.border-width;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
5
home.nix
Executable file → Normal file
5
home.nix
Executable file → Normal file
@@ -14,6 +14,7 @@
|
|||||||
# ./home-modules/foot.nix
|
# ./home-modules/foot.nix
|
||||||
./home-modules/games.nix
|
./home-modules/games.nix
|
||||||
./home-modules/gestures.nix
|
./home-modules/gestures.nix
|
||||||
|
./home-modules/gimp.nix
|
||||||
./home-modules/git.nix
|
./home-modules/git.nix
|
||||||
./home-modules/gpg.nix
|
./home-modules/gpg.nix
|
||||||
./home-modules/gtk.nix
|
./home-modules/gtk.nix
|
||||||
@@ -72,7 +73,7 @@
|
|||||||
|
|
||||||
imv mpv mediainfo exiftool ffmpeg
|
imv mpv mediainfo exiftool ffmpeg
|
||||||
pavucontrol
|
pavucontrol
|
||||||
fontpreview gtk2fontsel
|
fontpreview
|
||||||
lynx w3m browsh
|
lynx w3m browsh
|
||||||
bat du-dust eza neofetch tldr fzf figlet ripgrep lolcat jq glow
|
bat du-dust eza neofetch tldr fzf figlet ripgrep lolcat jq glow
|
||||||
brightnessctl wev
|
brightnessctl wev
|
||||||
@@ -95,6 +96,7 @@
|
|||||||
ghostscript
|
ghostscript
|
||||||
|
|
||||||
inputs.zen-browser.packages."${system}".default
|
inputs.zen-browser.packages."${system}".default
|
||||||
|
gnome-calendar
|
||||||
|
|
||||||
] ++ (with pkgs-unstable; [
|
] ++ (with pkgs-unstable; [
|
||||||
obsidian
|
obsidian
|
||||||
@@ -103,7 +105,6 @@
|
|||||||
]) ++ (if host != "NxACE" then (with pkgs; [
|
]) ++ (if host != "NxACE" then (with pkgs; [
|
||||||
signal-desktop
|
signal-desktop
|
||||||
zoom-us
|
zoom-us
|
||||||
gimp
|
|
||||||
inkscape
|
inkscape
|
||||||
]) else (with pkgs-unstable; [
|
]) else (with pkgs-unstable; [
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
{
|
{
|
||||||
fonts.packages = with pkgs; [
|
fonts.packages = with pkgs; [
|
||||||
noto-fonts
|
noto-fonts
|
||||||
noto-fonts-cjk
|
noto-fonts-cjk-sans
|
||||||
|
noto-fonts-cjk-serif
|
||||||
noto-fonts-emoji
|
noto-fonts-emoji
|
||||||
newcomputermodern
|
newcomputermodern
|
||||||
atkinson-hyperlegible
|
atkinson-hyperlegible
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
} else {};
|
} else {};
|
||||||
|
|
||||||
hardware.opengl.extraPackages = if host == "NxXPS" then with pkgs; [
|
hardware.opengl.extraPackages = if host == "NxXPS" then with pkgs; [
|
||||||
(if (lib.versionOlder (lib.versions.majorMinor lib.version) "24.05") then vaapiIntel else intel-vaapi-driver)
|
(if (lib.versionOlder (lib.versions.majorMinor lib.version) "24.11") then vaapiIntel else intel-vaapi-driver)
|
||||||
libvdpau-va-gl
|
libvdpau-va-gl
|
||||||
intel-media-driver
|
intel-media-driver
|
||||||
] else [];
|
] else [];
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{ pkgs, lib, host, ... }:
|
{ pkgs, lib, host, ... }:
|
||||||
lib.mkIf (host != "NxACE")
|
lib.mkIf (host != "NxACE")
|
||||||
{
|
{
|
||||||
systemd.user.timers."health_reminder" = {
|
systemd.timers."health_reminder" = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wantedBy = [ "timers.target" ];
|
wantedBy = [ "timers.target" ];
|
||||||
timerConfig = {
|
timerConfig = {
|
||||||
@@ -11,7 +11,7 @@ lib.mkIf (host != "NxACE")
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.services."health_reminder" = let
|
systemd.services."health_reminder" = let
|
||||||
hm = pkgs.writers.writePython3Bin "health_reminder" {
|
hm = pkgs.writers.writePython3Bin "health_reminder" {
|
||||||
flakeIgnore = [ "E302" "E305" "E226" "E501" ];
|
flakeIgnore = [ "E302" "E305" "E226" "E501" ];
|
||||||
} /*python*/ ''
|
} /*python*/ ''
|
||||||
@@ -34,14 +34,14 @@ lib.mkIf (host != "NxACE")
|
|||||||
return action
|
return action
|
||||||
|
|
||||||
actions = [
|
actions = [
|
||||||
Action(action="look away for %o Seconds!", likelyhood=300, options=["10", "15"]),
|
Action(action="look away for %o Seconds!", likelihood=300, options=["10", "15"]),
|
||||||
Action(action="Posture Check!", likelyhood=300),
|
Action(action="Posture Check!", likelihood=300),
|
||||||
Action(action="Strech your upper body!", likelyhood=20),
|
Action(action="Strech your upper body!", likelihood=20),
|
||||||
Action(action="Strech your core!", likelyhood=10),
|
Action(action="Strech your core!", likelihood=10),
|
||||||
Action(action="Strech your legs!", likelyhood=10),
|
Action(action="Strech your legs!", likelihood=10),
|
||||||
Action(action="Strech your arms/hands!", likelyhood=10),
|
Action(action="Strech your arms/hands!", likelihood=10),
|
||||||
Action(action="Make Tea!", likelyhood=5),
|
Action(action="Make Tea!", likelihood=5),
|
||||||
Action(action="说现在中文的时间!", likelyhood=2),
|
Action(action="说现在中文的时间!", likelihood=2),
|
||||||
]
|
]
|
||||||
|
|
||||||
total_likelihood = sum(a.likelihood for a in actions)
|
total_likelihood = sum(a.likelihood for a in actions)
|
||||||
|
|||||||
@@ -57,11 +57,10 @@ lib.mkIf nvidia.enable
|
|||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.beta; };
|
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
opengl = {
|
};
|
||||||
|
graphics = {
|
||||||
enable = true;
|
enable = true;
|
||||||
driSupport = true;
|
|
||||||
driSupport32Bit = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,8 @@ in {
|
|||||||
package = p;
|
package = p;
|
||||||
enable = true;
|
enable = true;
|
||||||
acceleration = lib.mkIf nvidia.enable "cuda";
|
acceleration = lib.mkIf nvidia.enable "cuda";
|
||||||
listenAddress = if host == "NxACE" then "0.0.0.0:11434" else "127.0.0.1:11434";
|
host = if host == "NxACE" then "0.0.0.0" else "127.0.0.1";
|
||||||
|
port = 11434;
|
||||||
environmentVariables = {
|
environmentVariables = {
|
||||||
OLLAMA_ORIGINS = "*";
|
OLLAMA_ORIGINS = "*";
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user