i3-konfiguration för en bärbar dator: hur minskar man prestanda till 100 %?

Nyligen insåg jag att min bärbara dator inte är tillräckligt kraftfull. Den har inte tillräckligt med kraft för att ta ihop allt: Vim (+ 20 plugins), VSCode (+ samma antal tillägg), Google Chrome (+ 20 flikar) och så vidare. Det verkar vara ett vanligt problem på bärbara datorer med 4 GB RAM, men jag gav inte upp. Jag älskar bärbara datorer eftersom de är kompakta och även för att de kan köras på batteri var som helst. Jag behövde bara ta reda på hur man kan frigöra extra RAM och även öka energieffektiviteten.

i3-konfiguration för en bärbar dator: hur minskar man prestanda till 100 %?

Om du behöver konfigurationer direkt, scrolla ner till avsnittet "Parsera installationen"

Operativsystem

Eftersom jag behöver ett OS som kommer att förbruka minst mängd RAM och batteri, valde jag Arch Linux. Klassiskt, inget nytt. Hans arkiv kommer att tillåta mig att automatisera mycket onödigt arbete, och AUR kommer att spara ännu mer tid.

Fönsterhanterare

Jag bestämde mig för att använda en fönsterhanterare snarare än en fullfjädrad miljö. Även om jag gillar sneakers (KDE), äter de fortfarande upp ganska mycket, på grund av att de drar upp ganska många bibliotek och beroenden. Tja, DE själva förbrukar ganska mycket på grund av alla möjliga onödiga widgets.

i3-konfiguration för en bärbar dator: hur minskar man prestanda till 100 %?

Låt oss demontera installationen

Först måste vi installera alla huvudpaket (vi måste konfigurera något)

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

Här är ett grovt diagram över hur allt kommer att fungera

i3-konfiguration för en bärbar dator: hur minskar man prestanda till 100 %?

Vilka paket behövs till vad?

paket
Vad behövs

xwinwrap
Behövs för att installera filer med tillägget .gif som animerade bakgrundsbilder

polybar
Behövs för att toppfältet ska visas i fönsterhanteraren

i3
Själva fönsterhanteraren

i3-luckor
Fönsterhanterarens tillägg

basutveckling
Komponenter som krävs för att installera polybar

ROFI
Programstartare

okular
Dokumentvisare

zathura
Dokumentvisare (stöder inte många tillägg, men är mer minimalistisk)

feh
Ett program för att visa bilder och även för att ställa in bakgrundsbilder

vim
Huvudredaktör

koda
Ytterligare redaktör

picom
Composer (ett program som skapar skuggor, transparens, bakgrundsoskärpa)

pott
Huvudterminal

urxvt
Ytterligare terminal

ranger
Filhanterare


Versionskontrollsystem

xdotool
Ett verktyg som hjälper till att utveckla skript och interagera med Windows

xautolås
Ett verktyg som låser datorn när den är inaktiv och startar i3-lock

i3lock-färg
Förbättrad version av i3lock. Programmet behövs för att låsa datorn och ange ett lösenord

scrot
Minimalistisk app för att ta skärmdumpar

imagemagick
Ett program som hjälper dig att interagera med bilder (suddar dem i förväg, konverterar dem, ändrar upplösning)

Konfigurera i3

i3 - En fönsterhanterare som inte förbrukar mycket resurser, därför kommer den att vara användbar för oss för att "emulera" andra vanliga fönsterhanterare. (Gåvan kommer naturligtvis med plattsättning - fönsterhanterarens förmåga att öppna applikationer till hela den fria delen av skärmen)

Jag kommer att tillhandahålla konfigurationen i3 i delar, så att även nybörjare förstår allt. Låt oss börja med det viktigaste - knappen $Mod. Det tjänar till att interagera med i3. Alla stora snabbtangenter kommer att passera genom den.

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

Därefter kommer vi att lära vår fönsterhanterare att flytta fönster med musen när den klickas $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

Vi kommer att installera typsnitt för våra applikationer, såväl som för applikationer som är beroende av i3

# Fonts
font pango: JetBrains Mono 10

Min idé var att göra alla fönster från början flygande (vilket, som det visade sig, är väldigt bekvämt). För förtydligande: in i3 det finns många typer dockning fönster (Tilling, Fullscreen, Tabbed, Float, Stacking), alla är bekväma i olika situationer, men jag ser inte poängen med att göra alla fönster som fyller hela skärmen. Bättre att låta dem fylla den när de trycks $mod + f, men hänger i luften som standard, vilket är vad jag gjorde i följande kod:

# 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

Så att du inte blir förvirrad av uttrycket (1920 - 10)/2 and (1080 - 10)/2 innebär att varje fönster kommer att uppta en fjärdedel av skärmen, och det kommer också att finnas en indragning (från varandra) på exakt 5 pixlar (5 på alla sidor).

Låt oss sedan binda alla huvudapplikationer. Alla snabbtangenter försöker matcha detta schema

i3-konfiguration för en bärbar dator: hur minskar man prestanda till 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

Vi kommer också att binda alla huvudfunktioner som vi utför utan att tänka, och som måste vara

# 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

Låt oss göra en autostartsektion

### 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-luckor är en i3-version som lägger till många nya funktioner. En av dem är att lägga till indrag (luckor), som visuellt ser väldigt bra ut.

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

Vad hände?

Och resultatet är en ganska minimalistisk montering på i3, som fungerar väldigt snabbt på bärbara datorer och ger bra prestanda

i3-konfiguration för en bärbar dator: hur minskar man prestanda till 100 %?

Eftersom jag skrev många konfigurationer (vilket syns tydligt på skärmdumpen) kan de hittas i förvaret Bra i3.

Ett par skärmdumpar till

i3-konfiguration för en bärbar dator: hur minskar man prestanda till 100 %?

i3-konfiguration för en bärbar dator: hur minskar man prestanda till 100 %?

i3-konfiguration för en bärbar dator: hur minskar man prestanda till 100 %?

Källa: will.com

Lägg en kommentar