Konfiguracja i3 dla laptopa: jak zmniejszyć wydajność do 100%?

Niedawno zdałem sobie sprawę, że mój laptop nie jest wystarczająco wydajny. Nie ma wystarczającej mocy, aby zebrać wszystko razem: Vim (+ 20 wtyczek), VSCode (+ taka sama liczba rozszerzeń), Google Chrome (+ 20 kart) i tak dalej. Wydawałoby się, że to częsty problem na laptopach z 4 GB RAM-u, ale nie poddałem się. Uwielbiam laptopy, ponieważ są kompaktowe, a także dlatego, że mogą działać na baterii w dowolnym miejscu. Musiałem tylko wymyślić, jak zwolnić dodatkową pamięć RAM i zwiększyć efektywność energetyczną.

Konfiguracja i3 dla laptopa: jak zmniejszyć wydajność do 100%?

Jeśli potrzebujesz konfiguracji od razu, przewiń w dół do sekcji „Przetwarzanie instalacji”

System operacyjny

Ponieważ potrzebuję systemu operacyjnego, który zużywa najmniej pamięci RAM i baterii, wybrałem Arch Linux. Klasyka, nic nowego. Jego repozytoria pozwolą mi zautomatyzować wiele niepotrzebnej pracy i AUR zaoszczędzi jeszcze więcej czasu.

Menedżer okien

Zdecydowałem się użyć menedżera okien zamiast pełnoprawnego środowiska. Chociaż lubię sneakersy (KDE), to i tak pochłaniają całkiem sporo, ponieważ pobierają sporo bibliotek i zależności. Cóż, samo DE zużywa całkiem sporo ze względu na różnego rodzaju niepotrzebne widżety.

Konfiguracja i3 dla laptopa: jak zmniejszyć wydajność do 100%?

Zdemontujmy instalację

Najpierw musimy zainstalować wszystkie główne pakiety (musimy coś skonfigurować)

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

Oto przybliżony schemat tego, jak wszystko będzie działać

Konfiguracja i3 dla laptopa: jak zmniejszyć wydajność do 100%?

Jakie pakiety są potrzebne do czego?

Pakiet
Co jest potrzebne

xwinwrap
Potrzebne do zainstalowania plików z rozszerzeniem .gif jako animowanych tapet

polibar
Potrzebne do wyświetlenia górnego paska w menedżerze okien

i3
Sam menedżer okien

i3-gaps
Rozszerzenie menedżera okien

opracowanie bazowe
Komponenty wymagane do montażu Polybar

rofi
Program uruchamiający aplikacje

okular
Przeglądarka dokumentów

zathura
Przeglądarka dokumentów (nie obsługuje wielu rozszerzeń, ale jest bardziej minimalistyczna)

fej
Program do przeglądania zdjęć, a także do ustawiania obrazów tła

vim
Główny redaktor

kod
Dodatkowy redaktor

pikom
Composer (program tworzący cienie, przezroczystość, rozmycie tła)

kicia
Główny terminal

urxvt
Dodatkowy terminal

leśniczy
Menedżer plików

odrzutowiec
System kontroli wersji

xdotool
Narzędzie, które pomoże w tworzeniu skryptów i interakcji z systemem Windows

xautomatyczna blokada
Narzędzie, które blokuje komputer, gdy jest nieaktywny i uruchamia i3-lock

kolor i3lock
Ulepszona wersja i3lock. Program potrzebny jest do zablokowania komputera i wpisania hasła

scrot
Minimalistyczna aplikacja do robienia zrzutów ekranu

ImageMagick
Program, który pomoże Ci w interakcji ze zdjęciami (zamazuje je wcześniej, konwertuje, zmienia rozdzielczość)

Konfiguracja i3

i3 - Menedżer okien, który nie zużywa dużo zasobów, dlatego przyda się nam do „emulowania” innych zwykłych menedżerów okien. (Prezent oczywiście obejmuje kafelkowanie - możliwość otwierania aplikacji przez menedżera okien na całą wolną część ekranu)

Podam konfigurację i3 w częściach, aby nawet początkujący wszystko zrozumieli. Zacznijmy od najważniejszej rzeczy – przycisku $Mod. Służy do interakcji i3. Wszystkie główne skróty klawiszowe przejdą przez to.

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

Następnie nauczymy naszego menedżera okien przesuwania okien za pomocą myszy po kliknięciu $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

Zainstalujemy czcionki dla naszych aplikacji, a także dla aplikacji, które są od nich zależne i3

# Fonts
font pango: JetBrains Mono 10

Mój pomysł był taki, żeby na początku zrobić wszystkie okna latający (co, jak się okazało, jest bardzo wygodne). Dla wyjaśnienia: w i3 jest wiele typów dokowanie okna (uprawa, pełny ekran, karty, pływanie, układanie), wszystkie są wygodne w różnych sytuacjach, ale nie widzę sensu tego robić wszystko okna wypełniające cały ekran. Lepiej pozwól im wypełnić go po naciśnięciu $mod + f, ale domyślnie zawisa w powietrzu, co zrobiłem w następującym fragmencie kodu:

# 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

Aby nie pomylić się z wyrażeniem (1920 - 10)/2 and (1080 - 10)/2 oznacza, że ​​każde okno zajmie jedną czwartą ekranu, a także będzie wcięcie (od siebie) o dokładnie 5 pikseli (5 ze wszystkich stron).

Następnie powiążmy wszystkie główne aplikacje. Wszystkie skróty klawiszowe próbują dopasować się do tego schematu

Konfiguracja i3 dla laptopa: jak zmniejszyć wydajność do 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

Powiążemy także wszystkie główne funkcje, które wykonujemy bez myślenia, a które muszą być

# 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

Stwórzmy sekcję autostartu

### 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-gaps to wersja i3, która dodaje wiele nowych funkcji. Jednym z nich jest dodanie wcięć (przerw), które wizualnie wyglądają bardzo dobrze.

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

Co się stało?

Efektem jest raczej minimalistyczny montaż na i3, który na laptopach działa bardzo szybko i daje dobrą wydajność

Konfiguracja i3 dla laptopa: jak zmniejszyć wydajność do 100%?

Ponieważ napisałem sporo konfiguracji (co widać wyraźnie na zrzucie ekranu), można je znaleźć w repozytorium Świetne i3.

Jeszcze kilka zrzutów ekranu

Konfiguracja i3 dla laptopa: jak zmniejszyć wydajność do 100%?

Konfiguracja i3 dla laptopa: jak zmniejszyć wydajność do 100%?

Konfiguracja i3 dla laptopa: jak zmniejszyć wydajność do 100%?

Źródło: www.habr.com

Dodaj komentarz