abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 19:00 | Zajímavý projekt

    Na crowdsourcingové platformě Crowd Supply byla spuštěna kampaň na podporu open source biometrického monitoru ve tvaru hodinek HealthyPi Move. Cena je 249 dolarů a plánovaný termín dodání listopad letošního roku.

    Ladislav Hagara | Komentářů: 1
    24.5. 22:22 | Upozornění Ladislav Hagara | Komentářů: 9
    24.5. 17:44 | Nová verze

    Firma Murena představila /e/OS verze 2.0. Jde o  alternativní sestavení Androidu bez aplikací Google. Mezi novinkami je podrobnější nastavení ochrany soukromí před sledováním aplikacemi. Murena prodává několik smartphonů s předinstalovaným /e/OS (Fairphone, repasovaný Google Pixel 5).

    Fluttershy, yay! | Komentářů: 0
    24.5. 14:33 | Zajímavý software

    Do 30. května lze v rámci akce Warhammer Skulls 2024 získat na Steamu zdarma hru Warhammer 40,000: Gladius - Relics of War.

    Ladislav Hagara | Komentářů: 1
    24.5. 13:33 | Nová verze

    HelenOS (Wikipedie), tj. svobodný operační systém českého původu založený na architektuře mikrojádra, byl vydán ve verzi 0.14.1. Přehled novinek v poznámkách k vydání. Vypíchnou lze nabídku Start. Videopředstavení na YouTube.

    Ladislav Hagara | Komentářů: 2
    23.5. 23:22 | Zajímavý software

    BreadboardOS je firmware pro Raspberry Pi Pico (RP2040) umožňující s tímto MCU komunikovat pomocí řádkového rozhraní (CLI). Využívá FreeRTOS a Microshell.

    Ladislav Hagara | Komentářů: 0
    23.5. 16:55 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 24.05. Přehled novinek i s náhledy a videi v oficiálním oznámení. Do balíku se dostalo 5 nových aplikací: Audex, Accessibility Inspector, Francis, Kalm a Skladnik.

    Ladislav Hagara | Komentářů: 10
    23.5. 12:55 | Nová verze

    Byla vydána (𝕏) nová verze 18.0.0 open source webového aplikačního frameworku Angular (Wikipedie). Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    22.5. 23:44 | Pozvánky

    V neděli 26. května lze navštívit Maker Faire Rychnov nad Kněžnou, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    22.5. 16:33 | Nová verze

    Byla vydána nová stabilní verze 3.20.0, tj. první z nové řady 3.20, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Z novinek lze vypíchnou počáteční podporu 64bitové architektury RISC-V.

    Ladislav Hagara | Komentářů: 0
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (84%)
     (4%)
     (6%)
     (6%)
    Celkem 587 hlasů
     Komentářů: 16, poslední 14.5. 11:05
    Rozcestník

    i3 - improved tiling wm

    29. 9. 2011 | Radek Tříška | Různé | 7982×

    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.

    Obsah

    i3 WM i3 WM

    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

    link

    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 pro řadu dalších užitečných funkcí.

    Konfigurační soubory

    link

    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 kódování ISO-10646. 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 <horizontal|vertical|auto> 
    default_orientation horizontal
     
    ## workspace Layout <default|stacking|tabbed> 
    workspace_layout default
     
    ## focus follows mouse <yes|no> 
    focus_follows_mouse no
     
    ## border style for new windows <normal|1pixel|none> 
    new_window 1pixel
     
    ## border style for for floating windows <normal|1pixel|none> 
    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í

    link

    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

    link

    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

    link

    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.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    29.9.2011 08:43 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm

    V dlaždicovém správci to bude znít jako rouhání, ale je možné nechat nová okna zaplňovat prostor nejen vodorovně, ale i svisle? Například xterm si nese svoji představu o velikosti okna a na plochu se mi pohodlně vejdou čtyři v rozložení dva na dva. Takže když spouštím jeden xterm za druhým, tak první je vlevo nahoře, druhý napravo od něj, třetí se otevře dole a čtvrtý vpravo dole. Z vašeho popisu mám dojem, že se mi všechny čtyři naskládají vedle sebe, a to buď vodorovně nebo svisle. Samozřejmě bych mohl v i3 po otevření třetího jej ručně přesunout dolů, ale proč to dělat ručně, když by to mohlo fungovat automaticky?

    Druhý dotaz je na přepínaní mezi okny. Existuje v i3 možnost přepnout klávesnicí se předchozí okno? (Jako mají klasičtí správci obvykle na Meta-Tab.) Nikoliv, abych musel na něj ručně doskákat po sousedech.

    29.9.2011 16:15 mseed | skóre: 21 | blog: FastLinux
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm

    Prvni funkce bude implementována pomocí "stack-limit".

    [[stack-limit]]
    
    ///////////////////////////////////////////////////////////////////////////////
    TODO: not yet implemented
    === Changing the stack-limit of a container
    
    If you have a single container with a lot of windows inside it (say, more than
    10), the default layout of a stacking container can get a little unhandy.
    Depending on your screen’s size, you might end up with only half of the title
    lines being actually used, wasting a lot of screen space.
    
    Using the +stack-limit+ command, you can limit the number of rows or columns
    in a stacking container. i3 will create columns or rows (depending on what
    you limited) automatically as needed.
    
    *Syntax*:
    --------------------------------
    stack-limit cols/rows value
    --------------------------------
    
    *Examples*:
    -------------------
    # I always want to have two window titles in one line
    stack-limit cols 2
    
    # Not more than 5 rows in this stacking container
    stack-limit rows 5
    -------------------
    

    Přepínání oken (obdoba alt+tab) není implementováno. Jako workaround může být použita funkce mark/goto.

    29.9.2011 09:49 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    Nejsem si jistý, že používat dlaždicového správce oken na hromady emulátorů terminálu je ten nejlepší příklad. Takový tmux dělá to samé a navíc přináší výhody typu historie, kopírování a vkládání pomocí klávesnice, podpora uživatelských relací a takovou celkovou nezávislost na X. Naopak v článku nevidím, zda a jak je tento přístup použitelný i pro běžné grafické aplikace - prohlížeč webu, obrázků, gimp, libre office, nějaký IM kecálek - o čemž nejsem moc přesvědčen (i když to může být tím, že pořád používám klasické 4:3 displeje).
    When your hammer is C++, everything begins to look like a thumb.
    yac avatar 29.9.2011 10:15 yac | skóre: 8 | blog: srckbin | Ostrava
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    Správce oken je na správu oken lepší, než tmux. Emulace WM v terminálu zavání.
    srck! Linux smrdí. Méně.
    29.9.2011 16:32 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    Správce oken je na správu oken lepší, než tmux.
    Já ale tvrdím, že je terminal multiplexer na správu terminálů (což byl jediný příklad použití i3 v článku) prostě lepší, než libovolný správce oken může kdy nabídnout. Což je axiom.
    Emulace WM v terminálu zavání.
    Sranda je ta, že hlavním účelem těchto programů není emulovat WM. Ale v případě tmuxu, který má splitování na extrémně použitelné úrovni je to takový malý bonus navíc.
    When your hammer is C++, everything begins to look like a thumb.
    29.9.2011 16:43 mseed | skóre: 21 | blog: FastLinux
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm

    i3 používám pro běžnou práci, nejen jako terminal multiplexer. Na terminálech se snáze demonstruje možnost rozdělování oken a změna módů. Článek nebyl pouze o práci v terminálech, ale obecné představení i3 http://www.abclinuxu.cz/images/clanky/triska/i3screen_02.png

    29.9.2011 10:16 none
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    Jiste, pracuji s beznymi nastroji - prohlizec, psi, konzole, oo a dalsi. Jak si na to jednou zvyknete, nechcete jinak. Vysoce navykove!
    yac avatar 29.9.2011 10:26 yac | skóre: 8 | blog: srckbin | Ostrava
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    Díky za hezké shrnutí, rozhodně otestuju, neboť (nejen) taby v xmonadu fungují v kombinovaných layoutech velmi špatně a vývoj utichnul. V awesome jsem o nich nenašel ani zmínku. Chvíli jsem se na i3 nedíval a už je z něho velký kluk, zdá se :)
    srck! Linux smrdí. Méně.
    29.9.2011 15:44 SPM | skóre: 28
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    taby v awesome byly, ale jelikož jejich tvůrce už je pak nějak neaktulizoval, tak šly zase pryč...
    29.9.2011 15:46 SPM | skóre: 28
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    i3 jsem při posledním záchvatu s výměnou window managerů zkoušel. Hodně se mi líbil, nicméně kvůli jedné konkrétní věci musel jít pryč - ten force xinerama mód má takovou drobnou vadu - ve chvíli, kdy se monitory mění za běhu, tak je to problém. A jelikož notebook používám jako workstation a doma k němu připojuju druhý monitor, tak to znamenalo s každým příchodem domů restarnout Xka, což moc komfortní není. Nakonec jsem skončil u notion - konfigurace mi příliš nevoní (přecijen konfigurák i3 byl krásně jednoduchý, což se o těch lua skriptech úplně říct nedá), ale zatím to dělá to co má :)
    29.9.2011 16:24 mseed | skóre: 21 | blog: FastLinux
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    29.9.2011 17:09 SPM | skóre: 28
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    Tu dokumentaci jsem samozřejmě četl, chápu, že bez podpory randr je to dosti nahouby, nicméně to nemění nic na tom, že to pro mě není použitelné :/ Bohužel, jinak se mi i3 vážně líbil. Nouveau jsem zkoušel - tam to připojování a odpojování monitorů funguje pěkně, ale zase blbne suspend2ram (tak v 50% případů se buď neuspí nebo neprobudí) a výkon je žalostný (nezahrál jsem si ani tuxracera...) Jinak ještě náhledem do té dokumentace - v poslední větě je zmíněno, že u bin. driverů nejde konfigurace displayů měnit za běhu - což už docela dlouho není pravda. Kdyby se jim povedlo implementovat nějaký inplace restart, který při té příležitosti znovu načte displaye, tak by to ten problém vyřešilo - ostatně takhle stejně to řeší notion - jen se po změně restartne.
    29.9.2011 18:22 mseed | skóre: 21 | blog: FastLinux
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm

    Ok, poptam Michaela co se s tim da delat.

    29.9.2011 21:10 mseed | skóre: 21 | blog: FastLinux
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    inplace restart reads the list of workspaces via xinerama

    Můžeš to otestovat s verzi 4.0.2 prosím? (bindsym $mod+Shift+R restart), Můžeme to probrat i na IRC.

    29.9.2011 21:46 SPM | skóre: 28
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    připadá mi, že to dělá to samé (nebo něco hodně podobného), co na 4.0.1, co jsem zkoušel. Zapnu to s jedním displayem, přihodím druhý a restartnu - vše ok. i3bar se zobrazí na každém monitoru, každý monitor má svou plochu. A teď velký display zase vypnu a restartnu a teď už je to horší - i3bary mám dva nad sebou, každý zobrazuje to co předtím (tedy jakoby patřil tomu druhému neexistujícímu monitoru) a zobrazuje i ty své plochy - sranda je teď ta, že vidím plochy jenom z toho primárního monitoru a ty, co byly na sekundárním, se už na ně nepřepnu (teda asi přepnu, ale nic nevidím). IRC je to na německé doméně, co je na stránkách? Rád to pomůžu zdebugovat.
    29.9.2011 21:52 mseed | skóre: 21 | blog: FastLinux
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm

    Server: irc.twice-irc.de kanál: #i3 (anglicky)

    30.9.2011 14:37 SPM | skóre: 28
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    Tak jsem se dnes dokopal vyměnit na počítači v práci polorozpadlé unity, které mě už vážně nebavilo... za i3. Oproti notionu mi to ovládání a konfigurace přijde výrazně jednodušší (byť notion teda fungoval také dost hezky)... asi to kopnu i zase na notebook - po včerejšku na irc ten dualhead problém umím alespoň nějak řešit :)) díky za článek, jinak bych se asi nedokopal :)
    29.9.2011 16:26 mseed | skóre: 21 | blog: FastLinux
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm

    Jako workaround lze použít nouveau ovladače.

    29.9.2011 16:43 wosambo | skóre: 5
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    ze by koncept tiling wm prevzal Microsoft do novych Windows 8? :-)
    30.9.2011 09:46 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    Chvíľu som tiling wm používal, ale upustil som od neho. Príde mi ako veľmi vhodný a zaujímavý, ale iba pre určitý modus operandi. Ako administrátor, ktorý väčšinu času pracuje v termináloch, číta manuály, browsuje, chatuje a popri tom všetkom počúva hudbu, by som si život s tiling wm vedel veľmi dobre predstaviť.

    Ako vývojár, ktorý 90% času potrebuje mať IDE na celej obrazovke, a pri práci v jednom až štyroch termináloch nepotrebuje IDE vidieť, je pre mňa ďaleko praktickejšie smart umiestňovanie okien a'la KDE/XFCE. Oddelenie jednotlivých úloh ako "komunikácia", "vývoj" a pod. riešia uspokojivo virtuálne plochy.

    Tak mi napadlo: existuje nejaký "tiling wm" pre okná vo firefoxe?
    30.9.2011 11:51 mseed | skóre: 21 | blog: FastLinux
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm

    Každý má jiné preference při používání desktopu a je skoro nemožné vytvořit window manager, který bude vyhovovat všem.

    Používám i3 zcela bez problému a pohodlně jako administrátor, vývojář i běžný uživatel.

    3.10.2011 08:12 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    S tým samozrejme súhlasím. V žiadnom prípade som nechcel povedať, že tilinng WM je zlý len preto, lebo nevyhovuje mne, ani nepožadujem, aby jeden WM vyhovoval všetkým - to je doména iných operačných systémov. :-)
    Fluttershy, yay! avatar 30.9.2011 13:10 Fluttershy, yay! | skóre: 92 | blog:
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    🇵🇸Touch grass🇺🇦 ✊ no gods, no masters
    3.10.2011 08:12 cronin | skóre: 49
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    Ďakujem, vyskúšam.
    Josef Kufner avatar 4.10.2011 20:54 Josef Kufner | skóre: 70
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    Když jsem kdysi s tiling managerama experimentoval, došel jsem k tomu, že by to chtělo jen vylepšit klasický window manager o tiling funkce. Například přidělat podporu pravítek a při manipulaci s okny se na ně lepit, pak při pohybu s přilepeným oknem hýbat i pravítkem a všemi ostatními přilepenými okny. (Nechcete to někdo udělat?)
    Hello world ! Segmentation fault (core dumped)
    6.10.2011 10:28 ernierasta
    Rozbalit Rozbalit vše Re: i3 - improved tilling wm
    KDE 4.5 a výše tuto funkci (částečně) má. A teprve s tím experimentuji, ale zdá se to být velmi pěkný kompromis mezi tiling wm a funkcemi klasických wm (systray, menu, pěkné notifikace, ...). Jen je třeba modifikovat klávesové zkratky (u mně byl i3 vzorem).
    30.9.2011 10:18 12
    Rozbalit Rozbalit vše Chyba?
    Nemá být v nadpisu jen jedno L? Nevím, třeba se mýlím. Ale takhle (tilling) mi to opravdu nesedí...
    30.9.2011 21:57 mseed | skóre: 21 | blog: FastLinux
    Rozbalit Rozbalit vše Re: Chyba?
    Souhlas, pěkné přehlédnutí díky.
    David Watzke avatar 30.9.2011 23:14 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Chyba?
    Díky, opraveno.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    Shadow avatar 1.10.2011 20:41 Shadow | skóre: 25 | blog: Brainstorm
    Rozbalit Rozbalit vše Re: i3 - improved tiling wm
    Díky za moc pěkný článek. i3 se mi moc líbí, akorát zatím stále používám Awesome. Po i3 ale stále pokukuju a jestli ve 4.1 bude systray, tak na něj snad už konečně přejdu.
    If we do not believe in freedom of speech for those we despise we do not believe in it at all.
    6.10.2011 17:43 Janick
    Rozbalit Rozbalit vše Re: i3 - improved tiling wm
    i3 je celkem fajn, ale totálně mě odradilo nepochopilně odlišné výchozí Vim-like rozložení klávesnice (h/j/k/l vs. j/k/l/; apod.), které například wmii nebo xmonad dodržují. Je to zbytečně matoucí a nepřirozené. Jasně že to lze předefinovat, ale je to práce navíc a nesystémové řešení.
    6.10.2011 17:50 SPM | skóre: 28
    Rozbalit Rozbalit vše Re: i3 - improved tiling wm
    No, jsou to 4 řádky v konfiguráku, kterej u takovýho wm stejně bude potřeba upravovat... (a od ion3 je tohle ještě docela logický :)) ). nicméně důvod byl snad ten, aby splitování kontejnerů bylo namapováno na mod+h pro horizontální split...

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.