Configuración i3 para un portátil: como reducir o rendemento ao 100%?

Recentemente decateime de que o meu portátil non é o suficientemente potente. Non ten potencia suficiente para levar todo xunto: Vim (+ 20 complementos), VSCode (+ o mesmo número de extensións), Google Chrome (+ 20 pestanas) etc. Parece que é un problema común nos portátiles con 4 GB de RAM, pero non me rendín. Encántanme os portátiles porque son compactos e tamén porque poden funcionar con batería en calquera lugar. Só necesitaba descubrir como liberar RAM extra e tamén aumentar a eficiencia enerxética.

Configuración i3 para un portátil: como reducir o rendemento ao 100%?

Se precisas configuracións de inmediato, desprázate ata a sección "Analizar a instalación"

Sistema operativo

Xa que necesito un sistema operativo que consuma a menor cantidade de RAM e batería, escollín Arch Linux. Clásico, nada novo. Os seus repositorios permitiranme automatizar moito traballo innecesario, e AUR aforrará aínda máis tempo.

Xestor de fiestras

Decidín usar un xestor de fiestras en lugar dun ambiente completo. Aínda que me gustan as zapatillas deportivas (KDE), aínda comen bastante, debido a que sacan bastantes bibliotecas e dependencias. Ben, o propio DE consome moito debido a todo tipo de widgets innecesarios.

Configuración i3 para un portátil: como reducir o rendemento ao 100%?

Desmontamos a instalación

Primeiro necesitamos instalar todos os paquetes principais (necesitamos configurar algo)

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

Aquí tes un diagrama aproximado de como funcionará todo

Configuración i3 para un portátil: como reducir o rendemento ao 100%?

Que paquetes son necesarios para que?

Paquete
Que é necesario

xwinwrap
Necesítase para instalar ficheiros coa extensión .gif como fondos de pantalla animados

polibar
Necesítase para que a barra superior se mostre no xestor de ventás

i3
O propio xestor de fiestras

i3-gap
Extensión do xestor de fiestras

base-desenrolar
Compoñentes necesarios para instalar polybar

rofi
Lanzador de aplicacións

ocular
Visor de documentos

zathura
Visor de documentos (non admite moitas extensións, pero é máis minimalista)

feh
Un programa para ver imaxes e tamén para configurar imaxes de fondo

vitalidade
Editor principal

código
Editor adicional

picom
Composer (un programa que crea sombras, transparencia, desenfoque de fondo)

gatinho
Terminal principal

urxvt
Terminal adicional

estivar
Xestor de ficheiros

ir
Sistema de control de versións

xdotool
Unha utilidade que axudará a desenvolver scripts e interactuar con Windows

xautolock
Unha utilidade que bloquea o ordenador cando está inactivo e inicia i3-lock

i3lock-color
Versión mellorada de i3lock. O programa é necesario para bloquear o ordenador e introducir un contrasinal

escroto
Aplicación minimalista para facer capturas de pantalla

ImageMagick
Un programa que che axudará a interactuar coas imaxes (desenfocalas con antelación, convérteas, cambia a resolución)

Configurando i3

i3 - Un xestor de fiestras que non consume moitos recursos, polo que nos será útil para “emular” outros xestores de fiestras habituais. (O agasallo, por suposto, vén con mosaico: a capacidade do xestor de fiestras para abrir aplicacións a toda a parte gratuíta da pantalla)

Vou proporcionar a configuración i3 en partes, para que ata os principiantes entendan todo. Comecemos polo máis importante: o botón $Mod. Serve para interactuar i3. Todas as teclas rápidas principais pasarán por el.

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

A continuación, ensinarémoslle ao noso xestor de fiestras a mover as fiestras co rato ao facer clic $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

Instalaremos fontes para as nosas aplicacións, así como para as que dependen i3

# Fonts
font pango: JetBrains Mono 10

A miña idea era facer todas as fiestras inicialmente voando (o que, como se viu, é moi conveniente). Para aclaración: en i3 hai moitos tipos atraque xanelas (Labrar, Pantalla completa, Tabbed, Float, Stacking), todas elas son convenientes en diferentes situacións, pero non vexo o sentido de facelo todo fiestras enchendo toda a pantalla. É mellor que o enchen cando se preme $mod + f, pero colgar no aire por defecto, que é o que fixen no seguinte fragmento de código:

# 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

Para que non te confundas coa expresión (1920 - 10)/2 and (1080 - 10)/2 significa que cada xanela ocupará un cuarto da pantalla, e tamén haberá unha sangría (entre si) de exactamente 5 píxeles (5 en todos os lados).

A continuación, imos vincular todas as aplicacións principais. Todas as teclas de acceso rápido tentan coincidir con este esquema

Configuración i3 para un portátil: como reducir o rendemento ao 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

Ademais, enlazaremos todas as funcións principais que realizamos sen pensalo, e que deben ser

# 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

Imos facer unha sección de inicio automático

### 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-gap é unha compilación i3 que engade moitas funcións novas. Un deles é engadir sangrías (lagoas), que visualmente se ven moi ben.

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

Que pasou?

E o resultado é unha montaxe bastante minimalista no i3, que funciona moi rápido nos portátiles e dá un bo rendemento

Configuración i3 para un portátil: como reducir o rendemento ao 100%?

Dado que escribín moitas configuracións (que é claramente visible na captura de pantalla), pódense atopar no repositorio Gran i3.

Un par de capturas de pantalla máis

Configuración i3 para un portátil: como reducir o rendemento ao 100%?

Configuración i3 para un portátil: como reducir o rendemento ao 100%?

Configuración i3 para un portátil: como reducir o rendemento ao 100%?

Fonte: www.habr.com

Engadir un comentario