Set up mpd

This commit is contained in:
Natsu Kagami 2022-09-16 17:25:19 +02:00
parent 62f68eb9dc
commit a8b8d866af
Signed by: nki
GPG key ID: 7306B3D3C3AD6E51
4 changed files with 100 additions and 20 deletions

View file

@ -34,6 +34,7 @@
programs.my-sway.enable = true; programs.my-sway.enable = true;
programs.my-sway.fontSize = 15.0; programs.my-sway.fontSize = 15.0;
programs.my-sway.enableLaptopBars = false; programs.my-sway.enableLaptopBars = false;
programs.my-sway.enableMpd = true;
# Keyboard options # Keyboard options
wayland.windowManager.sway.config.input."type:keyboard".xkb_layout = "jp"; wayland.windowManager.sway.config.input."type:keyboard".xkb_layout = "jp";
# 144hz adaptive refresh ON! # 144hz adaptive refresh ON!
@ -62,6 +63,14 @@
# OwnCloud # OwnCloud
services.owncloud-client.enable = true; services.owncloud-client.enable = true;
# mpd stuff
services.mpd-discord-rpc.enable = true;
services.mpd-discord-rpc.package = pkgs.unstable.mpd-discord-rpc;
services.mpdris2.enable = true;
# ncmpcpp
programs.ncmpcpp.enable = true;
services.mpris-proxy.enable = true;
# linux.graphical.x11.hidpi = true; # linux.graphical.x11.hidpi = true;
# linux.graphical.x11.enablei3 = true; # linux.graphical.x11.enablei3 = true;

View file

@ -67,6 +67,11 @@ in
description = "Whether to enable laptop-specific bars (battery)"; description = "Whether to enable laptop-specific bars (battery)";
default = true; default = true;
}; };
enableMpd = mkOption {
type = types.bool;
description = "Whether to enable mpd on waybar";
default = false;
};
}; };
config.wayland.windowManager.sway = mkIf cfg.enable { config.wayland.windowManager.sway = mkIf cfg.enable {
@ -238,21 +243,23 @@ in
modules-center = [ modules-center = [
"sway/window" "sway/window"
]; ];
modules-right = [ modules-right =
"tray" (if cfg.enableMpd then [ "mpd" ] else [ ])
"pulseaudio" ++ [
"network" "tray"
"cpu" "pulseaudio"
"memory" "network"
"temperature" "cpu"
"backlight" "memory"
] ++ ( "temperature"
if cfg.enableLaptopBars "backlight"
then [ "battery" "battery#bat2" ] ] ++ (
else [ ] if cfg.enableLaptopBars
) ++ [ then [ "battery" "battery#bat2" ]
"clock" else [ ]
]; ) ++ [
"clock"
];
modules = { modules = {
"sway/mode" = { "sway/mode" = {
@ -322,6 +329,31 @@ in
}; };
on-click = "pavucontrol"; on-click = "pavucontrol";
}; };
"mpd" = {
"format" = "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) 🎧";
"format-disconnected" = "Disconnected 🎧";
"format-stopped" = "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped 🎧";
"interval" = 2;
"consume-icons" = {
"on" = " "; # Icon shows only when "consume" is on
};
"random-icons" = {
"off" = "<span color=\"#f53c3c\"></span> "; # Icon grayed out when "random" is off;
"on" = " ";
};
"repeat-icons" = {
"on" = " ";
};
"single-icons" = {
"on" = "1 ";
};
"state-icons" = {
"paused" = "";
"playing" = "";
};
"tooltip-format" = "MPD (connected)";
"tooltip-format-disconnected" = "MPD (disconnected)";
};
}; };
} }
]; ];
@ -365,7 +397,7 @@ in
border-bottom: 3px solid #ffffff; border-bottom: 3px solid #ffffff;
} }
#clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-media, #tray, #mode, #idle_inhibitor { #clock, #battery, #cpu, #memory, #temperature, #backlight, #network, #pulseaudio, #custom-media, #tray, #mode, #idle_inhibitor, #mpd {
padding: 0 10px; padding: 0 10px;
margin: 0 5px; margin: 0 5px;
} }
@ -465,9 +497,13 @@ in
background-color: #ecf0f1; background-color: #ecf0f1;
color: #2d3436; color: #2d3436;
} }
#mpd {
background-color: teal;
color: white;
}
''; '';
}; };
config.home.packages = mkIf cfg.enable (with pkgs; [ config.home.packages = mkIf cfg.enable (with pkgs; [
# Needed for QT_QPA_PLATFORM # Needed for QT_QPA_PLATFORM
qt5.qtwayland qt5.qtwayland

View file

@ -263,5 +263,37 @@
MusicFolder = "/mnt/Stuff/Music"; MusicFolder = "/mnt/Stuff/Music";
}; };
systemd.services.navidrome.serviceConfig.BindReadOnlyPaths = lib.mkAfter [ "/etc" ]; systemd.services.navidrome.serviceConfig.BindReadOnlyPaths = lib.mkAfter [ "/etc" ];
# mpd
services.mpd = {
enable = true;
user = "nki";
startWhenNeeded = true;
extraConfig = ''
audio_output {
type "pipewire"
name "pipewire local"
dsd "yes"
}
'';
};
systemd.services.mpd.environment = {
# https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/609
XDG_RUNTIME_DIR = "/run/user/1000"; # User-id 1000 must match above user. MPD will look inside this directory for the PipeWire socket.
};
sops.secrets."scrobble/lastfm" = { };
sops.secrets."scrobble/listenbrainz" = { };
services.mpdscribble = {
enable = true;
endpoints."last.fm" = {
username = "natsukagami";
passwordFile = config.sops.secrets."scrobble/lastfm".path;
};
endpoints."listenbrainz" = {
username = "natsukagami";
passwordFile = config.sops.secrets."scrobble/listenbrainz".path;
};
};
} }

View file

@ -5,6 +5,9 @@ hosts: ENC[AES256_GCM,data:JIDOL+j8cGa4ymHnAx8FYQr+e5aa2a/iTOQY3w==,iv:GGjoNIFcC
windscribe: windscribe:
privateKey: ENC[AES256_GCM,data:lELNIGkr6i9LbeOdHsWmRf0Qjb7O2oQUxngEGUDEmoK2fN+kb/ZnLVaarpY=,iv:7evXoxVI0MHB2NHCOK9WS2dAueXIQA6ymTMGkRwj5yw=,tag:PQ9hMZ74C0eIbj/nIGf5lg==,type:str] privateKey: ENC[AES256_GCM,data:lELNIGkr6i9LbeOdHsWmRf0Qjb7O2oQUxngEGUDEmoK2fN+kb/ZnLVaarpY=,iv:7evXoxVI0MHB2NHCOK9WS2dAueXIQA6ymTMGkRwj5yw=,tag:PQ9hMZ74C0eIbj/nIGf5lg==,type:str]
presharedKey: ENC[AES256_GCM,data:eZraFKYGNeu0YkIFQ4EnlZU7MkjBkWU5YWmZfDT0x1IvkUwueV7algeC5eo=,iv:TAUzLVnLAI8op3+OKCA2g02Px5i5fySgUV5iuIUGka8=,tag:Bsntn4O6h7+TEvQVLgQc6w==,type:str] presharedKey: ENC[AES256_GCM,data:eZraFKYGNeu0YkIFQ4EnlZU7MkjBkWU5YWmZfDT0x1IvkUwueV7algeC5eo=,iv:TAUzLVnLAI8op3+OKCA2g02Px5i5fySgUV5iuIUGka8=,tag:Bsntn4O6h7+TEvQVLgQc6w==,type:str]
scrobble:
lastfm: ENC[AES256_GCM,data:+3G9zwmAu/B9omG0KUT0b5G+lJ4=,iv:ubrE4A35si9f6+m2sAino4SfOf9F4g2UjtF2Yy9n2e4=,tag:A/e6GECfIZuX2bVGPo9qyA==,type:str]
listenbrainz: ENC[AES256_GCM,data:FNSJnYEQd+LgInmdyqcaAQG6imiJS/OPBEe2fBKQGKBjpCLy,iv:qhloVpcwcGwRDn6vOujgmvelbPl2korhELfyf5BvdjM=,tag:WnLaMUtHsxBaXNTAKwchkQ==,type:str]
sops: sops:
kms: [] kms: []
gcp_kms: [] gcp_kms: []
@ -20,8 +23,8 @@ sops:
aGpXT1JkSTZ5dWZLMUZVNlR4NVUvMjQKRAM+Lsj5gH6WLYX5NPW8Mh6iLq6wIl7E aGpXT1JkSTZ5dWZLMUZVNlR4NVUvMjQKRAM+Lsj5gH6WLYX5NPW8Mh6iLq6wIl7E
0i1ql90F2EGFDii2g1rJLFrsarM3yYWfsaQGcF3BMiJzHwnh5zuEfA== 0i1ql90F2EGFDii2g1rJLFrsarM3yYWfsaQGcF3BMiJzHwnh5zuEfA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2021-10-29T03:34:42Z" lastmodified: "2022-09-16T10:37:15Z"
mac: ENC[AES256_GCM,data:D1wOdPwPaSOXuzz1H/L+zt5tl5tELcq2N/Axr1OfHmp7MZcYc0bwiNURHYovO+19bxcdaqSdReFQ8aWwrRB7nvH9MJEDbryAzhcioeDN2ekTmcmcrBW4ehDjwAT4pr/jYzUQWvyoP1g94wuIcJZiGpDVNelONy6Iy924BJsbw5w=,iv:ISNUShAk8xt70uU1fPQx7cT2V0GQtpUmuvaQEgRJBUA=,tag:UL9o6MJ908bF8VGtvtaYPw==,type:str] mac: ENC[AES256_GCM,data:+YW1Jbs2En9QEbSm994LeKGDQ411mpBz4ZjM0FM/W1S8IQMeMuUZL3Ku8JCjB3u2a6nX4TdqOUGrWSpq5QScgu1avXIdGNPyais2YVTRu0vUoya/X4hOqXykVVgio8LOMcS73oQZQazUmTDYGW5ytbfdtrZo9+gKffzJ2nziOoE=,iv:SCnEb95tCVkCqbccOPCrMrF2Gaz6+esPTRNPD7Zb+M8=,tag:LGDtm+MepZZRFFsJKvFlfw==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.7.1 version: 3.7.3