i3-configuratie voor een laptop: hoe reduceer je de prestaties tot 100%?

Onlangs kwam ik erachter dat mijn laptop niet krachtig genoeg is. Het heeft niet genoeg kracht om alles samen te brengen: Vim (+ 20 plug-ins), VSCode (+ hetzelfde aantal extensies), Google Chrome (+ 20 tabbladen) enzovoort. Het lijkt een veel voorkomend probleem te zijn op laptops met 4 GB RAM, maar ik gaf niet op. Ik hou van laptops omdat ze compact zijn en ook omdat ze overal op batterijvoeding kunnen werken. Ik moest gewoon uitzoeken hoe ik extra RAM kon vrijmaken en ook de energie-efficiΓ«ntie kon verhogen.

i3-configuratie voor een laptop: hoe reduceer je de prestaties tot 100%?

Als je meteen configuraties nodig hebt, scroll dan naar beneden naar de sectie β€œDe installatie parseren”

Besturingssysteem

Omdat ik een besturingssysteem nodig heb dat de minste hoeveelheid RAM en batterij verbruikt, heb ik ervoor gekozen Arch Linux. Klassiek, niets nieuws. Dankzij zijn opslagplaatsen kan ik veel onnodig werk automatiseren AUR zal nog meer tijd besparen.

Vensterbeheerder

Ik besloot een windowmanager te gebruiken in plaats van een volwaardige omgeving. Hoewel ik van sneakers houd (KDE), eten ze nog steeds behoorlijk veel, vanwege het feit dat ze behoorlijk wat bibliotheken en afhankelijkheden bevatten. Nou, DE zelf verbruikt behoorlijk veel vanwege allerlei onnodige widgets.

i3-configuratie voor een laptop: hoe reduceer je de prestaties tot 100%?

Laten we de installatie demonteren

Eerst moeten we alle hoofdpakketten installeren (we moeten iets configureren)

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

Hier is een ruw diagram van hoe alles zal werken

i3-configuratie voor een laptop: hoe reduceer je de prestaties tot 100%?

Welke pakketten zijn waarvoor nodig?

Verpakking
Wat is nodig

xwinwrap
Nodig om bestanden met de .gif-extensie te installeren als geanimeerde achtergronden

polybar
Nodig om de bovenste balk weer te geven in de vensterbeheerder

i3
De vensterbeheerder zelf

i3-gaps
Extensie voor vensterbeheer

basisontwikkeling
Componenten die nodig zijn om polybar te installeren

rofi
Applicatiestarter

okular
Documentviewer

Zathura
Documentviewer (ondersteunt niet veel extensies, maar is minimalistischer)

FEH
Een programma voor het bekijken van afbeeldingen en ook voor het instellen van achtergrondafbeeldingen

vim
Hoofdredacteur

code
Extra redacteur

picom
Componist (een programma dat schaduwen, transparantie en achtergrondvervaging creΓ«ert)

poesje
Hoofdterminal

uxvt
Extra terminal

ranger
Bestandsbeheerder

git
Versiebeheersysteem

xdotool
Een hulpprogramma dat helpt bij het ontwikkelen van scripts en de interactie met vensters

xautomatisch vergrendelen
Een hulpprogramma dat de computer vergrendelt wanneer deze inactief is en i3-lock start

i3lock-kleur
Verbeterde versie van i3lock. Het programma is nodig om de computer te vergrendelen en een wachtwoord in te voeren

scrot
Minimalistische app voor het maken van screenshots

imagemagick
Een programma dat u helpt bij de interactie met afbeeldingen (vervaagt ze vooraf, converteert ze, wijzigt de resolutie)

i3 configureren

i3 - Een windowmanager die niet veel bronnen verbruikt, dus voor ons nuttig om andere reguliere windowmanagers te β€œemuleren”. (Het geschenk wordt natuurlijk geleverd met tegels: de mogelijkheid van de windowmanager om applicaties op het hele vrije deel van het scherm te openen)

Ik zal de configuratie verstrekken i3 in delen, zodat zelfs beginners alles begrijpen. Laten we beginnen met het belangrijkste: de knop $Mod. Het dient om mee te communiceren i3. Alle belangrijke sneltoetsen passeren er doorheen.

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

Vervolgens leren we onze vensterbeheerder om vensters met de muis te verplaatsen wanneer erop wordt geklikt $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

We zullen lettertypen installeren voor onze applicaties, maar ook voor applicaties die hiervan afhankelijk zijn i3

# Fonts
font pango: JetBrains Mono 10

Mijn idee was om in eerste instantie alle ramen te maken vliegen (wat, zo bleek, erg handig is). Ter verduidelijking: in i3 er zijn veel soorten aanmeren vensters (Tilling, Volledig scherm, Met tabbladen, Zwevend, Stapelen), ze zijn allemaal handig in verschillende situaties, maar ik zie het nut er niet van in alle vensters die het hele scherm vullen. Laat ze het beter vullen wanneer erop wordt gedrukt $mod + f, maar standaard in de lucht hangen, wat ik deed in het volgende stukje code:

# 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

Zodat je niet in de war raakt door de uitdrukking (1920 - 10)/2 and (1080 - 10)/2 betekent dat elk venster een kwart van het scherm in beslag neemt, en dat er ook een inkeping (van elkaar) zal zijn van precies 5 pixels (5 aan alle kanten).

Laten we vervolgens alle hoofdtoepassingen binden. Alle sneltoetsen proberen dit schema te evenaren

i3-configuratie voor een laptop: hoe reduceer je de prestaties tot 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

Ook zullen we alle hoofdfuncties binden die we uitvoeren zonder na te denken, en die dat ook moeten zijn

# 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

Laten we een autostart-sectie maken

### 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-gaps is een i3-build die veel nieuwe functies toevoegt. Een daarvan is het toevoegen van streepjes (openingen), die er visueel erg goed uitzien.

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

Wat is er gebeurd?

En het resultaat is een nogal minimalistische montage op i3, die zeer snel werkt op laptops en goede prestaties levert

i3-configuratie voor een laptop: hoe reduceer je de prestaties tot 100%?

Omdat ik veel configuraties heb geschreven (wat duidelijk zichtbaar is in de schermafbeelding), zijn ze te vinden in de repository Geweldige i3.

Nog een paar schermafbeeldingen

i3-configuratie voor een laptop: hoe reduceer je de prestaties tot 100%?

i3-configuratie voor een laptop: hoe reduceer je de prestaties tot 100%?

i3-configuratie voor een laptop: hoe reduceer je de prestaties tot 100%?

Bron: www.habr.com

Voeg een reactie