aux-config/modules/home/suites/desktop/sway.nix
kB01 65dbed81a3
Some checks failed
/ Check Nix Flake (push) Has been cancelled
Added Sway-Experiments to Desktop Suite
2025-12-02 01:11:37 +01:00

125 lines
3.5 KiB
Nix

{ config, pkgs, lib, inputs, ... }: let
cfg = config.suites.desktop;
# Keybinds
keybinds = {
mod = "Mod";
focusRight = "${keybinds.mod}+Right";
focusLeft = "${keybinds.mod}+Left";
focusUp = "${keybinds.mod}+Up";
focusDown = "${keybinds.mod}+Down";
moveRight = "${keybinds.mod}+Shift+Right";
moveLeft = "${keybinds.mod}+Shift+Left";
moveUp = "${keybinds.mod}+Shift+Up";
moveDown = "${keybinds.mod}+Shift+Down";
toggleTiling = "${keybinds.mod}+Space";
toggleFullscreen = "${keybinds.mod}+F";
modeResize = "${keybinds.mod}+R"; # Use Arrow-Keys to Resize, Exit using Esc or Enter
switchWS1 = "${keybinds.mod}+1";
switchWS2 = "${keybinds.mod}+2";
switchWS3 = "${keybinds.mod}+3";
switchWS4 = "${keybinds.mod}+4";
switchWS5 = "${keybinds.mod}+5";
nextWS = "${keybinds.mod}+Tab";
previousWS = "${keybinds.mod}+Shift+Tab";
moveToWS1 = "${keybinds.mod}+Shift+1";
moveToWS2 = "${keybinds.mod}+Shift+2";
moveToWS3 = "${keybinds.mod}+Shift+3";
moveToWS4 = "${keybinds.mod}+Shift+4";
moveToWS5 = "${keybinds.mod}+Shift+5";
launcher = "${keybinds.mod}+D";
appLauncher = "${keybinds.mod}+Shift+D";
exit = "${keybinds.mod}+Shift+E";
reloadConfig = "${keybinds.mod}+Shift+C";
close = "${keybinds.mod}+Backspace";
viewScratchpad = "${keybinds.mod}+-";
moveToScratchpad = "${keybinds.mod}+Shift+-";
};
fonts = {
general = "Noto Sans";
symbol = "FontAwesome";
emoji = "Twitter Color Emoji";
size = 10;
sizeSmall = 8;
};
in {
config = lib.mkIf ( cfg.enable && cfg.sway-experiments.enable ) {
# Inspiration and Template: https://git.sr.ht/~hervyqa/swayhome
# Software
# SoundMenu: pwvucontrol
# NetworkMenu: networkmanagerapplet
# Launcher: Wofi
# - Bluetooth: dmenu-bluetooth
# - Emoji: wofi-emoji
# - Power: wofi-power-menu
# - Network: networkmanager_dmenu
# Design
# [WS1-5] 23:25[Stat] [Tray][Vol][Bri][Key][Con][Bat]
# Status: [Privacy] [Keyboard State] Caffeine, Media(mpris)
# Volume: Scroll=Vol, RClick=Mute, LClick=SoundMenu (wireplumber)
# Bright: Scroll=Bri, LClick=Redshift
# Keybrd: Scroll=Bri, Click=Switch (language)
# Bluetooth: LClick=dmenu-bluetooth, RClick=Toggle, MClick=Airplane
# Network: LClick=networkmanager_dmenu, RClick=ToggleWifiEther, MClick=Airplane
# Airplane: LClick=enableNetwork, RClick=enableBluetooth
# Battery: LClick=PowerMode, RClick=Caffeine(idle inhibitor)
# Desktop
wayland.windowManager.sway.enable = true;
# wayland.windowManager.sway.package = null; # Package gets Managed by System
# Lockscreen
programs.swaylock.enable = true;
# programs.swaylock.settings = {
# font = "${fonts.general}";
# font-size = fonts.size;
# disable-caps-lock-text = true;
# ignore-empty-password = true;
# indicator-caps-lock = true;
# indicator-radius = 50;
# indicator-thickness = 10;
# };
# Bar
programs.waybar.enable = true;
# Configuration Template: https://github.com/Alexays/Waybar/blob/master/resources/config.jsonc
# Wiki: https://github.com/Alexays/Waybar/wiki/Module:-Custom:-Examples
programs.waybar.settings.mainBar = {
layer = "bottom";
};
# Launcher
programs.wofi.enable = true;
#programs.wofi.settings = {
# location = "bottom-right";
# allow_markup = true;
# width = 250;
#};
# Theme
#fonts.fontconfig.enable = true;
};
}