dotfiles/machines/common/linux/xsession.nix

108 lines
2.4 KiB
Nix
Raw Normal View History

{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# file management
p7zip
unzip
zip
gnome.file-roller
# thumbnails
webp-pixbuf-loader
ffmpegthumbnailer
];
programs = {
dconf.enable = true;
noisetorch.enable = true;
thunar = {
enable = true;
plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
];
};
};
2023-05-18 15:19:31 +02:00
programs.sway = {
enable = true;
extraPackages = with pkgs; [
foot
swaylock-effects
swayidle
];
};
services = {
# mounting
gvfs.enable = true;
udisks2.enable = true;
devmon.enable = true;
2023-05-17 13:25:59 +02:00
greetd = let
sway-run = pkgs.writeShellScript "sway-run" ''
# session
export XDG_SESSION_TYPE=wayland
export XDG_SESSION_DESKTOP=sway
export XDG_CURRENT_DESKTOP=sway
# wayland
export NIXOS_OZONE_WL=1
export MOZ_ENABLE_WAYLAND=1
export QT_QPA_PLATFORM=wayland
export SDL_VIDEODRIVER=wayland
export _JAVA_AWT_WM_NONREPARENTING=1
exec systemd-cat --identifier=sway sway $@
'';
in {
2023-03-28 12:59:48 +02:00
enable = true;
settings = {
2023-05-17 13:25:59 +02:00
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time -r --cmd ${sway-run}";
2023-03-28 12:59:48 +02:00
user = "greeter";
};
};
};
# thumbnails
tumbler.enable = true;
gnome.gnome-keyring.enable = true;
2023-03-26 00:49:05 +01:00
xserver = {
enable = true;
desktopManager.xterm.enable = false;
2023-03-28 12:59:48 +02:00
displayManager.startx.enable = true;
libinput.enable = true;
windowManager.i3 = {
enable = true;
2023-04-27 09:30:26 +02:00
package = pkgs.i3;
};
xkbOptions = "caps:ctrl_modifier";
};
};
2023-05-18 15:19:31 +02:00
# needed for gnome3 pinentry
services.dbus.packages = [pkgs.gcr];
xdg.portal.enable = true;
xdg.portal.wlr.enable = true;
security.polkit.enable = true;
systemd = {
packages = [pkgs.polkit_gnome];
user.services.polkit-gnome-authentication-agent-1 = {
unitConfig = {
Description = "polkit-gnome-authentication-agent-1";
Wants = ["graphical-session.target"];
WantedBy = ["graphical-session.target"];
After = ["graphical-session.target"];
};
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
}