Configurazione i3 per un laptop: come ridurre le prestazioni al 100%?

Recentemente mi sono reso conto che il mio laptop non è abbastanza potente. Non ha abbastanza potenza per tenere tutto insieme: Vim (+ 20 plugin), VSCode (+ lo stesso numero di estensioni), Google Chrome (+ 20 schede) e così via. Sembrerebbe un problema comune sui portatili con 4 GB di RAM, ma non mi sono arreso. Adoro i laptop perché sono compatti e anche perché possono funzionare a batteria ovunque. Avevo solo bisogno di capire come liberare RAM extra e anche aumentare l'efficienza energetica.

Configurazione i3 per un laptop: come ridurre le prestazioni al 100%?

Se hai bisogno subito di configurazioni, scorri verso il basso fino alla sezione "Analisi dell'installazione"

Sistema operativo

Poiché avevo bisogno di un sistema operativo che consumasse la minima quantità di RAM e batteria, ho scelto Arch Linux. Classico, niente di nuovo. I suoi repository mi permetteranno di automatizzare molto lavoro non necessario e AUR farà risparmiare ancora più tempo.

Gestore delle finestre

Ho deciso di utilizzare un gestore di finestre piuttosto che un ambiente completo. Anche se mi piacciono le scarpe da ginnastica (KDE), consumano comunque parecchio, poiché contengono molte librerie e dipendenze. Bene, DE stesso consuma parecchio a causa di tutti i tipi di widget non necessari.

Configurazione i3 per un laptop: come ridurre le prestazioni al 100%?

Smontiamo l'installazione

Per prima cosa dobbiamo installare tutti i pacchetti principali (dobbiamo configurare qualcosa)

sudo pacman -Sy --noconfirm i3 i3-gaps base-devel rofi okular feh vim code picom kitty ranger git xdotool xautolock i3lock-color scrot imagemagick rxvt-unicode urxvt-perls

Ecco uno schema approssimativo di come funzionerà il tutto

Configurazione i3 per un laptop: come ridurre le prestazioni al 100%?

Quali pacchetti sono necessari per cosa?

Pacchetto
Perché abbiamo bisogno

xwinwrap
Necessario per installare file con estensione .gif come sfondi animati

polibarra
Necessario affinché la barra superiore venga visualizzata nel gestore delle finestre

i3
Il gestore delle finestre stesso

i3-gap
Estensione del gestore finestre

sviluppo di base
Componenti necessari per installare Polybar

Rofi
Lanciatore di applicazioni

oculato
Visualizzatore di documenti

zathura
Visualizzatore di documenti (non supporta molte estensioni, ma è più minimalista)

feh
Un programma per visualizzare immagini e anche per impostare immagini di sfondo

vim
Redattore principale

codice
Redattore aggiuntivo

picom
Composer (un programma che crea ombre, trasparenza, sfocatura dello sfondo)

gattino
Terminale principale

urxvt
Terminale aggiuntivo

guardia forestale
File manager

git
Sistema di controllo della versione

xdotool
Un'utilità che aiuterà nello sviluppo di script e nell'interazione con Windows

xblocco automatico
Un'utilità che blocca il computer quando inattivo e avvia i3-lock

i3lock-colore
Versione migliorata di i3lock. Il programma è necessario per bloccare il computer e inserire una password

scroto
App minimalista per acquisire screenshot

imagemagick
Un programma che ti aiuterà a interagire con le immagini (le sfoca in anticipo, le converte, cambia la risoluzione)

Configurazione dell'i3

i3 - Un window manager che non consuma molte risorse, quindi ci sarà utile per “emulare” altri normali window manager. (Il regalo, ovviamente, arriva con la piastrellatura: la capacità del gestore delle finestre di aprire le applicazioni su tutta la parte libera dello schermo)

Fornirò la configurazione i3 in alcune parti, in modo che anche i principianti capiscano tutto. Cominciamo con la cosa più importante: il pulsante $Mod. Serve per interagire i3. Tutti i principali tasti di scelta rapida passeranno attraverso di esso.

### Tweaks ###
# Set main key (Win)
set $mod Mod4

Successivamente, insegneremo al nostro gestore delle finestre a spostare le finestre con il mouse quando vengono cliccate $mod

# Press MOD key and click on mouse to move your window
floating_modifier $mod

# Focus doesn't follow the mouse
focus_follows_mouse no

Installeremo i caratteri per le nostre applicazioni, nonché per le applicazioni che dipendono da i3

# Fonts
font pango: JetBrains Mono 10

Inizialmente la mia idea era di realizzare tutte le finestre volare (che, come si è scoperto, è molto conveniente). Per chiarimenti: in i3 ce ne sono molti tipi attracco finestre (Tilling, Fullscreen, Tabbed, Float, Stacking), sono tutte comode in diverse situazioni, ma non vedo il motivo di farlo tutti finestre che riempiono l'intero schermo. Meglio lasciarli riempire quando vengono pressati $mod + f, ma rimani in aria per impostazione predefinita, che è ciò che ho fatto nel seguente pezzo di codice:

# Maximum width for floating windows
floating_minimum_size 400 x 350
floating_maximum_size 1800 x 900

# (1920 - 10)/2 and (1080 - 10)/2
for_window [class=".*"] floating enable
for_window [class=".*"] resize set 955 535
for_window [class=".*"] focus

In modo da non farti confondere dall'espressione (1920 - 10)/2 and (1080 - 10)/2 significa che ciascuna finestra occuperà un quarto dello schermo e ci sarà anche una rientranza (l'una dall'altra) di esattamente 5 pixel (5 su tutti i lati).

Successivamente, colleghiamo tutte le principali applicazioni. Tutti i tasti di scelta rapida tentano di corrispondere a questo schema

Configurazione i3 per un laptop: come ridurre le prestazioni al 100%?

## Keyboard Settings ##
# Apps
bindsym $mod+Return exec kitty
bindsym $mod+Mod1+r exec "kitty sh -c 'ranger'"
bindsym $mod+Mod1+g exec google-chrome-stable
bindsym $mod+Mod1+c exec code
bindsym $mod+Mod1+v exec dolphin
bindsym Print exec spectacle

Inoltre, legheremo tutte le funzioni principali che svolgiamo senza pensare e che devono essere

# System / Volume
bindsym XF86AudioMute "exec amixer -D pulse sset Master toggle && notify-send "Volume" "Sound is (un)muted" --urgency low"
bindsym XF86AudioRaiseVolume "exec amixer -D pulse sset Master 5%+ && notify-send "Volume" "Volume added +5%n    Volume level is now $(amixer -D pulse get Master | awk -F 'Left:|[][]' 'BEGIN {RS=""}{ print $3 }')" --urgency low"
bindsym XF86AudioLowerVolume "exec amixer -D pulse sset Master 5%- && notify-send "Volume" "Volume added -5%n    Volume level is now $(amixer -D pulse get Master | awk -F 'Left:|[][]' 'BEGIN {RS=""}{ print $3 }')" --urgency low"

# System / Brightness
bindsym XF86MonBrightnessDown exec xbacklight -dec 5
bindsym XF86MonBrightnessUp exec xbacklight -inc 5

# Moving from one window to another
bindsym $mod+h focus left
bindsym $mod+j focus down
bindsym $mod+k focus up
bindsym $mod+l focus right

# Choose one of your workspaces
bindsym $mod+1 workspace $workspace1
bindsym $mod+2 workspace $workspace2
bindsym $mod+3 workspace $workspace3
bindsym $mod+4 workspace $workspace4

# Move window to the workspace
bindsym $mod+Shift+1 move container to workspace $workspace1
bindsym $mod+Shift+2 move container to workspace $workspace2
bindsym $mod+Shift+3 move container to workspace $workspace3
bindsym $mod+Shift+4 move container to workspace $workspace4

## Floating manipulation ##
# Make window floating
bindsym $mod+f floating toggle
# Change focus
bindsym $mod+Shift+f focus mode_toggle

# Move windows
bindsym $mod+Shift+h move left 20px
bindsym $mod+Shift+j move down 20px
bindsym $mod+Shift+k move up 20px
bindsym $mod+Shift+l move right 20px

# Resizing Windows
bindsym $mod+Ctrl+l resize shrink width 10 px or 10 ppt
bindsym $mod+Ctrl+k resize grow height 10 px or 10 ppt
bindsym $mod+Ctrl+j resize shrink height 10 px or 10 ppt
bindsym $mod+Ctrl+h resize grow width 10 px or 10 ppt

# Make window fullscreen
bindcode 95 fullscreen toggle

# Reload Configuration
bindsym $mod+p reload

# Kill a window
bindsym $mod+x exec xdotool getwindowfocus windowkill

Creiamo una sezione di avvio automatico

### Autostart ###
# Lockscreen after 10min delay
exec --no-startup-id "$HOME/.config/i3/lockscreen"
# Convert background gif to jpg
exec --no-startup-id convert -verbose $HOME/.config/i3/{gif.gif,gif.jpg}
# Generate Colorscheme
exec_always --no-startup-id wal -i $HOME/.config/i3/gif-0.jpg
# Compositor
exec_always --no-startup-id "killall -q picom; picom --config $HOME/.config/picom.conf"
# Language
exec --no-startup-id setxkbmap -model pc105 -layout us,ru -option grp:win_space_toggle
# Dunst
exec --no-startup-id dunst
# Kitty
exec kitty
# Dropbox
exec --no-startup-id dropbox &
# Polybar
exec_always --no-startup-id $HOME/.config/polybar/launch.sh
# Cursor
exec_always --no-startup-id xsetroot -cursor_name left_ptr

i3-gap è una build i3 che aggiunge molte nuove funzionalità. Uno di questi è l'aggiunta di rientri (spazi) che visivamente sembrano molto belli.

### i3-gaps ###
# Borders for windows
for_window [class=".*"] border pixel 5

# Gaps for i3bar
for_window [class="i3bar"] gaps outer current set 10

# Gaps
gaps inner 10
gaps outer 4

### Topbar and color theme ###
# Color theme of borders
client.focused              #bf616a #2f343f #d8dee8 #bf616a #d8dee8
client.focused_inactive     #2f343f #kf343f #d8dee8 #2f343f #2f343f
client.unfocused            #2f343f #2f343f #d8dee8 #2f343f #2f343f
client.urgent               #2f343f #2f343f #d8dee8 #2f343f #2f343f
client.placeholder          #2f343f #2f343f #d8dee8 #2f343f #2f343f
client.background           #2f343f

Cosa è successo?

E il risultato è un assemblaggio piuttosto minimalista su i3, che funziona molto rapidamente sui laptop e offre buone prestazioni

Configurazione i3 per un laptop: come ridurre le prestazioni al 100%?

Dato che ho scritto molte configurazioni (che è chiaramente visibile nello screenshot), possono essere trovate nel repository Ottimo i3.

Ancora un paio di screenshot

Configurazione i3 per un laptop: come ridurre le prestazioni al 100%?

Configurazione i3 per un laptop: come ridurre le prestazioni al 100%?

Configurazione i3 per un laptop: come ridurre le prestazioni al 100%?

Fonte: habr.com

Aggiungi un commento