dotfiles/machines/common/linux/xsession.nix

119 lines
3.2 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
];
};
};
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
kanata = {
enable = true;
keyboards.keychron-k6 = {
devices = ["/dev/input/by-id/usb-Keychron_Keychron_K6-event-kbd"];
config = ''
(defsrc
esc 1 2 3 4 5 6 7 8 9 0 - = bspc
tab q w e r t y u i o p [ ] \
caps a s d f g h j k l ; ' ret
lsft z x c v b n m , . / rsft
lctl lmet lalt spc ralt rmet rctl)
(deflayer qwerty
@sesc 1 2 3 4 5 6 7 8 9 0 - = bspc
tab q w e r t y u i o p [ ] \
caps a s d f g h j k l ; ' ret
lsft z x c v b n m , . / rsft
lctl lmet lalt spc ralt rmet rctl)
(defalias
sesc (fork esc grv (lsft rsft))
)
'';
};
};
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";
};
};
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;
};
};
};
}