Sway
A Sway (SirCmpwn's Wayland kompozitor) egy nyílt forráskódú, wlroots-alapú Wayland kompozitor, amelyet úgy terveztek, hogy kompatibilis legyen az i3 ablakkezelővel.
Telepítés
USE jelölőzászlók
USE flags for gui-wm/sway i3-compatible Wayland window manager
+filecaps
|
Use Linux file capabilities to control privilege rather than set*id (this is orthogonal to USE=caps which uses capabilities at runtime e.g. libcap) |
+man
|
Build and install man pages |
+swaybar
|
Install 'swaybar': sway's status bar component |
+swaynag
|
Install 'swaynag': shows a message with buttons |
X
|
Enable support for X11 applications (XWayland) |
tray
|
Enable support for StatusNotifierItem tray specification |
wallpapers
|
Install sway's default wallpaper image |
Emerge
root #
emerge --ask gui-wm/sway
Beállítás
Az összes elérhető beállításlehetőség megtekintéséhez futtassa a következő parancsot:
user $
man 5 sway
Fájlok
Minden sway-t futtató felhasználó szerkesztheti az alapértelmezett beállításfájlt, hogy testre szabott sway munkamenetet futtasson. A Gentoo ezt a fájlt az alapértelmezett /etc/sway/config helyen tárolja:
user $
mkdir -p ~/.config/sway/
user $
cp /etc/sway/config ~/.config/sway/
Terminál emulátor
Alapértelmezés szerint a Sway beállításfájl a foot terminal emulator programot használja (amely a gui-apps/foot szoftvercsomagban található). Érdemes telepíteni ezt a terminálemulátort, hogy a Sway futtatásakor rendelkezésre álljon egy terminál:
root #
emerge --ask gui-apps/foot
Egyéb népszerű választások közé tartozik a x11-terms/alacritty vagy a x11-terms/kitty, amelyek natívan működnek a Waylanddal, ha a KITTY_ENABLE_WAYLAND
környezeti változó értéke 1
-re van állítva.
Egy másik nagyon könnyű alternatíva a st, de ez nem működik natívan a Waylanddal.
Kijelző beállítása
A kijelzési beállítások lekérdezhetők a következővel:
user $
swaymsg -t get_outputs
Output DP-1 'HP Inc. HP X34 6CM2261GK2' (focused) Current mode: 3440x1440 @ 165.000 Hz Position: 0,0 Scale factor: 1.000000 Scale filter: nearest Subpixel hinting: unknown Transform: normal Workspace: 1 Max render time: off Adaptive sync: disabled Available modes: 3440x1440 @ 165.000 Hz ... Output DP-2 'LG Electronics LG HDR QHD 110NTTQ0U193' Current mode: 2560x1440 @ 59.951 Hz Position: 3440,0 Scale factor: 1.000000 Scale filter: nearest Subpixel hinting: unknown Transform: normal Workspace: 2 Max render time: off Adaptive sync: disabled Available modes: 2560x1440 @ 59.951 Hz 2560x1440 @ 74.971 Hz ... Output DP-3 'Ancor Communications Inc VE247 E3LMQS103610' Current mode: 1920x1080 @ 60.000 Hz Position: 6000,0 Scale factor: 1.000000 Scale filter: nearest Subpixel hinting: unknown Transform: normal Workspace: 3 Max render time: off Adaptive sync: disabled Available modes: 1920x1080 @ 60.000 Hz
Az eredmények le lettek rövidítve, hogy csak a kívánt felbontást tartalmazzák. Az alapértelmezett pozíciók nincsenek megfelelően beállítva, és módosíthatók a ~/.config/sway/config fájl szerkesztésével. Miután a fájl el van mentve, a beállítás újratölthető a $mod + Shift + C billentyűgomb kombinációval.
~/.config/sway/config
Bal oldali kijelző beállítása, amely fizikailag valamivel nagyobb, mint az elsődleges kijelzőoutput DP-1 resolution 3440x1440@165hz pos 2560 350
~/.config/sway/config
Elsődleges kijelző beállítása, amely középen van elhelyezveoutput DP-2 resolution 2560x1440@74.971hz pos 0 250
~/.config/sway/config
Alternatív kijelző beállítása, amely függőlegesoutput DP-3 resolution 1920x1080@60hz pos 6000 0 transform 270
Bemeneti eszközök
A bemeneti eszközök lekérdezhetők a következővel:
user $
swaymsg -t get_inputs
Input device: Logitech G502 HERO Gaming Mouse Keyboard Type: Mouse Identifier: 1133:49291:Logitech_G502_HERO_Gaming_Mouse_Keyboard Product ID: 49291 Vendor ID: 1133 Libinput Send Events: enabled Input device: Logitech G502 HERO Gaming Mouse Keyboard Type: Keyboard Identifier: 1133:49291:Logitech_G502_HERO_Gaming_Mouse_Keyboard Product ID: 49291 Vendor ID: 1133 Active Keyboard Layout: English (US) Libinput Send Events: enabled Input device: Logitech G502 HERO Gaming Mouse Type: Mouse Identifier: 1133:49291:Logitech_G502_HERO_Gaming_Mouse Product ID: 49291 Vendor ID: 1133 Libinput Send Events: enabled
~/.config/sway/config
Egérgyorsítás letiltása, és a mutató sebességének csökkentéseinput "1133:49291:Logitech_G502_HERO_Gaming_Mouse" {
accel_profile "flat"
pointer_accel -0.1
}
~/.config/sway/config
Annak engedélyezése, hogy az érintőpadon a koppintás kattintásként legyen értelmezveinput type:touchpad {
tap enabled
}
Az egyujjas koppintás bal egérgombkattintást, a kétujjas koppintás jobb egérgombkattintást, a háromujjas koppintás pedig középső egérgombkattintást végez. Ez a
tap_button_map
beállítással módosítható.Alkalmazásindító
A Sway számos alkalmazásindítóval kompatibilis. Alapértelmezés szerint a gui-apps/wmenu használatára törekszik, de a szoftverfüggőségek miatt a x11-misc/dmenu is szükséges hozzá, ezért újra beállítást igényel, ha bármilyen natív Wayland indítót szeretne használni.
A dev-libs/bemenu egy dinamikus menükönyvtár és kliensprogram, amelyet a dmenu ihletett. A sway beállítása a bemenu használatához:
root #
emerge --ask dev-libs/bemenu
~/.config/sway/config
Sway beállítása úgy, hogy a bemenu legyen használvaset $menu bemenu-run --no-exec | xargs -r swaymsg exec --
~/.config/sway/config
Sway beállítása úgy, hogy a bemenu legyen használva, üres prompttalset $menu bemenu-run --no-exec -p "" | xargs -r swaymsg exec --
A
--line-height
(-H
) értéke beállítható 26-ra, hogy a bemenu magassága megegyezzen a waybar magasságával.Alapértelmezés szerint a sway megpróbálja használni a gui-apps/wmenu szoftvercsomagot, amely telepíthető a következővel:
root #
emerge --ask gui-apps/wmenu
Az alapértelmezett beállítás megpróbálja használni a dmenu_path-t, amely a x11-misc/dmenu szoftvercsomag része.
A sway egyszerű beállítása a wmenu használatához:
~/.config/sway/config
Sway beállítása a wmenu használatáraset $menu wmenu-run | xargs swaymsg exec --
~/.config/sway/config
Sway beállítás úgy, hogy a wmenu legyen használva, üres prompttalset $menu wmenu-run -p "" | xargs swaymsg exec --
Állapotsáv
A Sway saját állapotsávja mellett a Waybar is használható, amely egy rendkívül testre szabható állapotsáv a Sway számára:
root #
emerge --ask gui-apps/waybar
A Waybar engedélyezésének két egyszerű módja van a Sway-ben: A Waybar futtatása alparancsként, vagy mint egy normál parancs. Mindkettő ugyanúgy viselkedik, amikor a Sway elindul (és amikor leáll, majd újra elindul), de a Sway újratöltése során különböznek. Ha a Waybart, vagy bármely más állapotsávot alparancsként hajtja végre, az újratölti az állapotsávot a Sway újratöltésekor. Ha a Waybart normál parancsként hajtja végre, akkor az nem tölti újra az állapotsávot a Sway újratöltésekor, a exec_always
használata a exec
helyett nem oldja meg ezt, csak több állapotsávot hoz létre minden Sway újratöltéskor.
Azok a felhasználók, akik gyorsan szeretnék tesztelni állapotsáv-beállításukat a Sway újratöltésével, akkor az alparancsos módszert kell választaniuk.
~/.config/sway/config
Waybar engedélyezése egy bar alparanccsalbar {
# Execute Waybar; Waybar restarts when Sway reloads.
status_command waybar
# Hide Sway's builtin status bar.
mode invisible
}
~/.config/sway/config
Waybar engedélyezése egy normál parancs segítségével# Execute Waybar; Waybar does not restart when Sway reloads.
exec waybar
Fényerő
Számos lehetőség van a háttérvilágítás fényerejének beállítására, ez akár a /sys/class/backlight/<device>/brightness fájlba történő írással is megvalósítható.
acpilight
Alternatív megoldásként a sys-power/acpilight szoftvercsomag is képes ugyanazokat a fényerő beállításokat elvégezni egy xbacklight kompatibilis parancs segítségével:
~/.config/sway/config
Billentyűparancsok beállítása a képernyő fényerejének támogatásáhozbindsym XF86MonBrightnessDown exec xbacklight -dec 2
bindsym XF86MonBrightnessUp exec xbacklight -inc 4
brightnessctl
A app-misc/brightnessctl szoftvercsomag megtalálható a ::guru könyvtárban, és egyszerűen használható a háttérvilágítás beállításához:
~/.config/sway/config
"A brightnessctl billentyűkötések hozzáadásabindsym XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym XF86MonBrightnessUp exec brightnessctl set 5%+
Fény
A github oldal szerint a dev-libs/light szoftvercsomag jelenleg (2023-09) így nyilatkozik: "Ezt a projekt 2023. március 8 óta árvának van tekintve. Használata erősen ellenjavallt, amíg azt egy másik fejlesztő át nem veszi.". A szoftvercsomag jelenleg továbbra is megtalálható a Gentoo ebuild szoftvercsomag-tárolóban, de a felhasználóknak érdemes figyelembe venniük a fejlesztő üzenetét.
A dev-libs/light szoftvercsomag használható a háttérvilágítás és a fényerő beállítására. Íme egy példa a beállításra:
~/.config/sway/config
Billentyűparancsok beállítása a képernyő fényerejének támogatásáhozbindsym XF86MonBrightnessDown exec light -U 2
bindsym XF86MonBrightnessUp exec light -A 4
Értesítés
A gui-apps/mako szoftvercsomag értesítési szolgáltatásként használható.
~/.config/sway/config
A mako szolgáltatás elindítása amikor a Sway elindulexec mako
Hangerő
Az XF86AudioRaiseVolume
és XF86AudioLowerVolume
billentyűkódok általában rendelkezésre állnak, és az operációs rendszer hangerejének a beállítására használhatók. Ezeket a hangkezelési háttérrendszertől függően kell kötni és beállítani.
Pipewire
Ha a PipeWire használatban van, akkor a következő beállítás alkalmazható a hangerő módosítására (Wireplumber segítségével):
~/.config/sway/config
Billentyűparancsok beállítása a hangerő módosítására PipeWire eseténbindsym XF86AudioMute exec wpctl set-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioRaiseVolume exec wpctl set-volume @DEFAULT_SINK@ 5%+
bindsym XF86AudioLowerVolume exec wpctl set-volume @DEFAULT_SINK@ 5%-
bindsym XF86AudioMicMute exec wpctl set-mute @DEFAULT_SOURCE@ toggle
Pulseaudio
Ha a pulseaudio használatban van, akkor a következő beállítás alkalmazható a hangerő módosítására:
~/.config/sway/config
Billentyűparancsok beállítása a hangerő módosítására pulseaudio eseténbindsym XF86AudioMute exec pactl set-sink-mute @DEFAULT_SINK@ toggle
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
ALSA
Ha az ALSA használatban van, akkor a következő beállítás alkalmazható a hangerő módosítására:
~/.config/sway/config
Billentyűparancsok beállítása a hangerő módosítására ALSA eseténbindsym XF86AudioRaiseVolume exec amixer -Mq set Speaker 5%+
bindsym XF86AudioLowerVolume exec amixer -Mq set Speaker 5%-
sndio
Ha a media-sound/sndio használatban van, akkor a következő beállítás alkalmazható a hangerő módosítására:
~/.config/sway/config
Billentyűparancsok beállítása a hangerő módosítására sndio eseténbindsym XF86AudioRaiseVolume exec sndioctl -f snd/default output.level=+0.05
bindsym XF86AudioLowerVolume exec sndioctl -f snd/default output.level=-0.05
Képernyőképek készítése
Egyszerű megoldás: Slurpshot használata
A Slurpshot egy script, amely egyszerűsíti a képernyőképek készítését. Csak natív Wayland alkalmazásokat használ, és lehetővé teszi csak bizonyos ablakok kiválasztását, valamint a képernyőképek előnézetét és nyomtatását mentés nélkül. Először telepítse a szoftverfüggőségeket:
root #
emerge --ask gui-apps/grim gui-apps/slurp app-misc/jq dev-libs/bemenu
Helyezze el a slurpshot scriptet a PATH egyik helyére, például a ~/bin könyvtárba, tegye futtathatóvá, és állítson be hozzá egy billentyűgombparancsot:
~/.config/sway/config
Billentyűgombparancsok beállítása a slurpshot támogatásához#
# Screen capture
#
bindsym Print exec slurpshot
Manuális megközelítés
A képernyőképek támogatásának hozzáadásához használja a grim segédprogramot (a gui-apps/grim szoftvercsomagban található). A grim
rövidítés jelentése Grab Images. Ez a segédprogram a Wayland protokoll sajátosságaihoz igazodik. A grim telepítéséhez használja a következő parancsot:
root #
emerge --ask gui-apps/grim
A kiválasztott képernyőterület határainak meghatározásának támogatásához a slurp segédprogramot, amely a gui-apps/slurp szoftvercsomagban található, a grim segédprogrammal együtt kell használni. A slurp telepítéséhez használja a következő parancsot:
root #
emerge --ask gui-apps/slurp
A vágólap támogatásának hozzáadásához a wl-clipboard segédprogram használható, amely a gui-apps/wl-clipboard szoftvercsomagban található. A wl-clipboard telepítéséhez használja a következő parancsot:
root #
emerge --ask gui-apps/wl-clipboard
Ezután szerkessze a beállításfájlt, hogy hozzáadja a billentyűgombparancsok támogatását a képernyőkép készítési műveletekhez:
~/.config/sway/config
Billentyűparancsok beállítása a képernyőkép készítésének támogatásához#
# Screen capture
#
set $ps1 Print
set $ps2 Control+Print
set $ps3 Alt+Print
set $ps4 Alt+Control+Print
set $psf $(xdg-user-dir PICTURES)/ps_$(date +"%Y%m%d%H%M%S").png
bindsym $ps1 exec grim - | wl-copy
bindsym $ps2 exec grim -g "$(slurp)" - | wl-copy
bindsym $ps3 exec grim $psf
bindsym $ps4 exec grim -g "$(slurp)" $psf
Vegye figyelembe, hogy a Print vagy a Ctrl + Print billentyűkombinációval készült képernyőkép a wl-copy
pufferbe kerül. Ez lehetővé teszi a képek közvetlen beillesztését a vágólapról anélkül, hogy fájlként kellene menteni azokat az adathordozóra.
A Alt + Print vagy a Alt + Ctrl + Print billentyűkombinációk esetében az automatikus mentési módszert alkalmazzák, amely a képet a Pictures felhasználói könyvtárba menti.
Hasonló funkció, mint egy "képmetsző eszköz"
A következő beállítással a képernyő egy területét a vágólapra lehet másolni, amikor a mod + shift + S billentyűgomb kombinációt megnyomják:
~/.config/sway/config
Hasonló funkció, mint egy "képmetsző eszköz"bindsym $mod+shift+s exec grim -g "$(slurp)" - | wl-copy
A -g kapcsoló azt mondja grim szoftvernek, hogy vágjon ki egy területet, és $(slurp) megkapja a területet. A képernyőkép a standard kimenetre kerül kimenetként, ahol a wl-copy a fájlt a vágólapra másolja.
Véletlenszerű háttérkép beállítása
Véletlenszerű háttérképet lehet egy könyvtárból kiválasztani és beállítani[1]:
~/.config/sway/config
Véletlenszerű háttérkép beállítása egy könyvtárbólset $wallpapers_path $HOME/Pictures/Wallpapers
output * bg $(find $wallpapers_path -type f | shuf -n 1) fill
Swaylock
A gui-apps/swaylock szoftvercsomag használható a jelenlegi munkamenet zárolására.
root #
emerge --ask gui-apps/swaylock
~/.config/sway/config
Munkamenetet lezárása, amikor a $mod + l billentyűgomb kombinációt lenyomjákbindsym $mod+l exec swaylock --ignore-empty-password --show-failed-attempts --color 1e1e1e
~/.config/sway/config
Színekkel kapcsolatos információkért használja a man swaylock súgótbindsym $mod+l exec swaylock --ignore-empty-password --show-failed-attempts \
--color 1e1e1e --inside-color cccccc --ring-color ffffff \
--inside-clear-color 11a8cd --ring-clear-color 29b8db \
--inside-ver-color 2472c8 --ring-ver-color 3b8eea \
--inside-wrong-color cd3131 --ring-wrong-color f14c4c
Ha a fiók zárolva van, akkor a swaylock nem jelez semmilyen információt erről, és egyszerűen nem fog működni. Egy másik TTY-re való átváltás és a bejelentkezés megkísérlése segíthet ennek diagnosztizálásában.
Swayidle
gui-apps/swayidle egy adott tétlenségi idő elteltével végrehajt egy parancsot, amely általában a képernyő zárolására és/vagy kikapcsolására szolgál.
root #
emerge --ask gui-apps/swayidle
~/.config/sway/config
Összes kijelző kikapcsolása 15 perc tétlenség utánexec swayidle -w \
timeout 900 'swaymsg "output * power off"' \
resume 'swaymsg "output * power on"'
HiDPI
A HiDPI kijelzők (4K és nagyobb felbontásúak) megjelenítésének beállításához meg kell szerezni a módosítandó kijelző nevét. Miután a sway munkamenet elindult, adja ki a következő parancsot:
user $
swaymsg -t get_outputs
A
swaymsg
USE jelölőzászlót engedélyezni kell ahhoz, hogy a swaymsg parancs elérhető legyen az operációs rendszeren.A sway beállításfájlban az output
utasítás elfogad egy scale
paramétert, amely a nagy felbontású kijelző méretezésének beállítására szolgál.
Xresources
~/.config/sway/config
Az ~/.Xresources
fájl újbóli betöltése a sway újratöltésekorexec_always test -f ~/.Xresources && xrdb -merge ~/.Xresources
GTK beállítás
Sötét mód
GTK4
A GTK4 sötét módot az alábbi parancs futtatásával lehet engedélyezni:
user $
gsettings set org.gnome.desktop.interface color-scheme prefer-dark
GTK3
A GTK3 sötét módot az alábbi beállítással lehet engedélyezni:
~/.config/gtk-3.0/config.ini
Enable gtk3 dark mode[Settings]
gtk-application-prefer-dark-theme = true
GTK2
A GTK2 esetében nincs sötét mód kapcsoló. Sötét témát kell kiválasztani:
~/.gtkrc-2.0
Sötét mód engedélyezése a GTK2-bengtk-theme-name = "Adwaita-dark"
GTK3 témák és fontok
Jelenleg a GTK betűtípust és téma beállítását a sway beállításfájljának a szerkesztésével kell elvégezni (tekintse meg a a Sway wikijét is).
~/.config/sway/config
Betűtípus és a téma beállítása a GTK alkalmazások számáraset $gnome-schema org.gnome.desktop.interface
exec_always {
gsettings set $gnome-schema gtk-theme 'theme name'
gsettings set $gnome-schema icon-theme 'icon theme name'
gsettings set $gnome-schema cursor-theme 'cursor theme name'
gsettings set $gnome-schema font-name 'Sans 10'
}
Ha problémák merülnek fel az egérkurzor beállításával bizonyos alkalmazásokban (beleértve a sway-t is), akkor ez segíthet:
~/.config/sway/config
Kurzor témájának a beállításaseat seat0 xcursor_theme custom_cursor_theme custom_cursor_size
Cserélje ki a custom_cursor_theme és custom_cursor_size értékeket. Az Adwaita és a 24 gyakorlatilag alapértelmezettek minden Linux-disztribúcióban.
Automatikusan lebegő ablakok
Alapértelmezés szerint a Sway új ablakokat csempézési módban nyit meg. Az alábbi beállítás kódrészlet sok gyakori ablakot, amelyeknek lebegniük kellene, lebegővé tesz:
for_window [window_role = "pop-up"] floating enable
for_window [window_role = "bubble"] floating enable
for_window [window_role = "dialog"] floating enable
for_window [window_type = "dialog"] floating enable
for_window [window_role = "task_dialog"] floating enable
for_window [window_type = "menu"] floating enable
for_window [app_id = "floating"] floating enable
for_window [app_id = "floating_update"] floating enable, resize set width 1000px height 600px
for_window [class = "(?i)pinentry"] floating enable
for_window [title = "Administrator privileges required"] floating enable
Firefox finomhangolások
for_window [title = "About Mozilla Firefox"] floating enable
for_window [window_role = "About"] floating enable
for_window [app_id="firefox" title="Library"] floating enable, border pixel 1, sticky enable
for_window [title = "Firefox - Sharing Indicator"] kill
for_window [title = "Firefox — Sharing Indicator"] kill
Steam finomhangolások
for_window [class="^Steam$" title="^Friends$"] floating enable
for_window [class="^Steam$" title="Steam - News"] floating enable
for_window [class="^Steam$" title=".* - Chat"] floating enable
for_window [class="^Steam$" title="^Settings$"] floating enable
for_window [class="^Steam$" title=".* - event started"] floating enable
for_window [class="^Steam$" title=".* CD key"] floating enable
for_window [class="^Steam$" title="^Steam - Self Updater$"] floating enable
for_window [class="^Steam$" title="^Screenshot Uploader$"] floating enable
for_window [class="^Steam$" title="^Steam Guard - Computer Authorization Required$"] floating enable
for_window [title="^Steam Keyboard$"] floating enable
Szolgáltatás
OpenRC
OpenRC alapú operációs rendszereken az elogind szolgáltatást hozzá kell adni a boot futási szinthez.
root #
rc-update add elogind boot
Használat
Sway elindítása
Sway elindításához dbus-szal szükséges, hogy az XDG_RUNTIME_DIR be legyen állítva. Ha használják, akkor az elogind vagy systemd ezt beállítja. A dbus-run-session kihagyása futásidejű hibákhoz vezethet.
Sway elindítása elogind nélkül.
Sway automatikus indítása TTY bejelentkezéssel
A Sway elindításához az első TTY bejelentkezéskor:
~/.bashrc
Sway elindítása az első TTY-be való bejelentkezés utánif [ -z "${WAYLAND_DISPLAY}" ] && [ "${XDG_VTNR}" -eq 1 ]; then
dbus-run-session sway
fi
Automatikus bejelentkezés a tty1-re
Az automatikus bejelentkezés engedélyezéséhez a tty1-re, a --skip-login
és a --login-options
hozzáadható a tty1 agetty példányához, amely a /etc/inittab fájlban van meghatározva:
/etc/inittab
Automatikus bejelentkezés OrbanViktor felhasználóként a tty1-rec1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux --skip-login --login-options OrbanViktor
Sway elindítása manuálisan
user $
dbus-run-session sway
Sway elindítása egy szkript segítségével
Ez a módszer egy szkriptet használ arra, hogy kényszerítve átvegye az irányítást egy virtuális terminál felett, és elindítsa benne a Sway-t. Az általános felhasználási eset az, hogy automatikusan indítsa el a Sway-t az operációs rendszer bootolásakor.
A Sway-t így nem szabad elindítani. A szkriptet esetleg finomhangolni kell, hogy működjön.
/usr/sbin/sway_launcher
Sway indító szkript#!/bin/sh
# Sway elindítása egy konkrét felhasználóval, egy adott virtuális terminálról (vt).
# Két argumentumot kell megadni: egy felhasználónevet (például OrbanViktor) és egy szabad vt azonosítóját (például 7).
# A tty előkészítése a felhasználó számára. A vtX a /dev/ttyX-et használja.
chown "$1" "/dev/tty${2}"
chmod 600 "/dev/tty${2}"
# Egy tiszta környezet beállítása a felhasználó számára. Aztán egy cél virtuális terminál átvétele (vt), majd a Sway elindítása.
su --login --command "openvt --switch --console ${2} -- sway >\${HOME}/.sway_autolauncher.log 2>&1" "$1"
# Ez a szkript azonnal visszatér.
Ennek a szkriptnek van néhány korlátja:
- Az XDG_RUNTIME_DIR változó értékének meghatározottnak és érvényesnek kell lennie. Tekintse meg a fenti szakaszt.
- Ha az openvt esetében nem használják a
--switch
opciót, akkor a Sway lefagy, amikor megpróbál átváltani egy másik VT-re (Ctrl + Alt + Fn). Függetlenül attól, hogy ez hiba-e vagy sem (a cikk írásának időpontjában még nem lett kiderítve), bekövetkezik a lefagyás. - A VT nem tisztul meg, amikor a Sway kilép, törölje azt a deallocvt futtasásával.
- Hasonlóképpen, a TTY tulajdonosa és módja nem áll vissza az alapértelmezett értékekre, amikor a Sway kilép.
Ennek a szkriptnek a bootoláskor történő elindítása a local szolgáltatás segítségével hajtható végre.
/etc/local.d/sway.start
Sway elindítása a számítógép bootolásakor#!/bin/sh
sway_launcher OrbanViktor 7
Sway indítása elogind vagy systemd nélkül
Azoknak az operációs rendszereknek, amelyek nincsenek systemd-vel vagy elogind-del beállítva, létre kell hozniuk egy shell szkriptet (vagy más módszert kell használniuk) az XDG_RUNTIME_DIR változó beállításához.
A környezeti változót a szokásos beállításfájlokban lehet meghatározni. Például, ha OrbanViktor az XDG_RUNTIME_DIR változót a shell beállítás fájljában állítja be, és úgy döntött, hogy a könyvtár a /tmp helyen lesz:
/home/OrbanViktor/.bash_profile
XDG_RUNTIME_DIR környezeti változó beállítása#!/bin/sh
if test -z "${XDG_RUNTIME_DIR}"; then
export XDG_RUNTIME_DIR=/tmp/"${UID}"-runtime-dir
if ! test -d "${XDG_RUNTIME_DIR}"; then
mkdir "${XDG_RUNTIME_DIR}"
chmod 0700 "${XDG_RUNTIME_DIR}"
fi
fi
Az XDG_RUNTIME_DIR változó meghatározásával a Sway a szokásos módon indítható el:
user $
dbus-run-session sway
Ha problémák merülnek fel, akkor ellenőrizze a Sway problémákat a GitHubon, mielőtt kapcsolatba lépne a Sway közösséggel az IRC-n (#sway (webchat)), vagy létrehoz egy új Gentoo hibabejelentést.
Mozgás
Minden billentyűgomb kombinációt a ~/.config/sway/config beállításfájlban kell meghatározni.
A Super billentyűgomb alapértelmezetten a $mod
értékként van meghatározva. A legtöbb billentyűzeten ez a Windows billentyűgomb lesz.
A Sway rendelkezik egy Vi szövegszerkesztőszerű felülettel. A mozgáshoz a h (balra), j (le), k (fel), és l (jobbra) billentyűgombok használhatók, a nyílbillentyűk mellett.
A fókusz mozgatható a mod + Iránybillentyű kombinációval, az ablakok pedig a mod + Shift + Iránybillentyű kombinációval mozgathatóak:
~/.config/sway/config
Alapértelmezett mozgások meghatározásabindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right
További információért tekintse meg a man 5 sway-input súgót.
Hasznos billentyűgomb kötések
~/.config/sway/config
Munkaterületek közötti váltás a mod + Control + Bal nyíl és a mod + Control +Jobb nyíl billentyűkombinációvalbindsym $mod+control+Right workspace next
bindsym $mod+control+Left workspace prev
Elrendezések
Alapértelmezés szerint a Sway csempés elrendezést használ. Az elrendezési módok a következő alapértelmezett billentyűgomb kombinációkkal válthatók:
- mod + b - Vízszintes felosztás.
- mod + v - Függőleges felosztás.
- mod + s - Halmozás.
- mod + w - Lapozott.
- mod + e - Felosztás átkapcsolása.
- mod + shift + space - Lebegőmód átkapcsolása.
~/.config/sway/config
Alapértelmezett elrendezési meghatározásokbindsym $mod+b splith
bindsym $mod+v splitv
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split
bindsym $mod+Shift+space floating toggle
Terminál
Az alapértelmezett billentyűgomb kombináció egy terminálemulátor megnyitásához: $mod + Enter .
Foot Server
A Foot egy minimalista Wayland terminálemulátor, amely beállítható szerverként történő futtatásra, ezzel csökkentve az erőforrás-használatot.
~/.config/sway/config
Foot szerver elindítása a Sway-alexec foot -s
~/.config/sway/config
Alapértelmezett terminál beállítása, hogy foot kliens terminálalkalmazás legyenset $term footclient
Ha a foot szerver Sway használatával indul, akkor előfordulhat, hogy nem indul el elég gyorsan ahhoz, hogy automatikusan elindítson egy szolgáltatást is. Az exec swaymsg "workspace 2; exec $term {command}" elég lassú lehet ahhoz, hogy enyhítse ezt a problémát.
Funkciók hozzáadása
A Sway úgy lett kialakítva, hogy könnyen bővíthető legyen, így az új funkciók hozzáadása egyszerűen elvégezhető:
~/.config/sway/config
A htop elindítása amikor megnyomja a control + shift + esc billentyűgomb kombinációtbindsym control+shift+escape exec $term htop
Ha a foot szoftvert használja, akkor az app_id, amelyet -a-val állít be, automatikusan lebegésre állítható:
~/.config/sway/config
A htop elindítása lebegő módban, amikor megnyomja a control + shift + esc billentyűgomb kombinációtbindsym control+shift+escape exec $term -a 'flying-foot' htop
for_window [app_id="flying-foot"] floating enable
Bal és jobb irányba történő mozgás a nem létező munkaterületekkel
A Sway balra (prev
) vagy jobbra (next
) tud váltani a munkaterületek között, amennyiben létezik olyan munkaterület, amelyre az adott irányban váltani lehet. Ez magában foglalja a konténerek áthelyezését is ezekre a munkaterületekre.
~/.config/sway/config
set $super mod4
bindsym $super+alt+left workspace prev
bindsym $super+alt+right workspace next
bindsym $super+control+alt+left move container to workspace prev, workspace prev
bindsym $super+control+alt+right move container to workspace next, workspace next
Ahhoz, hogy nem létező munkaterületekre lehessen váltani, készíthetünk egy szkriptet, amely megmondja a Swaynek, hogy váltson egy adott munkaterületre:
~/.config/sway/config
set $super mod4
set $num_of_workspaces 10
bindsym $super+alt+left exec swaymsg -pt get_workspaces | gawk -f ~/.config/sway/workspace.gawk -v move_type="left" -v num_of_workspaces=$num_of_workspaces
bindsym $super+alt+right exec swaymsg -pt get_workspaces | gawk -f ~/.config/sway/workspace.gawk -v move_type="right" -v num_of_workspaces=$num_of_workspaces
bindsym $super+control+alt+left exec swaymsg -pt get_workspaces | gawk -f ~/.config/sway/workspace.gawk -v move_type="container_left" -v num_of_workspaces=$num_of_workspaces
bindsym $super+control+alt+right exec swaymsg -pt get_workspaces | gawk -f ~/.config/sway/workspace.gawk -v move_type="container_right" -v num_of_workspaces=$num_of_workspaces
~/.config/sway/workspace.gawk
#!/bin/gawk -f
$3 == "(focused)" {
switch(move_type) {
case "left":
if ($2 == 1)
$2=num_of_workspaces+1
system("sway workspace "$2-1)
exit
case "right":
if ($2 == num_of_workspaces)
$2=0
system("sway workspace "$2+1)
exit
case "container_left":
if ($2 == 1)
$2=num_of_workspaces+1
system("sway move container to workspace "$2-1", workspace "$2-1)
exit
case "container_right":
if ($2 == num_of_workspaces)
$2=0
system("sway move container to workspace "$2+1", workspace "$2+1)
exit
}
}
Hibaelhárítás
Nem működik a képernyőmegosztás
Győződjön meg arról, hogy a gui-libs/xdg-desktop-portal-wlr szoftvercsomag telepítve van. Alapértelmezés szerint a D-Bus automatikusan elindítja, de nem működik, mert a D-Bus munkamenet a Sway előtt indul el, és szüksége van a Sway által exportált környezeti változókra. A javításhoz frissítse a D-Bus környezetet az alábbi sor hozzáadásával a Sway beállításnak az elejére:
~/.config/sway/config
exec --no-startup-id dbus-update-activation-environment --all
Nézze meg a ezen a linken, hogy a PipeWire megfelelően működik-e. Győződjön meg arról, hogy az XDG_CURRENT_DESKTOP értéke sway (tehát XDG_CURRENT_DESKTOP=sway).
Nem sikerült csatlakozni a felhasználói buszhoz
[swaybar/tray/tray.c:42] Failed to connect to user bus: No such file or directory
- Fórumtéma: [swaybar/tray/tray.c:42] Nem sikerült csatlakozni a felhasználói buszhoz: Nincs ilyen fájl vagy könyvtár => Használja a dbus-run-session sway parancsot.
- Fórumtéma: sway(bar) tálca támogatással
- https://github.com/swaywm/sway/issues/1415
Figyelmeztetés: Nincsenek betöltött ikontémák
[swaybar/tray/icon.c:348] Warning: no icon themes loaded
A x11-themes/hicolor-icon-theme szoftvercsomagot keresi.
Egyetlen backend sem tudta megnyitni a helyet
[ERROR] [wlr] [libseat] [libseat/libseat.c:78] No backend was able to open a seat
Egy helykezelő szolgáltatásra van szükség, például sys-auth/seatd vagy sys-auth/elogind. Ellenőrizze azt is, hogy szükséges-e a XDG_RUNTIME_DIR beállítása.
Ha a sys-auth/seatd szoftvercsomag van használatban, akkor szükséges a server USE jelölőzászló.
Alkalmazások elfelejtik a bejelentkezéseket
Néhány alkalmazás (például net-misc/nextcloud-client) egy Secret-Service-Agent szoftvert használ a bejelentkezési adatok mentéséhez. Ha az alkalmazások minden indításkor kérik az felhasználói fiókhoz tartozó bejelentkezési adatokat, akkor annak az oka lehet egy helytelenül beállított Secret-Service-Agent.
Először az emerge parancs kiadásával töltse le és telepítse a gnome-base/gnome-keyring szoftvercsomagot.
root #
emerge --ask gnome-base/gnome-keyring
Ekkor engedélyezze a gnome-keyring
USE jelölőzászlót.
/etc/portage/package.use
# Sway Secret-Service-Agent
*/* gnome-keyring
Frissítse az operációs rendszert az új USE jelölőzászló alkalmazásához.
root #
emerge -avuDN @world
A Sway munkamenetbe történő bejelentkezéskor az Agent tárolójának futtatásához és feloldásához szerkessze ezt a két fájlt.
~/.config/sway/config
exec dbus-update-activation-environment --all
exec gnome-keyring-daemon --start --components=secrets
exec export $(gnome-keyring-daemon)
/etc/pam.d/login
auth optional pam_gnome_keyring.so
password optional pam_gnome_keyring.so
session optional pam_gnome_keyring.so auto_start
További olvasnivaló a témában
- i3 — a minimalist tiling window manager, completely written from scratch.
- Wayland — a replacement for the X11 window system protocol and architecture with the aim to be easier to develop, extend, and maintain
- Weston — a reference implementation of a Wayland compositor.
Hivatkozások
- ↑ https://github.com/swaywm/sway/issues/1269
- ↑ https://github.com/Madic-/Sway-DE/blob/master/config/sway/sway.d/06_floating.conf
- ↑ https://github.com/Madic-/Sway-DE/blob/master/config/sway/sway.d/06_floating.conf
- ↑ https://github.com/Madic-/Sway-DE/blob/master/config/sway/sway.d/06_floating.conf
- ↑ https://github.com/Madic-/Sway-DE/blob/master/config/sway/sway.d/06_floating.conf
- ↑ https://github.com/swaywm/sway#running