i3-Konfiguration für einen Laptop: Wie kann die Leistung auf 100 % reduziert werden?

Kürzlich habe ich festgestellt, dass mein Laptop nicht leistungsstark genug ist. Es hat nicht genug Leistung, um alles zusammenzunehmen: Vim (+ 20 Plugins), VSCode (+ die gleiche Anzahl an Erweiterungen), Google Chrome (+ 20 Tabs) und so weiter. Es scheint ein häufiges Problem bei Laptops mit 4 GB RAM zu sein, aber ich habe nicht aufgegeben. Ich liebe Laptops, weil sie kompakt sind und weil sie überall mit Akku betrieben werden können. Ich musste nur herausfinden, wie ich zusätzlichen RAM freigeben und gleichzeitig die Energieeffizienz steigern kann.

i3-Konfiguration für einen Laptop: Wie kann die Leistung auf 100 % reduziert werden?

Wenn Sie sofort Konfigurationen benötigen, scrollen Sie nach unten zum Abschnitt „Parsen der Installation“.

Operationssystem

Da ich ein Betriebssystem benötige, das am wenigsten RAM und Akku verbraucht, habe ich mich entschieden Arch Linux. Klassisch, nichts Neues. Seine Repositories werden es mir ermöglichen, eine Menge unnötiger Arbeit zu automatisieren, und AUR wird noch mehr Zeit sparen.

Fenstermanager

Ich habe mich entschieden, einen Fenstermanager anstelle einer vollwertigen Umgebung zu verwenden. Obwohl ich Sneakers (KDE) mag, fressen sie immer noch ziemlich viel, da sie ziemlich viele Bibliotheken und Abhängigkeiten abrufen. Nun, DE selbst verbraucht aufgrund aller möglichen unnötigen Widgets ziemlich viel.

i3-Konfiguration für einen Laptop: Wie kann die Leistung auf 100 % reduziert werden?

Lassen Sie uns die Installation zerlegen

Zuerst müssen wir alle Hauptpakete installieren (wir müssen etwas konfigurieren)

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 ist ein grobes Diagramm, wie alles funktionieren wird

i3-Konfiguration für einen Laptop: Wie kann die Leistung auf 100 % reduziert werden?

Welche Pakete werden wofür benötigt?

Package
Warum brauchen wir?

xwinwrap
Erforderlich, um Dateien mit der Erweiterung .gif als animierte Hintergrundbilder zu installieren

polybar
Wird benötigt, damit die Topbar im Fenstermanager angezeigt wird

i3
Der Fenstermanager selbst

i3-Lücken
Fenstermanager-Erweiterung

Basisentwicklung
Erforderliche Komponenten für die Installation von Polybar

rofi
Anwendungsstarter

okular
Dokumentenbetrachter

Zathura
Dokumentenbetrachter (unterstützt nicht viele Erweiterungen, ist aber minimalistischer)

feh
Ein Programm zum Betrachten von Bildern und auch zum Einstellen von Hintergrundbildern

vim
Hauptredakteur

Code
Zusätzlicher Herausgeber

picom
Composer (ein Programm, das Schatten, Transparenz und Hintergrundunschärfe erzeugt)

Kätzchen
Hauptterminal

urxvt
Zusätzliches Terminal

Ranger
Datei-Manager

git
Versionskontrollsystem

xdotool
Ein Dienstprogramm, das bei der Entwicklung von Skripten und der Interaktion mit Windows hilft

xautolock
Ein Dienstprogramm, das den Computer sperrt, wenn er inaktiv ist, und i3-lock startet

i3lock-Farbe
Verbesserte Version von i3lock. Das Programm wird benötigt, um den Computer zu sperren und ein Passwort einzugeben

Scrot
Minimalistische App zum Erstellen von Screenshots

imagemagick
Ein Programm, das Ihnen bei der Interaktion mit Bildern hilft (sie vorab unscharf macht, konvertiert, die Auflösung ändert)

i3 konfigurieren

i3 - Ein Fenstermanager, der nicht viele Ressourcen verbraucht und daher für uns nützlich sein wird, um andere reguläre Fenstermanager zu „emulieren“. (Das Geschenk geht natürlich mit der Kachelung einher – der Möglichkeit des Fenstermanagers, Anwendungen im gesamten freien Teil des Bildschirms zu öffnen)

Ich werde die Konfiguration bereitstellen i3 in Teilen, so dass auch Anfänger alles verstehen. Beginnen wir mit dem Wichtigsten – dem Knopf $Mod. Es dient der Interaktion i3. Alle wichtigen Hotkeys werden durchlaufen.

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

Als Nächstes bringen wir unserem Fenstermanager bei, Fenster beim Klicken mit der Maus zu verschieben $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

Wir installieren Schriftarten für unsere Anwendungen sowie für Anwendungen, die davon abhängen i3

# Fonts
font pango: JetBrains Mono 10

Meine Idee war zunächst, alle Fenster herzustellen fliegend (was, wie sich herausstellte, sehr praktisch ist). Zur Klarstellung: in i3 Es gibt viele Arten Docking Fenster (Tilling, Fullscreen, Tabbed, Float, Stacking) sind alle in verschiedenen Situationen praktisch, aber ich sehe keinen Sinn darin alle Fenster, die den gesamten Bildschirm ausfüllen. Lassen Sie sie besser füllen, wenn Sie darauf drücken $mod + f, hängen aber standardmäßig in der Luft, was ich im folgenden Codeabschnitt getan habe:

# 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

Damit Sie der Ausdruck nicht verwirrt (1920 - 10)/2 and (1080 - 10)/2 bedeutet, dass jedes Fenster ein Viertel des Bildschirms einnimmt und es außerdem einen Abstand (voneinander) von genau 5 Pixeln (5 auf allen Seiten) gibt.

Als nächstes binden wir alle Hauptanwendungen. Alle Hotkeys versuchen, diesem Schema zu entsprechen

i3-Konfiguration für einen Laptop: Wie kann die Leistung auf 100 % reduziert werden?

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

Außerdem werden wir alle Hauptfunktionen binden, die wir ohne nachzudenken ausführen und die sein müssen

# 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

Lassen Sie uns einen Autostart-Abschnitt erstellen

### 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-Lücken ist ein i3-Build, der viele neue Funktionen hinzufügt. Eine davon ist das Hinzufügen von Einzügen (Lücken), die optisch sehr gut aussehen.

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

Was ist passiert?

Und das Ergebnis ist eine eher minimalistische Baugruppe auf i3, die auf Laptops sehr schnell arbeitet und eine gute Leistung liefert

i3-Konfiguration für einen Laptop: Wie kann die Leistung auf 100 % reduziert werden?

Da ich viele Konfigurationen geschrieben habe (was im Screenshot deutlich zu sehen ist), sind diese im Repository zu finden Toller i3.

Noch ein paar Screenshots

i3-Konfiguration für einen Laptop: Wie kann die Leistung auf 100 % reduziert werden?

i3-Konfiguration für einen Laptop: Wie kann die Leistung auf 100 % reduziert werden?

i3-Konfiguration für einen Laptop: Wie kann die Leistung auf 100 % reduziert werden?

Source: habr.com

Kommentar hinzufügen