Как создать динамический быстрый список для домашней папки?

У меня была такая же проблема после переключения моего thinkpad при повторном использовании старого диска. Он все еще помнил старые MAC-адреса. Мне пришлось удалить их вручную в файле /etc/udev/rules.d/70-persistent-net.rules, который исправил проблему для меня.

6
задан 25 September 2011 в 21:37

4 ответа

Вот небольшой скрипт оболочки, который обновляет ваш Home-Quicklist со всеми вашими закладками. Никаких ручных манипуляций. Он читает ваш файл закладок и создает из него элементы меню. Он также добавляет пункт меню «Root Filemanager». Скопируйте сценарий, указанный ниже, в пустой файл и поместите его в свою папку-скрипты (мы предположим, что это ~/bin/, а выбранное вами имя сценария - unityhome.bash). Запустите сценарий один раз, чтобы добавить записи:
bash ~/bin/unityhome.bash
Возможно, вы можете запускать скрипт для cron каждый раз в то время. Чтобы добавить его в cron, введите команду follwing в оболочку:
crontab -e An editor will open. There add a line like:

@reboot /bin/bash/ $HOME/bin/unityhome.bash > /dev/null 2>&1
Если вы не сделаете этого шага, вам придется запускать скрипт вручную каждый раз, когда вы меняете закладки nautilus, если вы хотите обновить quicklist. Изменения вступают в силу только при следующем входе в систему или после Alt + F2
unity --replace So do that. *Note: Don't run `unity --replace`
в терминале. Если вы закроете этот терминал, он убьет его. * Наслаждайтесь и посмотрите на похожий скрипт для gnome-терминала, который анализирует ваши закладки 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
содержит закладки пользователя #. Обновления будут иметь efect после перезапуска единства (либо в # следующем входе в систему, либо путем вызова единства --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" & lt;
[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

1
ответ дан 25 May 2018 в 21:20

Вот небольшой сценарий оболочки, который обновляет ваш Home-Quicklist со всеми вашими закладками. Никаких ручных манипуляций. Он читает ваш файл закладок и создает из него элементы меню. Он также добавляет запись меню «Root Filemanager».

Screenshot of the quicklist in action [/g3]

  1. Скопируйте сценарий, указанный ниже, в пустой файл и поместите его в свои скрипты -folder (мы будем предполагать, что ~/bin/ и имя скрипта вы выбрали unityhome.bash).
  2. Запустите сценарий один раз, чтобы добавить записи:
    bash ~/bin/unityhome.bash
    
  3. Необязательно вы можете запускать скрипт для вас каждый раз в то время. Чтобы добавить его в cron, введите команду follwing в оболочку:
    crontab -e An editor will open. There add a line like:
    
    @reboot /bin/bash/ $HOME/bin/unityhome.bash > /dev/null 2>&1
    
    Если вы не сделаете этого шага, вам придется запускать скрипт вручную каждый раз, когда вы меняете закладки nautilus, если вы хотите обновить quicklist.
  4. Изменения вступают в силу только при следующем входе в систему или после Alt + F2
    unity --replace So do that. *Note: Don't run `unity --replace`
    
    в терминале. Если вы закроете этот терминал, он убьет его. *
  5. Наслаждайтесь и посмотрите на похожий скрипт для 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

содержит закладки пользователя #. Обновления будут иметь efect после перезапуска единства (либо на следующем логине, либо при вызове «единство - заменить»).

# 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 "& lt;
[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

1
ответ дан 4 August 2018 в 19:31

FYI 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 из-за Ubuntu Wiki . [!d3 ]

2
ответ дан 25 May 2018 в 21:20

FYI 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 из-за ошибки .

2
ответ дан 7 August 2018 в 21:32

Другие вопросы по тегам:

Похожие вопросы: