From d744a1b972c73851cb88d33cba4421088a05a348 Mon Sep 17 00:00:00 2001 From: aibrash Date: Wed, 28 Oct 2026 10:20:48 +0500 Subject: [PATCH] Switch to DankMaterialShell: bar, launcher, control center, notifications Co-Authored-By: Claude Sonnet 5.5 --- .config/sway/config | 2 +- .config/sway/config.d/10-appearance.conf | 4 ++-- .config/sway/config.d/30-workflow.conf | 4 ++-- .../config.d/{40-bar.conf => 40-bar.conf.off} | 0 .config/sway/config.d/50-dms.conf | 21 +++++++++++++++++++ README.md | 12 +++++++---- install.sh | 20 ++++++++++++++---- 7 files changed, 50 insertions(+), 13 deletions(-) rename .config/sway/config.d/{40-bar.conf => 40-bar.conf.off} (100%) create mode 100644 .config/sway/config.d/50-dms.conf diff --git a/.config/sway/config b/.config/sway/config index 6d304cf..cefcd92 100644 --- a/.config/sway/config +++ b/.config/sway/config @@ -75,7 +75,7 @@ output * bg /usr/share/backgrounds/default.jxl fill bindsym --to-code $mod+Shift+q kill # Start your launcher - bindsym --to-code $mod+d exec $menu + bindsym --to-code $mod+d exec dms ipc call spotlight toggle # Drag floating windows by holding down $mod and left mouse button. # Resize them with right mouse button + $mod. diff --git a/.config/sway/config.d/10-appearance.conf b/.config/sway/config.d/10-appearance.conf index 127df19..db2c2d1 100644 --- a/.config/sway/config.d/10-appearance.conf +++ b/.config/sway/config.d/10-appearance.conf @@ -26,7 +26,7 @@ client.placeholder $base $base $text $base $base client.background $base # Autostart -exec_always sh -c 'pkill -x dunst; pkill -x swaync; exec swaync' +exec_always sh -c 'pkill -x dunst; pkill -x swaync; true' exec_always sh -c 'pkill -x nm-applet; exec nm-applet --indicator' bindsym --to-code $mod+Shift+x exec ~/.config/sway/lock.sh @@ -47,7 +47,7 @@ for_window [app_id="rofi"] border none titlebar_padding 6 3 focus_follows_mouse no workspace_auto_back_and_forth yes -bindsym --to-code $mod+Shift+p exec ~/.config/rofi/powermenu.sh +bindsym --to-code $mod+Shift+p exec dms ipc call powermenu toggle # Wallpaper + idle/lock output * bg ~/Pictures/wallpapers/current fill diff --git a/.config/sway/config.d/30-workflow.conf b/.config/sway/config.d/30-workflow.conf index a7dd08f..3f35cc3 100644 --- a/.config/sway/config.d/30-workflow.conf +++ b/.config/sway/config.d/30-workflow.conf @@ -33,5 +33,5 @@ bindsym --to-code $mod+F1 exec ~/.config/sway/cheatsheet.sh # Performance mode: toggle blur + shadows bindsym --to-code $mod+Shift+b blur toggle; shadows toggle # Control center (notifications + quick settings) -bindsym --to-code $mod+n exec swaync-client -t -sw -bindsym --to-code $mod+Shift+n exec swaync-client -d -sw +bindsym --to-code $mod+n exec dms ipc call control-center toggle +bindsym --to-code $mod+Shift+n exec dms ipc call notifications toggle diff --git a/.config/sway/config.d/40-bar.conf b/.config/sway/config.d/40-bar.conf.off similarity index 100% rename from .config/sway/config.d/40-bar.conf rename to .config/sway/config.d/40-bar.conf.off diff --git a/.config/sway/config.d/50-dms.conf b/.config/sway/config.d/50-dms.conf new file mode 100644 index 0000000..b070a56 --- /dev/null +++ b/.config/sway/config.d/50-dms.conf @@ -0,0 +1,21 @@ +# DankMaterialShell: bar, launcher, control center, notifications (replaces waybar/swaync/rofi launcher) +exec_always sh -c 'pgrep -f "dms run" >/dev/null || exec dms run' + +# Hotkeys: $mod+d launcher, $mod+n control center, $mod+Shift+n notifications, $mod+Shift+p power menu (set in config / config.d) +bindsym --to-code $mod+Shift+v exec dms ipc call clipboard toggle + + +# SwayFX blur/shadows/rounding for DMS surfaces (layer names from: swaymsg -t get_outputs) +layer_effects "dms:bar" blur enable; blur_ignore_transparent enable; corner_radius 14; shadows enable +layer_effects "dms:control-center" blur enable; blur_ignore_transparent enable; corner_radius 20; shadows enable +layer_effects "dms:app-launcher" blur enable; blur_ignore_transparent enable; corner_radius 20; shadows enable +layer_effects "dms:spotlight" blur enable; blur_ignore_transparent enable; corner_radius 20; shadows enable +layer_effects "dms:notification-center-popout" blur enable; blur_ignore_transparent enable; corner_radius 20; shadows enable +layer_effects "dms:notification-popup" blur enable; blur_ignore_transparent enable; corner_radius 14; shadows enable +layer_effects "dms:dash" blur enable; blur_ignore_transparent enable; corner_radius 20; shadows enable +layer_effects "dms:battery" blur enable; blur_ignore_transparent enable; corner_radius 20; shadows enable +layer_effects "dms:clipboard-popout" blur enable; blur_ignore_transparent enable; corner_radius 20; shadows enable +layer_effects "dms:network-info" blur enable; blur_ignore_transparent enable; corner_radius 20; shadows enable +layer_effects "dms:bluetooth-pairing" blur enable; blur_ignore_transparent enable; corner_radius 20; shadows enable +layer_effects "dms:osd" blur enable; blur_ignore_transparent enable; corner_radius 16; shadows enable +layer_effects "dms:dock" blur enable; blur_ignore_transparent enable; corner_radius 18; shadows enable diff --git a/README.md b/README.md index e32b741..c55ca1d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # sway-rising -Монохромный «стеклянный» райс для **SwayFX 0.6**: матовый blur, скруглённые углы, мягкое свечение у активного окна, плавающие «острова» в waybar, полупрозрачные rofi / dunst / swaylock. +Монохромный «стеклянный» райс для **SwayFX 0.6**: матовый blur, скруглённые углы, мягкое свечение у активного окна и **DankMaterialShell** (бар, лаунчер, панель управления с Wi-Fi / Bluetooth / VPN, уведомления) поверх sway. ## Что внутри @@ -17,7 +17,8 @@ | `.config/dunst` | старые уведомления (не используются, оставлены для отката) | | `.config/swaylock` | локскрин с обоями | | `.config/kitty/kitty.conf` | прозрачность терминала, чтобы был виден blur | -| `.config/sway/config.d/40-bar.conf` | запуск waybar (без `sway-config-fedora`) | +| `.config/sway/config.d/50-dms.conf` | запуск DMS, blur / скругления для его слоёв, хоткей буфера обмена | +| `.config/sway/config.d/40-bar.conf.off` | старый запуск waybar (отключён; переименуйте в `.conf`, чтобы вернуть waybar вместо DMS) | | `.config/sway/config.d/05-outputs.conf` | расположение и масштаб мониторов (ноутбук слева, HDMI справа; подгоните под своё железо) | | `.config/sway/config.d/06-mouse.conf` | чувствительность мыши | | `wallpapers/` | `original.jpg` (основные), `mono-glow`, `mono-orb`, `mono-smoke`, `mono-grid`, `mono-dusk` | @@ -38,7 +39,10 @@ | Клавиши | Действие | |---|---| | `Super+Return` | терминал (kitty) | -| `Super+D` | запуск приложений (rofi) | +| `Super+D` | лаунчер DMS | +| `Super+N` | панель управления DMS (Wi-Fi, Bluetooth, VPN, звук, яркость) | +| `Super+Shift+N` | центр уведомлений | +| `Super+Shift+V` | история буфера обмена | | `Super+Shift+Q` | закрыть окно | | `Super+Shift+C` | перезагрузить конфиг | | `Super+Shift+E` | выйти из sway | @@ -79,4 +83,4 @@ git clone git@git.ibrash.duckdns.org:aibrash/sway-rising.git && cd sway-rising Флаги: `--yes` (не спрашивать), `--no-packages` (только конфиги), `--no-lock-effects`. -Waybar запускает сам sway (`config.d/40-bar.conf`). Руками его запускать не нужно, иначе будет два бара. Перезагрузка стиля: `pkill -SIGUSR2 waybar`. +DMS запускается из `config.d/50-dms.conf`. Руками его запускать не нужно. Диагностика: `dms doctor`. Waybar, swaync и dunst в репозитории оставлены как запасной вариант и в `install.sh` больше не ставятся. diff --git a/install.sh b/install.sh index 2b320fc..2bbee13 100755 --- a/install.sh +++ b/install.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# sway-rising installer: packages + configs + wallpapers + swaylock-effects. +# sway-rising installer: packages + DankMaterialShell + configs + wallpapers + swaylock-effects. # Usage: ./install.sh [--yes] [--no-packages] [--no-lock-effects] set -euo pipefail @@ -27,13 +27,13 @@ ask() { [ "$YES" = 1 ] && return 0; read -r -p "$1 [y/N] " r; [[ $r =~ ^[yYдД # ---------- 1. packages (Fedora) ---------- install_packages() { if ! command -v dnf >/dev/null; then - warn "dnf not found. Install manually: swayfx waybar rofi dunst swaylock swayidle kitty grim slurp" + warn "dnf not found. Install manually: swayfx dms rofi swaylock swayidle kitty grim slurp" warn "wl-clipboard playerctl brightnessctl ImageMagick libnotify pavucontrol network-manager-applet" warn "JetBrains Mono and Font Awesome 6 fonts." return fi - local want=(waybar rofi SwayNotificationCenter swaylock swayidle kitty grim slurp wl-clipboard playerctl + local want=(rofi swaylock swayidle kitty grim slurp wl-clipboard playerctl brightnessctl ImageMagick libnotify pavucontrol network-manager-applet wireplumber fontawesome-6-free-fonts) fc-list | grep -qi "JetBrains Mono" || want+=(jetbrains-mono-fonts) @@ -51,6 +51,16 @@ install_packages() { fi fi + if ! rpm -q dms >/dev/null 2>&1; then + say "DankMaterialShell (bar, launcher, control center, notifications) comes from the avengemedia/dms COPR" + if ask "Enable COPR avengemedia/dms and install dms?"; then + sudo dnf copr enable -y avengemedia/dms + missing+=(dms) + else + warn "Skipping dms: no bar / control center / notifications will be started." + fi + fi + if [ ${#missing[@]} -gt 0 ]; then say "Installing: ${missing[*]}" sudo dnf install -y "${missing[@]}" @@ -88,13 +98,15 @@ install_configs() { say "Backing up existing configs to $BACKUP" mkdir -p "$BACKUP" local d - for d in sway waybar rofi dunst swaync swaylock kitty; do + for d in sway waybar rofi dunst swaync swaylock kitty quickshell; do [ -e "$CFG/$d" ] && cp -a "$CFG/$d" "$BACKUP/" done say "Copying configs to $CFG" mkdir -p "$CFG" cp -a "$REPO/.config/." "$CFG/" + # waybar is replaced by DMS; a stale 40-bar.conf from an older install would start a second bar + rm -f "$CFG/sway/config.d/40-bar.conf" chmod +x "$CFG"/sway/*.sh "$CFG"/rofi/*.sh 2>/dev/null || true say "Copying wallpapers to $WALLS"