i3 конфигурация за лаптоп: как да намалим производителността до 100%?

Наскоро разбрах, че лаптопът ми не е достатъчно мощен. Той няма достатъчно мощност, за да вземе всичко заедно: Vim (+ 20 добавки), VSCode (+ същия брой разширения), Google Chrome (+ 20 раздела) и т.н. Изглежда, че това е често срещан проблем при лаптопи с 4 GB RAM, но не се отказах. Обичам лаптопите, защото са компактни, а също и защото могат да работят на батерия навсякъде. Просто трябваше да разбера как да освободя допълнителна RAM и също така да повиша енергийната ефективност.

i3 конфигурация за лаптоп: как да намалим производителността до 100%?

Ако имате нужда от конфигурации веднага, превъртете надолу до секцията „Разбор на инсталацията“

Операционна система

Тъй като имам нужда от ОС, която ще консумира най-малко RAM и батерия, избрах 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 междини
Разширение за мениджър на прозорци

основа-развитие
Компоненти, необходими за инсталиране на полибар

рофи
Стартер на приложения

окуларна
Преглед на документи

Затура
Преглед на документи (не поддържа много разширения, но е по-минималистичен)

feh
Програма за преглед на снимки, както и за настройка на фонови изображения

Vim
Главен редактор

код
Допълнителен редактор

picom
Composer (програма, която създава сенки, прозрачност, замъгляване на фона)

писенце
Главен терминал

urxvt
Допълнителен терминал

горски
Файлов мениджър

Git
Система за контрол на версиите

xdotool
Помощна програма, която ще помогне при разработването на скриптове и взаимодействието с Windows

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

Добавяне на нов коментар