dotfiles/modules/desktop/sway/default.nix

74 lines
2.0 KiB
Nix

{ config, lib, pkgs, ... }:
with lib;
let cfg = config.modules.desktop;
in {
config = mkIf (cfg.name == "sway") {
hardware.opengl = {
enable = true;
driSupport = true;
};
environment.loginShellInit = ''
if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then
exec sway
fi
'';
home-manager.users.moritz = {
home.packages = with pkgs; [ wl-clipboard wofi waybar feh ];
programs.waybar = {
enable = true;
systemd.enable = true;
settings = {
mainBar = {
layer = "top";
position = "top";
height = 30;
output = [ "eDP-1" "HDMI-A-1" ];
modules-left = [ "sway/workspaces" "sway/mode" "wlr/taskbar" ];
modules-center = [ "sway/window" "custom/hello-from-waybar" ];
modules-right =
[ "mpd" "custom/mymodule#with-css-id" "temperature" ];
"sway/workspaces" = { all-outputs = true; };
};
};
};
wayland.windowManager.sway = {
enable = true;
config = {
input = {
"*" = { xkb_layout = "de"; };
"type:touchpad" = {
natural_scroll = "enabled";
middle_emulation = "enabled";
};
};
terminal = "kitty";
menu = "wofi --show drun";
modifier = "Mod4";
gaps = {
inner = 5;
outer = 3;
smartBorders = "on";
};
bars = [ ];
keybindings = let
modifier =
config.home-manager.users.moritz.wayland.windowManager.sway.config.modifier;
in lib.mkOptionDefault {
"${modifier}+f" = "firefox";
"${modifier}+e" = "emacsclient -c -a emacs";
};
startup = [
{
command = "systemctl --user restart waybar";
always = true;
}
{ command = "synology-drive"; }
{ command = "randomWallpaper"; }
];
};
};
};
};
}