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) {
|
.outer-pad:nth-child(5n+1) {
|
||||||
background-color: @end-color-1-bg;
|
background-color: @end-color-1-bg;
|
||||||
border-color: @end-color-1-border;
|
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;
|
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, ...) */
|
/* Slot 2: purple (child 2, 7, 12, ...) */
|
||||||
.outer-pad:nth-child(5n+2) {
|
.outer-pad:nth-child(5n+2) {
|
||||||
background-color: @end-color-2-bg;
|
background-color: @end-color-2-bg;
|
||||||
border-color: @end-color-2-border;
|
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;
|
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, ...) */
|
/* Slot 3: emerald (child 3, 8, 13, ...) */
|
||||||
.outer-pad:nth-child(5n+3) {
|
.outer-pad:nth-child(5n+3) {
|
||||||
background-color: @end-color-3-bg;
|
background-color: @end-color-3-bg;
|
||||||
border-color: @end-color-3-border;
|
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;
|
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, ...) */
|
/* Slot 4: teal (child 4, 9, 14, ...) */
|
||||||
.outer-pad:nth-child(5n+4) {
|
.outer-pad:nth-child(5n+4) {
|
||||||
background-color: @end-color-4-bg;
|
background-color: @end-color-4-bg;
|
||||||
border-color: @end-color-4-border;
|
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;
|
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, ...) */
|
/* Slot 5: rose (child 5, 10, 15, ...) */
|
||||||
.outer-pad:nth-child(5n+5) {
|
.outer-pad:nth-child(5n+5) {
|
||||||
background-color: @end-color-5-bg;
|
background-color: @end-color-5-bg;
|
||||||
border-color: @end-color-5-border;
|
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;
|
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) --- */
|
/* --- 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": {
|
"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-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -115,11 +179,11 @@
|
|||||||
"gtk-sni-tray": {
|
"gtk-sni-tray": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770581933,
|
"lastModified": 1770754698,
|
||||||
"narHash": "sha256-sLA+v5KpHWSrjXu3Gnt1A/+F3+4FojWGeTPN5JJxWDw=",
|
"narHash": "sha256-W5xZaZMeK5nLwrXvgh35Ko143qteLCTpCq4WwW93zcM=",
|
||||||
"owner": "taffybar",
|
"owner": "taffybar",
|
||||||
"repo": "gtk-sni-tray",
|
"repo": "gtk-sni-tray",
|
||||||
"rev": "28eadf97977197bf5bd97855b9991034e9a71322",
|
"rev": "f016f19fd64c1d2c4228d64c9897cd8f45272b8a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -228,6 +292,8 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"dbus-hslogger": "dbus-hslogger",
|
||||||
|
"dbus-menu": "dbus-menu",
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"taffybar": "taffybar",
|
"taffybar": "taffybar",
|
||||||
@@ -297,6 +363,8 @@
|
|||||||
},
|
},
|
||||||
"taffybar": {
|
"taffybar": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"dbus-hslogger": "dbus-hslogger_2",
|
||||||
|
"dbus-menu": "dbus-menu_2",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
"gtk-sni-tray": "gtk-sni-tray",
|
"gtk-sni-tray": "gtk-sni-tray",
|
||||||
"gtk-strut": "gtk-strut",
|
"gtk-strut": "gtk-strut",
|
||||||
@@ -311,8 +379,8 @@
|
|||||||
"xmonad-contrib": "xmonad-contrib"
|
"xmonad-contrib": "xmonad-contrib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770607443,
|
"lastModified": 1770755513,
|
||||||
"narHash": "sha256-m4LK21y6KcOQIsGUWbZtK9SItLD7ljBR73CHSV6OSqs=",
|
"narHash": "sha256-tlwUJhim0PEnNotIpCA45oz37wSAWY3f9gUnvaQtjzw=",
|
||||||
"path": "/home/imalison/dotfiles/dotfiles/config/taffybar/taffybar",
|
"path": "/home/imalison/dotfiles/dotfiles/config/taffybar/taffybar",
|
||||||
"type": "path"
|
"type": "path"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,16 +3,36 @@
|
|||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
xmonad.url = "github:xmonad/xmonad/master";
|
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 = {
|
taffybar = {
|
||||||
url = "path:/home/imalison/dotfiles/dotfiles/config/taffybar/taffybar";
|
url = "path:/home/imalison/dotfiles/dotfiles/config/taffybar/taffybar";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.xmonad.follows = "xmonad";
|
inputs.xmonad.follows = "xmonad";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
outputs = { self, flake-utils, taffybar, nixpkgs, xmonad }:
|
outputs = { self, flake-utils, taffybar, nixpkgs, xmonad, dbus-menu, dbus-hslogger }:
|
||||||
let
|
let
|
||||||
hoverlay = final: prev: hself: hsuper:
|
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: {
|
taffybar = prev.haskell.lib.overrideCabal hsuper.taffybar (oa: {
|
||||||
doHaddock = false;
|
doHaddock = false;
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|||||||
Submodule dotfiles/config/taffybar/taffybar updated: 6ed126fe6e...fd7ef196d0
@@ -69,25 +69,6 @@
|
|||||||
opacity: 1;
|
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,
|
/* Per-widget color overrides now live in end-widget-colors.css,
|
||||||
which rotates through a 5-color palette via :nth-child(). */
|
which rotates through a 5-color palette via :nth-child(). */
|
||||||
|
|
||||||
@@ -288,3 +269,9 @@
|
|||||||
.mpris label {
|
.mpris label {
|
||||||
color: @font-muted;
|
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.HyprlandWorkspaces as Hyprland
|
||||||
import qualified System.Taffybar.Widget.NetworkManager as NetworkManager
|
import qualified System.Taffybar.Widget.NetworkManager as NetworkManager
|
||||||
import System.Taffybar.Widget.SNIMenu (withNmAppletMenu)
|
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.PulseAudio as PulseAudio
|
||||||
import qualified System.Taffybar.Widget.ScreenLock as ScreenLock
|
import qualified System.Taffybar.Widget.ScreenLock as ScreenLock
|
||||||
import qualified System.Taffybar.Widget.Wlsunset as Wlsunset
|
import qualified System.Taffybar.Widget.Wlsunset as Wlsunset
|
||||||
@@ -324,6 +325,10 @@ diskUsageWidget :: TaffyIO Gtk.Widget
|
|||||||
diskUsageWidget =
|
diskUsageWidget =
|
||||||
decorateWithClassAndBoxM "disk-usage" diskUsageNew
|
decorateWithClassAndBoxM "disk-usage" diskUsageNew
|
||||||
|
|
||||||
|
asusWidget :: TaffyIO Gtk.Widget
|
||||||
|
asusWidget =
|
||||||
|
decorateWithClassAndBoxM "asus-profile" ASUS.asusWidgetNew
|
||||||
|
|
||||||
screenLockWidget :: TaffyIO Gtk.Widget
|
screenLockWidget :: TaffyIO Gtk.Widget
|
||||||
screenLockWidget =
|
screenLockWidget =
|
||||||
decorateWithClassAndBoxM "screen-lock" ScreenLock.screenLockNew
|
decorateWithClassAndBoxM "screen-lock" ScreenLock.screenLockNew
|
||||||
@@ -353,6 +358,7 @@ endWidgetsForHost hostName backend =
|
|||||||
baseEndWidgets = [clockWidget, audioWidget, diskUsageWidget, networkWidget, screenLockWidget, wlsunsetWidget, mprisWidget]
|
baseEndWidgets = [clockWidget, audioWidget, diskUsageWidget, networkWidget, screenLockWidget, wlsunsetWidget, mprisWidget]
|
||||||
laptopEndWidgets =
|
laptopEndWidgets =
|
||||||
[ batteryWidget
|
[ batteryWidget
|
||||||
|
, asusWidget
|
||||||
, clockWidget
|
, clockWidget
|
||||||
, audioWidget
|
, audioWidget
|
||||||
, diskUsageWidget
|
, diskUsageWidget
|
||||||
|
|||||||
Reference in New Issue
Block a user