Как я могу создать динамический быстрый список для домашней папки, который добавляет все закладки в виде быстрых списков (я слышал, что это возможно с помощью libunity)?
К вашему сведению API описан в Ubuntu Wiki
Dynamic Quicklist entries Quicklists may also be created and appended to the launcher. To create a quicklist a root node must first be created as a container, and then child nodes are added to it. This final result may be packed into the launcher which is then shipped over the bus to Unity. Updates to the quicklist are also live. Rather than describe the entire API, an example of using quicklist (as well as progress and count) is provided below using the vala bindings. It is important to note that the main loop must be invoked for the program to actual work. Libunity requires the usage of the main loop as work may be done async.
Я еще не видел пример этого. Если я это сделаю, я добавлю его сюда в течение часа;)
Динамические быстрые списки НЕ работали до единства - 3.8.8-0ubuntu1 из-за ошибки .
Вот небольшой сценарий оболочки, который обновляет ваш Home-Quicklist всеми вашими закладками. Никаких ручных манипуляций. Он читает ваш файл закладок и создает пункты меню из него. Также добавлен пункт меню «Root Filemanager».
- Скопируйте приведенный ниже скрипт в пустой файл и поместите его в папку скриптов (предположим, что это
~/bin/
и выбранное вами имя скрипта).unityhome.bash
).Запустите скрипт один раз, чтобы добавить записи:
bash ~/bin/unityhome.bash
При желании вы можете периодически запускать скрипт для вас cron. Чтобы добавить его в cron, введите следующую команду в оболочку:
crontab -e An editor will open. There add a line like: @reboot /bin/bash/ $HOME/bin/unityhome.bash > /dev/null 2>&1
Если вы не выполните этот шаг, вам придется запускать сценарий вручную каждый раз, когда вы меняете закладки наутилуса, если Вы хотите обновить список обновлений.
Изменения вступают в силу только при следующем входе в систему или после нажатия Alt + F2
unity --replace So do that. *Note: Don't run `unity --replace`
в терминале. Если вы закроете этот терминал, он убьет с ним единство. *
Наслаждайтесь и посмотрите на аналогичный скрипт для gnome-terminal , который анализирует ваши ssh-закладки (в
~/.ssh/config
).Скрипт: ------- Вот скрипт:
#!/bin/bash # tabsize: 4, encoding: utf8 # # © 2011 con-f-use@gmx.net. Use permitted under MIT license: # http://www.opensource.org/licenses/mit-license.php # # CONTRIBUTORS: Chris Druif <cyber.druif@gmail.com> # 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" <
blockquote>[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
Оригинальный ответ - Написано con-f-use