panacea/modules/gui.nix

124 lines
2.3 KiB
Nix

{ config, lib, pkgs, ... }:
let tmux_config = builtins.readFile /home/coolneng/.tmux.conf;
in {
# Display manager
services.xserver.enable = true;
services.xserver.displayManager = {
defaultSession = "sway";
autoLogin = {
enable = true;
user = "coolneng";
};
lightdm = {
enable = true;
greeter.package = pkgs.lightdm_gtk_greeter;
};
};
# Window manager
programs.sway = {
enable = true;
extraPackages = with pkgs; [
xwayland
swaylock
swayidle
swaybg
rofi
waybar
clipman
wl-clipboard
grim
slurp
light
imv
kanshi
kitty
];
extraSessionCommands = ''
export MOZ_ENABLE_WAYLAND=1
export MOZ_DBUS_REMOTE=1
export GRIM_DEFAULT_DIR=/home/coolneng/Photos/Screenshots
export _JAVA_AWT_WM_NONREPARENTING=1
export QT_QPA_PLATFORM=wayland
export QT_WAYLAND_DISABLE_WINDOWDECORATION="1"
export SDL_VIDEODRIVER=wayland
export GTK_THEME=Adapta-Eta
'';
};
# Backlight
programs.light.enable = true;
# Blue light filter
location = {
latitude = 35.89;
longitude = -5.32;
provider = "manual";
};
services.redshift = {
package = pkgs.redshift-wlr;
enable = true;
temperature = {
day = 6500;
night = 5300;
};
};
# Bar
programs.waybar.enable = true;
# GPG agent
programs.gnupg.agent = {
enable = true;
pinentryFlavor = "gtk2";
};
# Tmux
programs.tmux = {
enable = true;
historyLimit = 5000;
keyMode = "vi";
shortcut = "x";
terminal = "screen-256";
baseIndex = 1;
extraConfig = tmux_config;
};
# Automount external storage
systemd.mounts = [
# USB
{
what = "/dev/sdb1";
where = "/usb";
mountConfig = { TimeoutSec = "5"; };
}
# SD card
{
what = "/dev/mmcblk0p1";
where = "/sdcard";
mountConfig = { TimeoutSec = "5"; };
}
];
systemd.automounts = [
# USB
{
where = "/usb";
automountConfig = { TimeoutIdleSec = "5"; };
wantedBy = [ "default.target" ];
}
# SD card
{
where = "/sdcard";
automountConfig = { TimeoutIdleSec = "5"; };
wantedBy = [ "default.target" ];
}
];
# Integrate pass with the browser
programs.browserpass.enable = true;
}