Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mavam/dotfiles
:desktop_computer: The very heart of an efficient work environment
https://github.com/mavam/dotfiles
dotfiles git mutt tmux vim zsh
Last synced: 2 days ago
JSON representation
:desktop_computer: The very heart of an efficient work environment
- Host: GitHub
- URL: https://github.com/mavam/dotfiles
- Owner: mavam
- Created: 2010-10-15T15:20:46.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2024-10-21T10:23:55.000Z (2 months ago)
- Last Synced: 2024-12-18T02:10:52.513Z (9 days ago)
- Topics: dotfiles, git, mutt, tmux, vim, zsh
- Language: Shell
- Homepage:
- Size: 4.06 MB
- Stars: 51
- Watchers: 6
- Forks: 22
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# dotfiles
> Proper dotfiles are the very heart of an efficient working environment.
- **Terminals**: [Kitty](https://sw.kovidgoyal.net/kitty/) and
[tmux](https://github.com/tmux/tmux)
- **Shell**: [Fish](https://fishshell.com/)
- **Editor**: [NeoVim](https://neovim.io/)
- **Colorscheme**: [Catppuccin](https://github.com/catppuccin/catppuccin)
- **Font**: [Fira Code](https://github.com/tonsky/FiraCode) from [Nerd Fonts](https://github.com/ryanoasis/nerd-fonts)On macOS, [Homebrew](https://brew.sh) is the package manager.
## Usage
### Synopsis
Clone this repository and bootstrap your system:
git clone [email protected]:mavam/dotfiles.git ~/.dotfiles
cd .dotfiles
./bootstrapThe bootstrap script will ask you whether you'd like to setup specific components.
### Dotfile Management
The POSIX shell script [dots](dots) installs (= symlinks) and removes subsets
of dotfiles according to your needs. For example, install all dotfiles as
follows:./dots install -a
Alternatively, install only dotfiles selectively, with positional arguments
matching names in this repository:./dots install git gnupg
Similarly, remove all installed dotfiles:
./dots uninstall -a
The installer script does not override existing dotfiles unless the command
line includes the `-f` switch. When in doubt what the installation of a subset
of the dotfiles would look like, it is possible to look at the diff first:./dots diff -a
To add a configuration for an exemplary tool "foo", create a new directory
`foo` and add the dotfiles in there, as if `foo` is your install prefix
(typically `$HOME`). You can "scope" a tool as *local* by adding a tag-file
`foo/LOCAL`. This has the effect of creating a nested configuration directory
in your prefix, instead of symlinking the directory. For example, you may not
want to symlink `~/.gnupg` but only the contained file `~/.gnupg/gpg.conf`.
Without the scope tag `gnupg/LOCAL`, you would end up with:~/.gnupg -> dotfiles/gpg/.gnupg
as opposed to:
~/.gnupg (local directory)
~/.gnupg/gpg.conf -> dotfiles/gpg/.gnupg/gpg.conf