Bir dizüstü bilgisayar için i3 yapılandırması: performans nasıl %100'e düşürülür?

Son zamanlarda dizüstü bilgisayarımın yeterince güçlü olmadığını fark ettim. Her şeyi bir araya getirecek yeterli güce sahip değil: Vim (+ 20 eklenti), VSCode (+ aynı sayıda uzantı), Google Chrome (+ 20 sekme) vb. 4 GB RAM'e sahip dizüstü bilgisayarlarda sık karşılaşılan bir sorun gibi görünüyordu ama pes etmedim. Dizüstü bilgisayarları seviyorum çünkü hem kompaktlar hem de pil gücüyle her yerde çalışabiliyorlar. Fazladan RAM'i nasıl boşaltacağımı ve aynı zamanda enerji verimliliğini nasıl artıracağımı bulmam gerekiyordu.

Bir dizüstü bilgisayar için i3 yapılandırması: performans nasıl %100'e düşürülür?

Yapılandırmalara hemen ihtiyacınız varsa, "Kurulumu ayrıştırma" bölümüne gidin.

İşletim sistemi

En az miktarda RAM ve pil tüketecek bir işletim sistemine ihtiyacım olduğu için seçtim Arch Linux. Klasik, yeni bir şey yok. Onun depoları birçok gereksiz işi otomatikleştirmeme olanak tanıyacak ve AUR daha da fazla zaman kazandıracak.

Pencere yöneticisi

Tam teşekküllü bir ortam yerine bir pencere yöneticisi kullanmaya karar verdim. Her ne kadar spor ayakkabıları (KDE) sevmeme rağmen, oldukça fazla kütüphane ve bağımlılığa sahip olmaları nedeniyle hala oldukça fazla yiyorlar. DE'nin kendisi her türlü gereksiz widget nedeniyle oldukça fazla tüketiyor.

Bir dizüstü bilgisayar için i3 yapılandırması: performans nasıl %100'e düşürülür?

Kurulumu sökelim

Öncelikle tüm ana paketleri kurmamız gerekiyor (bir şeyi yapılandırmamız gerekiyor)

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

İşte her şeyin nasıl çalışacağına dair kaba bir şema

Bir dizüstü bilgisayar için i3 yapılandırması: performans nasıl %100'e düşürülür?

Hangi paketler ne için gereklidir?

Paket
Ne için gerekli

xwinwrap
.gif uzantılı dosyaları animasyonlu duvar kağıtları olarak yüklemek gerekiyor

çoklu çubuk
Üst çubuğun pencere yöneticisinde görüntülenmesi için gerekli

i3
Pencere yöneticisinin kendisi

i3-boşlukları
Pencere yöneticisi uzantısı

temel geliştirme
Polybar'ı kurmak için gerekli bileşenler

rofi
Uygulama başlatıcısı

okumak
Belge görüntüleyici

Zathura
Belge görüntüleyici (çok sayıda uzantıyı desteklemez ancak daha minimalisttir)

feh
Resimleri görüntülemek ve ayrıca arka plan resimlerini ayarlamak için bir program

gayret
Ana editör

kod
Ek düzenleyici

pikom
Besteci (gölgeler, şeffaflık, arka plan bulanıklığı oluşturan bir program)

pisi
Ana terminal

urxvt
Ek terminal

korucu
Dosya yöneticisi

git
Sürüm kontrol sistemi

xdotool
Komut dosyaları geliştirmeye ve pencerelerle etkileşime girmeye yardımcı olacak bir yardımcı program

xotomatik kilit
Etkin olmadığında bilgisayarı kilitleyen ve i3-lock'u başlatan bir yardımcı program

i3lock-renkli
i3lock'un geliştirilmiş versiyonu. Bilgisayarı kilitlemek ve bir şifre girmek için program gereklidir

skrot
Ekran görüntüsü almak için minimalist uygulama

imagemagick
Resimlerle etkileşime girmenize yardımcı olacak bir program (onları önceden bulanıklaştırır, dönüştürür, çözünürlüğü değiştirir)

i3'ü yapılandırma

i3 - Çok fazla kaynak tüketmeyen bir pencere yöneticisi, dolayısıyla diğer normal pencere yöneticilerini "taklit etmek" için bizim için yararlı olacaktır. (Hediye elbette döşemeyle birlikte geliyor - pencere yöneticisinin uygulamaları ekranın tüm boş kısmına açma yeteneği)

Yapılandırmayı sağlayacağım i3 parçalar halinde, böylece yeni başlayanlar bile her şeyi anlayabilir. En önemli şeyle başlayalım: düğme $Mod. İle etkileşime girmeye hizmet eder i3. Tüm önemli kısayol tuşları bunun içinden geçecektir.

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

Daha sonra pencere yöneticimize tıklandığında pencereleri fareyle hareket ettirmeyi öğreteceğiz. $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

Uygulamalarımız için ve ayrıca aşağıdakilere bağlı uygulamalar için yazı tipleri yükleyeceğiz: i3

# Fonts
font pango: JetBrains Mono 10

Benim fikrim başlangıçta tüm pencereleri yapmaktı uçan (ki bu çok uygun olduğu ortaya çıktı). Açıklamak gerekirse: içinde i3 birçok tür var yanaşma pencereler (Döşeme, Tam Ekran, Sekmeli, Kayan, Yığınlama), hepsi farklı durumlarda kullanışlıdır, ancak bunu yapmanın bir amacını göremiyorum tüm Pencereler tüm ekranı dolduruyor. Basıldığında doldurmalarına izin versen iyi olur $mod + f, ancak varsayılan olarak havada asılı kalın, aşağıdaki kod parçasında da bunu yaptım:

# 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

Böylece ifadeyle kafanız karışmaz (1920 - 10)/2 and (1080 - 10)/2 her pencerenin ekranın dörtte birini kaplayacağı ve ayrıca tam olarak 5 piksellik (her tarafta 5) bir girinti (birbirinden) olacağı anlamına gelir.

Sonra, tüm ana uygulamaları bağlayalım. Tüm kısayol tuşları bu şemaya uymaya çalışır

Bir dizüstü bilgisayar için i3 yapılandırması: performans nasıl %100'e düşürülür?

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

Ayrıca düşünmeden gerçekleştirdiğimiz ve yapılması gereken tüm ana işlevleri de bağlayacağız.

# 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

Otomatik başlatma bölümü oluşturalım

### 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şlukları birçok yeni özellik ekleyen bir i3 yapısıdır. Bunlardan biri görsel olarak çok güzel görünen girintiler (boşluklar) eklemektir.

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

Ne oldu

Sonuç olarak, dizüstü bilgisayarlarda çok hızlı çalışan ve iyi performans sağlayan, i3'te oldukça minimalist bir düzenek ortaya çıkıyor.

Bir dizüstü bilgisayar için i3 yapılandırması: performans nasıl %100'e düşürülür?

Çok sayıda konfigürasyon yazdığım için (ekran görüntüsünde açıkça görülüyor), bunlar depoda bulunabilir. Harika i3.

Birkaç ekran görüntüsü daha

Bir dizüstü bilgisayar için i3 yapılandırması: performans nasıl %100'e düşürülür?

Bir dizüstü bilgisayar için i3 yapılandırması: performans nasıl %100'e düşürülür?

Bir dizüstü bilgisayar için i3 yapılandırması: performans nasıl %100'e düşürülür?

Kaynak: habr.com

Yorum ekle