Noutbuk uchun i3 konfiguratsiyasi: unumdorlikni 100% ga qanday kamaytirish mumkin?

Yaqinda men noutbukim etarlicha kuchli emasligini angladim. Unda hamma narsani birlashtirish uchun etarli kuch yo'q: Vim (+ 20 plagin), VSCode (+ bir xil miqdordagi kengaytmalar), Google Chrome (+ 20 ta yorliq) va boshqalar. Bu 4 GB operativ xotiraga ega noutbuklarda keng tarqalgan muammo bo'lib tuyuladi, lekin men taslim bo'lmadim. Men noutbuklarni yaxshi ko'raman, chunki ular ixcham va ular har qanday joyda batareya quvvati bilan ishlashi mumkin. Men shunchaki qo'shimcha RAMni qanday bo'shatishni va energiya samaradorligini oshirishni aniqlashim kerak edi.

Noutbuk uchun i3 konfiguratsiyasi: unumdorlikni 100% ga qanday kamaytirish mumkin?

Agar sizga darhol konfiguratsiyalar kerak bo'lsa, "O'rnatishni tahlil qilish" bo'limiga o'ting.

Operatsion tizim

Menga eng kam RAM va batareyani iste'mol qiladigan operatsion tizim kerak bo'lgani uchun men tanladim Arch Linux. Klassik, yangilik yo'q. Uning omborlari menga juda ko'p keraksiz ishlarni avtomatlashtirishga imkon beradi va AUR vaqtni yanada tejaydi.

Oyna menejeri

Men to'liq muhitdan ko'ra oyna boshqaruvchisidan foydalanishga qaror qildim. Menga krossovkalar (KDE) yoqsa ham, ular juda ko'p kutubxonalar va bog'liqliklarni to'plashlari sababli ular hali ham juda ko'p yeyishadi. Xo'sh, DE o'zi har xil keraksiz vidjetlar tufayli juda ko'p iste'mol qiladi.

Noutbuk uchun i3 konfiguratsiyasi: unumdorlikni 100% ga qanday kamaytirish mumkin?

Keling, o'rnatishni qismlarga ajratamiz

Avval biz barcha asosiy paketlarni o'rnatishimiz kerak (biz biror narsani sozlashimiz kerak)

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

Bu erda hamma narsa qanday ishlashining taxminiy diagrammasi

Noutbuk uchun i3 konfiguratsiyasi: unumdorlikni 100% ga qanday kamaytirish mumkin?

Qaysi paketlar nima uchun kerak?

Paket
Nima uchun kerak

xwinwrap
Animatsion fon rasmi sifatida .gif kengaytmali fayllarni o'rnatish uchun kerak

polibar
Yuqori panel oyna boshqaruvchisida ko'rsatilishi uchun kerak

i3
Oyna boshqaruvchisining o'zi

i3-bo'shliqlar
Oyna menejeri kengaytmasi

asosiy daraja
Polybarni o'rnatish uchun zarur bo'lgan komponentlar

rofi
Ilova ishga tushirgich

o'qilar
Hujjatlarni ko'ruvchi

zurura
Hujjatlarni ko'rish vositasi (ko'p kengaytmalarni qo'llab-quvvatlamaydi, lekin minimalistroq)

feh
Rasmlarni ko'rish va fon rasmlarini o'rnatish uchun dastur

energiya
Bosh muharrir

kodi
Qo'shimcha muharrir

picom
Kompozitor (soyalar, shaffoflik, fonni xiralashtirishni yaratuvchi dastur)

kitty
Asosiy terminal

urxvt
Qo'shimcha terminal

joylamoq
Fayl menejeri

borish
Versiyani boshqarish tizimi

xdotool
Skriptlarni ishlab chiqishda va derazalar bilan o'zaro ishlashda yordam beradigan yordamchi dastur

xautolock
Faol bo'lmaganda kompyuterni bloklaydigan va i3-lockni ishga tushiradigan yordamchi dastur

i3lock-rang
i3lock ning takomillashtirilgan versiyasi. Dastur kompyuterni bloklash va parolni kiritish uchun kerak

skrot
Skrinshotlar olish uchun minimalist dastur

ImageMagick
Rasmlar bilan ishlashga yordam beradigan dastur (ularni oldindan xiralashtiradi, o'zgartiradi, piksellar sonini o'zgartiradi)

i3 sozlanmoqda

i3 - Ko'p resurslarni iste'mol qilmaydigan oyna boshqaruvchisi, shuning uchun boshqa oddiy oyna boshqaruvchilariga "taqlid qilish" biz uchun foydali bo'ladi. (Sovg'a, albatta, plitka bilan birga keladi - deraza menejerining ilovalarni ekranning butun bo'sh qismiga ochish qobiliyati.)

Men konfiguratsiyani taqdim etaman i3 qismlarga bo'lib, hatto yangi boshlanuvchilar ham hamma narsani tushunishlari uchun. Eng muhim narsadan boshlaylik - tugma $Mod. U bilan muloqot qilish uchun xizmat qiladi i3. Barcha asosiy tezkor tugmalar u orqali o'tadi.

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

Keyinchalik, oyna menejerimizga bosilganda sichqoncha bilan oynalarni siljitishni o'rgatamiz $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

Biz ilovalarimiz uchun, shuningdek, bog'liq bo'lgan ilovalar uchun shriftlarni o'rnatamiz i3

# Fonts
font pango: JetBrains Mono 10

Mening fikrim dastlab barcha oynalarni yasash edi uchish (ma'lum bo'lishicha, bu juda qulay). Aniqlik uchun: in i3 turlari ko'p o'rnatish Windows (Tilling, Fullscreen, Tabbed, Float, Stacking), ularning barchasi turli vaziyatlarda qulay, lekin men buni qilishdan ma'no ko'rmayapman. hamma derazalar butun ekranni to'ldiradi. Bosilganda ularni to'ldirishga ruxsat berish yaxshiroqdir $mod + f, lekin sukut bo'yicha havoda osib qo'ying, men buni quyidagi kod qismida qildim:

# 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

Toki iboradan adashmaslik uchun (1920 - 10)/2 and (1080 - 10)/2 har bir oyna ekranning to'rtdan bir qismini egallashini bildiradi, shuningdek, aniq 5 piksel (barcha tomondan 5) bo'lgan (bir-biridan) chekinish bo'ladi.

Keyinchalik, barcha asosiy ilovalarni bog'laymiz. Barcha tezkor tugmalar ushbu sxemaga mos kelishga harakat qiladi

Noutbuk uchun i3 konfiguratsiyasi: unumdorlikni 100% ga qanday kamaytirish mumkin?

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

Bundan tashqari, biz o'ylamasdan bajaradigan va bo'lishi kerak bo'lgan barcha asosiy funktsiyalarni bog'laymiz

# 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

Keling, avtomatik ishga tushirish bo'limini yarataylik

### 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'shliqlar ko'plab yangi xususiyatlarni qo'shadigan i3 qurilishi. Ulardan biri vizual ravishda juda yaxshi ko'rinadigan indents (bo'shliqlar) qo'shishdir.

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

Nima bo'ldi?

Natijada, noutbuklarda juda tez ishlaydigan va yaxshi ishlashni ta'minlaydigan i3-da juda minimalist yig'ilish

Noutbuk uchun i3 konfiguratsiyasi: unumdorlikni 100% ga qanday kamaytirish mumkin?

Men juda ko'p konfiguratsiyalarni yozganim uchun (bu skrinshotda aniq ko'rinadi), ularni omborda topish mumkin Ajoyib i3.

Yana bir nechta skrinshotlar

Noutbuk uchun i3 konfiguratsiyasi: unumdorlikni 100% ga qanday kamaytirish mumkin?

Noutbuk uchun i3 konfiguratsiyasi: unumdorlikni 100% ga qanday kamaytirish mumkin?

Noutbuk uchun i3 konfiguratsiyasi: unumdorlikni 100% ga qanday kamaytirish mumkin?

Manba: www.habr.com

a Izoh qo'shish