我如何为主文件夹创建一个动态快速列表,将所有书签添加为快速列表(我听说可以通过 libunity 实现)?
答案1
仅供参考 API 的解释Ubuntu 维基
动态快捷列表条目 还可以创建快捷列表并将其附加到启动器。要创建快捷列表 必须先创建根节点作为容器,然后添加子节点 最终结果可能会被打包到启动器中,然后 通过总线传送至 Unity。快速列表的更新也已上线。 我不会描述整个 API,而是使用 quicklist 的示例(以及 下面使用 vala 绑定提供了进度和计数。 需要注意的是,必须调用主循环才能使程序 实际工作。Libunity 需要使用主循环来完成工作 异步。
我还没有见过这样的例子。如果我见过,我会在一小时内把它添加到这里;)
动态快速列表在 Unity 3.8.8-0ubuntu1 之前无法工作,原因是漏洞。
答案2
这是一个小型 shell 脚本,它使用您的所有书签更新您的 Home-Quicklist。无需手动操作。它读取您的书签文件并从中创建菜单项。它还添加了“Root Filemanager”菜单项。
- 将下面列出的脚本复制到一个空文件中,并将其放入您的脚本文件夹中(我们假设它是,
~/bin/
并且您选择的脚本名称是unityhome.bash
)。运行脚本一次以添加条目:
bash ~/bin/unityhome.bash
您也可以选择让 cron 每隔一段时间为您运行该脚本。要将其添加到 cron,请在 shell 中输入以下命令:
crontab -e An editor will open. There add a line like: @reboot /bin/bash/ $HOME/bin/unityhome.bash > /dev/null 2>&1
如果不执行此步骤,则每次更改 nautilus 书签时都必须手动运行脚本才能更新快速列表。
更改仅在您下次登录时或按 Alt+F2 后生效
unity --replace So do that. *Note: Don't run `unity --replace`
在终端中。如果你关闭该终端,Unity 也会随之终止。*
尽情享受并看看gnome-terminal 的类似脚本解析你的 ssh 书签(在 中
~/.ssh/config
)。脚本: ------- 以下是脚本:
#!/bin/bash # tabsize: 4, encoding: utf8 # # © 2011 [email protected]. Use permitted under MIT license: # http://www.opensource.org/licenses/mit-license.php # # CONTRIBUTORS: Chris Druif <[email protected]> # Scott Severance <http://www.scottseverance.us/> # # This script updates the unity quicklist menu for nautilus to
包含用户书签。更新将在 unity 重新启动后生效(下次登录时或通过调用“unity --replace”)。
# location of template and unity bar launchers nautempl="/usr/share/applications/nautilus-home.desktop" target="$HOME/.local/share/applications/nautilus-home.desktop" bookmarks="$HOME/.gtk-bookmarks" # backup if file already exists if [ -e "$target" ]; then echo "Creating backup of: $target." mv -n "$target" "$target.bak" fi # copy template cp "$nautempl" "$target" sed -i "s/\(OnlyShowIn=GNOME;\)/\1Unity;/" "$target" echo "X-Ayatana-Desktop-Shortcuts=" >> $target bmcount=0 while read bmline; do bmcount=$(($bmcount+1)) # number of current bookmark bmname=${bmline#*\ } # name of the bookmark bmpath=${bmline%%\ *} # path the bookmark leads to # deal with bookmarks that have no name if [ "$bmname" = "$bmpath" ]; then bmname=${bmpath##*/} fi # fix spaces in names and paths bmname="$(echo "$bmname" | sed 's/%20/ /g')" bmpath="$(echo "$bmpath" | sed 's/%20/ /g')" # extend shortcut list with current bookmark sed -i
"s/(X-Ayatana-Desktop-Shortcuts=.*)/\1Scg${bmcount};/" "$target" # 写入书签信息 cat - >> "$target" <
[Scg$bmcount Shortcut Group] Name=$bmname Exec=nautilus "$bmpath" OnlyShowIn=Unity EOF done < "$bookmarks" # Add a root file manager entry sed -i "s/\(X-Ayatana-Desktop-Shortcuts=.*\)/\1RootFM;/" "$target" cat - >> "$target" <<EOF [RootFM Shortcut Group] Name=Root Exec=gksudo nautilus OnlyShowIn=Unity EOF exit 0