@@ 20,8 20,6 @@
(import ../modules/editors/home.nix) ++
(import ../modules/services/home.nix);
- services.mpris-proxy.enable = true;
-
nixpkgs.config.allowUnfree = true;
xdg = {
@@ 4,14 4,14 @@
{
"group_id": "mpris",
"sequences": [
- { "keys": ["next"], "action": "playerctl next" },
- { "keys": ["prev"], "action": "playerctl previous" },
- { "keys": ["play"], "action": "playerctl play" },
- { "keys": ["pause"], "action": "playerctl pause" },
+ { "keys": ["next"], "action": "mpris-ctl next" },
+ { "keys": ["prev"], "action": "mpris-ctl prev" },
+ { "keys": ["play"], "action": "mpris-ctl play" },
+ { "keys": ["pause"], "action": "mpris-ctl pause" },
{ "keys": ["volup"], "action": "amixer set Master 10%+ unmute" },
{ "keys": ["voldown"], "action": "amixer set Master 10%- unmute" },
- { "keys": ["next", "next"], "action": "playerctl --player=firefox play-pause" },
- { "keys": ["next", "prev"], "action": "playerctl --player=spotify play-pause" }
+ { "keys": ["next", "next"], "action": "mpris-ctl --player=firefox toggle" },
+ { "keys": ["next", "prev"], "action": "mpris-ctl --player=spotify toggle" }
]
}
]
@@ 8,12 8,46 @@ let
hash = "sha256-YJ7U/G9EOGaf25zqTAMMGK0A6dY0wmtcpesp3d2uzTk=";
};
+ mpris-ctl-src = pkgs.fetchFromGitHub {
+ owner = "Rutherther";
+ repo = "mpris-ctl";
+ rev = "55b489ee7e609e7c126bab0a00c039a7096d24c1";
+ hash = "sha256-wBjhyhRWQ1a3/Ekr3CSETQE0Der/1XLy1FVCpOsHAoA=";
+ };
+
sequence-detector-pkg = pkgs.rustPlatform.buildRustPackage {
pname = "sequence-detector";
version = "0.1";
src = sequence-detector-src;
cargoHash = "sha256-7S8TXqtKWR4utBeUe9Q7RrmHgJg5lqkLdmo9b+MTRGg=";
- hash = "sha256-7S8TXqtKWR4utBeUe9Q7RrmHgJg5lqkLdmo9b+MTRGg=";
+ };
+
+ mpris-ctl-cli = pkgs.rustPlatform.buildRustPackage {
+ pname = "mpris-ctl-cli";
+ version = "0.1";
+ src = mpris-ctl-src + "/cli";
+ nativeBuildInputs = [
+ pkgs.dbus
+ pkgs.pkg-config
+ ];
+ propagatedBuildInputs = [
+ pkgs.dbus
+ ];
+ cargoHash = "sha256-4lwapbgaVFuZQKVlKTaxSwcXPCaqw0cAwjpY6g7Vr1g=";
+ };
+
+ mpris-ctl-daemon = pkgs.rustPlatform.buildRustPackage {
+ pname = "mpris-ctl-daemon";
+ version = "0.1";
+ src = mpris-ctl-src + "/daemon";
+ nativeBuildInputs = [
+ pkgs.pkg-config
+ pkgs.dbus
+ ];
+ propagatedBuildInputs = [
+ pkgs.dbus
+ ];
+ cargoHash = "sha256-DiI7+k1cxAeZ0JsFadk51THwWpJlC+Y5pH785rGQjYM=";
};
in {
# services.udev.extraRules =
@@ 23,11 57,26 @@ in {
};
home.packages = with pkgs; [
- playerctl
+ mpris-ctl-cli
+ mpris-ctl-daemon
sequence-detector-pkg
];
- services.playerctld.enable = true;
+ systemd.user.services = {
+ mpris-ctld = {
+ Unit = {
+ Description = "Daemon for mpris-ctl cli, that will keep track of last playing media";
+ };
+
+ Install = {
+ WantedBy = [ "default.target" ];
+ };
+
+ Service = {
+ ExecStart = "${mpris-ctl-daemon}/bin/mpris-ctld";
+ };
+ };
+ };
programs.autorandr = {
enable = true;