home-manager/gui: Add spotifyd, swaync
This commit is contained in:
@@ -113,7 +113,10 @@ in
|
||||
packages = with pkgs; [
|
||||
wtype
|
||||
wl-clipboard
|
||||
wev
|
||||
pavucontrol
|
||||
libsecret
|
||||
playerctl
|
||||
];
|
||||
|
||||
pointerCursor = {
|
||||
@@ -149,8 +152,6 @@ in
|
||||
let
|
||||
cfg = config.wayland.windowManager.sway.config;
|
||||
mod = cfg.modifier;
|
||||
|
||||
mkSpotifyCmd = cmd: "exec ${pkgs.dbus}/bin/dbus-send --print-reply --dest=org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.${cmd}";
|
||||
in
|
||||
lib.mkOptionDefault {
|
||||
"${mod}+d" = null;
|
||||
@@ -164,9 +165,10 @@ in
|
||||
|
||||
"XF86AudioRaiseVolume" = "exec ${pkgs.pamixer}/bin/pamixer -i 5";
|
||||
"XF86AudioLowerVolume" = "exec ${pkgs.pamixer}/bin/pamixer -d 5";
|
||||
"XF86AudioPlay" = mkSpotifyCmd "PlayPause";
|
||||
"XF86AudioNext" = mkSpotifyCmd "Next";
|
||||
"XF86AudioPrev" = mkSpotifyCmd "Prev";
|
||||
"XF86AudioPlay" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
||||
"XF86AudioPause" = "exec ${pkgs.playerctl}/bin/playerctl play-pause";
|
||||
"XF86AudioNext" = "exec ${pkgs.playerctl}/bin/playerctl next";
|
||||
"XF86AudioPrev" = "exec ${pkgs.playerctl}/bin/playerctl previous";
|
||||
};
|
||||
|
||||
menu = "rofi -show run";
|
||||
@@ -197,6 +199,13 @@ in
|
||||
};
|
||||
|
||||
services = {
|
||||
swaync = {
|
||||
enable = true;
|
||||
settings = {
|
||||
widgets = [ "title" "dnd" "mpris" "notifications" ];
|
||||
};
|
||||
};
|
||||
|
||||
flameshot = {
|
||||
enable = true;
|
||||
settings = {
|
||||
@@ -207,6 +216,23 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
playerctld.enable = true;
|
||||
spotifyd = {
|
||||
enable = true;
|
||||
package = pkgs.spotifyd.override {
|
||||
withMpris = true;
|
||||
withKeyring = true;
|
||||
};
|
||||
settings.global = {
|
||||
username = "devplayer0";
|
||||
use_keyring = true;
|
||||
use_mpris = true;
|
||||
backend = "pulseaudio";
|
||||
bitrate = 320;
|
||||
device_type = "computer";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
programs = {
|
||||
|
@@ -17,7 +17,7 @@ in
|
||||
modules-center = [ "sway/window" ];
|
||||
modules-right = [
|
||||
"idle_inhibitor" "pulseaudio" "network" "cpu" "memory" "temperature" "backlight"
|
||||
"keyboard-state" "sway/language" "battery" "clock" "tray"
|
||||
"keyboard-state" "sway/language" "battery" "clock" "tray" "custom/notification"
|
||||
];
|
||||
# Modules configuration
|
||||
# "sway/workspaces": {
|
||||
@@ -112,8 +112,8 @@ in
|
||||
format-source-muted = "";
|
||||
format-icons = {
|
||||
headphone = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
hands-free = "";
|
||||
headset = "";
|
||||
phone = "";
|
||||
portable = "";
|
||||
car = "";
|
||||
@@ -122,17 +122,33 @@ in
|
||||
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
|
||||
};
|
||||
"custom/media" = {
|
||||
# TODO: waybar has a built-in MPRIS module now
|
||||
format = "{icon} {}";
|
||||
return-type = "json";
|
||||
max-length = 40;
|
||||
format-icons = {
|
||||
spotify = "";
|
||||
default = "🎜";
|
||||
default = "";
|
||||
};
|
||||
escape = true;
|
||||
exec = ''${pkg}/bin/waybar-mediaplayer.py 2> /dev/null'';
|
||||
# "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
|
||||
};
|
||||
"custom/notification" = {
|
||||
tooltip = false;
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
notification = "<span foreground='red'><sup></sup></span>";
|
||||
none = "";
|
||||
dnd-notification = "<span foreground='red'><sup></sup></span>";
|
||||
dnd-none = "";
|
||||
};
|
||||
return-type = "json";
|
||||
exec = "${config.services.swaync.package}/bin/swaync-client -swb";
|
||||
on-click = "${config.services.swaync.package}/bin/swaync-client -t -sw";
|
||||
on-click-right = "${config.services.swaync.package}/bin/swaync-client -d -sw";
|
||||
escape = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
|
Reference in New Issue
Block a user