Merge branch 'master' of ssh://ssh.nx2.site:50022/nx2/dotfiles

This commit is contained in:
Lennart J. Kurzweg (Nx2)
2024-12-02 21:48:54 +01:00
27 changed files with 812 additions and 447 deletions

4
configuration.nix Executable file → Normal file
View 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;

View File

@@ -6,8 +6,7 @@ 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; };
@@ -26,7 +25,7 @@ pkgs: rec {
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; rec { xcolor = with ccolor; with fcolor; {
background = "#000000"; background = "#000000";
# foreground = "#dddddd"; # foreground = "#dddddd";
# accent = blue; # accent = blue;
@@ -42,8 +41,7 @@ pkgs: rec {
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
View 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
View 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.

View File

@@ -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;

View File

@@ -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) {

View File

@@ -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;

View File

@@ -1,6 +1,7 @@
# { 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;
@@ -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) {

View File

@@ -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
View File

@@ -0,0 +1,9 @@
{ pkgs, lib, host, ... }:
{
home.packages = with pkgs; [
(gimp-with-plugins.override {
plugins = with gimpPlugins; [ bimp ];
})
];
}

View File

@@ -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,18 +7,134 @@
# 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 = {
packages = with pkgs; [
# gnome.gnome-themes-extra # gnome.gnome-themes-extra
# gnome.adwaita-icon-theme adwaita-icon-theme
gnome.gnome-tweaks gnome-tweaks
gtk3 gtk3
gtk4 gtk4
# catppuccin-gtk # catppuccin-gtk
@@ -25,46 +142,57 @@ in {
] ++ [ ] ++ [
# pkgs-unstable.themix-gui # pkgs-unstable.themix-gui
]; ];
sessionVariables.GTK_THEME = theme-name;
pointerCursor = {
home.sessionVariables.GTK_THEME = theme-name; 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 = { gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
gtk-application-prefer-dark-theme = 1; gtk3 = {
extraConfig.gtk-application-prefer-dark-theme = 1;
# extraCss = with rice.color; /* css */ ''
# wnck-pager {
# color: ${black.bright};
# background-color: ${background};
# }
# wnck-pager:selected {
# color: ${background};
# background-color: ${accent.base};
# }
# '';
# window.background {
# background-color: rgba(${rice.lib.hex-to-rgb-comma-string background},${builtins.toString rice.transparency});
# }
# .background, .view, .surface, .frame, box, window.decoration, stack {
# background-color: transparent;
# }
}; };
gtk4.extraConfig = { gtk4 = {
gtk-application-prefer-dark-theme = 1; extraConfig.gtk-application-prefer-dark-theme = 1;
extraCss = config.gtk.gtk3.extraCss;
}; };
cursorTheme = rice.cursor; cursorTheme = rice.cursor;
}; };
home.pointerCursor = {
gtk.enable = true;
x11.enable = true;
} // rice.cursor;
xdg.configFile = { xdg.configFile = {
"gtk-4.0/assets".source = "${theme-package}/share/themes/${theme-name}/gtk-4.0/assets"; "gtk-4.0/assets".source = "${theme-package}/share/themes/${theme-name}/gtk-3.20/assets";
"gtk-4.0/gtk.css".source = "${theme-package}/share/themes/${theme-name}/gtk-4.0/gtk.css"; "gtk-4.0/gtk.css".source = "${theme-package}/share/themes/${theme-name}/gtk-3.20/gtk.css";
"gtk-4.0/gtk-dark.css".source = "${theme-package}/share/themes/${theme-name}/gtk-4.0/gtk-dark.css"; "gtk-4.0/gtk-dark.css".source = "${theme-package}/share/themes/${theme-name}/gtk-3.20/gtk-dark.css";
}; };
dconf = { dconf = {
enable = true; enable = true;
settings = { settings = {
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {
color-scheme = "prefer-dark"; color-scheme = "prefer-dark";
gtk-theme = theme-name; # gtk-theme = theme-name;
}; };
}; };
}; };
} }

View File

@@ -92,15 +92,13 @@ 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" "11, monitor:${d1}, default:true"
"12, monitor:${d1}" "12, monitor:${d1}"
"13, monitor:${d1}" "13, monitor:${d1}"
@@ -132,6 +130,10 @@ in {
"38, monitor:${d3}" "38, monitor:${d3}"
"39, monitor:${d3}" "39, monitor:${d3}"
"30, monitor:${d3}, ${compact}" "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" = {
@@ -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 = {
@@ -264,6 +265,11 @@ in {
"noanim, class:^(imv)$" "noanim, class:^(imv)$"
"float, class:^(imv)$" "float, class:^(imv)$"
"fullscreen, class:^(imv)$" "fullscreen, class:^(imv)$"
] ++ [
"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 = [
@@ -280,12 +286,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)$"
@@ -332,13 +338,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"
@@ -570,9 +576,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
@@ -589,11 +595,9 @@ 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}

View File

@@ -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; {

View File

@@ -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) ;

View File

@@ -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;

View File

@@ -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;

View File

@@ -5,17 +5,18 @@
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:
@@ -25,7 +26,7 @@ def fc(c: int) -> str:
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)
@@ -42,7 +43,7 @@ class Color(object):
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)
@@ -55,7 +56,7 @@ def k_means_extraction(arr: NDArray[float], height: int, width: int, palette_siz
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]
@@ -66,7 +67,7 @@ class Palette:
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)
@@ -76,10 +77,10 @@ def ensure_color(c: Color, alter_sat: bool) -> list[int]:
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))
@@ -87,19 +88,19 @@ def alter_hue(ilist: list[int], hue: int) -> list[int]:
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")
@@ -117,11 +118,11 @@ def extract_colors(
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)
@@ -130,7 +131,9 @@ if __name__ == "__main__":
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)
sleep(0.1)
secondary = ensure_color(c=hyprpicker(), alter_sat=True) secondary = ensure_color(c=hyprpicker(), alter_sat=True)
sleep(0.1)
tertiary = ensure_color(c=hyprpicker(), alter_sat=False) tertiary = ensure_color(c=hyprpicker(), alter_sat=False)
weird = alter_hue(ilist=accent, hue=80) weird = alter_hue(ilist=accent, hue=80)
@@ -154,6 +157,6 @@ if __name__ == "__main__":
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))
'') '')
]; ];
} }

View File

@@ -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});
} }

View File

@@ -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"; }

View File

@@ -12,7 +12,10 @@
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;
@@ -31,6 +34,7 @@
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
View 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; [

View File

@@ -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

View File

@@ -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 [];

View File

@@ -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)

View File

@@ -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;
}; };
}; };
} }

View File

@@ -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 = "*";
}; };