Skip to content

Instantly share code, notes, and snippets.

@rg3915
Last active February 22, 2026 00:34
Show Gist options
  • Select an option

  • Save rg3915/e20a277a967bf658b2c1f26fb848c5ee to your computer and use it in GitHub Desktop.

Select an option

Save rg3915/e20a277a967bf658b2c1f26fb848c5ee to your computer and use it in GitHub Desktop.
Arch Linux (EndeavourOS) + Dell XPS + Dock WD19S: configuração de monitores 4K, KDE Plasma, e setup completo do sistema.

Arch Linux - Dell XPS + Dock WD19S + KDE Plasma

Setup completo do Arch Linux (EndeavourOS) em um Dell XPS com dock station Dell WD19S e dois monitores 4K Samsung.

Arquivos

Configuração da dock Dell WD19S com dois monitores 4K via MST. Inclui troubleshooting (X11 vs Wayland), limitações de banda, layout xrandr, firmware, portas USB-C/Thunderbolt e diagnóstico.

Guia de instalação e configuração do sistema: programas essenciais, Git, SSH, Docker, Dropbox, Sublime Text, uv (Python), Bash-it, aliases e atalhos do KDE.

Fix para o ícone do Dropbox não aparecer na bandeja do KDE. Solução via override do systemd para esperar o plasma-core.target.

Configuração do painel do KDE Plasma: relógio centralizado, wallpaper 4K (FillMode), painel replicado em múltiplos monitores, bandeja do sistema e taxa de repetição do teclado.

Hardware

  • Notebook: Dell XPS (Intel Iris Plus G7, Ice Lake)
  • Dock: Dell WD19S (USB-C)
  • Monitores: 2x Samsung LU28R55 28" 4K (3840x2160 @ 30Hz via MST)
  • Display server: X11 (Wayland trava com hotplug DP)
  • Kernel: LTS

Dell Dock WD19 + Arch Linux - Veredito Final

Data: 2026-02-14 Equipamento: Dell XPS (Intel Iris Plus G7, Ice Lake) + Dock Dell WD19 (USB-C/Thunderbolt) OS: Arch Linux (EndeavourOS), systemd-boot com UKI (dracut), ESP em /efi/


1. Hardware

Componente Modelo
Notebook Dell XPS (Intel Iris Plus Graphics G7, Ice Lake)
Dock Dell WD19 (USB-C, nao Thunderbolt)
Monitor 1 Samsung LU28R55 28" 4K
Monitor 2 Samsung LU28R55 28" 4K
GPU Intel Iris Plus Graphics G7
Conexao USB-C com DisplayPort MST

2. O problema original

O notebook Dell XPS com Arch Linux (EndeavourOS) conectado a uma dock Dell WD19 via USB-C não reconhecia os monitores externos. Periféricos USB (ethernet, hub, teclado) funcionavam, mas a saída de vídeo não. Ao conectar a dock, o sistema travava completamente.

O sistema estava rodando Wayland (KDE Plasma / KWin) com kernel mainline 6.18.9-arch1-2.


3. O que tentamos e NÃO funcionou

3.1 Recarregar módulos typec (sem reiniciar)

Suspeitou-se de bug no módulo typec_ucsi / typec_displayport (reference count -1, WARNING no kernel em drivers/usb/typec/class.c:311).

sudo modprobe -r typec_displayport typec_ucsi ucsi_acpi
sudo modprobe ucsi_acpi

Resultado: sistema travou. Os módulos typec ficaram em estado inconsistente.

3.2 Kernel LTS (ainda no Wayland)

Instalamos o kernel LTS para testar se era regressão do kernel mainline:

sudo pacman -S linux-lts linux-lts-headers

Reiniciamos e selecionamos o kernel LTS 6.12.71-1-lts no boot.

Resultado: dock ainda travava o sistema. O kernel LTS não resolveu porque o problema não era do kernel.

3.3 Parâmetro i915.enable_dp_mst=1

Adicionamos ao cmdline do kernel para garantir suporte a MST (Multi-Stream Transport, usado pela dock para múltiplos monitores):

i915.enable_dp_mst=1

Resultado: já estava ativo, não fez diferença. O problema não era do driver i915.

3.4 Descarregar módulos typec antes de conectar a dock

Tentamos descarregar os módulos typec antes de plugar a dock para evitar o bug:

sudo modprobe -r typec_displayport typec_ucsi ucsi_acpi
# Então conectar a dock

Resultado: travou igual. O problema era mais baixo nível que os módulos typec.

3.5 Blacklist parcial (só typec_displayport)

Criamos blacklist em /etc/modprobe.d/:

echo "blacklist typec_displayport" | sudo tee /etc/modprobe.d/blacklist-typec.conf

Resultado: dock era reconhecida mas sistema ainda travava.

3.6 Blacklist total (typec_displayport + typec_ucsi + ucsi_acpi)

Blacklist completo de todos os módulos typec:

cat <<EOF | sudo tee /etc/modprobe.d/blacklist-typec.conf
blacklist typec_displayport
blacklist typec_ucsi
blacklist ucsi_acpi
EOF

Confirmamos que nenhum módulo typec estava carregado com lsmod | grep typec.

Resultado: dock AINDA travava o sistema mesmo sem nenhum módulo typec. Isso descartou definitivamente typec como causa raiz.

Lição: Arquivos em /etc/modprobe.d/ NÃO podem ter espaços antes de #. O parser do kmod rejeita silenciosamente linhas com indentação antes do #. Sempre colocar # no início da linha.


4. O que funcionou

4.1 Sessão X11 em vez de Wayland

Após descartar kernel, i915, thunderbolt e typec, testamos trocar o compositor. No SDDM, selecionamos a sessão Plasma (X11) em vez de Plasma (Wayland).

Resultado: FUNCIONOU. No X11 a dock reconheceu os monitores imediatamente.

Causa raiz confirmada: deadlock no KWin (Wayland) ao receber hotplug de conector DP via Thunderbolt. O problema é exclusivo do compositor Wayland do KDE, não do kernel nem de qualquer módulo.

4.2 Resolver tela preta no monitor externo

Ao trocar para X11, o monitor externo inicialmente ficava com tela preta. Isso porque tentava usar 60Hz, que a dock/monitor não suportava via MST.

Fix - forçar 4K@30Hz:

xrandr --output DP-1-1 --mode 3840x2160 --rate 30

4.3 Layout final com 3 telas

Configuramos o layout com dois monitores 4K externos e o notebook embaixo:

xrandr --output DP-1-1 --mode 3840x2160 --rate 30 --pos 0x0 \
       --output DP-1-2 --mode 3840x2160 --rate 30 --pos 3840x0 \
       --output eDP-1 --mode 1920x1200 --pos 960x2160

Layout:

+----------------+----------------+
|   DP-1-1       |   DP-1-2       |
|  4K@30Hz       |  4K@30Hz       |
+-------+--------+--------+------+
        |   eDP-1          |
        |  1920x1200       |
        +------------------+

4.4 Fix do wallpaper no monitor 4K

O KDE não preenchia a tela toda no monitor 4K (só metade direita). Fix:

Editar ~/.config/plasma-org.kde.plasma.desktop-appletsrc e adicionar FillMode=2 na seção do Containment do monitor externo. Depois reiniciar o plasmashell:

plasmashell --replace &

4.5 Kernel LTS como padrão

Decidimos ficar com o kernel LTS (6.12.71-1-lts) como padrão por estabilidade. O kernel mainline (6.18.9) foi mantido instalado mas não é o default.

Instalação:

sudo pacman -S linux-lts linux-lts-headers

4.6 Boot rápido (timeout 1 segundo)

Reduzimos o timeout do systemd-boot de 5 para 1 segundo:

sudo sed -i 's/^timeout 5$/timeout 1/' /efi/loader/loader.conf

Conteúdo final de /efi/loader/loader.conf:

default c2ec44b30fc1444d82001e25c0a1dbe9*
timeout 1
console-mode auto
reboot-for-bitlocker 1

4.7 Autologin no SDDM (X11 sem senha)

Habilitamos autologin para entrar direto na sessão X11 sem pedir senha:

sudo sed -i 's/^#User=rg3915$/User=rg3915/' /etc/sddm.conf
sudo sed -i 's/^#Session=plasma$/Session=plasmax11/' /etc/sddm.conf

Conteúdo final de /etc/sddm.conf:

[Autologin]
User=rg3915
Session=plasmax11

[Theme]
Current=eos-breeze

[General]
InputMethod=qtvirtualkeyboard

5. Limitações da Dell WD19 (USB-C)

A dock WD19 usa DisplayPort MST sobre USB-C Alt Mode, o que limita a banda total disponível:

Configuração Suportado
1x 4K@60Hz Sim
2x 4K@30Hz Sim
2x 4K@60Hz Não (requer WD19TB/Thunderbolt)
2x 2560x1440@60Hz Sim
1x 4K@60Hz + 1x 1080p@60Hz Sim

Se 30Hz estiver desconfortável, alternativa com 2560x1440@60Hz:

xrandr --output DP-1-1 --mode 2560x1440 --rate 60 --pos 0x0 \
       --output DP-1-2 --mode 2560x1440 --rate 60 --pos 2560x0 \
       --output eDP-1 --mode 1920x1200 --pos 320x1440

6. Resumo

Item Status Detalhes
Dock + monitores OK 2x 4K@30Hz via DP-1-1 e DP-1-2
Display server X11 Wayland trava com hotplug DP (bug KWin)
Kernel LTS 6.12.71 Mainline 6.18.9 mantido mas não é default
Boot 1 segundo systemd-boot timeout reduzido
Login Automático SDDM autologin, sessão plasmax11
Wallpaper 4K OK FillMode=2 no plasma config
typec modules Descartado Não era a causa, blacklist pode ser removido

7. Pendente

  • Testar kernel mainline 6.18.9 com X11 + dock para confirmar se funciona no X11 (se não funcionar, remover linux e linux-headers)
  • Atualizar firmware da dock via fwupd: fwupdmgr get-devices && fwupdmgr update
  • Remover blacklist de typec se ainda existir: sudo rm /etc/modprobe.d/blacklist-typec.conf

8. Portas USB-C / Thunderbolt do Notebook

O notebook possui 2 portas USB-C com Thunderbolt 3 (controlador Intel Ice Lake).

Controladores PCI

00:0d.0 - Intel Ice Lake Thunderbolt 3 USB Controller
           → Bus 1 (USB 2.0, 480 Mbps) + Bus 2 (USB 3.1 Gen 2, 10 Gbps)
           → Thunderbolt domain0 — DOCK CONECTADA AQUI

00:14.0 - Intel Ice Lake-LP USB 3.1 xHCI Host Controller
           → Bus 3 (USB 2.0, 480 Mbps) + Bus 4 (USB 3.1 Gen 2, 10 Gbps)
           → Thunderbolt domain1 — PORTA LIVRE

00:0d.2 - Thunderbolt 3 NHI #0 (domain0)
00:0d.3 - Thunderbolt 3 NHI #1 (domain1)

Capacidades de cada porta USB-C

Recurso Suporte
Thunderbolt 3 Sim (40 Gbps)
USB 3.1 Gen 2 Sim (10 Gbps)
DisplayPort Alt Mode Sim
Power Delivery Sim
Geração TB 3
Segurança TB none

Dispositivos conectados via dock (Bus 2)

Bus 002 (10 Gbps USB 3.1)
  └── Dell dock (Realtek RTL0487, hub USB 3.1, 10 Gbps)
        ├── Dell dock (Realtek RTL0413, hub interno, 5 Gbps)
        └── RTL8153 Gigabit Ethernet (5 Gbps)

Bus 003 (480 Mbps USB 2.0 — via xHCI, mas dock tem perna USB 2.0 também)
  ├── Dell dock (RTL5487, hub USB 2.0)
  │     └── Dell dock (RTL5413, hub interno)
  │           ├── Teclado/Mouse 2.4G Wireless (Xenta)
  │           └── Dell dock HID devices
  ├── Goodix FingerPrint
  ├── Integrated Webcam HD
  └── Intel AX201 Bluetooth

Comandos para diagnóstico USB

# Ver árvore USB com velocidades
lsusb -t

# Monitorar conexões em tempo real
watch -n 1 'lsusb -t'

# Velocidades: 480M = USB 2.0, 5000M = USB 3.0, 10000M = USB 3.1 Gen 2

# Ver geração Thunderbolt
cat /sys/bus/thunderbolt/devices/*/generation

# Ver domínios TB
ls /sys/bus/thunderbolt/devices/

9. Por que 4K@30Hz e NÃO 60Hz pela Dock (MST)

O gargalo: banda do DisplayPort via MST

A dock WD19 usa MST (Multi-Stream Transport) para dividir uma única conexão DisplayPort em duas saídas. O Thunderbolt 3 fornece tipicamente 2 lanes DP ao dock (as outras ficam para dados USB/TB).

Cálculo de banda:

Item Valor
Lanes DP disponíveis para dock 2
Velocidade por lane (HBR2) 5.4 Gbps
Banda DP total (bruta) ~17.28 Gbps
Banda DP efetiva (8b/10b) ~13.8 Gbps
4K@60Hz por monitor (com overhead) ~12-15 Gbps
4K@30Hz por monitor (com overhead) ~6-7.5 Gbps

Resultado:

Configuração Banda necessária Banda disponível Funciona?
2× 4K@30Hz ~13-15 Gbps ~17 Gbps Sim
1× 4K@60Hz + 1× 4K@30Hz ~20-22 Gbps ~17 Gbps Não
2× 4K@60Hz ~25-30 Gbps ~17 Gbps Não
2× 2560x1440@60Hz ~12-14 Gbps ~17 Gbps Sim

Dados do xrandr confirmando

Ambos os monitores listam 60Hz como modo disponível (inclusive +preferred), mas o modo ativo é 30Hz (*current):

DP-1-1:
  3840x2160 60.00Hz +preferred     (522.58 MHz pixel clock)
  3840x2160 30.00Hz *current       (297.00 MHz pixel clock)

DP-1-2:
  3840x2160 60.00Hz +preferred     (519.38 MHz pixel clock)
  3840x2160 30.00Hz *current       (297.00 MHz pixel clock)

Os monitores suportam 60Hz, mas a banda do MST pelo dock não permite dois ao mesmo tempo.

Parâmetros no kernel que forçam 30Hz

video=DP-5:3840x2160@30
modprobe.blacklist=ucsi_acpi,typec_ucsi,typec_displayport

10. Solução: 2× 4K@60Hz (um monitor por porta TB3)

O plano

Em vez de passar os dois monitores pelo dock (MST compartilhado), conectar cada monitor a uma porta Thunderbolt separada:

  • Porta TB3 #1 (domain0): Dock WD19 → 1 monitor via DP da dock + USB/ethernet
  • Porta TB3 #2 (domain1): Adaptador USB-C → DisplayPort → segundo monitor

Cada monitor terá seu próprio link DP dedicado com banda suficiente para 4K@60Hz.

O que muda

Antes (tudo pela dock) Depois (split)
Dock → Monitor 1 + Monitor 2 (MST) Dock → Monitor 1
Porta 2 livre Porta 2 → Adaptador USB-C/DP → Monitor 2
2× 4K@30Hz 2× 4K@60Hz

O que precisa comprar

  • 1 adaptador USB-C para DisplayPort (ou cabo USB-C para DP direto)
  • Deve suportar DP 1.2+ e 4K@60Hz
  • Exemplo: adaptador USB-C to DP 1.4 (qualquer marca razoável serve)

Ajustes no kernel cmdline

Remover o forçamento de 30Hz:

# Remover 'video=DP-5:3840x2160@30' do cmdline do kernel
# Editar o arquivo de config do UKI/dracut conforme seu setup

Novo comando xrandr

# Os nomes das saídas podem mudar — verificar com xrandr primeiro
xrandr --output DP-1-1 --mode 3840x2160 --rate 60 --pos 0x0 \
       --output DP-X-X --mode 3840x2160 --rate 60 --pos 3840x0 \
       --output eDP-1 --mode 1920x1200 --pos 960x2160 --primary

(Substituir DP-X-X pelo nome real da saída do segundo monitor — verificar com xrandr após conectar.)


11. Energia e Carregamento via Dock

Data: 2026-02-19

Status atual

Item Valor
Fonte de energia AC online via dock (USB-C PD)
Status bateria Fully charged (99%)
Energy rate 0 W (não carregando/descarregando)
Voltage atual 8.036 V
Voltage mínimo design 7.6 V
Temperatura bateria 35.3°C

Saúde da bateria

Item Valor
Capacidade atual (energy-full) 31.5 Wh
Capacidade de fábrica (energy-full-design) 51.0 Wh
Saúde 61.8% (perdeu ~38% da capacidade original)
Fabricante LGC (LG Chem)
Modelo DELL 2XXFW08
Tecnologia Lithium-polymer
Threshold de carga Inicia em 75%, para em 80%

A bateria está com degradação significativa (~38% de perda). Isso é esperado para uma bateria com alguns anos de uso. O carregamento via dock está funcionando normalmente — o notebook mantém a carga e opera sem problemas conectado à dock.

Nota: Os thresholds de carga (75-80%) estão configurados para preservar a vida útil restante da bateria. Isso é uma boa prática.


12. Desempenho do Notebook

Data: 2026-02-19

CPU

Item Valor
Driver intel_pstate
Governor powersave
Energy performance preference balance_performance
Turbo boost Habilitado
Frequência máxima 3.9 GHz
Frequência atual (idle) ~1.2-1.4 GHz
Cores/threads 8

Temperaturas

Sensor Temperatura
CPU Package (x86_pkg_temp) 64°C
TMEM (memória) 52°C
TSKN (chassis) 53°C
TVR (VR) 53°C
TAMB (ambiente) 46°C
WiFi (iwlwifi) 44°C
B0D4 62°C

Memória

Item Valor
Total 16 GB
Usada 8.5 GB
Disponível 6.7 GB

Carga do sistema

Item Valor
Load average (1/5/15 min) 2.34 / 2.64 / 2.35
Uptime 44 min

Veredito de desempenho

O desempenho está bom e saudável:

  • Governor powersave + balance_performance é a configuração recomendada para intel_pstate. Apesar do nome "powersave", o intel_pstate ainda permite que a CPU suba para frequência máxima quando necessário — a diferença para "performance" é mínima e desperdiça energia.
  • Turbo boost habilitado — a CPU pode chegar a 3.9 GHz quando necessário.
  • Temperaturas normais — 64°C no pacote é saudável (throttling começa em ~100°C).
  • RAM com folga — 6.7 GB disponível de 16 GB total.
  • Load average ~2.3 em 8 threads = ~29% de uso médio, muito confortável.
  • Nenhum sinal de throttling térmico ou power throttling.

13. Comandos úteis para diagnóstico

# Ver monitores conectados
xrandr

# Ver conectores DRM
for f in /sys/class/drm/card1-*/status; do echo "$f: $(cat $f)"; done

# Ver módulos thunderbolt/i915/typec
lsmod | grep -iE "i915|typec|thunderbolt"

# Logs do kernel
journalctl -b --no-pager | grep -iE "thunderbolt|typec|displayport|dp_alt|alt.mode"

# Rebuild kernel (EndeavourOS com dracut)
reinstall-kernels

# Ver config do bootloader
sudo cat /efi/loader/loader.conf

# Ver config do SDDM
cat /etc/sddm.conf

# Ver árvore USB com velocidades
lsusb -t

# Monitorar conexões USB em tempo real
watch -n 1 'lsusb -t'

# Ver informações de energia
upower -i /org/freedesktop/UPower/devices/battery_BAT0

# Ver governor e frequência da CPU
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor | sort -u
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

# Ver temperaturas
for tz in /sys/class/thermal/thermal_zone*/; do echo "$(cat $tz/type): $(cat $tz/temp)"; done

Histórico: Pop!_OS (setup anterior)

Antes de migrar para Arch Linux, o mesmo hardware foi usado no Pop!_OS 24.04 com COSMIC/Wayland. Nesse ambiente, os monitores eram nomeados DP-5/DP-6 (em vez de DP-1-1/DP-1-2) e a ferramenta usada era cosmic-randr em vez de xrandr.

Dropbox - Ícone na bandeja do KDE Plasma (Wayland)

Problema

No KDE Plasma com Wayland, o Dropbox inicia via systemd mas o ícone não aparece na bandeja do sistema. O serviço roda normalmente e sincroniza arquivos, porém sem interface visual.

Causa raiz

O serviço dropbox.service inicia antes das variáveis de ambiente gráficas (DISPLAY, WAYLAND_DISPLAY, XDG_CURRENT_DESKTOP) serem importadas para o systemd. Sem essas variáveis, o Dropbox não consegue se registrar no StatusNotifierWatcher do KDE.

Solução

Editar o override do serviço para esperar o plasma-core.target, que garante que o plasmashell (e a bandeja) estejam prontos.

1. Criar/editar o override

mkdir -p ~/.config/systemd/user/dropbox.service.d
cat > ~/.config/systemd/user/dropbox.service.d/override.conf << 'EOF'
[Unit]
After=plasma-core.target
BindsTo=graphical-session.target
Wants=plasma-core.target
EOF

2. Recarregar e habilitar

systemctl --user daemon-reload
systemctl --user enable dropbox.service
systemctl --user restart dropbox.service

3. Verificar

# Verificar se o serviço está rodando
systemctl --user status dropbox.service

# Verificar se o ícone está na bandeja (deve listar "dropbox_client_*")
dbus-send --session \
  --dest=org.kde.StatusNotifierWatcher \
  --type=method_call --print-reply \
  /StatusNotifierWatcher \
  org.freedesktop.DBus.Properties.Get \
  string:'org.kde.StatusNotifierWatcher' \
  string:'RegisteredStatusNotifierItems'

# Verificar se o processo tem as variáveis de ambiente corretas
cat /proc/$(pgrep -x dropbox)/environ | tr '\0' '\n' | grep -E '(DISPLAY|WAYLAND)'

Autostart duplicado (XDG)

O pacote dropbox instala ~/.config/autostart/dropbox.desktop. O systemd converte esse arquivo automaticamente no serviço transiente app-dropbox@autostart.service via systemd-xdg-autostart-generator. Isso causa duas instâncias competindo:

  1. app-dropbox@autostart.service inicia primeiro, sem variáveis gráficas (sem ícone)
  2. dropbox.service (com override) inicia depois, detecta a instância existente e sai

Fix

Remover o arquivo autostart para que apenas o dropbox.service gerencie o Dropbox:

rm ~/.config/autostart/dropbox.desktop

Atenção: atualizações do pacote dropbox podem recriar este arquivo. Se o ícone sumir após um pacman -Syu, verificar se o arquivo reapareceu.

Diagnóstico rápido

Se o ícone sumir novamente, verificar nesta ordem:

  1. Autostart duplicado? ls ~/.config/autostart/dropbox.desktop — se existir, remover
  2. Serviço rodando? systemctl --user status dropbox.service
  3. Outra instância rodando? pgrep -a dropbox — se houver processo fora do serviço, matar e reiniciar
  4. Variáveis de ambiente presentes? cat /proc/$(pgrep -x dropbox)/environ | tr '\0' '\n' | grep DISPLAY
  5. Se faltam variáveis: systemctl --user restart dropbox.service (reiniciar resolve se o ambiente já está importado)

Ambiente

  • OS: Arch Linux
  • Desktop: KDE Plasma 6 (Wayland)
  • Pacote: dropbox (AUR)
  • Serviço: ~/.config/systemd/user/dropbox.service.d/override.conf

Configuracao KDE Plasma - Painel e Wallpaper

Arquivos de configuracao

  • Painel e applets: ~/.config/plasma-org.kde.plasma.desktop-appletsrc
  • Monitores: ~/.config/kwinoutputconfig.json
  • Wallpapers registrados: ~/.config/plasmarc

Setup de monitores

  • eDP-1 (laptop): 1920x1200, scale 1
  • DP-1-1 (externo esquerdo): 3840x2160 (4K), scale 1
  • DP-1-2 (externo direito): 3840x2160 (4K), scale 1

Os nomes dos conectores mudam dependendo da dock (DP-5/DP-8 vs DP-1-1/DP-1-2).


Wallpaper em monitor 4K (FillMode)

Se o wallpaper aparece ocupando apenas metade da tela em monitores 4K, adicionar FillMode=2 na secao do wallpaper do containment correspondente:

[Containments][XX][Wallpaper][org.kde.image][General]
FillMode=2
Image=file:///caminho/para/imagem.jpg

Valores de FillMode

Valor Modo Descricao
0 Stretch Estica para preencher (distorce)
1 Preserve Aspect Fit Ajusta sem cortar (pode ter bordas)
2 Preserve Aspect Crop Preenche tudo, corta se necessario
3 Tile Repete a imagem lado a lado
5 Center Centraliza sem redimensionar

Relogio centralizado no painel

Estrutura do painel

O painel usa AppletOrder para definir a ordem dos widgets. Para centralizar o relogio, colocar dois espacadores (panelspacer) ao redor dele:

Menu | Pager | Tasks | Spacer | Relogio | Spacer | Separator | SysTray | ShowDesktop
[Containments][2][General]
AppletOrder=3;4;5;25;21;28;6;7;22

Onde:

  • 3 = kickoff (menu)
  • 4 = pager
  • 5 = icontasks
  • 25 = panelspacer (esquerdo)
  • 21 = digitalclock
  • 28 = panelspacer (direito)
  • 6 = marginsseparator
  • 7 = systemtray
  • 22 = showdesktop

Definicao do segundo espacador

[Containments][2][Applets][28]
immutability=1
plugin=org.kde.plasma.panelspacer

Nota: Os IDs dos applets (3, 4, 5, 21, 25, etc.) podem variar entre instalacoes. Verifique o campo plugin= de cada [Containments][X][Applets][Y] para identificar qual e qual.

  • Relogio digital: org.kde.plasma.digitalclock
  • Espacador: org.kde.plasma.panelspacer

Reiniciar o Plasma

kquitapp6 plasmashell && kstart plasmashell

Formato do relogio

Para exibir: sab., 14 de fev., 02:32:45 (tudo em uma linha)

[Containments][2][Applets][21][Configuration][Appearance]
autoFontAndSize=false
customDateFormat=ddd, d 'de' MMM,
dateDisplayFormat=BesideTime
dateFormat=custom
fontSize=7
fontWeight=400
showDate=true
showSeconds=2
use24hFormat=2

Explicacao dos campos

Campo Valor Descricao
autoFontAndSize false Desativa tamanho automatico para controlar fonte
fontSize 7 Tamanho da fonte em pontos
fontWeight 400 Peso da fonte (400 = normal)
showDate true Exibe a data
dateFormat custom Usa formato personalizado
customDateFormat ddd, d 'de' MMM, Formato Qt: dia-semana, dia de mes
dateDisplayFormat BesideTime Data ao lado da hora (mesma linha)
showSeconds 2 Sempre mostrar segundos (0=nunca, 1=hover, 2=sempre)
use24hFormat 2 Formato 24h (0=sistema, 1=12h, 2=24h)

Formato Qt de data (customDateFormat)

  • ddd = dia da semana abreviado (seg, ter, ..., sab, dom) - locale ja inclui o ponto
  • d = dia do mes sem zero a esquerda
  • 'de' = texto literal "de"
  • MMM = mes abreviado (jan, fev, ...) - locale ja inclui o ponto
  • Nao adicionar ponto extra apos ddd ou MMM pois o locale pt_BR ja inclui

Painel em todos os monitores

Para replicar o painel nos outros monitores, usar a API de scripting do Plasma via qdbus:

qdbus6 org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "
function createPanel(screenNum) {
    var p = new Panel;
    p.location = 'top';
    p.height = 44;
    p.screen = screenNum;

    p.addWidget('org.kde.plasma.kickoff');
    p.addWidget('org.kde.plasma.pager');

    var tasks = p.addWidget('org.kde.plasma.icontasks');
    tasks.writeConfig('launchers',
        'preferred://filemanager,applications:org.kde.konsole.desktop,preferred://browser,applications:systemsettings.desktop',
        'General');

    p.addWidget('org.kde.plasma.panelspacer');

    var clock = p.addWidget('org.kde.plasma.digitalclock');
    clock.writeConfig('autoFontAndSize', false, 'Appearance');
    clock.writeConfig('fontSize', 7, 'Appearance');
    clock.writeConfig('fontWeight', 400, 'Appearance');
    clock.writeConfig('showDate', true, 'Appearance');
    clock.writeConfig('dateFormat', 'custom', 'Appearance');
    clock.writeConfig('customDateFormat', \"ddd, d 'de' MMM,\", 'Appearance');
    clock.writeConfig('dateDisplayFormat', 'BesideTime', 'Appearance');
    clock.writeConfig('showSeconds', 2, 'Appearance');
    clock.writeConfig('use24hFormat', 2, 'Appearance');

    p.addWidget('org.kde.plasma.panelspacer');
    p.addWidget('org.kde.plasma.marginsseparator');
    p.addWidget('org.kde.plasma.systemtray');
    p.addWidget('org.kde.plasma.showdesktop');
}

createPanel(1);
createPanel(2);
"

Nota: Apos criar via qdbus, verificar se dateDisplayFormat=BesideTime e showDate=true foram escritos corretamente na secao [Configuration][Appearance] do arquivo de config. A API pode omitir esses campos, sendo necessario adiciona-los manualmente e reiniciar o plasmashell:

kquitapp6 plasmashell; sleep 2; kstart plasmashell &

Bandeja do sistema - icone da bateria visivel

Por padrao, o icone da bateria fica escondido dentro do menu da bandeja. Para deixa-lo sempre visivel, adicionar shownItems na secao [General] do system tray de cada monitor:

[Containments][X][Applets][Y][General]
extraItems=...
knownItems=...
shownItems=org.kde.plasma.battery

Para expor multiplos itens, separar por virgula:

shownItems=org.kde.plasma.battery,org.kde.plasma.volume,org.kde.plasma.networkmanagement

Importante: Cada monitor tem seu proprio system tray (applet separado), entao a configuracao precisa ser replicada em todos.


Taxa de repeticao do teclado

Arquivo: ~/.config/kcminputrc

[Keyboard]
RepeatDelay=150
RepeatRate=30
Campo Valor Descricao
RepeatDelay 150 Tempo em ms antes de comecar a repetir (menor = mais responsivo)
RepeatRate 30 Caracteres por segundo durante a repeticao

Para aplicar imediatamente sem relogar (requer xorg-xset):

xset r rate 150 30
xset r rate 200 25

Nota: No X11, o KDE depende do pacote xorg-xset para aplicar essas configuracoes. Instalar com sudo pacman -S xorg-xset.


Comandos uteis

# Ver monitores ativos
kscreen-doctor -o

# Ver propriedades do painel via scripting
qdbus6 org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "
var p = panels()[0];
print('height=' + p.height);
print('location=' + p.location);
print('screen=' + p.screen);
print('widgets=' + p.widgets().length);
"

# Reiniciar plasmashell
kquitapp6 plasmashell; sleep 2; kstart plasmashell &

# Quantidade de paineis
qdbus6 org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript "print(panels().length)"

Setup Completo - Arch Linux (Dell XPS + KDE Plasma)

Guia de instalacao e configuracao do Arch Linux no Dell XPS com dock station e 3 monitores.

Hardware: Dell XPS (Intel Iris Plus G7, Ice Lake), Dock Dell WD19 Monitores: eDP-1 (1920x1200), DP-1-1 e DP-1-2 (3840x2160) DE: KDE Plasma (X11) Kernel: LTS 6.12.71-1-lts


Indice

  1. Programas essenciais
  2. Dropbox
  3. Sublime Text
  4. Git
  5. Chaves SSH (GitHub e GitLab)
  6. Docker e Docker Compose
  7. Telegram e ZapZap
  8. VLC
  9. xclip e batcat
  10. uv (gerenciador Python)
  11. OBS Studio
  12. Links simbolicos
  13. Configuracao do Bash
  14. Bash-it
  15. Configuracoes do KDE Plasma
  16. Sublime Text - Packages/User

1. Programas essenciais

Instalar via pacman:

sudo pacman -S git docker docker-compose vlc xclip bat obs-studio

Instalar via AUR (yay ou paru):

yay -S dropbox sublime-text-4 telegram-desktop zapzap

Nota: Se nao tiver um AUR helper, instalar o yay primeiro:

sudo pacman -S --needed git base-devel
git clone https://aur.archlinux.org/yay.git /tmp/yay
cd /tmp/yay && makepkg -si

2. Dropbox

Instalacao

yay -S dropbox

Configuracao do icone na bandeja (systemd)

O Dropbox pode nao exibir o icone na bandeja porque o servico inicia antes do ambiente grafico estar pronto.

Solucao: Criar um override do systemd para esperar o plasma-core.target.

mkdir -p ~/.config/systemd/user/dropbox.service.d

Criar o arquivo ~/.config/systemd/user/dropbox.service.d/override.conf:

[Unit]
After=plasma-core.target
Wants=plasma-core.target

[Service]
ExecStartPre=/bin/sleep 3

Depois:

# Remover autostart duplicado (se existir)
rm -f ~/.config/autostart/dropbox.desktop

# Recarregar e habilitar
systemctl --user daemon-reload
systemctl --user enable dropbox
systemctl --user start dropbox

Documentacao detalhada: dropbox-tray.md


3. Sublime Text

Instalacao

yay -S sublime-text-4

Instalar o Package Control

Abrir o Sublime > Ctrl+Shift+P > "Install Package Control"

Pacotes instalados

Os pacotes sao gerenciados pelo Package Control. Listar os pacotes em:

~/.config/sublime-text/Packages/User/Package Control.sublime-settings

Anaconda
AutoPEP8
Column Select
Djaneiro
Emmet
Increment Selection
JsPrettier
MarkdownPreview
SideBarEnhancements
Vue

Veja a secao Sublime Text - Packages/User para detalhes dos arquivos personalizados.


4. Git

Instalacao

sudo pacman -S git

Configuracao basica

git config --global user.name "Seu Nome"
git config --global user.email "seu@email.com"
git config --global core.editor "subl -n -w"

Aliases uteis do Git (via .gitconfig)

git config --global alias.co commit
git config --global alias.br branch
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"

5. Chaves SSH (GitHub e GitLab)

Gerar chave SSH

ssh-keygen -t ed25519 -C "seu@email.com"

Se preferir RSA (compatibilidade): ssh-keygen -t rsa -b 4096 -C "seu@email.com"

Quando solicitado, aceitar o caminho padrao (~/.ssh/id_ed25519) ou criar chaves separadas para cada servico.

Iniciar o ssh-agent e adicionar a chave

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Copiar a chave publica

# Com xclip (copiar para o clipboard)
xclip -sel clip < ~/.ssh/id_ed25519.pub

# Ou com cat para copiar manualmente
cat ~/.ssh/id_ed25519.pub

Adicionar no GitHub

  1. Abrir https://github.com/settings/keys
  2. Clicar em "New SSH key"
  3. Colar a chave publica
  4. Testar: ssh -T git@github.com

Adicionar no GitLab

  1. Abrir https://gitlab.com/-/user_settings/ssh_keys
  2. Clicar em "Add new key"
  3. Colar a chave publica
  4. Testar: ssh -T git@gitlab.com

Chaves separadas para GitHub e GitLab (opcional)

Gerar duas chaves:

ssh-keygen -t ed25519 -C "github" -f ~/.ssh/id_ed25519_github
ssh-keygen -t ed25519 -C "gitlab" -f ~/.ssh/id_ed25519_gitlab

Criar ~/.ssh/config:

Host github.com
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_github

Host gitlab.com
    HostName gitlab.com
    User git
    IdentityFile ~/.ssh/id_ed25519_gitlab

6. Docker e Docker Compose

Instalacao

sudo pacman -S docker docker-compose

Habilitar e iniciar o servico

sudo systemctl enable docker
sudo systemctl start docker

Adicionar usuario ao grupo docker (para nao precisar de sudo)

sudo usermod -aG docker $USER

Importante: Fazer logout/login para aplicar a mudanca de grupo.

Testar

docker run hello-world
docker compose version

Portainer (interface web para Docker)

docker run -d -p 9001:9000 \
  -p 9443:9443 \
  --name=portainer \
  --restart=always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data portainer/portainer-ce:latest

Acessar: http://localhost:9001


7. Telegram e ZapZap

Telegram

yay -S telegram-desktop

ZapZap (WhatsApp para Linux)

yay -S zapzap

Ambos aparecerao no menu de aplicativos do KDE apos a instalacao.


8. VLC

sudo pacman -S vlc

9. xclip e batcat

xclip

Utilitario de clipboard via terminal.

sudo pacman -S xclip

Uso:

# Copiar conteudo de um arquivo para o clipboard
xclip -sel clip < arquivo.txt

# Copiar saida de um comando
echo "texto" | xclip -sel clip

# Colar do clipboard
xclip -sel clip -o

bat (batcat)

Substituto do cat com syntax highlighting e paginacao.

sudo pacman -S bat

No Arch o comando ja e bat (nao batcat como no Debian/Ubuntu).

Uso:

bat arquivo.py
bat --theme=TwoDark arquivo.js

Alias configurado em ~/.bash_aliases:

alias cat=bat

10. uv (gerenciador Python)

uv e um gerenciador de pacotes e ambientes Python extremamente rapido (escrito em Rust).

Instalacao

curl -LsSf https://astral.sh/uv/install.sh | sh

Ou via pacman:

sudo pacman -S uv

Uso basico

# Criar projeto
uv init meu-projeto
cd meu-projeto

# Adicionar dependencias
uv add django
uv add ruff --dev

# Rodar comandos no ambiente
uv run python manage.py runserver

# Sincronizar dependencias
uv sync

# Instalar Python especifico
uv python install 3.12

Alias configurado em ~/.bash_aliases:

alias uvr='uv run python manage.py runserver'

11. OBS Studio

Instalacao

sudo pacman -S obs-studio

Plugins extras (opcionais)

# Plugin para pipewire (captura de audio no Wayland/Pipewire)
sudo pacman -S obs-pipewire-audio-capture

Configuracao recomendada para gravacao

  • Formato: MKV (pode ser remuxado para MP4 depois)
  • Encoder: x264 ou VAAPI (aceleracao por hardware Intel)
  • Audio: Pipewire (padrao no Arch moderno)

12. Links simbolicos

Links simbolicos permitem acessar uma pasta/arquivo de outro local sem duplicar dados.

Sintaxe

ln -s <destino_real> <nome_do_link>

Exemplo principal: projetos via Dropbox

ln -s ~/Dropbox/projetos ~/projetos

Isso cria ~/projetos apontando para ~/Dropbox/projetos, permitindo acessar os projetos direto da home enquanto ficam sincronizados pelo Dropbox.

Verificar links simbolicos

ls -la ~/projetos
# lrwxrwxrwx 1 rg3915 rg3915 ... projetos -> /home/rg3915/Dropbox/projetos

Remover um link simbolico

rm ~/projetos     # remove so o link, NAO o conteudo

Cuidado: rm -r ~/projetos/ (com barra no final) pode deletar o conteudo real. Sempre remova o link sem barra no final.

Outros links simbolicos uteis

# Atalho para documentacao
ln -s ~/Dropbox/dev ~/dev

# Atalho para dotfiles
ln -s ~/Dropbox/dotfiles/.bash_aliases ~/.bash_aliases

Link simbolico atual na home

Link Destino
~/projetos ~/Dropbox/projetos

13. Configuracao do Bash

~/.bash_profile

Carrega o .bashrc em login shells:

[[ -f ~/.bashrc ]] && . ~/.bashrc

~/.bashrc

Arquivo principal de configuracao do shell interativo:

  • Define aliases basicos (ls, grep, ll, la, l)
  • Configura $PATH incluindo ~/.local/bin
  • Carrega o bash-it (framework de configuracao)
  • Carrega ~/.bash_aliases no final
# Path to the bash it configuration
BASH_IT="/home/rg3915/.bash_it"
export BASH_IT_THEME='rg3915'

# Load Bash It
source "${BASH_IT?}/bash_it.sh"

# Carrega aliases extras
[ -f ~/.bash_aliases ] && . ~/.bash_aliases

~/.bash_aliases

Arquivo com todos os aliases e funcoes personalizados. Categorias:

Python/Django

Alias Comando
sa source .venv/bin/activate
pvv python -m venv .venv
pf pip freeze
pfr pip freeze > requirements.txt
pir pip install -U pip; pip install -r requirements.txt
m python $VIRTUAL_ENV/../manage.py
r m runserver
ma m makemigrations
mi m migrate
ms python manage.py shell_plus
msu python manage.py show_urls
mu m createsuperuser --username="admin" --email="admin@email.com"
uvr uv run python manage.py runserver

Git

Alias Comando
g git
gp git push origin HEAD
gd clear; git diff
gl git log -p --full-diff
c git-cola
ml make lint; git status

Docker

Alias Comando
d docker
dco docker container
dcols docker container ls --format "table ..."
dcoexec docker container exec -it
dcologs docker container logs
up stop_all_containers; docker-compose up -d
up_local stop_all_containers; docker compose -f docker-compose-local.yml up --build -d
up_build docker-compose up --build -d
portainer Subir container do Portainer
stop_all_containers Para e remove todos os containers (exceto Portainer)

Utilidades

Alias/Funcao Descricao
h history
rm rm -i (confirmacao antes de deletar)
cat bat (syntax highlighting)
a Cria e entra em /tmp/a (diretorio temporario)
mkcd Cria diretorio e entra nele
mkfile Cria arquivo com estrutura de diretorios
_ruff ruff check --ignore E501 --fix --show-fixes --exclude migrations .
run npm run dev

Funcoes Git

gadd()  { git add . && git co -m "$1"; }          # add + commit
_gadd() { make lint && git add . && git co -m "$1"; }  # lint + add + commit
gfull() { git add . && git co -m "$1" && git push; }   # add + commit + push
_gfull(){ make lint && git add . && git co -m "$1" && git push; }  # lint + add + commit + push

Aliases de projetos

Cada projeto tem um alias que: para os containers, entra no diretorio, ativa o venv, sobe o docker e abre o Sublime.

Exemplos: euroled, macrosul, sitemacrosul, nopulo, contratualizacao, plansus, cb, lo, qmatic


14. Bash-it

O que e

Framework modular para o Bash que fornece aliases, plugins, completions e temas prontos.

Instalacao

git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it
~/.bash_it/install.sh

Componentes habilitados

250---base.plugin.bash
325---system.completion.bash
350---bash-it.completion.bash
750---bash-it.aliases.bash
750---directory.aliases.bash
750---editor.aliases.bash
750---general.aliases.bash
800---aliases.completion.bash

Habilitar/desabilitar componentes

bash-it enable alias git
bash-it enable plugin history
bash-it enable completion docker

bash-it disable alias git

bash-it show aliases
bash-it show plugins
bash-it show completions

Tema customizado: rg3915

Localizado em ~/.bash_it/custom/themes/rg3915/rg3915.theme.bash

Funcionalidades:

  • Mostra versao do Python em laranja (py-3.12.x)
  • Mostra nome do virtualenv em laranja ((.venv))
  • Indicador de status do Git: (limpo, verde) / (alterado, vermelho)
  • Ultima pasta do diretorio atual no prompt

Exemplo do prompt:

(.venv) py-3.12.8 ~/projetos/meu-app
/meu-app ±✓| →

Codigo do tema:

# Laranja real (256-color)
_orange="\[\\e[38;5;208m\]"

SCM_THEME_PROMPT_DIRTY=" ${red}"
SCM_THEME_PROMPT_CLEAN=" ${bold_green}"
SCM_THEME_PROMPT_PREFIX=" ${green}|"
SCM_THEME_PROMPT_SUFFIX="${green}|"

function _py_version_prompt() {
    local py_version
    py_version=$(python3 --version 2>/dev/null | sed 's/Python /py-/')
    if [[ -n "$py_version" ]]; then
        echo -ne "${_orange}${py_version}${reset_color}"
    fi
}

function _venv_prompt() {
    if [[ -n "${VIRTUAL_ENV:-}" ]]; then
        local venv_name="${VIRTUAL_ENV##*/}"
        echo -ne "${_orange}(${venv_name}) ${reset_color}"
    fi
}

function _last_dir() {
    echo -ne "/${PWD##*/}"
}

function prompt_command() {
    PS1="\\n$(_venv_prompt)$(_py_version_prompt) ${blue}\\w${reset_color}\\n${blue}$(_last_dir) ${bold_cyan}$(scm_char)${green}$(scm_prompt_info) ${green}${reset_color} "
}

safe_append_prompt_command prompt_command

15. Configuracoes do KDE Plasma

Atalhos de teclado principais

Navegacao de desktops

Atalho Acao
Ctrl+F1 a Ctrl+F4 Alternar entre desktops 1-4
Meta+Ctrl+Setas Navegar entre desktops
Meta+W Visao geral (overview)
Meta+G Grid view
Meta+T Editor de tiles

Janelas

Atalho Acao
Meta+Up / Meta+PgUp Maximizar janela
Meta+Down / Meta+PgDown Minimizar janela
Meta+Left / Meta+Right Tile janela esquerda/direita
Meta+Shift+Left/Right Mover janela para monitor anterior/proximo
Meta+Alt+Setas Alternar entre janelas em direcao
Alt+F4 Fechar janela
Alt+Tab Alternar entre janelas
Meta+Ctrl+Esc Kill window

Aplicativos

Atalho Acao
Meta Abrir launcher
Meta+1 a Meta+9 Ativar item da taskbar
Meta+L Bloquear sessao
Meta+V Clipboard
Meta+D Mostrar desktop
Ctrl+Alt+Del Logout

Audio e brilho

Atalho Acao
Volume Up/Down Volume
Shift+Volume Up/Down Volume fino (1%)
Volume Mute Mutar audio
Meta+Volume Mute Mutar microfone
Brightness Up/Down Brilho da tela
Meta+B Trocar perfil de energia

Layout de tiling

Configurado com layout de 3 colunas horizontais: 25% - 50% - 25% de largura, com padding de 4px entre tiles.

Painel (barra de tarefas)

  • Painel horizontal no rodape de cada monitor
  • Launchers fixos: File Manager, Browser, Firefox, Sublime Text, Telegram, Konsole, System Settings
  • Relogio centralizado com formato: ddd, d 'de' MMM, (ex: "sab, 15 de fev,")
  • Botao Show Desktop

Tema de cores

  • Tema escuro com acentos em roxo/violeta (RGB 146, 110, 228)
  • Fundo de janela: RGB(32, 35, 38)
  • Texto: RGB(252, 252, 252)

Wallpapers

  • eDP-1 e DP-1-1: Wallpaper EndeavourOS padrao
  • DP-1-2: ~/Imagens/mercury.jpg

Documentacao detalhada do painel: kde-plasma-panel-config.md


16. Sublime Text - Packages/User

Diretorio: ~/.config/sublime-text/Packages/User/

Preferences.sublime-settings

{
  "bold_folder_labels": true,
  "draw_white_space": "all",
  "ignored_packages": ["Vintage"],
  "line_padding_bottom": -2,
  "line_padding_top": 0,
  "reset_font_size": 11.0,
  "rulers": [38, 80, 120],
  "save_on_focus_lost": true,
  "soda_classic_tabs": true,
  "tab_size": 4,
  "translate_tabs_to_spaces": true,
  "font_size": 10
}

Atalhos de teclado (Default (Linux).sublime-keymap)

Atalho Acao
Ctrl+Shift+R Auto PEP8
Ctrl+Q Fechar todas as abas
Ctrl+0 Resetar tamanho da fonte
Ctrl+4 Macro: inserir ❌ no inicio da linha
Ctrl+5 Macro: inserir - [ ] (checkbox)
Ctrl+6 Macro: inserir - [✅] (task concluida)
Ctrl+7 Inserir comentario HTML
Ctrl+8 Inserir bloco de codigo markdown
Ctrl+Shift+H JsPrettier
Alt+Shift+H Sintaxe HTML
Alt+Shift+Y Sintaxe Python
Alt+Shift+P Sintaxe Plain Text
Ctrl+Shift+2 Tab size 2
Ctrl+Shift+4 Tab size 4

Plugins Python personalizados

correcao_portugues.py

Correcao automatica de portugues ao digitar:

  • caoção
  • coesções
  • aoão
  • oesões

timestamp.py

Expansao de timestamps ao digitar:

  • isoD / now / datetimeYYYY-MM-DD HH:MM
  • dateYYYY-MM-DD
  • dataDD/MM/YYYY
  • mtDD/MM/YY HH:MM
  • dt## DD/MM/YY
  • time → Unix timestamp

trim_trailing_whitespace.py

Remove espacos em branco no final das linhas selecionadas.

Macros

Macro Atalho Insere
error.sublime-macro Ctrl+4 no inicio da linha
ins_date.sublime-macro Ctrl+5 - [ ]
ok.sublime-macro Ctrl+6 - [✅]

custom-completions.sublime-completions

Autocompletions extensivas:

  • Portugues: acao→ação, nao→não, vc→você
  • Tecnologia: js→JavaScript, py→Python, fa→FastAPI, pos→PostgreSQL
  • Django imports: forms, messages, login_required, models, Q
  • Django ORM: oa→objects.all(), of→objects.filter()
  • Comandos: pvv→python -m venv .venv, sa→source .venv/bin/activate
  • Markdown/snippets: imagem, code blocks, etc.

Snippets de projetos

Snippets para criar issues no GitLab para cada projeto:

  • mytasks, cb (colanabola), lo_qmatic, lo_back_frame, lo_front_frame
  • ma_nopulo, ma_arquitetura, ma_sitemacrosul, ma_shopmd, ma_sumup
  • numb3rs_contratualizacao, numb3rs_plansus, _euroled, exp

Snippets de codigo

Trigger Descricao
admin Template de Django admin com TabularInline
c console.log()
af Arrow function
render Django view com render
hd Template HTML5 completo (Bootstrap, Tailwind, Alpine, htmx)
_settings Django settings.py com decouple e dj_database_url
xf Vue.js x-for directive
eof Template heredoc cat << EOF

Configuracao do Anaconda (Python)

{
  "python_interpreter": "python3",
  "pep8_max_line_length": 119,
  "auto_formatting": true
}

Configuracao do JsPrettier

{
  "tab_width": 2,
  "single_quote": true,
  "print_width": 80,
  "trailing_comma": "none",
  "semi": false
}

Resumo de instalacao rapida

# Pacman
sudo pacman -S git docker docker-compose vlc xclip bat obs-studio uv

# AUR
yay -S dropbox sublime-text-4 telegram-desktop zapzap

# Docker
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $USER

# uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# SSH
ssh-keygen -t ed25519 -C "seu@email.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

# Link simbolico
ln -s ~/Dropbox/projetos ~/projetos

# Bash-it
git clone --depth=1 https://github.com/Bash-it/bash-it.git ~/.bash_it
~/.bash_it/install.sh

Documentacao relacionada

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment