pełna konfiguracja noctalia i czystka waybar, swaync, wlogout i skryptów

This commit is contained in:
2026-02-02 21:23:05 +01:00
parent 80d7fc08cc
commit e5b5d68808
117 changed files with 1041 additions and 6119 deletions

View File

@@ -1,20 +0,0 @@
_: {
wayland.windowManager.hyprland.settings.animations = {
enabled = true;
bezier = [
"wind, -1.05, 0.9, 0.1, 1.05"
"winIn, -1.1, 1.1, 0.1, 1.1"
"winOut, -1.3, -0.3, 0, 1"
"liner, 0, 1, 1, 1"
];
animation = [
"windows, 0, 6, wind, slide"
"windowsIn, 0, 6, winIn, slide"
"windowsOut, 0, 5, winOut, slide"
"windowsMove, 0, 5, wind, slide"
"border, 0, 1, liner"
"fade, 0, 10, default"
"workspaces, 0, 5, wind"
];
};
}

View File

@@ -1,22 +0,0 @@
_: {
# name "Dynamic"
wayland.windowManager.hyprland.settings.animations = {
enabled = true;
bezier = [
"wind, 0.05, 0.9, 0.1, 1.05"
"winIn, 0.1, 1.1, 0.1, 1.1"
"winOut, 0.3, -0.3, 0, 1"
"liner, 1, 1, 1, 1"
];
animation = [
"windows, 1, 6, wind, slide"
"windowsIn, 1, 6, winIn, slide"
"windowsOut, 1, 5, winOut, slide"
"windowsMove, 1, 5, wind, slide"
"border, 1, 1, liner"
"borderangle, 1, 30, liner, loop"
"fade, 1, 10, default"
"workspaces, 1, 5, wind"
];
};
}

View File

@@ -1,21 +0,0 @@
_: {
# name "moving"
wayland.windowManager.hyprland.settings.animations = {
enabled = true;
bezier = [
"overshot, 0.05, 0.9, 0.1, 1.05"
"smoothOut, 0.5, 0, 0.99, 0.99"
"smoothIn, 0.5, -0.5, 0.68, 1.5"
];
animation = [
"windows, 1, 5, overshot, slide"
"windowsOut, 1, 3, smoothOut"
"windowsIn, 1, 3, smoothOut"
"windowsMove, 1, 4, smoothIn, slide"
"border, 1, 5, default"
"fade, 1, 5, smoothIn"
"fadeDim, 1, 5, smoothIn"
"workspaces, 1, 6, default"
];
};
}

View File

@@ -1,5 +1,4 @@
_: {
# Name: END-4
wayland.windowManager.hyprland.settings.animations = {
enabled = true;
bezier = [

View File

@@ -1,179 +1,160 @@
{
host,
lib,
username,
...
}: let
inherit (import ../../../hosts/${host}/variables.nix) browser terminal;
desktopEntriesPath = "/home/${username}/.local/state/home-manager/gcroots/current-home/home-path/share/applications/";
mainBinds = [
"SUPER, A, exec, anki #\"Flashcard learning application\""
"SUPER, B, exec, bitwarden #\"Password manager\""
"SUPER, C, exec, chromium #\"Ungoogled Chromium\""
"SUPER, D, exec, vesktop #\"Discord client\""
"SUPER, E, exec, noctalia-shell ipc call launcher emoji #\"Emoji picker\""
"SUPER, Escape, exec, noctalia-shell ipc call lockScreen lock #\"Lock the screen\""
"SUPER, G, exec, affinity-v3 #\"Graphics editor\""
"SUPER, I, exec, iotas #\"Note-taking app\""
"SUPER, J, exec, Jan #\"Local AI chat interface\""
"SUPER, K, exec, galculator #\"Scientific calculator\""
"SUPER, L, exec, logseq #\"Knowledge management tool\""
"SUPER, M, exec, plexamp #\"Music player for Plex\""
"SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop #\"GarandCloud client\""
"SUPER, O, exec, onlyoffice-desktopeditors #\"Office suite\""
"SUPER, P, exec, plex-desktop #\"Plex media player\""
"SUPER, Return, exec, kitty #\"Kitty terminal\""
"SUPER, S, exec, steam #\"Steam Game launcher\""
"SUPER, T, exec, thunar #\"File manager\""
"SUPER, V, exec, codium #\"VS Codium\""
"SUPER, W, exec, librewolf #\"Main Web browser (Librewolf)\""
"SUPER, Z, exec, zeditor #\"Zed IDE\""
];
shiftBinds = [
"SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop #\"Claude AI chat\""
"SUPER SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop #\"ChatGPT AI chat\""
"SUPER SHIFT, K, exec, noctalia-shell ipc call plugin:keybind-cheatsheet toggle #\"Toggle keybind cheatsheet\""
"SUPER SHIFT, M, exec, dex ${desktopEntriesPath}/messenger.desktop #\"Facebook Messenger client\""
"SUPER SHIFT, N, exec, nextcloud #\"Nextcloud desktop sync client\""
"SUPER SHIFT, O, exec, obs #\"Open Broadcaster Software\""
"SUPER SHIFT, P, exec, noctalia-shell ipc call volume togglePanel #\"Toggle volume control panel\""
"SUPER SHIFT, R, exec, restart.noctalia #\"Restart Noctalia shell\""
"SUPER SHIFT, Return, exec, noctalia-shell ipc call launcher toggle #\"Toggle application launcher\""
"SUPER SHIFT, S, exec, screenshootin #\"Take screenshot\""
"SUPER SHIFT, T, exec, tutanota-desktop #\"Tutanota encrypted email client\""
"SUPER SHIFT, V, exec, noctalia-shell ipc call launcher clipboard #\"Open clipboard manager\""
];
altBinds = [
"SUPER ALT, C, exec, noctalia-shell ipc call controlCenter toggle #\"Toggle control center\""
"SUPER ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop #\"Glance server panel\""
"SUPER ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop #\"Mastodon social network client\""
"SUPER ALT, P, exec, noctalia-shell ipc call settings toggle #\"Open settings panel\""
"SUPER ALT, S, exec, slack #\"Slack team communication tool\""
"SUPER ALT, T, exec, gedit #\"GNOME text editor\""
"SUPER ALT, W, exec, noctalia-shell ipc call wallpaper toggle #\"Toggle wallpaper\""
];
controlBinds = [
"SUPER CONTROL, C, exec, noctalia-shell ipc call powerProfile cycle #\"Cycle through power profiles\""
"SUPER CONTROL, G, exec, gimp #\"GNU Image Manipulation Program\""
"SUPER CONTROL, M, exec, mattermost-desktop #\"Mattermost team chat client\""
"SUPER CONTROL, S, exec, signal-desktop #\"Signal encrypted messaging\""
"SUPER CONTROL, P, exec, hyprpicker -a #\"Pick color from screen\""
];
windowManagementBinds = [
"SUPER, F, fullscreen, #\"Toggle fullscreen mode\""
"SUPER, Q, killactive, #\"Close active window\""
"SUPER SHIFT, I, togglesplit, #\"Toggle split layout\""
"SUPER SHIFT, F, togglefloating, #\"Toggle floating mode\""
];
windowFocusBinds = [
"SUPER, down, movefocus, d #\"Move focus down\""
"SUPER, left, movefocus, l #\"Move focus left\""
"SUPER, right, movefocus, r #\"Move focus right\""
"SUPER, up, movefocus, u #\"Move focus up\""
];
windowMovementBinds = [
"SUPER SHIFT, down, movewindow, d #\"Move window down\""
"SUPER SHIFT, left, movewindow, l #\"Move window left\""
"SUPER SHIFT, right, movewindow, r #\"Move window right\""
"SUPER SHIFT, up, movewindow, u #\"Move window up\""
];
windowSwapBinds = [
"SUPER ALT, down, swapwindow, d #\"Swap active window with window below\""
"SUPER ALT, left, swapwindow, l #\"Swap active window with window on the left\""
"SUPER ALT, right, swapwindow, r #\"Swap active window with window on the right\""
"SUPER ALT, up, swapwindow, u #\"Swap active window with window above\""
];
workspacesSwitchBinds = [
"SUPER, 0, workspace, 10 #\"Switch to workspace 10\""
"SUPER, 1, workspace, 1 #\"Switch to workspace 1\""
"SUPER, 2, workspace, 2 #\"Switch to workspace 2\""
"SUPER, 3, workspace, 3 #\"Switch to workspace 3\""
"SUPER, 4, workspace, 4 #\"Switch to workspace 4\""
"SUPER, 5, workspace, 5 #\"Switch to workspace 5\""
"SUPER, 6, workspace, 6 #\"Switch to workspace 6\""
"SUPER, 7, workspace, 7 #\"Switch to workspace 7\""
"SUPER, 8, workspace, 8 #\"Switch to workspace 8\""
"SUPER, 9, workspace, 9 #\"Switch to workspace 9\""
"SUPER CONTROL, left, workspace, e-1 #\"Switch to previous workspace\""
"SUPER CONTROL, right, workspace, e+1 #\"Switch to next workspace\""
"SUPER, mouse_down, workspace, e+1 #\"Switch to next workspace with mouse\""
"SUPER, mouse_up, workspace, e-1 #\"Switch to previous workspace with mouse\""
];
workspacesSwapBinds = [
"SUPER SHIFT, 0, movetoworkspace, 10 #\"Move active window to workspace 10\""
"SUPER SHIFT, 1, movetoworkspace, 1 #\"Move active window to workspace 1\""
"SUPER SHIFT, 2, movetoworkspace, 2 #\"Move active window to workspace 2\""
"SUPER SHIFT, 3, movetoworkspace, 3 #\"Move active window to workspace 3\""
"SUPER SHIFT, 4, movetoworkspace, 4 #\"Move active window to workspace 4\""
"SUPER SHIFT, 5, movetoworkspace, 5 #\"Move active window to workspace 5\""
"SUPER SHIFT, 6, movetoworkspace, 6 #\"Move active window to workspace 6\""
"SUPER SHIFT, 7, movetoworkspace, 7 #\"Move active window to workspace 7\""
"SUPER SHIFT, 8, movetoworkspace, 8 #\"Move active window to workspace 8\""
"SUPER SHIFT, 9, movetoworkspace, 9 #\"Move active window to workspace 9\""
];
systemMediaAndControllsBinds = [
",XF86AudioLowerVolume, exec, noctalia-shell ipc call volume decrease #\"Lower system volume\""
",XF86AudioMute, exec, noctalia-shell ipc call volume muteOutput #\"Mute audio output\""
",XF86AudioNext, exec, noctalia-shell ipc call media next #\"Next media track\""
",XF86AudioPause, exec, noctalia-shell ipc call media pause #\"Pause media playback\""
",XF86AudioPlay, exec, noctalia-shell ipc call media play #\"Play media\""
",XF86AudioPrev, exec, noctalia-shell ipc call media previous #\"Previous media track\""
",XF86AudioRaiseVolume, exec, noctalia-shell ipc call volume increase #\"Raise system volume\""
",XF86MonBrightnessDown, exec, noctalia-shell ipc call brightness decrease #\"Decrease screen brightness\""
",XF86MonBrightnessUp, exec, noctalia-shell ipc call brightness increase #\"Increase screen brightness\""
];
mkBlock = header: lines:
lib.concatLines (
["# ${header}"]
++ (map (l: "bind = ${l}") lines)
);
fullConfig = lib.concatLines [
""
(mkBlock "1. MAIN APPS" mainBinds)
(mkBlock "2. SHIFT APPS" shiftBinds)
(mkBlock "3. ALT APPS" altBinds)
(mkBlock "4. CONTROL APPS" controlBinds)
(mkBlock "5. WINDOW MANAGEMENT" windowManagementBinds)
(mkBlock "6. WINDOWS FOCUS" windowFocusBinds)
(mkBlock "7. WINDOWS MOVEMENT" windowMovementBinds)
(mkBlock "8. WINDOWS SWAP" windowSwapBinds)
(mkBlock "9. WORKSPACES SWITCH" workspacesSwitchBinds)
(mkBlock "10. WORKSPACES SWAP" workspacesSwapBinds)
(mkBlock "11. SYSTEM MEDIA & CONTROLS" systemMediaAndControllsBinds)
];
in {
wayland.windowManager.hyprland.settings = {
bind = [
# =============================================================================
# APLIKACJE - GŁÓWNE
# =============================================================================
"SUPER, A, exec, anki"
"SUPER, B, exec, bitwarden"
"SUPER, C, exec, chromium"
"SUPER, D, exec, vesktop"
"SUPER, G, exec, affinity-v3"
"SUPER, I, exec, iotas"
"SUPER, J, exec, Jan"
"SUPER, L, exec, logseq"
"SUPER, M, exec, plexamp"
"SUPER, N, exec, dex ${desktopEntriesPath}/garandcloud.desktop"
"SUPER, O, exec, obs"
"SUPER, P, exec, plex-desktop"
"SUPER, Return, exec, ${terminal}"
"SUPER, S, exec, steam"
"SUPER, T, exec, thunar"
"SUPER, V, exec, codium"
"SUPER, W, exec, ${browser}"
"SUPER, Z, exec, zeditor"
# =============================================================================
# APLIKACJE - Z SHIFT
# =============================================================================
"SUPER SHIFT, B, exec, blueman-manager"
"SUPER SHIFT, C, exec, dex ${desktopEntriesPath}/claude.desktop"
"SUPER SHIFT, G, exec, dex ${desktopEntriesPath}/chatgpt.desktop"
"SUPER SHIFT, M, exec, dex ${desktopEntriesPath}/messenger.desktop"
"SUPER SHIFT, N, exec, nextcloud"
"SUPER SHIFT, O, exec, onlyoffice-desktopeditors"
# "SUPER SHIFT, Return, exec, rofi-launcher"
"SUPER SHIFT, T, exec, tutanota-desktop"
# "SUPER SHIFT, W, exec, web-search"
# =============================================================================
# APLIKACJE - Z ALT
# =============================================================================
"SUPER ALT, G, exec, dex ${desktopEntriesPath}/glance.desktop"
"SUPER ALT, M, exec, dex ${desktopEntriesPath}/mastodon.desktop"
"SUPER ALT, S, exec, slack"
"SUPER ALT, T, exec, gedit"
# =============================================================================
# APLIKACJE - Z CONTROL
# =============================================================================
"SUPER CONTROL, G, exec, gimp"
"SUPER CONTROL, M, exec, mattermost-desktop"
"SUPER CONTROL, S, exec, signal-desktop"
# =============================================================================
# NARZĘDZIA SYSTEMOWE
# =============================================================================
"SUPER, E, exec, emopicker9000"
"SUPER, K, exec, galculator"
"SUPER ALT, W, exec, wallsetter"
"SUPER CONTROL, P, exec, hyprpicker -a"
"SUPER SHIFT, K, exec, list-keybinds"
"SUPER SHIFT, P, exec, pavucontrol"
"SUPER SHIFT, S, exec, screenshootin"
# =============================================================================
# ZARZĄDZANIE OKNAMI
# =============================================================================
"SUPER, Escape, exec, hyprlock"
"SUPER, F, fullscreen,"
"SUPER, Q, killactive,"
"SUPER CONTROL, Escape, exec, wlogout"
"SUPER SHIFT, Escape, exit,"
"SUPER SHIFT, I, togglesplit,"
"SUPER SHIFT, F, togglefloating,"
# =============================================================================
# FOKUS OKIEN
# =============================================================================
"SUPER, down, movefocus, d"
"SUPER, left, movefocus, l"
"SUPER, right, movefocus, r"
"SUPER, up, movefocus, u"
# =============================================================================
# PRZEMIESZCZANIE OKIEN
# =============================================================================
"SUPER SHIFT, down, movewindow, d"
"SUPER SHIFT, left, movewindow, l"
"SUPER SHIFT, right, movewindow, r"
"SUPER SHIFT, up, movewindow, u"
# =============================================================================
# ZAMIANA OKIEN
# =============================================================================
"SUPER ALT, down, swapwindow, d"
"SUPER ALT, left, swapwindow, l"
"SUPER ALT, right, swapwindow, r"
"SUPER ALT, up, swapwindow, u"
# =============================================================================
# WORKSPACES - PRZEŁĄCZANIE
# =============================================================================
"SUPER, 0, workspace, 10"
"SUPER, 1, workspace, 1"
"SUPER, 2, workspace, 2"
"SUPER, 3, workspace, 3"
"SUPER, 4, workspace, 4"
"SUPER, 5, workspace, 5"
"SUPER, 6, workspace, 6"
"SUPER, 7, workspace, 7"
"SUPER, 8, workspace, 8"
"SUPER, 9, workspace, 9"
"SUPER CONTROL, left, workspace, e-1"
"SUPER CONTROL, right, workspace, e+1"
"SUPER, mouse_down, workspace, e+1"
"SUPER, mouse_up, workspace, e-1"
# =============================================================================
# WORKSPACES - PRZENOSZENIE OKIEN
# =============================================================================
"SUPER SHIFT, 0, movetoworkspace, 10"
"SUPER SHIFT, 1, movetoworkspace, 1"
"SUPER SHIFT, 2, movetoworkspace, 2"
"SUPER SHIFT, 3, movetoworkspace, 3"
"SUPER SHIFT, 4, movetoworkspace, 4"
"SUPER SHIFT, 5, movetoworkspace, 5"
"SUPER SHIFT, 6, movetoworkspace, 6"
"SUPER SHIFT, 7, movetoworkspace, 7"
"SUPER SHIFT, 8, movetoworkspace, 8"
"SUPER SHIFT, 9, movetoworkspace, 9"
# =============================================================================
# MEDIA I KONTROLKI SYSTEMOWE
# =============================================================================
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
",XF86AudioNext, exec, playerctl next"
",XF86AudioPause, exec, playerctl play-pause"
",XF86AudioPlay, exec, playerctl play-pause"
",XF86AudioPrev, exec, playerctl previous"
",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
",XF86MonBrightnessDown, exec, brightnessctl set 5%-"
",XF86MonBrightnessUp, exec, brightnessctl set +5%"
# =============================================================================
# NOCTALIA SHELL
# =============================================================================
"SUPER SHIFT, Return, exec, noctalia-shell ipc call launcher toggle"
# "SUPER, M, Noctalia Notifications, exec, noctalia-shell ipc call notifications toggleHistory"
"SUPER SHIFT, V, exec, noctalia-shell ipc call launcher clipboard"
"SUPER ALT, P, exec, noctalia-shell ipc call settings toggle"
"SUPER ALT, L, exec, noctalia-shell ipc call sessionMenu lockAndSuspend"
"SUPER SHIFT, W, exec, noctalia-shell ipc call wallpaper toggle"
"SUPER, X, exec, noctalia-shell ipc call sessionMenu toggle"
"SUPER ALT, C, exec, noctalia-shell ipc call controlCenter toggle"
"SUPER CTRL, R, exec, noctalia-shell ipc call screenRecorder toggle"
"SUPER SHIFT, R, exec, restart.noctalia"
# =============================================================================
# NIEUŻYWANE KEYBINDY
# =============================================================================
# "SUPER SHIFT, N, exec, swaync-client -rs"
# "SUPER, P, pseudo,"
# "SUPER ALT,F, workspaceopt, allfloat"
# "SUPER SHIFT, SPACE, movetoworkspace, special"
# "SUPER, SPACE, togglespecialworkspace"
# "ALT,Tab,cyclenext"
# "ALT,Tab,bringactivetotop"
];
extraConfig = fullConfig;
bindm = [
"SUPER, mouse:272, movewindow"

View File

@@ -1,14 +1,11 @@
{host, ...}: let
inherit (import ../../../hosts/${host}/variables.nix) animChoice;
in {
_: {
imports = [
animChoice
./animations.nix
./binds.nix
./env.nix
./exec-once.nix
./hypridle.nix
./hyprland.nix
./hyprlock.nix
./pyprland.nix
./windowrules.nix
];

View File

@@ -22,10 +22,6 @@ _: {
"GDK_SCALE,1"
"QT_SCALE_FACTOR,1"
"EDITOR,nano"
# Set terminal and xdg_terminal_emulator to kitty
# To provent yazi from starting xterm when run from rofi menu
# You can set to your preferred terminal if you you like
# ToDo: Pull default terminal from config
"TERMINAL,kitty"
"XDG_TERMINAL_EMULATOR,kitty"
];

View File

@@ -1,28 +1,15 @@
{host, ...}: let
inherit
(import ../../../hosts/${host}/variables.nix)
stylixImage
;
in {
_: {
wayland.windowManager.hyprland.settings.exec-once = [
"wl-paste --type text --watch cliphist store" # Saves text
"wl-paste --type image --watch cliphist store" # Saves images
"dbus-update-activation-environment --all --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP"
"systemctl --user start hyprpolkitagent"
"qs -c overview" # Start quickshell-overview daemon
# "killall -q swww;sleep .5 && swww-daemon"
# "killall -q waybar;sleep .5 && waybar"
# "killall -q swaync;sleep .5 && swaync"
# "#wallsetter &"
# "pypr &"
# "nm-applet --indicator"
# "sleep 1.0 && swww img ${stylixImage}"
"killall -q waybar"
"pkill waybar"
"killall -q swaync"
"pkill swaync"
# "killall -q waybar"
# "pkill waybar"
# "killall -q swaync"
# "pkill swaync"
"noctalia-shell &"
];
}

View File

@@ -5,13 +5,8 @@ _: {
general = {
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
lock_cmd = "hyprlock";
};
listener = [
{
timeout = 900;
on-timeout = "hyprlock";
}
{
timeout = 1200;
on-timeout = "hyprctl dispatch dpms off";

View File

@@ -94,10 +94,12 @@ in {
decoration = {
rounding = 10;
rounding_power = 2;
blur = {
enabled = true;
size = 5;
passes = 3;
vibrancy = 0.1696;
ignore_opacity = false;
new_optimizations = true;
};
@@ -145,9 +147,7 @@ in {
monitor=,preferred,auto,auto
monitor=Virtual-1,1920x1080@60,auto,1
${extraMonitorSettings}
# To enable blur on waybar uncomment the line below
# Thanks to SchotjeChrisman
#layerrule = blur,waybar
layerrule = blur on, blur_popups on, ignore_alpha 0.5, match:namespace noctalia-background-\.*$
";
};
}

View File

@@ -1,47 +0,0 @@
{username, ...}: {
programs.hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
grace = 10;
hide_cursor = true;
no_fade_in = false;
};
background = [
{
path = "/home/${username}/Pictures/Wallpapers/four-elements.jpg";
blur_passes = 3;
blur_size = 8;
}
];
image = [
{
path = "/home/${username}/.config/face.jpg";
size = 150;
border_size = 4;
border_color = "rgb(0C96F9)";
rounding = -1; # Negative means circle
position = "0, 200";
halign = "center";
valign = "center";
}
];
input-field = [
{
size = "200, 50";
position = "0, -80";
monitor = "";
dots_center = true;
fade_on_empty = false;
font_color = "rgb(CFE6F4)";
inner_color = "rgb(657DC2)";
outer_color = "rgb(0D0E15)";
outline_thickness = 5;
placeholder_text = "Password...";
shadow_passes = 2;
}
];
};
};
}

View File

@@ -30,11 +30,10 @@ _: {
"tag +settings, match:class gnome-disks|wihotspot(-gui)?"
"tag +settings, match:class [Rr]ofi"
"tag +settings, match:class file-roller|org\.gnome\.FileRoller"
"tag +settings, match:class nm-applet|nm-connection-editor|blueman-manager"
"tag +settings, match:class nm-applet|nm-connection-editor"
"tag +settings, match:class pavucontrol|org\.pulseaudio\.pavucontrol|com\.saivert\.pwvucontrol"
"tag +settings, match:class nwg-look|qt5ct|qt6ct|[Yy]ad"
"tag +settings, match:class xdg-desktop-portal-gtk"
"tag +settings, match:class ?:blueman-manager-wrapped"
"tag +settings, match:class nwg-displays"
# Position and movement rules