Merge with Coded's config
As we're working on similar things, it makes sense to make a single
config with all our stuff together. We've named our coalition "chimera"
as Coded's devices are named after cat breeds and mine are named after
bird species. We'll be using NixOS options to enable us to have
different configurations anywhere we want that
Co-Authored-By: Samuel Shuert <coded@clicks.codes>
Change-Id: Idb102526d84e76edb0bfe7153bd18dfe8566516b
Reviewed-on: https://git.clicks.codes/c/Chimera/NixFiles/+/382
Reviewed-by: Samuel Shuert <coded@clicks.codes>
Tested-by: Skyler Grey <minion@clicks.codes>
diff --git a/modules/home/anyrun/default.nix b/modules/home/anyrun/default.nix
index 2edf952..837324c 100644
--- a/modules/home/anyrun/default.nix
+++ b/modules/home/anyrun/default.nix
@@ -1,4 +1,10 @@
-{ inputs, pkgs, system, ...}: {
+{
+ inputs,
+ pkgs,
+ system,
+ ...
+}:
+{
programs.anyrun = {
enable = true;
config = {
@@ -12,4 +18,4 @@
];
};
};
-}
\ No newline at end of file
+}
diff --git a/modules/home/audio/default.nix b/modules/home/audio/default.nix
new file mode 100644
index 0000000..3d7903b
--- /dev/null
+++ b/modules/home/audio/default.nix
@@ -0,0 +1,5 @@
+{ pkgs, ... }: {
+ home.packages = [
+ pkgs.helvum
+ ];
+}
\ No newline at end of file
diff --git a/modules/home/browser/chromium/default.nix b/modules/home/browser/chromium/default.nix
new file mode 100644
index 0000000..16dd34e
--- /dev/null
+++ b/modules/home/browser/chromium/default.nix
@@ -0,0 +1,33 @@
+{ lib, config, ... }: {
+ options.chimera.browser.chromium = {
+ enable = lib.mkEnableOption "Use chromium browser";
+ extensions = {
+ bitwarden.enable = lib.mkEnableOption "Turn on Bitwarden extension";
+ youtube = {
+ sponsorBlock.enable = lib.mkEnableOption "Turn on Sponsor Block";
+ returnDislike.enable = lib.mkEnableOption "Turn on Return Youtube Dislike";
+ deArrow.enable = lib.mkEnableOption "Turn on De Arrow";
+ };
+ reactDevTools.enable = lib.mkEnableOption "Turn on React Dev Tools";
+ ublockOrigin.enable = lib.mkEnableOption "Turn on uBlock Origin ad blocker";
+ };
+ extraExtensions = lib.mkOption {
+ type = lib.types.listOf (lib.types.either { id = lib.types.str; } { id = lib.types.str; crxPath = lib.types.path; version = lib.types.str; });
+ description = "Extra extensions to add to chromium on launch";
+ default = [];
+ };
+ };
+ config = lib.mkIf config.chimera.browser.chromium.enable ({
+ programs.chromium = {
+ enable = true;
+ extensions =
+ (if config.chimera.browser.chromium.extensions.bitwarden.enable then [{ id = "nngceckbapebfimnlniiiahkandclblb"; }] else []) #Bitwarden
+ ++ (if config.chimera.browser.chromium.extensions.youtube.sponsorBlock.enable then [{ id = "mnjggcdmjocbbbhaepdhchncahnbgone"; }] else []) #Sponsor Block
+ ++ (if config.chimera.browser.chromium.extensions.youtube.returnDislike.enable then [{ id = "gebbhagfogifgggkldgodflihgfeippi"; }] else []) #Return youtube dislike
+ ++ (if config.chimera.browser.chromium.extensions.youtube.deArrow.enable then [{ id = "enamippconapkdmgfgjchkhakpfinmaj"; }] else []) #DeArrow
+ ++ (if config.chimera.browser.chromium.extensions.reactDevTools.enable then [{ id = "fmkadmapgofadopljbjfkapdkoienihi"; }] else []) #React Dev Tools
+ ++ (if config.chimera.browser.chromium.extensions.ublockOrigin.enable then [{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; }] else []) #uBlock Origin
+ ++ config.chimera.browser.chromium.extraExtensions;
+ };
+ });
+}
\ No newline at end of file
diff --git a/modules/home/browser/firefox/default.nix b/modules/home/browser/firefox/default.nix
new file mode 100644
index 0000000..d1aa88f
--- /dev/null
+++ b/modules/home/browser/firefox/default.nix
@@ -0,0 +1,33 @@
+{ lib, config, ... }: {
+ options.chimera.browser.firefox = {
+ enable = lib.mkEnableOption "Use firefox browser";
+ extensions = {
+ bitwarden.enable = lib.mkEnableOption "Turn on Bitwarden extension";
+ youtube = {
+ sponsorBlock.enable = lib.mkEnableOption "Turn on Sponsor Block";
+ returnDislike.enable = lib.mkEnableOption "Turn on Return Youtube Dislike";
+ deArrow.enable = lib.mkEnableOption "Turn on De Arrow";
+ };
+ reactDevTools.enable = lib.mkEnableOption "Turn on React Dev Tools";
+ ublockOrigin.enable = lib.mkEnableOption "Turn on uBlock Origin ad blocker";
+ adnauseam.enable = lib.mkEnableOption "Turn on AdNauseam ad blocker";
+ };
+ extraExtensions = lib.mkOption {
+ type = lib.types.listOf lib.types.package;
+ description = "Extra extensions to add to firefox";
+ };
+ };
+ config = lib.mkIf config.chimera.browser.firefox.enable ({
+ programs.firefox = {
+ enable = true;
+ profiles.chimera.extensions = (if config.chimera.browser.firefox.extensions.bitwarden.enable then [ config.nur.repos.rycee.firefox-addons.bitwarden ] else [])
+ ++ (if config.chimera.browser.firefox.extensions.youtube.sponsorBlock.enable then [ config.nur.repos.rycee.firefox-addons.sponsorblock ] else [])
+ ++ (if config.chimera.browser.firefox.extensions.youtube.returnDislike.enable then [ config.nur.repos.rycee.firefox-addons.return-youtube-dislikes ] else [])
+ ++ (if config.chimera.browser.firefox.extensions.youtube.deArrow.enable then [ config.nur.repos.rycee.firefox-addons.dearrow ] else [])
+ ++ (if config.chimera.browser.firefox.extensions.reactDevTools.enable then [ config.nur.repos.rycee.firefox-addons.react-devtools ] else [])
+ ++ (if config.chimera.browser.firefox.extensions.ublockOrigin.enable then [ config.nur.repos.rycee.firefox-addons.ublock-origin ] else [])
+ ++ (if config.chimera.browser.firefox.extensions.adnauseam.enable then [ config.nur.repos.rycee.firefox-addons.adnauseam ] else [])
+ ++ config.chimera.browser.firefox.extraExtensions;
+ };
+ });
+}
\ No newline at end of file
diff --git a/modules/home/catppuccin/default.nix b/modules/home/catppuccin/default.nix
new file mode 100644
index 0000000..3389ba1
--- /dev/null
+++ b/modules/home/catppuccin/default.nix
@@ -0,0 +1,1419 @@
+{ lib, config, ... }:
+{
+ options.chimera.theme.catppuccin = {
+ enable = lib.mkEnableOption "Whether to use Catppuccin themes";
+ style = lib.mkOption {
+ type = lib.types.enum [
+ "Latte"
+ "Frappe"
+ "Macchiato"
+ "Mocha"
+ ];
+ description = "Catppuccin style to use";
+ };
+ color = lib.mkOption {
+ type = lib.types.enum [
+ "Rosewater"
+ "Flamingo"
+ "Pink"
+ "Mauve"
+ "Red"
+ "Maroon"
+ "Peach"
+ "Yellow"
+ "Green"
+ "Teal"
+ "Sky"
+ "Sapphire"
+ "Blue"
+ "Lavender"
+ "Text"
+ "Subtext1"
+ "Subtext0"
+ "Overlay2"
+ "Overlay1"
+ "Overlay0"
+ "Surface2"
+ "Surface1"
+ "Surface0"
+ "Base"
+ "Mantle"
+ "Crust"
+ ];
+ description = "Catppuccin color to use";
+ };
+ };
+
+ config = lib.mkIf config.chimera.theme.catppuccin.enable (
+ let
+ catppuccinColors = {
+ Latte = {
+ Rosewater = {
+ hex = "#dc8a78";
+ rgb = {
+ r = 220;
+ g = 138;
+ b = 120;
+ };
+ hsl = {
+ h = 11;
+ s = 59;
+ l = 67;
+ };
+ };
+ Flamingo = {
+ hex = "#dd7878";
+ rgb = {
+ r = 221;
+ g = 120;
+ b = 120;
+ };
+ hsl = {
+ h = 0;
+ s = 60;
+ l = 67;
+ };
+ };
+ Pink = {
+ hex = "#ea76cb";
+ rgb = {
+ r = 234;
+ g = 118;
+ b = 203;
+ };
+ hsl = {
+ h = 316;
+ s = 73;
+ l = 69;
+ };
+ };
+ Mauve = {
+ hex = "#8839ef";
+ rgb = {
+ r = 136;
+ g = 57;
+ b = 239;
+ };
+ hsl = {
+ h = 266;
+ s = 85;
+ l = 58;
+ };
+ };
+ Red = {
+ hex = "#d20f39";
+ rgb = {
+ r = 210;
+ g = 15;
+ b = 57;
+ };
+ hsl = {
+ h = 347;
+ s = 87;
+ l = 44;
+ };
+ };
+ Maroon = {
+ hex = "#e64553";
+ rgb = {
+ r = 230;
+ g = 69;
+ b = 83;
+ };
+ hsl = {
+ h = 355;
+ s = 76;
+ l = 59;
+ };
+ };
+ Peach = {
+ hex = "#fe640b";
+ rgb = {
+ r = 254;
+ g = 100;
+ b = 11;
+ };
+ hsl = {
+ h = 22;
+ s = 99;
+ l = 52;
+ };
+ };
+ Yellow = {
+ hex = "#df8e1d";
+ rgb = {
+ r = 223;
+ g = 142;
+ b = 29;
+ };
+ hsl = {
+ h = 35;
+ s = 77;
+ l = 49;
+ };
+ };
+ Green = {
+ hex = "#40a02b";
+ rgb = {
+ r = 64;
+ g = 160;
+ b = 43;
+ };
+ hsl = {
+ h = 109;
+ s = 58;
+ l = 40;
+ };
+ };
+ Teal = {
+ hex = "#179299";
+ rgb = {
+ r = 23;
+ g = 146;
+ b = 153;
+ };
+ hsl = {
+ h = 183;
+ s = 74;
+ l = 35;
+ };
+ };
+ Sky = {
+ hex = "#04a5e5";
+ rgb = {
+ r = 4;
+ g = 165;
+ b = 229;
+ };
+ hsl = {
+ h = 197;
+ s = 97;
+ l = 46;
+ };
+ };
+ Sapphire = {
+ hex = "#209fb5";
+ rgb = {
+ r = 32;
+ g = 159;
+ b = 181;
+ };
+ hsl = {
+ h = 189;
+ s = 70;
+ l = 42;
+ };
+ };
+ Blue = {
+ hex = "#1e66f5";
+ rgb = {
+ r = 30;
+ g = 102;
+ b = 245;
+ };
+ hsl = {
+ h = 220;
+ s = 91;
+ l = 54;
+ };
+ };
+ Lavender = {
+ hex = "#7287fd";
+ rgb = {
+ r = 114;
+ g = 135;
+ b = 253;
+ };
+ hsl = {
+ h = 231;
+ s = 97;
+ l = 72;
+ };
+ };
+ Text = {
+ hex = "#4c4f69";
+ rgb = {
+ r = 76;
+ g = 79;
+ b = 105;
+ };
+ hsl = {
+ h = 234;
+ s = 16;
+ l = 35;
+ };
+ };
+ Subtext1 = {
+ hex = "#5c5f77";
+ rgb = {
+ r = 92;
+ g = 95;
+ b = 119;
+ };
+ hsl = {
+ h = 233;
+ s = 13;
+ l = 41;
+ };
+ };
+ Subtext0 = {
+ hex = "#6c6f85";
+ rgb = {
+ r = 108;
+ g = 111;
+ b = 133;
+ };
+ hsl = {
+ h = 233;
+ s = 10;
+ l = 47;
+ };
+ };
+ Overlay2 = {
+ hex = "#7c7f93";
+ rgb = {
+ r = 124;
+ g = 127;
+ b = 147;
+ };
+ hsl = {
+ h = 232;
+ s = 10;
+ l = 53;
+ };
+ };
+ Overlay1 = {
+ hex = "#8c8fa1";
+ rgb = {
+ r = 140;
+ g = 143;
+ b = 161;
+ };
+ hsl = {
+ h = 231;
+ s = 10;
+ l = 59;
+ };
+ };
+ Overlay0 = {
+ hex = "#9ca0b0";
+ rgb = {
+ r = 156;
+ g = 160;
+ b = 176;
+ };
+ hsl = {
+ h = 228;
+ s = 11;
+ l = 65;
+ };
+ };
+ Surface2 = {
+ hex = "#acb0be";
+ rgb = {
+ r = 172;
+ g = 176;
+ b = 190;
+ };
+ hsl = {
+ h = 227;
+ s = 12;
+ l = 71;
+ };
+ };
+ Surface1 = {
+ hex = "#bcc0cc";
+ rgb = {
+ r = 188;
+ g = 192;
+ b = 204;
+ };
+ hsl = {
+ h = 225;
+ s = 14;
+ l = 77;
+ };
+ };
+ Surface0 = {
+ hex = "#ccd0da";
+ rgb = {
+ r = 204;
+ g = 208;
+ b = 218;
+ };
+ hsl = {
+ h = 223;
+ s = 16;
+ l = 83;
+ };
+ };
+ Base = {
+ hex = "#eff1f5";
+ rgb = {
+ r = 239;
+ g = 241;
+ b = 245;
+ };
+ hsl = {
+ h = 220;
+ s = 23;
+ l = 95;
+ };
+ };
+ Mantle = {
+ hex = "#e6e9ef";
+ rgb = {
+ r = 230;
+ g = 233;
+ b = 239;
+ };
+ hsl = {
+ h = 220;
+ s = 22;
+ l = 92;
+ };
+ };
+ Crust = {
+ hex = "#dce0e8";
+ rgb = {
+ r = 220;
+ g = 224;
+ b = 232;
+ };
+ hsl = {
+ h = 220;
+ s = 21;
+ l = 89;
+ };
+ };
+ };
+ Frappe = {
+ Rosewater = {
+ hex = "#f2d5cf";
+ rgb = {
+ r = 242;
+ g = 213;
+ b = 207;
+ };
+ hsl = {
+ h = 10;
+ s = 57;
+ l = 88;
+ };
+ };
+ Flamingo = {
+ hex = "#eebebe";
+ rgb = {
+ r = 238;
+ g = 190;
+ b = 190;
+ };
+ hsl = {
+ h = 0;
+ s = 59;
+ l = 84;
+ };
+ };
+ Pink = {
+ hex = "#f4b8e4";
+ rgb = {
+ r = 244;
+ g = 184;
+ b = 228;
+ };
+ hsl = {
+ h = 316;
+ s = 73;
+ l = 84;
+ };
+ };
+ Mauve = {
+ hex = "#ca9ee6";
+ rgb = {
+ r = 202;
+ g = 158;
+ b = 230;
+ };
+ hsl = {
+ h = 277;
+ s = 59;
+ l = 76;
+ };
+ };
+ Red = {
+ hex = "#e78284";
+ rgb = {
+ r = 231;
+ g = 130;
+ b = 132;
+ };
+ hsl = {
+ h = 359;
+ s = 68;
+ l = 71;
+ };
+ };
+ Maroon = {
+ hex = "#ea999c";
+ rgb = {
+ r = 234;
+ g = 153;
+ b = 156;
+ };
+ hsl = {
+ h = 358;
+ s = 66;
+ l = 76;
+ };
+ };
+ Peach = {
+ hex = "#ef9f76";
+ rgb = {
+ r = 239;
+ g = 159;
+ b = 118;
+ };
+ hsl = {
+ h = 20;
+ s = 79;
+ l = 70;
+ };
+ };
+ Yellow = {
+ hex = "#e5c890";
+ rgb = {
+ r = 229;
+ g = 200;
+ b = 144;
+ };
+ hsl = {
+ h = 40;
+ s = 62;
+ l = 73;
+ };
+ };
+ Green = {
+ hex = "#a6d189";
+ rgb = {
+ r = 166;
+ g = 209;
+ b = 137;
+ };
+ hsl = {
+ h = 96;
+ s = 44;
+ l = 68;
+ };
+ };
+ Teal = {
+ hex = "#81c8be";
+ rgb = {
+ r = 129;
+ g = 200;
+ b = 190;
+ };
+ hsl = {
+ h = 172;
+ s = 39;
+ l = 65;
+ };
+ };
+ Sky = {
+ hex = "#99d1db";
+ rgb = {
+ r = 153;
+ g = 209;
+ b = 219;
+ };
+ hsl = {
+ h = 189;
+ s = 48;
+ l = 73;
+ };
+ };
+ Sapphire = {
+ hex = "#85c1dc";
+ rgb = {
+ r = 133;
+ g = 193;
+ b = 220;
+ };
+ hsl = {
+ h = 199;
+ s = 55;
+ l = 69;
+ };
+ };
+ Blue = {
+ hex = "#8caaee";
+ rgb = {
+ r = 140;
+ g = 170;
+ b = 238;
+ };
+ hsl = {
+ h = 222;
+ s = 74;
+ l = 74;
+ };
+ };
+ Lavender = {
+ hex = "#babbf1";
+ rgb = {
+ r = 186;
+ g = 187;
+ b = 241;
+ };
+ hsl = {
+ h = 239;
+ s = 66;
+ l = 84;
+ };
+ };
+ Text = {
+ hex = "#c6d0f5";
+ rgb = {
+ r = 198;
+ g = 208;
+ b = 245;
+ };
+ hsl = {
+ h = 227;
+ s = 70;
+ l = 87;
+ };
+ };
+ Subtext1 = {
+ hex = "#b5bfe2";
+ rgb = {
+ r = 181;
+ g = 191;
+ b = 226;
+ };
+ hsl = {
+ h = 227;
+ s = 44;
+ l = 80;
+ };
+ };
+ Subtext0 = {
+ hex = "#a5adce";
+ rgb = {
+ r = 165;
+ g = 173;
+ b = 206;
+ };
+ hsl = {
+ h = 228;
+ s = 29;
+ l = 73;
+ };
+ };
+ Overlay2 = {
+ hex = "#949cbb";
+ rgb = {
+ r = 148;
+ g = 156;
+ b = 187;
+ };
+ hsl = {
+ h = 228;
+ s = 22;
+ l = 66;
+ };
+ };
+ Overlay1 = {
+ hex = "#838ba7";
+ rgb = {
+ r = 131;
+ g = 139;
+ b = 167;
+ };
+ hsl = {
+ h = 227;
+ s = 17;
+ l = 58;
+ };
+ };
+ Overlay0 = {
+ hex = "#737994";
+ rgb = {
+ r = 115;
+ g = 121;
+ b = 148;
+ };
+ hsl = {
+ h = 229;
+ s = 13;
+ l = 52;
+ };
+ };
+ Surface2 = {
+ hex = "#626880";
+ rgb = {
+ r = 98;
+ g = 104;
+ b = 128;
+ };
+ hsl = {
+ h = 228;
+ s = 13;
+ l = 44;
+ };
+ };
+ Surface1 = {
+ hex = "#51576d";
+ rgb = {
+ r = 81;
+ g = 87;
+ b = 109;
+ };
+ hsl = {
+ h = 227;
+ s = 15;
+ l = 37;
+ };
+ };
+ Surface0 = {
+ hex = "#414559";
+ rgb = {
+ r = 65;
+ g = 69;
+ b = 89;
+ };
+ hsl = {
+ h = 230;
+ s = 16;
+ l = 30;
+ };
+ };
+ Base = {
+ hex = "#303446";
+ rgb = {
+ r = 48;
+ g = 52;
+ b = 70;
+ };
+ hsl = {
+ h = 229;
+ s = 19;
+ l = 23;
+ };
+ };
+ Mantle = {
+ hex = "#292c3c";
+ rgb = {
+ r = 41;
+ g = 44;
+ b = 60;
+ };
+ hsl = {
+ h = 231;
+ s = 19;
+ l = 20;
+ };
+ };
+ Crust = {
+ hex = "#232634";
+ rgb = {
+ r = 35;
+ g = 38;
+ b = 52;
+ };
+ hsl = {
+ h = 229;
+ s = 20;
+ l = 17;
+ };
+ };
+ };
+ Macchiato = {
+ Rosewater = {
+ hex = "#f4dbd6";
+ rgb = {
+ r = 244;
+ g = 219;
+ b = 214;
+ };
+ hsl = {
+ h = 10;
+ s = 58;
+ l = 90;
+ };
+ };
+ Flamingo = {
+ hex = "#f0c6c6";
+ rgb = {
+ r = 240;
+ g = 198;
+ b = 198;
+ };
+ hsl = {
+ h = 0;
+ s = 58;
+ l = 86;
+ };
+ };
+ Pink = {
+ hex = "#f5bde6";
+ rgb = {
+ r = 245;
+ g = 189;
+ b = 230;
+ };
+ hsl = {
+ h = 316;
+ s = 74;
+ l = 85;
+ };
+ };
+ Mauve = {
+ hex = "#c6a0f6";
+ rgb = {
+ r = 198;
+ g = 160;
+ b = 246;
+ };
+ hsl = {
+ h = 267;
+ s = 83;
+ l = 80;
+ };
+ };
+ Red = {
+ hex = "#ed8796";
+ rgb = {
+ r = 237;
+ g = 135;
+ b = 150;
+ };
+ hsl = {
+ h = 351;
+ s = 74;
+ l = 73;
+ };
+ };
+ Maroon = {
+ hex = "#ee99a0";
+ rgb = {
+ r = 238;
+ g = 153;
+ b = 160;
+ };
+ hsl = {
+ h = 355;
+ s = 71;
+ l = 77;
+ };
+ };
+ Peach = {
+ hex = "#f5a97f";
+ rgb = {
+ r = 245;
+ g = 169;
+ b = 127;
+ };
+ hsl = {
+ h = 21;
+ s = 86;
+ l = 73;
+ };
+ };
+ Yellow = {
+ hex = "#eed49f";
+ rgb = {
+ r = 238;
+ g = 212;
+ b = 159;
+ };
+ hsl = {
+ h = 40;
+ s = 70;
+ l = 78;
+ };
+ };
+ Green = {
+ hex = "#a6da95";
+ rgb = {
+ r = 166;
+ g = 218;
+ b = 149;
+ };
+ hsl = {
+ h = 105;
+ s = 48;
+ l = 72;
+ };
+ };
+ Teal = {
+ hex = "#8bd5ca";
+ rgb = {
+ r = 139;
+ g = 213;
+ b = 202;
+ };
+ hsl = {
+ h = 171;
+ s = 47;
+ l = 69;
+ };
+ };
+ Sky = {
+ hex = "#91d7e3";
+ rgb = {
+ r = 145;
+ g = 215;
+ b = 227;
+ };
+ hsl = {
+ h = 189;
+ s = 59;
+ l = 73;
+ };
+ };
+ Sapphire = {
+ hex = "#7dc4e4";
+ rgb = {
+ r = 125;
+ g = 196;
+ b = 228;
+ };
+ hsl = {
+ h = 199;
+ s = 66;
+ l = 69;
+ };
+ };
+ Blue = {
+ hex = "#8aadf4";
+ rgb = {
+ r = 138;
+ g = 173;
+ b = 244;
+ };
+ hsl = {
+ h = 220;
+ s = 83;
+ l = 75;
+ };
+ };
+ Lavender = {
+ hex = "#b7bdf8";
+ rgb = {
+ r = 183;
+ g = 189;
+ b = 248;
+ };
+ hsl = {
+ h = 234;
+ s = 82;
+ l = 85;
+ };
+ };
+ Text = {
+ hex = "#cad3f5";
+ rgb = {
+ r = 202;
+ g = 211;
+ b = 245;
+ };
+ hsl = {
+ h = 227;
+ s = 68;
+ l = 88;
+ };
+ };
+ Subtext1 = {
+ hex = "#b8c0e0";
+ rgb = {
+ r = 184;
+ g = 192;
+ b = 224;
+ };
+ hsl = {
+ h = 228;
+ s = 39;
+ l = 80;
+ };
+ };
+ Subtext0 = {
+ hex = "#a5adcb";
+ rgb = {
+ r = 165;
+ g = 173;
+ b = 203;
+ };
+ hsl = {
+ h = 227;
+ s = 27;
+ l = 72;
+ };
+ };
+ Overlay2 = {
+ hex = "#939ab7";
+ rgb = {
+ r = 147;
+ g = 154;
+ b = 183;
+ };
+ hsl = {
+ h = 228;
+ s = 20;
+ l = 65;
+ };
+ };
+ Overlay1 = {
+ hex = "#8087a2";
+ rgb = {
+ r = 128;
+ g = 135;
+ b = 162;
+ };
+ hsl = {
+ h = 228;
+ s = 15;
+ l = 57;
+ };
+ };
+ Overlay0 = {
+ hex = "#6e738d";
+ rgb = {
+ r = 110;
+ g = 115;
+ b = 141;
+ };
+ hsl = {
+ h = 230;
+ s = 12;
+ l = 49;
+ };
+ };
+ Surface2 = {
+ hex = "#5b6078";
+ rgb = {
+ r = 91;
+ g = 96;
+ b = 120;
+ };
+ hsl = {
+ h = 230;
+ s = 14;
+ l = 41;
+ };
+ };
+ Surface1 = {
+ hex = "#494d64";
+ rgb = {
+ r = 73;
+ g = 77;
+ b = 100;
+ };
+ hsl = {
+ h = 231;
+ s = 16;
+ l = 34;
+ };
+ };
+ Surface0 = {
+ hex = "#363a4f";
+ rgb = {
+ r = 54;
+ g = 58;
+ b = 79;
+ };
+ hsl = {
+ h = 230;
+ s = 19;
+ l = 26;
+ };
+ };
+ Base = {
+ hex = "#24273a";
+ rgb = {
+ r = 36;
+ g = 39;
+ b = 58;
+ };
+ hsl = {
+ h = 232;
+ s = 23;
+ l = 18;
+ };
+ };
+ Mantle = {
+ hex = "#1e2030";
+ rgb = {
+ r = 30;
+ g = 32;
+ b = 48;
+ };
+ hsl = {
+ h = 233;
+ s = 23;
+ l = 15;
+ };
+ };
+ Crust = {
+ hex = "#181926";
+ rgb = {
+ r = 24;
+ g = 25;
+ b = 38;
+ };
+ hsl = {
+ h = 236;
+ s = 23;
+ l = 12;
+ };
+ };
+ };
+ Mocha = {
+ Rosewater = {
+ hex = "#f5e0dc";
+ rgb = {
+ r = 245;
+ g = 224;
+ b = 220;
+ };
+ hsl = {
+ h = 10;
+ s = 56;
+ l = 91;
+ };
+ };
+ Flamingo = {
+ hex = "#f2cdcd";
+ rgb = {
+ r = 242;
+ g = 205;
+ b = 205;
+ };
+ hsl = {
+ h = 0;
+ s = 59;
+ l = 88;
+ };
+ };
+ Pink = {
+ hex = "#f5c2e7";
+ rgb = {
+ r = 245;
+ g = 194;
+ b = 231;
+ };
+ hsl = {
+ h = 316;
+ s = 72;
+ l = 86;
+ };
+ };
+ Mauve = {
+ hex = "#cba6f7";
+ rgb = {
+ r = 203;
+ g = 166;
+ b = 247;
+ };
+ hsl = {
+ h = 267;
+ s = 84;
+ l = 81;
+ };
+ };
+ Red = {
+ hex = "#f38ba8";
+ rgb = {
+ r = 243;
+ g = 139;
+ b = 168;
+ };
+ hsl = {
+ h = 343;
+ s = 81;
+ l = 75;
+ };
+ };
+ Maroon = {
+ hex = "#eba0ac";
+ rgb = {
+ r = 235;
+ g = 160;
+ b = 172;
+ };
+ hsl = {
+ h = 350;
+ s = 65;
+ l = 77;
+ };
+ };
+ Peach = {
+ hex = "#fab387";
+ rgb = {
+ r = 250;
+ g = 179;
+ b = 135;
+ };
+ hsl = {
+ h = 23;
+ s = 92;
+ l = 75;
+ };
+ };
+ Yellow = {
+ hex = "#f9e2af";
+ rgb = {
+ r = 249;
+ g = 226;
+ b = 175;
+ };
+ hsl = {
+ h = 41;
+ s = 86;
+ l = 83;
+ };
+ };
+ Green = {
+ hex = "#a6e3a1";
+ rgb = {
+ r = 166;
+ g = 227;
+ b = 161;
+ };
+ hsl = {
+ h = 115;
+ s = 54;
+ l = 76;
+ };
+ };
+ Teal = {
+ hex = "#94e2d5";
+ rgb = {
+ r = 148;
+ g = 226;
+ b = 213;
+ };
+ hsl = {
+ h = 170;
+ s = 57;
+ l = 73;
+ };
+ };
+ Sky = {
+ hex = "#89dceb";
+ rgb = {
+ r = 137;
+ g = 220;
+ b = 235;
+ };
+ hsl = {
+ h = 189;
+ s = 71;
+ l = 73;
+ };
+ };
+ Sapphire = {
+ hex = "#74c7ec";
+ rgb = {
+ r = 116;
+ g = 199;
+ b = 236;
+ };
+ hsl = {
+ h = 199;
+ s = 76;
+ l = 69;
+ };
+ };
+ Blue = {
+ hex = "#89b4fa";
+ rgb = {
+ r = 137;
+ g = 180;
+ b = 250;
+ };
+ hsl = {
+ h = 217;
+ s = 92;
+ l = 76;
+ };
+ };
+ Lavender = {
+ hex = "#b4befe";
+ rgb = {
+ r = 180;
+ g = 190;
+ b = 254;
+ };
+ hsl = {
+ h = 232;
+ s = 97;
+ l = 85;
+ };
+ };
+ Text = {
+ hex = "#cdd6f4";
+ rgb = {
+ r = 205;
+ g = 214;
+ b = 244;
+ };
+ hsl = {
+ h = 226;
+ s = 64;
+ l = 88;
+ };
+ };
+ Subtext1 = {
+ hex = "#bac2de";
+ rgb = {
+ r = 186;
+ g = 194;
+ b = 222;
+ };
+ hsl = {
+ h = 227;
+ s = 35;
+ l = 80;
+ };
+ };
+ Subtext0 = {
+ hex = "#a6adc8";
+ rgb = {
+ r = 166;
+ g = 173;
+ b = 200;
+ };
+ hsl = {
+ h = 228;
+ s = 24;
+ l = 72;
+ };
+ };
+ Overlay2 = {
+ hex = "#9399b2";
+ rgb = {
+ r = 147;
+ g = 153;
+ b = 178;
+ };
+ hsl = {
+ h = 228;
+ s = 17;
+ l = 64;
+ };
+ };
+ Overlay1 = {
+ hex = "#7f849c";
+ rgb = {
+ r = 127;
+ g = 132;
+ b = 156;
+ };
+ hsl = {
+ h = 230;
+ s = 13;
+ l = 55;
+ };
+ };
+ Overlay0 = {
+ hex = "#6c7086";
+ rgb = {
+ r = 108;
+ g = 112;
+ b = 134;
+ };
+ hsl = {
+ h = 231;
+ s = 11;
+ l = 47;
+ };
+ };
+ Surface2 = {
+ hex = "#585b70";
+ rgb = {
+ r = 88;
+ g = 91;
+ b = 112;
+ };
+ hsl = {
+ h = 233;
+ s = 12;
+ l = 39;
+ };
+ };
+ Surface1 = {
+ hex = "#45475a";
+ rgb = {
+ r = 69;
+ g = 71;
+ b = 90;
+ };
+ hsl = {
+ h = 234;
+ s = 13;
+ l = 31;
+ };
+ };
+ Surface0 = {
+ hex = "#313244";
+ rgb = {
+ r = 49;
+ g = 50;
+ b = 68;
+ };
+ hsl = {
+ h = 237;
+ s = 16;
+ l = 23;
+ };
+ };
+ Base = {
+ hex = "#1e1e2e";
+ rgb = {
+ r = 30;
+ g = 30;
+ b = 46;
+ };
+ hsl = {
+ h = 240;
+ s = 21;
+ l = 15;
+ };
+ };
+ Mantle = {
+ hex = "#181825";
+ rgb = {
+ r = 24;
+ g = 24;
+ b = 37;
+ };
+ hsl = {
+ h = 240;
+ s = 21;
+ l = 12;
+ };
+ };
+ Crust = {
+ hex = "#11111b";
+ rgb = {
+ r = 17;
+ g = 17;
+ b = 27;
+ };
+ hsl = {
+ h = 240;
+ s = 23;
+ l = 9;
+ };
+ };
+ };
+ };
+ in
+ {
+ chimera.theme.colors = catppuccinColors.${config.chimera.theme.catppuccin.style} // {
+ Highlight =
+ catppuccinColors.${config.chimera.theme.catppuccin.style}.${config.chimera.theme.catppuccin.color};
+ };
+ }
+ );
+}
diff --git a/modules/home/eww/config/eww.scss b/modules/home/eww/config/eww.scss
index eae0b3c..ad16c17 100644
--- a/modules/home/eww/config/eww.scss
+++ b/modules/home/eww/config/eww.scss
@@ -1,61 +1,82 @@
* {
all: unset; //Unsets everything so you can style everything from scratch
-}
-
-.bar {
- background-color: #ccd0da;
- color: #4c4f69;
+ }
+
+ $surface-color: #CCD0DA;
+ $contrast-color: #4C4F69;
+ $accent-color: #F27878;
+
+ .bar {
+ background-color: $surface-color;
+ color: $contrast-color;
border-radius: 10px;
- padding: 10px 15px;
+ padding: 5px 15px;
margin: 0 20px;
margin-top: 20px;
-}
-
-// Styles on classes (see eww.yuck for more information)
-
-.sidestuff slider {
+ }
+
+ // Styles on classes (see eww.yuck for more information)
+
+ .sidestuff slider {
all: unset;
- color: #ffd5cd;
-}
-
-.metric scale trough highlight {
+ color: $surface-color;
+ }
+
+ .radio button {
all: unset;
- background-color: #D35D6E;
- color: #000000;
+ min-width: 25px;
+ min-height: 25px;
+ margin-right: 10px;
+ border-radius: 100%;
+ }
+
+ .radio button.unblocked {
+ background-color: $accent-color;
+ }
+
+ .radio button.blocked {
+ background-color: $contrast-color;
+ }
+
+ .metric scale trough highlight {
+ all: unset;
+ background-color: $accent-color;
+ color: $contrast-color;
border-radius: 10px;
-}
-
-.metric scale trough {
+ }
+
+ .metric scale trough {
all: unset;
- background-color: #4e4e4e;
+ background-color: $contrast-color;
border-radius: 50px;
min-height: 3px;
min-width: 50px;
margin-left: 10px;
margin-right: 20px;
-}
-
-.metric scale trough highlight {
+ }
+
+ .metric scale trough highlight {
all: unset;
- background-color: #D35D6E;
- color: #000000;
+ background-color: $accent-color;
+ color: $contrast-color;
border-radius: 10px;
-}
-
-.metric scale trough {
+ }
+
+ .metric scale trough {
all: unset;
- background-color: #4e4e4e;
+ background-color: $contrast-color;
border-radius: 50px;
min-height: 3px;
min-width: 50px;
margin-left: 10px;
margin-right: 20px;
-}
-
-.label-ram {
+ }
+
+ .label-ram {
font-size: large;
-}
-
-.workspaces button:hover {
- color: #D35D6E;
-}
\ No newline at end of file
+ }
+
+ .workspaces button:hover {
+ color: $accent-color;
+ }
+
\ No newline at end of file
diff --git a/modules/home/eww/config/eww.yuck b/modules/home/eww/config/eww.yuck
index 598646e..a7695ac 100644
--- a/modules/home/eww/config/eww.yuck
+++ b/modules/home/eww/config/eww.yuck
@@ -9,14 +9,38 @@
(box :class "sidestuff" :orientation "h" :space-evenly false :halign "end"
(metric :label "đ"
:value volume
- :onchange "amixer -D pulse sset Master {}%")
- (metric :label "īĄ"
+ :onchange "nix run nixpkgs#pamixer -- --set-volume {}")
+ (radio)
+ (sysinfo)
+ time))
+
+(defwidget radio []
+ (box :class "radio" :orientation "h" :space-evenly false :halign "end"
+ (button :class bluetooth
+ :onclick { bluetooth == "inactive" ? "bluetoothctl power on" : "bluetoothctl power off"}
+ "ī")
+ (button :class wifi
+ :onclick { wifi == "disabled" ? "nmcli radio wifi on" : "nmcli radio wifi off"}
+ "đ")
+ )
+)
+
+(defwidget sysinfo []
+ (box :class "sysinfo"
+ ; (metric :label { battery_status == "Normal" ? "đ" : "đĒĢ" }
+ ; :value battery_cap
+ ; :onchange "")
+ (metric :label "đ"
:value {EWW_RAM.used_mem_perc}
:onchange "")
(metric :label "đž"
:value {round((1 - (EWW_DISK["/"].free / EWW_DISK["/"].total)) * 100, 0)}
:onchange "")
- time))
+ (metric :label "đ"
+ :value cpu_usage_percent
+ :onchange "")
+ )
+)
(defwidget workspaces []
(box :class "workspaces"
@@ -24,21 +48,24 @@
:space-evenly true
:halign "start"
:spacing 10
- (button :onclick "wmctrl -s 0" 1)
- (button :onclick "wmctrl -s 1" 2)
- (button :onclick "wmctrl -s 2" 3)
- (button :onclick "wmctrl -s 3" 4)
- (button :onclick "wmctrl -s 4" 5)
- (button :onclick "wmctrl -s 5" 6)
- (button :onclick "wmctrl -s 6" 7)
- (button :onclick "wmctrl -s 7" 8)
- (button :onclick "wmctrl -s 8" 9)))
+ (button :onclick "hyprctl dispatch workspace 1" 1)
+ (button :onclick "hyprctl dispatch workspace 2" 2)
+ (button :onclick "hyprctl dispatch workspace 3" 3)
+ (button :onclick "hyprctl dispatch workspace 4" 4)
+ (button :onclick "hyprctl dispatch workspace 5" 5)
+ (button :onclick "hyprctl dispatch workspace 6" 6)
+ (button :onclick "hyprctl dispatch workspace 7" 7)
+ (button :onclick "hyprctl dispatch workspace 8" 8)
+ (button :onclick "hyprctl dispatch workspace 9" 9)
+ (button :onclick "hyprctl dispatch workspace 0" 0)
+ ))
(defwidget music []
(box :class "music"
:orientation "h"
:space-evenly false
:halign "center"
+ :onclick ""
{music != "" ? "đĩ${music}" : ""}))
@@ -53,18 +80,34 @@
:value value
:onchange onchange)))
-
-
(deflisten music :initial ""
-"playerctl --follow metadata --format '{{ artist }} - {{ title }}' || true")
+"nix run nixpkgs#playerctl -- --follow metadata --format '{{ title }}' || true")
+
+(defpoll bluetooth :interval "1s"
+"rfkill -o TYPE,SOFT list -n | grep bluetooth | sed -E 's/bluetooth\s+//g'")
+
+(defpoll wifi :interval "1s"
+"rfkill -o TYPE,SOFT list -n | grep wlan | sed -E 's/wlan\s+//g'")
(defpoll volume :interval "1s"
-"scripts/getvol")
+"nix run nixpkgs#pamixer -- --get-volume")
-(defpoll time :interval "10s"
-"date '+%H:%M %b %d, %Y'")
+(defpoll battery_cap :interval "5m"
+"cat /sys/class/power_supply/BAT*/capacity"
+)
-(defwindow bar-eDP1
+(defpoll battery_status :interval "1s"
+"cat /sys/class/power_supply/BAT*/status"
+)
+
+(defpoll cpu_usage_percent :interval "5s"
+"bash scripts/cpu_usage"
+)
+
+(defpoll time :interval "1s"
+"date '+%H:%M:%S %b %d, %Y'")
+
+(defwindow bar-primary
:monitor 0
:windowtype "dock"
:geometry (geometry :x "0%"
@@ -74,25 +117,3 @@
:anchor "top center")
:exclusive true
(bar))
-
-(defwindow bar-HDMI-A-1
- :monitor 0
- :windowtype "dock"
- :geometry (geometry :x "0%"
- :y "0%"
- :width "100%"
- :height "10px"
- :anchor "top center")
- :exclusive true
- (bar))
-
-(defwindow bar-DP7
- :monitor 0
- :windowtype "dock"
- :geometry (geometry :x "0%"
- :y "0%"
- :width "100%"
- :height "10px"
- :anchor "top center")
- :exclusive true
- (bar))
\ No newline at end of file
diff --git a/modules/home/eww/config/scripts/cpu_usage b/modules/home/eww/config/scripts/cpu_usage
new file mode 100644
index 0000000..62d9af7
--- /dev/null
+++ b/modules/home/eww/config/scripts/cpu_usage
@@ -0,0 +1,7 @@
+CPU=$(sed -n 's/^cpu\s//p' /proc/stat);
+TOTAL=$(($(T=0; for VAL in $CPU; do T=($((T))+$((VAL))); done; echo $T)));
+IDLE=${CPU[4]};
+IDLE_FRAC=$(echo $(($IDLE.00/$TOTAL)));
+IN_USE=$(echo $(( 1.00 - $IDLE_FRAC )));
+NUM=$(( $IN_USE * 100 ));
+echo $NUM
\ No newline at end of file
diff --git a/modules/home/eww/default.nix b/modules/home/eww/default.nix
index 2159bfe..b9a60be 100644
--- a/modules/home/eww/default.nix
+++ b/modules/home/eww/default.nix
@@ -1,7 +1,20 @@
-{ inputs, pkgs, ... }: {
+{ inputs, pkgs, ... }:
+{
programs.eww = {
enable = true;
package = pkgs.eww-wayland;
configDir = ./config;
};
-}
\ No newline at end of file
+
+ /* bluetoothctl
+ wpa_cli
+ pamixer
+ rfkill -> util-linux
+ cat
+ bash
+ date
+ */
+ # wpa_cli disable_network
+
+ # $RUN_wpa_cli
+}
diff --git a/modules/home/gestures/default.nix b/modules/home/gestures/default.nix
index 6abbbe4..73bdb83 100644
--- a/modules/home/gestures/default.nix
+++ b/modules/home/gestures/default.nix
@@ -1,11 +1,14 @@
-{ lib, config, ... }: {
- options.minion.touchpadGestures.enable = lib.mkEnableOption "Enable touchpad gestures";
+{ lib, config, ... }:
+{
+ options.chimera.touchpad.enable = lib.mkEnableOption "Enable touchpad gestures";
- config = lib.mkIf config.minion.touchpadGestures.enable {
+ config = lib.mkIf config.chimera.touchpad.enable {
services.fusuma.enable = true;
systemd.user.startServices = "sd-switch";
- systemd.user.services.fusuma.Unit.X-Restart-Triggers = [ config.xdg.configFile."fusuma/config.yaml".source ];
+ systemd.user.services.fusuma.Unit.X-Restart-Triggers = [
+ config.xdg.configFile."fusuma/config.yaml".source
+ ];
};
-}
\ No newline at end of file
+}
diff --git a/modules/home/hyprland/default.nix b/modules/home/hyprland/default.nix
index a2f8b88..ce1a300 100644
--- a/modules/home/hyprland/default.nix
+++ b/modules/home/hyprland/default.nix
@@ -1,93 +1,164 @@
-{ pkgs, config, inputs, system, ... }: let
+{
+ pkgs,
+ config,
+ inputs,
+ system,
+ lib,
+ ...
+}:
+let
lock = "${pkgs.waylock}/bin/waylock";
-in {
+in
+{
+ options.chimera.hyprland = {
+ enable = lib.mkEnableOption "Use hyprland as your window manager";
+
+ monitors = lib.mkOption {
+ type = lib.types.listOf lib.types.str;
+ description = "List of default monitors to set";
+ default = [ ];
+ };
+ };
+
+ /* general = {
+ gaps_in = 5;
+ gaps_out = 20;
+
+ border_size = 1;
+ "col.active_border" = "rgba(71AEF5EE)";
+ "col.inactive_border" = "rgba(C4C4C4EE)";
+
+ layout = "dwindle";
+ };
+
+ dwindle = {
+ pseudotile = true;
+ smart_split = true;
+ };
+
+ master = {
+ allow_small_split = true;
+ new_is_master = true;
+ };
+
+ decoration = {
+ rounding = 7;
+
+ drop_shadow = true;
+ shadow_range = 4;
+ shadow_render_power = 3;
+ "col.shadow" = "rgba(1a1a1aee)";
+ };
+ */
# TODO: Eww, SwayNC, hyprland-per-window-layout, waylock, hy3, anyrun, hypr-empty
- home.packages = [ pkgs.hyprpicker ];
+ config = lib.mkIf config.chimera.hyprland.enable {
+ home.packages = [ pkgs.hyprpicker ];
- minion.touchpadGestures.enable = true;
+ services.fusuma.settings.swipe = lib.mkIf config.chimera.touchpad.enable (
+ let
+ hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl";
+ jq = "${pkgs.jq}/bin/jq";
+ awk = "${pkgs.gawk}/bin/awk";
+ in
+ {
+ "3".up.command = "${hyprctl} dispatch fullscreen 0";
+ "3".down.command = "${hyprctl} dispatch fullscreen 0";
+ "4".down.command = lock;
+ "3".left.command = "${hyprctl} dispatch workspace $(${hyprctl} activeworkspace -j | ${jq} .id | ${awk} '{print $1+1}')";
+ "3".right.command = "${hyprctl} dispatch workspace $(${hyprctl} activeworkspace -j | ${jq} .id | ${awk} '{print $1-1}')";
+ }
+ );
- services.fusuma.settings.swipe = let
- hyprctl = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl";
- jq = "${pkgs.jq}/bin/jq";
- awk = "${pkgs.gawk}/bin/awk";
- in {
- "3".up.command = "${hyprctl} dispatch fullscreen 0";
- "3".down.command = "${hyprctl} dispatch fullscreen 0";
- "4".down.command = lock;
- "3".left.command = "${hyprctl} dispatch workspace $(${hyprctl} activeworkspace -j | ${jq} .id | ${awk} '{print $1+1}')";
- "3".right.command = "${hyprctl} dispatch workspace $(${hyprctl} activeworkspace -j | ${jq} .id | ${awk} '{print $1-1}')";
- };
+ wayland.windowManager.hyprland = {
+ enable = true;
- wayland.windowManager.hyprland = {
- enable = true;
+ xwayland.enable = true;
+ systemd.enable = true;
- xwayland.enable = true;
- systemd.enable = true;
+ settings =
+ let
+ mod = "SUPER";
+ terminal = "${pkgs.kitty}/bin/kitty";
+ menu = "${inputs.anyrun.packages.${system}.anyrun}/bin/anyrun";
+ in
+ {
+ misc = {
+ disable_hyprland_logo = true;
+ disable_splash_rendering = true;
+ };
- settings = let
- mod = "SUPER";
- terminal = "${pkgs.kitty}/bin/kitty";
- menu = "${inputs.anyrun.packages.${system}.anyrun}/bin/anyrun";
- in {
- misc = {
- disable_hyprland_logo = true;
- disable_splash_rendering = true;
- };
+ exec-once = "${pkgs.hyprpaper}/bin/hyprpaper";
- exec-once = "${pkgs.hyprpaper}/bin/hyprpaper";
+ monitor = config.chimera.hyprland.monitors ++ [ ",preferred,auto,1" ];
- monitor = [
- "eDP-1,preferred,0x0,1"
- "desc:Dell Inc. DELL P2715Q V7WP95AV914L,preferred,2256x-1956,1,transform,1"
- "desc:AOC 2460G5 0x00023C3F,preferred,336x-1080,1"
- ",preferred,auto,1" # https://wiki.hyprland.org/Configuring/Monitors/
- ];
+ decoration = {
+ rounding = 7;
+ };
- input = {
- kb_layout = "us";
- kb_variant = "dvorak";
- natural_scroll = true;
+ input = {
+ kb_layout = "us";
+ kb_variant = "dvorak";
+ natural_scroll = true;
- touchpad = {
- natural_scroll = true;
- };
- };
+ touchpad = {
+ natural_scroll = true;
+ };
+ };
- xwayland = {
- force_zero_scaling = true;
- };
+ xwayland = {
+ force_zero_scaling = true;
+ };
- bind = [
- "${mod}, Q, killactive"
- "${mod}, SPACE, togglefloating"
- "${mod}, RETURN, exec, ${terminal}"
- "${mod}, down, movefocus, d"
- "${mod}, up, movefocus, u"
- "${mod}, right, movefocus, r"
- "${mod}, left, movefocus, l"
- "${mod}, L, exec, ${lock}"
- "${mod}, D, exec, ${menu}"
- ] ++ (
- builtins.concatLists (builtins.genList (
- x: let
- ws = let
- c = (x + 1) / 10;
- in
- builtins.toString (x + 1 - (c * 10));
- in [
- "${mod}, ${ws}, workspace, ${toString (x + 1)}"
- "${mod} SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
+ dwindle = {
+ pseudotile = true;
+ smart_split = true;
+ };
+
+ master = {
+ allow_small_split = true;
+ new_is_master = true;
+ };
+
+ windowrulev2 = [ "opacity 1.0 0.85,title:(.*)" ];
+
+ bind =
+ [
+ "${mod}, Q, killactive"
+ "${mod}, SPACE, togglefloating"
+ "${mod}, RETURN, exec, ${terminal}"
+ "${mod}, down, movefocus, d"
+ "${mod}, up, movefocus, u"
+ "${mod}, right, movefocus, r"
+ "${mod}, left, movefocus, l"
+ "${mod}, L, exec, ${lock}"
+ "${mod}, D, exec, ${menu}"
]
- )
- 10)
- );
+ ++ (builtins.concatLists (
+ builtins.genList
+ (
+ x:
+ let
+ ws =
+ let
+ c = (x + 1) / 10;
+ in
+ builtins.toString (x + 1 - (c * 10));
+ in
+ [
+ "${mod}, ${ws}, workspace, ${toString (x + 1)}"
+ "${mod} SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
+ ]
+ )
+ 10
+ ));
- bindm = [
- "${mod}, mouse:272, movewindow"
- "${mod}, mouse:273, resizewindow"
- ];
+ bindm = [
+ "${mod}, mouse:272, movewindow"
+ "${mod}, mouse:273, resizewindow"
+ ];
+ };
};
};
-}
\ No newline at end of file
+}
diff --git a/modules/home/hyprpaper/default.nix b/modules/home/hyprpaper/default.nix
index c378a21..27d149a 100644
--- a/modules/home/hyprpaper/default.nix
+++ b/modules/home/hyprpaper/default.nix
@@ -1,9 +1,31 @@
-{ ... }: {
- config.xdg.configFile."hypr/hyprpaper.conf".source = builtins.toFile "hyprpaper.conf" ''
- preload = ${./wallpaper.png}
+{ config, lib, ... }:
+{
+ options.chimera = {
+ wallpaper = lib.mkOption {
+ type = lib.types.path;
+ description = "Wallpaper of your choosing";
+ };
+ hyprland.hyprpaper.splash = {
+ enable = lib.mkEnableOption "Enable the hyprland splash text";
+ offset = lib.mkOption {
+ type = lib.types.float;
+ description = "Set the splash offset";
+ default = 2.0;
+ };
+ };
+ };
- wallpaper=,${./wallpaper.png}
+ # TODO: wallpapers path[] -> gen wallpaper lines...
+ config.xdg.configFile."hypr/hyprpaper.conf".source = lib.mkIf config.chimera.hyprland.enable (
+ builtins.toFile "hyprpaper.conf" ''
+ preload = ${config.chimera.wallpaper}
- splash = true
- '';
+ wallpaper=,${config.chimera.wallpaper}
+
+ splash = ${builtins.toString config.chimera.hyprland.hyprpaper.splash.enable}
+ splash_offset = ${builtins.toString config.chimera.hyprland.hyprpaper.splash.offset}
+
+ ipc = off
+ ''
+ );
}
diff --git a/modules/home/hyprpaper/wallpaper.png b/modules/home/hyprpaper/wallpaper.png
deleted file mode 100644
index 409ae38..0000000
--- a/modules/home/hyprpaper/wallpaper.png
+++ /dev/null
Binary files differ
diff --git a/modules/home/manual/default.nix b/modules/home/manual/default.nix
index 8709a09..ca5804a 100644
--- a/modules/home/manual/default.nix
+++ b/modules/home/manual/default.nix
@@ -1,4 +1,9 @@
-{ config, lib, pkgs, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
{
manual.manpages.enable = true;
diff --git a/modules/home/nix-index/default.nix b/modules/home/nix-index/default.nix
index 1345dc7..7ff8acb 100644
--- a/modules/home/nix-index/default.nix
+++ b/modules/home/nix-index/default.nix
@@ -1,4 +1,9 @@
-{ config, lib, pkgs, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
{
xdg.enable = true;
diff --git a/modules/home/stateVersion/default.nix b/modules/home/stateVersion/default.nix
index 2e40de6..7d073d6 100644
--- a/modules/home/stateVersion/default.nix
+++ b/modules/home/stateVersion/default.nix
@@ -1,4 +1,9 @@
-{ config, lib, pkgs, ... }:
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
{
home.stateVersion = "24.05";
diff --git a/modules/home/theme/default.nix b/modules/home/theme/default.nix
new file mode 100644
index 0000000..5fdb405
--- /dev/null
+++ b/modules/home/theme/default.nix
@@ -0,0 +1,56 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}:
+{
+ options.chimera.theme = {
+ cursor = null;
+ colors =
+ let
+ themeColor = {
+ hex = lib.types.str;
+ rgb = {
+ r = lib.types.numbers 0 255;
+ g = lib.types.numbers 0 255;
+ b = lib.types.numbers 0 255;
+ };
+ hsl = {
+ h = lib.types.numbers 0 360;
+ s = lib.types.numbers 0 100;
+ l = lib.types.numbers 0 100;
+ };
+ };
+ in
+ {
+ Rosewater = lib.mkOption { type = themeColor; };
+ Flamingo = lib.mkOption { type = themeColor; };
+ Pink = lib.mkOption { type = themeColor; };
+ Mauve = lib.mkOption { type = themeColor; };
+ Red = lib.mkOption { type = themeColor; };
+ Maroon = lib.mkOption { type = themeColor; };
+ Peach = lib.mkOption { type = themeColor; };
+ Yellow = lib.mkOption { type = themeColor; };
+ Green = lib.mkOption { type = themeColor; };
+ Teal = lib.mkOption { type = themeColor; };
+ Sky = lib.mkOption { type = themeColor; };
+ Sapphire = lib.mkOption { type = themeColor; };
+ Blue = lib.mkOption { type = themeColor; };
+ Lavender = lib.mkOption { type = themeColor; };
+ Text = lib.mkOption { type = themeColor; };
+ Subtext1 = lib.mkOption { type = themeColor; };
+ Subtext0 = lib.mkOption { type = themeColor; };
+ Overlay2 = lib.mkOption { type = themeColor; };
+ Overlay1 = lib.mkOption { type = themeColor; };
+ Overlay0 = lib.mkOption { type = themeColor; };
+ Surface2 = lib.mkOption { type = themeColor; };
+ Surface1 = lib.mkOption { type = themeColor; };
+ Surface0 = lib.mkOption { type = themeColor; };
+ Base = lib.mkOption { type = themeColor; };
+ Mantle = lib.mkOption { type = themeColor; };
+ Crust = lib.mkOption { type = themeColor; };
+ Highlight = lib.mkOption { type = themeColor; };
+ };
+ };
+}
diff --git a/modules/home/tinycarton/default.nix b/modules/home/tinycarton/default.nix
new file mode 100644
index 0000000..ede0121
--- /dev/null
+++ b/modules/home/tinycarton/default.nix
@@ -0,0 +1,4 @@
+{ pkgs, ... }:
+{
+ home.packages = [ pkgs.chimera.nix-provider ];
+}
diff --git a/modules/nixos/audio/default.nix b/modules/nixos/audio/default.nix
index 7ded3fb..0c1bfcd 100644
--- a/modules/nixos/audio/default.nix
+++ b/modules/nixos/audio/default.nix
@@ -1,4 +1,5 @@
-{ ... }: {
+{ ... }:
+{
services.pipewire = {
enable = true;
alsa = {
@@ -6,5 +7,21 @@
support32Bit = true;
};
pulse.enable = true;
+ jack.enable = true;
};
+
+ environment.etc."pipewire/pipewire.conf.d/VirtualAudioDevice.conf".text = ''
+ context.objects = [
+ {
+ factory = adapter
+ args = {
+ factory.name = support.null-audio-sink
+ node.name = Microphone-Proxy
+ node.description = Microphone
+ media.class = Audio/Source/Virtual
+ audio.posistion = MONO
+ }
+ }
+ ]
+ '';
}
diff --git a/modules/nixos/bluetooth/default.nix b/modules/nixos/bluetooth/default.nix
new file mode 100644
index 0000000..d2a2666
--- /dev/null
+++ b/modules/nixos/bluetooth/default.nix
@@ -0,0 +1,4 @@
+{ ... }: {
+ hardware.bluetooth.enable = true;
+ hardware.bluetooth.powerOnBoot = true;
+}
\ No newline at end of file
diff --git a/modules/nixos/browsers/default.nix b/modules/nixos/browsers/default.nix
index 33078e1..1d72a8d 100644
--- a/modules/nixos/browsers/default.nix
+++ b/modules/nixos/browsers/default.nix
@@ -1,3 +1,4 @@
-{ pkgs, ... }: {
+{ pkgs, ... }:
+{
environment.systemPackages = [ pkgs.firefox ];
-}
\ No newline at end of file
+}
diff --git a/modules/nixos/dns/default.nix b/modules/nixos/dns/default.nix
new file mode 100644
index 0000000..ee63eb8
--- /dev/null
+++ b/modules/nixos/dns/default.nix
@@ -0,0 +1,29 @@
+{ ... }:
+{
+ services = {
+ dnsmasq = {
+ enable = true;
+ settings = {
+ server = [
+ "1.1.1.1"
+ "1.0.0.1"
+ ];
+ local = "/local/";
+ domain = "local";
+ expand-hosts = true;
+ };
+ };
+ avahi = {
+ enable = true;
+ nssmdns4 = true;
+ nssmdns6 = true;
+ ipv4 = true;
+ ipv6 = true;
+ publish = {
+ enable = true;
+ addresses = true;
+ workstation = true;
+ };
+ };
+ };
+}
diff --git a/modules/nixos/editors/default.nix b/modules/nixos/editors/default.nix
index df773e6..4c12f30 100644
--- a/modules/nixos/editors/default.nix
+++ b/modules/nixos/editors/default.nix
@@ -1,4 +1,5 @@
-{ pkgs, ... }: {
+{ pkgs, ... }:
+{
environment.systemPackages = [
pkgs.emacs
pkgs.neovim
diff --git a/modules/nixos/git/default.nix b/modules/nixos/git/default.nix
index 9366bdf..8a64e0d 100644
--- a/modules/nixos/git/default.nix
+++ b/modules/nixos/git/default.nix
@@ -1,3 +1,4 @@
-{ pkgs, ... }: {
+{ pkgs, ... }:
+{
environment.systemPackages = [ pkgs.git ];
-}
\ No newline at end of file
+}
diff --git a/modules/nixos/graphics/default.nix b/modules/nixos/graphics/default.nix
index 55a5ea4..27635c1 100644
--- a/modules/nixos/graphics/default.nix
+++ b/modules/nixos/graphics/default.nix
@@ -1,10 +1,9 @@
-{ pkgs, ... }: {
+{ pkgs, ... }:
+{
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
- extraPackages = [
- pkgs.vaapiVdpau
- ];
+ extraPackages = [ pkgs.vaapiVdpau ];
};
}
diff --git a/modules/nixos/home-manager/default.nix b/modules/nixos/home-manager/default.nix
index 9c96dd3..26a9c50 100644
--- a/modules/nixos/home-manager/default.nix
+++ b/modules/nixos/home-manager/default.nix
@@ -1,5 +1,4 @@
-{ inputs, system, ... }: {
- environment.systemPackages = [
- inputs.home-manager.defaultPackage.${system}
- ];
-}
\ No newline at end of file
+{ inputs, system, ... }:
+{
+ environment.systemPackages = [ inputs.home-manager.defaultPackage.${system} ];
+}
diff --git a/modules/nixos/hyprland/default.nix b/modules/nixos/hyprland/default.nix
index 90e38ce..40f30df 100644
--- a/modules/nixos/hyprland/default.nix
+++ b/modules/nixos/hyprland/default.nix
@@ -1,5 +1,6 @@
-{ ... }: {
+{ ... }:
+{
programs.hyprland.enable = true;
users.users.minion.extraGroups = [ "input" ];
-}
\ No newline at end of file
+}
diff --git a/modules/nixos/nix/default.nix b/modules/nixos/nix/default.nix
index 307d6ea..dff4f4f 100644
--- a/modules/nixos/nix/default.nix
+++ b/modules/nixos/nix/default.nix
@@ -1,4 +1,5 @@
-{ ... }: {
+{ ... }:
+{
system.stateVersion = "24.05";
console.keyMap = "dvorak";
@@ -15,6 +16,9 @@
"anyrun.cachix.org-1:pqBobmOjI7nKlsUMV25u9QHa9btJK65/C8vnO3p346s="
];
- experimental-features = [ "nix-command" "flakes" ];
+ experimental-features = [
+ "nix-command"
+ "flakes"
+ ];
};
}
diff --git a/modules/nixos/terminals/default.nix b/modules/nixos/terminals/default.nix
index 3b44e0b..b28aa04 100644
--- a/modules/nixos/terminals/default.nix
+++ b/modules/nixos/terminals/default.nix
@@ -1,5 +1,4 @@
-{ pkgs, ... }: {
- environment.systemPackages = [
- pkgs.kitty
- ];
-}
\ No newline at end of file
+{ pkgs, ... }:
+{
+ environment.systemPackages = [ pkgs.kitty ];
+}
diff --git a/modules/nixos/users/default.nix b/modules/nixos/users/default.nix
index 5e4b0c1..58c28df 100644
--- a/modules/nixos/users/default.nix
+++ b/modules/nixos/users/default.nix
@@ -1,4 +1,5 @@
-{ pkgs, ... }: {
+{ pkgs, ... }:
+{
users.users.minion = {
isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
@@ -9,5 +10,5 @@
initialPassword = "nixos";
};
- security.pam.services.waylock = {};
+ security.pam.services.waylock = { };
}
diff --git a/modules/nixos/wifi/default.nix b/modules/nixos/wifi/default.nix
index fcd6ccf..f0d5d1e 100644
--- a/modules/nixos/wifi/default.nix
+++ b/modules/nixos/wifi/default.nix
@@ -1,4 +1,5 @@
-{ ... }: {
+{ ... }:
+{
networking.wireless = {
enable = true;
userControlled.enable = true;