{"id":32935469,"url":"https://github.com/ivuorinen/dotfiles","last_synced_at":"2026-05-16T23:20:28.540Z","repository":{"id":157337180,"uuid":"503501348","full_name":"ivuorinen/dotfiles","owner":"ivuorinen","description":"These are my dotfiles. There are many like 'em, but these are mine.","archived":false,"fork":false,"pushed_at":"2026-05-16T12:23:46.000Z","size":15163,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-16T14:37:04.353Z","etag":null,"topics":["dotbot","dotfiles","fish","fish-shell","github-actions","homebrew","linux","macos","neovim","oh-my-zsh","shell","tmux","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivuorinen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-06-14T19:53:55.000Z","updated_at":"2026-05-16T12:23:49.000Z","dependencies_parsed_at":"2026-03-08T23:02:19.631Z","dependency_job_id":null,"html_url":"https://github.com/ivuorinen/dotfiles","commit_stats":null,"previous_names":[],"tags_count":591,"template":false,"template_full_name":null,"purl":"pkg:github/ivuorinen/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivuorinen%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivuorinen%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivuorinen%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivuorinen%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivuorinen","download_url":"https://codeload.github.com/ivuorinen/dotfiles/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivuorinen%2Fdotfiles/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33121941,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"ssl_error","status_checked_at":"2026-05-16T18:38:29.903Z","response_time":115,"last_error":"SSL_read: 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":["dotbot","dotfiles","fish","fish-shell","github-actions","homebrew","linux","macos","neovim","oh-my-zsh","shell","tmux","zsh"],"created_at":"2025-11-11T23:01:21.162Z","updated_at":"2026-05-16T23:20:28.513Z","avatar_url":"https://github.com/ivuorinen.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# .dotfiles\n\nWelcome to [ivuorinen](https://github.com/ivuorinen)'s .dotfiles repository.\nIt's a hodgepodge of scripts and configurations, tests and mistakes I'm not\naware of yet. As I find more interesting tools, configs and other stuff,\nthis repository will live accordingly.\n\nPlease for the love of everything good do not use these 1:1 as your own dotfiles,\nfork or download the repository as a zip and go from there with your own configs.\n\nIt would be nice if you'd add an issue linking to your fork or repo so I can\nsee what interesting stuff you've done with it. Sharing is caring.\n\n## Setup\n\n### First time setup\n\n1. Clone this repository to `$HOME/.dotfiles`\n2. `git submodule update --init --recursive`\n3. `./install`\n4. ???\n5. Profit\n\n### Updates\n\n`cd $HOME/.dotfiles \u0026\u0026 git pull \u0026\u0026 ./install`\n\n## The looks\n\n![tmux with nvim, light theme](.github/screenshots/tmux-nvim-kickstart-light.png)\n\n![tmux with nvim, dark theme](.github/screenshots/tmux-nvim-kickstart-dark.png)\n\n## Interesting files and locations\n\n### Interesting folders\n\n| Path                | Description                                  |\n|---------------------|----------------------------------------------|\n| `.github`           | GitHub Repository configuration files, meta. |\n| `hosts/{hostname}/` | Configs that should apply to that host only. |\n| `local/bin`         | Helper scripts that I've collected or wrote. |\n| `scripts`           | Setup scripts.                               |\n\n### Host specific configuration\n\nConfigurations under `hosts/\u003chostname\u003e` are applied only when running on the\nmatching machine. Each host folder contains its own `install.conf.yaml` that\nis processed by Dotbot during installation.\n\n### dotfile folders\n\n| Repo      | Destination | Description                               |\n|-----------|-------------|-------------------------------------------|\n| `base/`   | `.*`        | `$HOME` level files.                      |\n| `config/` | `.config/`  | Configurations for applications.          |\n| `local/`  | `.local/`   | XDG Base folder: `bin`, `share` and `man` |\n| `ssh/`    | `.ssh/`     | SSH Configurations.                       |\n\n### `dfm` - the dotfiles manager\n\n[`.local/bin/dfm`][dfm] is a shell script that has some tools that help with dotfiles management.\n\nRunning `dfm` gives you a list of available commands.\n\n#### Documentation generation\n\n`dfm docs` regenerates the keybinding documentation under `docs/`. Available\nsubcommands:\n\n```bash\ndfm docs all      # regenerate every keybinding doc\ndfm docs tmux     # tmux keybindings only\ndfm docs nvim     # nvim keybindings only\ndfm docs wezterm  # wezterm keybindings only\n```\n\nThe `docs/` folder also contains other reference files (alias table,\nfolder layout, command catalogue) that are maintained directly rather\nthan via `dfm`.\n\n## Configuration\n\nThe folder structure follows [XDG Base Directory Specification][xdg] where possible.\n\n### XDG Variables\n\n| Env                | Default              | Short description                              |\n|--------------------|----------------------|------------------------------------------------|\n| `$XDG_BIN_HOME`    | `$HOME/.local/bin`   | Local binaries                                 |\n| `$XDG_CONFIG_HOME` | `$HOME/.config`      | User-specific configs                          |\n| `$XDG_DATA_HOME`   | `$HOME/.local/share` | User-specific data files                       |\n| `$XDG_STATE_HOME`  | `$HOME/.local/state` | App state that should persist between restarts |\n\nPlease see [docs/folders.md][docs-folders] for more information.\n\n## Managing submodules\n\nThis repository uses Git submodules for external dependencies. After cloning,\nrun:\n\n```bash\ngit submodule update --init --recursive\n```\n\nTo pull submodule updates later use:\n\n```bash\ngit submodule update --remote --merge\n```\n\nThe helper script `add-submodules.sh` documents how each submodule is added and\nconfigured. Submodules are automatically updated by the\n[update-submodules.yml](.github/workflows/update-submodules.yml) workflow.\n\n## Testing\n\nShell scripts under `local/bin` are validated with [Bats](https://github.com/bats-core/bats-core).\nRun `yarn test` to execute every test file. Bats is installed as a development\ndependency, so run `yarn install` first if needed.\n\n[dfm]: https://github.com/ivuorinen/dotfiles/blob/main/local/bin/dfm\n[docs-folders]: https://github.com/ivuorinen/dotfiles/blob/main/docs/folders.md\n[xdg]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivuorinen%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivuorinen%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivuorinen%2Fdotfiles/lists"}