Files
panacea/modules/gui.nix

105 lines
1.9 KiB
Nix

{
config,
lib,
pkgs,
...
}:
with pkgs;
{
# Display manager
services.greetd = {
enable = true;
settings = rec {
initial_session = {
command = "${sway}/bin/sway";
user = "coolneng";
};
default_session = initial_session;
};
};
# Window manager
programs.sway = {
enable = true;
extraPackages = [
xwayland
swaylock
swayidle
swaybg
rofi
waybar
cliphist
wl-clipboard
grim
slurp
swayimg
kanshi
kitty
qt5.qtwayland
glib
udiskie
brightnessctl
];
wrapperFeatures.gtk = true;
};
# Session variables
environment.sessionVariables = rec {
MOZ_ENABLE_WAYLAND = "1";
MOZ_USE_XINPUT2 = "1";
GRIM_DEFAULT_DIR = "/home/coolneng/Photos/Screenshots";
_JAVA_AWT_WM_NONREPARENTING = "1";
SDL_VIDEODRIVER = "wayland";
XDG_SESSION_TYPE = "wayland";
XDG_CURRENT_DESKTOP = "sway";
NVIM_LISTEN_ADDRESS = "/tmp/nvimsocket";
GIT_CONFIG_NOSYSTEM = "true";
SYSTEMD_LESS = "FRSMK";
WLR_RENDERER = "vulkan";
};
# Blue light filter
location.provider = "geoclue2";
services.redshift = {
enable = true;
package = gammastep;
executable = "/bin/gammastep";
temperature = {
day = 6500;
night = 5300;
};
};
# GPG agent
programs.gnupg.agent = {
enable = true;
pinentryPackage = pinentry-gnome3;
};
# Tmux
programs.tmux = {
enable = true;
historyLimit = 5000;
keyMode = "vi";
shortcut = "x";
terminal = "screen-256";
baseIndex = 1;
};
# Integrate pass with the browser
programs.browserpass.enable = true;
programs.firefox.enable = true;
# Enable WebRTC screensharing
xdg.portal = {
enable = true;
wlr.enable = true;
};
# Allow dbus to communicate with storage devices
services.udisks2.enable = true;
}