i3-konfiguration til en bærbar computer: hvordan reduceres ydeevnen til 100 %?

For nylig indså jeg, at min bærbare computer ikke er kraftig nok. Den har ikke strøm nok til at samle alt: Vim (+ 20 plugins), VSCode (+ det samme antal udvidelser), Google Chrome (+ 20 faner) og så videre. Det ser ud til at være et almindeligt problem på bærbare computere med 4 GB RAM, men jeg gav ikke op. Jeg elsker bærbare computere, fordi de er kompakte, og også fordi de kan køre på batteri overalt. Jeg skulle bare finde ud af, hvordan man frigør ekstra RAM og også øger energieffektiviteten.

i3-konfiguration til en bærbar computer: hvordan reduceres ydeevnen til 100 %?

Hvis du har brug for konfigurationer med det samme, så rul ned til afsnittet "Parsering af installationen"

Operativsystem

Da jeg har brug for et OS, der vil forbruge den mindste mængde RAM og batteri, valgte jeg Arch Linux. Klassisk, intet nyt. Hans arkiver vil give mig mulighed for at automatisere en masse unødvendigt arbejde, og AUR vil spare endnu mere tid.

Window manager

Jeg besluttede at bruge en vindueshåndtering i stedet for et fuldgyldigt miljø. Selvom jeg godt kan lide sneakers (KDE), spiser de stadig ret meget, på grund af det faktum, at de trækker ret mange biblioteker og afhængigheder op. Nå, DE selv bruger ret meget på grund af alle mulige unødvendige widgets.

i3-konfiguration til en bærbar computer: hvordan reduceres ydeevnen til 100 %?

Lad os skille installationen ad

Først skal vi installere alle hovedpakkerne (vi skal konfigurere noget)

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 groft diagram over, hvordan alt vil fungere

i3-konfiguration til en bærbar computer: hvordan reduceres ydeevnen til 100 %?

Hvilke pakker er nødvendige til hvad?

pakke
Hvad er nødvendigt

xwinwrap
Nødvendig for at installere filer med .gif-udvidelsen som animerede baggrunde

polybar
Nødvendig for at topbjælken kan vises i vindueshåndteringen

i3
Selve vinduesmanageren

i3-huller
Window Manager-udvidelse

base-udvikling
Komponenter, der kræves for at installere polybar

rofi
App-starter

okulate
Dokumentfremviser

Zathura
Dokumentfremviser (understøtter ikke mange udvidelser, men er mere minimalistisk)

FEH
Et program til visning af billeder og også til indstilling af baggrundsbilleder

vim
Hovedredaktør

kode
Ekstra redaktør

picom
Composer (et program, der skaber skygger, gennemsigtighed, baggrundssløring)

kitty
Hovedterminal

urxvt
Ekstra terminal

Ranger
Filhåndtering

git
Versionsstyringssystem

xdotool
Et værktøj, der hjælper med at udvikle scripts og interagere med Windows

xautolås
Et værktøj, der låser computeren, når den er inaktiv, og starter i3-lock

i3lock-farve
Forbedret version af i3lock. Programmet er nødvendigt for at låse computeren og indtaste en adgangskode

scrot
Minimalistisk app til at tage skærmbilleder

ImageMagick
Et program, der hjælper dig med at interagere med billeder (slører dem på forhånd, konverterer dem, ændrer opløsning)

Konfiguration af i3

i3 - En vinduesmanager, der ikke bruger mange ressourcer, så den vil være nyttig for os for at "emulere" andre almindelige vinduesadministratorer. (Gaven kommer selvfølgelig med flisebelægning - vinduesadministratorens mulighed for at åbne applikationer til hele den gratis del af skærmen)

Jeg vil levere konfigurationen i3 i dele, så selv begyndere forstår alt. Lad os starte med det vigtigste - knappen $Mod. Det tjener til at interagere med i3. Alle større genvejstaster vil passere igennem den.

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

Dernæst vil vi lære vores vinduesmanager at flytte vinduer med musen, når der klikkes $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 skrifttyper til vores applikationer, såvel som til applikationer, der er afhængige af i3

# Fonts
font pango: JetBrains Mono 10

Min idé var at lave alle vinduerne i starten flyvende (hvilket, som det viste sig, er meget praktisk). Til afklaring: in i3 der er mange typer docking vinduer (Tilling, Fullscreen, Tabbed, Float, Stacking), alle er praktiske i forskellige situationer, men jeg kan ikke se meningen med at gøre det alle vinduer, der fylder hele skærmen. Lad dem hellere fylde det, når de trykkes $mod + f, men hæng i luften som standard, hvilket er hvad jeg gjorde i følgende stykke kode:

# 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å du ikke bliver forvirret af udtrykket (1920 - 10)/2 and (1080 - 10)/2 betyder, at hvert vindue vil optage en fjerdedel af skærmen, og der vil også være en indrykning (fra hinanden) på præcis 5 pixels (5 på alle sider).

Lad os derefter binde alle de vigtigste applikationer. Alle genvejstaster forsøger at matche dette skema

i3-konfiguration til en bærbar computer: hvordan reduceres ydeevnen 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

Vi vil også binde alle de vigtigste funktioner, som vi udfører uden at tænke, og som skal 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

Lad os lave 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-huller er en i3 build, der tilføjer mange nye funktioner. En af dem er at tilføje indrykninger (huller), som visuelt ser meget godt ud.

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

Hvad er der sket?

Og resultatet er en ret minimalistisk samling på i3, som fungerer meget hurtigt på bærbare computere og giver god ydeevne

i3-konfiguration til en bærbar computer: hvordan reduceres ydeevnen til 100 %?

Da jeg skrev en masse konfigurationer (som tydeligt kan ses på skærmbilledet), kan de findes i repository Fantastisk i3.

Et par skærmbilleder mere

i3-konfiguration til en bærbar computer: hvordan reduceres ydeevnen til 100 %?

i3-konfiguration til en bærbar computer: hvordan reduceres ydeevnen til 100 %?

i3-konfiguration til en bærbar computer: hvordan reduceres ydeevnen til 100 %?

Kilde: www.habr.com

Tilføj en kommentar