Compare commits

...
4 Commits
Author SHA1 Message Date
aibrashandClaude Sonnet 5.5 caace8f3ff Add swaylock-effects lock via lock.sh with fallback
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 23:56:04 +05:00
aibrashandClaude Sonnet 5.5 125a01f4e4 Fix grave hotkey markdown
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 23:52:46 +05:00
aibrashandClaude Sonnet 5.5 923c98b9ce Restore original wallpaper as default, Russian README with features and hotkeys
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 23:52:42 +05:00
aibrashandClaude Sonnet 5.5 91bd6ededf Add wallpaper picker, screenshot menu, cheatsheet, waybar hw drawer
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-27 23:49:08 +05:00
19 changed files with 172 additions and 19 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
opts=$' Lock\n Logout\n Suspend\n Reboot\n Shutdown'
choice=$(printf '%s' "$opts" | rofi -dmenu -i -p "Power" -theme ~/.config/rofi/catppuccin.rasi -theme-str 'window {width: 300px;} listview {lines: 5;} entry {enabled: false;}')
case "$choice" in
*Lock) swaylock -f ;;
*Lock) ~/.config/sway/lock.sh ;;
*Logout) swaymsg exit ;;
*Suspend) systemctl suspend ;;
*Reboot) systemctl reboot ;;
+6
View File
@@ -0,0 +1,6 @@
#!/bin/bash
# Shows all sway keybindings in rofi
cat ~/.config/sway/config ~/.config/sway/config.d/*.conf | grep -E '^\s*bindsym' | grep -v -- '--locked' \
| sed -E 's/^\s*bindsym\s+//; s/\$mod/Super/g; s/^(\S+)\s+/\1\t→ /' \
| column -t -s $'\t' | rofi -dmenu -i -p "Keys" -theme ~/.config/rofi/catppuccin.rasi \
-theme-str 'window {width: 900px;} listview {lines: 14;} entry {placeholder: "Filter...";}' >/dev/null
+2 -2
View File
@@ -28,7 +28,7 @@ client.background $base
# Autostart
exec_always sh -c 'pkill -x dunst; exec dunst'
exec_always sh -c 'pkill -x nm-applet; exec nm-applet --indicator'
bindsym $mod+Shift+x exec swaylock -f
bindsym $mod+Shift+x exec ~/.config/sway/lock.sh
# Touchpad
input type:touchpad {
@@ -50,5 +50,5 @@ workspace_auto_back_and_forth yes
bindsym $mod+Shift+p exec ~/.config/rofi/powermenu.sh
# Wallpaper + idle/lock
output * bg ~/Pictures/wallpapers/mono-glow.jpg fill
output * bg ~/Pictures/wallpapers/current fill
exec_always ~/.config/sway/idle.sh
+1 -1
View File
@@ -36,7 +36,7 @@ layer_effects "notifications" blur enable; blur_ignore_transparent enable; corne
layer_effects "swaynag" blur enable; blur_ignore_transparent enable; corner_radius 12
# Translucent terminals, glass shows through
for_window [app_id="kitty"] opacity 0.88
# kitty opacity/blur is set in kitty.conf
for_window [app_id="scratch"] opacity 0.82
for_window [app_id="(?i)thunar|org.gnome.Nautilus"] opacity 0.92
for_window [app_id="pavucontrol|nm-connection-editor|blueman-manager"] opacity 0.92
+7
View File
@@ -25,3 +25,10 @@ for_window [app_id="mpv"] floating enable, dim_inactive 0
# Mirror internal screen to HDMI/TV on hotplug
exec_always ~/.config/sway/mirror.sh
# Rice helpers
bindsym $mod+Shift+w exec ~/.config/sway/wallpaper.sh
bindsym $mod+Shift+s exec ~/.config/sway/screenshot-menu.sh
bindsym $mod+F1 exec ~/.config/sway/cheatsheet.sh
# Performance mode: toggle blur + shadows
bindsym $mod+Shift+b blur toggle; shadows toggle
+2 -2
View File
@@ -1,6 +1,6 @@
#!/bin/sh
pkill -x swayidle
exec swayidle -w \
timeout 300 'swaylock -f' \
timeout 300 "$HOME/.config/sway/lock.sh" \
timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
before-sleep 'swaylock -f'
before-sleep "$HOME/.config/sway/lock.sh"
+8
View File
@@ -0,0 +1,8 @@
#!/bin/sh
# Lock with swaylock-effects (blur + clock) if installed, else plain swaylock.
pgrep -x swaylock >/dev/null && exit 0
fx=$HOME/.local/bin/swaylock-effects
if [ -x "$fx" ]; then
exec "$fx" -f -C "$HOME/.config/swaylock/config-effects"
fi
exec swaylock -f
+14
View File
@@ -0,0 +1,14 @@
#!/bin/bash
choice=$(printf '%s\n' ' Area → clipboard' ' Area → file' ' Screen → clipboard' ' Screen → file' \
| rofi -dmenu -i -p "Screenshot" -theme ~/.config/rofi/catppuccin.rasi \
-theme-str 'window {width: 380px;} listview {lines: 4;} entry {enabled: false;}')
dir=$HOME/Pictures/Screenshots; mkdir -p "$dir"
f=$dir/$(date +%F_%H-%M-%S).png
case "$choice" in
*"Area → clipboard") ~/.config/sway/screenshot.sh clip ;;
*"Area → file") ~/.config/sway/screenshot.sh file ;;
*"Screen → clipboard") sleep 0.3; grim - | wl-copy ;;
*"Screen → file") sleep 0.3; grim "$f" ;;
*) exit 0 ;;
esac
notify-send -t 2000 "Screenshot" "Saved"
+14
View File
@@ -0,0 +1,14 @@
#!/bin/bash
# Wallpaper picker with previews. Also used by sway at start (arg: apply).
dir=$HOME/Pictures/wallpapers
cur=$dir/current
if [ "$1" != apply ]; then
pick=$(find "$dir" -maxdepth 1 -type f \( -name '*.jpg' -o -name '*.png' \) | sort | while read -r f; do
printf '%s\0icon\x1f%s\n' "$(basename "$f" | sed 's/\.[^.]*$//')" "$f"
done | rofi -dmenu -i -p "Wallpaper" -show-icons -theme ~/.config/rofi/catppuccin.rasi \
-theme-str 'window {width: 760px;} listview {columns: 3; lines: 2;} element {orientation: vertical; padding: 10px;} element-icon {size: 9em;} element-text {horizontal-align: 0.5;} entry {enabled: false;}')
[ -n "$pick" ] || exit 0
file=$(find "$dir" -maxdepth 1 -type f -name "$pick.*" | head -1)
ln -sf "$file" "$cur"
fi
swaymsg output '*' bg "$cur" fill >/dev/null
+1 -1
View File
@@ -1,4 +1,4 @@
image=~/Pictures/wallpapers/mono-glow.jpg
image=~/Pictures/wallpapers/current
scaling=fill
font=JetBrains Mono
indicator-radius=90
+33
View File
@@ -0,0 +1,33 @@
# Used only by swaylock-effects (see sway/lock.sh); stock swaylock reads ./config
screenshots
effect-blur=9x5
effect-vignette=0.5:0.5
fade-in=0.25
clock
timestr=%H:%M
datestr=%A, %d %B
indicator
indicator-radius=100
indicator-thickness=5
indicator-caps-lock
font=JetBrains Mono
inside-color=0c0c0c88
inside-clear-color=0c0c0c88
inside-ver-color=0c0c0c88
inside-wrong-color=0c0c0c88
ring-color=e8e8e8
ring-clear-color=8c8c8c
ring-ver-color=ffffff
ring-wrong-color=ff5c5c
line-color=00000000
line-clear-color=00000000
line-ver-color=00000000
line-wrong-color=00000000
separator-color=00000000
key-hl-color=ffffff
bs-hl-color=ff5c5c
text-color=e8e8e8
text-clear-color=e8e8e8
text-ver-color=e8e8e8
text-wrong-color=ff5c5c
show-failed-attempts
+3 -1
View File
@@ -8,13 +8,15 @@
"spacing": 6,
"modules-left": ["sway/workspaces", "sway/mode", "sway/window"],
"modules-center": ["clock", "mpris"],
"modules-right": ["idle_inhibitor", "sway/language", "temperature", "cpu", "memory", "backlight", "pulseaudio", "network", "battery", "tray", "custom/power"],
"modules-right": ["idle_inhibitor", "sway/language", "group/hw", "backlight", "pulseaudio", "network", "battery", "tray", "custom/power"],
"sway/workspaces": { "disable-scroll": true, "all-outputs": true, "format": "{icon}", "format-icons": {"1": "", "2": "", "3": "", "4": "", "5": "", "urgent": "", "default": ""} },
"sway/window": { "max-length": 45, "format": "{title}", "rewrite": { "(.*) — Mozilla Firefox": " $1", "(.*) - Chromium": " $1" } },
"sway/language": { "format": " {short}" },
"clock": { "format": " {:%H:%M}", "format-alt": " {:%A, %d %B %Y}", "tooltip-format": "<tt>{calendar}</tt>" },
"mpris": { "format": "{player_icon} {title}", "format-paused": " {title}", "player-icons": { "default": "" }, "max-length": 36, "tooltip-format": "{artist} — {title}" },
"group/hw": { "orientation": "inherit", "drawer": { "transition-duration": 350, "transition-left-to-right": false }, "modules": ["custom/hw", "temperature", "cpu", "memory"] },
"custom/hw": { "format": "\uf085", "tooltip": false },
"idle_inhibitor": { "format": "{icon}", "format-icons": { "activated": "", "deactivated": "" }, "tooltip-format-activated": "Idle inhibited", "tooltip-format-deactivated": "Idle allowed" },
"temperature": { "critical-threshold": 85, "format": " {temperatureC}°", "interval": 5 },
"cpu": { "format": " {usage}%", "interval": 3 },
+6
View File
@@ -65,3 +65,9 @@ window#waybar.empty #window { background: transparent; border-color: transparent
tooltip { background: alpha(@base, 0.85); border: 1px solid alpha(@text, 0.12); border-radius: 12px; }
tooltip label { color: @text; padding: 2px; }
/* collapsible hardware drawer */
#hw { background: alpha(@base, 0.55); border: 1px solid alpha(@text, 0.08); border-radius: 14px; padding: 0 4px; transition: all 0.25s ease; }
#hw:hover { border-color: alpha(@text, 0.25); }
#hw #custom-hw, #hw #temperature, #hw #cpu, #hw #memory { background: transparent; border: none; box-shadow: none; }
#custom-hw { color: @subtext; }
+71 -8
View File
@@ -1,17 +1,80 @@
# sway-rising
Monochrome glass rice for SwayFX 0.6: frosted blur, rounded corners, glow on the focused window, floating waybar pills, translucent rofi / dunst / swaylock.
Монохромный «стеклянный» райс для **SwayFX 0.6**: матовый blur, скруглённые углы, мягкое свечение у активного окна, плавающие «острова» в waybar, полупрозрачные rofi / dunst / swaylock.
## Contents
- `.config/sway` – config + `config.d/` (appearance, swayfx effects, workflow), idle/screenshot/mirror scripts
- `.config/waybar`, `.config/rofi`, `.config/dunst`, `.config/swaylock`
- `wallpapers/mono-glow.jpg`
## Что внутри
## Install
Requires: swayfx, waybar, rofi, dunst, swaylock, swayidle, kitty, JetBrains Mono, Font Awesome 6.
| Путь | Что это |
|---|---|
| `.config/sway/config.d/10-appearance.conf` | цвета, рамки, отступы, обои, swayidle (через `idle.sh`) |
| `.config/sway/config.d/20-swayfx.conf` | эффекты SwayFX: blur, тени, скругления, прозрачность, layer_effects |
| `.config/sway/config.d/30-workflow.conf` | хоткеи и помощники (scratchpad, скриншоты, обои, шпаргалка) |
| `.config/sway/*.sh` | `wallpaper.sh`, `screenshot-menu.sh`, `screenshot.sh`, `cheatsheet.sh`, `idle.sh`, `mirror.sh` |
| `.config/waybar` | стеклянные плашки, выдвижной блок железа, mpris, яркость, idle-inhibitor |
| `.config/rofi` | полупрозрачная тема + меню выключения |
| `.config/dunst` | полупрозрачные уведомления со скруглением |
| `.config/swaylock` | локскрин с обоями |
| `wallpapers/` | `original.jpg` (основные), `mono-glow`, `mono-orb`, `mono-smoke`, `mono-grid`, `mono-dusk` |
### Что было добавлено
- **Blur 4 прохода** + brightness / contrast / saturation, шум; свечение у фокусного окна, тёмная тень у остальных.
- **Waybar:** стеклянные плашки, растягивающийся активный воркспейс, модули mpris, backlight, temperature, idle-inhibitor, выдвижной блок `⚙` (температура / CPU / RAM), мигание при низком заряде.
- **Rofi и dunst** сделаны полупрозрачными, чтобы под ними был виден blur.
- **Выбор обоев** с превью (rofi), 6 обоев в наборе.
- **Меню скриншотов** (область / экран, в буфер / в файл).
- **Шпаргалка по хоткеям** прямо из конфига.
- **Режим производительности:** переключатель blur и теней.
- **swayidle:** блокировка через 5 мин, экран гаснет через 10 мин.
- **Swaylock-effects:** размытый скриншот экрана, виньетка, часы и дата. Запускается через `sway/lock.sh`. Если swaylock-effects не установлен, используется обычный swaylock.
## Важные хоткеи (`Super` = Mod4)
| Клавиши | Действие |
|---|---|
| `Super+Return` | терминал (kitty) |
| `Super+D` | запуск приложений (rofi) |
| `Super+Shift+Q` | закрыть окно |
| `Super+Shift+C` | перезагрузить конфиг |
| `Super+Shift+E` | выйти из sway |
| `Super+Shift+X` | заблокировать экран |
| `Super+Shift+P` | меню выключения |
| `Super+F1` | **шпаргалка по всем хоткеям** |
| `Super+Shift+W` | выбор обоев |
| `Super+Shift+S` | меню скриншотов |
| `Shift+Print` / `Super+Print` | область → буфер / область → файл |
| `Super+Shift+B` | режим производительности (blur + тени) |
| ``Super+` `` | выпадающий терминал (scratchpad) |
| `Super+H/J/K/L` | фокус влево / вниз / вверх / вправо |
| `Super+Shift+H/J/K/L` | переместить окно |
| `Super+1…0` / `Super+Shift+1…0` | воркспейс / переместить окно на воркспейс |
| `Super+Tab` / `Super+Shift+Tab` | следующий / предыдущий воркспейс |
| `Super+F` | полный экран |
| `Super+Shift+Space` | плавающее окно вкл/выкл |
| `Super+Shift+F` | плавающее 1000×600 по центру |
| `Super+C` | центрировать плавающее окно |
| `Super+R` | режим изменения размера (`H/J/K/L`, `Esc`) |
| `Super+S` / `Super+W` / `Super+E` | layout: stacking / tabbed / split |
| `Alt+Shift` | переключение раскладки (us / ru) |
## Swaylock-effects (необязательно)
В Fedora пакета нет, он есть в COPR `pheeef/swaylock-effects`. `dnf swap` не проходит из-за зависимости `sway-config-fedora`, поэтому бинарник ставится рядом с системным swaylock и ничего не заменяет:
```sh
mkdir /tmp/slfx && cd /tmp/slfx && dnf download swaylock-effects # после dnf copr enable pheeef/swaylock-effects
rpm2cpio swaylock-effects-*.x86_64.rpm | cpio -idm
install -Dm755 usr/bin/swaylock ~/.local/bin/swaylock-effects
```
## Установка
Нужны: swayfx, waybar, rofi, dunst, swaylock, swayidle, kitty, grim, slurp, wl-clipboard, playerctl, brightnessctl, JetBrains Mono, Font Awesome 6.
```sh
cp -r .config/* ~/.config/
mkdir -p ~/Pictures/wallpapers && cp wallpapers/* ~/Pictures/wallpapers/
ln -sf ~/Pictures/wallpapers/original.jpg ~/Pictures/wallpapers/current
swaymsg reload
```
Waybar is started by sway itself (`/usr/share/sway/config.d/90-bar.conf`); reload its style with `pkill -SIGUSR2 waybar`.
Waybar запускает сам sway (`/usr/share/sway/config.d/90-bar.conf`). Руками его запускать не нужно, иначе будет два бара. Перезагрузка стиля: `pkill -SIGUSR2 waybar`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 468 KiB