我想为逗号分隔的参数列表创建完成规则。例如,我有接收服务器名称列表的命令:
myscript -s name1,name2,name3
Run Code Online (Sandbox Code Playgroud)
此时我已经设法编写了以下完成:
_myscript () {
local cur prev opts
_get_comp_words_by_ref cur prev
opts='-s'
servers='name1 name2 name3'
if [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
else
case "${prev}" in
-s)
if [[ "$cur" == *,* ]]; then
local realcur prefix
realcur=${cur##*,}
prefix=${cur%,*}
COMPREPLY=( $(compgen -W "${servers}" -P "${prefix}," -- ${realcur}) )
else
COMPREPLY=( $(compgen -W "${servers}" -- ${cur}) )
fi
;;
*)
# do nothing
;;
esac
fi
}
Run Code Online (Sandbox Code Playgroud)
但它至少有两个问题:
Arch启动菜单中的“Arch Fallback”究竟是什么?
如果我有一个由 分隔的 URL 列表\n,是否可以传递任何选项wget来下载所有 URL 并将它们保存到当前目录,但前提是文件不存在?
我想使用钥匙串来管理 SSH 密钥的密码提示,但它应该 1) 仅在我实际使用密钥时询问它,并且 2) 之后将其保存一段时间。目前我有2个选择:
$ eval `keychain --eval --agents ssh id_rsa` -- 这将始终在启动时要求密码短语,但随后会保存它。$ eval `keychain --eval --noask --agents ssh id_rsa` - 启动时不会要求任何东西,但每次我使用该密钥时都会要求输入密码。有什么方法可以结合这些方法的优点吗?
是否可以在不使用GNOME Shell 集成浏览器插件的情况下从https://extensions.gnome.org/安装扩展?
我正在寻找一个能够从上述网站搜索和安装扩展的工具,例如:
$ gnome-extensions search <keyword>
$ gnome-extensions install <extension-id>
Run Code Online (Sandbox Code Playgroud) 我正在使用 i3 窗口管理器,我想为托盘图标顺序定义一些规则。默认情况下,它们按应用程序启动时间的顺序排列。有没有办法为他们配置订单?例如:
我想列出系统上所有已安装的字体并查看它们以出于某种目的选择一种。这怎么可能?是否有程序可以提供某种已安装字体库?
Gajim 有一个(讨厌的)托盘图标通知选项,当您有新消息时,它会闪烁 Gajim 图标。您可以通过 ACE 的trayicon_notification_on_events选项取消此行为。但我想做的是将图标更改为其他内容但不闪烁。那可能吗?
编辑:版本 0.15.1应该已经修复它但没有。
; pwd
/home/****/src/gajim-0.15.1
; grep -ri trayicon_blink *
;
Run Code Online (Sandbox Code Playgroud)
该补丁似乎不包含在源 tar 球中。
我正在寻找一种在一段时间不活动和完成该时间段后执行某些脚本的方法。“不活动”是指缺少鼠标和键盘事件。例如我想要:
在 X 分钟后执行第一个脚本。不活动;
当该时间段被鼠标或键盘中断时执行第二个脚本。
如果该方法不绑定到 X 系统并且也可以在终端中工作(当 X 未启动时),那将是最好的。
例如,我的应用程序(游戏)只有 640x480 的分辨率。现在我有 2 个选项:以窗口模式启动它,大小为 640x480 或启用全屏并填满整个屏幕。
我想要的是在不进入全屏模式的情况下调整应用程序的大小(例如到 1024x768)。
至于现在我已经尝试了两种解决方案:
在winecfg. 起初它会以该分辨率启动桌面,但是当我在应用程序中启用全屏时,它会将桌面缩小到 640x480。
在内部 X 服务器中启动 Wine:
Xephyr -ac -br -noreset -screen 1024x768 :1.0 &
ZEPHYR_PID=$!
sleep 1
DISPLAY=:1.0 wine game.exe
kill $ZEPHYR_PID
Run Code Online (Sandbox Code Playgroud)
同样的问题,当我启用全屏时它会调整窗口大小。
我试图让 Windows 程序在 PlayOnLinux 上运行,但在它不起作用后,我使用以下命令删除了 Wine:
sudo apt-get remove --purge wine*
我想都没想就同意移除机器上的每个包裹。有人能告诉我为什么它选择每个包而不是所有以字符串“wine”开头的包?
我正在运行 Linux Mint 16
command-line ×2
tray ×2
apt ×1
arch-linux ×1
autocomplete ×1
bash ×1
boot ×1
download ×1
fonts ×1
gajim ×1
gnome ×1
gnome-shell ×1
i3 ×1
keyboard ×1
linux ×1
linux-mint ×1
mouse ×1
options ×1
resolution ×1
scripting ×1
software-rec ×1
ssh ×1
ssh-agent ×1
ubuntu ×1
utilities ×1
wget ×1
wine ×1
x11 ×1