User:Wacek/brudnopis i3

From ArchWiki

i3 to dynamiczny menedżer okien kafelkowych zainspirowany wmii, skierowany przede wszystkim do programistów i zaawansowanych użytkowników.

Stwierdzone cele dla i3 obejmują przejrzystą dokumentację, odpowiednią obsługę wielu monitorów, strukturę drzewa dla Windows i różne tryby, takie jak vim.

Instalacja

i3 można zainstalować z pakietem i3-wm.

Dostępna jest również grupa pakietów i3. Zawiera menedżera okien, blokadę ekranu i dwa programy, które zapisują linię statusu do i3bar poprzez stdout

Note: i3-wm conflicts with i3-gaps and by default i3-gaps (a fork of i3 with gaps and other features) will be installed.

Additional packages are available in the Arch User Repository. See #Patches for examples.

Dodatkowe pakiety są dostępne w Arch User Repository. Przykłady #Patches

Starting

From tty

Uruchom i3 z xinit.

Display manager

i3-wm includes i3.desktop as Xsession which starts the window manager. i3-with-shmlog.desktop enables logs (useful for debugging). i3-gnomeAUR/i3-gnome-gitAUR integrates i3 into GNOME.

Używanie

Aby uzyskać więcej informacji, zobacz oficjalną dokumentację, a mianowicie Podręcznik użytkownika i3..

Skróty klawiszowe

W i3 polecenia są wywoływane za pomocą klawisza modyfikującego, zwanego $mod. Domyślnie jest to Alt (Mod1), a Super (Mod4) jest popularną alternatywą. Super to klawisz zwykle reprezentowany na klawiaturze jako ikona Windows lub na klawiaturze Apple jako klawisz Command.

Informacje na temat ustawień domyślnych można znaleźć na karcie referencyjnej i3 i Korzystanie z i3 Zobacz Keyboard bindings, aby dodać nowe skróty.

Użytkownicy układów klawiatury innych niż Qwerty mogą chcieć ominąć „kreatora konfiguracji”, jak opisano poniżej..

Jeśli przełączasz się między wieloma menedżerami okien lub środowiskami pulpitu, rozważ użycie sxhkd lub innego agnostycznego programu do zarządzania powiązaniami. Więcej informacji można znaleźć Keyboard shortcuts#Xorg.

Containers and layouts

i3 manages windows in a tree structure, with containers as building blocks. This structure branches with horizontal or vertical splits. Containers are tiled by default, but can be set to tabbed or stacking layouts, as well as made floating (such as for dialog windows). Floating windows are always on top.

See i3 Tree and Containers and the tree data structure for details.

Program uruchamiający aplikacje

i3 używa dmenu jako programu uruchamiającego aplikacje, który jest domyślnie powiązany z $ $mod+d. Ponieważ jest to opcjonalna zależność, przed użyciem tej funkcji należy najpierw zainstalować dmenu.

i3-wm zawiera i3-dmenu-desktop', wrapper Perl dla dmenu, które wykorzystuje wpisy pulpitu do utworzenia listy wszystkich zainstalowanych aplikacji. Alternatywnie można użyć pakietu j4-dmenu-desktop-gitAUR

KRunner jako program uruchamiający aplikacje w KDE Plasma/i3

Podczas uruchamiania KDE Plasma DE z KDEWM=/usr/bin/i3, można ustawić KRunner jako alternatywny program uruchamiający za pomocą $mod+d, dodając następujące elementy do konfiguracji i3:

~/.config/i3/config
set $menu --no-startup-id qdbus org.kde.krunner /App display
bindsym $mod+d exec $menu

Konfiguracja

Szczegółowe informacje zawiera temat Configuring i3 . Pozostała część tego artykułu zakłada, że plik konfiguracyjny i3 znajduje się w folderze ~~/.config/.

Kreator konfiguracji i alternatywne układy klawiatury

Przy pierwszym uruchomieniu i3 oferuje uruchomienie kreatora konfiguracji i3-config-wizard. To narzędzie tworzy ~/.config/i3/config przepisując plik konfiguracyjny szablonu w /etc/i3/config.keycodes. Wprowadza dwie modyfikacje do domyślnego szablonu:

  1. Prosi użytkownika o wybranie domyślnego klawisza modyfikującego, który dodaje do szablonu jako pojedynczą linię, np. set $mod Mod1; i
  2. zastępuje wszystkie linie bindcode liniami 'bindsym odpowiadającymi bieżącemu układowi klawiatury użytkownika.

Krok 2 ma na celu zapewnienie, że cztery skróty nawigacyjne, j, k, l i „średnik” na klawiaturze Qwerty zostaną zmapowane do kluczy o tej samej lokalizacji, np. h, {ic|t}}, n, s na klawiaturze Dvorak. Efektem ubocznym tej magii jest to, że do piętnastu innych kluczy można odwzorować w sposób, który łamie mnemoniki - tak, że dla użytkownika Dvoraka „restart” jest powiązany z $mod1+p zamiast $ $mod1+r ” split poziomo ”jest związany z $mod1+d zamiast $mod1+h i tak dalej.

Dlatego użytkownicy alternatywnych układów klawiatury, którzy chcą prostych powiązań klawiszy, które pasują do powiązań podanych w samouczkach, mogą preferować obejście „kreatora konfiguracji”. Można to zrobić po prostu kopiując /etc/i3/config do ~/.config/i3/config (lub {ic|~/.i3/config}}) i edytując ten plik.

Pamiętaj, że możliwa jest również konfiguracja oparta na kodzie kluczowym, np. dla użytkowników, którzy często przełączają się między układami klawiatury, ale chcą, aby powiązania i3 pozostały takie same.

Autostart

Dodaj polecenie exec w pliku {{ic|~/.config/i3/config}. Na przykład:

exec terminator

Alternatywnie możesz skorzystać z XDG Autostart.

Schematy kolorów

Plik konfiguracyjny pozwala na dostosowanie kolorów dekoracji okien, ale składnia uniemożliwia tworzenie lub udostępnianie motywów. Istnieje kilka projektów, które to ułatwiają i obejmują różnorodne motywy dodane przez użytkowników.

  • j4-make-config — Połącz swoją konfigurację z kolekcją motywów lub osobistych części konfiguracji, na przykład konfiguracją specyficzną dla hosta, umożliwiając szybką zmianę motywu i elastyczne, dynamiczne dostosowywanie konfiguracji
https://github.com/okraits/j4-make-config || j4-make-config-gitAUR

i3bar

Oprócz wyświetlania informacji o obszarze roboczym, i3bar może działać jako dane wejściowe dla i3status lub alternatywy, takiej jak te wymienione w następnej sekcji. Na przykład:

~/.config/i3/config
bar {
    output            LVDS1
    status_command    i3status
    position          top
    mode              hide
    workspace_buttons yes
    tray_output       none
    
    font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1

    colors {
        background #000000
        statusline #ffffff

        focused_workspace  #ffffff #285577
        active_workspace   #ffffff #333333
        inactive_workspace #888888 #222222
        urgent_workspace   #ffffff #900000
    }
}

Zobacz the Configuring i3bar dla szczegółów.

i3bar alternatywy

Niektórzy użytkownicy mogą preferować panele, takie jak te oferowane przez konwencjonalne środowiska pulpitu. Można to osiągnąć w i3, uruchamiając wybraną aplikację panelową podczas uruchamiania.

Na przykład, aby użyć panelu Xfce (xfce4-panel), dodaj następujący wiersz w dowolnym miejscu ~/.config/i3/config:

exec --no-startup-id xfce4-panel --disable-wm-check

i3bar można wyłączyć, komentując sekcję bar{ } w ~/.config/i3/config lub definiując skrót klawiszowy do przełączania paska:

~/.config/i3/config
# bar toggle, hide or show 
bindsym $mod+m bar mode toggle

Zamienniki niezależne od środowiska pulpitu są wymienione poniżej:

  • polybar — Szybkie i łatwe w użyciu narzędzie do tworzenia pasków stanu.
https://github.com/jaagr/polybar || polybarAUR
  • excalibar — Lekki, ale konfigurowalny pasek stanu napisany w C.
https://github.com/cylgom/excalibar || excalibar-gitAUR

i3status

Skopiuj domyślne pliki konfiguracyjne do katalogu domowego:

$ cp /etc/i3status.conf ~/.config/i3status/config

Nie wszystkie wtyczki są zdefiniowane w konfiguracji domyślnej, a niektóre wartości konfiguracji mogą być nieprawidłowe dla twojego systemu, dlatego należy je odpowiednio zaktualizować. Szczegóły w i3status(1).

Zamienniki i3status

  • conky — Wysoce rozszerzalny monitor systemu. Do korzystania z i3bar zobacz ten tutorial
https://github.com/brndnmtthws/conky || conky
  • i3blocks — Rozszerzalny poprzez skrypty powłoki. Może obsługiwać zdarzenia kliknięcia, przerwania i definiowanie interwałów odświeżania dla poszczególnych bloków.
https://github.com/vivien/i3blocks || i3blocks, i3blocks-gitAUR
  • i3pystatus — Rozszerzalny pasek stanu Python 3 z domyślnie wieloma wtyczkami i opcjami konfiguracji.
https://github.com/enkore/i3pystatus i3pystatus || i3pystatus-gitAUR
  • i3situation — Kolejny generator paska stanu Python 3.
https://github.com/HarveyHunt/i3situation || i3situation-gitAUR
  • j4status — Zapewnia linię statusu, konfigurowalną za pomocą wtyczek i napisaną w C. Dodatkowe wtyczki są dostarczane przez j4status-plugins-gitAUR.
https://sardemff7.github.io/j4status/ || j4status-gitAUR
  • goi3bar — Zamiennik i3status napisany w Go. Plik konfiguracyjny sterowany kilkoma wtyczkami, opcjami współbieżności i bogatą obsługą wtyczek.
https://github.com/denbeigh2000/goi3bar/ || goi3bar-gitAUR
  • goblocks — Szybki, lekki zamiennik i3status napisany w Go.
https://github.com/davidscholberg/goblocks || goblocksAUR
  • bumblebee-status — Generator pasków stanu w Python.
https://github.com/tobi-wan-kenobi/bumblebee-status || bumblebee-statusAUR bumblebee-status-gitAUR
  • ty3status — Zamiennik i3status napisany w Typescript. Zbudowany z obsługą javascript.
https://github.com/mrkmg/ty3status || ty3status-gitAUR
  • i3status-rust — Wysoce wydajny i bogaty w funkcje zamiennik napisany w języku Rust.
https://github.com/greshake/i3status-rust || i3status-rust-gitAUR

i3status wrappers

  • i3cat — wrapper typu go, które może łączyć dane wejściowe z wielu źródeł zewnętrznych. Może obsługiwać zdarzenia kliknięcia i przekazywać określone przez użytkownika sygnały do swoich podprocesów.
http://vincent-petithory.github.io/i3cat/ || i3cat-gitAUR
  • py3status — Rozszerzalny wrapper i3status napisany w języku Python.
https://github.com/ultrabug/py3status || py3status
  • YaGoStatus — Jeszcze inny zamiennik i3status napisany w Go.
https://github.com/burik666/yagostatus || yagostatus-gitAUR

Iconic fonts in the status bar

i3bar can be patched for XBM icon support, but you can use iconic font sets instead.

  • ttf-font-awesome — Scalable vector icons that can be customized with CSS. A cheatsheet shows the Unicode point for each glyph.
http://fortawesome.github.io/Font-Awesome/ || ttf-font-awesome
  • ttf-font-icons — Non-overlapping and consistently sized mix of Awesome and Ionicons. This also avoids minor overlapping between DejaVu Sans and Awesome.
http://kageurufu.net/icons.pdf || ttf-font-iconsAUR.
  • ttf-ionicons — The premium icon font for Ionic Framework.
https://ionicframework.com/docs/ionicons/ || ttf-ionicons.

Aby połączyć czcionki, zdefiniuj sekwencję cofania czcionek w pliku konfiguracyjnym, oddzielając czcionki za pomocą , w następujący sposób:

~/.config/i3/config
bar {
  ...
  font pango:DejaVu Sans Mono, Icons 8
  ...
}

In accordance with pango syntax, font size is specified only once, at the end of the comma-separated list of font families. Setting a size for each font would cause all but the last font to be ignored.

Add icons to the format strings in ~/.config/i3status/config using the unicode numbers given in the cheatsheets linked above. The input method will vary between text editors. For instance, to insert the "heart" icon (unicode number f004):

This article or section is a candidate for merging with Internationalization.

Notes: Should be described in one place; see also ArchWiki:Requests#Input methods. (Discuss in User talk:Wacek/brudnopis i3)
  • in various gui text editors (e.g. gedit, Leafpad) and terminals (e.g. GNOME Terminal, xfce4-terminal): Ctrl+Shift+u, f004, Enter
  • in Emacs: C-x, 8, RET, f004, RET
  • in Vim (while in insert mode): Ctrl+v, uf004
  • in urxvt: while holding Ctrl+Shift, type f004

Emulator terminala

Domyślnie po naciśnięciu $mod+Return uruchamia terminal i3-sensible-terminal, który jest skryptem wywołującym terminal. Patrz i3-sensible-terminal(1) (1), aby uzyskać informacje na temat terminali

Aby zamiast tego uruchomić wybrany terminal, zmodyfikuj ten wiersz w ~/.config/i3/config:

bindsym $mod+Return exec i3-sensible-terminal

Alternatywnie ustaw zmienną środowiskową $TERMINAL.

Disable title click

Add bindsym button1 nop to not select a window when you click on it's title frame. Useful if your default layout is tabbed and you often miss click i3's tabs instead of something in an application.

Porady i wskazówki

Przejdź do otwartego okna

  • quickswitch-i3 — Narzędzie Python do szybkiej zmiany i zlokalizowania systemu Windows w i3
https://github.com/OliverUv/quickswitch-for-i3/ || quickswitch-i3AUR
  • i3-wm-scripts — wyszukaj i przejdź do okien z konkretnymi nazwami pasującymi do wyrażenia regularnego
https://github.com/yiuin/i3-wm-scripts ||
  • winmenupy — Uruchamia dmenu z listą klientów posortowanych według obszarów roboczych. Wybór klienta powoduje przejście do tego okna.
https://github.com/ziberna/i3-py/blob/master/examples/winmenu.py ||
  • rofi — Wyszukaj i przejdź do okna otwierania i notatnika
https://github.com/davatorium/rofi || rofi
  • i3-easyfocus — Ustaw ostrość i wybierz okna w i3
https://github.com/cornerman/i3-easyfocus || i3-easyfocus-gitAUR
  • wmfocus — Ustaw ostrość i wybierz okna w i3 i innych menedżerach okien
https://github.com/svenstaro/wmfocus || wmfocusAUR
  • i3-cycle-focus — Zapewnia funkcjonalność Alt-Tab dla i3
https://github.com/acrisci/i3ipc-python/blob/master/examples/i3-cycle-focus.py ||

Jump to urgent window

Dodaj do .i3/config: [1]

bindsym $mod+x [urgent=latest] focus

Zapisz i przywróć układ okna

Począwszy od wersji 4.8 i3, i3 może zapisywać i przywracać układy przestrzeni roboczej. Aby to zrobić, potrzebne są następujące pakiety: perl-anyevent-i3 i perl-json-xs z oficjalnych repozytoriów.

Note: Ta sekcja zawiera tylko szybki samouczek dotyczący zapisywania bieżącego układu okna pojedynczego obszaru roboczego i przywracania go do późniejszego wykorzystania. Więcej informacji znajduje się w oficjalnej dokumentacji

Zapisz bieżący układ okna pojedynczego obszaru roboczego

Aby zapisać bieżący układ okna, wykonaj następujące kroki:

  1. Najpierw wykonaj różne polecenia, aby otworzyć okna w preferowanym obszarze roboczym i zmienić ich rozmiar w razie potrzeby. Pamiętaj, aby zapisać każde wykonane polecenie dla każdego okna.
  2. Teraz w nowym obszarze roboczym otwórz terminal i uruchom następujące polecenie:
    i3-save-tree --workspace N > ~/.i3/workspace_N.json
    gdzie N jest numerem preferowanego obszaru roboczego. Spowoduje to zapisanie bieżącego układu obszaru roboczego N do pliku ~/.i3/workspace_N.json.
  3. Nowo utworzony plik wymaga edycji, jednak można to zrobić za pomocą następujących poleceń:
    tail -n +2 ~/.i3/workspace_N.json | fgrep -v '// split' | sed 's|//||g' > ~/.i3/workspace_N.json

Przywróć układ okna obszaru roboczego

Istnieją dwa sposoby przywrócenia układu obszaru roboczego: przez napisanie skryptu lub edycję ~/.i3/config w celu automatycznego załadowania układu. W tej części rozważany będzie tylko pierwszy przypadek, patrz oficjalna dokumentacja drugiego przypadku.

Aby przywrócić zapisany układ w poprzedniej sekcji, napisz plik o nazwie load_layout.sh o następującej treści:

  • Linie początkowe:
~/load_layout.sh
#!/bin/bash
i3-msg "workspace M; append_layout ~/.i3/workspace_N.json"

gdzie M jest liczbą obszaru roboczego, w którym chcesz załadować wcześniej zapisany układ, a N jest liczbą obszaru roboczego zapisanego w poprzedniej sekcji.

  • I polecenia użyte w poprzedniej sekcji, aby uzyskać preferowane okna, ale zamknięte w nawiasach i ze znakiem & dołączone przed ostatnimi nawiasami.

Na przykład, jeśli zapisany układ zawiera trzy okna uxterm:

~/load_layout.sh
#!/bin/bash

# First we append the saved layout of worspace N to workspace M
i3-msg "workspace M; append_layout ~/.i3/workspace_N.json"

# And finally we fill the containers with the programs they had
(uxterm &)
(uxterm &)
(uxterm &)

Następnie ustaw plik jako wykonywalny:

chmod u+x ~/load_layout.sh

I wreszcie układ obszaru roboczego N można załadować do obszaru roboczego M, uruchamiając:

~/load_layout.sh
Tip: Dodanie bindsym $mod+g exec ~/load_layout.sh do ~/.i3/config i ponowne uruchomienie i3 spowoduje powiązanie Mod+g w celu uruchomienia powyższego skryptu.
Note: Jeśli powyższy skrypt nie działa poprawnie, zapoznaj się z oficjalną dokumentacją. Sekcje swallows ~/.i3/workspace_N.json należy edytować ręcznie.

Scratchpad containers

By default, scratchpads only contain a single window. However, containers can also be made a scratchpad.

Utwórz nowy kontener (na przykład Mod+Enter), podziel go (Mod+v) i utwórz kolejny kontener. Skoncentruj element nadrzędny (Mod+a), podziel w przeciwnym kierunku (Mod+h) i utwórz ponownie.

Focus the first container (with focus parent as needed), make the window floating (Mod+Shift+Space), and move it to the scratchpad (Mod+Shift+-). You can now split containers to preference.

Note: Containers cannot be resized individually in floating windows. Resize the containers before making windows floating.
Tip: Używając tylko aplikacji terminalowych, rozważ multiplekser taki jak tmux.

Zobacz też [2] for multiple scratchpads.

Wygaszacz ekranu i zarządzanie energią

Za pomocą Power management#xss-lock możesz zarejestrować blokadę ekranu dla swojej sesji i3. Opcja -time z xautolock blokuje ekran po określonym czasie:

xautolock -time 10 -locker "i3lock -i 'background_image.png'" &

A systemd service file can be used to lock the screen before the system is being sent to sleep or hibernation state. See Power management#Suspend/resume service files. Note that i3lock requires the type of the service to be forking.

See also DPMS.

Zamknij, uruchom ponownie, ekran blokady

Kombinacje klawiszy zamykania, ponownego uruchamiania i blokady ekranu można dodać do ~/.config/i3/config. Poniższy przykład zakłada, że masz zainstalowany pakiet polkit, aby umożliwić nieuprzywilejowanym użytkownikom uruchamianie poleceń zarządzania energią.

set $Locker i3lock && sleep 1

set $mode_system System (l) lock, (e) logout, (s) suspend, (h) hibernate, (r) reboot, (Shift+s) shutdown
mode "$mode_system" {
    bindsym l exec --no-startup-id $Locker, mode "default"
    bindsym e exec --no-startup-id i3-msg exit, mode "default"
    bindsym s exec --no-startup-id $Locker && systemctl suspend, mode "default"
    bindsym h exec --no-startup-id $Locker && systemctl hibernate, mode "default"
    bindsym r exec --no-startup-id systemctl reboot, mode "default"
    bindsym Shift+s exec --no-startup-id systemctl poweroff -i, mode "default"  

    # back to normal: Enter or Escape
    bindsym Return mode "default"
    bindsym Escape mode "default"
}

bindsym $mod+Pause mode "$mode_system"

Po zakończeniu zostanie wyświetlony monit za każdym razem, gdy naciśniesz $mod+pause. Aby uzyskać bardziej złożone zachowanie, użyj osobnego skryptu i zapoznaj się z nim w trybie. [3]

Note:
  • sleep 1 dodaje niewielkie opóźnienie, aby zapobiec możliwym warunkom wyścigowym z zawieszeniem [4]
  • Argument -i dla systemctl poweroff powoduje zamknięcie systemu, nawet jeśli inni użytkownicy są zalogowani (wymaga to pakietu polkit) lub gdy logind (błędnie) zakłada to. [5]

Aby uzyskać listę alternatywnych blokad ekranu, zobacz List of applications/Security#Screen lockers.

Zewnętrzne wyświetlanie ręczne zarządzanie

Dzięki xrandr istnieje wiele sposobów łatwego zarządzania wyświetlaczami systemowymi. Poniższy przykład integruje go z plikiem konfiguracyjnym i3 i zachowuje się jak sekcja Zarządzanie energią powyżej.

Tutaj laptop z wyjściami VGA i HDMI użyje opcji menu, aby je włączyć / wyłączyć:

## Manual management of external displays
# Set the shortcuts and what they do
set $mode_display Ext Screen (v) VGA ON, (h) HDMI ON, (x) VGA OFF, (y) HDMI OFF
mode "$mode_display" {
    bindsym v exec --no-startup-id xrandr --output VGA1 --auto --right-of LVDS1, mode "default"
    bindsym h exec --no-startup-id xrandr --output HDMI1 --auto --right-of LVDS1, mode "default"
    bindsym x exec --no-startup-id xrandr --output VGA1 --auto --off, mode "default"
    bindsym y exec --no-startup-id xrandr --output HDMI1 --auto --off, mode "default"

    # back to normal: Enter or Escape
    bindsym Return mode "default"
    bindsym Escape mode "default"
}
# Declare here the shortcut to bring the display selection menu
bindsym $mod+x mode "$mode_display"

Każde okno, które jest nadal otwarte na wyłączonym wyświetlaczu, automatycznie powróci do pozostałego aktywnego wyświetlacza.

Najprostszym sposobem ustalenia nazw urządzeń jest podłączenie urządzenia, którego chcesz używać, i uruchomić:

$ xrandr --query

który wyświetli dostępne, rozpoznane urządzenia i ich nazwy systemowe, aby odpowiednio ustawić plik konfiguracyjny.

Więcej informacji można znaleźć na stronie xrandr lub stronie podręcznika man, gdzie znajduje się pełna lista dostępnych opcji, instrukcja użytkownika i3 i / lub i3 FAQ on reddit

Tabbed or stacked web-browsing

Niektóre przeglądarki internetowe celowo nie implementują kart, ponieważ zarządzanie kartami jest uważane za zadanie menedżera okien, a nie za przeglądarkę.

Aby umożliwić i3 zarządzanie przeglądarką internetową bez kart, w tym przykładzie dotyczącym uzbl dodaj następujący wiersz do ~/.config/i3/config

for_window [class="Uzbl-core"] focus child, layout stacking, focus

Dotyczy to przeglądania stron w stosach, co oznacza, że okna będą wyświetlane pionowo. Przewagą nad przeglądaniem w kartach jest to, że tytuły okien są w pełni widoczne, nawet jeśli otwartych jest wiele okien przeglądarki.

Jeśli wolisz przeglądanie w kartach, z oknami w kierunku poziomym („tabs”), użyj

for_window [class="Uzbl-core"] focus child, layout tabbed, focus

Zmienne obszaru roboczego

Ponieważ obszary robocze są definiowane wielokrotnie w i3, pomocne może być przypisanie zmiennych obszaru roboczego. Na przykład:

set $WS1 term
set $WS2 web
set $WS3 misc
set $WS4 media
set $WS5 code

Następnie zamień nazwy obszarów roboczych na odpowiadające im zmienne:

bindsym $mod+1          workspace $WS1
...
bindsym $mod+Shift+1    move container to workspace $WS1

Zobacz Changing named workspaces po więcej informacji.

Correct handling of floating dialogs

Podczas gdy okna dialogowe powinny być domyślnie otwierane w trybie swobodnym [6], wiele nadal otwiera się w trybie sąsiadująco. Aby zmienić to zachowanie, sprawdź WM_WINDOW_ROLE okna dialogowego za pomocą xorg-xprop i dodaj poprawne reguły do ~/.i3/config (używając składni pcre):

for_window [window_role="pop-up"] floating enable
for_window [window_role="task_dialog"] floating enable

Możesz także użyć reguł tytułu i wyrażeń regularnych:

for_window [title="Preferences$"] floating enable

lub WM_CLASS:

for_window [class="(?i)mplayer"] floating enable

Szybkość pobierania/wysyłania z sieci na pasku stanu

You might adapt this upstream skrypt. W tym celu

Możesz dostosować ten script nadrzędny. Za to,

  • zmień nazwę obu kart sieciowych zgodnie z systemem (użyj adresu ip addr)
  • znajdź je na /sys/devices, a następnie odpowiednio je zamień:
$ find /sys/devices -name network_interface
Tip: Użyj /sys/class/net/interface/statistics/, aby nie zależeć od lokalizacji PCI.

Teraz po prostu zapisz skrypt w odpowiednim miejscu (na przykład ~/.config/i3) i wskaż na niego swój program statusu.

Automatycznie przełącz orientację podziału okna w poziomie / pionie

Pakiet autotilingAUR może być używany do automatycznego przełączania orientacji podziału okna w poziomie / w pionie, co skutkuje podobnym zachowaniem jak spiralne układanie bspwm. Po instalacji dodaj następujące elementy do ~/.config/i3/config i ponownie załaduj i3.

exec --no-startup-id autotiling

Patches

This article or section is a candidate for merging with #Installation.

Notes: One package does not warrant a separate section (Discuss in User talk:Wacek/brudnopis i3)

Pakiety z łatkami niepołączonymi wcześniej są dostępne w AUR:

  • i3-wm-iconpatch — Obsługa ikony paska tytułu
https://github.com/ashinkarov/i3-extras || i3-wm-iconpatchAUR

Rozwiązywanie problemów

Ogólny

In many cases, bugs are fixed in the development versions i3-gitAUR and i3status-gitAUR, and upstream will ask to reproduce any errors with this version. [7] See also Debug - Getting Traces#General.

Przyciski na pasku komunikatów i3 nie działają

Przyciski takie jak „Edytuj konfigurację” w i3-nagbar wywołują i3-sensible-terminal, więc upewnij się, że emulator terminala jest rozpoznawany przez i3.

Faulty line wraps in tiled terminals

i3 v4.3 and higher ignore size increment hints for tiled windows [8]. This may cause terminals to wrap lines prematurely, amongst other issues. As a workaround, make the offending window floating, before tiling it again.

Kursor myszy pozostaje w trybie oczekiwania

Po uruchomieniu skryptu lub aplikacji, która nie obsługuje powiadomień o uruchomieniu, kursor myszy pozostanie w trybie zajętości/oglądania/zegara przez 60 sekund.

Aby rozwiązać ten problem dla konkretnej aplikacji, użyj parametru --no-startup-id, na przykład:

exec --no-startup-id ~/script
bindsym $mod+d exec --no-startup-id dmenu_run

Aby wyłączyć tę animację globalnie, zobacz Cursor themes#Create links to missing cursors.

UNieodpowiadające przypisania klawiszy

Niektóre narzędzia, takie jak scrot, mogą nie działać, gdy są używane ze zwykłym wiązaniem klawiszy (wykonywane po naciśnięciu klawisza). W takich przypadkach po zwolnieniu klawisza wykonaj polecenia z argumentem --release [9]:

bindsym --release Print exec --no-startup-id scrot
bindsym --release Shift+Print exec --no-startup-id scrot -s

Tearing

i3 nie implementuje poprawnie podwójnego buforowania [10], dlatego może wystąpić rozerwanie lub migotanie. Zobacz Compton i [11].

Tray icons not visible

The tray_output primary directive may require setting a primary output with xrandr, specifying the output explicitly or simply removing this directive. [12] See Xrandr for details. The default configuration created by i3-config-wizard no longer adds this directive to the configuration from i3 4.12.

Domyślny obszar roboczy dla Spotify

Aby przypisać domyślny obszar roboczy dla okien Spotify, nie można użyć standardowej trasy z assign i należy raczej użyć polecenia for_window, takiego jak

~/.config/i3/config
...
for_window [class="Spotify"] move to workspace $ws10

Aby upewnić się, że for_window nie przesuwa okna, jeśli jest już w $ws10, można zamiast tego użyć move --no-auto-back-and-forth.

Zobacz też

Arch Linux Forums

Screencasts