Konfiguracija prijenosnog računala i3: kako smanjiti performanse na 100%?

Nedavno sam shvatio da moje prijenosno računalo ne radi dovoljno dobro. Nedostaje mu snaga da spoji sve zajedno: Vim (+ 20 dodataka), VSCode (+ isti broj ekstenzija), Google Chrome (+ 20 kartica) i tako dalje. Činilo se da je to čest problem na prijenosnim računalima s 4 GB RAM-a, ali nisam odustajao. Volim prijenosna računala zbog njihove male veličine i činjenice da mogu raditi na bateriju bilo gdje. Samo sam trebao razmisliti o tome kako osloboditi dodatni RAM, kao i povećati energetsku učinkovitost.

Konfiguracija prijenosnog računala i3: kako smanjiti performanse na 100%?

Ako su vam potrebne konfiguracije odmah, pomaknite se prema dolje do odjeljka "Preuzimanje instalacije"

Operativni sustav

Budući da mi treba OS koji će jesti najmanje RAM-a i baterije, izabrao sam Arch Linux. Klasika, ništa novo. Njegova spremišta omogućit će mi da automatiziram hrpu nepotrebnog posla, i AUR uštedjet će još više vremena.

upravitelj prozora

Odlučio sam uzeti upravitelj prozora, a ne punopravno okruženje. Iako volim tenisice (KDE), one ipak dosta jedu, zbog činjenice da sa sobom povlače puno biblioteka i zavisnosti. Pa, DE'shka sama po sebi jede prilično puno zbog svih vrsta nepotrebnih dodataka.

Konfiguracija prijenosnog računala i3: kako smanjiti performanse na 100%?

Raščlanjivanje instalacijskog programa

Prvo moramo instalirati sve glavne pakete (trebamo nešto konfigurirati)

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

Evo primjera dijagrama kako će to funkcionirati

Konfiguracija prijenosnog računala i3: kako smanjiti performanse na 100%?

Koji su paketi potrebni za što?

paket
Zašto nam je potrebno

xwinwrap
Potrebno za instaliranje .gif datoteka kao animiranih pozadina

polibar
Potrebno kako bi upravitelj prozora prikazao gornju traku

i3
Sam upravitelj prozora

i3-praznine
Proširenje upravitelja prozora

baza-razvoj
Komponente potrebne za ugradnju polibara

rofi
Pokretač aplikacija

okulirati
Preglednik dokumenata

zathura
Preglednik dokumenata (podržano manje ekstenzija, ali više minimalistički)

nedostaje
Program za pregled slika, kao i za postavljanje pozadinskih slika

energija
Glavni urednik

kod
Dodatni urednik

picom
Composer (program koji stvara sjene, transparentnost, zamućuje pozadinu)

mače
Glavni terminal

urxvt
Dodatni terminal

šumar
Upravitelj datoteka

git
Sustav kontrole verzija

xdotool
Uslužni program koji će vam pomoći u razvoju skripti i interakciji s prozorima

xautolock
Uslužni program koji zaključava računalo kada je u mirovanju i pokreće i3-lock

i3lock boja
Poboljšana verzija i3lock-a. Program je potreban za zaključavanje računala i unos lozinke

skrot
Minimalistička aplikacija za snimanje zaslona

ImageMagick
Program koji će pomoći u interakciji sa slikama (unaprijed ih zamućuje, pretvara, mijenja rezoluciju)

Konfiguriranje i3

i3 - Upravitelj prozora koji ne troši puno resursa, stoga će nam biti od koristi da "emuliramo" druge obične upravitelje prozora. (Dar je, naravno, popločavanje - mogućnost upravitelja prozora da proširi aplikacije na cijeli slobodni dio zaslona)

Ja ću dati konfiguraciju i3 u dijelovima, tako da i početnici sve razumiju. Krenimo od najvažnijeg – gumba $mod. Služi za interakciju sa i3. Sve glavne tipke prečaca proći će kroz njega.

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

Zatim ćemo naučiti naš upravitelj prozora da pomiče prozore mišem kada se klikne. $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

Instalirajmo fontove za naše aplikacije, kao i za aplikacije koje ovise o i3

# Fonts
font pango: JetBrains Mono 10

Moja je ideja bila prvo napraviti sve prozore leteći (Što se pokazalo vrlo zgodnim). Za pojašnjenje: u i3 postoji mnogo vrsta pristajanje prozori (Tilling, Fullscreen, Tabbed, Float, Stacking), svi su zgodni u različitim situacijama, ali ne vidim razloga da sve prozori ispunjavaju cijeli zaslon. Bolje neka ga ispune kad se pritisne $mod + f, ali prema zadanim postavkama visi u zraku, što sam učinio u sljedećem dijelu koda:

# 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

Da ne bi došlo do zabune u izrazu (1920 - 10)/2 and (1080 - 10)/2 znači da će svaki prozor zauzimati četvrtinu ekrana, a također će biti uvučen (jedan od drugog) za točno 5 piksela (5 sa svih strana).

Zatim povežimo sve glavne aplikacije. Sve tipkovne prečice pokušavaju slijediti ovu shemu.

Konfiguracija prijenosnog računala i3: kako smanjiti performanse na 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

Također, vezat ćemo sve glavne funkcije koje obavljamo bez razmišljanja, a koje moraju biti

# 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

Napravimo odjeljak za automatsko pokretanje

### 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-praznine - build i3, koji dodaje mnoge nove značajke. Jedan od njih je dodavanje praznina, koje vizualno izgledaju vrlo dobro.

### 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

Što se dogodilo?

I ispao je prilično minimalistički sklop na i3, koji na prijenosnim računalima radi vrlo brzo i daje dobre performanse.

Konfiguracija prijenosnog računala i3: kako smanjiti performanse na 100%?

Budući da sam napisao puno konfiguracija (što se jasno vidi na snimci zaslona), mogu se pronaći u repozitoriju Sjajan i3.

Još par snimaka zaslona

Konfiguracija prijenosnog računala i3: kako smanjiti performanse na 100%?

Konfiguracija prijenosnog računala i3: kako smanjiti performanse na 100%?

Konfiguracija prijenosnog računala i3: kako smanjiti performanse na 100%?

Izvor: www.habr.com

Dodajte komentar