i3-konfigurasjon for en bærbar datamaskin: hvordan redusere ytelsen til 100 %?

Nylig innså jeg at den bærbare datamaskinen min ikke er kraftig nok. Den har ikke nok kraft til å ta alt sammen: Vim (+ 20 plugins), VSCode (+ samme antall utvidelser), Google Chrome (+ 20 faner) og så videre. Det ser ut til å være et vanlig problem på bærbare datamaskiner med 4 GB RAM, men jeg ga ikke opp. Jeg elsker bærbare datamaskiner fordi de er kompakte og også fordi de kan kjøre på batteri hvor som helst. Jeg trengte bare å finne ut hvordan jeg kunne frigjøre ekstra RAM og også øke energieffektiviteten.

i3-konfigurasjon for en bærbar datamaskin: hvordan redusere ytelsen til 100 %?

Hvis du trenger konfigurasjoner med en gang, bla ned til delen "Parser installasjonen"

Operativsystem

Siden jeg trenger et OS som bruker minst mulig RAM og batteri, valgte jeg Arch Linux. Klassisk, ikke noe nytt. Lagrene hans vil tillate meg å automatisere mye unødvendig arbeid, og AUR vil spare enda mer tid.

Vindusbehandler

Jeg bestemte meg for å bruke en vindusbehandling i stedet for et fullverdig miljø. Selv om jeg liker joggesko (KDE), spiser de fortsatt ganske mye, på grunn av det faktum at de trekker opp ganske mange biblioteker og avhengigheter. Vel, DE selv bruker ganske mye på grunn av alle slags unødvendige widgets.

i3-konfigurasjon for en bærbar datamaskin: hvordan redusere ytelsen til 100 %?

La oss demontere installasjonen

Først må vi installere alle hovedpakkene (vi må konfigurere noe)

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

Her er et grovt diagram over hvordan alt vil fungere

i3-konfigurasjon for en bærbar datamaskin: hvordan redusere ytelsen til 100 %?

Hvilke pakker trengs til hva?

pakke
Hvorfor trenger vi

xwinwrap
Nødvendig for å installere filer med .gif-utvidelsen som animerte bakgrunnsbilder

polybar
Nødvendig for at topplinjen skal vises i vindusbehandlingen

i3
Vindusbehandleren selv

i3-hull
Window Manager-utvidelse

base-utvikling
Komponenter som kreves for å installere polybar

Rofi
Programstarter

okulate
Dokumentviser

zathura
Dokumentviser (støtter ikke mange utvidelser, men er mer minimalistisk)

FEH
Et program for å se bilder og også for å sette bakgrunnsbilder

vim
Hovedredaktør

kode
Ekstra redaktør

picom
Composer (et program som skaper skygger, gjennomsiktighet, bakgrunnsuskarphet)

kitty
Hovedterminal

urxvt
Ekstra terminal

ranger
Filbehandler

git
Versjonskontrollsystem

xdotool
Et verktøy som hjelper til med å utvikle skript og samhandle med Windows

xautolås
Et verktøy som låser datamaskinen når den er inaktiv og starter i3-lock

i3lock-farge
Forbedret versjon av i3lock. Programmet er nødvendig for å låse datamaskinen og skrive inn et passord

skrot
Minimalistisk app for å ta skjermbilder

ImageMagick
Et program som vil hjelpe deg å samhandle med bilder (slører dem på forhånd, konverterer dem, endrer oppløsning)

Konfigurerer i3

i3 - En vindusbehandler som ikke bruker mye ressurser, derfor vil den være nyttig for oss for å "emulere" andre vanlige vindusbehandlere. (Gaven kommer selvfølgelig med flislegging - muligheten til vindusbehandleren til å åpne applikasjoner til hele den gratis delen av skjermen)

Jeg vil gi konfigurasjonen i3 i deler, slik at selv nybegynnere forstår alt. La oss starte med det viktigste - knappen $Mod. Det tjener til å samhandle med i3. Alle store hurtigtaster vil passere gjennom den.

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

Deretter vil vi lære vindusbehandleren vår å flytte vinduer med musen når du klikker $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 vil installere fonter for våre applikasjoner, samt for applikasjoner som er avhengig av i3

# Fonts
font pango: JetBrains Mono 10

Tanken min var å lage alle vinduene i utgangspunktet flyr (som det viste seg er veldig praktisk). For avklaring: in i3 det er mange typer dokking vinduer (Tilling, Fullscreen, Tabbed, Float, Stacking), alle er praktiske i forskjellige situasjoner, men jeg ser ikke poenget med å gjøre det alle vinduer som fyller hele skjermen. Bedre å la dem fylle den når de trykkes $mod + f, men henger i luften som standard, som er det jeg gjorde i følgende kodebit:

# 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

Slik at du ikke blir forvirret av uttrykket (1920 - 10)/2 and (1080 - 10)/2 betyr at hvert vindu vil oppta en fjerdedel av skjermen, og det vil også være en innrykk (fra hverandre) på nøyaktig 5 piksler (5 på alle sider).

La oss deretter binde alle hovedapplikasjonene. Alle hurtigtaster prøver å matche dette opplegget

i3-konfigurasjon for en bærbar datamaskin: hvordan redusere ytelsen til 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

Dessuten vil vi binde alle hovedfunksjonene som vi utfører uten å tenke, og som må være

# 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

La oss lage en autostartseksjon

### 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-hull er en i3-konstruksjon som legger til mange nye funksjoner. En av dem er å legge til innrykk (hull), som visuelt ser veldig 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

Hva skjedde?

Og resultatet er en ganske minimalistisk montering på i3, som fungerer veldig raskt på bærbare datamaskiner og gir god ytelse

i3-konfigurasjon for en bærbar datamaskin: hvordan redusere ytelsen til 100 %?

Siden jeg skrev mange konfigurasjoner (som er godt synlig på skjermbildet), kan de bli funnet i depotet Flott i3.

Et par skjermbilder til

i3-konfigurasjon for en bærbar datamaskin: hvordan redusere ytelsen til 100 %?

i3-konfigurasjon for en bærbar datamaskin: hvordan redusere ytelsen til 100 %?

i3-konfigurasjon for en bærbar datamaskin: hvordan redusere ytelsen til 100 %?

Kilde: www.habr.com

Legg til en kommentar