Configuração i3 para laptop: como reduzir o desempenho para 100%?

Recentemente percebi que meu laptop não é potente o suficiente. Não tem potência suficiente para juntar tudo: Vim (+ 20 plugins), VSCode (+ o mesmo número de extensões), Google Chrome (+ 20 abas) e assim por diante. Pareceria um problema comum em laptops com 4 GB de RAM, mas não desisti. Adoro laptops porque são compactos e também porque podem funcionar com bateria em qualquer lugar. Eu só precisava descobrir como liberar RAM extra e também aumentar a eficiência energética.

Configuração i3 para laptop: como reduzir o desempenho para 100%?

Se você precisar de configurações imediatamente, role para baixo até a seção “Analisando a instalação”

Sistema operacional

Como preciso de um sistema operacional que consuma o mínimo de RAM e bateria, escolhi Arch Linux. Clássico, nada de novo. Seus repositórios me permitirão automatizar muito trabalho desnecessário, e AUR economizará ainda mais tempo.

Gerenciador de janelas

Decidi usar um gerenciador de janelas em vez de um ambiente completo. Embora eu goste de tênis (KDE), eles ainda consomem bastante, devido ao fato de possuírem muitas bibliotecas e dependências. Bem, o próprio DE consome bastante devido a todos os tipos de widgets desnecessários.

Configuração i3 para laptop: como reduzir o desempenho para 100%?

Vamos desmontar a instalação

Primeiro precisamos instalar todos os pacotes principais (precisamos 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

Aqui está um diagrama aproximado de como tudo funcionará

Configuração i3 para laptop: como reduzir o desempenho para 100%?

Quais pacotes são necessários para quê?

Pacote
O que é necessário

xwinwrap
Necessário para instalar arquivos com extensão .gif como papéis de parede animados

polibar
Necessário para que a barra superior seja exibida no gerenciador de janelas

i3
O próprio gerenciador de janelas

lacunas i3
Extensão do gerenciador de janelas

desenvolvimento básico
Componentes necessários para instalar o polybar

rofi
Iniciador de aplicativos

okulate
Visualizador de documentos

Zathura
Visualizador de documentos (não suporta muitas extensões, mas é mais minimalista)

feh
Um programa para visualizar fotos e também para definir imagens de fundo

vitalidade
Editor principal

código
Editor adicional

picom
Composer (um programa que cria sombras, transparência, desfoque de fundo)

gatinho
Terminal principal

urxvt
Terminal adicional

guarda-florestal
Gerenciador de arquivos

git
Sistema de controle de versão

xdotool
Um utilitário que ajudará no desenvolvimento de scripts e na interação com o Windows

xautolock
Um utilitário que bloqueia o computador quando inativo e inicia o i3-lock

cor i3lock
Versão melhorada do i3lock. O programa é necessário para bloquear o computador e inserir uma senha

escroto
Aplicativo minimalista para tirar screenshots

imagemagick
Um programa que o ajudará a interagir com as imagens (desfoque-as antecipadamente, converta-as, altere a resolução)

Configurando i3

i3 - Um gestor de janelas que não consome muitos recursos, pelo que nos será útil para “emular” outros gestores de janelas regulares. (O presente, é claro, vem com o lado a lado - a capacidade do gerenciador de janelas de abrir aplicativos em toda a parte livre da tela)

vou fornecer a configuração i3 em partes, para que até os iniciantes entendam tudo. Vamos começar com o mais importante: o botão $ Mod. Serve para interagir com i3. Todas as principais teclas de atalho passarão por ele.

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

A seguir, ensinaremos nosso gerenciador de janelas a mover janelas com o mouse quando clicado $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 nossos aplicativos, bem como para aplicativos que dependem de i3

# Fonts
font pango: JetBrains Mono 10

Minha ideia era fazer todas as janelas inicialmente vôo (o que, no fim das contas, é muito conveniente). Para esclarecimentos: em i3 existem muitos tipos ancoragem janelas (Tilling, Fullscreen, Tabbed, Float, Stacking), todas elas são convenientes em diferentes situações, mas não vejo sentido em fazer todos janelas preenchendo a tela inteira. Melhor deixá-los preencher quando pressionado $mod + f, mas fica no ar por padrão, que foi o que fiz no seguinte trecho 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 você não se confunda com a expressão (1920 - 10)/2 and (1080 - 10)/2 significa que cada janela ocupará um quarto da tela e também haverá um recuo (uma da outra) de exatamente 5 pixels (5 em todos os lados).

A seguir, vamos vincular todos os aplicativos principais. Todas as teclas de atalho tentam corresponder a este esquema

Configuração i3 para laptop: como reduzir o desempenho para 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

Além disso, vincularemos todas as funções principais que desempenhamos sem pensar e que devem 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

Vamos fazer uma seção de inicialização automática

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

lacunas i3 é uma versão i3 que adiciona muitos recursos novos. Uma delas é adicionar recuos (lacunas), que visualmente ficam muito bons.

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

O que aconteceu?

E o resultado é uma montagem bastante minimalista no i3, que funciona muito rapidamente em laptops e oferece bom desempenho

Configuração i3 para laptop: como reduzir o desempenho para 100%?

Como escrevi muitas configurações (que são claramente visíveis na captura de tela), elas podem ser encontradas no repositório Ótimo i3.

Mais algumas capturas de tela

Configuração i3 para laptop: como reduzir o desempenho para 100%?

Configuração i3 para laptop: como reduzir o desempenho para 100%?

Configuração i3 para laptop: como reduzir o desempenho para 100%?

Fonte: habr.com

Adicionar um comentário