{"id":29311514,"url":"https://github.com/abecodes/dotfiles","last_synced_at":"2026-03-05T08:02:28.202Z","repository":{"id":40627530,"uuid":"473249470","full_name":"abecodes/dotfiles","owner":"abecodes","description":null,"archived":false,"fork":false,"pushed_at":"2025-10-08T07:22:50.000Z","size":22853,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-08T08:32:57.665Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/abecodes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-03-23T15:30:51.000Z","updated_at":"2025-10-08T07:22:53.000Z","dependencies_parsed_at":"2023-01-22T23:31:20.188Z","dependency_job_id":"1f89d67d-fb9d-445e-8b4d-b76860dfc5c2","html_url":"https://github.com/abecodes/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/abecodes/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abecodes%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abecodes%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abecodes%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abecodes%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/abecodes","download_url":"https://codeload.github.com/abecodes/dotfiles/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/abecodes%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30115662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-05T03:40:26.266Z","status":"ssl_error","status_checked_at":"2026-03-05T03:39:15.902Z","response_time":93,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-07-07T08:15:03.624Z","updated_at":"2026-03-05T08:02:28.166Z","avatar_url":"https://github.com/abecodes.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dotfiles\n\n![home](assets/home.png)\n\n## :suspect: Overview\n\nTo future abe:\n\nSetting up a new system? Messed up the old one again?\n\n\u003e Ah sh!t, here we go again - C.J.\n\nHere are some easy to follow along steps to speed the process up. Maybe you will finally take the time and use some automation for that...\n\n## Prerequisites\n\n**homebrew**\n\n[Homebrew](https://brew.sh/index) as package manager for macOS.\n\n```bash\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\"\n\nbrew analytics off\n```\n\n## :see_no_evil: tl;dr\n\n[Docker](https://docs.docker.com/docker-for-mac/install/)\n\n```bash\nbrew install stow\n\nstow -t ~/ /\n```\n\n```bash\nbrew install neovim neofetch kitty lulu fish jesseduffield/lazygit/lazygit jesseduffield/lazynpm/lazynpm jesseduffield/lazydocker/lazydocker fzf nnn ripgrep go golangci-lint node rustup-init rust-analyzer efm-langserver llvm eza bat mdcat zoxide tealdeer bottom dust sd procs fd tokei jq starship yt-dlp/taps/yt-dlp silicon code-minimap kind kustomize kubectl staticcheck ncdu danvergara/tools/dblab jez/formulae/git-heatmap viu httpie fx epr slides ruff pyright lua-language-server\n\nbrew install --cask rectangle mark-text vscodium pritunl librewolf gaphor motrix mongodb-compass keepassxc drawio vienna\n\n# make alternative\nbrew tap joerdav/xc\nbrew install xc\n\nnpm i -g eslint_d @fsouza/prettierd vscode-langservers-extracted typescript typescript-language-server https://github.com/jez/bars.git\n\npip3 install epy-reader\n\n# packer\ngit clone https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/start/packer.nvim\n\n# kitty themes\nhttps://github.com/dexpota/kitty-themes\n\n# nnn plugins\ncurl -Ls https://raw.githubusercontent.com/jarun/nnn/master/plugins/getplugs | sh\n\n# additional golang tooling\ngo install mvdan.cc/gofumpt@latest golang.org/x/tools/go/analysis/passes/shadow/cmd/shadow@latest github.com/securego/gosec/v2/cmd/gosec@latest github.com/fdaines/spm-go@latest github.com/go-critic/go-critic/cmd/gocritic@latest github.com/praetorian-inc/gokart@latest github.com/quasilyte/go-consistent@latest goa.design/model/cmd/mdl@latest github.com/divan/expvarmon@latest github.com/segmentio/golines@latest github.com/josharian/impl@latest github.com/cweill/gotests/...@latest github.com/m-zajac/json2go/...@latest\n\n# fzf shell bindings\n$(brew --prefix)/opt/fzf/install\n\n# fzf vim c-tag support\nbrew install --HEAD universal-ctags/universal-ctags/universal-ctags\n\n# set default shell\nsudo sh -c 'echo /usr/local/bin/fish \u003e\u003e /etc/shells'\nchsh -s /usr/local/bin/fish\n\n# For M1 cpus\nsudo sh -c 'echo /opt/homebrew/bin/fish \u003e\u003e /etc/shells'\nchsh -s /opt/homebrew/bin/fish\n\n# Set github user globally\ngit config --global user.name \"xxx\"\ngit config --global user.email \"x@y.z\"\n```\n\n## :fire: Firewall\n\nIt is a firewall, it does firewall stuff. Also, it is open source :thumbsup:\n\n```bash\n# lulu https://github.com/objective-see/LuLu\nbrew install lulu\n\n# little-snitch is a top notch paid alternative\n```\n\n## :computer: Shell\n\nRight now I am hooked on [kitty](https://sw.kovidgoyal.net/kitty/#quickstart). Its fast, powerful, highly customizeable and offers everything a great terminal emulater needs.\n\n```bash\nbrew install kitty\n\n# find themes here\nhttps://github.com/dexpota/kitty-themes\n```\n\n[fish](https://fishshell.com/) is my goto shell, but be aware, it is not POSIX compliant and does not support normal bash functions. You may end up rewriting a lot of things to make it work with _fish_.\n\n```bash\nbrew install fish\n```\n\nAnd of course I want a colorful and fancy prompt :unicorn:\n\n```bash\n# starship prompt https://starship.rs\nbrew install starship\n# add to fish conf: starship init fish | source\n\n# colorful terminal motd https://github.com/dylanaraps/neofetch\nbrew install neofetch\n```\n\nNow make **fish** the default shell\n\n```bash\nsudo sh -c 'echo /usr/local/bin/fish \u003e\u003e /etc/shells'\nchsh -s /usr/local/bin/fish\n\n# For M1 cpus\nsudo sh -c 'echo /opt/homebrew/bin/fish \u003e\u003e /etc/shells'\nchsh -s /opt/homebrew/bin/fish\n```\n\n## :neckbeard: Editor\n\nI like it fast, colorful and extendable, so there is only one choice here: [neovim](https://neovim.io/).\n\n```bash\nbrew install neovim\n```\n\n### neovim plugin manager\n\n[packer](https://github.com/wbthomason/packer.nvim) (\"Plug\" would be another option)\n\n```bash\ngit clone https://github.com/wbthomason/packer.nvim ~/.local/share/nvim/site/pack/packer/start/packer.nvim\n```\n\n\u003e _dont forget to create a session dir for startify in the nvim folder_\n\nIf you like your mouse, VS-Code is also a solid choice\n\n[vscodium](https://vscodium.com/): VS-Code without all the telemetry stuff\n\n`brew install --cask vscodium`\n\n_By default VS-Codium uses [open-vsx.org](https://open-vsx.org) as plugin marketplace. To use the original marketplace overwrite the `product.json`_\n\n```JSON\n// /Applications/VSCodium.app/Contents/Resources/app/product.json\n\n\"extensionsGallery\": {\n  \"serviceUrl\": \"https://marketplace.visualstudio.com/_apis/public/gallery\",\n  \"cacheUrl\": \"https://vscode.blob.core.windows.net/gallery/index\",\n  \"itemUrl\": \"https://marketplace.visualstudio.com/items\",\n  \"controlUrl\": \"\",\n  \"recommendationsUrl\": \"\"\n}\n```\n\n\u003e **Extensions**\n\u003e\n\u003e To use extensions that are not available through VS-Codium [see migration guide](https://github.com/VSCodium/vscodium/blob/master/DOCSmd#migrating-from-visual-studio-code-to-vscodium)\n\n## :zap: Speed up system tools\n\nThe rise of [rust](https://www.rust-lang.org/) and its recent _adoption_ to the UNIX kernel brings us more and more improved rewrites of system tools. Some of them are great replacements already.\n\n```bash\nbrew install eza # ls replacement https://github.com/eza-community/eza\nbrew install bat # cat replacement https://github.com/sharkdp/bat\nbrew install mdcat # cat replacement for md files https://github.com/lunaryorn/mdcat\nbrew install zoxide # cd replacement https://github.com/ajeetdsouza/zoxide\n# add to fish conf zoxide init fish | source\nbrew install ripgrep # grep replacement https://github.com/BurntSushi/ripgrep\nbrew install tealdeer # tldr replacement https://github.com/dbrgn/tealdeer\nbrew install clementtsang/bottom/bottom # top replacement https://github.com/ClementTsang/bottom\nbrew install dust # du replacement https://github.com/bootandy/dust\nbrew install sd # sed replacement https://github.com/chmln/sd\nbrew install procs # ps replacement https://github.com/dalance/procs\nbrew install fd # find replacement https://github.com/sharkdp/fd\nbrew install httpie # curl replacement https://httpie.io/ (also has a UI to replace postman)\n```\n\n## :sparkles: Additional tooling\n\n[stow](https://www.gnu.org/software/stow/) to easily symlinc dotfiles\n\n```bash\nbrew install stow\n```\n\nThats a good place for some [Docker](https://docs.docker.com/docker-for-mac/install/).\n\n[Rectangle](https://github.com/rxhanson/Rectangle) as snappy window manager:\n\n```bash\nbrew install --cask rectangle\n```\n\n[librewolf](https://librewolf.net/) a secure and privacy focused firefox port\n\n```bash\nbrew install --cask librewolf\n```\n\n[Pritunl-Client](https://client.pritunl.com/) as a client for OPN-VPN:\n\n```bash\nbrew install --cask pritunl\n```\n\n[Mark-text](https://marktext.app/) as markdown editor\n\n```bash\nbrew install --cask mark-text\n```\n\n[keepassxc](https://keepassxc.org/) as password manager\n\n```bash\nbrew install --cask keepassxc\n```\n\n[KIND](https://kind.sigs.k8s.io/docs/user/quick-start/) for local k8s development\n\n```bash\nbrew install kind\n```\n\n[kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl-macos/#install-with-homebrew-on-macos) k8s command-line tool\n\n```bash\nbrew install kubectl\n```\n\n[kustomize](https://kubectl.docs.kubernetes.io/guides/introduction/kustomize/) for customizing k8s resource configuration free from templates and DSLs\n\n```bash\nbrew install kustomize\n```\n\n[gaphor](https://gaphor.org/) to generate visual C4 documentation\n\n```bash\nbrew install --cask gaphor\n```\n\n[motrix](https://motrix.app/) the download manager\n\n```bash\nbrew install --cask motrix\n```\n\n[mongodb-compass](https://www.mongodb.com/try/download/compass) GUI explorer for mongodb\n\n```bash\nbrew install --cask mongodb-compass\n```\n\n[drawio](https://draw.io) Draw flowcharts and programming diagrams\n\n```bash\nbrew install --cask drawio\n```\n\n[vienna](https://www.vienna-rss.com/) RSS reader (alternative: [NetNewsWire](https://netnewswire.com/))\n\n```bash\nbrew install --cask vienna\n```\n\n[httpie](https://httpie.io/download) A gui for httpie (postman replacement)\n\n```bash\nbrew install httpie\n```\n\n[xc](https://xcfile.dev/getting-started/#installation) as make replacement (better task runner baked into the README)\n\n```bash\nbrew tap joerdav/xc\nbrew install xc\n```\n\nAdditions to the CLI would be:\n\n```bash\n# for comfortable git usage https://github.com/jesseduffield/lazygit\nbrew install jesseduffield/lazygit/lazygit\n\n# for comfortable docker usage https://github.com/jesseduffield/lazydocker\nbrew install jesseduffield/lazydocker/lazydocker\n\n# for comfortable package.json usage https://github.com/jesseduffield/lazynpm\nbrew install jesseduffield/lazynpm/lazynpm\n\n### nnn as terminal file explorer\nbrew install nnn\n# or building from src for backed in icons with nerdfonts\ngit clone git@github.com:jarun/nnn\ncd nnn\nmake O_NERD=1\n# nnn plugins\ncurl -Ls https://raw.githubusercontent.com/jarun/nnn/master/plugins/getplugs | sh\n###\n\n# jq for better JSON handling https://stedolan.github.io/jq/\nbrew install jq\n# JSON gui explorer\nbrew install fx\n\n# show lines and types of code in a project https://github.com/XAMPPRocky/tokei\nbrew install tokei\n\n# fzf as fuzzy searcher, used in some nvim plugins and nnn https://github.com/junegunn/fzf\nbrew install fzf\n# To install useful key bindings and fuzzy completion:\n$(brew --prefix)/opt/fzf/install\n\n# youtube-dl fork with some fix and more features [yt-dlp](https://github.com/yt-dlp/yt-dlp)\nbrew install yt-dlp/taps/yt-dlp\n\n# silicon for screenshots with nvim https://github.com/Aloxaf/silicon\nbrew install silicon\n\n# code-minimap for minimap in nvim\nbrew install code-minimap\n\n# ncdu can display leftover files after gitignore or dockerignore is applied\nbrew install ncdu\n\n# dblab is a gui sql db explorer for the terminal https://github.com/danvergara/dblab\nbrew install danvergara/tools/dblab\n\n# get a heatmap of files and changes of the current repo https://github.com/jez/git-heatmap\nbrew install jez/formulae/git-heatmap\nnpm install -g https://github.com/jez/bars.git\n\n# viu can display images in a kitty terminal\nbrew install viu\n\n# terminal epub reader\nbrew install epr\npip3 install epy-reader # fork of epr\n```\n\n## :nerd_face: Programming languages\n\n```bash\n# Golang\nbrew install go\n# gopls to use https://github.com/mvdan/gofumpt\ngo get mvdan.cc/gofumpt\n# go tool's shadow to check for shadowed vars in the code\ngo install golang.org/x/tools/go/analysis/passes/shadow/cmd/shadow@latest\n# gosec checks sourcecode for security vulnarabilities\ngo install github.com/securego/gosec/v2/cmd/gosec@latest\n# spm-go rates the instability of the sourcecode\ngo install github.com/fdaines/spm-go@latest\n# gocritic checks sourcode for a lot of issues\ngo install github.com/go-critic/go-critic/cmd/gocritic@latest\n# gokart checks for security issues\ngo install github.com/praetorian-inc/gokart@latest\n# go-consistent helps to keep a consistent style across the codebase\ngo install github.com/quasilyte/go-consistent@latest\n# goa's c4m documentation framework\ngo install goa.design/model/cmd/mdl@latest\n# expvarmon to monitor debug endpoints from terminal\ngo install github.com/divan/expvarmon@latest\n# golines breaks and indents long lines\ngo install github.com/segmentio/golines@latest\n# impl implements interfaces on structs\ngo install github.com/josharian/impl@latest\n# gotests creates table tests for functions/files\ngo install github.com/cweill/gotests/...@latest\n# json2go creates a struct out of a json desc\ngo install github.com/m-zajac/json2go/...@latest\n# linter for the Go programming language (https://staticcheck.io/)\nbrew install staticcheck\n# [golangci-lint](https://golangci-lint.run) is a colleltion of go linters and code checkers\nbrew install golangci-lint\n# Rust\n# rust-analyzer is needed as lsp for nvim\n# llvm is needed for nvim dap debugging\nbrew install rustup-init rust-analyzer llvm\n# Node\nbrew install node\n# take a look into fnm (https://github.com/Schniz/fnm)\n# Deno (be awere of some cross over issues with node/deno especially in VS Code)\nbrew install deno\n\n### LSP Servers and formatters\n\n# efm-langserver (fast lsp, I use it for formatting mainly,\n# but I think I can replace vscode-langservers-extracted with it\nbrew install efm-langserver\n# ruff python formatter\nbrew install ruff\n# pyright python static linter\nbrew install pyright\n# lua-language-server lsp for lua\nbrew install lua-language-server\n# Javascript/Typescript\nnpm install -g eslint_d @fsouza/prettierd\nnpm install -g typescript typescript-language-server\n# json, html, js, css\nnpm i -g vscode-langservers-extracted\n```\n\n## :scroll: fonts\n\n- `### free ###`\n- [nerd-fonts](https://github.com/ryanoasis/nerd-fonts)\n- [VictorMono](https://rubjo.github.io/victor-mono/)\n- [Recursive](https://www.recursive.design/)\n- [Monoid](https://larsenwork.com/monoid/)\n- [Lotion](https://font.nina.coffee/)\n- `### paid ###`\n- [MonoLisa](https://www.monolisa.dev/)\n- [Operator](https://www.typography.com/fonts/operator/styles)\n- `### lists ###`\n- [Font-List](https://coding-fonts.css-tricks.com/)\n- [Font-List 2](https://www.programmingfonts.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabecodes%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fabecodes%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fabecodes%2Fdotfiles/lists"}