Konfigurasi i3 untuk komputer riba: bagaimana untuk mengurangkan prestasi kepada 100%?

Baru-baru ini saya menyedari bahawa komputer riba saya tidak cukup berkuasa. Ia tidak mempunyai kuasa yang mencukupi untuk menggabungkan segala-galanya: Vim (+ 20 pemalam), VSCode (+ bilangan sambungan yang sama), Google Chrome (+ 20 tab) dan sebagainya. Ia seolah-olah menjadi masalah biasa pada komputer riba dengan 4 GB RAM, tetapi saya tidak berputus asa. Saya suka komputer riba kerana ia padat dan juga kerana ia boleh menggunakan kuasa bateri di mana-mana sahaja. Saya hanya perlu memikirkan cara untuk mengosongkan RAM tambahan dan juga meningkatkan kecekapan tenaga.

Konfigurasi i3 untuk komputer riba: bagaimana untuk mengurangkan prestasi kepada 100%?

Jika anda memerlukan konfigurasi segera, kemudian tatal ke bawah ke bahagian "Menghuraikan pemasangan"

Sistem operasi

Memandangkan saya memerlukan OS yang akan menggunakan paling sedikit RAM dan bateri, saya memilih Arch Linux. Klasik, tiada yang baru. Repositorinya akan membolehkan saya mengautomasikan banyak kerja yang tidak perlu, dan AUR akan menjimatkan lebih banyak masa.

Pengurus tingkap

Saya memutuskan untuk menggunakan pengurus tingkap dan bukannya persekitaran yang lengkap. Walaupun saya suka kasut sukan (KDE), mereka masih makan banyak, kerana fakta bahawa mereka menarik banyak perpustakaan dan tanggungan. Nah, DE sendiri menggunakan agak banyak kerana pelbagai jenis widget yang tidak diperlukan.

Konfigurasi i3 untuk komputer riba: bagaimana untuk mengurangkan prestasi kepada 100%?

Mari buka pemasangan

Mula-mula kita perlu memasang semua pakej utama (kita perlu mengkonfigurasi sesuatu)

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

Berikut ialah gambarajah kasar bagaimana semuanya akan berfungsi

Konfigurasi i3 untuk komputer riba: bagaimana untuk mengurangkan prestasi kepada 100%?

Pakej mana yang diperlukan untuk apa?

Pakej
Kenapa kita perlukan

xwinwrap
Diperlukan untuk memasang fail dengan sambungan .gif sebagai kertas dinding animasi

polibar
Diperlukan untuk bar atas untuk dipaparkan dalam pengurus tetingkap

i3
Pengurus tingkap itu sendiri

jurang i3
Sambungan pengurus tetingkap

pengkalan asas
Komponen yang diperlukan untuk memasang polibar

rofi
Pelancar aplikasi

okular
Pemapar dokumen

zathura
Pemapar dokumen (tidak menyokong banyak sambungan, tetapi lebih minimalis)

feh
Program untuk melihat gambar dan juga untuk menetapkan imej latar belakang

VIM
Editor utama

kod
Editor tambahan

picom
Komposer (program yang mencipta bayang-bayang, ketelusan, kabur latar belakang)

kitty
Terminal utama

urxvt
Terminal tambahan

renjer
Pengurus fail

pergi
Sistem kawalan versi

xdotool
Utiliti yang akan membantu dalam membangunkan skrip dan berinteraksi dengan tingkap

xautolock
Utiliti yang mengunci komputer apabila tidak aktif dan melancarkan i3-lock

i3lock-warna
Versi i3lock yang dipertingkatkan. Program ini diperlukan untuk mengunci komputer dan memasukkan kata laluan

scrot
Aplikasi minimalis untuk mengambil tangkapan skrin

ImageMagick
Program yang akan membantu anda berinteraksi dengan gambar (mengaburkannya terlebih dahulu, menukarnya, menukar resolusi)

Mengkonfigurasi i3

i3 - Pengurus tetingkap yang tidak menggunakan banyak sumber, oleh itu ia berguna kepada kami untuk "meniru" pengurus tetingkap biasa yang lain. (Hadiah itu, sudah tentu, datang dengan jubin - keupayaan pengurus tetingkap untuk membuka aplikasi ke seluruh bahagian skrin percuma)

Saya akan menyediakan konfigurasi i3 dalam bahagian-bahagian, supaya walaupun pemula memahami segala-galanya. Mari kita mulakan dengan perkara yang paling penting - butang $Mod. Ia berfungsi untuk berinteraksi dengan i3. Semua hotkey utama akan melaluinya.

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

Seterusnya, kami akan mengajar pengurus tetingkap kami untuk memindahkan tingkap dengan tetikus apabila diklik $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

Kami akan memasang fon untuk aplikasi kami, serta untuk aplikasi yang bergantung kepada i3

# Fonts
font pango: JetBrains Mono 10

Idea saya adalah untuk membuat semua tingkap pada mulanya terbang (yang, ternyata, sangat mudah). Untuk penjelasan: dalam i3 terdapat banyak jenis berlabuh tingkap (Tilling, Fullscreen, Tabbed, Float, Stacking), semuanya mudah dalam situasi berbeza, tetapi saya tidak nampak gunanya melakukan semua tingkap memenuhi seluruh skrin. Lebih baik biarkan mereka mengisinya apabila ditekan $mod + f, tetapi gantung di udara secara lalai, iaitu apa yang saya lakukan dalam sekeping kod berikut:

# 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

Supaya anda tidak keliru dengan ungkapan tersebut (1920 - 10)/2 and (1080 - 10)/2 bermakna setiap tetingkap akan menduduki satu perempat daripada skrin, dan terdapat juga lekukan (antara satu sama lain) tepat 5 piksel (5 pada semua sisi).

Seterusnya, mari kita ikat semua aplikasi utama. Semua kekunci pintas cuba memadankan skema ini

Konfigurasi i3 untuk komputer riba: bagaimana untuk mengurangkan prestasi kepada 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

Selain itu, kami akan mengikat semua fungsi utama yang kami lakukan tanpa berfikir, dan yang semestinya

# 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

Mari buat bahagian autostart

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

jurang i3 ialah binaan i3 yang menambah banyak ciri baharu. Salah satunya ialah menambah lekukan (jurang), yang secara visual kelihatan sangat bagus.

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

Apa yang berlaku?

Dan hasilnya adalah pemasangan yang agak minimalis pada i3, yang berfungsi dengan cepat pada komputer riba dan memberikan prestasi yang baik

Konfigurasi i3 untuk komputer riba: bagaimana untuk mengurangkan prestasi kepada 100%?

Oleh kerana saya menulis banyak konfigurasi (yang jelas kelihatan dalam tangkapan skrin), ia boleh didapati dalam repositori i3 yang hebat.

Beberapa tangkapan skrin lagi

Konfigurasi i3 untuk komputer riba: bagaimana untuk mengurangkan prestasi kepada 100%?

Konfigurasi i3 untuk komputer riba: bagaimana untuk mengurangkan prestasi kepada 100%?

Konfigurasi i3 untuk komputer riba: bagaimana untuk mengurangkan prestasi kepada 100%?

Sumber: www.habr.com

Tambah komen