Added Waybar and Terminal Theming, Disabled Numenvoice and SafeEyes

This commit is contained in:
kB01 2025-12-05 22:00:36 +01:00
parent 1521c06d73
commit e6f40fc8fc
No known key found for this signature in database
13 changed files with 828 additions and 170 deletions

View file

@ -1,5 +1,89 @@
{
"nodes": {
"base16": {
"inputs": {
"fromYaml": "fromYaml"
},
"locked": {
"lastModified": 1755819240,
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
"owner": "SenchoPens",
"repo": "base16.nix",
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "base16.nix",
"type": "github"
}
},
"base16-fish": {
"flake": false,
"locked": {
"lastModified": 1754405784,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=",
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
},
"original": {
"owner": "tomyun",
"repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561",
"type": "github"
}
},
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1760703920,
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "d646af9b7d14bff08824538164af99d0c521b185",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-helix",
"type": "github"
}
},
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1732806396,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1764724327,
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-compat": {
"flake": false,
"locked": {
@ -32,6 +116,27 @@
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
@ -87,6 +192,41 @@
"type": "github"
}
},
"fromYaml": {
"flake": false,
"locked": {
"lastModified": 1731966426,
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
"owner": "SenchoPens",
"repo": "fromYaml",
"rev": "106af9e2f715e2d828df706c386a685698f3223b",
"type": "github"
},
"original": {
"owner": "SenchoPens",
"repo": "fromYaml",
"type": "github"
}
},
"gnome-shell": {
"flake": false,
"locked": {
"host": "gitlab.gnome.org",
"lastModified": 1764524476,
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
"owner": "GNOME",
"repo": "gnome-shell",
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
"type": "gitlab"
},
"original": {
"host": "gitlab.gnome.org",
"owner": "GNOME",
"ref": "gnome-49",
"repo": "gnome-shell",
"type": "gitlab"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@ -94,11 +234,11 @@
]
},
"locked": {
"lastModified": 1763906693,
"narHash": "sha256-inm7paa3myo8gE4TzjM8OPvsEg8xocWreIZBgBPEKgo=",
"lastModified": 1764872372,
"narHash": "sha256-uZuXRz9CzeCHsRbc2MQvKomwoX6GcFC5BUMEk3ouSFU=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "3d6c1c8fa0bea3a1a7ba23d6fa5993116766073b",
"rev": "05a56dbf24f195c62286e3273a2671d3b4904b00",
"type": "github"
},
"original": {
@ -116,11 +256,11 @@
]
},
"locked": {
"lastModified": 1763776632,
"narHash": "sha256-mvumw4Djwi6BgMKVKw5cpNt8a80+h/LvPy2AHOtzBzE=",
"lastModified": 1764813963,
"narHash": "sha256-Vs7Mamto+T8r1evk9myHepgHGNJkS2Kr0BF64NIei94=",
"owner": "Infinidoge",
"repo": "nix-minecraft",
"rev": "e6d3b589d9f1f869e68142f44654e59fcb47390c",
"rev": "491200d6848402bbab1421cccbc15a46f08c7f78",
"type": "github"
},
"original": {
@ -152,11 +292,11 @@
]
},
"locked": {
"lastModified": 1751903740,
"narHash": "sha256-PeSkNMvkpEvts+9DjFiop1iT2JuBpyknmBUs0Un0a4I=",
"lastModified": 1764234087,
"narHash": "sha256-NHF7QWa0ZPT8hsJrvijREW3+nifmF2rTXgS2v0tpcEA=",
"owner": "nix-community",
"repo": "nixos-generators",
"rev": "032decf9db65efed428afd2fa39d80f7089085eb",
"rev": "032a1878682fafe829edfcf5fdfad635a2efe748",
"type": "github"
},
"original": {
@ -167,11 +307,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1762847253,
"narHash": "sha256-BWWnUUT01lPwCWUvS0p6Px5UOBFeXJ8jR+ZdLX8IbrU=",
"lastModified": 1764440730,
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=",
"owner": "NixOS",
"repo": "nixos-hardware",
"rev": "899dc449bc6428b9ee6b3b8f771ca2b0ef945ab9",
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3",
"type": "github"
},
"original": {
@ -183,11 +323,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1763678758,
"narHash": "sha256-+hBiJ+kG5IoffUOdlANKFflTT5nO3FrrR2CA3178Y5s=",
"lastModified": 1764667669,
"narHash": "sha256-7WUCZfmqLAssbDqwg9cUDAXrSoXN79eEEq17qhTNM/Y=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "117cc7f94e8072499b0a7aa4c52084fa4e11cc9b",
"rev": "418468ac9527e799809c900eda37cbff999199b6",
"type": "github"
},
"original": {
@ -197,6 +337,31 @@
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1764773531,
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
"owner": "nix-community",
"repo": "NUR",
"rev": "1d9616689e98beded059ad0384b9951e967a17fa",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
@ -205,7 +370,8 @@
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
"snowfall-lib": "snowfall-lib",
"sops-nix": "sops-nix"
"sops-nix": "sops-nix",
"stylix": "stylix"
}
},
"snowfall-lib": {
@ -237,11 +403,11 @@
]
},
"locked": {
"lastModified": 1763870012,
"narHash": "sha256-AHxFfIu73SpNLAOZbu/AvpLhZ/Szhx6gRPj9ufZtaZA=",
"lastModified": 1764483358,
"narHash": "sha256-EyyvCzXoHrbL467YSsQBTWWg4sR96MH1sPpKoSOelB4=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "4e7d74d92398b933cc0e0e25af5b0836efcfdde3",
"rev": "5aca6ff67264321d47856a2ed183729271107c9c",
"type": "github"
},
"original": {
@ -250,6 +416,40 @@
"type": "github"
}
},
"stylix": {
"inputs": {
"base16": "base16",
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-parts": "flake-parts",
"gnome-shell": "gnome-shell",
"nixpkgs": [
"nixpkgs"
],
"nur": "nur",
"systems": "systems_3",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
},
"locked": {
"lastModified": 1764860352,
"narHash": "sha256-bWrh2T6EPiiZC7jY0jK5cWRwkG0hltnPT1etfHIHiXM=",
"owner": "nix-community",
"repo": "stylix",
"rev": "61a01b75f0a7e58dac486ddf022c628a71528399",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "stylix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
@ -279,6 +479,102 @@
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1735730497,
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1763914658,
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1764465359,
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1764464512,
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
}
},
"root": "root",

View file

@ -8,6 +8,8 @@
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
stylix.url = "github:nix-community/stylix";
stylix.inputs.nixpkgs.follows = "nixpkgs";
nix-minecraft.url = "github:Infinidoge/nix-minecraft";
nix-minecraft.inputs.nixpkgs.follows = "nixpkgs";
nixos-generators.url = "github:nix-community/nixos-generators";
@ -36,6 +38,11 @@
namespace = "kb-one";
};
# Modules for Host Ohybke
systems.hosts.Ohybke.modules = with inputs; [
stylix.nixosModules.stylix
];
# Modules for Host HyperC
systems.hosts.HyperC.modules = with inputs; [
];

View file

@ -57,11 +57,10 @@
mosh
btop
fastfetch
kicad
#kicad
];
suites.desktop.enable = true;
suites.desktop.sway-experiments.enable = true;
services.syncthing.enable = true;
services.syncthing.extraOptions = [
@ -70,7 +69,7 @@
];
services.kdeconnect.enable = true;
services.safeeyes.enable = true;
services.safeeyes.enable = false;
services.gpg-agent.enable = true;
@ -78,5 +77,9 @@
programs.vim.defaultEditor = true;
programs.helix.enable = true;
gtk.gtk2.force = true;
home.stateVersion = "24.05";
}

View file

@ -28,13 +28,13 @@ in
crxPath = builtins.fetchurl {
url = "https://github.com/NeverDecaf/chromium-web-store/releases/download/v1.5.5.2/Chromium.Web.Store.crx";
name = "ocaahdebbfolfmndjeplogmgcagdmblk.crx";
sha256 = "sha256-0g4AKed9vPf0TPI6OawpjiusvyBJEab5XYNHmg9BpfE=";
sha256 = "sha256-CVgf48dARsdcRNCU5bfgTd3Hnw0STMohEx/Z+cjHpTo=";
};
version = "1.5.5.2";
}]) ++
(lib.lists.optionals (cfg.chromium.disableuBlockOrigin == false) [(createChromiumExtension { # uBlock Origin
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
sha256 = "sha256-7Q4HPf4cIdi63SudWwzLVy9n3uba2H6cmzhSzxdBXjA=";
sha256 = "sha256-w4o5W5ZMUUXmCJ+R8z2e5mGfjGOxf22Yo1DYlE9Bal0=";
version = "1.67.0";
})]) ++
(lib.lists.optionals (cfg.chromium.disableIDontCareAboutCookies == false) [(createChromiumExtension { # I still don't care about cookies
@ -49,7 +49,7 @@ in
})]) ++
(lib.lists.optionals (cfg.chromium.disableLanguageTool == false) [(createChromiumExtension { # LanguageTool
id = "oldceeleldhonbafppcapldpdifcinji";
sha256 = "sha256-UEIQ9nOg7f31nRPQB7Jxbl7PlWx7d9ixAfHXXmKPT5A=";
sha256 = "sha256-w1xg8/ChWMWzC2+lOQKPqtgzp9o+k5ItPMmzt4huLl4=";
version = "10.0.1";
})]) ++
(lib.lists.optionals (cfg.chromium.disableDarkReader == false) [(createChromiumExtension { # dark reader

View file

@ -6,100 +6,148 @@ in {
imports = [
./firefox.nix
./chromium.nix
./waybar.nix
./terminal.nix
];
options.suites.desktop = {
enable = lib.mkEnableOption "Desktop";
# Keybinds
keybinds = {
mod = lib.mkOption {
type = with lib.types; str;
default = "Mod";
description = "Modifyer for all Desktop Keybinds";
};
focusRight = lib.mkOption {
type = with lib.types; str;
default = "Mod+Right";
description = "Modifyer for all Desktop Keybinds";
};
#focusLeft = "${keybinds.mod}+Left";
#focusUp = "${keybinds.mod}+Up";
#focusDown = "${keybinds.mod}+Down";
#moveRight = "${keybinds.mod}+Shift+Right";
#moveLeft = "${keybinds.mod}+Shift+Left";
#moveUp = "${keybinds.mod}+Shift+Up";
#moveDown = "${keybinds.mod}+Shift+Down";
#toggleTiling = "${keybinds.mod}+Space";
#toggleFullscreen = "${keybinds.mod}+F";
#modeResize = "${keybinds.mod}+R"; # Use Arrow-Keys to Resize, Exit using Esc or Enter
#switchWS1 = "${keybinds.mod}+1";
#switchWS2 = "${keybinds.mod}+2";
#switchWS3 = "${keybinds.mod}+3";
#switchWS4 = "${keybinds.mod}+4";
#switchWS5 = "${keybinds.mod}+5";
#nextWS = "${keybinds.mod}+Tab";
#previousWS = "${keybinds.mod}+Shift+Tab";
#moveToWS1 = "${keybinds.mod}+Shift+1";
#moveToWS2 = "${keybinds.mod}+Shift+2";
#moveToWS3 = "${keybinds.mod}+Shift+3";
#moveToWS4 = "${keybinds.mod}+Shift+4";
#moveToWS5 = "${keybinds.mod}+Shift+5";
#launcher = "${keybinds.mod}+D";
#appLauncher = "${keybinds.mod}+Shift+D";
#exit = "${keybinds.mod}+Shift+E";
#reloadConfig = "${keybinds.mod}+Shift+C";
#close = "${keybinds.mod}+Backspace";
#viewScratchpad = "${keybinds.mod}+-";
#moveToScratchpad = "${keybinds.mod}+Shift+-";
};
############
# Programs #
############
firefox.enable = lib.mkOption {
type = with lib.types; bool;
default = cfg.enable;
example = true;
description = "Enable Firefox";
};
firefox.disableuBlockOrigin = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableIDontCareAboutCookies = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableKeepassxcBrowser = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableOfflineQr = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableDarkReader = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableLanguageTool = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
firefox.disableDefaultBookmarks = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.enable = lib.mkOption {
type = with lib.types; bool;
default = cfg.enable;
example = true;
description = "Enable Chromium";
};
chromium.enableWideVine = lib.mkOption {
type = with lib.types; bool;
default = true;
example = false;
};
chromium.disableChromiumWebStore = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.disableuBlockOrigin = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.disableIDontCareAboutCookies = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.disableKeepassxcBrowser = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.disableLanguageTool = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
chromium.disableDarkReader = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
};
sway-experiments.enable = lib.mkOption {
terminal = {
enable = lib.mkOption {
type = with lib.types; bool;
default = false;
example = true;
description = "Enable Sway Experiments";
default = cfg.enable;
description = "Enable Customized Terminal";
};
};
waybar.enable = lib.mkOption {
type = with lib.types; bool;
default = cfg.enable;
description = "Enable Customized Waybar";
};
};

View file

@ -1,124 +0,0 @@
{ config, pkgs, lib, inputs, ... }: let
cfg = config.suites.desktop;
# Keybinds
keybinds = {
mod = "Mod";
focusRight = "${keybinds.mod}+Right";
focusLeft = "${keybinds.mod}+Left";
focusUp = "${keybinds.mod}+Up";
focusDown = "${keybinds.mod}+Down";
moveRight = "${keybinds.mod}+Shift+Right";
moveLeft = "${keybinds.mod}+Shift+Left";
moveUp = "${keybinds.mod}+Shift+Up";
moveDown = "${keybinds.mod}+Shift+Down";
toggleTiling = "${keybinds.mod}+Space";
toggleFullscreen = "${keybinds.mod}+F";
modeResize = "${keybinds.mod}+R"; # Use Arrow-Keys to Resize, Exit using Esc or Enter
switchWS1 = "${keybinds.mod}+1";
switchWS2 = "${keybinds.mod}+2";
switchWS3 = "${keybinds.mod}+3";
switchWS4 = "${keybinds.mod}+4";
switchWS5 = "${keybinds.mod}+5";
nextWS = "${keybinds.mod}+Tab";
previousWS = "${keybinds.mod}+Shift+Tab";
moveToWS1 = "${keybinds.mod}+Shift+1";
moveToWS2 = "${keybinds.mod}+Shift+2";
moveToWS3 = "${keybinds.mod}+Shift+3";
moveToWS4 = "${keybinds.mod}+Shift+4";
moveToWS5 = "${keybinds.mod}+Shift+5";
launcher = "${keybinds.mod}+D";
appLauncher = "${keybinds.mod}+Shift+D";
exit = "${keybinds.mod}+Shift+E";
reloadConfig = "${keybinds.mod}+Shift+C";
close = "${keybinds.mod}+Backspace";
viewScratchpad = "${keybinds.mod}+-";
moveToScratchpad = "${keybinds.mod}+Shift+-";
};
fonts = {
general = "Noto Sans";
symbol = "FontAwesome";
emoji = "Twitter Color Emoji";
size = 10;
sizeSmall = 8;
};
in {
config = lib.mkIf ( cfg.enable && cfg.sway-experiments.enable ) {
# Inspiration and Template: https://git.sr.ht/~hervyqa/swayhome
# Software
# SoundMenu: pwvucontrol
# NetworkMenu: networkmanagerapplet
# Launcher: Wofi
# - Bluetooth: dmenu-bluetooth
# - Emoji: wofi-emoji
# - Power: wofi-power-menu
# - Network: networkmanager_dmenu
# Design
# [WS1-5] 23:25[Stat] [Tray][Vol][Bri][Key][Con][Bat]
# Status: [Privacy] [Keyboard State] Caffeine, Media(mpris)
# Volume: Scroll=Vol, RClick=Mute, LClick=SoundMenu (wireplumber)
# Bright: Scroll=Bri, LClick=Redshift
# Keybrd: Scroll=Bri, Click=Switch (language)
# Bluetooth: LClick=dmenu-bluetooth, RClick=Toggle, MClick=Airplane
# Network: LClick=networkmanager_dmenu, RClick=ToggleWifiEther, MClick=Airplane
# Airplane: LClick=enableNetwork, RClick=enableBluetooth
# Battery: LClick=PowerMode, RClick=Caffeine(idle inhibitor)
# Desktop
wayland.windowManager.sway.enable = true;
# wayland.windowManager.sway.package = null; # Package gets Managed by System
# Lockscreen
programs.swaylock.enable = true;
# programs.swaylock.settings = {
# font = "${fonts.general}";
# font-size = fonts.size;
# disable-caps-lock-text = true;
# ignore-empty-password = true;
# indicator-caps-lock = true;
# indicator-radius = 50;
# indicator-thickness = 10;
# };
# Bar
programs.waybar.enable = true;
# Configuration Template: https://github.com/Alexays/Waybar/blob/master/resources/config.jsonc
# Wiki: https://github.com/Alexays/Waybar/wiki/Module:-Custom:-Examples
programs.waybar.settings.mainBar = {
layer = "bottom";
};
# Launcher
programs.wofi.enable = true;
#programs.wofi.settings = {
# location = "bottom-right";
# allow_markup = true;
# width = 250;
#};
# Theme
#fonts.fontconfig.enable = true;
};
}

View file

@ -0,0 +1,53 @@
{ lib, config, pkgs, ... }:
let
cfg = config.suites.desktop.terminal;
in {
config = lib.mkIf (config.suites.desktop.enable && cfg.enable) {
# Terminal Emulator
programs.wezterm = {
enable = true;
extraConfig = ''
-- Config in Lua
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.default_prog = { "${config.programs.nushell.package}/bin/nu" }
config.hide_tab_bar_if_only_one_tab = true
return config
'';
};
# Shell
programs.nushell.enable = true;
programs.nushell.settings = {
show_banner = false;
};
home.shell.enableNushellIntegration = true;
services.ssh-agent.enableNushellIntegration = true;
services.gpg-agent.enableNushellIntegration = true;
# Shell Prompt
programs.starship = {
enable = true;
enableNushellIntegration = true;
settings = {
add_newline = false;
};
};
# Custom Shell in Nix-Shell
programs.nix-your-shell = {
enable = true;
enableNushellIntegration = true;
};
# Terminal File-Manager
programs.yazi.enable = true;
programs.yazi.enableNushellIntegration = true;
};
}

View file

@ -0,0 +1,168 @@
{ config, pkgs, lib, inputs, ... }: let
cfg = config.suites.desktop.waybar;
in {
config = lib.mkIf ( config.suites.desktop.enable && cfg.enable) {
programs.waybar = {
enable = true;
# Configuration Template: https://github.com/Alexays/Waybar/blob/master/resources/config.jsonc
# Wiki: https://github.com/Alexays/Waybar/wiki/Module:-Custom:-Examples
settings.mainBar = {
layer = "bottom";
#position = "top";
height = 18;
spacing = 5;
output = [
"eDP-1"
"DP-4"
"HDMI-A-1"
"DP-2"
"DP-3"
];
# Waybar Order
modules-left = [
"sway/workspaces"
"sway/window"
];
modules-center = [
"clock"
"privacy"
#"keyboard-state"
# "custom" Caffeine
"mpris"
];
modules-right = [
"tray"
"wireplumber"
"backlight"
"sway/language"
"bluetooth"
"network"
"battery"
];
# Waybar Modules
"sway/workspaces" = {
#on-click = "activate";
#sort-by-numer = true;
};
"sway/window" = {
max-length = 30;
};
"clock" = {
interval = 60;
format = "{:%H:%M}";
tooltip-format = "{:%a, %d.%m.}";
};
"privacy" = {
icon-size = 18;
transition-duration = 250;
modules = [
{
type = "screenshare";
tooltip = false;
}
{
type = "audio-in";
tooltip = false;
}
];
};
"keyboard-state" = {
numlock = true;
capslock = true;
};
"mpris" = {
format = "{player_icon} {dynamic}";
format-paused = "{player_icon} <i>{dynamic}</i>";
dynamic-order = [ "title" "artist" ];
player-icons = {
default = "🎵";
};
status-icons = {
paused = "";
};
};
"tray" = {};
"wireplumber" = {
on-click = "${pkgs.pwvucontrol}/bin/pwvucontrol -t 4";
on-click-right = "${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle";
};
"backlight" = {
format = "{icon}";
format-alt = "{icon} {percent}%";
format-alt-click = "click-right";
format-icons = [ "󰹐" "󱩎" "󱩏" "󱩐" "󱩑" "󱩒" "󱩓" "󱩔" "󱩕" "󱩖" "󰛨" ];
tooltip-format = "{icon} {percent}%";
};
"sway/language" = {
format = "󰌌 {short}";
on-click = "${pkgs.sway}/bin/swaymsg input type:keyboard xkb_switch_layout next";
};
"bluetooth" = {
format = "{icon} {status}";
format-no-controller = "";
format-disabled = "󰂲";
format-on = "󰂲 Disconnected";
format-connected = "󰂱 {num_connections}";
tooltip-format-connected = "{device_enumerate}";
tooltip-format-enumerate-connected = "{device_alias}";
tooltip-format-enumerate-connected-battery = "{device_alias}\t{device_battery_percentage}%";
};
"network" = {
format = "{icon}";
format-alt = "{ipaddr}/{cidr}";
format-alt-click = "click-right";
format-wifi = "{icon} {essid}";
format-icons = [ "󰤯" "󰤟" "󰤢" "󰤥" "󰤨" ];
format-ethernet = " {ifname}";
format-linked = " No IP Address";
format-disconnected = " Disconnected";
format-disabled = " Offline";
tooltip-format = " {bandwithDownBytes}\t {bandwithUpBytes}";
tooltip-format-ethernet = " {ifname}\t \n {bandwithDownBytes}\t {bandwithUpBytes}";
tooltip-format-wifi = "󰤥 {essid}\t{signalStrength}%\n {bandwithDownBytes}\t {bandwithUpBytes}";
on-click = ""; # TODO: Add Network-GUI on Click
on-click-middle = ""; # TODO: Add Toggle Wifi
};
"battery" = {
states.warning = 25;
states.critical = 10;
format-icons = [ "󰂃" "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
format = "{icon}";
format-warning = "{icon} {capacity}%";
format-critical = "<b>{icon} {capacity}%</b>";
format-charging = "{icon}󱐋 {capacity}%";
format-full = "{icon} Charged";
tooltip-format = "󰁹 {capacity}%\n {time}";
on-click-middle = "${pkgs.power-profiles-daemon}/bin/powerprofilesctl set performance";
on-scroll-up = "${pkgs.power-profiles-daemon}/bin/powerprofilesctl set balanced";
on-scroll-down = "${pkgs.power-profiles-daemon}/bin/powerprofilesctl set power-saver";
};
};
style = ''
* {
border: none;
border-radius: 9px;
}
window#waybar {
background: alpha(@base00, 0);
}
#mpris {
background: @base01;
padding:0 4 0 4;
}
'';
};
home.packages = with pkgs; [
playerctl # Media-Player
pwvucontrol # Volume Control (PipeWire)
];
};
}

View file

@ -0,0 +1,54 @@
{
lib,
fontforge,
nerd-font-patcher,
stdenvNoCC,
fetchurl,
}:
stdenvNoCC.mkDerivation rec {
name = "poly-nerdfont";
regular = fetchurl {
# Finally a mirror that has a sha256 that doesn't change.
url = "https://googlefontdirectory.googlecode.com/hg-history/d7441308e589c9fa577f920fc4152fa32477a267/poly/src/Poly-Regular.otf";
sha256 = "1mxp2lvki6b1h7r9xcj1ld0g4z5y3dmsal85xam4yr764zpjzaiw";
};
italic = fetchurl {
# Finally a mirror that has a sha256 that doesn't change.
url = "https://googlefontdirectory.googlecode.com/hg-history/d7441308e589c9fa577f920fc4152fa32477a267/poly/src/Poly-Italic.otf";
sha256 = "1chzcy3kyi7wpr4iq4aj1v24fq1wwph1v5z96dimlqcrnvm66h2l";
};
nativeBuildInputs = [
fontforge
nerd-font-patcher
];
sourceRoot = ".";
dontUnpack = true;
buildPhase = ''
runHook preBuild
nerd-font-patcher -c ${regular}
nerd-font-patcher -c ${italic}
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm444 PolyNerdFont*.otf -t $out/share/fonts/opentype
runHook postInstall
'';
meta = with lib; {
homepage = "http://www.fontsquirrel.com/fonts/poly";
description = "Nerdfont patched Poly Font";
license = licenses.ofl;
platforms = platforms.all;
};
}

View file

@ -0,0 +1,70 @@
{
lib,
fontforge,
nerd-font-patcher,
stdenvNoCC,
fetchzip,
}:
stdenvNoCC.mkDerivation rec {
name = "sauce-sans-pro-${version}";
version = "3.006";
src = fetchzip {
url = "https://github.com/adobe-fonts/source-sans/archive/${version}R.zip";
hash = "sha256-1Savijgq3INuUN89MR0t748HOuGseXVw5Kd4hYwuVas=";
};
nativeBuildInputs = [
fontforge
nerd-font-patcher
];
buildPhase = ''
runHook preBuild
cd OTF
nerd-font-patcher -c SourceSansPro-SemiboldIt.otf
nerd-font-patcher -c SourceSansPro-Semibold.otf
nerd-font-patcher -c SourceSansPro-Regular.otf
nerd-font-patcher -c SourceSansPro-LightIt.otf
nerd-font-patcher -c SourceSansPro-Light.otf
nerd-font-patcher -c SourceSansPro-It.otf
nerd-font-patcher -c SourceSansPro-ExtraLightIt.otf
nerd-font-patcher -c SourceSansPro-ExtraLight.otf
nerd-font-patcher -c SourceSansPro-BoldIt.otf
nerd-font-patcher -c SourceSansPro-Bold.otf
nerd-font-patcher -c SourceSansPro-BlackIt.otf
nerd-font-patcher -c SourceSansPro-Black.otf
cd ../TTF
nerd-font-patcher -c SourceSansPro-SemiboldIt.ttf
nerd-font-patcher -c SourceSansPro-Semibold.ttf
nerd-font-patcher -c SourceSansPro-Regular.ttf
nerd-font-patcher -c SourceSansPro-LightIt.ttf
nerd-font-patcher -c SourceSansPro-Light.ttf
nerd-font-patcher -c SourceSansPro-It.ttf
nerd-font-patcher -c SourceSansPro-ExtraLightIt.ttf
nerd-font-patcher -c SourceSansPro-ExtraLight.ttf
nerd-font-patcher -c SourceSansPro-BoldIt.ttf
nerd-font-patcher -c SourceSansPro-Bold.ttf
nerd-font-patcher -c SourceSansPro-BlackIt.ttf
nerd-font-patcher -c SourceSansPro-Black.ttf
cd ..
runHook postBuild
'';
installPhase = ''
runHook preInstall
install -Dm444 OTF/SauceSansProNerdFont*.otf -t $out/share/fonts/opentype
install -Dm444 TTF/SauceSansProNerdFont*.ttf -t $out/share/fonts/truetype
runHook postInstall
'';
meta = with lib; {
homepage = "https://adobe-fonts.github.io/source-sans/";
description = "Nerdfont patched Sans serif font family for user interface environments";
license = licenses.ofl;
platforms = platforms.all;
};
}

View file

@ -3,6 +3,7 @@
{
imports = [
./hardware.nix
./stylix.nix
];
# Configure Nix
@ -15,6 +16,7 @@
builders-use-substitutes = true
'';
nixpkgs.config.allowUnfree = true;
nixpkgs.config.joypixels.acceptLicense = true;
nixpkgs.config.permittedInsecurePackages = [
"olm-3.2.16"
"electron-36.9.5"
@ -78,6 +80,7 @@
security.pam.services = {
login.u2fAuth = true;
sudo.u2fAuth = true;
swaylock.u2fAuth = true;
};
# Printing
@ -111,6 +114,25 @@
programs.vim.enable = true;
programs.vim.defaultEditor = true;
# Configure Sway Desktop
programs.sway.enable = true;
# programs.sway.extraPackages = with pkgs; [
# brightnessctl
# foot
# grim
# pulseaudio
# swayidle
# swaylock
# wmenu
# ];
# programs.uwsm.enable = true;
# programs.uwsm.waylandCompositors.sway = {
# prettyName = "Sway";
# comment = "Sway compositor managed by UWSM";
# binPath = "/run/current-system/sw/bin/sway";
# };
programs.waybar.enable = true;
programs.wshowkeys.enable = true;
# Enable SSH-Agent
programs.ssh.startAgent = true;
@ -122,7 +144,7 @@
services.tailscale.enable = true;
services.numen = {
enable = true;
enable = false;
autoStart = false;
phrasesPkg = pkgs.kb-one.numen-phrases.override {
customWakeWords-en = [ "cyber" "writer" "activate" ];

View file

@ -13,6 +13,7 @@ in {
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" "cryptd" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
#boot.kernelParams = [ "clocksource=tsc" ];
boot.extraModulePackages = [ ];
boot.supportedFilesystems = [ "zfs" ];
boot.zfs.forceImportRoot = false;

View file

@ -0,0 +1,60 @@
{ config, pkgs, lib, inputs, ... }:
{
# Configure Home-Manager
home-manager.backupFileExtension = "backup";
home-manager.sharedModules = [
{
stylix.enable = true;
}
];
stylix.enable = true;
stylix.image = pkgs.fetchurl {
# MaKeleLele: Space Base
#url = "https://w.wallhaven.cc/full/1j/wallhaven-1j6239.png";
#hash = "sha256-NM5nyeOQAL0yvXxwLWsshDi1WD7DvIytNofu6GX3dNw=";
# p4r4d0x: Pink Vapourwave
#url = "https://w.wallhaven.cc/full/73/wallhaven-736k8e.jpg";
#hash = "sha256-xnn8HnrMMQByh6EnIgvHmZzWVQL75tClz/MKtcqEyAM=";
# WallHAven4o: Colorfull Shapes
#url = "https://w.wallhaven.cc/full/ox/wallhaven-ox7e7l.jpg";
#hash = "sha256-vOXANXLSP8FVluwjFBPbR6XtEIIrZ4xl9O2c+wd/KL0=";
# deleted: Fox Singularity
url = "https://w.wallhaven.cc/full/q2/wallhaven-q2llr5.png";
hash = "sha256-Sg2Q1tNcwh8Cj+V+xcijvcT6X5eDbC+bfzjqwVtsVMU=";
# delted: Arc Raiders Selfie
#url = "https://w.wallhaven.cc/full/k8/wallhaven-k89ezm.jpg";
#hash = "sha256-Y7VI+q9oueiglfdqqfPau4XUT6rjvjk7L4716xMjO4Q=";
# delted: Flowers in Window
#url = "https://w.wallhaven.cc/full/83/wallhaven-83ze72.jpg";
#hash = "sha256-U9CQK6hzk0UwOQlawFp/l0g3LytfkKQcWmCvZ7UMP98=";
# hdkr947: Fox Silhouette
#url = "https://w.wallhaven.cc/full/1k/wallhaven-1k99o9.png";
#hash = "sha256-XRRk0YjFbBaYWw8D4VQIxVAKSXFlX7Z0oheTzIMw6Q8=";
};
stylix.polarity = "dark";
stylix.fonts = {
serif = {
package = pkgs.kb-one.poly-nerdfont;
name = "Poly Nerd Font";
};
sansSerif = {
package = pkgs.kb-one.sauce-sans-pro;
name = "SauceSansPro Nerd Font";
};
monospace = {
package = pkgs.nerd-fonts.dejavu-sans-mono;
name = "DejaVuSansM Nerd Font";
};
emoji = {
package = pkgs.joypixels;
name = "JoyPixels";
};
};
}