すべてのブックマークをクイックリストとして追加するホームフォルダーの動的クイックリストを作成するにはどうすればよいですか(libunity経由で可能だと聞きました)?
以下は、すべてのブックマークでホームクイックリストを更新する小さなシェルスクリプトです。手動操作はありません。ブックマークファイルを読み取り、そこからメニュー項目を作成します。また、「ルートファイルマネージャー」メニューエントリも追加されます。
- 以下にリストされたスクリプトを空のファイルにコピーして、スクリプトフォルダーに入れます(それは
~/bin/
および選択したスクリプト名はunityhome.bash
)。スクリプトを1回実行して、エントリを追加します。
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
この手順を行わない場合、クイックリストを更新する場合は、nautilusブックマークを変更するたびにスクリプトを手動で実行する必要があります。
変更は、次のログイン時または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 [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
参考までにAPIは buntu Wiki で説明されています
ダイナミッククイックリストエントリ クイックリストを作成して、ランチャーに追加することもできます。クイックリスト を作成するには、まずルートノードをコンテナとして作成し、次に子ノードを追加します 。この最終結果はランチャーにパックされ、 バスでUnityに出荷されます。クイックリストの更新も公開されています。 API全体を説明するのではなく、クイックリスト(および progressおよびcount)の使用例を、valaバインディングを使用して以下に示します。 実際の作業を行うには、プログラムのメインループを呼び出す必要があることに注意することが重要です。 Libunityでは、 asyncを実行できるため、メインループを使用する必要があります。
この例はまだ見ていません。もしそうなら、ここに1時間以内に追加します;)
ダイナミッククイックリストは、統一前は機能しませんでした- バグ のため、3.8.8-0ubuntu1。