{"id":15690980,"url":"https://github.com/ticky/dotfiles","last_synced_at":"2025-07-01T08:34:44.871Z","repository":{"id":8347069,"uuid":"58078584","full_name":"ticky/dotfiles","owner":"ticky","description":"🐚 Speedy auto-completing multiplatform zsh and bash configuration","archived":false,"fork":false,"pushed_at":"2025-04-09T22:01:13.000Z","size":593,"stargazers_count":9,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-05-07T23:30:34.801Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ticky.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"license.md","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":"2016-05-04T19:28:13.000Z","updated_at":"2025-04-22T08:26:25.000Z","dependencies_parsed_at":"2023-12-13T20:28:51.670Z","dependency_job_id":"14c1b69a-e859-47c9-b8e0-2ead410286f5","html_url":"https://github.com/ticky/dotfiles","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ticky/dotfiles","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ticky%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ticky%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ticky%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ticky%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ticky","download_url":"https://codeload.github.com/ticky/dotfiles/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ticky%2Fdotfiles/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262928514,"owners_count":23386160,"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":[],"created_at":"2024-10-03T18:18:32.436Z","updated_at":"2025-07-01T08:34:44.846Z","avatar_url":"https://github.com/ticky.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dotfiles\n\nWhat I do have are a very particular set of dotfiles, dotfiles I have acquired over a very long career. Dotfiles that make unix less of a nightmare for people like me.\n\n## Features\n\n* colourful prompt, directory listing, `man` pages and `git` output\n* 2-line prompt with `git` status, clock and command syntax highlighting\n* works on macOS, Linux and Cygwin - and with both GNU and BSD core utilities\n* shell history from `↑`/`↓` keys is from the current shell, `^r` is from all (`zsh` only)\n* stops `play` and `ant` from being unruly citizens on macOS\n\n## Requirements\n\n* `git` version 1.8 or newer\n* **Python 2.6/2.7 and 3.x**\n* **Homebrew**  \n  _macOS Only - This means you need Xcode installed first_\n* `reattach-to-user-namespace`  \n  _macOS Only - Allows lots of things to work better inside `tmux`_\n* `zsh-syntax-highlighting`\n  _Only under `zsh` - provides syntax highlighting for the `zsh` prompt_\n* `ncurses`  \n  _If this isn't installed, the `clear` command is missing_\n* `Regexp::Common` version `2013031301` or newer  \n  _Perl module used for `ipgrep` and `ipls` commands. Older versions do not suport IPv6 and will break._\n* **DejaVu Sans Mono**  \n  _Cygwin Only - I use this font in MinTTY, and it'll fall back to Courier if it's not installed_\n\n### Supported Shells\n* **zsh 4.3** or newer  \n  _This is not a hard requirement, however, this version is the one supplied with macOS 10.8_\n* **Bash 3.2** or newer  \n  _Sorry, MinGW users_\n\nThe focus of future updates to these dotfiles will be `zsh`. At some point, `bash` support may be removed or reduced, but only once the environments I use consistently have a compatible `zsh` version available.\n\n## Setup\n\nSetup involves a few steps specific to each platform, followed by the \"all platforms\" steps below.\n\n### macOS\n\n_**Note**: These dotfiles are configured for use with GitHub Strap - forking them to `{your-username}/dotfiles` will have them automatically set up when you use Strap on your macOS machine!_\n\n* install [Xcode](https://itunes.apple.com/app/xcode/id497799835)\n* install [Homebrew](https://github.com/Homebrew/homebrew)\n* `brew install reattach-to-user-namespace`\n* (if using `zsh`) `brew install zsh-syntax-highlighting`\n* (if using `bash`) `brew install bash-completion`\n\n### Cygwin\n\nCygwin has limited package management built-in. I recommend downloading [apt-cyg](http://code.google.com/p/apt-cyg/) which gives you a command-line interface for Cygwin's package manager.\n\n* `apt-cyg install openssh ncurses`\n* (if using `bash`) `apt-cyg install bash-completion`\n\n### All Platforms\n\nAfter completing the relevant platform-specific section,\n\n* (if using `zsh`) install [zsh-syntax-highlighting](https://github.com/zsh-users/zsh-syntax-highlighting)\n* (if using `bash`) install [git-bash-completion](https://github.com/markgandolfo/git-bash-completion)\n* `cpan Regexp::Common` (frustratingly, will require some basic interaction if you haven't set up CPAN before)\n* `git clone https://github.com/ticky/dotfiles.git ~/.dotfiles`\n* `~/.dotfiles/install.sh`  \n  _**NOTE**: If `install.sh` detects that dependencies are missing, it will notify you and abort._\n* Restart your shell\n\n## Updating\n\n`dotfiles update` will fetch the latest changes and install them.\n\n## Platform-specific directories\n\n### Single-Platform\n\nThis supports three kinds of platform-specific functionality;\n\n1. Platform-specific `bin` directories\n2. Platform-specific `~` includes\n3. Platform-specific `zshrc` includes\n\nThe install script will manage this automatically. You can find these under `.dotfiles/platforms`.\n\n* Files in `.dotfiles/platforms/{platform}/bin` are automatically available in your `$PATH`.\n\n* Files in `.dotfiles/platforms/{platform}/home` are either symlinked (editing `~/{file}` updates `.dotfiles/platforms/{platform}/file` - platform-specific includes are only possible if the file is executable) or concatenated (appended; this allows platform-specific stuff to be added to files which aren't executed).\n\n* Files in `.dotfiles/platforms/{platform}/zsh` are loaded by `.zshrc` (and thus, only when running `zsh`), in the following order;\n    1. `path.zsh` - settings for `$PATH` go here\n    2. All files except `path.zsh` and `completion.zsh`, in alphabetical order - general settings and custom categorisation goes here\n    3. `completion.zsh` - completion settings go here\n\nThis setup includes a helper function for this called `platformbindir`. Running this will;\n\n* create the platform-specific `bin` directory if it doesn't already exist\n* output the full location of the platform-specific `bin` directory\n\nSo it's easy to add stuff; you can do stuff like ``cd `platformbindir` ``, which navigates straight to the current platform's `bin` directory.\n\n_**NOTE**: Due to the way this works, it's not possible to update a concatenated file in your home directory and commit it immediately. You will need to make the edit twice for those files._\n\n### All-But-Platform\n\nAdditionally, there is provision for such directories usable for all but a certain platform. For example, `tmux` works anywhere except on Cygwin, so `tmux.conf.concat` is placed in `.dotfiles/platforms/all-but-cygwin/home`. It then applies on `linux` and `darwin`, but not `cygwin`.\n\nThere are no shortcuts for configuring this, however, it relies on the same `$UNAME` variable as the above, so if you had a `linux` directory, the all-but directory is `all-but-linux`.\n\n## History\n\nThese were originally forked from [seaofclouds](http://github.com/seaofclouds)' [dotfiles repo](https://github.com/seaofclouds/dotfiles), and subsequently heavily modified.  \nLots of inspiration (and some shortcuts and functions) taken from these fine people;\n\n* [Eevee](https://github.com/eevee/rc)\n* [Ben Alman](https://github.com/cowboy/dotfiles)\n* [Mathias Bynens](http://mths.be/dotfiles)\n* [Ryan Tomayko](http://github.com/rtomayko/dotfiles)\n* [GitHub does dotfiles](http://dotfiles.github.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fticky%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fticky%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fticky%2Fdotfiles/lists"}