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.

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 arco 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.

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-perlsAqui está um diagrama aproximado de como tudo funcionará

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 Mod4A 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 noInstalaremos fontes para nossos aplicativos, bem como para aplicativos que dependem de i3
# Fonts
font pango: JetBrains Mono 10Minha 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=".*"] focusPara que você não se confunda com a expressão
(1920 - 10)/2 and (1080 - 10)/2significa 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

## 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 spectacleAlé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 windowkillVamos 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_ptrlacunas 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 #2f343fO que aconteceu?
E o resultado é uma montagem bastante minimalista no i3, que funciona muito rapidamente em laptops e oferece bom desempenho

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



Fonte: habr.com
