rofiメニュー高さ自動調整

rofiメニュー高さ自動調整

rofi利用可能なオプションの数に合わせてメニューの高さを自動的に調整したいと思います。オプションがありますが、-linesこのオプションでは定数のみを渡すことができます。したがって、呼び出すたびにコマンドを2回実行する必要があります。行数を数えてメニューを表示します。

#!/usr/bin/sh
lines=$(my_command | wc -l)
my_command | rofi -dmenu -lines "$lines"

rofiメニューを利用可能なオプションの数に絞り込むように指示できますか?

ベストアンサー1

withを最大行数として使用して、-no-fixed-num-lines選択したい項目の数に合わせてサイズを変更できます。-lines <as-many-as-would-fit-on-your-screen>rofi

my_command | rofi -location 2 -lines 45 -yoffset 30 -dmenu -no-fixed-num-lines

あるいは、一時ファイルにコマンド出力を保存することもできます。

#! /bin/zsh -
function {
  rofi -dmenu -lines $(( $(wc -l < $1) )) -input $1
} =(my_command)

ここで使用されるzshコマンド置換形式=(...)は、匿名関数に渡されます。

おすすめ記事