👻

自動化:Dockにお気に入りを登録する

2022/03/26に公開

これは何か

新たに環境を用意する場合自作簡易インストールスクリプトを作ったりすると思うのですが、ここではDockの一括設定のために調べたことをメモしました。Ubuntu 20.04を対象にしています。

gsettings

自作の簡易インストールスクリプトにgsettingsコマンドを用いる
gsettings set SCHEMA [:PATH] KEY VALUE

# ----------------------------------------------
# 作業環境の設定
# ----------------------------------------------
gsettings set org.gnome.desktop.calendar show-weekdate true
gsettings set org.gnome.shell favorite-apps "['firefox.desktop', 'org.gnome.Nautilus.desktop', 'grsync.desktop', 'org.gnome.Terminal.desktop', 'menulibre-kcm_cron.desktop', 'gufw.desktop', 'chromium_chromium.desktop', '16468271461.desktop', '16276117093.desktop', '16276115541.desktop', 'org.kde.kdeconnect.kcm.desktop']"
cp -afv バックアップ元/.local/share/applications $HOME/.local/share/
略

schemaの調べ方

dconf watch /でOK。dconf-editorがあると捗る。

$ dconf watch /

/org/gnome/shell/favorite-apps
  ['firefox.desktop', '16447477161.desktop', '++++.desktop', 'org.gnome.Nautilus.desktop', '16468271461.desktop', 'snap-store_ubuntu-software.desktop', '16455142041.desktop', '16276115541.desktop', '16276117093.desktop', 'org.gnome.Terminal.desktop']

/org/gnome/shell/favorite-apps
  ['firefox.desktop', '16447477161.desktop', '++++.desktop', 'org.gnome.Nautilus.desktop', 'grsync.desktop', '16468271461.desktop', 'snap-store_ubuntu-software.desktop', '16455142041.desktop', '16276115541.desktop', '16276117093.desktop', 'org.gnome.Terminal.desktop']

上の場合、

  • PATH: /org/gnome/shell/favorite-apps
  • SCHEMA: org.gnome.shell
  • KEY: favorite-apps
  • VALUE: "['firefox.desktop', '16447477161.desktop', '****.desktop', 'org.gnome.Nautilus.desktop', 'grsync.desktop', '16468271461.desktop', 'snap-store_ubuntu-software.desktop', '16455142041.desktop', '16276115541.desktop', '16276117093.desktop', 'org.gnome.Terminal.desktop']"

補足

.desktopエントリーファイル

フォーマットは脚注[1]を参照。
アイコンは/usr/share/icons/からコピーするかリンクを貼る。

# $HOME/.local/share/applications/
[Desktop Entry]
Type=Application
Name=KDE Connect Settings
GenericName=Connect and sync your devices
Comment=KDE Connect Settings
Icon=/home/username/.local/share/icons/kdeconnect-tray.svg
Exec=kdeconnect-settings
Categories=HardwareSettings;KDE;Qt;Settings;
StartupWMClass=kdeconnect-settings

Dock登録方法

以下の3通りから選択

  • アクティビティ画面から右クリックでお気に入りに追加

  • コマンドライン(これを用いる)

    # 現在の値を確認
    gsettings list-recursively org.gnome.shell
    略
    org.gnome.shell disable-user-extensions false
    org.gnome.shell always-show-log-out true
    org.gnome.shell disable-extension-version-validation false
    org.gnome.shell had-bluetooth-devices-setup false
    org.gnome.shell looking-glass-history @as []
    略
    
    # セット
    gsettings set org.gnome.shell favorite-apps "['firefox.desktop', 'org.gnome.Nautilus.desktop', 'grsync.desktop', 'org.gnome.Terminal.desktop', 'gufw.desktop', 'chromium_chromium.desktop', '16468271461.desktop', '16276117093.desktop', '16276115541.desktop', 'org.kde.kdeconnect.kcm.desktop']"
    
  • GUIユーティリティ

    • MenuLibre
    • alacarte
    • filemanager-actions

xfce4との相違

  • Gnomeの場合
    • $HOME/.local/share/applications/
  • xfce4の場合
    • $HOME/.config/xfce4/panel/

$HOME/.local/share/applications/以下に.desktopファイルを配置する。
ファイル名は任意。
xfce4では$HOME/.config/xfce4/panel/以下にlauncher-n/(nは数字)として配置されている。16455142041.desktopという感じで(おそらく)ランダムな数字が割り当てられている。
GUIユーティリティを用いた場合大抵適切なスキーマがファイル名にされる。

xfce4Gnome両方で使いたい場合

例えばnmcli networking offが含まれる.desktopファイルを探したい場合は

bash
cd $HOME/.config/xfce4/panel/
grep -r -e nmcli ./*

$HOME/.config/xfce4/panel/16455142041.desktop$HOME/.local/share/applications/以下にリンクを貼る。

脚注
  1. 参考:
    Unity: how to add a shell-script to the dock
    Desktop Entry Specification
    Bionic dock customisation ↩︎

Discussion