i3 laptop konfiqurasiyası: performansı 100%-ə necə azaltmaq olar?

Bu yaxınlarda başa düşdüm ki, laptopum kifayət qədər güclü deyil. Hər şeyi bir araya gətirmək üçün kifayət qədər gücü yoxdur: Vim (+ 20 plagin), VSCode (+ eyni sayda genişləndirmə), Google Chrome (+ 20 nişan) və s. 4 GB operativ yaddaşa malik noutbuklarda adi problem kimi görünürdü, amma mən bundan imtina etmədim. Noutbukları sevirəm, çünki onlar yığcamdırlar və həmçinin hər yerdə batareya ilə işləyə bilirlər. Mən sadəcə əlavə RAM-ı necə boşaltmağı və enerji səmərəliliyini artırmağı anlamalıydım.

i3 laptop konfiqurasiyası: performansı 100%-ə necə azaltmaq olar?

Dərhal konfiqurasiyaya ehtiyacınız varsa, "Quraşdırmanın təhlili" bölməsinə keçin.

Əməliyyat sistemi

Ən az operativ yaddaş və batareya istehlak edəcək bir OS-yə ehtiyacım olduğu üçün seçdim Arch Linux. Klassik, yeni deyil. Onun depoları mənə bir çox lazımsız işi avtomatlaşdırmağa imkan verəcək və AUR daha çox vaxta qənaət edəcək.

Pəncərə meneceri

Tam hüquqlu bir mühitdən daha çox pəncərə meneceri istifadə etmək qərarına gəldim. İdman ayaqqabılarını (KDE) bəyənməyimə baxmayaraq, onlar hələ də çox yeyirlər, çünki onlar kifayət qədər çox kitabxana və asılılıq yaradırlar. Bəli, DE özü hər cür lazımsız widgetlara görə çox istehlak edir.

i3 laptop konfiqurasiyası: performansı 100%-ə necə azaltmaq olar?

Quraşdırmanı sökək

Əvvəlcə bütün əsas paketləri quraşdırmalıyıq (bir şey konfiqurasiya etməliyik)

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

Burada hər şeyin necə işləyəcəyinə dair təxmini bir diaqram var

i3 laptop konfiqurasiyası: performansı 100%-ə necə azaltmaq olar?

Hansı paketlər nə üçün lazımdır?

Paketi
Niyə lazım?

xwinwrap
.gif uzantılı faylları cizgi divar kağızları kimi quraşdırmaq lazımdır

polibar
Pəncərə menecerində üst panelin göstərilməsi üçün tələb olunur

i3
Pəncərə menecerinin özü

i3-boşluqlar
Pəncərə meneceri uzantısı

təməl inkişaf
Polybar quraşdırmaq üçün lazım olan komponentlər

rofi
Proqram başlatıcısı

oxular
Sənəd baxıcısı

zathura
Sənəd görüntüləyicisi (bir çox uzantıları dəstəkləmir, lakin daha minimalistdir)

feh
Şəkillərə baxmaq və həmçinin fon şəkillərini qurmaq üçün proqram

cəldlik
Baş redaktor

kod
Əlavə redaktor

picom
Bəstəkar (kölgələr, şəffaflıq, fon bulanıqlığı yaradan proqram)

kitty
Əsas terminal

urxvt
Əlavə terminal

Ranger
Fayl idarəedici

git
Versiyaya nəzarət sistemi

xdotool
Skriptləri inkişaf etdirməyə və pəncərələrlə qarşılıqlı əlaqə qurmağa kömək edəcək bir yardım proqramı

xautolock
Qeyri-aktiv olduqda kompüteri kilidləyən və i3-lock-u işə salan yardım proqramı

i3lock-rəng
i3lock-un təkmilləşdirilmiş versiyası. Proqram kompüteri kilidləmək və parol daxil etmək üçün lazımdır

skrot
Ekran görüntüləri çəkmək üçün minimalist proqram

ImageMagick
Şəkillərlə qarşılıqlı əlaqə qurmağınıza kömək edəcək proqram (əvvəlcədən onları bulandırır, çevirir, həllini dəyişir)

i3 konfiqurasiyası

i3 - Çox resurs sərf etməyən bir pəncərə meneceri, buna görə də digər adi pəncərə menecerlərini “imitasiya etmək” bizim üçün faydalı olacaq. (Hədiyyə, əlbəttə ki, plitələr ilə gəlir - pəncərə menecerinin proqramları ekranın bütün pulsuz hissəsinə açmaq imkanı)

konfiqurasiyanı təqdim edəcəm i3 hissələrə bölün ki, hətta yeni başlayanlar da hər şeyi başa düşsünlər. Ən vacib şeydən başlayaq - düymə $Mod. ilə qarşılıqlı əlaqədə olmağa xidmət edir i3. Bütün əsas isti düymələr ondan keçəcək.

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

Sonra, pəncərə menecerimizə kliklədikdə siçan ilə pəncərələri hərəkət etdirməyi öyrədəcəyik $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

Tətbiqlərimiz üçün, eləcə də asılı olan proqramlar üçün şriftlər quraşdıracağıq i3

# Fonts
font pango: JetBrains Mono 10

Fikrim əvvəlcə bütün pəncərələri düzəltmək idi uçan (məlum olduğu kimi, çox rahatdır). Aydınlıq üçün: in i3 növləri çoxdur docking pəncərələr (Tilling, Fullscreen, Tabbed, Float, Stacking), hamısı müxtəlif vəziyyətlərdə rahatdır, lakin mən bunu etməyin mənasını görmürəm bütün pəncərələr bütün ekranı doldurur. Yaxşı olar ki, onları basdıqda doldursunlar $mod + f, lakin defolt olaraq havada asın, bunu aşağıdakı kod parçasında etdim:

# 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

İfadə ilə çaşqın olmamağınız üçün (1920 - 10)/2 and (1080 - 10)/2 o deməkdir ki, hər bir pəncərə ekranın dörddə birini tutacaq və eyni zamanda tam 5 piksel (hər tərəfdən 5) bir girinti (bir-birindən) olacaqdır.

Sonra, bütün əsas tətbiqləri bağlayaq. Bütün isti düymələr bu sxemə uyğun gəlməyə çalışır

i3 laptop konfiqurasiyası: performansı 100%-ə necə azaltmaq olar?

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

Həm də düşünmədən yerinə yetirdiyimiz və olması lazım olan bütün əsas funksiyaları bağlayacağıq

# 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

Gəlin avtomatik işə salma bölməsi yaradaq

### 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-boşluqlar bir çox yeni funksiyalar əlavə edən i3 quruluşudur. Onlardan biri vizual olaraq çox yaxşı görünən girintilər (boşluqlar) əlavə etməkdir.

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

Nə oldu?

Nəticə noutbuklarda çox tez işləyən və yaxşı performans verən i3-də olduqca minimalist bir montajdır

i3 laptop konfiqurasiyası: performansı 100%-ə necə azaltmaq olar?

Mən çoxlu konfiqurasiya yazdığımdan (bu, ekran görüntüsündə aydın görünür), onları depoda tapmaq olar Əla i3.

Daha bir neçə ekran görüntüsü

i3 laptop konfiqurasiyası: performansı 100%-ə necə azaltmaq olar?

i3 laptop konfiqurasiyası: performansı 100%-ə necə azaltmaq olar?

i3 laptop konfiqurasiyası: performansı 100%-ə necə azaltmaq olar?

Mənbə: www.habr.com

Добавить комментарий