การกำหนดค่า i3 สำหรับแล็ปท็อป: จะลดประสิทธิภาพลงเหลือ 100% ได้อย่างไร?

เมื่อเร็วๆ นี้ ฉันพบว่าแล็ปท็อปของฉันไม่ทรงพลังพอ ไม่มีพลังเพียงพอที่จะรวมทุกอย่างเข้าด้วยกัน: Vim (+ 20 ปลั๊กอิน), VSCode (+ ส่วนขยายจำนวนเท่ากัน), Google Chrome (+ 20 แท็บ) และอื่น ๆ ดูเหมือนจะเป็นปัญหาทั่วไปในแล็ปท็อปที่มี RAM ขนาด 4 GB แต่ฉันไม่ยอมแพ้ ฉันชอบแล็ปท็อปเพราะมีขนาดกะทัดรัดและสามารถใช้พลังงานแบตเตอรี่ได้ทุกที่ ฉันแค่ต้องหาวิธีเพิ่ม RAM พิเศษและเพิ่มประสิทธิภาพการใช้พลังงานด้วย

การกำหนดค่า i3 สำหรับแล็ปท็อป: จะลดประสิทธิภาพลงเหลือ 100% ได้อย่างไร?

หากคุณต้องการกำหนดค่าทันที ให้เลื่อนลงไปที่ส่วน “การแยกวิเคราะห์การติดตั้ง”

ระบบปฏิบัติการ

เนื่องจากฉันต้องการระบบปฏิบัติการที่ใช้ RAM และแบตเตอรี่น้อยที่สุด ฉันจึงเลือก Arch ลินุกซ์. คลาสสิค ไม่มีอะไรใหม่ พื้นที่เก็บข้อมูลของเขาจะช่วยให้ฉันทำงานที่ไม่จำเป็นจำนวนมากได้โดยอัตโนมัติและ 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 ช่องว่าง
ส่วนขยายตัวจัดการหน้าต่าง

ฐานพัฒนา
ส่วนประกอบที่จำเป็นในการติดตั้งโพลีบาร์

โรฟี่
ตัวเรียกใช้งานแอปพลิเคชัน

โอคูลาร์
โปรแกรมดูเอกสาร

zathura
โปรแกรมดูเอกสาร (ไม่รองรับส่วนขยายจำนวนมาก แต่มีความเรียบง่ายมากกว่า)

เฟ
โปรแกรมสำหรับดูภาพและตั้งค่าภาพพื้นหลัง

เป็นกลุ่ม
บรรณาธิการหลัก

รหัส
บรรณาธิการเพิ่มเติม

พิคอม
Composer (โปรแกรมสร้างเงา ความโปร่งใส เบลอพื้นหลัง)

กองทุน
อาคารผู้โดยสารหลัก

urxvt
เทอร์มินัลเพิ่มเติม

ตำรวจท้องถิ่น
ตัวจัดการไฟล์

คอมไพล์
ระบบควบคุมเวอร์ชัน

xdotool
ยูทิลิตี้ที่จะช่วยในการพัฒนาสคริปต์และการโต้ตอบกับ windows

xออโต้ล็อค
ยูทิลิตี้ที่จะล็อคคอมพิวเตอร์เมื่อไม่ได้ใช้งานและเปิดตัว i3-lock

i3lock-สี
เวอร์ชันปรับปรุงของ i3lock จำเป็นต้องใช้โปรแกรมเพื่อล็อคคอมพิวเตอร์และป้อนรหัสผ่าน

scrot
แอพสุดมินิมอลสำหรับการจับภาพหน้าจอ

ImageMagick
โปรแกรมที่จะช่วยให้คุณโต้ตอบกับรูปภาพ (เบลอภาพล่วงหน้า, แปลงภาพ, เปลี่ยนความละเอียด)

การกำหนดค่า i3

i3 - ตัวจัดการหน้าต่างที่ไม่ใช้ทรัพยากรมากนัก ดังนั้นจึงจะเป็นประโยชน์สำหรับเราในการ "จำลอง" ตัวจัดการหน้าต่างทั่วไปอื่น ๆ (แน่นอนว่าของขวัญดังกล่าวมาพร้อมกับการปูกระเบื้อง - ความสามารถของตัวจัดการหน้าต่างในการเปิดแอปพลิเคชันไปยังส่วนที่ว่างทั้งหมดของหน้าจอ)

ฉันจะจัดเตรียมการกำหนดค่า i3 ในส่วนต่างๆ เพื่อให้แม้แต่ผู้เริ่มต้นก็เข้าใจทุกอย่าง เริ่มจากสิ่งที่สำคัญที่สุดกันก่อน - ปุ่ม $ดัดแปลง. มันทำหน้าที่โต้ตอบกับ 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 มีหลายประเภท การเชื่อมต่อ windows (การไถพรวน, เต็มหน้าจอ, แบบแท็บ, ลอย, การเรียงซ้อน) ทั้งหมดนี้สะดวกในสถานการณ์ที่แตกต่างกัน แต่ฉันไม่เห็นประเด็นในการทำ ทั้งหมด หน้าต่างเต็มหน้าจอ ดีกว่าปล่อยให้พวกเขาเติมเมื่อกด $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% ได้อย่างไร?

ที่มา: will.com

เพิ่มความคิดเห็น