52 lines
1.9 KiB
Nix
52 lines
1.9 KiB
Nix
{ pkgs, lib, config, ... }:
|
|
|
|
let
|
|
swayosd = lib.getExe' config.services.swayosd.package "swayosd-client";
|
|
pactl = lib.getExe' pkgs.pulseaudio "pactl";
|
|
grim = lib.getExe' pkgs.grim "grim";
|
|
slurp = lib.getExe' pkgs.slurp "slurp";
|
|
clipboard-copy = lib.getExe' pkgs.wl-clipboard "wl-copy";
|
|
commonOptions = import ./common-i3.nix rec {
|
|
inherit config lib pkgs;
|
|
menu = lib.getExe' pkgs.bemenu "bemenu-run";
|
|
terminal =
|
|
if config.programs.kitty.enable then
|
|
lib.getExe' config.programs.kitty.package "kitty"
|
|
else
|
|
lib.getExe' pkgs.foot "foot";
|
|
};
|
|
in
|
|
{
|
|
options.custom = with lib; {
|
|
wm = {
|
|
sway = {
|
|
enable = mkEnableOption "Sway WM";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf config.custom.wm.sway.enable {
|
|
services.swayosd = {
|
|
enable = true;
|
|
};
|
|
wayland.windowManager.sway = {
|
|
enable = true;
|
|
extraConfig = commonOptions.extraConfig;
|
|
config = lib.mkMerge ([
|
|
commonOptions.config
|
|
{
|
|
keybindings = {
|
|
"XF86AudioRaiseVolume" = "exec --no-startup-id '${swayosd} --output-volume=raise'";
|
|
"XF86AudioLowerVolume" = "exec --no-startup-id '${swayosd} --output-volume=lower'";
|
|
"XF86AudioMute" = "exec --no-startup-id '${swayosd} --output-volume=mute-toggle";
|
|
"XF86AudioMicMute" = "exec --no-startup-id '${pactl} set-source-mute @DEFAULT_SOURCE@ toggle'";
|
|
"${commonOptions.modifier}+o" = "exec --no-startup-id ${grim} -g \"\$(${slurp})\" ~/pictures/screenshots/$(date +%Y-%m-%d-%H-%M-%S).png";
|
|
"${commonOptions.modifier}+Shift+o" = "exec --no-startup-id ${grim} -g \"\$(${slurp})\" -t png - | ${clipboard-copy}";
|
|
"PRINT" = "exec --no-startup-id ${grim} -g \"\$(${slurp})\" -t png - | ${clipboard-copy}";
|
|
};
|
|
}
|
|
]);
|
|
};
|
|
stylix.targets.sway.enable = true;
|
|
};
|
|
}
|