Ноутбук үшін i3 конфигурациясы: өнімділікті 100% дейін қалай азайтуға болады?

Жақында мен ноутбугымның күші жеткіліксіз екенін түсіндім. Барлығын біріктіру үшін оның күші жеткіліксіз: Vim (+ 20 плагин), VSCode (+ кеңейтімдердің бірдей саны), Google Chrome (+ 20 қойынды) және т.б. Бұл 4 ГБ жедел жады бар ноутбуктерде жиі кездесетін мәселе болып көрінетін, бірақ мен бас тартпадым. Мен ноутбуктерді жақсы көремін, өйткені олар ықшам, сонымен қатар олар кез келген жерде батарея қуатымен жұмыс істей алады. Маған қосымша жедел жадты босатып, энергия тиімділігін арттыру жолын анықтау керек болды.

Ноутбук үшін i3 конфигурациясы: өнімділікті 100% дейін қалай азайтуға болады?

Егер сізге бірден конфигурация қажет болса, «Орнатуды талдау» бөліміне төмен жылжыңыз.

Операциялық жүйе

Маған оперативті жады мен батареяның ең аз мөлшерін тұтынатын ОЖ қажет болғандықтан, мен таңдадым Arch Linux. Классикалық, жаңа ештеңе жоқ. Оның репозиторийлері маған көптеген қажетсіз жұмыстарды автоматтандыруға мүмкіндік береді және AUR одан да көп уақытты үнемдейді.

Терезе менеджері

Мен толыққанды ортаны емес, терезе менеджерін пайдалануды шештім. Мен кроссовкаларды (KDE) ұнатсам да, олар әлі де көп жейді, өйткені олар көптеген кітапханалар мен тәуелділіктерді тартады. DE өзі қажет емес виджеттердің барлық түрлеріне байланысты өте көп тұтынады.

Ноутбук үшін i3 конфигурациясы: өнімділікті 100% дейін қалай азайтуға болады?

Орнатуды бөлшектеп алайық

Алдымен біз барлық негізгі пакеттерді орнатуымыз керек (біз бірдеңені конфигурациялауымыз керек)

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

Міне, бәрі қалай жұмыс істейтінінің шамамен диаграммасы

Ноутбук үшін i3 конфигурациясы: өнімділікті 100% дейін қалай азайтуға болады?

Қандай пакеттер не үшін қажет?

Пакет
Неліктен бізге қажет

xwinwrap
Анимациялық тұсқағаздар ретінде .gif кеңейтімі бар файлдарды орнату қажет

полибар
Терезе менеджерінде үстіңгі тақтаны көрсету үшін қажет

i3
Терезе менеджерінің өзі

i3-бос орындар
Терезе менеджерінің кеңейтімі

базалық деңгей
Полибарды орнату үшін қажетті компоненттер

rofi
Қолданбаны іске қосу құралы

okular
Құжатты қарау құралы

zathura
Құжатты қарау құралы (көп кеңейтімдерді қолдамайды, бірақ минималистік)

фех
Суреттерді көруге және фондық кескіндерді орнатуға арналған бағдарлама

ВИМ
Бас редактор

код
Қосымша редактор

пиком
Композитор (көлеңкелерді, мөлдірлікті, фондық бұлыңғырлықты жасайтын бағдарлама)

Kitty
Негізгі терминал

urxvt
Қосымша терминал

Ranger
Файл менеджері

Git
Нұсқаларды басқару жүйесі

xdotool
Сценарийлерді әзірлеуге және терезелермен өзара әрекеттесуге көмектесетін утилита

xautolock
Белсенді емес кезде компьютерді құлыптап, i3-lock іске қосатын қызметтік бағдарлама

i3lock-түсі
i3lock жетілдірілген нұсқасы. Бағдарлама компьютерді құлыптау және құпия сөзді енгізу үшін қажет

scrot
Скриншоттарды түсіруге арналған минималистік қолданба

ImageMagick
Суреттермен өзара әрекеттесуге көмектесетін бағдарлама (оларды алдын ала бұлдыратады, түрлендіреді, ажыратымдылықты өзгертеді)

i3 конфигурациялануда

i3 - Терезе менеджері көп ресурстарды тұтынбайды, сондықтан басқа әдеттегі терезе менеджерлеріне «еліктеу» бізге пайдалы болады. (Сыйлық, әрине, плиткамен бірге келеді - терезе менеджерінің қолданбаларды экранның барлық бос бөлігіне ашу мүмкіндігі.)

Мен конфигурацияны беремін i3 бөліктерде, тіпті жаңадан бастағандар бәрін түсінеді. Ең бастысы - түймеден бастайық $Mod. Ол өзара әрекеттесу үшін қызмет етеді i3. Барлық негізгі жылдам пернелер ол арқылы өтеді.

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

Содан кейін біз терезе менеджеріне басқан кезде тінтуірдің көмегімен терезелерді жылжытуды үйретеміз $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

Біз қолданбаларымыз үшін, сондай-ақ тәуелді қолданбалар үшін қаріптерді орнатамыз i3

# Fonts
font pango: JetBrains Mono 10

Менің ойым бастапқыда барлық терезелерді жасау болды ұшу (бұл өте ыңғайлы болып шықты). Түсіндіру үшін: в i3 түрлері көп қондыру терезелер (Tilling, Fullscreen, Tabbed, Float, Stacking), олардың барлығы әртүрлі жағдайларда ыңғайлы, бірақ мен мұны істеудің мәнін көрмеймін. барлық терезелер бүкіл экранды толтырады. Басқан кезде толтырған дұрыс $mod + f, бірақ әдепкі бойынша ауада іліп қойыңыз, бұл мен келесі код бөлігінде жасадым:

# 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

Өрнекпен шатастырмау үшін (1920 - 10)/2 and (1080 - 10)/2 әрбір терезе экранның төрттен бір бөлігін алады, сонымен қатар дәл 5 пиксель (барлық жағынан 5) шегініс (бір-бірінен) болады дегенді білдіреді.

Әрі қарай, барлық негізгі қолданбаларды байланыстырайық. Барлық жылдам пернелер осы схемаға сәйкес келуге тырысады

Ноутбук үшін i3 конфигурациясы: өнімділікті 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

Сондай-ақ, біз ойланбастан орындайтын және болуы керек барлық негізгі функцияларды байланыстырамыз

# 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

Автоматты іске қосу бөлімін жасайық

### 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-бос орындар көптеген жаңа мүмкіндіктерді қосатын i3 құрастыру. Олардың бірі - көрнекі түрде өте жақсы көрінетін шегіністерді (бос орындар) қосу.

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

Не болды?

Нәтиже - ноутбуктерде өте жылдам жұмыс істейтін және жақсы өнімділік беретін i3-де өте минималистік жинақ

Ноутбук үшін i3 конфигурациясы: өнімділікті 100% дейін қалай азайтуға болады?

Мен көптеген конфигурацияларды жазғандықтан (бұл скриншотта анық көрінеді), оларды репозиторийден табуға болады. Керемет i3.

Тағы бірнеше скриншот

Ноутбук үшін i3 конфигурациясы: өнімділікті 100% дейін қалай азайтуға болады?

Ноутбук үшін i3 конфигурациясы: өнімділікті 100% дейін қалай азайтуға болады?

Ноутбук үшін i3 конфигурациясы: өнімділікті 100% дейін қалай азайтуға болады?

Ақпарат көзі: www.habr.com

пікір қалдыру