小编anl*_*lar的帖子

逗号分隔值的 Bash 补全

我想为逗号分隔的参数列表创建完成规则。例如,我有接收服务器名称列表的命令:

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)

但它至少有两个问题:

  1. 当前值的建议包括其前缀中的所有先前值。 …

bash autocomplete

17
推荐指数
1
解决办法
1528
查看次数

Arch 启动菜单中的 Arch Fallback 是什么?

Arch启动菜单中的“Arch Fallback”究竟是什么?

linux boot arch-linux

16
推荐指数
2
解决办法
2万
查看次数

如果文件不存在,则下载文件列表

如果我有一个由 分隔的 URL 列表\n,是否可以传递任何选项wget来下载所有 URL 并将它们保存到当前目录,但前提是文件不存在?

download options wget

13
推荐指数
2
解决办法
2万
查看次数

使用带有 --noask 选项的钥匙串保存 SSH 密钥密码

我想使用钥匙串来管理 SSH 密钥的密码提示,但它应该 1) 仅在我实际使用密钥时询问它,并且 2) 之后将其保存一段时间。目前我有2个选择:

  1. $ eval `keychain --eval --agents ssh id_rsa` -- 这将始终在启动时要求密码短语,但随后会保存它。
  2. $ eval `keychain --eval --noask --agents ssh id_rsa` - 启动时不会要求任何东西,但每次我使用该密钥时都会要求输入密码。

有什么方法可以结合这些方法的优点吗?

ssh ssh-agent

12
推荐指数
1
解决办法
2700
查看次数

用于安装 GNOME Shell 扩展的命令行工具

是否可以在不使用GNOME Shell 集成浏览器插件的情况下从https://extensions.gnome.org/安装扩展?

我正在寻找一个能够从上述网站搜索和安装扩展的工具,例如:

$ gnome-extensions search <keyword>
$ gnome-extensions install <extension-id>
Run Code Online (Sandbox Code Playgroud)

command-line ubuntu gnome utilities gnome-shell

11
推荐指数
2
解决办法
1万
查看次数

如何在 i3 中定义托盘图标的特定顺序

我正在使用 i3 窗口管理器,我想为托盘图标顺序定义一些规则。默认情况下,它们按应用程序启动时间的顺序排列。有没有办法为他们配置订单?例如:

  1. 显示雷鸟图标;
  2. 然后显示nm-applet;
  3. 之后,显示所有其他图标。

i3 tray

6
推荐指数
1
解决办法
2194
查看次数

带有示例的可用字体列表

我想列出系统上所有已安装的字体并查看它们以出于某种目的选择一种。这怎么可能?是否有程序可以提供某种已安装字体库?

software-rec fonts

5
推荐指数
1
解决办法
1417
查看次数

gajim 闪烁的托盘图标通知

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 球中。

tray gajim

5
推荐指数
1
解决办法
960
查看次数

在一段时间不活动后执行脚本

我正在寻找一种在一段时间不活动和完成该时间段后执行某些脚本的方法。“不活动”是指缺少鼠标和键盘事件。例如我想要:

  1. 在 X 分钟后执行第一个脚本。不活动;

  2. 当该时间段被鼠标或键盘中断时执行第二个脚本。

如果该方法不绑定到 X 系统并且也可以在终端中工作(当 X 未启动时),那将是最好的。

scripting keyboard mouse

5
推荐指数
1
解决办法
2045
查看次数

为 Wine 中的应用程序设置固定屏幕分辨率

例如,我的应用程序(游戏)只有 640x480 的分辨率。现在我有 2 个选项:以窗口模式启动它,大小为 640x480 或启用全屏并填满整个屏幕。

我想要的是在不进入全屏模式的情况下调整应用程序的大小(例如到 1024x768)。

至于现在我已经尝试了两种解决方案:

  1. winecfg. 起初它会以该分辨率启动桌面,但是当我在应用程序中启用全屏时,它会将桌面缩小到 640x480。

  2. 在内部 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)

    同样的问题,当我启用全屏时它会调整窗口大小。

wine x11 resolution

5
推荐指数
1
解决办法
9947
查看次数

为什么这个命令会删除每个包?

我试图让 Windows 程序在 PlayOnLinux 上运行,但在它不起作用后,我使用以下命令删除了 Wine: sudo apt-get remove --purge wine*

我想都没想就同意移除机器上的每个包裹。有人能告诉我为什么它选择每个包而不是所有以字符串“wine”开头的包?

我正在运行 Linux Mint 16

command-line apt linux-mint

4
推荐指数
1
解决办法
933
查看次数