https://github.com/komido/dotfiles
Dotfiles personalizados para Fish Shell
https://github.com/komido/dotfiles
cli-tools dotfiles fish-shell fzf iterm2 music nerd-fonts productivity shell starship terminal zoxide
Last synced: about 2 months ago
JSON representation
Dotfiles personalizados para Fish Shell
- Host: GitHub
- URL: https://github.com/komido/dotfiles
- Owner: Komido
- Created: 2025-04-12T01:58:42.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-18T22:25:16.000Z (about 1 year ago)
- Last Synced: 2025-04-19T09:10:58.384Z (about 1 year ago)
- Topics: cli-tools, dotfiles, fish-shell, fzf, iterm2, music, nerd-fonts, productivity, shell, starship, terminal, zoxide
- Language: Shell
- Homepage:
- Size: 10.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 🐟 Dotfiles — Fish Shell Setup



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:
```bash
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.
```bash
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:
```bash
# 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
- [fish shell](https://fishshell.com/)
- [starship](https://starship.rs/)
- [zoxide](https://github.com/ajeetdsouza/zoxide)
- [fzf](https://github.com/junegunn/fzf)
- [bat](https://github.com/sharkdp/bat)
- [eza](https://github.com/eza-community/eza)
- [jq](https://stedolan.github.io/jq/)
- [cuid-cli (npm)](https://www.npmjs.com/package/cuid-cli)
- JetBrainsMono Nerd Font
## 🚀 Primeira Instalação
```bash
git clone https://github.com/Komido/dotfiles ~/.dotfiles
cd ~/.dotfiles
chmod +x install.fish
./install.fish
```
Para reinstalar ou reconfigurar o ambiente futuramente:
```bash
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
```bash
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
```