panacea/modules/gui.nix

112 lines
2.2 KiB
Nix

{ config, lib, pkgs, ... }:
with pkgs;
let
waybar-audio-patch = waybar.overrideAttrs (old: rec {
src = fetchFromGitHub {
owner = "Alexays";
repo = "Waybar";
rev = "ebdf575d45c0e4f8c6f6ce484fbbf5375ed8dbba";
sha256 = "WTdy9zGhidk56CjmSuFDigfa64O9ZNd5GpfpCVrL8i0=";
};
});
in {
# Display manager
services.xserver.enable = true;
services.xserver.displayManager = {
defaultSession = "sway";
autoLogin = {
enable = true;
user = "coolneng";
};
lightdm = {
enable = true;
greeter.enable = false;
};
};
# Window manager
programs.sway = {
enable = true;
extraPackages = [
xwayland
swaylock
swayidle
swaybg
rofi-wayland
waybar-audio-patch
clipman
wl-clipboard
grim
slurp
imv
kanshi
kitty
qt5.qtwayland
glib
];
extraSessionCommands = ''
export MOZ_ENABLE_WAYLAND=1
export MOZ_USE_XINPUT2=1
export GRIM_DEFAULT_DIR=/home/coolneng/Photos/Screenshots
export _JAVA_AWT_WM_NONREPARENTING=1
export SDL_VIDEODRIVER=wayland
export XDG_SESSION_TYPE=wayland
export XDG_CURRENT_DESKTOP=sway
export NVIM_LISTEN_ADDRESS=/tmp/nvimsocket
export GIT_CONFIG_NOSYSTEM=true
export SYSTEMD_LESS=FRSMK
'';
wrapperFeatures.gtk = true;
};
# Backlight
programs.light.enable = true;
# Blue light filter
location.provider = "geoclue2";
services.redshift = {
enable = true;
package = gammastep;
executable = "/bin/gammastep";
temperature = {
day = 6500;
night = 5300;
};
};
# Bar
programs.waybar.enable = true;
# GPG agent
programs.gnupg.agent = {
enable = true;
pinentryFlavor = "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;
# Enable WebRTC screensharing
xdg.portal = {
enable = true;
wlr.enable = true;
};
# Allow dbus to communicate with storage devices
services.udisks2.enable = true;
}