Omarchyカスタマイズ & Tips
以下の記事を読んださいに触発されたのと、ミニPCが意外と安くてスペックが良く買えそうだったので、即購入&インストール
インストール後に環境構築した際のメモを残していきます
なかば備忘用のメモ
リンク
Omarchy公式のマニュアル
ホットキーの一覧(上記公式マニュアルより)
設定ファイルの一覧(上記公式マニュアルより)
Hyprlandのディスパッチ一覧
ショートカットキーの設定を行う際の命令を参照する際に使用する
参考記事
Omarchyの哲学・ソフトウェアスタックなどがコンパクトにまとまっている記事
Arch + hyprland環境設定記事
OmarchyはArch+hyprland環境なので、とても参考になる
各アプリの記事
lazygit
Omarchyではlazygitが入っているので(未読)
トラブルシューティング
Bitwardenの導入
デフォルトのパスワードマネージャが1Passwordだが、普段使いはBitwardenなので変更したい場合の方法
Bitwardenのインストール
SUPER + ALT + SPACEでランチャーを立ち上げ、Install -> PackageからBitwardenをインストールする
Pckageを立ち上げると検索状態になるので、bitwardenと入力してインストールすればOK
ショートカットキーの変更
デフォルトではSUPER + /で1Passwordが起動しているため、これをBitwarden起動に差し替える
まず設定ファイルを開く
nvim ~/.config/hypr/bindings.conf
次に、以下の設定値に差し替えればOK
# 以下を削除
# bindd = SUPER, slash, 1Password, exec, uwsm app -- 1Password
# 以下のように差し替える
bindd = SUPER, slash, Bitwarden, exec, uwsm app -- bitwarden-desktop
画面位置の変更
ディスプレイの位置が左右逆になっている場合に変更する方法
これを

こうしたい

まずは位置の確認を行う
hyprctl monitors
以上のコマンドで表示される中で、各画面で以下のように表示されているのが今の位置となる
Monitor DP-1 (ID 1):
1920x1080@60.00000 at 0x0
# ...
Monitor HDMI-A-1 (ID 0):
1920x1080@60.00000 at 1920x0
at Xx0の形式書かれているのが画面の位置となる
この場合、HDMI-A-1を右に配置したいのだが、左になっている
この位置を~/.config/hypr/monitors.confで以下のように切り替えたら良い
nvim ~/.config/hypr/monitors.conf
# 変更前
# preferredのあとのautoを変更する
monitor=DP-1,preferred, auto,auto
monitor=HDMI-A-1,preferred, auto,auto
# 変更後
# 以下のように画面位置を明示的に指定する
monitor=DP-1,preferred, 1920x0,auto
monitor=HDMI-A-1,preferred, 0x0,auto
GUIでモニターの設定変更
以下の記事によればGUIでも変更可能なようだ
wdisplaysを使用するらしい
wdisplaysのインストール
Omarchyのメニューを開いて、Install -> AURからwdisplaysを検索してインストールする
wdisplaysの起動
ターミナルから起動する
wdisplays
設定が終わったらCtrl + cで閉じる
Omarchyメニューの変更
OmarchyメニューのSetup -> Monitorsはデフォルトでは~/.config/hypr/monitors.confをnvimで開くようになっている
このメニューからwdisplaysを起動するには、以下のように設定を変更すれば良い
~/.local/share/omarchy/bin/omarchy-menu
# 変更前
# *Monitors*) open_in_editor ~/.config/hypr/monitors.conf ;;
# 以下の記載に変更
*Monitors*) wdisplays ;;
Bluetooth接続
LinuxでのBluetoothペアリングは難しかった記憶があるが、OmarchyではSetup -> BluetoothからペアリングすればOK
ペアリングのやり方はWindowsやMacと変わらないため省略
メールやカレンダーで開くアプリをGmailやgoogleカレンダーに変更
OmarchyのデフォルトではSUPER + Eでメールクライアントが開くようになっている(デフォルトはHeyが開く)
これを好みのメールクライアントに変える場合は、バインド設定のアドレスを変えてやれば良い
~/.config/hypr/bindings.conf
bindd = SUPER, E, Email, exec, omarchy-launch-webapp "https://mail.google.com/mail/"
ディスプレイをナイトモードに切り替える
ナイトモードとデイライトモードの切り替えができるショートカット
ショートカットキー
SUPER + CTRL + N
メニューで起動する対象のアプリを切り替える
OmarchyはSUPER + ALT + SPACEでメニューが起動する
この各メニューの項目から起動するアプリを切り替えるには、以下の設定ファイルを編集すれば良い
~/.local/share/omarchy/bin/omarchy-menu
中身はただのシェルスクリプトなので、該当のメニューで起動しているアプリを差し替えてやれば良い
ロック画面から戻れない
ロック画面で正しいパスワードをいくら入力しても戻れない現象が起こったので、その時の対処法
tty画面を開く
Ctrl + Alt + F2でtty画面が開ける
rootでログインする
> root
# passwordを入力する
>
ユーザーのロックを解除
該当のユーザーのロックを解除する
faillock --user <ユーザ名> --reset
再びログイン画面に戻ってパスワードを入力
Ctrl + Alt + F1で認証画面に戻る
その後、パスワードを入力してログインできることを確認する
スクリーンセーバーやロック画面の時間を変更
Omarchyのメニューを開いて、Setup -> Config -> Hypridleを開く
どこの設定がどれに紐づくかはコメントで記載したので参考にしてほしい
設定例は以下のように変更したものを示す。
- スクリーンセーバー: 2.5分(デフォルト)
- 画面ロック: 30分
- 画面電源OFF: 40分
~/.config/hypr/hypridle.conf
general {
lock_cmd = omarchy-lock-screen # lock screen and 1password
before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
inhibit_sleep = 3 # wait until screen is locked
}
# スクリーンセーバーの起動時間
listener {
timeout = 150 # 2.5min
on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already)
}
# 画面ロック
listener {
timeout = 1800 # 30min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}
# 画面電源OFF
listener {
timeout = 2400 # 40min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on && brightnessctl -r # screen on when activity is detected
}
ターミナルでのコピペ
地味にハマりポイントだったので念の為メモっておく
| コマンド | |
|---|---|
| コピー |
Ctrl + Shift + C |
| 貼り付け |
Ctrl + Shift + V |
vimium
Ormachyの魅力はほとんどの操作がキーボードだけで完結することにあると思うが、ブラウザ操作はどうしてもマウスに頼らざるを得ない
しかし、ブラウザをキーボードで操作できる神アプリが存在する
その名もvimium
参考記事
タイル操作の矢印キーをvim風に
タイル操作で矢印キーを使う操作があるが、これをvimのhjklで操作したいので変更する
対象は、
- タイルのフォーカス移動
- タイル同士のスワップ
- タイルの表示幅調整
注意点
注意として、デフォルトのキーマップと被るものを先に変更する必要がある
具体的には、jとkが被る
被ってしまうショートカットキーは以下になる
| ショートカット | キーマップ |
|---|---|
| スプリットトグル |
SUPER + J
|
| キーバインド一覧 |
SUPER + K
|
まずキーバインド一覧は、慣れてくると見なくなるので使用頻度は減る
そのため、SUPER+CTRL+Kに変更する
~/.local/share/omarchy/default/hypr/bindings/utilities.conf
# bindd = SUPER, K, Show key bindings, exec, omarchy-menu-keybindings
bindd = SUPER CTRL, K, Show key bindings, exec, omarchy-menu-keybindings
スプリットトグルもタイル間の移動程は使用頻度が高くないため、これもSUPER+CTRL+Jに変更する
~/.local/share/omarchy/default/hypr/bindings/tiling.conf
# bindd = SUPER, J, Toggle split, togglesplit, # dwindle
bindd = SUPER CTRL, J, Toggle split, togglesplit, # dwindle
タイルのフォーカス移動
~/.config/hypr/bindigs.conf
# move tile key mapping
bind = SUPER, h, movefocus, l
bind = SUPER, j, movefocus, d
bind = SUPER, k, movefocus, u
bind = SUPER, l, movefocus, r
タイルのスワップ
~/.config/hypr/bindigs.conf
# Swap actieve window with the one next to it with SUPER + SHIFT + hjkl keys
bindd = SUPER SHIFT, h, Swap the window to the left, swapwindow, l
bindd = SUPER SHIFT, j, Swap the window to the down, swapwindow,d
bindd = SUPER SHIFT, k, Swap the window to the up, swapwindow, u
bindd = SUPER SHIFT, l, Swap the window to the right, swapwindow, r
タイルの表示幅調整
これは以下のリンク先の変更を参考に追加している
~/.config/hypr/bindigs.conf
# change winwow size key mapping
bindd = SUPER ALT, h, Resize the window to the right, resizeactive, -100 0
bindd = SUPER ALT, j, Resize the window to the down, resizeactive, 0 100
bindd = SUPER ALT, k, Resize the window to the up, resizeactive, 0 -100
bindd = SUPER ALT, l, Resize the window to the left, resizeactive, 100 0
翻訳アプリを登録
英語苦手なので翻訳を結構使用するが、
- ブラウザを開く
- 「翻訳」と検索
- 翻訳したい文字列を入力
というフローで翻訳を行っていたため、わりと時間のロスがある
そのため翻訳アプリをショートカットキーで開けるようにしてみた
Google翻訳を設定
特にこだわりはないためGoogle翻訳のページを開けるようにしてみた
アドレスを変えれば他の翻訳サイトでも同様に開けると思う
~/.config/hypr/bindigs.conf
bindd = SUPER SHIFT, T, Google Translate, exec, omarchy-launch-webapp "https://translate.google.co.jp/?hl=ja&sl=en&tl=ja&op=translate"

タイルのフルスクリーン
デフォルトではF11で全画面表示できるが、手元のHHKBではFnキーをおさないとF11が押せないため、使いやすくするためにSUPER+CTRL+Fのキーマップを追加する
~/.config/hypr/bindings.conf
# Fullscreen
bindd = SUPER CTRL, F, fullscreen shotrcut key, fullscreen
検索画面を開けるようにショートカットキーを登録
ちょっとした単語の検索をしたいときなど、SUPER+Bでブラウザ開くまでもない場合用

bindd = SUPER SHIFT, G, Google Search, exec, omarchy-launch-webapp "https://google.com"
Githubをショートカットキーで開けるように変更
~/.config/hypr/bindings.conf
# user-nameを自分の名前に置き換える
bindd = SUPER CTRL, G, Github, exec, omarchy-launch-webapp "https://github.com/<user-name>/"
bashからfishに変更
Omarchyのデフォルトのシェルはbashとなっている
せっかくカスタマイズするので、ずっと憧れていたfishを使ってみようと思う
インストール
まずはfish自体をインストール
yay -S fish
次にデフォルトのシェルをfishに変更する
# fishのインストールディレクトリを調べる
which fish
# 上記の結果でわかったディレクトリを指定する
# 下記のコマンドは実際にインストールされたディレクトリを書いてるが、環境によりさいがあると思うので、`-s`オプション以降の文字列は`which`の結果に変えること
chsh -s /usr/bin/fish
一度ここでパソコンを再起動する
以下のコマンドでバージョン情報がでたらOK
fish --verson
プラグインマネージャ
Oh My Fishを入れてみる
インストールは上記のGithubリポジトリにある以下のコマンドを実行する
curl https://raw.githubusercontent.com/oh-my-fish/oh-my-fish/master/bin/install | fish
インストールの確認
omf --version
プラグインのインストール
omf install <plugin-name>の形式でインストールができる
fishのロゴを出力するプラグインを入れてみる
omf install fish_logo
導入したプラグイン

導入したプラグインをリスト表示
omf list
導入してみたプラグイン
done: 長時間かかるコマンドが完了したときに、自動で通知してくれるプラグイン
fzf: ファイルやディレクトリの検索を早くするプラグイン。ファジー検索によりはやくなるらしい
導入に際しての参考記事
ここからはfish使ってみてのTIPSを書く[随時更新]
hisotry
![行番号]による実行ができない
bashだと、
-
historyで履歴一覧を調べる -
![行番号]で該当の履歴のコマンドを実行する
と言ったことをよく行うが、これができないらしい
回避策はまだ思いついてないが、とりあえずコマンドを入力して↑を押すと関連するコマンドの履歴だけが遡れるので、これを使うといいのかもしれない
# 例えば、以下のように入力した状態で↑を押すと、cd関連のコマンド履歴のみが遡れる
cd
fish関連記事
fishを使っていくのに参考になりそうな記事
MX ERGOの戻るボタン・進むボタンの設定
マウスはMX ERGOを愛用しているが、Bluetooth接続をしたところ、戻るボタンと進むボタンが効かなかったので設定を行う。
ボタンのマッピングの変更
ボタンのマッピングの変更にinput-remapperを使用する
# インストール
sudo yay -S input-remapper
# 常駐させるためサービスとして起動
sudo systemctl enable --now input-remapper
設定のために以下のコマンドを実行
input-remapper-gtk
# root権限でないと起動できない場合は以下
sudo input-remapper-gtk
:::
起動したGUIから、まずは対象のマウス(今回はMX ERGO)を選択

プリセットを選択する

1.Inputを設定する
Addを押してコマンドの名前を入力したら、Recordでボタンを認識させる
2.Outputを設定する
TypeはKey or Macro
Targetはkeyboard
キーマップはKEY_LEFTALT+KEY_LEFTもしくはKEY_LEFTALT+KEY_RIGHT
(なおALTは左でも右でも良い)
3.起動のたびに読み込んでほしいのでautoloadを設定する
4.Applyで適用する

sudoとユーザーのnvim設定を同期
sudoでnvimを開いたときは読み込むプロファイルが異なるので、ユーザーで設定したnvimの内容が適用されない
しかし、できればユーザーで設定した内容をsudoでも適用したい(自分で使うようのメイン機だから他のユーザーも存在しない
一番いいのはsudoの設定ファイルの場所にユーザー設定のシンボリックリンクを置くこと
sudo mkdir -p /root/.config
sudo ln -s ~/.config/nvim /root/.config/nvim
一部の設定が効かない
これで大部分の設定は効くが、システムのクリップボードとの共有がうまくいかない
-- 以下の設定がうまく効かない
-- system clipboard sync yank register
vim.opt.clipboard = "unnamedplus"
編集コマンドとしてsudoeditを使えば回避できるようだ
# こちらでは効かないので
sudo nvim XXX.txt
# sudoeditを使って編集する
sudoedit XXX.txt
もう一つの方法として、rootからユーザーの環境変数が見えるようにする方法がある
AIによるとDBusソケットをrootから見えるようにするために使うようだ
# ファイルを開く
sudo visudo
# ファイル末尾に以下を追加する
Defaults env_keep += "DISPLAY WAYLAND_DISPLAY XAUTHORITY XDG_RUNTIME_DIR"
キーマップで便利なもの[随時更新]
キーマップで便利なものをメモしておく
| コマンド | 概要 |
|---|---|
SUPER + Ctrl + Tab
|
現在フォーカスしているワークスペースとと前回フォーカスしていたワークスペース間を移動する |
Rustの環境を構築
VScodeの設定は以前の環境を持ち回したら良いだけなので、nvimの環境を構築してみる
rustaceanvimの導入
rustaceanvimをいれる
公式のリポジトリにあるように、~/.config/nvim/lua/plugins/rust.luaを作成して以下のように設定を書く
{
'mrcjkb/rustaceanvim',
version = '^6', -- Recommended
lazy = false, -- This plugin is already lazy
}
これであとはnvimを起動すれば自動でインストールされる
rustaceanvimとVScodeと違う点
- VScodeだとホバーででていた方情報やシグネチャについて、neovimではカーソルを該当の変数や関数に移動して
Kを入力すると出てくる - リネームは
<Leader>cr - コードアクションは
<Leader>ca(unused変数を作ってコマンド入力するとどういう機能かわかる)
デバッガの導入
nvim-dap
まずnvim-dapを導入する
~/.config/nvim/lua/plugins/nvim-dap.lua
return {
"mfussenegger/nvim-dap",
}
nvim-dap-ui
次に、nvim-dap-uiを導入する
~/.config/nvim/lua/plugins/dap-ui.lua
return {
{
"rcarriga/nvim-dap-ui",
dependencies = {
"mfussenegger/nvim-dap",
"nvim-neotest/nvim-nio",
},
config = function()
local dap, dapui = require("dap"), require("dapui")
dapui.setup({})
dap.listeners.after.event_initialized["dapui_config"] = function()
dapui.open()
end
dap.listeners.before.event_terminated["dapui_config"] = function()
dapui.close()
end
dap.listeners.before.event_exited["dapui_config"] = function()
dapui.close()
end
vim.keymap.set("n", "<leader>du", function()
dapui.toggle()
end, { desc = "DAP UI Toggle" })
end,
},
}
キーマップの設定
以下の記事を参考にキーマップを設定
ステップオーバー・ステップインなどは押しやすいボタンに変更している
return {
{
"mfussenegger/nvim-dap",
config = function()
vim.api.nvim_set_keymap("n", "<F5>", ":DapContinue<CR>", { silent = true })
vim.api.nvim_set_keymap("n", "<F6>", ":DapStepOver<CR>", { silent = true })
vim.api.nvim_set_keymap("n", "<F7>", ":DapStepInto<CR>", { silent = true })
vim.api.nvim_set_keymap("n", "<F8>", ":DapStepOut<CR>", { silent = true })
vim.api.nvim_set_keymap("n", "<leader>b", ":DapToggleBreakpoint<CR>", { silent = true })
vim.api.nvim_set_keymap(
"n",
"<leader>B",
':lua require("dap").set_breakpoint(nil, nil, vim.fn.input("Breakpoint condition: "))<CR>',
{ silent = true }
)
vim.api.nvim_set_keymap(
"n",
"<leader>lp",
':lua require("dap").set_breakpoint(nil, nil, vim.fn.input("Log point message: "))<CR>',
{ silent = true }
)
vim.api.nvim_set_keymap("n", "<leader>dr", ':lua require("dap").repl.open()<CR>', { silent = true })
vim.api.nvim_set_keymap("n", "<leader>dl", ':lua require("dap").run_last()<CR>', { silent = true })
end,
},
}
実行方法
これで基本的に以下のキーで操作が可能になった(最低限なキーのみ抜粋)
| キー | 概要 |
|---|---|
| F5 | デバッグ実行 |
| F6 | ステップオーバー |
| F7 | ステップイン |
| <Leader>b | ブレークポイントをつける/外す |
| <Leader>du | デバッグUIを開く/閉じる |
参考記事
pythonの例だが、neovimでのデバッグ設定例としてかなり参考になった
ObsidianやVScodeで日本語入力が効かない問題
自前の環境では以下の設定を行ったらうまくいった
必要な環境変数を読み込んでいないから発生していた模様
~/.config/hypr/hyprland.conf
env = XMODIFIERS,@im=fcitx
env = QT_IM_MODULE,fcitx
env = GTK_IM_MODULE,fcitx
参考記事
今回はお世話にならなかったが、今後別原因で問題が発生した際に参考となりそうなので貼っておく
MacのようにEmacs風のキーバインドを設定する
MacではデフォルトでEmacsキーバインドが使える
Control-pで矢印の上とかControl-aで行頭に移動など
Omarchy上で、自分がよく使う一部ではあるが、実現する
対象のキーボード
今回設定対象となるキーボードは、手元で使っているRC1 Keyboard / C1HJ11
キーボードによってキーの配置が異なるため、同じ設定が使えないとは思うが、設定の仕方そのものは参考になると思う
xremapのインストールと設定
Emacs風のキーバインド実現のため、xremapを使用する
まずはxremapのインストールと、xremapへの権限設定を行う
yay -S xremap
# インストールするバイナリをどうするか聞かれたらxrema-hypr-binを選択
# まずuinputがあるかを確認
lsmod | grep uinput
# 上記がない場合、以下のコマンドを実行する
echo uinput | sudo tee /etc/modules-load.d/uinput.conf >/dev/null
# 必要な権限を付与する
echo 'KERNEL=="uinput", GROUP="input", TAG+="uaccess"' | sudo tee /etc/udev/rules.d/99-input.rules
# ユーザーをinputグループに追加する
sudo gpasswd -a "$USER" input
sudo udevadm control --reload
sudo udevadm trigger
# 設定を有効化するためにPCを再起動する
キーバインドを設定
次に、xremapのキーバインド設定を行う
なお、CapsLockキーをF13として設定し、Emacsバインド専用のキーとして割り当てている
~/.config/xremap/config.yml
virtual_modifiers:
- F13
modmap:
- name: "Caps as F13"
device:
only: ["Topre REALFORCE C1H"]
remap:
CapsLock: F13
keymap:
- name: "Emacs-like cursors"
remap:
F13-b: left
F13-f: right
F13-n: down
F13-p: up
F13-a: home
F13-e: end
F13-d: delete
F13-h: backspace
F13-m: enter
F13-k: [Shift-end, C-x]
- name: "Zenkaku/Hankaku to ESC"
remap:
Grave: ESC
なお、全角半角キーをESCにしているのは、HHKBを使っていたときの感覚で間違ってタイプしてしまうのを防ぐため入れている
サービス起動
xremapをサービス起動するために、設定ファイルを作成する
~/.config/systemd/user/xremap.service
[Unit]
Description=Xremap
After=default.target
[Service]
ExecStart=/usr/bin/xremap --mouse --watch %h/.config/xremap/config.yml
Restart=always
StandardOutput=journul
StandardError=journul
[Install]
WantedBy=default.target
あとはxremapをサービスとして起動させればOK
# サービスとして起動
systemctl --user start xremap.service
# サービスの自動起動設定
systemctl --user enable xremap.service
参考記事など
公式のREADME
設定に当たって以下の記事が参考になった
実際のキーマップ調査において参考にしたもの
wevを使って調べたキーコードの、<キーコードの数字> - 8の数に対応するキーが、xremapでのキー名になる
システムのショートカットキーを無効化する
システムのショートカットキーを上書きして、自前の設定を書きたい場合がある
例えば、以下のスクラップでvim風のキーマップでタイル間の移動を行いたい場合に、SUPER+Kがシステムの設定と被っていた
こういった場合は、方法が2種類ある
- システムの
.confファイルを編集する - ユーザー側の
.confで後勝ちさせる
以前のスクラップ記事では1の方法を用いて無効化していたが、今後を見据えると、ユーザー側の設定で後勝ちさせたほうが良い
万一システム側のアップデートでシステムファイルが上書きされると、設定が戻ってしまうので
こういった場合、hyprlandのunbindコマンドを使用すると良い
SUPER + Kを無効化する設定例を示す
~/.config/hypr/bindigs.conf
unbind = SUPER, K