viasite-ansible.zsh

テスト済みのOS: Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, MacOS 14.4

古いテスト結果: Ubuntu 18.04, MacOS 10.12, CentOS 8

viasite-ansible.zsh 1.x、2.xから3.0にアップグレードする方法は こちらを参照してください。

ゼロ知識インストール

UbuntuまたはDebianを使用していて、Ansibleに不慣れな場合は、ターゲットマシンで以下のコマンドを実行してください:

curl https://raw.githubusercontent.com/viasite-ansible/ansible-role-zsh/master/install.sh | bash

このコマンドはpip3、ansibleのインストールと、rootおよび現在のユーザー用にzshを設定します。

MacOSのゼロ知識インストール

必要条件: brew、python。ユーザーのパスワードを要求します。以下のコマンドでansibleをインストールし、現在のユーザーおよびオプションでroot用にzshを設定します:

curl https://raw.githubusercontent.com/viasite-ansible/ansible-role-zsh/master/install-macos.sh | bash

次に、ターミナルアプリケーションの設定を行ってください。

含まれるもの

特徴

  • powerlevel9kテーマのプロンプトセグメントとカラーカスタマイズ
  • デフォルトのカラーはSolarized DarkとPuttyのデフォルトグレー端末でテスト済み
  • ymlからカスタムプロンプト要素を追加
  • ~/.zshrc.local または /etc/zshrc.localを使用したカスタムzsh設定
  • /etc/profile.d スクリプトを読み込む
  • あなたのマシンに役立つプラグインのみをインストールします。例えば、Dockerがない場合、プラグイン docker はインストールされません。

1.5分デモ

1.5分デモ

カラースキーム

カラーデモ

Midnight Commander Solarized Darkスキン

Solarized Darkスキームとmcを使用している場合は、スキンをインストールし、zsh_mc_solarized_skin: yesを設定してください。

Vagrantでのデモインストール

実際のマシンにインストールする前に、役割が機能するかをテストできます。 vagrant upを実行し、その後にvagrant sshを実行して仮想マシンに入ります。

注意: VPS(Digital Oceanなど)やDockerにVagrantをインストールすることはできません。ローカルマシンを使用してください。 ダウンロードして、あなたのOS用のVagrantをインストールしてください。

実際のマシンへのインストール

ゼロ知識インストール: 上記を参照してください。

手動インストール

  1. Ansibleのインストール Ubuntuの場合:
sudo apt update
sudo apt install python3-pip -y
sudo pip3 install ansible
  1. ロールをダウンロードします:
ansible-galaxy install viasite-ansible.zsh --force
  1. プレイブックを書くか、playbook.ymlを使用します:
- hosts: all
  vars:
    zsh_antigen_bundles_extras:
      - nvm
      - joel-porquet/zsh-dircolors-solarized
    zsh_autosuggestions_bind_key: "^U"
  roles:
    - viasite-ansible.zsh
  1. プレイブックをプロビジョニングします:
ansible-playbook -i "localhost," -c local -K playbook.yml

macOS上でrootユーザー用にロールをプロビジョニングしたい場合は、手動でパッケージをインストールする必要があります:

brew install zsh git wget

これにより、ansibleリモートユーザー用にzsh環境がインストールされます。他のユーザーにzshを設定したい場合は、zsh_user変数を定義する必要があります:

プレイブック経由で:

- hosts: all
  roles:
    - { role: viasite-ansible.zsh, zsh_user: otheruser }
    - { role: viasite-ansible.zsh, zsh_user: thirduser }

またはコマンドで:

ansible-playbook -i hosts zsh.yml -e zsh_user=otheruser
  1. fzfをシェル拡張なしでインストールします。バイナリをダウンロードするか、macOS上でbrew install fzfを実行します。

注意: tmux-fzfは使用していませんし、その動作もテストしていません。

マルチユーザー共有インストール

ホストに10人以上のユーザーがいる場合、数十の設定と数千のファイルを管理したくないでしょう。

この場合、単一のzsh設定をデプロイし、すべてのユーザーに含めることができます。

いくつかの制限があります:

  • ユーザーはzsh設定に対して読み取り専用アクセスを持つ
  • ユーザーはグローバルで有効なバンドルを無効にできない
  • キャッシュ書き込み権限が拒否される可能性があるバグ
  • oh-my-zshテーマに関するバグが発生する可能性がある

共有設定をインストールするには、zsh_shared: yesを設定します。 設定は/usr/share/zsh-configにインストールされます。その後、単にユーザーの設定に追加できます。

すべてのユーザーへのインストール

zsh_source_for_all_users: yesを設定します。

source /usr/share/zsh-config/.zshrc

複数のユーザーに対してカスタム設定をプロビジョニングすることはまだ可能です。

設定

~/.zshrcを編集してはいけません! カスタム設定を~/.zshrc.local(ユーザー毎)または/etc/zshrc.local(グローバル)に追加してください。 .zshrc.localはansibleによって触れられることはありません。

ターミナルアプリケーションの設定

  1. powerline fontsをダウンロードし、好みのフォントをインストールします。 スクリーンショットはこちらで確認できます。

  2. カラースキームを設定します。

個人的には、Solarized Darkカラースキーム、iTermでPowerline用のDroid Sans Mono、PuttyでDejaVu Sans Monoを使用しています。

iTerm

プロファイル - テキスト - フォントを変更 - "for Powerline"フォントを選択

プロファイル - カラー - カラープリセット... - Solarized Darkを選択

Putty

設定 - ウィンドウ - 外観 - フォント設定

Putty用Solarized Darkをダウンロードできます。

Gnome Terminal

gnome-terminalには組み込みのSolarized Darkがありますが、背景色スキームとパレットスキームの両方を選択する必要があります。

ホットキー

ホットキーはdefaults/main.ymlzsh_hotkeysで確認できます。

ホットキーのサンプル定義:

- { hotkey: '^r', action: 'fzf-history' }
# バンドルへの依存関係あり
- { hotkey: '`', action: autosuggest-accept, bundle: zsh-users/zsh-autosuggestions }

autosuggest-accept`ホットキーに設定することは便利ですが、Midnight Commanderと競合します(Ctrl+Oサブシェルが壊れる)。

デフォルトのホットキーを置き換えずにカスタムホットキーを追加するには、zsh_hotkeys_extras変数を使用します:

zsh_hotkeys_extras:
  - { hotkey: '^[^[[D', action: backward-word } # alt+left
  - { hotkey: '^[^[[C', action: forward-word } # alt+right
  # 例: <Ctrl+.><Ctrl+,>で前のコマンドの2番目の引数を挿入
  - { hotkey: '^[,', action: copy-earlier-word } # ctrl+,

エイリアス

コマンドのデプロイを簡単にするためにエイリアスを使用できます。 エイリアス設定はホットキー設定とほとんど同じです:

zsh_aliases:
  - { alias: 'dfh', action: 'df -h | grep -v docker' }
# バンドルへの依存関係あり、デフォルトのエイリアスを置き換えない
- zsh_aliases_extra
  - { alias: 'dfh', action: 'df -h | grep -v docker', bundle: }

プラグインのデフォルトホットキー:

  • - 自動提案を受け入れる
  • Ctrl+Z - 現在のアプリケーションをバックグラウンドに移動、再度押すとフォアグラウンドに戻ります
  • Ctrl+G - ブックマークされたディレクトリにジャンプします。ディレクトリ内でmarkを使用してブックマークに追加します
  • Ctrl+R - コマンドの履歴を表示
  • Ctrl+@ - すべてのfzfウィジェットを表示
  • Ctrl+@,C - fzf-change-dir、速く押してください!
  • Ctrl+\ - fzf-change-recent-dir
  • Ctrl+@,G - fzf-change-repository
  • Ctrl+@,F - fzf-edit-files
  • Ctrl+@,. - fzf-edit-dotfiles
  • Ctrl+@,S - fzf-exec-ssh(あなたの~/.ssh/configを使用)
  • Ctrl+@,G,A - fzf-git-add-file
  • Ctrl+@,G,B - fzf-git-checkout-branch
  • Ctrl+@,G,D - fzf-git-delete-branches

バンドルの設定

デフォルトのバンドルはdefaults/main.ymlで確認できます。 デフォルトのバンドルが気に入っていて、追加のバンドルを追加したい場合は、zsh_antigen_bundles_extras変数を使用します(上記のプレイブック例を参照)。 デフォルトの一部のバンドルを削除したい場合は、zsh_antigen_bundles変数を使用する必要があります。

リストのフォーマットはantigenに一致します。以下のすべてのバリエーションが有効です:

- docker # oh-my-zshプラグイン
- zsh-users/zsh-autosuggestions # GitHubからのプラグイン
- zsh-users/[email protected] # 固定バージョンのGitHubからのプラグイン
- ~/projects/zsh/my-plugin --no-local-clone # ローカルディレクトリからのプラグイン

バンドルはロード条件を使用できます。条件には2タイプがあります:

  1. コマンド条件。バンドルにcommandを追加します:
- { name: docker, command: docker }
- name: docker-compose
  command: docker-compose

バンドル dockerdocker-compose は、ターゲットシステムにコマンドが存在する場合のみ設定に追加されます。

  1. when条件。tasksで定義するように任意のansible条件を定義できます:
# zsh >= 4.3.17のためのみロード
- name: zsh-users/zsh-syntax-highlighting
  when: "{{ zsh_version is version_compare('4.3.17', '>=') }}"
# macOS用にのみロード
- { name: brew, when: "{{ ansible_os_family != 'Darwin' }}" }

注意: 条件は"{{ }}"でラップする必要があります。

カスタム設定

zsh_custom_beforeまたはzsh_custom_after変数に任意のコードを追加できます。

  • zsh_custom_before - antigen.zshのインクルード前
  • zsh_custom_after - ~/.zshrc.localのインクルード前

アップグレード

viasite-ansible.zsh v3.0はantigen v2.0を導入し、antigen 1.xとの後方互換性がありません。

スムーズなアップグレードの時間をあまりかけていないため、手動でいくつかのアクションを行う必要があるかもしれません。 ロールをプロビジョニング後にpowerlevel9kプロンプトがロードされない場合は、antigen resetを実行してください。

シェルを再オープンすれば、すべてが完了するはずです。

antigen v1へのダウングレード

Antigen v2は非常に速く(スタートアップに対して最大2倍)、何かがうまくいかなかった場合は、antigen v1にダウングレードできます。 以下のzsh 4.3ユーザー向けの注意を参照してください。

zsh 4.xユーザー向け

Antigen v2はzsh < 5.0では動作しません。zsh 4.xを使用している場合は、プレイブックに以下を追加してください:

zsh_antigen_version: v1.4.1

既知のバグ

su usernameでエラーが発生する場合

antigenの問題を参照してください。 rootとsuユーザーの両方がantigenを使用している場合は、su usernameの代わりにsu - usernameを使用してください。

または、バンドルのエイリアスsuserを使用できます。

さらに、次のコマンドを~/.zshrc.localに追加することで修正を試みることができます:

alias su='su -'

ただし、このエイリアスはsuを使用しているスクリプトを壊す可能性があります。

プロジェクトについて

oh-my-zsh with powerlevel10k theme, fzf and other plugins

インストール
ansible-galaxy install viasite-ansible.zsh
ライセンス
mit
ダウンロード
46.2k
所有者