Indice
- Introduzione
- Installazione
- Avvio
- Configurazione
- Spegnimento, riavvio, blocca schermo, sospensione, ibernazione, logout
-
Personalizzazione
- Configurare il proprio terminale
- Modificare il menù
- Impostare lo sfondo
- Personalizzare la barra di stato di i3
- Impostare colori finestre
- alternativa alla barra di i3
- Regolare il volume
- Gestione connessioni
- Clipboard manager
- Assegnare scorciatoie per avviare applicazioni
- Lanciare applicazioni all'avvio di i3
- Avviare applicazione in uno specifico workspace
- Avviare applicazioni in floating mode
- Selezionare finestre al passaggio del mouse
- supporto multi monitor
- Font iconici
- .i3/config d'esempio
- Ulteriori risorse
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:
Installare il pacchetto consolekit.
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.
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
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