Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmbienteGrafico/I3"
Differenze tra le versioni 2 e 32 (in 30 versioni)
Versione 2 del 07/01/2015 09.55.11
Dimensione: 6956
Autore: damni
Commento:
Versione 32 del 10/04/2015 14.11.19
Dimensione: 23141
Autore: tecnopado
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
i3 Window Manager #format wiki
#LANGUAGE it
<<BR>>
<<Indice(depth=2)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?f=46&t=591113"; rilasci="14.04")>>
Linea 4: Linea 8:
Linea 7: Linea 12:
Installare il pacchetto [[apt://i3|i3]] presente nel [[Repository/Componenti|componente]] '''universe''' dei [[Repository|repository ufficiali]] di '''Ubuntu'''.
[[AmministrazioneSistema/
InstallareProgrammi | Installare]] il metapacchetto [[apt://i3|i3]] reperibile dal [[Repository/Componenti|componente]] '''universe''' dei [[Repository|repository ufficiali]] di '''Ubuntu'''.
Linea 10: Linea 16:
Nella finestra di login fare clic sull'icona di Ubuntu accanto al proprio nome utente, selezionare la voce '''i3''' ed effettuare il login.
All'avvio della prima sessione di i3, seguire il wizard iniziale per impostare il tasto Modificatore (tasto Win o Alt).

Al termine dell'installazione sarà possibile selezionare la voce '''i3''' dal login manager predefinito.

Per le installazioni minimali, modificare con un editor di testo il file nascosto ~/.xinitrc ed aggiungere la stringa
{{{
exec i3
}}}
Se il file non esiste crearlo.

Modificare come segue:
{{{
  #!/bin/sh
  #
  # ~/.xinitrc
  #
  # Executed by startx (run your window manager from here)
  
  if [ -d /etc/X11/xinit/xinitrc.d ]; then
    for f in /etc/X11/xinit/xinitrc.d/*; do
      [ -x "$f" ] && . "$f"
    done
    unset f
  fi
  
  # exec gnome-session
  # exec startkde
  # exec startxfce4
  # ...or the Window Manager of your choice
  #exec startxfce4
  exec i3
}}}

salvare il file ed avviare '''i3''' tramite il comando: {{{
startx
}}}

All'avvio della prima sessione di '''i3''', seguire il wizard iniziale per impostare il tasto '''Modificatore''' (tasto Super o Alt).
Linea 15: Linea 56:
Mod+d aprire il menu (dmenu)

Mod+Invio aprire una finestra di terminale

Mod+Shift+e logout

Mod+Shift+c ricaricare il file di configurazione

Mod+Shift+r riavviare i3

Per maggiori informazioni sulle scorciatoie visitare questa [[http://i3wm.org/docs/refcard.html|pagina]]
 * '''Mod+d''': aprire il menu (dmenu)
 * '''Mod+Invio''': aprire una finestra di terminale
 * '''Mod+Shift+e''': logout
 * '''
Mod+Shift+c''': ricaricare il file di configurazione
 * '''Mod+Shift+r''': riavviare i3

Per maggiori informazioni sulle scorciatoie visitare questa [[http://i3wm.org/docs/refcard.html|pagina]].
Linea 28: Linea 65:
Il file di configurazione di i3 si trova nella cartella ~/.i3 nella propria '''Home'''.
Il file di configurazione di '''i3''' si trova nella cartella nascosta `~/.i3` presente nella propria '''Home'''.

= Spegnimento, riavvio, blocca schermo, sospensione, ibernazione, logout =

Procedere come segue:

 0. [[AmministrazioneSistema/InstallareProgrammi| Installare]] il pacchetto [[apt://consolekit|consolekit]].
 0. Aggiungere al file di configurazione il testo seguente ([[https://faq.i3wm.org/question/239/how-do-i-suspendlockscreen-and-logout/|fonte]]): {{{
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 ~/.i3/i3exit lock, mode "default"
    bindsym e exec --no-startup-id ~/.i3/i3exit logout, mode "default"
    bindsym s exec --no-startup-id ~/.i3/i3exit suspend, mode "default"
    bindsym h exec --no-startup-id ~/.i3/i3exit hibernate, mode "default"
    bindsym r exec --no-startup-id ~/.i3/i3exit reboot, mode "default"
    bindsym Shift+s exec --no-startup-id ~/.i3/i3exit shutdown, mode "default"

    # back to normal: Enter or Escape
    bindsym Return mode "default"
    bindsym Escape mode "default"
}
bindsym $mod+Pause mode "$mode_system"
}}} Modificare la scorciatoia secondo le proprie esigenze. In questo esempio viene usato il tasto '''Pausa'''.

 0. Creare nella cartella `.i3/` un file chiamato `i3exit` e aggiungere al suo interno il testo seguente: {{{
#!/bin/sh
lock() {
    i3lock
}

case "$1" in
    lock)
        lock
        ;;
    logout)
        i3-msg exit
        ;;
    suspend)
        lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
        ;;
    hibernate)
        lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
        ;;
    reboot)
        dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
        ;;
    shutdown)
        dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
        ;;
    *)
        echo "Usage: $0 {lock|logout|suspend|hibernate|reboot|shutdown}"
        exit 2
esac

exit 0
}}}

 0. Rendere eseguibile il file `i3exit` con il comando seguente: {{{
chmod +x ~/.i3/i3exit
}}}

||<tablestyle="text-align: justify; width:100%;" style="border:none;" 5%><<Immagine(Icone/Piccole/note.png,,center)>> ||<style="padding:0.5em; border:none;">''Di default la funzione '''lock''', e di conseguenza anche sospensione e ibernazione, presentano una schermata bianca. Per sbloccare lo schermo, inserire la propria password e premere INVIO.'' ||
Linea 31: Linea 131:

== Configurare il proprio terminale ==

Per impostazione predefinita '''i3''' usera' il [[AmministrazioneSistema/RigaDiComando|terminale]] predefinito nel sistema.
Per avviare il proprio emulatore di terminale è possibile impostare una variabile nel proprio `.bashrc`, aggiungendo:
{{{
export TERMINAL=nome_emulatore_terminale
}}}

Oppure, più semplicemente, modificare `~/.i3/config` cambiando:
{{{
bindsym $mod+Return exec i3-sensible-terminal
}}}
con
{{{
bindsym $mod+Return exec xfce4-terminal
}}}
per avviare (ad esempio) il terminale di '''Xfce'''.

== Modificare il menù ==

=== Metodo 1 ===
Il menù di default, accessibile con i tasti mod+d, è '''dmenu'''. La caratteristica di questo menù è che mostra '''tutti''' gli eseguibili presenti nel sistema, inclusi i comandi del terminale. È possibile cambiare il comportamento del menù, modificando la seguente riga nel file di configurazione:
{{{
bindsym $mod+d exec dmenu_run
}}}
con
{{{
bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
}}}
in modo che '''i3-dmenu-desktop''' mostri solo le applicazioni fornite di file `.desktop`, ottenendo così il classico comportamento dei menu sui più comuni [[AmbienteGrafico|ambienti desktop]].

=== Metodo 2 ===
Un'alternativa ad '''i3-dmenu-desktop''' è '''j4-dmenu-desktop''', che potra' essere installato scaricandone il sorgente e compilandolo, seguendo le istruzioni presenti su Github nella [[https://github.com/enkore/j4-dmenu-desktop|pagina ufficiale]] del progetto.
Linea 32: Linea 167:
Installare il pacchetto [[apt://feh|feh]]. A questo punto, dal terminale impostare lo sfondo con:
=== Metodo 1 ===
[[AmministrazioneSistema/
InstallareProgrammi | Installare]] il pacchetto [[apt://feh|feh]]. A questo punto, dal [[AmministrazioneSistema/RigaDiComando|terminale]] impostare lo sfondo tramite il comando seguente:
Linea 36: Linea 173:
È possibile usare altre opzioni secondo le proprie necessità:
È possibile usare diverse opzioni secondo le proprie necessità:
{{{
Linea 39: Linea 177:
Linea 41: Linea 178:
Linea 43: Linea 179:
Linea 45: Linea 180:

Per ripristinare lo sfondo ad ogni avvio, con un editor di testo, aprire il file ~/.i3/config ed inserire la riga seguente:
}}}

Per ripristinare lo sfondo ad ogni avvio, aprire il file `~/.i3/config` con un [[Ufficio/EditorDiTesto|editor di testo]] ed inserire la riga seguente:
Linea 51: Linea 187:
In alternativa e' possibile impostare lo sfondo con nitrogen
Installare il pacchetto [[apt://nitrogen|nitrogen]]
=== Metodo 2 ===
In alternativa e' possibile impostare lo sfondo tramite '''nitrogen'''.

[[AmministrazioneSistema/InstallareProgrammi | Installare]] il pacchetto [[apt://nitrogen|nitrogen]]. Lanciare '''nitrogen''' dal [[AmministrazioneSistema/RigaDiComando|terminale]] con:
Linea 64: Linea 202:
Copiare il file di configurazione globale nella cartella di configurazione nella propria home:
Copiare il file di configurazione globale nella cartella di configurazione della propria home:
Linea 78: Linea 217:
Per impostare i colori usati nella barra, aggiungere le righe seguenti al file di configurazione, nella sezione '''bar''':
{{{
  colors {
separator #ffffff
background #000000
statusline #ffffff
#colorclass <border> <background> <text>
focused_workspace #000000 #52AD91 #000000
inactive_workspace #000000 #000000 #31658C
urgent_workspace #333333 #95A7CC #000000
}
}}}
Modificare i colori secondo i propri gusti.
Linea 79: Linea 232:
Per l'esempio che segue abbiamo seguito la [[http://i3wm.org/docs/user-contributed/conky-i3bar.html|guida ufficiale]], modificando solamente il percorso dei files per maggiore comodita' e ordine.
Installare il pacchetto [[apt://conky|conky]].
Creare un file vuoto in ~/.i3/ chiamato '''conky-i3bar'''. Aprire il file con un editor di testo e aggiungere:
Per l'esempio che segue abbiamo seguito la [[http://i3wm.org/docs/user-contributed/conky-i3bar.html|guida ufficiale]], modificando solamente il percorso dei files per maggiore comodita' e ordine (per avere tutti i files nella stessa cartella).
[[AmministrazioneSistema/InstallareProgrammi | Installare]] il pacchetto [[apt://conky|conky]].

Creare un file vuoto nella cartella nascosta `~/.i3/` chiamato '''conky-i3bar'''. Aprire il file con un editor di testo e aggiungere:
Linea 97: Linea 251:
Salvare, uscire e dare i permessi di esecuzione al file con: Salvare le modifiche e dare i permessi di esecuzione al file con il comando:
Linea 109: Linea 263:
Creare il file '''conkyrc''' nella cartella ~/.i3 e, come suggerito dalla guida ufficiale, aggiungere: Creare il file `conkyrc` nella cartella ~/.i3 e, come suggerito dalla guida ufficiale, aggiungere:
Linea 155: Linea 309:
== Impostare colori finestre ==

Per impostare i colori dei bordi e della barra del titolo delle finestre, aggiungere queste righe al file di configurazione:
{{{
# Colors
#class border backgr. text indicator
client.focused #ffffff #31658C #ffffff #31658C
client.focused_inactive #4D4D4D #4D4D4D #4D4D4D #4D4D4D
client.unfocused #4D4D4D #4D4D4D #4D4D4D #4D4D4D
client.urgent #4D4D4D #4D4D4D #4D4D4D #4D4D4D
}}}
Modificare i colori a proprio piacimento.

== alternativa alla barra di i3 ==

un alternativa a i3bar puo' essere xfce4-panel (il pannello di xfce,con i menù per le applicazioni e un contenitore per le finestre aperte,oltre alla systray per volume,gestione connessioni ecc)
se non si avesse già xfce4 installato,installare il pannelo di xfce4
{{{
sudo apt-get install xfce4-panel xfce4-goodies
}}}

a questo punto si puo' aggiungere il pannello al propio file ~./xinirc con
{{{
xfce4-panel --disable-wm-check &
}}}
oppure aggiungendo al file ~/.i3/config la seguente stringa
{{{
exec --no-startup-id i3-msg 'workspace 1; exec xfce4-panel --disable-wm-check &
}}}
Linea 157: Linea 340:
Linea 169: Linea 353:
== Gestione connessioni ==

Per gestire facilmente le proprie connessioni (come le reti wifi) si può aggiungere una comoda icona nella tray bar. Aprire il file di configurazione ed aggiungere:
{{{
exec --no-startup-id nm-applet
}}}
Linea 171: Linea 361:
Installare il pacchetto [[apt://parcellite|parcellite]]
Avviare il demone di parcellite all'avvio con aggiungendo la riga che segue al proprio file di configurazione:

Per usare le normali funzionalità di copia/incolla è necessario installare un clipboard manager.

[[AmministrazioneSistema/
InstallareProgrammi | Installare]] il pacchetto [[apt://parcellite|parcellite]]. Avviare il demone di parcellite all'avvio aggiungendo la riga che segue al proprio file di configurazione:
Linea 176: Linea 368:
Se si preferisce è possibile utilizzare il clipboard manager di XFCE. Installare il pacchetto [[apt://xfce4-clipman|xfce4-clipman]]. Avviarlo con
{{{
exec --no-startup-id xfce4-clipman
}}}
Linea 178: Linea 374:

Aggiungere al proprio file di configurazione:
Linea 187: Linea 385:

Aggiungere al proprio file di configurazione:
Linea 193: Linea 393:
Per conoscere la stringa ''class'' installare il xprop (???). Avviare xprop in una finestra di terminale e cliccare sulla finestra del programma interessato (skype in questo esempio). Cercare alla fine dell'output generato la riga:
Per conoscere la stringa ''class'' usare il comando xprop contenuto in [[apt://x11-utils|x11-utils]]. Avviare xprop in un terminale e cliccare sulla finestra del programma interessato (Skype in questo esempio). Cercare alla fine dell'output generato la riga:
Linea 208: Linea 409:
Linea 217: Linea 419:
Linea 222: Linea 425:
== supporto multi monitor ==
i3 gode di un ottimo supporto multimunitor (xinerama)

per usare piu' desktop virtuali su piu' monitor collegati via VGA o HDMI bastera' dare il comando
{{{
exec xrandr --output VGA1 --auto --right-of LVDS1
}}}
o nel caso di HDMI
{{{
exec xrandr --output HDMI1 --auto --right-of LVDS1
}}}
right o left indica la posizione del monitor,destro o sinistro.

== Font iconici ==

Per inserire come nomi ai workspace gli awesome-fonts installare il pacchetto [[apt://fonts-font-awesome|fonts-font-awesome]].
il pacchetto è necessario a visualizzare i font iconici correttamente.

== .i3/config d'esempio ==

File di configurazione di i3 da cui poter prender spunto per configurarsene uno ad hoc.
{{{
# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#

# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4

# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
font pango: FontAwesome 8
# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, its unicode glyph coverage is limited, the old
# X core fonts rendering does not support right-to-left and this being a bitmap
# font, it doesn’t scale on retina/hidpi displays.

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

# start a terminal
bindsym $mod+Return exec urxvt

# kill focused window
bindsym $mod+Shift+q kill

# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
exec --no-startup-id i3-msg 'workspace 1; exec /usr/bin/xcompmgr-fF -t-5 -l-5 -r4.2 -o.55 -D2 -m.75'
exec --no-startup-id i3-msg 'workspace 1; exec sh ~/.fehbg &'
exec --no-startup-id i3-msg 'workspace 1; exec wicd-gtk --tray'
exec --no-startup-id i3-msg 'workspace 1; exec tomboy --panel-applet'
exec --no-startup-id i3-msg 'workspace 1; exec sh /usr/bin/wallpaper.sh'
#exec --no-startup-id i3-msg 'workspace 1; exec telegram & '
exec --no-startup-id i3-msg 'workspace 4; exec dropbox &'
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+ograve 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+ograve 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 h

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

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

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

# 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
#bindsym $mod+d focus child
#finestre senza bordi
for_window [class="Firefox"] border none
for_window [class="urxvt"] border none
for_window [class="Midori"] border none
for_window [class="xfce4-terminal"] border none
for_window [class="Xfce4-notifyd"] floating enable; border none; focus mode_toggle
#hide_edge_borders both
#nomi dei workspace
#set $tag1 cmus
#set $tag2 irc
#set $tag3 www
#set $tag4 www2
#set $tag5 fm
#volume
bindsym $mod+Page_Up exec --no-startup-id amixer -q set Master 3%+ -q
bindsym $mod+Page_Down exec --no-startup-id amixer -q set Master 3%- -q
bindsym $mod+End exec --no-startup-id amixer -q set Master toggle
# Custom Variables For Workspaces
set $tag1 cmus
set $tag2 IRC
set $tag3 WWW
set $tag4 Spotify
set $tag5 FM
set $tag6 qemu
set $tag7 telegram
set $tag8 HTOP
set $tag9 free
#set $tag6 
#set $tag7 
#set $tag8 HTOP
#set $tag9 
#set $tag10 

# switch to workspace
bindsym $mod+1 workspace 1 $tag1
bindsym $mod+2 workspace 2 $tag2
bindsym $mod+3 workspace 3 $tag3
bindsym $mod+4 workspace 4 $tag4
bindsym $mod+5 workspace 5 $tag5
bindsym $mod+6 workspace 6 $tag6
bindsym $mod+7 workspace 7 $tag7
bindsym $mod+8 workspace 8 $tag8
bindsym $mod+9 workspace 9 $tag9
bindsym $mod+0 workspace 10 $tag0

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

# 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 exec "i3-nagbar -t warning -m 'hai premuto la scorciatoia x uscire! davvero vuoi uscire da i3? questo chiuderà la sessione X.' -b 'Si Muoviti' 'i3-msg exit'"

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

        # Pressing left will shrink the window’s width.
        # Pressing right will grow the window’s width.
        # Pressing up will shrink the window’s height.
        # Pressing down will grow the window’s height.
        bindsym j resize shrink width 10 px or 10 ppt
        bindsym k resize grow height 10 px or 10 ppt
        bindsym l resize shrink height 10 px or 10 ppt
        bindsym ograve resize grow width 10 px or 10 ppt

        # same bindings, but for the arrow keys
        bindsym Left resize shrink width 10 px or 10 ppt
        bindsym Down resize grow height 10 px or 10 ppt
        bindsym Up resize shrink height 10 px or 10 ppt
        bindsym Right resize grow width 10 px or 10 ppt

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

bindsym $mod+r mode "resize"

# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
  status_command i3status
  position top
mode dock
workspace_buttons yes
binding_mode_indicator yes
font pango: FontAwesome 8
  colors {
    separator #4F27EC
    background #2300B5
    statusline #FF006E
    focused_workspace #ffffff #7F009
    active_workspace #FF6600 #6c71c4 #FF6600
    inactive_workspace #586e75 #6EEE00 #002b36
    urgent_workspace #d33682 #d33682 #fdf6e3
  }
}

client.focused #859900 #910099 #fdf6e3 #859900
client.focused_inactive #EB0603 #073642 #eee8d5 #6c71c4
client.unfocused #340051 #340051 #93a1a1 #586e75
client.urgent #d33682 #d33682 #fdf6e3 #dc322f
}}}
Linea 224: Linea 657:
[[http://i3wm.org/|Sito Ufficiale]]

[[http://i3wm.org/docs/userguide.html|Guida ufficiale]]

 *
[[http://i3wm.org/|Sito Ufficiale]]

 * [[http://i3wm.org/docs/userguide.html|Guida ufficiale]]

 * [[https://fortawesome.github.io/Font-Awesome/cheatsheet/|Font-awesome]]


Problemi in questa pagina? Segnalali in questa discussione

Introduzione

i3 è un tiling window manager, leggero, veloce e personalizzabile.

Installazione

Installare il metapacchetto i3 reperibile dal componente universe dei repository ufficiali di Ubuntu.

Avvio

Al termine dell'installazione sarà possibile selezionare la voce i3 dal login manager predefinito.

Per le installazioni minimali, modificare con un editor di testo il file nascosto ~/.xinitrc ed aggiungere la stringa

exec i3

Se il file non esiste crearlo.

Modificare come segue:

  #!/bin/sh
  #
  # ~/.xinitrc
  #
  # Executed by startx (run your window manager from here)
  
  if [ -d /etc/X11/xinit/xinitrc.d ]; then
    for f in /etc/X11/xinit/xinitrc.d/*; do
      [ -x "$f" ] && . "$f"
    done
    unset f
  fi
  
  # exec gnome-session
  # exec startkde
  # exec startxfce4
  # ...or the Window Manager of your choice
  #exec startxfce4
  exec i3

salvare il file ed avviare i3 tramite il comando:

startx

All'avvio della prima sessione di i3, seguire il wizard iniziale per impostare il tasto Modificatore (tasto Super o Alt).

Scorciatoie utili per iniziare:

  • Mod+d: aprire il menu (dmenu)

  • Mod+Invio: aprire una finestra di terminale

  • Mod+Shift+e: logout

  • Mod+Shift+c: ricaricare il file di configurazione

  • Mod+Shift+r: riavviare i3

Per maggiori informazioni sulle scorciatoie visitare questa pagina.

Configurazione

Il file di configurazione di i3 si trova nella cartella nascosta ~/.i3 presente nella propria Home.

Spegnimento, riavvio, blocca schermo, sospensione, ibernazione, logout

Procedere come segue:

  1. Installare il pacchetto consolekit.

  2. Aggiungere al file di configurazione il testo seguente (fonte):

    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 ~/.i3/i3exit lock, mode "default"
        bindsym e exec --no-startup-id ~/.i3/i3exit logout, mode "default"
        bindsym s exec --no-startup-id ~/.i3/i3exit suspend, mode "default"
        bindsym h exec --no-startup-id ~/.i3/i3exit hibernate, mode "default"
        bindsym r exec --no-startup-id ~/.i3/i3exit reboot, mode "default"
        bindsym Shift+s exec --no-startup-id ~/.i3/i3exit shutdown, mode "default"  
    
        # back to normal: Enter or Escape
        bindsym Return mode "default"
        bindsym Escape mode "default"
    }
    bindsym $mod+Pause mode "$mode_system"

    Modificare la scorciatoia secondo le proprie esigenze. In questo esempio viene usato il tasto Pausa.

  3. Creare nella cartella .i3/ un file chiamato i3exit e aggiungere al suo interno il testo seguente:

    lock() {
        i3lock
    }
    
    case "$1" in
        lock)
            lock
            ;;
        logout)
            i3-msg exit
            ;;
        suspend)
            lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend
            ;;
        hibernate)
            lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Hibernate
            ;;
        reboot)
            dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
            ;;
        shutdown)
            dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
            ;;
        *)
            echo "Usage: $0 {lock|logout|suspend|hibernate|reboot|shutdown}"
            exit 2
    esac
    
    exit 0
  4. Rendere eseguibile il file i3exit con il comando seguente:

    chmod +x ~/.i3/i3exit

Di default la funzione lock, e di conseguenza anche sospensione e ibernazione, presentano una schermata bianca. Per sbloccare lo schermo, inserire la propria password e premere INVIO.

Personalizzazione

Configurare il proprio terminale

Per impostazione predefinita i3 usera' il terminale predefinito nel sistema. Per avviare il proprio emulatore di terminale è possibile impostare una variabile nel proprio .bashrc, aggiungendo:

export TERMINAL=nome_emulatore_terminale

Oppure, più semplicemente, modificare ~/.i3/config cambiando:

bindsym $mod+Return exec i3-sensible-terminal

con

bindsym $mod+Return exec xfce4-terminal

per avviare (ad esempio) il terminale di Xfce.

Modificare il menù

Metodo 1

Il menù di default, accessibile con i tasti mod+d, è dmenu. La caratteristica di questo menù è che mostra tutti gli eseguibili presenti nel sistema, inclusi i comandi del terminale. È possibile cambiare il comportamento del menù, modificando la seguente riga nel file di configurazione:

bindsym $mod+d exec dmenu_run

con

bindsym $mod+d exec --no-startup-id i3-dmenu-desktop

in modo che i3-dmenu-desktop mostri solo le applicazioni fornite di file .desktop, ottenendo così il classico comportamento dei menu sui più comuni ambienti desktop.

Metodo 2

Un'alternativa ad i3-dmenu-desktop è j4-dmenu-desktop, che potra' essere installato scaricandone il sorgente e compilandolo, seguendo le istruzioni presenti su Github nella pagina ufficiale del progetto.

Impostare lo sfondo

Metodo 1

Installare il pacchetto feh. A questo punto, dal terminale impostare lo sfondo tramite il comando seguente:

feh --bg-fill /percorso/per/immagine/di/sfondo.png

È possibile usare diverse opzioni secondo le proprie necessità:

feh --bg-scale
feh --bg-center
feh --bg-max
feh --bg-tile

Per ripristinare lo sfondo ad ogni avvio, aprire il file ~/.i3/config con un editor di testo ed inserire la riga seguente:

exec --no-startup-id sh ~/.fehbg

Metodo 2

In alternativa e' possibile impostare lo sfondo tramite nitrogen.

Installare il pacchetto nitrogen. Lanciare nitrogen dal terminale con:

nitrogen /percorso/cartella/immagini/

Impostare lo sfondo desiderato. Per ripristinare lo sfondo ad ogni avvio, aprire il file di configurazione e inserire la riga seguente:

exec --no-startup-id nitrogen --restore &

Personalizzare la barra di stato di i3

Copiare il file di configurazione globale nella cartella di configurazione della propria home:

cp /etc/i3status.conf ~/.i3

Modificare a proprio piacimento il file di configurazione. Aprire il file di configurazione di i3 ~/.i3/config e modificare la seguente riga

status_command i3status

in

status_command i3status --config ~/.i3/i3status.conf

Per impostare i colori usati nella barra, aggiungere le righe seguenti al file di configurazione, nella sezione bar:

  colors {
separator #ffffff
background #000000
statusline #ffffff
#colorclass           <border> <background> <text>
focused_workspace       #000000 #52AD91 #000000
inactive_workspace      #000000 #000000 #31658C         
urgent_workspace        #333333 #95A7CC #000000
}

Modificare i colori secondo i propri gusti.

E' inoltre possibile usare conky al posto di i3status. Per l'esempio che segue abbiamo seguito la guida ufficiale, modificando solamente il percorso dei files per maggiore comodita' e ordine (per avere tutti i files nella stessa cartella). Installare il pacchetto conky.

Creare un file vuoto nella cartella nascosta ~/.i3/ chiamato conky-i3bar. Aprire il file con un editor di testo e aggiungere:

# Send the header so that i3bar knows we want to use JSON:
echo '{"version":1}'

# Begin the endless array.
echo '['

# We send an empty first array of blocks to make the loop simpler:
echo '[],'

# Now send blocks with information forever:
exec conky -c $HOME/.i3/conkyrc

Salvare le modifiche e dare i permessi di esecuzione al file con il comando:

chmod +x ~/.i3/conky-i3bar

Aprire il file di configurazione di i3 e modificare la riga

status_command i3status --config ~/.i3/i3status.conf

Con

status_command $HOME/.i3/conky-i3bar

Creare il file conkyrc nella cartella ~/.i3 e, come suggerito dalla guida ufficiale, aggiungere:

out_to_x no
own_window no
out_to_console yes
background no
max_text_width 0

# Update interval in seconds
update_interval 2.0

# This is the number of times Conky will update before quitting.
# Set to zero to run forever.
total_run_times 0

# Shortens units to a single character (kiB->k, GiB->G, etc.). Default is off.
short_units yes

# How strict should if_up be when testing an interface for being up?
# The value is one of up, link or address, to check for the interface
# being solely up, being up and having link or being up, having link
# and an assigned IP address. 
if_up_strictness address

# Add spaces to keep things from moving about?  This only affects certain objects.
# use_spacer should have an argument of left, right, or none
use_spacer left

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale no

# number of cpu samples to average
# set to 1 to disable averaging
cpu_avg_samples 2

# Stuff after 'TEXT' will be formatted on screen
TEXT

# JSON for i3bar

 [{ "full_text" : "Home ${fs_free /home} Free" , "color" : "\#ffffff" },
  { "full_text" : "RAM ${memperc}%" , "color" :
    ${if_match ${memperc}<90}"\#ffffff"${else}"\#ff0000"${endif} }],

Modificare conkyrc secondo le proprie esigenze.

Impostare colori finestre

Per impostare i colori dei bordi e della barra del titolo delle finestre, aggiungere queste righe al file di configurazione:

# Colors
#class                 border  backgr. text    indicator
client.focused          #ffffff #31658C #ffffff #31658C
client.focused_inactive #4D4D4D #4D4D4D #4D4D4D #4D4D4D
client.unfocused        #4D4D4D #4D4D4D #4D4D4D #4D4D4D
client.urgent           #4D4D4D #4D4D4D #4D4D4D #4D4D4D

Modificare i colori a proprio piacimento.

alternativa alla barra di i3

un alternativa a i3bar puo' essere xfce4-panel (il pannello di xfce,con i menù per le applicazioni e un contenitore per le finestre aperte,oltre alla systray per volume,gestione connessioni ecc) se non si avesse già xfce4 installato,installare il pannelo di xfce4

sudo apt-get install xfce4-panel xfce4-goodies

a questo punto si puo' aggiungere il pannello al propio file ~./xinirc con

xfce4-panel --disable-wm-check &

oppure aggiungendo al file ~/.i3/config la seguente stringa

exec --no-startup-id i3-msg 'workspace 1; exec xfce4-panel --disable-wm-check &

Regolare il volume

Aggiungere le seguenti righe al proprio file di configurazione:

bindsym $mod+Page_Up exec --no-startup-id amixer -q set Master 3%+ -q
bindsym $mod+Page_Down exec --no-startup-id amixer -q set Master 3%- -q
bindsym $mod+End exec --no-startup-id amixer -q set Master toggle

In alternativa e' possibile avere un tradizionale pulsante nella tray bar installando il pacchetto volumeicon-alsa. Avviarlo aggiungendo al file di configurazione:

exec --no-startup-id volumeicon

Gestione connessioni

Per gestire facilmente le proprie connessioni (come le reti wifi) si può aggiungere una comoda icona nella tray bar. Aprire il file di configurazione ed aggiungere:

exec --no-startup-id nm-applet

Clipboard manager

Per usare le normali funzionalità di copia/incolla è necessario installare un clipboard manager.

Installare il pacchetto parcellite. Avviare il demone di parcellite all'avvio aggiungendo la riga che segue al proprio file di configurazione:

exec --no-startup-id parcellite -d

Se si preferisce è possibile utilizzare il clipboard manager di XFCE. Installare il pacchetto xfce4-clipman. Avviarlo con

exec --no-startup-id xfce4-clipman

Assegnare scorciatoie per avviare applicazioni

Aggiungere al proprio file di configurazione:

bindsym $mod+tasto exec --no-startup-id eseguibile

Esempio per firefox

bindsym $mod+Return exec --no-startup-id firefox

Lanciare applicazioni all'avvio di i3

Aggiungere al proprio file di configurazione:

exec --no-startup-id eseguibile

Avviare applicazione in uno specifico workspace

Per conoscere la stringa class usare il comando xprop contenuto in x11-utils. Avviare xprop in un terminale e cliccare sulla finestra del programma interessato (Skype in questo esempio). Cercare alla fine dell'output generato la riga:

WM_CLASS(STRING) = "skype", "Skype"

copiare la voce in maiuscolo.

Assign [class="Applicazione"] workspace

Esempio per skype

assign [class="Skype"] 1

Avviare applicazioni in floating mode

for_window [class="Applicazione"] floating enable

Esempio per skype

for_window [class="Skype"] floating enable

Selezionare finestre al passaggio del mouse

Le impostazioni di default di i3 permettono di selezionare una finestra posizionando il cursore del mouse su di essa. Se questo non è il comportamento desiderato, i3 permette di selezionare la finestra con un click o con la tastiera. Aggiungere al file di configurazione:

focus_follows_mouse no

supporto multi monitor

i3 gode di un ottimo supporto multimunitor (xinerama)

per usare piu' desktop virtuali su piu' monitor collegati via VGA o HDMI bastera' dare il comando

exec xrandr --output VGA1 --auto --right-of LVDS1 

o nel caso di HDMI

exec xrandr --output HDMI1 --auto --right-of LVDS1

right o left indica la posizione del monitor,destro o sinistro.

Font iconici

Per inserire come nomi ai workspace gli awesome-fonts installare il pacchetto fonts-font-awesome. il pacchetto è necessario a visualizzare i font iconici correttamente.

.i3/config d'esempio

File di configurazione di i3 da cui poter prender spunto per configurarsene uno ad hoc.

# This file has been auto-generated by i3-config-wizard(1).
# It will not be overwritten, so edit it as you like.
#
# Should you change your keyboard layout some time, delete
# this file and re-run i3-config-wizard(1).
#

# i3 config file (v4)
#
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
set $mod Mod4

# Font for window titles. Will also be used by the bar unless a different font
# is used in the bar {} block below.
# This font is widely installed, provides lots of unicode glyphs, right-to-left
# text rendering and scalability on retina/hidpi displays (thanks to pango).
font pango: FontAwesome 8
# Before i3 v4.8, we used to recommend this one as the default:
# font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
# The font above is very space-efficient, that is, it looks good, sharp and
# clear in small sizes. However, its unicode glyph coverage is limited, the old
# X core fonts rendering does not support right-to-left and this being a bitmap
# font, it doesn’t scale on retina/hidpi displays.

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

# start a terminal
bindsym $mod+Return exec urxvt

# kill focused window
bindsym $mod+Shift+q kill

# start dmenu (a program launcher)
bindsym $mod+d exec dmenu_run
# There also is the (new) i3-dmenu-desktop which only displays applications
# shipping a .desktop file. It is a wrapper around dmenu, so you need that
# installed.
# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
exec --no-startup-id i3-msg 'workspace 1; exec /usr/bin/xcompmgr-fF -t-5 -l-5 -r4.2 -o.55 -D2 -m.75'
exec --no-startup-id i3-msg 'workspace 1; exec sh ~/.fehbg &'
exec --no-startup-id i3-msg 'workspace 1; exec wicd-gtk --tray'
exec --no-startup-id i3-msg 'workspace 1; exec tomboy --panel-applet'
exec --no-startup-id i3-msg 'workspace 1; exec sh /usr/bin/wallpaper.sh'
#exec --no-startup-id i3-msg 'workspace 1; exec telegram & '
exec --no-startup-id i3-msg 'workspace 4; exec dropbox &' 
# change focus
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+ograve 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+ograve 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 h

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

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

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

# 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
#bindsym $mod+d focus child
#finestre senza bordi
for_window [class="Firefox"] border none
for_window [class="urxvt"] border none
for_window [class="Midori"] border none
for_window [class="xfce4-terminal"] border none
for_window [class="Xfce4-notifyd"] floating enable; border none; focus mode_toggle
#hide_edge_borders both 
#nomi dei workspace
#set $tag1 cmus
#set $tag2 irc
#set $tag3 www
#set $tag4 www2
#set $tag5 fm
#volume
bindsym $mod+Page_Up exec --no-startup-id amixer -q set Master 3%+ -q
bindsym $mod+Page_Down exec --no-startup-id amixer -q set Master 3%- -q
bindsym $mod+End exec --no-startup-id amixer -q set Master toggle
# Custom Variables For Workspaces
set $tag1 cmus
set $tag2 IRC
set $tag3 WWW
set $tag4 Spotify
set $tag5 FM
set $tag6 qemu
set $tag7 telegram
set $tag8 HTOP
set $tag9 free
#set $tag6 
#set $tag7 
#set $tag8 HTOP
#set $tag9 
#set $tag10  

# switch to workspace
bindsym $mod+1 workspace 1 $tag1
bindsym $mod+2 workspace 2 $tag2
bindsym $mod+3 workspace 3 $tag3
bindsym $mod+4 workspace 4 $tag4
bindsym $mod+5 workspace 5 $tag5
bindsym $mod+6 workspace 6 $tag6
bindsym $mod+7 workspace 7 $tag7
bindsym $mod+8 workspace 8 $tag8
bindsym $mod+9 workspace 9 $tag9
bindsym $mod+0 workspace 10 $tag0

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

# 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 exec "i3-nagbar -t warning -m 'hai premuto la scorciatoia x uscire! davvero vuoi uscire da i3? questo chiuderà la sessione X.' -b 'Si Muoviti' 'i3-msg exit'"

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

        # Pressing left will shrink the window’s width.
        # Pressing right will grow the window’s width.
        # Pressing up will shrink the window’s height.
        # Pressing down will grow the window’s height.
        bindsym j resize shrink width 10 px or 10 ppt
        bindsym k resize grow height 10 px or 10 ppt
        bindsym l resize shrink height 10 px or 10 ppt
        bindsym ograve resize grow width 10 px or 10 ppt

        # same bindings, but for the arrow keys
        bindsym Left resize shrink width 10 px or 10 ppt
        bindsym Down resize grow height 10 px or 10 ppt
        bindsym Up resize shrink height 10 px or 10 ppt
        bindsym Right resize grow width 10 px or 10 ppt

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

bindsym $mod+r mode "resize"

# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
  status_command i3status
  position top
mode dock
workspace_buttons yes
binding_mode_indicator yes
font pango: FontAwesome 8
  colors {
    separator  #4F27EC
    background #2300B5
    statusline #FF006E
    focused_workspace #ffffff #7F009
    active_workspace #FF6600 #6c71c4 #FF6600
    inactive_workspace #586e75 #6EEE00 #002b36
    urgent_workspace #d33682 #d33682 #fdf6e3
  }
}

client.focused #859900 #910099 #fdf6e3 #859900
client.focused_inactive #EB0603 #073642 #eee8d5 #6c71c4
client.unfocused #340051 #340051 #93a1a1 #586e75
client.urgent #d33682 #d33682 #fdf6e3 #dc322f

Ulteriori risorse