Úvod GNU/Linux Software Ke stažení Odkazy Guestbook

Vaše IP: 54.80.137.168
Počet návštěv: 545254
Hledání příkazů operačního systému Linux podle syntaxe nebo popisu.

Nastavení vzhledu stránek
Dark
Silver
Green
Grey

Radek Tříška

E-mail a Jabber :
radek(at)fastlinux(dot)eu
mseed@njs.netlab.cz

Sekce V.I.P. uživatelů


i3 improved tiling wm

i3 je dlaždicový "tiling" window manager, který je primárně určen pro pokročilé uživatele a vývojáře. Projekt vznikl v únoru 2009 a je šířen pod BSD licencí. Cílové platformy jsou GNU/Linux, BSD a Mac OS X (pomocí X11). Pro implementaci byl zvolen programovací jazyk C využívající v maximální možné míře knihovnu XCB.

i3wm i3wm

Projekt i3 je velice otevřený a díky dobře navrženému modelu i pohodlný pro koncové uživatele. Tvůrce projektu Michael Stapelberg odvádí dobrou práci, ochotně přijímá patche nebo poradí s problematikou. Automatické testování pomocí skriptů je také součástí vývoje.

Verze 4 vznikla jako velký refactoring celého projektu, který probíhal pod kódovým označením "tree" díky implementaci stromové struktury pro ukládání dat. Za zhruba jeden rok vzniklo 736 commitů v gitu a proběhlo úporné testování. Přechod z verze 3 je bezproblémový díky konverznímu skriptu pro konfigurační soubory "i3-migrate-config-to-v4.pl" Kompletní seznam změn je dostupný v oznámení o vydání na adrese http://i3wm.org/downloads/RELEASE-NOTES-4.0.1.txt

Popis základních vlastností i3

Každé okno je obaleno neviditelným kontejnerem, který můžeme rozdělit horizontálně nebo vertikálně. Okna se dají přesouvat, měnit jejich velikost a mód (default "tiled", floating, tabbed, stacked, fullscreen).

Dva terminály Diagram pro dva terminály

Vertikálně rozdělený terminál Diagram pro vertikálně rozdělený terminál

Tabbed a Stacked mód funguje jako záložky a dá se efektivně kombinovat s rozdělováním kontejnerů.

tabbed a stacked mód

Funguje i podpora pro plovoucí okna a můžeme nadefinovat, jaké aplikace budou plovoucí po spuštění. i3 není určen pro práci jako plnohodnotný floating manager, proto není implementována funkce pro minimalizaci okna do taskbaru (seznamu oken). Při kombinování tiled a floating módu jsou plovoucí okna vždy nad tiled okny.

Standardní je i možnost využívat více ploch. Jednotlivé plochy můžeme pojmenovávat nebo jim přiřadit výstup na požadovaný monitor.

Podpora více monitorů pomocí xrandr je vynikající. Jelikož binární nvidia ovladače nepodporují xrandr, tak je implementována i možnost použít spouštěcí parametr i3 --force-xinerama.

Jako výchozí panel je použit nový i3bar, který dokáže zobrazit plochy a výstup nástrojů jako i3status, conky, nebo vlastních skriptů. Implementovaná je i podpora pro konfiguraci barev pomocí spouštěcích parametrů. Integrace do konfiguračního souboru i3 se teprve připravuje. i3bar byl původně vyvíjen odděleně a po dohodě těsně před vydáním nové verze Axel Wagner souhlasil se začleněním do zdrojových kódů i3. Připravovaná verze 4.1 již obsahuje funkční tray.

Pro spouštění aplikací se využívá dmenu, ale je možné použít i alternativní root menu aplikace (například mygtkmenu) a přiřadit jim klávesové zkratky.

Zobrazení okna na všech plochách "sticky" není ve verzi 4.0 implementováno a jeho podpora se stále připravuje http://bugs.i3wm.org/ticket/11

Další příjemná vlastnost je možnost automatického otevírání vybraných programů na požadovanou plochu.

Barvy dekorace oken jsou pomocí konfiguračního soubor snadno nastavitelné.

i3 obsahuje mnoho dalších zajímavých vlastností (inplace restart a reload, mark/goto, konfigurovatelné dekorace oken, ...). Kompletní přehled vlastností najdeme v uživatelské příručce. Do budoucna se plánuje nadále vylepšovat a obohacovat jak window manager, tak i pomocné aplikace o řadu dalších užitečných funkcí.

Konfigurační soubory

Pomocí konfiguračních souborů můžeme rozsáhle modifikovat nastavení celého window manageru.

Výchozí cesta ke konfiguračnímu souboru je ~/.i3/config. Pokud konfigurační soubor neexistuje, tak bude při prvním spuštění vytvořen.

Proměnné a komentáře:

Konfigurační soubor umožňuje jednoduché definování proměnných pomocí set. Proměnné jsou přímo nahrazeny při zpracovávání souboru pomocí parseru. Komentáře jsou definované pomocí #.

# definice proměnné
set $promenna hodnota

Nastavení fontů:

I3 používá X core fonty (ne Xft). Pro nalezení správného fontu můžeme použít program xfontsel. Pro Unicode podporu vyberte font v ISO-10646 kódování. Pro ruční načtení fontů do X serveru můžeme použít příkaz xset fp+ /usr/share/fonts/local

font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1

Plovoucí modifikátor:

Plovoucí modifikátor slouží k přesunu a změně velikosti oken pomocí myši.

floating_modifier Mod1

Orientace nových pracovních ploch:

Výchozí orientace oken na pracovní ploše je horizontální. Všechna otevřená okna se budou řadit zleva doprava, což je výhodné pro širokoúhlé monitory. Parametry jsou horizontal, vertical a auto.

default_orientation vertical

Nastavení módu nových kontejnerů:

Definice workspace_layout říká, jaký mód budou mít nově vytvořené kontejnery na úrovni pracovní plochy. Parametry jsou default, stacking a tabbed.

workspace_layout default

Zaměření oken pomocí myši:

Výchozí chování i3 je že při najetí myši nad požadované okno dojde k jeho automatickému zaměření "fokus". Zakázáním tohoto chování docílíme klasického zaměření až po stisku levého tl. myši. Parametry jsou yes a no.

focus_follows_mouse no

Dekorace oken:

Zobrazování dekorace tiled a floating oken je konfigurovatelné. Parametry jsou normal, 1pixel, none.

new_window 1pixel
new_float 1pixel

Klávesové zkratky:

Díky klávesovým zkratkám můžeme spouštět zadané příkazy. Do konfiguračního souboru zadáváme kód nebo symbol klávesy. Symboly a kódy kláves zjistíme pomocí xmodmap -pke a xev.

bindsym Mod1+f fullscreen
bindcode 214 exec ~/toggle_beamer.sh

Klientská pravidla:

Pomocí pravidel můžeme spouštět příkazy na vybrané aplikace. Tato funkce je užitečná například pro nastavení plovoucího módu, stylu okraje nebo možnosti automaticky přesunout program na zadanou plochu. Třídu nebo instanci aplikace můžeme zjistit pomocí příkazu xprop | grep WM_CLASS.

for_window [class="urxvt"] border 1pixel
for_window [class="qjackctl"] floating enable
assign [class="Gajim.py"] 3

Automatické spouštění aplikací:

Pro automatické spouštění programů jsou implementovány volby exec a exec_always. Volbu exec můžeme použít v kombinaci s klávesovou zratkou a volba exec_always se vykonává i při restartu i3.

exec nitrogen --restore
exec_always ~/.i3/scripts/dual_monitor.sh

Kompletní rozbor všech voleb je nad rámec tohoto článku a je dostupný ve výborné uživatelské příručce.

Výchozí konfigurační soubor verze 4.0.2:

# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
#
# This config file uses keycodes (bindsym) and was written for the QWERTY
# layout.
#
# To get a config file with the same key positions, but for your current
# layout, use the i3-config-wizard
#

# font for window titles. ISO 10646 = Unicode
font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1

# use Mouse+Mod1 to drag floating windows to their wanted position
floating_modifier Mod1

# start a terminal
bindsym Mod1+Return exec urxvt

# kill focused window
bindsym Mod1+Shift+q kill

# start dmenu (a program launcher)
bindsym Mod1+d exec dmenu_run

# change focus
bindsym Mod1+j focus left
bindsym Mod1+k focus down
bindsym Mod1+l focus up
bindsym Mod1+semicolon focus right

# alternatively, you can use the cursor keys:
bindsym Mod1+Left focus left
bindsym Mod1+Down focus down
bindsym Mod1+Up focus up
bindsym Mod1+Right focus right

# move focused window
bindsym Mod1+Shift+j move left
bindsym Mod1+Shift+k move down
bindsym Mod1+Shift+l move up
bindsym Mod1+Shift+semicolon move right

# alternatively, you can use the cursor keys:
bindsym Mod1+Shift+Left move left
bindsym Mod1+Shift+Down move down
bindsym Mod1+Shift+Up move up
bindsym Mod1+Shift+Right move right

# split in horizontal orientation
bindsym Mod1+h split h

# split in vertical orientation
bindsym Mod1+v split v

# enter fullscreen mode for the focused container
bindsym Mod1+f fullscreen

# change container layout (stacked, tabbed, default)
bindsym Mod1+s layout stacking
bindsym Mod1+w layout tabbed
bindsym Mod1+e layout default

# toggle tiling / floating
bindsym Mod1+Shift+space floating toggle

# change focus between tiling / floating windows
bindsym Mod1+space focus mode_toggle

# focus the parent container
bindsym Mod1+a focus parent

# focus the child container
#bindsym Mod1+d focus child

# switch to workspace
bindsym Mod1+1 workspace 1
bindsym Mod1+2 workspace 2
bindsym Mod1+3 workspace 3
bindsym Mod1+4 workspace 4
bindsym Mod1+5 workspace 5
bindsym Mod1+6 workspace 6
bindsym Mod1+7 workspace 7
bindsym Mod1+8 workspace 8
bindsym Mod1+9 workspace 9
bindsym Mod1+0 workspace 10

# move focused container to workspace
bindsym Mod1+Shift+1 move workspace 1
bindsym Mod1+Shift+2 move workspace 2
bindsym Mod1+Shift+3 move workspace 3
bindsym Mod1+Shift+4 move workspace 4
bindsym Mod1+Shift+5 move workspace 5
bindsym Mod1+Shift+6 move workspace 6
bindsym Mod1+Shift+7 move workspace 7
bindsym Mod1+Shift+8 move workspace 8
bindsym Mod1+Shift+9 move workspace 9
bindsym Mod1+Shift+0 move workspace 10

# reload the configuration file
bindsym Mod1+Shift+c reload
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym Mod1+Shift+r restart
# exit i3 (logs you out of your X session)
bindsym Mod1+Shift+e exit

# resize window (you can also use the mouse for that)
mode "resize" {
        # These bindings trigger as soon as you enter the resize mode

        # They resize the border in the direction you pressed, e.g.
        # when pressing left, the window is resized so that it has
        # more space on its left

        bindsym j               resize shrink left 10 px or 10 ppt
        bindsym Shift+j         resize grow   left 10 px or 10 ppt

        bindsym k               resize shrink down 10 px or 10 ppt
        bindsym Shift+k         resize grow   down 10 px or 10 ppt

        bindsym l               resize shrink up 10 px or 10 ppt
        bindsym Shift+l         resize grow   up 10 px or 10 ppt

        bindsym semicolon       resize shrink right 10 px or 10 ppt
        bindsym Shift+semicolon resize grow   right 10 px or 10 ppt

        # same bindings, but for the arrow keys
        bindsym Left        resize shrink left 10 px or 10 ppt
        bindsym Shift+Left  resize grow   left 10 px or 10 ppt

        bindsym Down        resize shrink down 10 px or 10 ppt
        bindsym Shift+Down  resize grow   down 10 px or 10 ppt

        bindsym Up          resize shrink up 10 px or 10 ppt
        bindsym Shift+Up    resize grow   up 10 px or 10 ppt

        bindsym Right       resize shrink right 10 px or 10 ppt
        bindsym Shift+Right resize grow   right 10 px or 10 ppt

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

bindsym Mod1+r mode "resize"

# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
exec i3status | i3bar -d

#######################################################################
# automatically start i3-config-wizard to offer the user to create a
# keysym-based config which used his favorite modifier (alt or windows)
#
# i3-config-wizard will not launch if there already is a config file
# in ~/.i3/config.
#
# Please remove the following exec line:
#######################################################################
exec i3-config-wizard

Upravený konfigurační soubor připravované verze 4.1 (bude se ještě měnit):

#### Configuration file for i3 window manager (4.x) - next branch
### http://i3wm.org/
## Modified by mseed - http://www.fastlinux.eu
# Please see http://i3wm.org/docs/userguide.html for a complete reference!

###################
# GENERAL OPTIONS #
###################

## variables
set $mod Mod4

## font for window titles. ISO 10646 = Unicode
#font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
#font -xos4-terminus-*-*-*-*-17-*-*-*-*-*-iso10646-1
font -misc-fixed-bold-r-normal-*-15-140-75-75-c-90-iso10646-1

## use Mouse+$mod to drag floating windows to their wanted position
floating_modifier $mod

## orientation for new workspaces 
default_orientation horizontal

## workspace Layout 
workspace_layout default

## focus follows mouse 
focus_follows_mouse no

## border style for new windows 
new_window 1pixel

## border style for for floating windows 
new_float 1pixel

##################
# WM KEYBINDINGS #
##################

## reload the configuration file
bindsym $mod+Shift+C reload
## restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
bindsym $mod+Shift+R restart
## exit i3 (logs you out of your X session)
bindsym $mod+Shift+E exit

###################
# APP KEYBINDINGS #
###################

## start a terminal
bindsym $mod+Return exec urxvt

## start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run -nb '#000000' -nf '#ffffff' -sb '#000000' -sf '#1793d0' -p  'Run: ' -fn '-misc-fixed-bold-r-normal-*-15-140-75-75-c-90-iso10646-1'
bindsym $mod+x exec dmenu_run -nb '#000000' -nf '#ffffff' -sb '#000000' -sf '#1793d0' -p  'Run: ' -fn '-xos4-terminus-*-*-*-*-20-*-*-*-*-*-iso10646-1'

## start myGtkMenu
#bindsym Mod1+a exec mygtkmenu ~/.i3/configs/menu

## start session menu
#bindsym $mod+q exec ~/.i3/scripts/dmenu_session.sh

## toggle i3bar
#bindsym $mod+b exec ~/.i3/scripts/i3bar_toggle.sh

## take screenshot
#bindsym Print exec ~/.i3/scripts/screenshot.sh

## OpenVPN connect
#bindsym $mod+o exec urxvt -e ~/.i3/scripts/openvpn_start.sh

## open clipbord in editor
#bindsym Mod1+e exec ~/.i3/scripts/clipper.sh

## volume control
#bindsym XF86AudioLowerVolume exec amixer -q set Master 2- unmute
#bindsym XF86AudioRaiseVolume exec amixer -q set Master 2+ unmute
#bindsym Mod4+XF86AudioLowerVolume exec amixer -q set PCM 2- unmute
#bindsym Mod4+XF86AudioRaiseVolume exec amixer -q set PCM 2+ unmute

######################################
# WORKSPACE KEYBINDINGS AND SETTINGS #
######################################

## automatically putting workspaces on specific screens
#workspace 1 output VGA1
#workspace 2 output VGA1
#workspace 3 output VGA1
#workspace 4 output LVDS1
#workspace 10 output LVDS1

## switch to workspace
bindsym $mod+1 workspace 1:work
bindsym $mod+2 workspace 2
bindsym $mod+3 workspace 3
bindsym $mod+4 workspace 4
bindsym $mod+5 workspace 5
bindsym $mod+6 workspace 6
bindsym $mod+7 workspace 7
bindsym $mod+8 workspace 8
bindsym $mod+9 workspace 9
bindsym $mod+0 workspace 10:dwn

## move focused container to workspace
bindsym $mod+Shift+exclam move workspace 1:work
bindsym $mod+Shift+at move workspace 2
bindsym $mod+Shift+numbersign move workspace 3
bindsym $mod+Shift+dollar move workspace 4
bindsym $mod+Shift+percent move workspace 5
bindsym $mod+Shift+asciicircum move workspace 6
bindsym $mod+Shift+ampersand move workspace 7
bindsym $mod+Shift+asterisk move workspace 8
bindsym $mod+Shift+parenleft move workspace 9
bindsym $mod+Shift+parenright move workspace 10:dwn

## switch to next/prev workspace
#bindsym Mod1+Right workspace next
#bindsym Mod1+Left workspace prev

######################
# CLIENT KEYBINDINGS #
######################

## kill focused window
bindsym $mod+Shift+Q kill
bindsym $mod+c kill

## change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right

## alternatively, you can use the cursor keys:
bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right

## move focused window
bindsym $mod+Shift+J move left
bindsym $mod+Shift+K move down
bindsym $mod+Shift+L move up
bindsym $mod+Shift+colon move right

## alternatively, you can use the cursor keys:
bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right

## split in horizontal orientation
bindsym $mod+h split horizontal

## split in vertical orientation
bindsym $mod+v split vertical

## enter fullscreen mode for the focused container
bindsym $mod+f fullscreen

## change container layout (stacked, tabbed, default)
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout default

## toggle tiling / floating
bindsym $mod+Shift+space floating toggle

## change focus between tiling / floating windows
bindsym $mod+space focus mode_toggle

## focus the parent container
bindsym $mod+a focus parent

## focus the child container
#bindcode $mod+d focus child

## resize window (you can also use the mouse for that)
mode "resize" {
        # These bindings trigger as soon as you enter the resize mode

        # They resize the border in the direction you pressed, e.g.
        # when pressing left, the window is resized so that it has
        # more space on its left

bindsym j resize shrink left 10 px or 10 ppt
bindsym Shift+J resize grow   left 10 px or 10 ppt

bindsym k resize shrink down 10 px or 10 ppt
bindsym Shift+K resize grow   down 10 px or 10 ppt

bindsym l resize shrink up 10 px or 10 ppt
bindsym Shift+L resize grow   up 10 px or 10 ppt

bindsym semicolon resize shrink right 10 px or 10 ppt
bindsym Shift+colon resize grow   right 10 px or 10 ppt

        # same bindings, but for the arrow keys
bindsym Left resize shrink left 10 px or 10 ppt
bindsym Shift+Left resize grow   left 10 px or 10 ppt

bindsym Down resize shrink down 10 px or 10 ppt
bindsym Shift+Down resize grow   down 10 px or 10 ppt

bindsym Up resize shrink up 10 px or 10 ppt
bindsym Shift+Up resize grow   up 10 px or 10 ppt

bindsym Right resize shrink right 10 px or 10 ppt
bindsym Shift+Right resize grow   right 10 px or 10 ppt

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

bindsym $mod+r mode "resize"

## client border switching
bindsym Mod1+t border normal
bindsym Mod1+y border 1pixel
bindsym Mod1+u border none
bindsym Mod1+b border toggle

#########
# RULES #
#########

## obxprop | grep WM_CLASS

#assign [class="Gajim.py"] 3

for_window [class="Gcolor2"] floating enable
for_window [class="qjackctl"] floating enable
for_window [class="qsynth"] floating enable
for_window [class="lxappearance"] floating enable
for_window [class="Audacious"] floating enable

#############
# WM COLORS #
#############

## class                 border  backgr. text

## orange 
#client.focused          #DA6F00 #DA6F00 #000000
#client.focused_inactive #333333 #333333 #999999
#client.unfocused        #333333 #333333 #999999
#client.urgent           #FF0000 #8C5665 #999999

## archlinux colors 
#client.focused          #1793D1 #1793D1 #FFFFFF
#client.focused_inactive #666666 #666666 #FFFFFF
#client.unfocused        #333333 #333333 #FFFFFF
#client.urgent           #D11931 #D11931 #FFFFFF

## gentoo colors
#client.focused          #7A5ADA #7A5ADA #FFFFFF
#client.focused_inactive #45347B #45347B #FFFFFF
#client.unfocused        #333333 #333333 #FFFFFF
#client.urgent           #D11931 #D11931 #FFFFFF

## red/maroon
#client.focused          #990000 #990000 #FFFFFF
#client.focused_inactive #660000 #660000 #AAAAAA
#client.unfocused        #110000 #110000 #666666
#client.urgent           #FFFF00 #FFFF00 #FF0000

## freebsd colors
#client.focused          #990000 #990000 #FFFFFF
#client.focused_inactive #666666 #666666 #FFFFFF
#client.unfocused        #333333 #333333 #FFFFFF
#client.urgent           #D11931 #D11931 #FFFFFF

#############
# AUTOSTART #
#############

## autostart file support
#exec ~/.i3/startup

## Dual monitor support
#exec ~/.i3/scripts/dual_monitor.sh

## Start i3bar to display a workspace bar 
exec i3status -c ~/.i3/configs/i3status | i3bar -dtop -f '-misc-fixed-bold-r-normal-*-15-140-75-75-c-90-iso10646-1'
#exec i3bar -c 'conky -c ~/.i3/configs/conkyrc' -dtop -f '-xos4-terminus-*-*-*-*-20-*-*-*-*-*-iso10646-1'

## Background wallpaper
#exec nitrogen --restore

Ovládání

i3 můžeme ovládat klávesnicí i myší, klávesové zkratky se volají pomocí takzvaného modifikátoru, nejpoužívanější modifikátory jsou Mod1 (levý alt) a Mod4 (win tlačítko). Podpora pro kompletní ovládání pomocí klávesnice je téměř hotova, jediná nehotová (ale plánovaná) funkce je přesouvání plovoucího "floating" okna pomocí klávesnice.

keyboard-layer

keyboard-layer

IPC rozhraní dává možnost ovládat i3 pomocí jiného procesu. Na ovládání slouží i3-msg a i3-input, které využívají standardní unix socket. Existuje i několik externích knihoven (Python, Perl, Ruby) pro komunikaci s i3.

Celkově je ovládání pomocí klávesových zkratek, dělení kontejnerů, přesunu oken a změn módů velice pohodlné a návykové. Například oproti Awesome WM, kde jsou předdefinované jednotlivé matice rozložení oken, je tento způsob sice odlišný, ale po krátké době používání velice efektivní.

Dokumentace a vývoj

Vyčerpávající dokumentaci najdete na adrese http://i3wm.org/docs/.

Pro nahlášení nalezených chyb slouží adresa http://bugs.i3wm.org. Velice se cení i pokus o případnou hlubší analýzu problému http://i3wm.org/docs/debugging.html. Pokud se chcete na cokoliv zeptat, tak je tu dobře fungující IRC kanál #i3 na serveru irc.twice-irc.de

Chcete-li pomoci s vývojem, pak nejlepší startovací bod najdete na adrese http://i3wm.org/docs/hacking-howto.html. Před opravou chyb, nebo implementací nových funkcí, je dobré se zeptat na IRC, jestli někdo již neřeší stejnou věc nebo pro správné nasměrování do problematiky.

Vývoj nových verzí probíhá v gitu na adrese http://code.i3wm.org/, kde pro připravované verze slouží next branch.

Závěr

Po mnohaletém používání operačního systému GNU/Linux jsem prošel velkou řadou různých pracovních prostředí. Od klasických KDE 1,2,3 přes xfce, lxde, fluxbox, e17, pekwm, openbox, awesome, wmfs až po i3wm. Srovnánat jednotlivé projekty je příliš složité a je to věc velice individuální, každý z nich měl co nabídnout. i3 jde cestou, která mi nejvíce vyhovuje a díky možnosti podílet se na projektu, je pro mě práce zábavou. Doufám, že nejen díky tomuto článku se najdou další spokojení uživatelé a vývojáři tohoto výborného window manageru.

Pokračování: i3 improved tiling wm - upravené konfigurační soubory

| Verze projektu: 1.52 | © 2000 - 2011 | Historie |