106 lines
2.7 KiB
Nix
106 lines
2.7 KiB
Nix
{user}: {
|
||
lib,
|
||
pkgs,
|
||
config,
|
||
...
|
||
}: {
|
||
services.greetd = {
|
||
enable = true;
|
||
settings = rec {
|
||
sway_session = {
|
||
command = "sway";
|
||
user = user;
|
||
};
|
||
default_session = sway_session;
|
||
};
|
||
};
|
||
|
||
home-manager.users.${user}.imports = [
|
||
(import ./home/swaylock.nix)
|
||
{
|
||
xdg.portal = {
|
||
enable = true;
|
||
configPackages = [pkgs.sway];
|
||
extraPortals = [pkgs.xdg-desktop-portal-sway pkgs.xdg-desktop-portal-gtk];
|
||
};
|
||
|
||
wayland.windowManager.sway = {
|
||
enable = true;
|
||
};
|
||
|
||
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 = {
|
||
layer = "top";
|
||
position = "top";
|
||
height = 36;
|
||
modules-left = ["sway/workspaces" "sway/window"];
|
||
modules-right = ["mpris" "pulseaudio" "clock" "tray" "battery"];
|
||
clock = {
|
||
format = "📅 {:%a %b-%d %I:%M %p}";
|
||
};
|
||
pulseaudio = {
|
||
format-muted = "🔇 {volume}";
|
||
format = "{icon} {volume}";
|
||
format-icons.default = ["🔈" "🔉" "🔊"];
|
||
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
|
||
};
|
||
mpris = {
|
||
format = "{player_icon} {artist} - {title}";
|
||
format-paused = "{status_icon} {player_icon} {artist} - {title}";
|
||
player-icons = {
|
||
default = "▶️";
|
||
mpd = "🎵";
|
||
kdeconnect = "☎️";
|
||
};
|
||
status-icons = {
|
||
paused = "⏸️";
|
||
};
|
||
};
|
||
battery = {
|
||
format = "{icon} {capacity}%";
|
||
format-icons = ["🤏" "🪫" "🔋" "🔋"];
|
||
format-charging = "🔌 {capacity}%";
|
||
states = {
|
||
warning = 30;
|
||
critical = 15;
|
||
};
|
||
};
|
||
};
|
||
};
|
||
systemd = {
|
||
enable = true;
|
||
target = "graphical-session.target";
|
||
};
|
||
};
|
||
}
|
||
];
|
||
}
|