feat: add ASUS platform profile widget and fix flake deps
- Add ASUS widget to laptop bar showing profile icon, CPU freq, and temp - Add dbus-menu and dbus-hslogger flake inputs to fix gtk-sni-tray build - Simplify CSS color rules for end-widget pills - Update taffybar submodule with ASUS Information/Widget modules Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -46,55 +46,40 @@
|
||||
.outer-pad:nth-child(5n+1) {
|
||||
background-color: @end-color-1-bg;
|
||||
border-color: @end-color-1-border;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(0, 0, 0, 0.30);
|
||||
}
|
||||
.outer-pad:nth-child(5n+1) :not(menu):not(menuitem):not(popover):not(window),
|
||||
.outer-pad:nth-child(5n+1) :not(menu):not(menuitem):not(popover):not(window) * {
|
||||
color: @end-color-1-fg;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(0, 0, 0, 0.30);
|
||||
}
|
||||
|
||||
/* Slot 2: purple (child 2, 7, 12, ...) */
|
||||
.outer-pad:nth-child(5n+2) {
|
||||
background-color: @end-color-2-bg;
|
||||
border-color: @end-color-2-border;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(0, 0, 0, 0.30);
|
||||
}
|
||||
.outer-pad:nth-child(5n+2) :not(menu):not(menuitem):not(popover):not(window),
|
||||
.outer-pad:nth-child(5n+2) :not(menu):not(menuitem):not(popover):not(window) * {
|
||||
color: @end-color-2-fg;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(0, 0, 0, 0.30);
|
||||
}
|
||||
|
||||
/* Slot 3: emerald (child 3, 8, 13, ...) */
|
||||
.outer-pad:nth-child(5n+3) {
|
||||
background-color: @end-color-3-bg;
|
||||
border-color: @end-color-3-border;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(0, 0, 0, 0.30);
|
||||
}
|
||||
.outer-pad:nth-child(5n+3) :not(menu):not(menuitem):not(popover):not(window),
|
||||
.outer-pad:nth-child(5n+3) :not(menu):not(menuitem):not(popover):not(window) * {
|
||||
color: @end-color-3-fg;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(0, 0, 0, 0.30);
|
||||
}
|
||||
|
||||
/* Slot 4: teal (child 4, 9, 14, ...) */
|
||||
.outer-pad:nth-child(5n+4) {
|
||||
background-color: @end-color-4-bg;
|
||||
border-color: @end-color-4-border;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(0, 0, 0, 0.30);
|
||||
}
|
||||
.outer-pad:nth-child(5n+4) :not(menu):not(menuitem):not(popover):not(window),
|
||||
.outer-pad:nth-child(5n+4) :not(menu):not(menuitem):not(popover):not(window) * {
|
||||
color: @end-color-4-fg;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(0, 0, 0, 0.30);
|
||||
}
|
||||
|
||||
/* Slot 5: rose (child 5, 10, 15, ...) */
|
||||
.outer-pad:nth-child(5n+5) {
|
||||
background-color: @end-color-5-bg;
|
||||
border-color: @end-color-5-border;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(0, 0, 0, 0.30);
|
||||
}
|
||||
.outer-pad:nth-child(5n+5) :not(menu):not(menuitem):not(popover):not(window),
|
||||
.outer-pad:nth-child(5n+5) :not(menu):not(menuitem):not(popover):not(window) * {
|
||||
color: @end-color-5-fg;
|
||||
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.06), 0 10px 24px rgba(0, 0, 0, 0.30);
|
||||
}
|
||||
|
||||
/* --- SNI tray (center widget, not part of the rotation) --- */
|
||||
|
||||
78
dotfiles/config/taffybar/flake.lock
generated
78
dotfiles/config/taffybar/flake.lock
generated
@@ -1,5 +1,69 @@
|
||||
{
|
||||
"nodes": {
|
||||
"dbus-hslogger": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1770613712,
|
||||
"narHash": "sha256-Az7USYfzylaIduPoOzxaz+6Evpn+TvVcThbPpWORt8k=",
|
||||
"owner": "IvanMalison",
|
||||
"repo": "dbus-hslogger",
|
||||
"rev": "56195c6e46e04e2454fa0fa643e06eb7ef2a0952",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "IvanMalison",
|
||||
"repo": "dbus-hslogger",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"dbus-hslogger_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1770613712,
|
||||
"narHash": "sha256-Az7USYfzylaIduPoOzxaz+6Evpn+TvVcThbPpWORt8k=",
|
||||
"owner": "taffybar",
|
||||
"repo": "dbus-hslogger",
|
||||
"rev": "56195c6e46e04e2454fa0fa643e06eb7ef2a0952",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "taffybar",
|
||||
"repo": "dbus-hslogger",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"dbus-menu": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1770753441,
|
||||
"narHash": "sha256-ycJexWPCSlLriDAouT3PvRnbwByeGF6bsQrvWcY1eGU=",
|
||||
"owner": "taffybar",
|
||||
"repo": "dbus-menu",
|
||||
"rev": "83f914ab70485331f4e45945251557e5c7ea50fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "taffybar",
|
||||
"repo": "dbus-menu",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"dbus-menu_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1770753441,
|
||||
"narHash": "sha256-ycJexWPCSlLriDAouT3PvRnbwByeGF6bsQrvWcY1eGU=",
|
||||
"owner": "taffybar",
|
||||
"repo": "dbus-menu",
|
||||
"rev": "83f914ab70485331f4e45945251557e5c7ea50fa",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "taffybar",
|
||||
"repo": "dbus-menu",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -115,11 +179,11 @@
|
||||
"gtk-sni-tray": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1770581933,
|
||||
"narHash": "sha256-sLA+v5KpHWSrjXu3Gnt1A/+F3+4FojWGeTPN5JJxWDw=",
|
||||
"lastModified": 1770754698,
|
||||
"narHash": "sha256-W5xZaZMeK5nLwrXvgh35Ko143qteLCTpCq4WwW93zcM=",
|
||||
"owner": "taffybar",
|
||||
"repo": "gtk-sni-tray",
|
||||
"rev": "28eadf97977197bf5bd97855b9991034e9a71322",
|
||||
"rev": "f016f19fd64c1d2c4228d64c9897cd8f45272b8a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -228,6 +292,8 @@
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"dbus-hslogger": "dbus-hslogger",
|
||||
"dbus-menu": "dbus-menu",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"taffybar": "taffybar",
|
||||
@@ -297,6 +363,8 @@
|
||||
},
|
||||
"taffybar": {
|
||||
"inputs": {
|
||||
"dbus-hslogger": "dbus-hslogger_2",
|
||||
"dbus-menu": "dbus-menu_2",
|
||||
"flake-utils": "flake-utils_2",
|
||||
"gtk-sni-tray": "gtk-sni-tray",
|
||||
"gtk-strut": "gtk-strut",
|
||||
@@ -311,8 +379,8 @@
|
||||
"xmonad-contrib": "xmonad-contrib"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770607443,
|
||||
"narHash": "sha256-m4LK21y6KcOQIsGUWbZtK9SItLD7ljBR73CHSV6OSqs=",
|
||||
"lastModified": 1770755513,
|
||||
"narHash": "sha256-tlwUJhim0PEnNotIpCA45oz37wSAWY3f9gUnvaQtjzw=",
|
||||
"path": "/home/imalison/dotfiles/dotfiles/config/taffybar/taffybar",
|
||||
"type": "path"
|
||||
},
|
||||
|
||||
@@ -3,16 +3,36 @@
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
xmonad.url = "github:xmonad/xmonad/master";
|
||||
# Needed by gtk-sni-tray, but not (currently) provided by nixpkgs' haskellPackages.
|
||||
dbus-menu = {
|
||||
url = "github:taffybar/dbus-menu";
|
||||
flake = false;
|
||||
};
|
||||
# nixpkgs' dbus-hslogger is currently too old for taffybar.
|
||||
dbus-hslogger = {
|
||||
url = "github:IvanMalison/dbus-hslogger";
|
||||
flake = false;
|
||||
};
|
||||
taffybar = {
|
||||
url = "path:/home/imalison/dotfiles/dotfiles/config/taffybar/taffybar";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.xmonad.follows = "xmonad";
|
||||
};
|
||||
};
|
||||
outputs = { self, flake-utils, taffybar, nixpkgs, xmonad }:
|
||||
outputs = { self, flake-utils, taffybar, nixpkgs, xmonad, dbus-menu, dbus-hslogger }:
|
||||
let
|
||||
hoverlay = final: prev: hself: hsuper:
|
||||
{
|
||||
dbus-menu =
|
||||
hself.callCabal2nix "dbus-menu"
|
||||
(final.lib.cleanSource dbus-menu)
|
||||
{ inherit (final) gtk3; };
|
||||
|
||||
dbus-hslogger =
|
||||
hself.callCabal2nix "dbus-hslogger"
|
||||
(final.lib.cleanSource dbus-hslogger)
|
||||
{ };
|
||||
|
||||
taffybar = prev.haskell.lib.overrideCabal hsuper.taffybar (oa: {
|
||||
doHaddock = false;
|
||||
doCheck = false;
|
||||
|
||||
Submodule dotfiles/config/taffybar/taffybar updated: 6ed126fe6e...fd7ef196d0
@@ -69,25 +69,6 @@
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
/* Make each widget's squircle background feel "solid": avoid child widgets
|
||||
painting their own backgrounds on top of `.outer-pad`.
|
||||
*
|
||||
* We intentionally avoid broad descendant selectors (especially `*`) here
|
||||
* because SNI menus inherit style context via their attach-widget chain and
|
||||
* those selectors can leak into menu windows, making them transparent.
|
||||
*/
|
||||
.outer-pad label,
|
||||
.outer-pad image,
|
||||
.outer-pad button,
|
||||
.inner-pad label,
|
||||
.inner-pad image,
|
||||
.inner-pad button,
|
||||
.contents label,
|
||||
.contents image,
|
||||
.contents button {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
/* Per-widget color overrides now live in end-widget-colors.css,
|
||||
which rotates through a 5-color palette via :nth-child(). */
|
||||
|
||||
@@ -288,3 +269,9 @@
|
||||
.mpris label {
|
||||
color: @font-muted;
|
||||
}
|
||||
|
||||
/* ASUS platform profile widget */
|
||||
.asus-profile { }
|
||||
.asus-profile.quiet { color: @end-color-4-fg; }
|
||||
.asus-profile.balanced { color: @end-color-1-fg; }
|
||||
.asus-profile.performance { color: @end-color-5-fg; }
|
||||
|
||||
@@ -29,6 +29,7 @@ import System.Taffybar.Widget
|
||||
import qualified System.Taffybar.Widget.HyprlandWorkspaces as Hyprland
|
||||
import qualified System.Taffybar.Widget.NetworkManager as NetworkManager
|
||||
import System.Taffybar.Widget.SNIMenu (withNmAppletMenu)
|
||||
import qualified System.Taffybar.Widget.ASUS as ASUS
|
||||
import qualified System.Taffybar.Widget.PulseAudio as PulseAudio
|
||||
import qualified System.Taffybar.Widget.ScreenLock as ScreenLock
|
||||
import qualified System.Taffybar.Widget.Wlsunset as Wlsunset
|
||||
@@ -324,6 +325,10 @@ diskUsageWidget :: TaffyIO Gtk.Widget
|
||||
diskUsageWidget =
|
||||
decorateWithClassAndBoxM "disk-usage" diskUsageNew
|
||||
|
||||
asusWidget :: TaffyIO Gtk.Widget
|
||||
asusWidget =
|
||||
decorateWithClassAndBoxM "asus-profile" ASUS.asusWidgetNew
|
||||
|
||||
screenLockWidget :: TaffyIO Gtk.Widget
|
||||
screenLockWidget =
|
||||
decorateWithClassAndBoxM "screen-lock" ScreenLock.screenLockNew
|
||||
@@ -353,6 +358,7 @@ endWidgetsForHost hostName backend =
|
||||
baseEndWidgets = [clockWidget, audioWidget, diskUsageWidget, networkWidget, screenLockWidget, wlsunsetWidget, mprisWidget]
|
||||
laptopEndWidgets =
|
||||
[ batteryWidget
|
||||
, asusWidget
|
||||
, clockWidget
|
||||
, audioWidget
|
||||
, diskUsageWidget
|
||||
|
||||
Reference in New Issue
Block a user