自动调整 rofi 菜单高度

自动调整 rofi 菜单高度

我想rofi自动调整菜单的高度以适应可用选项的数量。有一个选项-lines,但有了它我只能传递常数。因此,对于每个调用,我被迫执行命令两次 - 计算行数并显示菜单:

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

是否可以告诉rofi将其菜单缩小到可用选项的数量?

答案1

您可以使用-no-fixed-num-lineswith-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命令=(...)替换形式传递给匿名函数。

相关内容