Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
caace8f3ff | ||
|
|
125a01f4e4 | ||
|
|
923c98b9ce | ||
|
|
91bd6ededf |
@@ -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 ;;
|
||||
|
||||
Executable
+6
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Executable
+8
@@ -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
|
||||
Executable
+14
@@ -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"
|
||||
Executable
+14
@@ -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,4 +1,4 @@
|
||||
image=~/Pictures/wallpapers/mono-glow.jpg
|
||||
image=~/Pictures/wallpapers/current
|
||||
scaling=fill
|
||||
font=JetBrains Mono
|
||||
indicator-radius=90
|
||||
|
||||
@@ -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
|
||||
@@ -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 },
|
||||
|
||||
@@ -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; }
|
||||
|
||||
@@ -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 |
Reference in New Issue
Block a user