From e6f40fc8fc072740732088d2248725068262b712 Mon Sep 17 00:00:00 2001 From: kB01 Date: Fri, 5 Dec 2025 22:00:36 +0100 Subject: [PATCH] Added Waybar and Terminal Theming, Disabled Numenvoice and SafeEyes --- flake.lock | 334 +++++++++++++++++++++-- flake.nix | 7 + homes/x86_64-linux/kb@Ohybke/default.nix | 9 +- modules/home/suites/desktop/chromium.nix | 6 +- modules/home/suites/desktop/default.nix | 88 ++++-- modules/home/suites/desktop/sway.nix | 124 --------- modules/home/suites/desktop/terminal.nix | 53 ++++ modules/home/suites/desktop/waybar.nix | 168 ++++++++++++ packages/poly-nerdfont/default.nix | 54 ++++ packages/sauce-sans-pro/default.nix | 70 +++++ systems/x86_64-linux/Ohybke/default.nix | 24 +- systems/x86_64-linux/Ohybke/hardware.nix | 1 + systems/x86_64-linux/Ohybke/stylix.nix | 60 ++++ 13 files changed, 828 insertions(+), 170 deletions(-) delete mode 100644 modules/home/suites/desktop/sway.nix create mode 100644 modules/home/suites/desktop/terminal.nix create mode 100644 modules/home/suites/desktop/waybar.nix create mode 100644 packages/poly-nerdfont/default.nix create mode 100644 packages/sauce-sans-pro/default.nix create mode 100644 systems/x86_64-linux/Ohybke/stylix.nix diff --git a/flake.lock b/flake.lock index 880e983..f4906fd 100644 --- a/flake.lock +++ b/flake.lock @@ -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", diff --git a/flake.nix b/flake.nix index c5227ef..ebc19dd 100644 --- a/flake.nix +++ b/flake.nix @@ -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; [ ]; diff --git a/homes/x86_64-linux/kb@Ohybke/default.nix b/homes/x86_64-linux/kb@Ohybke/default.nix index 1ebcb30..a3298d3 100644 --- a/homes/x86_64-linux/kb@Ohybke/default.nix +++ b/homes/x86_64-linux/kb@Ohybke/default.nix @@ -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"; } diff --git a/modules/home/suites/desktop/chromium.nix b/modules/home/suites/desktop/chromium.nix index 162cd29..83e341a 100644 --- a/modules/home/suites/desktop/chromium.nix +++ b/modules/home/suites/desktop/chromium.nix @@ -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 diff --git a/modules/home/suites/desktop/default.nix b/modules/home/suites/desktop/default.nix index 3e30372..b134b51 100644 --- a/modules/home/suites/desktop/default.nix +++ b/modules/home/suites/desktop/default.nix @@ -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 = cfg.enable; + description = "Enable Customized Terminal"; + }; + }; + + waybar.enable = lib.mkOption { type = with lib.types; bool; - default = false; - example = true; - description = "Enable Sway Experiments"; + default = cfg.enable; + description = "Enable Customized Waybar"; }; }; diff --git a/modules/home/suites/desktop/sway.nix b/modules/home/suites/desktop/sway.nix deleted file mode 100644 index 68e87f9..0000000 --- a/modules/home/suites/desktop/sway.nix +++ /dev/null @@ -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; - }; -} diff --git a/modules/home/suites/desktop/terminal.nix b/modules/home/suites/desktop/terminal.nix new file mode 100644 index 0000000..d4f6424 --- /dev/null +++ b/modules/home/suites/desktop/terminal.nix @@ -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; + + + }; +} diff --git a/modules/home/suites/desktop/waybar.nix b/modules/home/suites/desktop/waybar.nix new file mode 100644 index 0000000..34a2b38 --- /dev/null +++ b/modules/home/suites/desktop/waybar.nix @@ -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} {dynamic}"; + 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 = "{icon} {capacity}%"; + 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) + + ]; + }; +} + diff --git a/packages/poly-nerdfont/default.nix b/packages/poly-nerdfont/default.nix new file mode 100644 index 0000000..0445037 --- /dev/null +++ b/packages/poly-nerdfont/default.nix @@ -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; + }; +} diff --git a/packages/sauce-sans-pro/default.nix b/packages/sauce-sans-pro/default.nix new file mode 100644 index 0000000..e56b358 --- /dev/null +++ b/packages/sauce-sans-pro/default.nix @@ -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; + }; +} diff --git a/systems/x86_64-linux/Ohybke/default.nix b/systems/x86_64-linux/Ohybke/default.nix index 1ac2d4a..a98d7f7 100644 --- a/systems/x86_64-linux/Ohybke/default.nix +++ b/systems/x86_64-linux/Ohybke/default.nix @@ -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" ]; diff --git a/systems/x86_64-linux/Ohybke/hardware.nix b/systems/x86_64-linux/Ohybke/hardware.nix index ed92fbb..0c39dda 100644 --- a/systems/x86_64-linux/Ohybke/hardware.nix +++ b/systems/x86_64-linux/Ohybke/hardware.nix @@ -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; diff --git a/systems/x86_64-linux/Ohybke/stylix.nix b/systems/x86_64-linux/Ohybke/stylix.nix new file mode 100644 index 0000000..971a927 --- /dev/null +++ b/systems/x86_64-linux/Ohybke/stylix.nix @@ -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"; + }; + }; + +} +