From cb8e1c43c7d114418108aeb6ee89f172804d5260 Mon Sep 17 00:00:00 2001 From: reidlab Date: Wed, 29 Jan 2025 13:24:54 -0800 Subject: [PATCH 1/5] use waybar from pkgs --- flake.nix | 5 ++++- modules/desktop/waybar.nix | 3 ++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index 543cb92..a0f35da 100644 --- a/flake.nix +++ b/flake.nix @@ -10,11 +10,14 @@ hardware.url = "github:nixos/nixos-hardware"; nix-colors.url = "github:misterio77/nix-colors"; - waybar.url = "github:Alexays/Waybar"; + # waybar.url = "github:Alexays/Waybar"; + # waybar.inputs.nixpkgs.follows = "nixpkgs"; # hypr suite hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; + hyprland.inputs.nixpkgs.follows = "nixpkgs"; hyprlock.url = "github:hyprwm/hyprlock"; + hyprlock.inputs.nixpkgs.follows = "nixpkgs"; hypridle.url = "github:hyprwm/hypridle"; waybar-catppuccin.url = "github:catppuccin/waybar"; diff --git a/modules/desktop/waybar.nix b/modules/desktop/waybar.nix index 88f0c3d..b9a6e98 100644 --- a/modules/desktop/waybar.nix +++ b/modules/desktop/waybar.nix @@ -8,7 +8,8 @@ in { enable = mkEnableOption "Enable Waybar, a highly customizable wayland bar for wlroots compositors."; package = mkOption { type = types.package; - default = inputs.waybar.packages.${system}.default; + # default = inputs.waybar.packages.${system}.default; + default = pkgs.waybar; example = "pkgs.waybar"; }; }; From 86a75464639fc5a3d0e290de0432ed11c83c21aa Mon Sep 17 00:00:00 2001 From: reidlab Date: Sat, 1 Feb 2025 18:18:39 -0800 Subject: [PATCH 2/5] update hyprland --- flake.lock | 220 +++++++++++++---------------------- modules/desktop/hyprland.nix | 122 ++++++++++--------- 2 files changed, 141 insertions(+), 201 deletions(-) diff --git a/flake.lock b/flake.lock index 927b5ab..973d96c 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ ] }, "locked": { - "lastModified": 1731959031, - "narHash": "sha256-TGcvIjftziC1CjuiHCzrYDwmOoSFYIhdiKmLetzB5L0=", + "lastModified": 1738183445, + "narHash": "sha256-C1He3N1SA8D2u+TSlldbA9wiYwDvXI4GxX3zKaeD7qU=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "4468981c1c50999f315baa1508f0e53c4ee70c52", + "rev": "48a000cf35dd10bfeb231152735aebbe875f4b74", "type": "github" }, "original": { @@ -83,22 +83,6 @@ "type": "github" } }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1732722421, - "narHash": "sha256-HRJ/18p+WoXpWJkcdsk9St5ZiukCqSDgbOGFa8Okehg=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "9ed2ac151eada2306ca8c418ebd97807bb08f6ac", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, "gitignore": { "inputs": { "nixpkgs": [ @@ -172,11 +156,11 @@ ] }, "locked": { - "lastModified": 1728669738, - "narHash": "sha256-EDNAU9AYcx8OupUzbTbWE1d3HYdeG0wO6Msg3iL1muk=", + "lastModified": 1738178255, + "narHash": "sha256-+D6Nu2ewXbMTFzx/Q4jDOo+LAOUPr0cxQJg5k33daIE=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "0264e698149fcb857a66a53018157b41f8d97bb0", + "rev": "dcadd3398abe146d60c67e0d9ee6e27b301cae82", "type": "github" }, "original": { @@ -201,11 +185,11 @@ ] }, "locked": { - "lastModified": 1733248371, - "narHash": "sha256-FFLJzFTyNhS7tBEEECx0B8Ye/bpmxhFVEKlECgMLc6c=", + "lastModified": 1738018829, + "narHash": "sha256-5Ol5iahMlELx3lWuChyZsqqLk6sP6aqaJCJFw92OZGo=", "owner": "hyprwm", "repo": "hyprgraphics", - "rev": "cc95e5babc6065bc3ab4cd195429a9900836ef13", + "rev": "12cd7034e441a5ebfdef1a090c0788413b4a635b", "type": "github" }, "original": { @@ -274,17 +258,19 @@ "hyprlang": "hyprlang_2", "hyprutils": "hyprutils_2", "hyprwayland-scanner": "hyprwayland-scanner", - "nixpkgs": "nixpkgs_3", + "nixpkgs": [ + "nixpkgs" + ], "pre-commit-hooks": "pre-commit-hooks", "systems": "systems_2", "xdph": "xdph" }, "locked": { - "lastModified": 1734005819, - "narHash": "sha256-CuMZHLveDk6Ouv0l3h86tdCjj3r+h1nj1/s2gEistHI=", + "lastModified": 1738183538, + "narHash": "sha256-/7wLBH3JKijNWiD76xH7nnFeCq+hYmlqtW++NNDNp6w=", "ref": "refs/heads/main", - "rev": "aefaeedf5e3f773c923373795267c1633141566c", - "revCount": 5535, + "rev": "6fc9c8e4797a272c688fc74b872db5d828c21f02", + "revCount": 5758, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -323,11 +309,11 @@ ] }, "locked": { - "lastModified": 1728345020, - "narHash": "sha256-xGbkc7U/Roe0/Cv3iKlzijIaFBNguasI31ynL2IlEoM=", + "lastModified": 1737556638, + "narHash": "sha256-laKgI3mr2qz6tas/q3tuGPxMdsGhBi/w+HO+hO2f1AY=", "owner": "hyprwm", "repo": "hyprland-protocols", - "rev": "a7c183800e74f337753de186522b9017a07a8cee", + "rev": "4c75dd5c015c8a0e5a34c6d02a018a650f57feb5", "type": "github" }, "original": { @@ -336,10 +322,49 @@ "type": "github" } }, + "hyprland-qt-support": { + "inputs": { + "hyprlang": [ + "hyprland", + "hyprland-qtutils", + "hyprlang" + ], + "nixpkgs": [ + "hyprland", + "hyprland-qtutils", + "nixpkgs" + ], + "systems": [ + "hyprland", + "hyprland-qtutils", + "systems" + ] + }, + "locked": { + "lastModified": 1737634706, + "narHash": "sha256-nGCibkfsXz7ARx5R+SnisRtMq21IQIhazp6viBU8I/A=", + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "rev": "8810df502cdee755993cb803eba7b23f189db795", + "type": "github" + }, + "original": { + "owner": "hyprwm", + "repo": "hyprland-qt-support", + "type": "github" + } + }, "hyprland-qtutils": { "inputs": { + "hyprland-qt-support": "hyprland-qt-support", + "hyprlang": [ + "hyprland", + "hyprlang" + ], "hyprutils": [ "hyprland", + "hyprland-qtutils", + "hyprlang", "hyprutils" ], "nixpkgs": [ @@ -352,11 +377,11 @@ ] }, "locked": { - "lastModified": 1733472316, - "narHash": "sha256-PvXiFLIExJEJj+goLbIuXLTN5CSDSAUsAfiYSdbbWg0=", + "lastModified": 1737981711, + "narHash": "sha256-lh6cL5D8nPplB3WovCQjLUZ7k7MViiBrMlpkfm4R7/c=", "owner": "hyprwm", "repo": "hyprland-qtutils", - "rev": "969427419276c7ee170301ef1ebe0f68eb6eb2e2", + "rev": "96bf0677fa9cd13508294e3d4559dfbbc8beff73", "type": "github" }, "original": { @@ -410,11 +435,11 @@ ] }, "locked": { - "lastModified": 1728168612, - "narHash": "sha256-AnB1KfiXINmuiW7BALYrKqcjCnsLZPifhb/7BsfPbns=", + "lastModified": 1737634606, + "narHash": "sha256-W7W87Cv6wqZ9PHegI6rH1+ve3zJPiyevMFf0/HwdbCQ=", "owner": "hyprwm", "repo": "hyprlang", - "rev": "f054f2e44d6a0b74607a6bc0f52dba337a3db38e", + "rev": "f41271d35cc0f370d300413d756c2677f386af9d", "type": "github" }, "original": { @@ -457,7 +482,9 @@ "hyprgraphics": "hyprgraphics_2", "hyprlang": "hyprlang_3", "hyprutils": "hyprutils_3", - "nixpkgs": "nixpkgs_4", + "nixpkgs": [ + "nixpkgs" + ], "systems": "systems_3" }, "locked": { @@ -511,11 +538,11 @@ ] }, "locked": { - "lastModified": 1732288281, - "narHash": "sha256-XTU9B53IjGeJiJ7LstOhuxcRjCOFkQFl01H78sT9Lg4=", + "lastModified": 1737978343, + "narHash": "sha256-TfFS0HCEJh63Kahrkp1h9hVDMdLU8a37Zz+IFucxyfA=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "b26f33cc1c8a7fd5076e19e2cce3f062dca6351c", + "rev": "6a8bc9d2a4451df12f5179dc0b1d2d46518a90ab", "type": "github" }, "original": { @@ -561,11 +588,11 @@ ] }, "locked": { - "lastModified": 1726874836, - "narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=", + "lastModified": 1735493474, + "narHash": "sha256-fktzv4NaqKm94VAkAoVqO/nqQlw+X0/tJJNAeCSfzK4=", "owner": "hyprwm", "repo": "hyprwayland-scanner", - "rev": "500c81a9e1a76760371049a8d99e008ea77aa59e", + "rev": "de913476b59ee88685fdc018e77b8f6637a2ae0b", "type": "github" }, "original": { @@ -624,22 +651,6 @@ "type": "github" } }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1730741070, - "narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d063c1dd113c91ab27959ba540c0d9753409edf3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_2": { "locked": { "lastModified": 1721138476, @@ -657,38 +668,6 @@ } }, "nixpkgs_3": { - "locked": { - "lastModified": 1733392399, - "narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1733392399, - "narHash": "sha256-kEsTJTUQfQFIJOcLYFt/RvNxIK653ZkTBIs4DG+cBns=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "d0797a04b81caeae77bcff10a9dde78bc17f5661", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_5": { "locked": { "lastModified": 1733759999, "narHash": "sha256-463SNPWmz46iLzJKRzO3Q2b0Aurff3U1n0nYItxq7jU=", @@ -704,22 +683,6 @@ "type": "github" } }, - "nixpkgs_6": { - "locked": { - "lastModified": 1732837521, - "narHash": "sha256-jNRNr49UiuIwaarqijgdTR2qLPifxsVhlJrKzQ8XUIE=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "970e93b9f82e2a0f3675757eb0bfc73297cc6370", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat", @@ -727,15 +690,14 @@ "nixpkgs": [ "hyprland", "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable" + ] }, "locked": { - "lastModified": 1733318908, - "narHash": "sha256-SVQVsbafSM1dJ4fpgyBqLZ+Lft+jcQuMtEL3lQWx2Sk=", + "lastModified": 1737465171, + "narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "6f4e2a2112050951a314d2733a994fbab94864c6", + "rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", "type": "github" }, "original": { @@ -754,8 +716,7 @@ "hyprland-catppuccin": "hyprland-catppuccin", "hyprlock": "hyprlock", "nix-colors": "nix-colors", - "nixpkgs": "nixpkgs_5", - "waybar": "waybar", + "nixpkgs": "nixpkgs_3", "waybar-catppuccin": "waybar-catppuccin" } }, @@ -804,25 +765,6 @@ "type": "github" } }, - "waybar": { - "inputs": { - "flake-compat": "flake-compat_2", - "nixpkgs": "nixpkgs_6" - }, - "locked": { - "lastModified": 1733561910, - "narHash": "sha256-TkyWMLnLd5QhAlfAGtuU3n8Gtl2Gp4+8Ye/rE4hs46A=", - "owner": "Alexays", - "repo": "Waybar", - "rev": "e959f1d2300c5f7fcc818630c9eae59d834024ce", - "type": "github" - }, - "original": { - "owner": "Alexays", - "repo": "Waybar", - "type": "github" - } - }, "waybar-catppuccin": { "flake": false, "locked": { @@ -867,11 +809,11 @@ ] }, "locked": { - "lastModified": 1733157064, - "narHash": "sha256-NetqJHAN4bbZDQADvpep+wXk2AbMZ2bN6tINz8Kpz6M=", + "lastModified": 1737634991, + "narHash": "sha256-dBAnb7Kbnier30cA7AgxVSxxARmxKZ1vHZT33THSIr8=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "fd85ef39369f95eed67fdf3f025e86916edeea2f", + "rev": "e09dfe2726c8008f983e45a0aa1a3b7416aaeb8a", "type": "github" }, "original": { diff --git a/modules/desktop/hyprland.nix b/modules/desktop/hyprland.nix index fc9e252..3ea71aa 100644 --- a/modules/desktop/hyprland.nix +++ b/modules/desktop/hyprland.nix @@ -151,14 +151,13 @@ in { ${pkgs.libnotify}/bin/notify-send "OCR Captured" \ --app-name="OCR" \ --urgency="normal" \ - --icon="text-x-generic-symbolic" \ "Text copied to clipboard" ''; in [ "$mod, Q, killactive, " "$mod, F, togglefloating, " - "$mod, P, pseudo, " # dwindle - "$mod, J, togglesplit, " # dwindle + "$mod, P, pseudo, " + "$mod, J, togglesplit, " "$mod SHIFT, F, fullscreen, " # move focus with mod + arrow keys @@ -262,67 +261,60 @@ in { }; windowrulev2 = [ - # TODO: dedupe - # commons - "float, class:^org.gnome.FileRoller$" - "size 1100 650, class:^org.gnome.FileRoller$" - "center, class:^org.gnome.FileRoller$" - "float, class:^org.gnome.Loupe$" - "size 1100 650, class:^org.gnome.Loupe$" - "center class:^org.gnome.Loupe$" - "float, class:^com.gabm.satty$" - "size 1100 650, class:^com.gabm.satty$" - "center 1100 650, class:^com.gabm.satty$" - "float, initialTitle:^Open Folder$" - "size 1100 650, initialTitle:^Open Folder$" - "center, initialTitle:^Open Folder$" - "float, initialTitle:^Open File$" - "size 1100 650, initialTitle:^Open File$" - "center, initialTitle:^Open File$" - "float, initialTitle:^Open Files$" - "size 1100 650, initialTitle:^Open Files$" - "center, initialTitle:^Open Files$" - "float, initialTitle:^Save As$" - "size 1100 650, initialTitle:^Save As$" - "center, initialTitle:^Save As$" - "float, initialTitle:^File Upload$" - "size 1100 650, initialTitle:^File Upload$" - "center, initialTitle:^File Upload$" - "float, initialTitle:^MainPicker$" - "size 1100 650, initialTitle:^MainPicker$" - "center, initialTitle:^MainPicker$" - "float, class:^clipse$" - "size 1100 650, class:^clipse$" - "center, class:^clipse$" - # privacy popups - "stayfocused, class:^clipse$" - "dimaround, class:^clipse$" - "stayfocused, class:^gcr-prompter$" - "dimaround, class:^gcr-prompter$" - "stayfocused, class:^pinentry-" - "dimaround, class:^pinentry-" - "stayfocused, class:^polkit-" - "dimaround, class:^polkit-" + "tag +floater, class:^org.gnome.FileRoller$" + "tag +dimmedFloater, class:^org.gnome.Loupe$" + "tag +dimmedFloater, class:^com.gabm.satty$" + # these don't work fully?? + "tag +dimmedFloater, initialTitle:^Open.*$" + "tag +dimmedFloater, initialTitle:^Save As$" + "tag +dimmedFloater, initialTitle:^Select.*$" + "tag +dimmedFloater, initialTitle:^File Upload$" - "float, class:\.exe$" - "rounding 0, class:\.exe$" + # add dimmedFloater too, it's a large window! + "tag +dimmedFloater, class:^clipse$" + "tag +privatePopup, class:^clipse$" + "tag +privatePopup, class:^gcr-prompter$" + "tag +privatePopup, class:^pinentry-.*$" + "tag +privatePopup, class:^polkit-.*$" + + "tag +pip, initialTitle:^Picture-in-Picture$" + "tag +pip, initialTitle:^Picture in picture$" + "tag +pip, initialTitle:^Discord Popout$" + + "float, tag:floater" + "center, tag:floater" + "size 1100 650, tag:floater" + # why is this not monitor size and instead based on the window size.. + # "size exact 60% 80%, tag:floater" + + "float, tag:dimmedFloater" + "center, tag:dimmedFloater" + "size 1100 650, tag:dimmedFloater" + # "size exact 60% 80%, tag:dimmedFloater" + "dimaround, tag:dimmedFloater" + + "float, tag:privatePopup" + "center, tag:privatePopup" + "stayfocused, tag:privatePopup" + "dimaround, tag:privatePopup" + + "float, tag:pip" + "pin, tag:pip" + "keepaspectratio, tag:pip" + "noborder, tag:pip" + "noinitialfocus, tag:pip" + "nodim, tag:pip" + + # this makes wine stuff better + "float, class:^.*\.exe$" + "rounding 0, class:^.*\.exe$" # steam notifs - "rounding 0, title:^notificationtoasts_" - "pin, title:^notificationtoasts_" - "noborder, title:^notificationtoasts_" - "nofocus, title:^notificationtoasts_" - "noshadow, title:^notificationtoasts_" - - # firefox pip - "float, title:^Picture-in-Picture$" - "pin, title:^Picture-in-Picture$" - "noborder, title:^Picture-in-Picture$" - "keepaspectratio, title:^Picture-in-Picture$" - # discord pip - "pin, initialTitle:^Discord Popout$" - "float, initialTitle:^Discord Popout$" - "noborder, initialTitle:^Discord Popout$" + "rounding 0, title:^notificationtoasts_.*$" + "pin, title:^notificationtoasts_.*$" + "noborder, title:^notificationtoasts_.*$" + "nofocus, title:^notificationtoasts_.*$" + "noshadow, title:^notificationtoasts_.*$" # workspace moving "workspace 1 silent, class:^firefox$" @@ -352,9 +344,10 @@ in { enabled = true; size = 6; passes = 3; - # popups and special workspace have blur disabled by default + # these have blur disabled popups = true; special = true; + input_methods = true; }; shadow = { @@ -407,6 +400,11 @@ in { vfr = true; vrr = 2; }; + + ecosystem = { + no_update_news = true; + no_donation_nag = true; + }; }; }; }; From 5243db51f4c133bbeb15af87313dbcb8abf0d9d6 Mon Sep 17 00:00:00 2001 From: reidlab Date: Sat, 1 Feb 2025 18:44:15 -0800 Subject: [PATCH 3/5] use pinentry-qt --- modules/software/tools/gpg.nix | 2 +- modules/software/tools/rbw.nix | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/software/tools/gpg.nix b/modules/software/tools/gpg.nix index 8b852aa..48530cd 100644 --- a/modules/software/tools/gpg.nix +++ b/modules/software/tools/gpg.nix @@ -15,7 +15,7 @@ in { enableExtraSocket = true; enableSshSupport = true; - pinentryPackage = pkgs.pinentry-gnome3; + pinentryPackage = pkgs.pinentry-qt; }; }; } diff --git a/modules/software/tools/rbw.nix b/modules/software/tools/rbw.nix index 63b09f8..84b96c1 100644 --- a/modules/software/tools/rbw.nix +++ b/modules/software/tools/rbw.nix @@ -13,7 +13,7 @@ in { enable = true; settings.email = "reidlab325@gmail.com"; settings.lock_timeout = 60 * 60 * 24 * 7; # 1 week - settings.pinentry = pkgs.pinentry-gnome3; + settings.pinentry = pkgs.pinentry-qt; }; }; } From b90385ae0d5309eaf51fbe131fc3a301476f6e7f Mon Sep 17 00:00:00 2001 From: reidlab Date: Mon, 10 Feb 2025 23:01:39 -0800 Subject: [PATCH 4/5] imhex window rule --- modules/desktop/hyprland.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/desktop/hyprland.nix b/modules/desktop/hyprland.nix index 3ea71aa..e441684 100644 --- a/modules/desktop/hyprland.nix +++ b/modules/desktop/hyprland.nix @@ -319,6 +319,7 @@ in { # workspace moving "workspace 1 silent, class:^firefox$" "workspace 2 silent, class:^code$" + "workspace 2 silent, class:^imhex$" "workspace 4 silent, class:^vesktop$" ]; From 49c5ae6d870d5acae046f566d6688594ea1a638f Mon Sep 17 00:00:00 2001 From: reidlab Date: Tue, 11 Feb 2025 22:33:02 -0800 Subject: [PATCH 5/5] use waybar for network --- modules/desktop/hyprland.nix | 3 +- modules/desktop/themes/catppuccin/waybar.css | 5 +- modules/desktop/waybar.nix | 48 ++++++++++++++++---- 3 files changed, 45 insertions(+), 11 deletions(-) diff --git a/modules/desktop/hyprland.nix b/modules/desktop/hyprland.nix index e441684..7f168d5 100644 --- a/modules/desktop/hyprland.nix +++ b/modules/desktop/hyprland.nix @@ -240,8 +240,7 @@ in { monitor=",highrr,auto,auto"; exec-once = [ - "${lib.getExe pkgs.networkmanagerapplet}" # network applet - "${lib.getExe pkgs.wl-clip-persist} --clipboard regular" # to fix wl clipboards disappearing + "${lib.getExe pkgs.wl-clip-persist} --clipboard regular" # to fix wl clipboards disappearing ]; env = [ diff --git a/modules/desktop/themes/catppuccin/waybar.css b/modules/desktop/themes/catppuccin/waybar.css index 8fc974d..97136b1 100644 --- a/modules/desktop/themes/catppuccin/waybar.css +++ b/modules/desktop/themes/catppuccin/waybar.css @@ -104,9 +104,12 @@ window#waybar.floating #window { color: @teal; } -#cpu { +#cpu, #network { color: @sapphire; } +#network.disabled, #network.disconnected { + color: @overlay1; +} @keyframes blink { to { diff --git a/modules/desktop/waybar.nix b/modules/desktop/waybar.nix index b9a6e98..95b41d8 100644 --- a/modules/desktop/waybar.nix +++ b/modules/desktop/waybar.nix @@ -29,7 +29,7 @@ in { layer = "top"; position = "top"; spacing = 4; - height = 30; + height = 32; margin-top = 6; margin-left = 6; margin-right = 6; @@ -62,6 +62,7 @@ in { "backlight" "cpu" "memory" + "network" "power-profiles-daemon" "battery" "custom/weather" @@ -79,7 +80,7 @@ in { powerMenuScript = pkgs.writeShellScript "power-menu" '' set -euo pipefail - cmd=$(echo '⏻ shutdown|↻ reboot| lock|⎋ exit desktop environment' | ${lib.getExe pkgs.rofi-wayland} -dmenu -sep '|' -i -p 'what to do ?' -theme-str 'window { height: 132px; }') + cmd=$(echo '⏻ shutdown|↻ reboot|󰒲 sleep| hibernate| lock|⎋ exit desktop environment' | ${lib.getExe config.modules.desktop.rofi.package} -dmenu -sep '|' -i -p 'what to do ?') case "$cmd" in "⏻ shutdown") poweroff @@ -87,11 +88,17 @@ in { "↻ reboot") reboot ;; + "󰒲 sleep") + systemctl suspend + ;; + " hibernate") + systemctl hibernate + ;; " lock") ${pkgs.systemd}/bin/loginctl lock-session ;; "⎋ exit desktop environment") - ${config.modules.desktop.hyprland.package}/bin/hyprctl dispatch exit + ${pkgs.systemd}/bin/loginctl terminate-session $XDG_SESSION_ID ;; esac ''; @@ -176,9 +183,13 @@ in { format = " {usage}%"; on-click = "${lib.getExe pkgs.gnome-system-monitor}"; }; + # bluetooth = { + # + # }; memory = { interval = 4; format = " {percentage}%"; + tooltip = true; tooltip-format = "{used:0.1f}GiB/{avail:0.1f}GiB used\n{swapUsed:0.1f}GiB/{swapAvail:0.1f}GiB swap"; on-click = "${lib.getExe pkgs.gnome-system-monitor}"; states = { @@ -186,10 +197,27 @@ in { critical = 90; }; }; + network = { + format = "{icon}"; + tooltip = true; + tooltip-format-wifi = "{essid} ({signalStrength}%)"; + tooltip-format-ethernet = "{ifname}"; + tooltip-format-linked = "{ifname} (no ip)"; + tooltip-format-disabled = "Disabled"; + tooltip-format-disconnected = "Disconnected"; + format-icons = { + wifi = ""; + ethernet = ""; # TODO: change symbol to ethernet, this represents lan + linked = ""; # TODO: this symbol is deprecated + disabled = "睊"; + disconnected = "睊"; + }; + on-click = "${pkgs.networkmanagerapplet}/bin/nm-connection-editor"; + }; power-profiles-daemon = { format = "{icon}"; - tooltip-format = "Power profile: {profile}\nDriver: {driver}"; tooltip = true; + tooltip-format = "Power profile: {profile}\nDriver: {driver}"; format-icons = { default = ""; performance = " perf"; @@ -207,8 +235,9 @@ in { format = "{icon} {capacity}%"; format-icons = ["" "" "" "" ""]; format-critical = " {capacity}%"; - tooltip-format = "{timeTo} ({power}W)"; format-charging = " {capacity}%"; + tooltip = true; + tooltip-format = "{timeTo} ({power}W)"; }; privacy = { icon-spacing = 0; @@ -220,11 +249,13 @@ in { ]; }; mpris = { - format = "♫ {dynamic}"; - format-paused = "{status_icon} {dynamic}"; + format = "{status_icon} {dynamic}"; + dynamic-len = 32; + title-len = 32; dynamic-order = [ "artist" "title" ]; + dynamic-importance-order = [ "title" "artist" ]; + tooltip = true; tooltip-format = "{player} | {status_icon} {artist} - {title} from {album} ({position}/{length})"; - title-length = 48; interval = 1; status-icons = { playing = "⏸"; @@ -234,6 +265,7 @@ in { clock = { format = "{:%H:%M}"; format-alt = "{:%a %b %d %R}"; + tooltip = true; tooltip-format = "{calendar}"; calendar = { mode = "year";