nix/home/programs/sway.nix
2024-01-08 21:53:43 +00:00

69 lines
1.3 KiB
Nix

{
pkgs,
config,
...
}: let
term = "${config.programs.terminal}/bin/${config.programs.terminal.pname}";
modKeyName = config.windowManager.modifierKey;
modifier =
if modKeyName == "SUPER"
then "Mod4"
else if modKeyName == "ALT"
then "Mod1"
else null;
in {
imports = [
(import ./swaylock.nix)
(import ./swayidle.nix)
(import ./waybar.nix)
];
xdg.portal = {
enable = true;
configPackages = [pkgs.sway];
extraPortals = [pkgs.xdg-desktop-portal-wlr pkgs.xdg-desktop-portal-gtk];
};
wayland.windowManager.sway = {
enable = true;
config = {
inherit modifier;
bars = [];
};
};
services.swayidle = {
enable = true;
systemdTarget = "graphical-session.target";
events = [
{
event = "before-sleep";
command = "${pkgs.swaylock-effects}/bin/swaylock";
}
{
event = "lock";
command = "${pkgs.swaylock-effects}/bin/swaylock";
}
];
timeouts = [
{
timeout = 300;
command = "${pkgs.swaylock-effects}/bin/swaylock -f";
}
{
timeout = 600;
command = "systemctl suspend";
}
];
};
services.mako.enable = true;
programs.waybar = {
enable = true;
settings = {
mainBar = {
modules-left = ["sway/workspaces" "sway/window"];
};
};
};
}