Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

H1rono/dotfiles

Repository files navigation

dotfiles

my dotfiles

Environments

With Home Manager

  • MacBook Air (Apple M1 Sillicon)
    • OS: macOS Sonoma 14

Without Home Manager

  • MacBook Air (Apple M1 Sillicon)
    • OS: macOS Sonoma 14
  • Raspberry Pi 4B
    • OS: Raspberry Pi OS
  • else
    • OS: Ubuntu Desktop 22.04

Dependencies

Please see manual installation of dependencies to install above tools manually.

Files' descriptions

dotfiles
├── .github
│ ├── dependabot.yml -- Dependabot configuration file
│ └── workflows
│ ├── home-manager.yml -- GitHub Actions to check home-manager build
│ └── update-flake.yml -- GitHub Actions to update flake.lock automatically
├── .gitignore -- .gitignore
├── config -- ~/.config
│ ├── bat
│ │ └── config.conf -- default options of `bat`
│ ├── git
│ │ └── gitmessage.txt -- Git commit template
│ ├── mise
│ │ └── config.toml -- mise global configuration
│ ├── nvim
│ │ └── init.vim -- Neovim startup script
│ ├── sheldon
│ │ └── plugins.toml -- Sheldon plugin information
│ └── starship.toml -- Starship configuration
├── flake.lock -- lockfile of flake.nix
├── flake.nix -- entrypoint of Nix Flakes
├── home.nix -- configuration body of home-manager
├── install.sh -- install script of dotfiles
├── LICENSE -- GPL-3.0 licence
├── nix -- Nix helper functions
│ ├── fetchFlakeInput.nix
│ ├── readFlakeLock.nix
│ └── readInputInfo.nix
├── packages
│ ├── cargo-clean-all.nix -- Nix package file to install cargo-clean-all
│ ├── firge-nerd.nix -- Nix package file to install FirgeNerd Console
│ ├── mise.nix -- Nix package file to install mise
│ └── sheldon.nix -- Nix package file to install Sheldon
├── README.md -- this file
├── rust-toolchain.toml -- information of rust toolchain
├── rye
│ └── config.toml -- rye configuration file
├── tmux.conf -- tmux configuration
├── wezterm.lua -- WezTerm configuration
└── zshrc -- Zsh startup script

This file is used for setting git config --global commit.template. There is my favorite list of gitmoji.

This file is currently used by home-manager (with fenix), to determine what version of rust is to be installed. Its layout follows Overrides - The rustup book #The toolchain file, which is used for per-directory overrides with rustup.

With rustup, same setup with this file is done by running:

# $TOOLCHAIN_CHANNEL corresponds to `channel = ...` in the file
$ rustup default $TOOLCHAIN_CHANNEL
# for each element of `components = [...]` in the file (bound to $COMPONENT)
$ rustup component add $COMPONENT

About install.sh

This script (currently) only makes or updates symbolic links from configuration files in this repository to corresponding ones in the specified directory ($HOME by default), and updates global git configuration.

If you want to make the links into $HOME directory, just run:

$ ./install.sh

If you want to make them into a specific directory, then:

# in absolute:
$ ./install.sh /path/to/dir
# or in relative:
$ ./install.sh ./some/dir

Quick installation

This requires Nix and Home Manager are installed. With these commands, you don't have to follow Manual installation below.

$ nix run nixpkgs#gnused -- -i -e "s/kh/$USER/" /path/to/dotfiles/flake.nix
$ home-manager switch --flake /path/to/dotfiles

warning: this way is only tested in M1 MacBook Air (system aarch64-darwin).

Manual installation of dependencies

Note

LLVM, gh, lazygit, dust, and cargo-clean-all are not included in the commands below. This issue will be fixed soon.

in macOS

with Homebrew:

# install brew
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# install dependencies (zsh may be unnecessary)
$ brew install zsh sheldon starship tmux neovim mise bat zoxide jq fzf
$ brew tap wez/wezterm
$ brew install --cask wez/wezterm/wezterm

see also general operation below.

in Ubuntu(-like) OS

with apt and cargo:

# requirements to complete installation
$ sudo apt install libssl-dev pkg-config build-essential cmake
# install rust (you may need to restart shell)
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# install with apt
$ sudo apt install zsh tmux neovim bat lsd zoxide jq fzf
# install with `cargo install`
$ cargo install sheldon starship mise
# install WezTerm (curl is required)
$ curl -LO https://github.com/wez/wezterm/releases/download/20230408-112425-69ae8472/wezterm-20230408-112425-69ae8472.Ubuntu22.04.deb
$ sudo apt-get install ./wezterm-20230408-112425-69ae8472.Ubuntu22.04.deb
$ rm ./wezterm-20230408-112425-69ae8472.Ubuntu22.04.deb

Warning

Since the commands above to install WezTerm only works in Ubuntu 22.04, please check Linux installation.

see also general operation below.

general operation

This is required after OS-specific operation. To install tpm, run:

$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm

To activate mise, run:

$ /path/to/dotfiles/install.sh # if you haven't run `install.sh`
$ mise trust ~/.config/mise/config.toml
$ mise install

To install FirgeNerd, please follow instructions below.

  • download FirgeNerd_[version].zip file from Releases · yuru7/Firge
  • unzip the zip file
  • install .ttf files with font manager

reference

Article/link(s) about this repo

About

my dotfiles

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

AltStyle によって変換されたページ (->オリジナル) /