This repository contains my personal dotfiles - a collection of shell configurations, tools, applications, and their settings. It's designed to provide a reproducible environment when moving between machines and to maintain a history of my machine's configuration.
- Shell configurations (Fish, Zsh)
- Nix-based package management
- Reproducible environment setup
- macOS and Linux support
- SKK (Simple Kana to Kanji conversion) dictionary management
- Simplicity: The codebase is kept small to ensure effective management and maintainability, reducing maintenance costs.
- Portability: The configuration is portable and can be used across different machines, with special attention given to ease of use in Docker containers.
- Minimalism: Only carefully selected packages are used to minimize dependencies.
Warning
When deploying, files in the $HOME
and ~/.config
directories will be overwritten. Please back up your important files before proceeding to prevent data loss.
nix run github:s3igo/dotfiles <host_name> <user_name>
-
Clone the repository:
nix run github:s3igo/dotfiles#clone
-
Deploy the configuration:
nix run ~/.dotfiles#deploy
To update and upgrade flake inputs, run:
nix flake update --commit-lock-file
The following commands are provided in the default devShell to help manage your environment:
Available commands:
## Development
, fmt : Format code with treefmt
, preview:rio : Preview rio config
, preview:zellij : Preview zellij config
## IME
, cleanup-skk-dicts : Remove installed SKK dictionaries
, install-skk-dicts : Install SKK dictionaries
## System
, deploy : Deploy system configuration
, versions : Show system profile version differences
, wipe-history : Clear profile history for system and home-manager
home/
: Houses configuration files for various tools and applicationsmodules/
: Contains Nix modules that define system-wide configurationspackages/
: Hosts custom Nix packages specific to this setupneovim-config/
: Standalone Neovim configuration (available as a separate flake atgithub:s3igo/dotfiles?dir=neovim-config
)
This project is licensed under the MIT License - see the LICENSE for details.