From 2baa2df90266559c269100d24baad2ebb2b3a193 Mon Sep 17 00:00:00 2001 From: Frantisek Bohacek Date: Sun, 8 Oct 2023 21:05:45 +0200 Subject: [PATCH] feat: use sequence detector + my mpris-ctl for mpris --- hosts/home.nix | 2 - .../config/sequence-detector.config.json | 12 ++-- modules/desktop/qtile/home.nix | 55 ++++++++++++++++++- 3 files changed, 58 insertions(+), 11 deletions(-) diff --git a/hosts/home.nix b/hosts/home.nix index 27c1e0c..128f388 100644 --- a/hosts/home.nix +++ b/hosts/home.nix @@ -20,8 +20,6 @@ (import ../modules/editors/home.nix) ++ (import ../modules/services/home.nix); - services.mpris-proxy.enable = true; - nixpkgs.config.allowUnfree = true; xdg = { diff --git a/modules/desktop/qtile/config/sequence-detector.config.json b/modules/desktop/qtile/config/sequence-detector.config.json index ba126d6..c60a02d 100644 --- a/modules/desktop/qtile/config/sequence-detector.config.json +++ b/modules/desktop/qtile/config/sequence-detector.config.json @@ -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" } ] } ] diff --git a/modules/desktop/qtile/home.nix b/modules/desktop/qtile/home.nix index da62a00..a446b12 100644 --- a/modules/desktop/qtile/home.nix +++ b/modules/desktop/qtile/home.nix @@ -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; -- 2.48.1