{"id":13898012,"url":"https://github.com/phansch/dotfiles","last_synced_at":"2025-04-11T21:32:37.483Z","repository":{"id":11019429,"uuid":"13348205","full_name":"phansch/dotfiles","owner":"phansch","description":"Useful dotfiles for i3, Ghostty, tmux, neovim, git, zsh and more | Tested daily on CI","archived":false,"fork":false,"pushed_at":"2025-04-01T18:56:11.000Z","size":2021,"stargazers_count":11,"open_issues_count":11,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-01T19:45:47.720Z","etag":null,"topics":["ansible","dotfiles","ghostty","gnu-stow","i3","neovim","stow","tmux","vim","zsh"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"pawitp/cm-ota-server","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/phansch.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},"funding":{"github":"phansch","patreon":"philhansch","custom":["https://paypal.me/philhansch"]}},"created_at":"2013-10-05T16:19:53.000Z","updated_at":"2025-04-01T18:56:14.000Z","dependencies_parsed_at":"2024-05-27T19:38:42.875Z","dependency_job_id":"dcac3d0a-fa5b-47b0-bbe6-6004a2357b60","html_url":"https://github.com/phansch/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phansch%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phansch%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phansch%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/phansch%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/phansch","download_url":"https://codeload.github.com/phansch/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248483238,"owners_count":21111432,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ansible","dotfiles","ghostty","gnu-stow","i3","neovim","stow","tmux","vim","zsh"],"created_at":"2024-08-06T18:04:00.821Z","updated_at":"2025-04-11T21:32:37.467Z","avatar_url":"https://github.com/phansch.png","language":"Shell","funding_links":["https://github.com/sponsors/phansch","https://patreon.com/philhansch","https://paypal.me/philhansch"],"categories":["Shell"],"sub_categories":[],"readme":"[![Build Status](https://github.com/phansch/dotfiles/workflows/CI/badge.svg?branch=main)](https://github.com/phansch/dotfiles/actions)\n\n## What's in there?\n\nThis is meant to be a 'minimal', **distraction free** setup. No fancy\nstatusbars, no crazy window decorations, no distractions.\nWith these dotfiles I want to automate as much as possible and keep UI clutter\nto a minimum for a distraction-free environment.\n\nThe only exception for this is currently Neovim, where I'm using [LazyVim] to\nset up everything. I had too many issues with my config breaking and I hope,\nby 'outsourcing' it, it will break less often.\n\nI **don't** recommend running the `setup` script on your machine unless\nyou understand what it does.  \nI **do** recommend having a look through the various config files.\nBelow is a rough overview.\n\nIf you are interested in the CI setup, look [below](#ci-info).\n\n### Window manager: i3\n\n* i3bar is only shown when the modifier key is pressed\n* i3bar only shows the workspaces, time and tray programs\n\n### Terminal: Ghostty + tmux\n\nGhostty (vs. urxvt) improves various things for me:\n\n* Much better HiDPI support\n* Automatic config reloading (no more need for `xrdb -merge` and starting a new\n  terminal\n* Emoji support ✨\n* Image support\n\nThe tmux status display has no additional information apart from windows.\n\n![tmux status display](screenshots/screen-tmux.png)\n\n### Shell: zsh\n\n* Custom zsh prompt/theme\n* CTRL+Z to send jobs to background and to foreground\n* No oh-my-zsh, because it makes things slow\n* Same completion as oh-my-zsh\n\n![zsh prompt](screenshots/screen-zsh1.png)\n\n### Editor: Vim\n\n* Using [LazyVim] for the core IDE setup\n* Support for 'line' cursor shape in insert mode if using nvim\n* Turns syntax off for large files\n* Open the current file in browser (Useful for markdown)\n* Return to the same line when you reopen a file\n* Switch between tmux and vim panes using the same shortcuts\n\n### Git\n\n* Pre-defined commit message with suggestions\n\n### Ruby\n\n* Basic rubocop.yml\n* irbrc - start pry if possible\n* gemrc - never download docs\n\n### Scripts in bin/\n\n* `off` Will ask you to do a daily review, time tracking and if you are fine with your journaling and then suspend the machine.\n* `clean_rails` cleans cache and log files in rails projects\n\n## Installation\n\n### System bootstrapping\n\nJust run the following command:\n\n    wget --no-check-certificate https://github.com/phansch/dotfiles/raw/main/setup -O - | bash -s -- -s\n\nThis will:\n\n1. Upgrade and autoclean system packages\n2. Clone the dotfiles (or pull if they exist already)\n3. Install the base packages\n4. Symlink the dotfiles with `stow`\n5. Print the command to run the optional playbooks\n\n### Just the dotfiles\n\nIf you just want the dotfiles, clone them and use [stow](https://www.gnu.org/software/stow/) as below.\n\n    git clone https://github.com/phansch/dotfiles.git $HOME/.dotfiles\n\n    cd $HOME\n\n    # Install stow\n    sudo apt-get install stow\n\n    # To install the ruby dotfiles. Replace `ruby` with the stow package you want.\n    stow ruby --verbose=1 --target=$HOME/ --dir=$HOME/.dotfiles\n\n### Environment variables\n\nSome scripts, like the `off` script, use environment variables for configuration.\nYou can set these in your `~/.zshrc.local` which is sourced by `~/.zshrc` automatically.\n\nThe current environment variables are:\n\n| Variable           | Function                                                      |\n| ------------------ | ------------------------------------------------------------- |\n| DAILY_REVIEW_LINK  | If set, opens the configured link when using the `off` script |\n| WORK_TIME_TRACKING | If set, opens the configured link when using the `off` script |\n\n## Development\n\nSince it can be a bit problematic to test changes to the configuration on the actual machine where you want to make them, you can use Vagrant to test changes to the configuration.\n\nYou will need Vagrant and Virtualbox installed, then you can run:\n\n    vagrant up\n\nYou can then either use `vagrant ssh` or connect to the VM through Virtualbox to have a GUI.\n\n**Running the tests**\n\n    run-parts test/\n\n### CI Info\n\nCI is trying to mirror a full Ubuntu installation in order to ensure the setup script doesn't fail.\n\n* i3 config is invalid\n* shellcheck found errors\n* The full setup fails\n\n[LazyVim]: http://www.lazyvim.org/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphansch%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphansch%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphansch%2Fdotfiles/lists"}