Sway

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Sway and the translation is 100% complete.

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.

FILE ~/.config/sway/configBal oldali kijelző beállítása, amely fizikailag valamivel nagyobb, mint az elsődleges kijelző
output DP-1 resolution 3440x1440@165hz pos 2560 350
FILE ~/.config/sway/configElsődleges kijelző beállítása, amely középen van elhelyezve
output DP-2 resolution 2560x1440@74.971hz pos 0 250
FILE ~/.config/sway/configAlternatív kijelző beállítása, amely függőleges
output 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
FILE ~/.config/sway/configEgérgyorsítás letiltása, és a mutató sebességének csökkentése
input "1133:49291:Logitech_G502_HERO_Gaming_Mouse" {
    accel_profile "flat"
    pointer_accel -0.1
}
FILE ~/.config/sway/configAnnak engedélyezése, hogy az érintőpadon a koppintás kattintásként legyen értelmezve
input type:touchpad {
    tap enabled
}
Tip
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.

bemenu

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
FILE ~/.config/sway/configSway beállítása úgy, hogy a bemenu legyen használva
set $menu bemenu-run --no-exec | xargs -r swaymsg exec --
FILE ~/.config/sway/configSway beállítása úgy, hogy a bemenu legyen használva, üres prompttal
set $menu bemenu-run --no-exec -p "" | xargs -r swaymsg exec --
Tip
A --line-height (-H) értéke beállítható 26-ra, hogy a bemenu magassága megegyezzen a waybar magasságával.

wmenu

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
Note
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:

FILE ~/.config/sway/configSway beállítása a wmenu használatára
set $menu wmenu-run | xargs swaymsg exec --
FILE ~/.config/sway/configSway beállítás úgy, hogy a wmenu legyen használva, üres prompttal
set $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.

FILE ~/.config/sway/configWaybar engedélyezése egy bar alparanccsal
bar {
        # Execute Waybar; Waybar restarts when Sway reloads.
        status_command waybar
 
        # Hide Sway's builtin status bar.
        mode invisible
}
FILE ~/.config/sway/configWaybar 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:

FILE ~/.config/sway/configBillentyűparancsok beállítása a képernyő fényerejének támogatásához
bindsym 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:

FILE ~/.config/sway/config"A brightnessctl billentyűkötések hozzáadása
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
bindsym XF86MonBrightnessUp exec brightnessctl set 5%+

Fény

Warning
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:

FILE ~/.config/sway/configBillentyűparancsok beállítása a képernyő fényerejének támogatásához
bindsym 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ó.

FILE ~/.config/sway/configA mako szolgáltatás elindítása amikor a Sway elindul
exec 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):

FILE ~/.config/sway/configBillentyűparancsok beállítása a hangerő módosítására PipeWire esetén
bindsym 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:

FILE ~/.config/sway/configBillentyűparancsok beállítása a hangerő módosítására pulseaudio esetén
bindsym 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:

FILE ~/.config/sway/configBillentyűparancsok beállítása a hangerő módosítására ALSA esetén
bindsym 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:

FILE ~/.config/sway/configBillentyűparancsok beállítása a hangerő módosítására sndio esetén
bindsym 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:

FILE ~/.config/sway/configBillentyű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:

FILE ~/.config/sway/configBillentyű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:

FILE ~/.config/sway/configHasonló funkció, mint egy "képmetsző eszköz"
bindsym $mod+shift+s exec grim -g "$(slurp)" - | wl-copy
Note
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]:

FILE ~/.config/sway/configVéletlenszerű háttérkép beállítása egy könyvtárból
set $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
FILE ~/.config/sway/configMunkamenetet lezárása, amikor a $mod + l billentyűgomb kombinációt lenyomják
bindsym $mod+l exec swaylock --ignore-empty-password --show-failed-attempts --color 1e1e1e
FILE ~/.config/sway/configSzínekkel kapcsolatos információkért használja a man swaylock súgót
bindsym $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
Warning
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
FILE ~/.config/sway/configÖsszes kijelző kikapcsolása 15 perc tétlenség után
exec 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
Note
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

FILE ~/.config/sway/configAz ~/.Xresources fájl újbóli betöltése a sway újratöltésekor
exec_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:

FILE ~/.config/gtk-3.0/config.iniEnable 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:

FILE ~/.gtkrc-2.0Sötét mód engedélyezése a GTK2-ben
gtk-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).

FILE ~/.config/sway/configBetűtípus és a téma beállítása a GTK alkalmazások számára
set $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:

FILE ~/.config/sway/configKurzor témájának a beállítása
seat 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:

FILE ~/.config/sway/configÉszszerűbb lebegőablakok[2]
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

FILE ~/.config/sway/configReleváns Firefox ablakok beállítása lebegőmódba[3]
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
FILE ~/.config/sway/configMegosztási indikátor ablak eltávolítása a Firefoxból.[4]
for_window [title = "Firefox - Sharing Indicator"] kill
for_window [title = "Firefox — Sharing Indicator"] kill

Steam finomhangolások

FILE ~/.config/sway/configSteam párbeszédablakainak beállítása lebegő módba[5]
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

Tip
Noha hivatalosan nem támogatott, néhány display manager működhet a sway-jel.[6]
Important
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 automatikus indítása TTY bejelentkezéssel

A Sway elindításához az első TTY bejelentkezéskor:

FILE ~/.bashrcSway elindítása az első TTY-be való bejelentkezés után
if [ -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:

FILE /etc/inittabAutomatikus bejelentkezés OrbanViktor felhasználóként a tty1-re
c1: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.

Note
A Sway-t így nem szabad elindítani. A szkriptet esetleg finomhangolni kell, hogy működjön.
FILE /usr/sbin/sway_launcherSway 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.

FILE /etc/local.d/sway.startSway 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:

FILE /home/OrbanViktor/.bash_profileXDG_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:

FILE ~/.config/sway/configAlapértelmezett mozgások meghatározása
bindsym $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

FILE ~/.config/sway/configMunkaterületek közötti váltás a mod + Control + Bal nyíl és a mod + Control +Jobb nyíl billentyűkombinációval
bindsym $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.
FILE ~/.config/sway/configAlapértelmezett elrendezési meghatározások
bindsym $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.

FILE ~/.config/sway/configFoot szerver elindítása a Sway-al
exec foot -s
FILE ~/.config/sway/configAlapértelmezett terminál beállítása, hogy foot kliens terminálalkalmazás legyen
set $term footclient
Note
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ő:

FILE ~/.config/sway/configA htop elindítása amikor megnyomja a control + shift + esc billentyűgomb kombinációt
bindsym 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ó:

FILE ~/.config/sway/configA htop elindítása lebegő módban, amikor megnyomja a control + shift + esc billentyűgomb kombinációt
bindsym 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.

FILE ~/.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:

FILE ~/.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
FILE ~/.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:

FILE ~/.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

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.

Important
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.

FILE /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.

FILE ~/.config/sway/config
exec dbus-update-activation-environment --all
exec gnome-keyring-daemon --start --components=secrets
exec export $(gnome-keyring-daemon)
FILE /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