88 lines
2.2 KiB
Nix
88 lines
2.2 KiB
Nix
|
{ config
|
||
|
, lib
|
||
|
, pkgs
|
||
|
, ...
|
||
|
}:
|
||
|
|
||
|
with lib;
|
||
|
let
|
||
|
cfg = config.my.programs.sway;
|
||
|
in
|
||
|
{
|
||
|
options.my.programs.sway = {
|
||
|
enable = mkOption {
|
||
|
default = false;
|
||
|
type = types.bool;
|
||
|
example = true;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config = lib.mkIf cfg.enable {
|
||
|
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 = 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 = "synology-drive"; }
|
||
|
{ command = "randomWallpaper"; }
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|