2026年 6月 第二週

第三週が既に初まってしまいましが…

今回は技術的な小ネタonlyです。

技術的な小ネタ

swayなLinuxディストリで発表する時の画面出力について

swayなLinuxディストリでプロジェクター等に接続して発表しようとする場合では、 Windowsのように気軽にミラー、マルチ等の切り換えの設定ができません(それ用のユーティリティソフトウェアを使用している場合を除く)。

デフォルトでは外部モニターが接続されたものとして、新たなワークスペースが割り当てられるため、そのワークスペースを見ながら(要するに大きなスクリーンを見ながらの)発表資料の調整が必要になり中々辛いです。

そこで以下のように画面出力監視デーモンである、kanshiの設定にmirroring(3個目の設定)を追加しました。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
profile lab {
    output eDP-1 disable
    output "Dell Inc. DELL P2422H CBJFBR3"
}

profile home {
    output eDP-1 disable
    output "Iiyama North America PL2493H 1187723012674"
}

profile mirroring {
    output eDP-1 enable position 0,0
    output "*"  enable position 0,0
}

profile default {
    output eDP-1 enable
}

この設定は、3個目にmirroringを置いているのがミソで、1個目,2個目はそれぞれDell,Iiyamaのモニタに接続した時の設定で、一番下はモニターを接続しなかった場合の設定なので、1,2で日常的に接続するモニターに引っかからなかった場合にmirroringに引っかかって目的通りに機能し、何ならモニターがない場合では、一番下の設定が適用されるようになっています。

config.lib.file.mkOutOfStoreSymlinkとNeovimについて(まだ、unstableでしか発生しない問題なはず)

Neovimのconfigを$HOME/.config/nvim以下にシンボリックリンクを自動的に貼るために、以下のようにhome-managerの設定を書いていました。

1
2
3
4
home.file.".config/nvim" = {
  source = config.lib.file.mkOutOfStoreSymlink nvimConfigPath;
  recursive = true;
}

しかし、ある時からこの設定のビルドが通らなくなってしまいました。

同様の症状は、フォーラムに報告されていました。

Neovim: Error installing file outside $HOME

どうやら、以下の設定が必要だそうです。

1
programs.neovim.sideloadInitLua = true;

実際、Home Manager opttion searchでunstableとしてprograms.neovim を調べてみると以下のような項目がありました。

Enable to avoid writing the content of {var}initLua to the default location {file}$XDG_CONFIG_HOME/nvim/init.lua and load it through neovim wrapper arguments instead. This is useful if you want to manage your own {file}init.lua imperatively.

最後の行からすると、確かにそうなっていそうです。

実際に有効化するとビルドできるようになりました。

branchを切る時の元のbranchを間違えた時

  • 現状: hogeからfugaを生やしてしまった
1
2
3
main ── A ── B
              └── hoge ── C ── D (hogeブランチ)
                               └── fuga1 ── fuga2 (fugaブランチ)
  • ゴール: mainから直接fugaが生えているようにしたい。
1
2
3
main ── A ── B
              ├── hoge ── C ── D   (hogeブランチ)
              └── fuga1' ── fuga2' (fugaブランチ)

以下のコマンドで修正する

1
2
3
4
5
# 1: fugaブランチに切り換える
git checkout fuga 

# 2: hogeから生えたfugaコミットたちを、mainの先端に移植
git rebase --onto main hoge fuga
CC BY
Hugo で構築されています。
テーマ StackJimmy によって設計されています。