Dotfiles

English / Japanese(日本語)

Dotfiles logo image

GitHub code size in bytes GitHub repo size Tokei total line GitHub Created At GitHub last commit GitHub commit activity GitHub License GitHub Release GitHub Repo stars

Dotfiles for Linux, macOS, and Termux

🎉 ようこそ

わたしの Dotfiles へようこそ.数多くのプロジェクトの中から見つけてくれてありがとうございます!
このリポジトリを利用することで,直感的なターミナル環境を簡単に構築できます.高速に起動・動作する Go言語 と Rust 製のコマンドラインツールを中心に構成しています.何か一つでも新しい知識や考え方との出会いになれば幸甚です.

irichu dotfiles main screenshot

このDotfilesリポジトリの内容は、GitHub Pagesでもご覧いただけます。

Linux

ubuntu screenshot

Android Termux

Android smartphone screenshot

Android tablet screenshot

WSL2

wsl_zsh_nvim_startuptime

🚀 インストール方法

1. ダウンロードとインストール

curl, wget, git のいずれかでインストールできます

curl -sL https://raw.githubusercontent.com/irichu/dotfiles/main/install.sh | bash
wget -qO- https://raw.githubusercontent.com/irichu/dotfiles/main/install.sh | bash
git clone --depth=1 https://github.com/irichu/dotfiles.git && cd dotfiles && ./install.sh

2. パッケージの一括インストール

[!IMPORTANT] ・Linux(Ubuntu/Fedora/Arch Linux)またはmacOSでは --brew による自動構築が可能です
・Ubuntuでは --apt または --snap で高速なインストールが可能です
・Termuxでは --pkg によるセットアップが可能です

[!NOTE] LinuxまたはmacOSでは sudo コマンドが使える必要があります
--brewではHomebrew本体をインストールするために利用します
--apt, --snapの場合もパッケージ管理のため使用します

利用するパッケージマネージャーに応じて以下のコマンドで一括インストールを実施します
dots install [--apt|--brew|--snap|--pkg]
具体的には [--apt|--brew|--snap|--pkg] の部分を置き換えて実行します

LinuxまたはmacOS環境にて,brewでセットアップする場合は以下を実行します

dots install --brew

Termux にて pkg でセットアップする場合は以下の通りです

dots install --pkg

[!NOTE] dotsコマンドが見つからない場合は
以下のコマンドを実行して ~/.local/bin へのパスを通すようにしてみてください もしくは一括インストールが完了するまでは直接 ~/.local/bin/dots で実行してください

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

3. スタート

以下のコマンドで設定を読み込みます

exec -l $(which zsh)

[!NOTE] SSH接続のように,ログインシェルの場合はTmuxが自動起動します.
Tmuxサーバーがすでに起動している場合は,セッション一覧から接続するセッションを選択できます.

✅ サポートOS

[!WARNING] Google Playストア版のTermuxは一部のコマンドなどが正常に動作しないことがあるようです.
F-Droidからインストールすることが推奨されています

✨ 特徴

📗 基本コマンド

コマンドのヘルプと使用できるコマンドを表示します

dots --help

ターミナルウィンドウの背景透過度を取得/設定します

# get current opacity
dots opacity
# set current opacity
dots set-theme

現在のカラーテーマを取得します:

dots theme

指定のカラーテーマに設定します:

dots set-theme <NUMBER|NAME>

# Example
dots set-theme 4                 # Set by number
dots set-theme "developer-mono"  # Set by name

利用可能なテーマ:

1. developer

Image

2. developer-textcolored

Image

3. developer-colorful

Image

4. developer-mono

Image

5. dark-turquoise

Image

6. dark-turquoise-textcolored

Image

7. dark-turquoise-colorful

Image

8. dark-turquoise-mono

Image

9. dark-orange

Image

10. dark-orange-textcolored

Image

11. dark-orange-colorful

Image

12. dark-orange-mono

Image

13. dark-skyblue

Image

14. dark-skyblue-textcolored

Image

15. dark-skyblue-colorful

Image

16. dark-skyblue-mono

Image

現在の starship テーマを表示します:

dots starship

指定した starship テーマを設定します:

dots set-starship simple   # oneline
dots set-starship default  # multiline

バックアップを作成します:

# $XDG_CONFIG_HOME ディレクトリのバックアップコピーを $XDG_DATA_HOME/dotfiles/backup に作成します
dots backup

データを整理(削除)します:

# remove dotfiles cache
dots clean

# remove cache + dotfiles backup directories
dots clean backup

# remove cache + config directories
dots clean config

# remove cache + backup + config
dots clean all

パッケージマネージャーごとにインストールする対象のパッケージ一覧を表示します

dots list [--apt|--brew|--snap|--pkg]

個別パッケージのインストールを実行します

dots install <package_name>
ヘルプ表示のイメージ
help

🖥️ 個別インストール可能なパッケージの例

The following apps can be installed individually from the dots install <package_name> command

>_ CLI/TUI アプリ

パッケージ名 説明
docker 追加のaptリポジトリからDockerをインストールします
fnm 最新版のFNM(Fast Node Manager)と最新版LTSのNode.jsをインストールします
fzf fzf(fuzzy finder)をgithubからインストールします
lazydocker LazyDockerをインストールします
lazygit LazyGitをインストールします
lazyvim LazyVimをインストールします
neovim NeovimとLazyVimをインストールします
starship starship.rsをインストールします

🖥️ GUI アプリ

パッケージ名 説明
copyq CopyQをインストールします
rustdesk Ubuntu Desktop向けにRustDeskをインストールします
zed Zedエディターをインストールします

🪴 その他

パッケージ名 説明
hackgen HackGenフォント(Hack+源柔ゴシックの合成フォント) NerdFont対応版 をインストールします

🍺 Brewパッケージ

dots install --brewコマンドでインストールする主なパッケージは次のとおりです

macOS cask

パッケージ名 説明
alacritty 高速でGPU対応のターミナルエミュレータ。
clipy 履歴機能付きのmacOS用クリップボードマネージャ。
docker コンテナの開発・配布・実行を行うためのプラットフォーム。
flameshot 高機能で使いやすいスクリーンショットツール。
ghostty macOS向けのミニマルでGPUベースのターミナルエミュレータ。
rectangle キーボード操作でウィンドウを整理できるウィンドウ管理アプリ。
visual-studio-code 軽量で高機能なソースコードエディタ。

共通(Linux/macOS)

パッケージ名 説明
bat cat の代替ツール
bottom TUI のシステムリソースモニター
broot 対話型のディレクトリナビゲーションツール
cloc プロジェクト内のコード行数をカウント
duf df の代替ツール(視覚的に見やすい)
dust du の代替ツール(直感的な出力)
eza ls の代替ツール(モダンな機能付き)
fastfetch 高速なシステム情報取得ツール
fd find の代替ツール(シンプルな構文)
fnm Node.js のバージョン管理ができる高速 Node マネージャー
fzf コマンドライン用のファジーファインダー
gh GitHub の操作ができる CLI ツール
git-delta Git や diff の出力をシンタックスハイライト付きで表示
gping グラフィカルな ping ツール(リアルタイム可視化)
gum インタラクティブな UI を可能とするシェルスクリプト拡張
jq コマンドライン用の JSON プロセッサ
just Make に似た便利なコマンドランナー
lazygit シンプルな TUI の Git クライアント
ripgrep grep の代替ツール(超高速検索)
ruff 高速な Python 用リンター&フォーマッター
sd シンプルで高速なsedの代替ツール
starship 最小限でカスタマイズ可能なシェルプロンプト
tmux 複数のペインを管理できるターミナルマルチプレクサ
tokei コード統計ツール(ファイルや行数をカウント)
typst モダンなマークアップベースの組版システム
uv 仮想環境をシームレスに管理できる Python バージョンマネージャー
yazi ranger にインスパイアされた TUI ファイルマネージャー
zellij ワークスペース機能を備えた Rust 製ターミナルマルチプレクサ
zoxide cd の代替ツール(スマートなディレクトリ移動)
zsh 高機能でカスタマイズ性の高いシェル
zsh-autosuggestions fish のようなコマンド補完機能(zsh 用)
zsh-completions zsh コマンドの補完機能を追加
zsh-syntax-highlighting zsh のコマンドライン用シンタックスハイライト

📓 インストール対象アプリ

パッケージマネージャごとにインストールするアプリは次のファイルを参照ください

🐳 Docker環境でのお試し

以下のコマンドでコンテナを構築,お試しできます.

cd ~/.local/share/dotfiles-main

docker compose で実行します.

docker compose up -d --build
docker compose exec dotfiles zsh

もしくは docker コマンドで作成・実行します.

docker build -t dotfiles-img .
docker run -it -d --name dotfiles-con dotfiles-img
docker exec -it dotfiles-con /bin/zsh

コンテナでaptでインストールする場合は以下を実行します.

dots install --apt

Homebrew をインストールして進める場合は以下のコマンドを実行します.

dots install --brew

🖼️ ギャラリー

Neovim

LazyVim tokyonight.nvim style=night
LazyVim

Tmux

Tmux split window
Tmux split window
Tmux synchronize-panes mode
Tmux synchronize-panes mode

eza, lazygit, yazi

eza tree (eza -l -T)
eza tree
lazygit
lazygit
yazi
yazi

⚡ エイリアスコマンド

Tmux

セッションの作成

t # tmux new

セッションへの再接続

ta # tmux attach

セッション一覧の表示

tls # tmux ls

Tmuxサーバーの終了

tks # tmux kill-server

Show tmux pane id

Show tmux pane id

tid # tmux display -pt "${TMUX_PANE:?}" "#{pane_index}"

Tmux設定の再読み込み

.tmux.confを読み込みます

.t # source ~/.config/tmux/.tmux.conf

Neovim

検索して開く

fd + fzf で検索したファイルを開きます

v # fd --type f --hidden --exclude .git | fzf-tmux -p | xargs -o nvim

⌨️ よく使うキーマップ

Zsh

Emacsモード bindkey -e に加えていくつかのバインドを追加しています.

キー 実行される操作
Ctrl+(/) undo / redo
Ctrl+(/) backward-word / forward-word

Tmux

プレフィックスキー

[!NOTE] プレフィックスキーは Ctrl + \ に設定しています.

キー 説明
I tpmでプラグインをインストールします
U tmuxプラグインのアップデートをします
Ctrl+s tmux環境を保存します
Ctrl+r tmux環境を復元します
d tmuxセッションからデタッチします
e ペインの同期モードON/OFFを切り替えます

[!TIP] Tmux のセッションをネストしている場合(Tmux の中でさらに Tmux を開いている場合),
プレフィックスキー(例: Ctrl-b)をネストの数だけ押すと, 最も内側のセッションにプレフィックスキーが送信されます.

例えば,Tmux を 2段階 ネストしている場合: 最初の Ctrl-\ は最も外側のセッションに処理されます. 2回目の Ctrl-\ で 1つ内側のセッションへ送信されます. 3回目の Ctrl-\ で最も内側のセッションへ送信されます. さらに,Ctrl-\ を押すと,そのキー入力がセッション内のシェルに送信されます.

tmux プラグイン

デフォルトでインストールされる tmux プラグインは以下のとおりです.

Alt キーとの組み合わせによるショートカット

window と pane の操作を可能としています.

キー 説明 プレフィックスキーでの操作
Alt+(/) ウィンドウを作成/削除します c/&
Alt+(/) 前・後のウィンドウに切り替えます p/n
Alt+[1-9] 番号1-9のウィンドウに切り替えます [1-9]
Alt+- ウィンドウを水平に分割します -
Alt+\\ ウィンドウを垂直に分割します \\
Alt+[hjkl] 左/下/上/右のペインにフォーカスを切り替えます ///

Alt + Shift キーとの組み合わせによるショートカット

主に session の操作を可能としています.

キー 説明 プレフィックスキーでの操作
Alt+Shift+(/) セッションを作成/削除します  
Alt+Shift+(/) 前・後のセッションに切り替えます (/)

Neovim

LazyVimのキーマップ をベースに,いくつかのキーバインドを追加しています.

モード キー 説明
n,v Ctrl+(/) 前のパラグラフの終端,後のパラグラフの先頭にカーソルを移動します
n,v,i Ctrl+(/) 前の単語/次の単語にカーソルを移動します
i Ctrl+/ Undo (操作を1回戻します)
i Ctrl+r Redo (操作を1回やり直します)

インサートモードで以下の Emacs ライクなショートカットを設定しています.詳細はこちらを参照ください.

📜 ライセンス

このプロジェクトは MIT License に基づいてライセンスされています.