Propagate taffybar audio and favicon updates
This commit is contained in:
@@ -30,6 +30,7 @@ import System.Taffybar.Information.ChromeWindowInfo (getChromeWindowInfoRefreshC
|
|||||||
import System.Taffybar.Util (postGUIASync)
|
import System.Taffybar.Util (postGUIASync)
|
||||||
import System.Taffybar.Widget
|
import System.Taffybar.Widget
|
||||||
import qualified System.Taffybar.Widget.ASUS as ASUS
|
import qualified System.Taffybar.Widget.ASUS as ASUS
|
||||||
|
import qualified System.Taffybar.Widget.Audio as Audio
|
||||||
import System.Taffybar.Widget.CPUMonitor (cpuMonitorNew)
|
import System.Taffybar.Widget.CPUMonitor (cpuMonitorNew)
|
||||||
import System.Taffybar.Widget.Generic.Graph (GraphConfig (..), GraphDirection (..), GraphStyle (..), defaultGraphConfig)
|
import System.Taffybar.Widget.Generic.Graph (GraphConfig (..), GraphDirection (..), GraphStyle (..), defaultGraphConfig)
|
||||||
import qualified System.Taffybar.Widget.NetworkManager as NetworkManager
|
import qualified System.Taffybar.Widget.NetworkManager as NetworkManager
|
||||||
@@ -39,7 +40,6 @@ import System.Taffybar.Widget.OpenAIUsage
|
|||||||
defaultOpenAIUsageStackConfig,
|
defaultOpenAIUsageStackConfig,
|
||||||
openAIUsageSectionNewWith,
|
openAIUsageSectionNewWith,
|
||||||
)
|
)
|
||||||
import qualified System.Taffybar.Widget.PulseAudio as PulseAudio
|
|
||||||
import System.Taffybar.Widget.SNIMenu (withNmAppletMenu)
|
import System.Taffybar.Widget.SNIMenu (withNmAppletMenu)
|
||||||
import System.Taffybar.Widget.SNITray
|
import System.Taffybar.Widget.SNITray
|
||||||
( CollapsibleSNITrayParams (..),
|
( CollapsibleSNITrayParams (..),
|
||||||
@@ -76,7 +76,7 @@ import Text.Read (readMaybe)
|
|||||||
|
|
||||||
audioWidget :: TaffyIO Gtk.Widget
|
audioWidget :: TaffyIO Gtk.Widget
|
||||||
audioWidget =
|
audioWidget =
|
||||||
decorateWithClassAndBoxM "audio" PulseAudio.pulseAudioNew
|
decorateWithClassAndBoxM "audio" Audio.audioNew
|
||||||
|
|
||||||
networkInnerWidget :: TaffyIO Gtk.Widget
|
networkInnerWidget :: TaffyIO Gtk.Widget
|
||||||
networkInnerWidget =
|
networkInnerWidget =
|
||||||
@@ -241,7 +241,7 @@ audioBacklightWidget :: TaffyIO Gtk.Widget
|
|||||||
audioBacklightWidget =
|
audioBacklightWidget =
|
||||||
stackInPill
|
stackInPill
|
||||||
"audio-backlight"
|
"audio-backlight"
|
||||||
[ PulseAudio.pulseAudioNew,
|
[ Audio.audioNew,
|
||||||
backlightNewChanWith
|
backlightNewChanWith
|
||||||
defaultBacklightWidgetConfig
|
defaultBacklightWidgetConfig
|
||||||
{ backlightFormat = "$percent$%",
|
{ backlightFormat = "$percent$%",
|
||||||
|
|||||||
@@ -7,3 +7,4 @@ packages:
|
|||||||
taffybar/packages/status-notifier-item
|
taffybar/packages/status-notifier-item
|
||||||
taffybar/packages/dbus-menu
|
taffybar/packages/dbus-menu
|
||||||
taffybar/packages/dbus-hslogger
|
taffybar/packages/dbus-hslogger
|
||||||
|
taffybar/packages/gi-wireplumber
|
||||||
|
|||||||
6
dotfiles/config/taffybar/flake.lock
generated
6
dotfiles/config/taffybar/flake.lock
generated
@@ -136,11 +136,11 @@
|
|||||||
"xmonad-contrib": "xmonad-contrib"
|
"xmonad-contrib": "xmonad-contrib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1778303085,
|
"lastModified": 1778662099,
|
||||||
"narHash": "sha256-pDFWJ3BJ4jaZOi1hq7SHzRCdnII8PgvBNxcyoFgx4BE=",
|
"narHash": "sha256-vHiVLdTRBvEyEL0ebGENA/Hv1vTwpWQ96Gj3JNPqeD0=",
|
||||||
"owner": "taffybar",
|
"owner": "taffybar",
|
||||||
"repo": "taffybar",
|
"repo": "taffybar",
|
||||||
"rev": "45b31b789fdfeff7251f0f77e1259ef4d1cc987a",
|
"rev": "1741477fea5e9fd18b23f717d6d5c91b2aec09fa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -107,6 +107,13 @@
|
|||||||
{ })
|
{ })
|
||||||
(_: { doCheck = false; doHaddock = false; });
|
(_: { doCheck = false; doHaddock = false; });
|
||||||
|
|
||||||
|
gi-wireplumber =
|
||||||
|
pkgs.haskell.lib.overrideCabal
|
||||||
|
(hself.callCabal2nix "gi-wireplumber"
|
||||||
|
(localTaffybarSubdir "packages/gi-wireplumber")
|
||||||
|
{ })
|
||||||
|
(_: { doCheck = false; doHaddock = false; });
|
||||||
|
|
||||||
dbus-hslogger =
|
dbus-hslogger =
|
||||||
hself.callCabal2nix "dbus-hslogger"
|
hself.callCabal2nix "dbus-hslogger"
|
||||||
(localTaffybarSubdir "packages/dbus-hslogger")
|
(localTaffybarSubdir "packages/dbus-hslogger")
|
||||||
@@ -116,12 +123,24 @@
|
|||||||
# modules (e.g. System.Taffybar.Widget.ASUS) used by this config.
|
# modules (e.g. System.Taffybar.Widget.ASUS) used by this config.
|
||||||
taffybar = pkgs.haskell.lib.overrideCabal
|
taffybar = pkgs.haskell.lib.overrideCabal
|
||||||
(pkgs.haskell.lib.disableStaticLibraries
|
(pkgs.haskell.lib.disableStaticLibraries
|
||||||
(hself.callCabal2nix "taffybar" cleanedTaffybarSource { inherit (pkgs) gtk3; }))
|
(hself.callCabal2nix "taffybar" cleanedTaffybarSource {
|
||||||
|
inherit (pkgs) gtk3;
|
||||||
|
}))
|
||||||
(oa: {
|
(oa: {
|
||||||
doHaddock = false;
|
doHaddock = false;
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
# Needed for gi-gtk-layer-shell (introspection data).
|
# Needed for gi-gtk-layer-shell and gi-wireplumber introspection data.
|
||||||
librarySystemDepends = (oa.librarySystemDepends or []) ++ [ pkgs.gtk-layer-shell ];
|
librarySystemDepends = (oa.librarySystemDepends or []) ++ [
|
||||||
|
pkgs.gtk-layer-shell
|
||||||
|
pkgs.wireplumber
|
||||||
|
];
|
||||||
|
shellHook = ''
|
||||||
|
${oa.shellHook or ""}
|
||||||
|
export PKG_CONFIG_PATH="${pkgs.wireplumber.dev}/lib/pkgconfig:${pkgs.pipewire.dev}/lib/pkgconfig:''${PKG_CONFIG_PATH:-}"
|
||||||
|
export GI_GIR_PATH="${pkgs.wireplumber.dev}/share/gir-1.0:''${GI_GIR_PATH:-}"
|
||||||
|
export GI_TYPELIB_PATH="${pkgs.wireplumber}/lib/girepository-1.0:${pkgs.glib.out}/lib/girepository-1.0:''${GI_TYPELIB_PATH:-}"
|
||||||
|
export XDG_DATA_DIRS="${pkgs.wireplumber.dev}/share:''${XDG_DATA_DIRS:-}"
|
||||||
|
'';
|
||||||
});
|
});
|
||||||
|
|
||||||
# gi-gtk-hs patching is now handled by taffybar's fixVersionNamePackages overlay
|
# gi-gtk-hs patching is now handled by taffybar's fixVersionNamePackages overlay
|
||||||
@@ -184,6 +203,7 @@
|
|||||||
pkgs.librsvg
|
pkgs.librsvg
|
||||||
];
|
];
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
|
${hpkgs.taffybar.env.shellHook or ""}
|
||||||
# GHCi loads package DLL dependencies via the runtime linker, so it
|
# GHCi loads package DLL dependencies via the runtime linker, so it
|
||||||
# needs zlib on LD_LIBRARY_PATH in addition to the build-time -L flags.
|
# needs zlib on LD_LIBRARY_PATH in addition to the build-time -L flags.
|
||||||
export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath [ pkgs.zlib ]}:''${LD_LIBRARY_PATH:-}"
|
export LD_LIBRARY_PATH="${pkgs.lib.makeLibraryPath [ pkgs.zlib ]}:''${LD_LIBRARY_PATH:-}"
|
||||||
|
|||||||
Submodule dotfiles/config/taffybar/taffybar updated: 5af1f40e56...1741477fea
@@ -1,16 +1,17 @@
|
|||||||
module Main (main) where
|
module Main (main) where
|
||||||
|
|
||||||
import TaffybarConfig.Config (mkSimpleTaffyConfig)
|
|
||||||
import TaffybarConfig.Host (cssFilesForHost)
|
|
||||||
import Network.HostName (getHostName)
|
import Network.HostName (getHostName)
|
||||||
import System.Environment.XDG.BaseDir (getUserConfigFile)
|
import System.Environment.XDG.BaseDir (getUserConfigFile)
|
||||||
import System.Log.Logger (Priority (WARNING), rootLoggerName, setLevel, updateGlobalLogger)
|
import System.Log.Logger (Priority (WARNING), rootLoggerName, setLevel, updateGlobalLogger)
|
||||||
import System.Taffybar (startTaffybar)
|
import System.Taffybar (startTaffybar)
|
||||||
import System.Taffybar.Context (detectBackend)
|
import System.Taffybar.Context (appendHook, detectBackend)
|
||||||
import System.Taffybar.DBus
|
import System.Taffybar.DBus
|
||||||
import System.Taffybar.DBus.Toggle
|
import System.Taffybar.DBus.Toggle
|
||||||
import System.Taffybar.Hooks (withLogLevels)
|
import System.Taffybar.Hooks (withLogLevels)
|
||||||
|
import System.Taffybar.Information.ChromeWindowInfo (registerChromeWindowInfoRefreshRequests)
|
||||||
import System.Taffybar.SimpleConfig (toTaffybarConfig)
|
import System.Taffybar.SimpleConfig (toTaffybarConfig)
|
||||||
|
import TaffybarConfig.Config (mkSimpleTaffyConfig)
|
||||||
|
import TaffybarConfig.Host (cssFilesForHost)
|
||||||
|
|
||||||
main :: IO ()
|
main :: IO ()
|
||||||
main = do
|
main = do
|
||||||
@@ -25,4 +26,5 @@ main = do
|
|||||||
withLogServer $
|
withLogServer $
|
||||||
withLogLevels $
|
withLogLevels $
|
||||||
withToggleServer $
|
withToggleServer $
|
||||||
toTaffybarConfig simpleTaffyConfig
|
appendHook registerChromeWindowInfoRefreshRequests $
|
||||||
|
toTaffybarConfig simpleTaffyConfig
|
||||||
|
|||||||
100
nixos/chrome-favicon-dbus.nix
Normal file
100
nixos/chrome-favicon-dbus.nix
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
makeEnable,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
system = pkgs.stdenv.hostPlatform.system;
|
||||||
|
bridgePackage = inputs.chrome-favicon-dbus.packages.${system}.default;
|
||||||
|
extensionSource = "${inputs.chrome-favicon-dbus}/extension";
|
||||||
|
extensionManifest = builtins.fromJSON (builtins.readFile "${extensionSource}/manifest.json");
|
||||||
|
extensionVersion = extensionManifest.version;
|
||||||
|
extensionId = "odlameecjipmbmbejkplpemijjgpljce";
|
||||||
|
extensionKey = pkgs.writeText "chrome-favicon-dbus-extension.pem" ''
|
||||||
|
-----BEGIN PRIVATE KEY-----
|
||||||
|
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDF0IL1wJ4JyaYc
|
||||||
|
c3vcixly8UEYUxo6TEwpPFIj/9bTGsIVCzVMxeirqn3979o9DUxZGgn6Ktm6LTnb
|
||||||
|
h1MK5FZxO3PDdiiotmejbWd79c7PWvGU/Vlf3WuSeej1ksEpNw9GEE/PJ6J9Q0nA
|
||||||
|
8kpbJ6sicAY0S0ZzdL7XKNRKGdy6t2BrsO2MBBGcMh/EpkoxzgPBx3/mefcebUnl
|
||||||
|
7nIStYX+59w27epsZOLOS/7FPJhx8rda0Lfw3GtFtWef7vWW2DrDuPV1+dDbp8ZH
|
||||||
|
jspqGGncBJJ7yuUwMpDNEunBOkb/t75LCL+ISn4i5EvMZbQjvRgZOht6jHbVSJeG
|
||||||
|
eBIVHSG1AgMBAAECggEAGtx10A+0FiGo+g+Pd/L2hXZvr7EnLFfsdqP/hm5o+jkV
|
||||||
|
tjxTpEVykw7/dVJS2Pv7jFTeGnejoaWfB+mgE+hOOamITng2zLQaLiW+yeUmzF7t
|
||||||
|
05y0fHFJeHYv9VrUeneEzi+MWtWnuak/tGDiSm8ATNiX6xV2r1pgyMA9VYOeBsd/
|
||||||
|
Q7aCpMgtD9fP3Vo3b8PousmZRB1c3xMf3XIcxdxEppFlUVlGTSi2kuFoEwM6i2fr
|
||||||
|
5ptfM8JrSoPZwB6neTg959vpezviYJviDufbCaH777Uvrvr+i5Dzifrjo94yhtp4
|
||||||
|
+sv9jVDqL4gUCIkEs3EtQJH57tZtti+mQ8hTsFh6iQKBgQDkcqnQjkCuuIffrzgX
|
||||||
|
dnRXwCHWptsDqwJaEnyxUoGZhP8tUcOfX8cXkn9AKZCMq/eyzXR4qIWIaKevcTUN
|
||||||
|
s35YMoXCUZ/Xmj98/9A9rZ8Z/sJnJPvpqctNer59NhCjyIMdh4k3NZAfSoBNgTXt
|
||||||
|
kz0ir3A0pZTUDeDSXNQe7kVUPQKBgQDdrApydIm4oJIlLq2KctHv/YYpCZRSebmS
|
||||||
|
Wr+CdTFtjIMl5SBoVeCA+joovLOd+3VYdpHHp0eWkcvjD08K+shLWJ1JtIEMuTDO
|
||||||
|
KJ1C6iPYRPVD6HZhjP2xtwO1gnGiyF5O5qMkfqQXP0B8iDaUTaoaZloJNpNw2fa2
|
||||||
|
UF1ZvDVC2QKBgCqjXB6Y7mmt925Afe+jJEPckHRH4Ejm+iFlofBWvemxcQ88W467
|
||||||
|
iaVUqnuHRnt6/VhaEIsUqRe0sNeGAaj0/3fmtiB2q6bKG19xP6TDaxam/hHSTVJn
|
||||||
|
ZpKnfjZQiPqIyjAQxAOR87xjY18T5sTY3mhC5mZtIUIS9QtOWCkNv9LhAoGBALys
|
||||||
|
YxP6FwKbQOj+6tytT/zpl5g0PBda3dUxAlHit9hbQYEunT/Q4E5HLNthiawMzFso
|
||||||
|
SHpb6fXBUH2JmShqPbLL0MxcI38V3PGL5hZ/PVUllHBhWuk63O+3KyQBzADWdFbJ
|
||||||
|
vdAhLj9PKe8U7Qebdw4TUc0Hs8TY8EFK87meFOM5AoGAZyCQvbXR0nbJuXmahhrT
|
||||||
|
sKFlAiM3ID+0LN137qeKegxbEOit5sTBjCkdFSovsqyoKR5mF5g3J3Zq/JK4naHD
|
||||||
|
l/7vEZbO+yR/rn/exH3Aj+GIIy83kvsRsPbAbW8aII7MhRZKEa/W3bdtHfczyI6r
|
||||||
|
apyjjEZEct41A23iQkkbytQ=
|
||||||
|
-----END PRIVATE KEY-----
|
||||||
|
'';
|
||||||
|
extensionPackage =
|
||||||
|
pkgs.runCommand "chrome-favicon-dbus-extension-${extensionVersion}" {
|
||||||
|
nativeBuildInputs = [pkgs.google-chrome];
|
||||||
|
} ''
|
||||||
|
export HOME="$TMPDIR/home"
|
||||||
|
mkdir -p "$HOME" "$out"
|
||||||
|
cp -R --no-preserve=mode "${extensionSource}" extension
|
||||||
|
google-chrome-stable \
|
||||||
|
--pack-extension="$PWD/extension" \
|
||||||
|
--pack-extension-key="${extensionKey}"
|
||||||
|
cp extension.crx "$out/chrome-favicon-dbus.crx"
|
||||||
|
cp -R extension "$out/unpacked"
|
||||||
|
'';
|
||||||
|
runtimePath = lib.makeBinPath [
|
||||||
|
pkgs.coreutils
|
||||||
|
pkgs.hyprland
|
||||||
|
pkgs.xdotool
|
||||||
|
pkgs.which
|
||||||
|
];
|
||||||
|
in
|
||||||
|
makeEnable config "myModules.chrome-favicon-dbus" false {
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
{
|
||||||
|
home.packages = [bridgePackage];
|
||||||
|
|
||||||
|
xdg.configFile."google-chrome-unpacked-extensions/chrome-favicon-dbus" = {
|
||||||
|
source = extensionSource;
|
||||||
|
recursive = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
xdg.configFile."google-chrome/External Extensions/${extensionId}.json".text = builtins.toJSON {
|
||||||
|
external_crx = "${extensionPackage}/chrome-favicon-dbus.crx";
|
||||||
|
external_version = extensionVersion;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.user.services.chrome-favicon-dbus = {
|
||||||
|
Unit = {
|
||||||
|
Description = "Chrome favicon metadata over D-Bus";
|
||||||
|
After = ["graphical-session.target"];
|
||||||
|
PartOf = ["graphical-session.target"];
|
||||||
|
};
|
||||||
|
|
||||||
|
Service = {
|
||||||
|
ExecStart = "${bridgePackage}/bin/chrome-favicon-dbus --host 127.0.0.1 --port 38933 --path /update";
|
||||||
|
Environment = "PATH=${runtimePath}:/run/current-system/sw/bin";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
Install = {
|
||||||
|
WantedBy = ["graphical-session.target"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -11,6 +11,7 @@
|
|||||||
./bootloaders/systemd-boot.nix
|
./bootloaders/systemd-boot.nix
|
||||||
./cache-server.nix
|
./cache-server.nix
|
||||||
./cache.nix
|
./cache.nix
|
||||||
|
./chrome-favicon-dbus.nix
|
||||||
./code.nix
|
./code.nix
|
||||||
./cua.nix
|
./cua.nix
|
||||||
./desktop.nix
|
./desktop.nix
|
||||||
|
|||||||
27
nixos/flake.lock
generated
27
nixos/flake.lock
generated
@@ -84,6 +84,26 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"chrome-favicon-dbus": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1778633515,
|
||||||
|
"narHash": "sha256-QC/nUlGoqUx63cGwQCkHEN0Qs85PSdF7RYrHYmD4L+A=",
|
||||||
|
"owner": "taffybar",
|
||||||
|
"repo": "chrome-favicon-dbus",
|
||||||
|
"rev": "b791fe9d57b1e09c06f56174d73d9c43b8493fe5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "taffybar",
|
||||||
|
"repo": "chrome-favicon-dbus",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"claude-code-nix": {
|
"claude-code-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": [
|
"flake-utils": [
|
||||||
@@ -1747,6 +1767,7 @@
|
|||||||
"hyprland",
|
"hyprland",
|
||||||
"aquamarine"
|
"aquamarine"
|
||||||
],
|
],
|
||||||
|
"chrome-favicon-dbus": "chrome-favicon-dbus",
|
||||||
"claude-code-nix": "claude-code-nix",
|
"claude-code-nix": "claude-code-nix",
|
||||||
"codex-cli-nix": "codex-cli-nix",
|
"codex-cli-nix": "codex-cli-nix",
|
||||||
"codex-desktop-linux": "codex-desktop-linux",
|
"codex-desktop-linux": "codex-desktop-linux",
|
||||||
@@ -1907,11 +1928,11 @@
|
|||||||
"xmonad-contrib": "xmonad-contrib"
|
"xmonad-contrib": "xmonad-contrib"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1778446663,
|
"lastModified": 1778662099,
|
||||||
"narHash": "sha256-xHKRrar08yPsOVbPG7DlouKU83r8P0WAwoxUuje3kq0=",
|
"narHash": "sha256-vHiVLdTRBvEyEL0ebGENA/Hv1vTwpWQ96Gj3JNPqeD0=",
|
||||||
"owner": "taffybar",
|
"owner": "taffybar",
|
||||||
"repo": "taffybar",
|
"repo": "taffybar",
|
||||||
"rev": "2c95fd5a8aa125d0ba89873a7d4dfd49bb57b00c",
|
"rev": "1741477fea5e9fd18b23f717d6d5c91b2aec09fa",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -91,6 +91,11 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
chrome-favicon-dbus = {
|
||||||
|
url = "github:taffybar/chrome-favicon-dbus";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
# Hyprland and plugins from official flakes for proper plugin compatibility
|
# Hyprland and plugins from official flakes for proper plugin compatibility
|
||||||
hyprland = {
|
hyprland = {
|
||||||
url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||||||
|
|||||||
@@ -200,6 +200,7 @@
|
|||||||
in
|
in
|
||||||
makeEnable config "myModules.taffybar" false {
|
makeEnable config "myModules.taffybar" false {
|
||||||
myModules.sni.enable = true;
|
myModules.sni.enable = true;
|
||||||
|
myModules.chrome-favicon-dbus.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
taffybarPackage
|
taffybarPackage
|
||||||
|
|||||||
Reference in New Issue
Block a user