102 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config, pkgs, ... }:
 | 
						|
let
 | 
						|
  inherit (config.my)
 | 
						|
    key
 | 
						|
    accent
 | 
						|
    font
 | 
						|
    theme
 | 
						|
    ;
 | 
						|
  inherit (theme) color;
 | 
						|
  inherit (pkgs) lib;
 | 
						|
 | 
						|
  mod = "Mod4";
 | 
						|
  menu = "wlauncher";
 | 
						|
  terminal = "alacritty";
 | 
						|
 | 
						|
  locked = lib.mapAttrs' (k: v: lib.nameValuePair "--locked ${k}" v);
 | 
						|
  to-code = lib.mapAttrs' (k: v: lib.nameValuePair "--to-code ${k}" v);
 | 
						|
  quit-mode = lib.mapAttrs (k: v: "${v}; mode default");
 | 
						|
  playerctl = "exec ${pkgs.playerctl}/bin/playerctl";
 | 
						|
 | 
						|
  bind_group = opts: binds: lib.pipe binds opts;
 | 
						|
in
 | 
						|
{
 | 
						|
  wayland.windowManager.sway.config.modes = {
 | 
						|
    audio =
 | 
						|
      (bind_group
 | 
						|
        [
 | 
						|
          to-code
 | 
						|
          locked
 | 
						|
        ]
 | 
						|
        {
 | 
						|
          ${key.tabR} = "exec volumesh -i 10";
 | 
						|
          ${key.tabL} = "exec volumesh -d 10";
 | 
						|
          ${key.right} = "exec mpc next";
 | 
						|
          ${key.left} = "exec mpc prev";
 | 
						|
          ${key.up} = "exec volumesh --mpd -i 10";
 | 
						|
          ${key.down} = "exec volumesh --mpd -d 10";
 | 
						|
        }
 | 
						|
      )
 | 
						|
      // (bind_group
 | 
						|
        [
 | 
						|
          locked
 | 
						|
          quit-mode
 | 
						|
        ]
 | 
						|
        {
 | 
						|
          "space" = "exec mpc toggle";
 | 
						|
          "escape" = "";
 | 
						|
          "q" = "";
 | 
						|
        }
 | 
						|
      )
 | 
						|
      // (bind_group [ quit-mode ] {
 | 
						|
        "m" = "exec volumesh -t";
 | 
						|
        "s" = "exec ${pkgs.pulse_sink}/bin/pulse_sink";
 | 
						|
 | 
						|
        "d" = "exec ${pkgs.musmenu}/bin/musmenu delete";
 | 
						|
        "f" = "exec ${pkgs.musmenu}/bin/musmenu search";
 | 
						|
 | 
						|
        "a" = "exec ${pkgs.dzadd}/bin/dzadd";
 | 
						|
 | 
						|
        "Shift+y" = "exec ${pkgs.musmenu}/bin/musmenu yank";
 | 
						|
        "Ctrl+a" = "exec ${pkgs.musmenu}/bin/musmenu padd";
 | 
						|
        "Ctrl+s" = "exec ${pkgs.musmenu}/bin/musmenu psave";
 | 
						|
        "Ctrl+o" = "exec ${pkgs.musmenu}/bin/musmenu pload";
 | 
						|
        "Ctrl+d" = "exec ${pkgs.musmenu}/bin/musmenu pdelete";
 | 
						|
      })
 | 
						|
      // {
 | 
						|
        "p" = "mode playerctl";
 | 
						|
        "Ctrl+c" = "exec musmenu pclear";
 | 
						|
      };
 | 
						|
 | 
						|
    playerctl =
 | 
						|
      (bind_group
 | 
						|
        [
 | 
						|
          to-code
 | 
						|
          locked
 | 
						|
        ]
 | 
						|
        {
 | 
						|
          ${key.left} = "${playerctl} previous";
 | 
						|
          ${key.right} = "${playerctl} next";
 | 
						|
          ${key.up} = "${playerctl} volume 10+";
 | 
						|
          ${key.down} = "${playerctl} volume 10-";
 | 
						|
          ${key.tabR} = "${playerctl} volume 10+";
 | 
						|
          ${key.tabL} = "${playerctl} volume 10-";
 | 
						|
        }
 | 
						|
      )
 | 
						|
      // (bind_group
 | 
						|
        [
 | 
						|
          to-code
 | 
						|
          quit-mode
 | 
						|
        ]
 | 
						|
        {
 | 
						|
          "space" = "${playerctl} play-pause";
 | 
						|
          "escape" = "";
 | 
						|
          "q" = "";
 | 
						|
        }
 | 
						|
      );
 | 
						|
 | 
						|
    passthrough = {
 | 
						|
      "${mod}+escape" = "mode default;exec notify-send 'Passthrough off'";
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |