Skip to content

Komido/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🐟 Dotfiles — Fish Shell Setup

Shell License Last Update

Este repositório contém minha configuração pessoal para o terminal Fish Shell no macOS. Foco em produtividade, estética e automações para desenvolvimento.

🌟 Features

  • Prompt com Starship
  • Navegação rápida com zoxide + fzf
  • Visual avançado com eza, bat, Nerd Font
  • Função proj: exibição interativa dos meus projetos com metadados
  • Função fin: abre o Finder na pasta atual do terminal
  • Função musica: controle do app Música pelo terminal (play/pause, próxima faixa, volume, playlists)
  • Função gitclone: exibe detalhes do repositório remoto antes de confirmar o clone (clona sempre em ~/Projetos)
  • Função tempmail: cria e gerencia e-mails temporários com mail.tm, lista inbox com índice numérico e permite ler mensagens diretamente
  • Função maccy: instala o gerenciador de área de transferência Maccy via Homebrew
  • Função dotsetup: executa o install.fish a partir de qualquer lugar para atualizar ou reconfigurar o ambiente
  • Função devutil: toolkit para devs (gera CUID, UUID, CPF, CNPJ, decodifica JWT)
  • Função try_install_tool: função auxiliar para verificar e instalar ferramentas com npm ou brew
  • Função api_test: testa APIs REST/GraphQL com suporte a diferentes métodos HTTP e autenticação

📄 Arquivos

config.fish

Responsável por carregar:

  • starship (tema do prompt)
  • fzf (busca fuzzy)
  • zoxide (cd inteligente)
  • Aliases personalizados
  • Funções personalizadas como proj, fin, musica, gitclone, tempmail, maccy, dotsetup, devutil, api_test

functions/proj.fish

Mostra os projetos da pasta ~/Projetos com:

  • Tipo (api, app, script, serverless)
  • Versão (package.json)
  • Node version (package.json ou .nvmrc)
  • Status do Git
  • Data do último commit
  • Interface fzf com colunas organizadas

functions/fin.fish

Abre a pasta atual do terminal no Finder, com tamanho da janela definido.

functions/gitclone.fish

Recebe uma URL de repositório (git@... ou https://...), exibe:

  • Nome do projeto
  • Branch padrão
  • Branches disponíveis
  • Teste de acesso ao repositório
  • Confirmação antes de clonar
  • Clona sempre dentro de ~/Projetos

functions/tempmail.fish

Cria um novo e-mail temporário com mail.tm, armazena as credenciais no cache e permite:

  • Listar a caixa de entrada no terminal (uma linha por e-mail, com índice numérico)
  • Exibir os remetentes e assuntos numerados
  • Selecionar e ler a mensagem diretamente pelo índice
  • Exibir as credenciais salvas

Exemplo de uso:

tempmail

functions/maccy.fish

Instala o Maccy (gerenciador de histórico de área de transferência para macOS) via Homebrew:

  • Verifica se já está instalado
  • Caso contrário, instala com brew install --cask maccy

functions/dotsetup.fish

Executa o script de instalação dos dotfiles a partir de qualquer lugar.

dotsetup

functions/devutil.fish

Toolkit prático com comandos para desenvolvimento:

  • devutil cuid → gera CUID (usa pacote cuid-cli)
  • devutil uuid → gera UUID v4 e copia para área de transferência
  • devutil pass [len] → gera senha forte (padrão 20 chars)
  • devutil lorem [type|len] → gera texto placeholder (word, sentence, paragraph ou número de caracteres)
  • devutil base64 [op] [txt] → encode/decode base64
  • devutil jwt TOKEN → decodifica JWT (mostra payload com jq)
  • devutil cpf → gera um CPF válido e copia sem quebra de linha
  • devutil cnpj → gera um CNPJ válido e copia sem quebra de linha
  • devutil epoch → mostra timestamp atual (epoch)
  • devutil epoch [epoch] → converte epoch para data legível

functions/dock.fish

Controla a visibilidade do Dock do macOS:

  • dock hide → Ativa o "Auto Hide" (ganhar espaço de tela)
  • dock show → Desativa o "Auto Hide" (sempre visível)
  • dock reset → Reinicia o processo do Dock (útil se travar)

functions/api_test.fish

Testa APIs REST/GraphQL com suporte a diferentes métodos HTTP e autenticação.
Agora mais simples:

  • Headers: passe como Chave:Valor (ex: Authorization:'Bearer token')
  • Dados: passe como chave=valor (ex: name=John age=30)
  • GraphQL: envie a query como query='...'
  • Query Params: adicione ?chave=valor na URL
  • Path Params: use :valor na URL

Exemplos de uso:

# REST API básica
api_test get https://api.github.com/users/octocat
api_test post https://api.example.com/users name=John age=30

# Headers de autenticação
api_test get https://api.example.com/users Authorization:'Bearer token123'
api_test post https://api.example.com/users Authorization:'Bearer token123' name=John age=30

# Query Params
api_test get https://api.example.com/users?page=1&limit=10
api_test get https://api.example.com/users?page=1&limit=10 Authorization:'Bearer token123'

# Path Params
api_test get https://api.example.com/users/:id
api_test get https://api.example.com/users/:id Authorization:'Bearer token123'

# Métodos HTTP
api_test put https://api.example.com/users/1 name=John age=31
api_test patch https://api.example.com/users/1 age=32
api_test delete https://api.example.com/users/1

# GraphQL
api_test post https://api.example.com/graphql query='query { users { id name } }'
api_test post https://api.example.com/graphql Authorization:'Bearer token123' query='query { users { id name } }'

Ordem dos argumentos:

  1. Método HTTP (get, post, put, delete, patch)
  2. URL do endpoint (pode incluir query params e path params)
  3. Headers (opcional): Chave:Valor
  4. Dados (opcional): chave=valor
  5. Query GraphQL (opcional): query='...'

functions/try_install_tool.fish

Função auxiliar que verifica se uma ferramenta está instalada e pergunta se deseja instalar com npm (padrão) ou brew.

🛠️ Requisitos

🚀 Primeira Instalação

git clone https://github.com/Komido/dotfiles ~/.dotfiles
cd ~/.dotfiles

chmod +x install.fish
./install.fish

Para reinstalar ou reconfigurar o ambiente futuramente:

dotsetup

Configurações Locais

Para variáveis de ambiente sensíveis (tokens) ou configurações específicas da máquina, crie o arquivo ~/.config.fish.local. Ele será carregado automaticamente e é ignorado pelo Git.

🧼 Licença

MIT — Sinta-se à vontade para copiar, modificar, usar, sugerir melhorias e distribuir.

💡 Funções disponíveis

proj             # Lista projetos com metadados e fzf
gitclone         # Exibe dados do repositório antes de clonar em ~/Projetos
fin              # Abre a pasta atual no Finder (com tamanho fixo)
musica           # Controla o app Música (play/pause/próxima/volume/playlists)
api_test         # Testa APIs REST/GraphQL com suporte a diferentes métodos HTTP e autenticação
tempmail         # Gera e gerencia e-mails temporários com mail.tm
devutil          # Utilitários diversos: UUID, pass, lorem, base64, jwt, etc.
dock             # Controla visibilidade do Dock (hide/show/reset)
dotsetup         # Setup auxiliar de pós-instalação e dotfiles
maccy            # Instala e configura o Maccy via Homebrew
try_install_tool # Instala ferramentas com brew ou npm (com confirmação)
dothelp          # Lista e explica todas as funções acima

Releases

No releases published

Packages

No packages published

Languages