Compare commits

..

No commits in common. "269bda650d21c26a7ceda3a451d218a8be56647d" and "962f1cf7969a604d4ea6bc951a958b70fe3d79ee" have entirely different histories.

7 changed files with 31 additions and 100 deletions

1
.gitignore vendored
View file

@ -1,2 +1 @@
result/
target/

Binary file not shown.

Binary file not shown.

View file

@ -1,58 +0,0 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.pipewire-controller;
pipewire-controller =
let
mpv = lib.getExe pkgs.mpv;
pamixer = lib.getExe pkgs.pamixer;
in
pkgs.writers.writeRustBin "pipewire-controller" { } ''
use std::{process::Command, str};
const MUTE_AUDIO: &str = "${../audio/discord-mute.mp3}";
const UNMUTE_AUDIO: &str = "${../audio/discord-unmute.mp3}";
fn main() {
let mute_status = Command::new("${pamixer}")
.args(["--default-source", "--get-mute"])
.output()
.expect("Unable to get mute status from pamixer")
.stdout;
let mute_status = str::from_utf8(&mute_status[..]).expect("pamixer output wasn't a string");
if mute_status == "false" {
Command::new("${pamixer}")
.args(["--default-source", "--mute"])
.output()
.expect("Unable to mute via pamixer");
Command::new("${mpv}")
.args(["--no-video", MUTE_AUDIO])
.output()
.expect("Unable to play audio via mpv");
} else {
Command::new("${pamixer}")
.args(["--default-source", "--unmute"])
.output()
.expect("Unable to mute via pamixer");
Command::new("${mpv}")
.args(["--no-video", UNMUTE_AUDIO])
.output()
.expect("Unable to play audio via mpv");
}
}
'';
in
{
options.snowhawk.pipewire-controller = {
enable = lib.mkEnableOption "pipewire-controller home-manager module";
};
config = lib.mkIf cfg.enable {
home.packages = [ pipewire-controller ];
};
}

View file

@ -2,6 +2,14 @@
let
cfg = config.snowhawk.playerctl;
keybindingsStr = lib.concatStringsSep "\n" (lib.mapAttrsToList
(hotkey: command:
lib.optionalString (command != null) ''
${hotkey}
${command}
'')
config.services.sxhkd.keybindings);
in
{
options.snowhawk.playerctl = {
@ -19,14 +27,30 @@ in
playerctl
];
snowhawk.sxhkd.enable = lib.mkDefault true;
systemd.user.services.sxhkd = {
Unit = {
Description = "sxhkd service";
PartOf = [ "graphical-session.target" ];
};
Service = {
Type = "exec";
ExecStart = "${pkgs.sxhkd}/bin/sxhkd";
};
Install.WantedBy = [ "graphical-session.target" ];
};
services.sxhkd.keybindings =
let playerctl = "${pkgs.playerctl}/bin/playerctl";
in {
xdg.configFile."sxhkd/sxhkdrc".text = keybindingsStr;
services.sxhkd =
let
playerctl = "${pkgs.playerctl}/bin/playerctl";
in
{
keybindings = {
"XF86AudioPlay" = "${playerctl} play-pause";
"XF86AudioPrev" = "${playerctl} previous";
"XF86AudioNext" = "${playerctl} next";
};
};
};
}

View file

@ -1,33 +0,0 @@
{ config, lib, pkgs, ... }:
let
cfg = config.snowhawk.sxhkd;
in
{
options.snowhawk.sxhkd = {
enable = lib.mkEnableOption "custom sxhkd home-manager module";
};
config = lib.mkIf cfg.enable {
systemd.user.services.sxhkd = {
Unit = {
Description = "sxhkd service";
PartOf = [ "graphical-session.target" ];
};
Service = {
Type = "exec";
ExecStart = "${pkgs.sxhkd}/bin/sxhkd";
};
Install.WantedBy = [ "graphical-session.target" ];
};
xdg.configFile."sxhkd/sxhkdrc".text =
lib.concatStringsSep "\n" (lib.mapAttrsToList
(hotkey: command:
lib.optionalString (command != null) ''
${hotkey}
${command}
'')
config.services.sxhkd.keybindings);
};
}

View file

@ -14,7 +14,6 @@
playerctl.enable = true;
alacritty.enable = true;
defaultPrograms.enable = true;
pipewire-controller.enable = true;
# Games
xivlauncher.enable = true;