78 lines
2 KiB
Nix
78 lines
2 KiB
Nix
{ config
|
|
, lib
|
|
, pkgs
|
|
, ...
|
|
}:
|
|
|
|
with lib;
|
|
let
|
|
cfg = config.my.programs.sway;
|
|
in
|
|
{
|
|
options.my.programs.sway.enable = mkEnableOption "sway";
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
hardware.opengl.enable = 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 = lib.mkOptionDefault {
|
|
inherit
|
|
(config.home-manager.users.moritz.wayland.windowManager.sway.config)
|
|
modifier
|
|
;
|
|
"${modifier}+f" = "firefox";
|
|
"${modifier}+e" = "emacsclient -c -a emacs";
|
|
};
|
|
startup = [
|
|
{
|
|
command = "systemctl --user restart waybar";
|
|
always = true;
|
|
}
|
|
{ command = "wallpaper -r"; }
|
|
];
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|