https://github.com/justuswilhelm/pufferfish
Nix, fish, tmux and neovim for fun people
https://github.com/justuswilhelm/pufferfish
dotfiles fish git home-manager neovim nix-darwin nixos shell tmux
Last synced: 5 months ago
JSON representation
Nix, fish, tmux and neovim for fun people
- Host: GitHub
- URL: https://github.com/justuswilhelm/pufferfish
- Owner: justuswilhelm
- Created: 2013-09-01T17:03:41.000Z (almost 13 years ago)
- Default Branch: main
- Last Pushed: 2025-09-20T09:43:16.000Z (9 months ago)
- Last Synced: 2026-01-13T21:57:56.077Z (5 months ago)
- Topics: dotfiles, fish, git, home-manager, neovim, nix-darwin, nixos, shell, tmux
- Language: Nix
- Homepage: https://justuswilhelm.github.io/pufferfish/
- Size: 4.26 MB
- Stars: 7
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSES/AGPL-3.0-or-later.txt
Awesome Lists containing this project
README
# Pufferfish

Pufferfish gives you useful defaults and configuration files for the following
programs:
- Nix,
- NixOS,
- macOS,
- tmux,
- neovim,
- fish,
- neomutt,
- vdirsyncer,
- radicale,
- borgmatic,
- and many more.
You can install and use Pufferfish on macOS and NixOS. Pufferfish also works on
Debian, but additional installation steps may be necessary.
## Use Pufferfish on macOS
- [Nix](https://nixos.org/download#download-nix), and
- [nix-darwin](https://github.com/LnL7/nix-darwin)
Here's how you can install nix-darwin and Pufferfish from scratch.
1. Install nix on macOS using the [official installer](https://nixos.org/download#download-nix).
2. Clone this repository into your home directory at `$HOME/.dotfiles".
3. Add your machine to the `flake.nix` file in the repository root.
4. Run `darwin-rebuild` on the Nix flake contained in this repository.
Read more about `darwin-rebuild` [here](https://github.com/nix-darwin/nix-darwin?tab=readme-ov-file#getting-started).
Here's how you can clone this repository into the right directory:
```fish
git clone git@github.com:justuswilhelm/pufferfish.git "$HOME/.dotfiles"
```
When you've cloned the repository, run the following to install Pufferfish
with `darwin-rebuild`:
```fish
sudo nix run nix-darwin/master#darwin-rebuild -- switch --flake "$HOME/.dotfiles"
```
### How to add your machine to the flake file
TODO
### How to rebuild Pufferfish
In a fish shell, run the following function:
```fish
rebuild
```
## Use Pufferfish on NixOS
TODO
## Use Pufferfish on Debian
You need to install the following programs to use Pufferfish on Debian:
- [Nix](https://nixos.org/download#download-nix), and
- [home manager](https://nix-community.github.io/home-manager/index.xhtml#sec-install-standalone)
Furthermore, make sure that you've installed the following programs using `apt`:
- sway
- swaylock
- swayidle
Pufferfish installs all other dependencies using `home-manager`.
Here's how to install Pufferfish from scratch:
```fish
git clone git@github.com:justuswilhelm/pufferfish.git "$HOME/.dotfiles"
home-manager --extra-experimental-features flakes --extra-experimental-features nix-command switch --flake $HOME/.dotfiles
```
Here's how to rebuild Pufferfish:
```fish
# In fish run the following function
rebuild
```
## Formatting the code
There is a nix flake in the root directory that installs the `prettier` command. Inside
a `nix develop` shell run the following:
```fish
prettier --check .
```
If you want to format everything, try the following command:
```fish
prettier --write .
```
## How to report a bug
You can file an issue
[here](https://github.com/justuswilhelm/pufferfish/issues/new)
## How to contribute code
I am happy about accepting new contributions into this repository. You can file
a pull request right
[here](https://github.com/justuswilhelm/pufferfish/compare).
The best way to get started is by forking this repository and developing a new
feature or bug fix on your own repository. Then, you can create a pull request
to contribute the code back.
# Credits
- Iosevka (`fonts/`): SIL Open Font License v1.1, refer to `fonts/LICENSE.md`
- 24-bit-color (`bin/24-bit-color`): GPL v2, https://github.com/gnachman/iTerm2/blob/master/LICENSE
- neovim selenized colors (`nvim/colors/selenized.vim`): MIT License, see `nvim/colors/LICENSE.txt`
- iterm2 & alacritty selenized colors (`selenized/terminals/iterm`): MIT License, see `selenized/LICENSE.txt`