Pertanyaan Mengedit gsettings; tambahkan ikon ke peluncur berdasarkan perintah [duplikat]


Pertanyaan ini sudah memiliki jawaban di sini:

Meskipun ada beberapa posting di Internet tentang masalah ini, saya belum menemukan solusi:
tujuan saya adalah menemukan perintah yang menambahkan ikon (file .desktop) ke peluncur Unity dan segera menampilkannya. ketika saya buka dconf-editor (desktop> unity> launcher) dan saya menambahkan item ke daftar favorit, itu menunjukkan sekaligus di peluncur, jadi ide saya adalah bahwa itu harus mungkin untuk melakukan hal yang sama dengan perintah. Solusi yang saya temukan sejauh ini di Internet tidak melakukan pekerjaan itu.

Saya harus melakukannya dengan perintah, untuk digunakan dalam editor daftar cepat yang sedang saya kerjakan.

Anda akan membuat seseorang luar biasa bahagia jika Anda bisa membantu


9
2018-06-20 13:36


asal




Jawaban:


Anda dapat bertindak di dconf juga dengan alat gsettings.

gsettings set com.canonical.Unity.Launcher favorites "$(gsettings get com.canonical.Unity.Launcher favorites | sed "s/, *'yourapp' *//g" | sed "s/'yourapp' *, *//g" | sed -e "s/]$/, 'yourapp']/")"

12
2018-06-20 14:17



sempurna, benar-benar sempurna, terima kasih !! - Jacob Vlijm
@ Jakob, @jasmines Ini tidak berfungsi di a chroot lingkungan Hidup. gsettings kata dua kali ** (process:10439): WARNING **: The connection is closed, tetapi tidak mengubah nilai (dapatkan masih mengembalikan yang lama). Ada petunjuk tentang ini? Bukankah nilai ini disimpan dalam file teks biasa di suatu tempat? - Didier Trosset
@Didier Trosset, Anda tidak dapat menjalankan gsettings sebagai root - itu harus dijalankan sebagai userid Anda.
@Pete Howell: Mengapa tidak? Bekerja dengan sempurna di mesin saya. - WitchCraft


Jawaban yang diterima baik-baik saja, tetapi rumit karena penggunaan sed dan banyak urutan pelarian. Solusi pythonic di bawah ini jauh lebih bersih, dan memungkinkan hanya menentukan apa .desktop file yang ingin Anda tambahkan, dan secara opsional Anda dapat menentukan posisi pada peluncur.

Sebagai contoh,

python launcher_append_item.py sakura.desktop 3  

akan menempatkan sakura sebagai ikon ke-4 (karena indeks daftar mulai dengan 0). Berlari dengan sederhana

python launcher_append_item.py sakura.desktop  

akan menambahkan ikon ke daftar.

Untuk pemikiran lebih lanjut, seseorang bahkan dapat menambahkan opsi untuk mengganti item tertentu pada peluncur dengan beberapa item lain. Tapi itu latihan untuk kontemplasi masa depan :)

Kode sumber

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gio,Gtk
import dbus
import sys

def gsettings_get(schema,path,key):
    if path is None:
        gsettings = Gio.Settings.new(schema)
    else:
        gsettings = Gio.Settings.new_with_path(schema,path)
    return gsettings.get_value(key)

def gsettings_set(schema,path,key,value):
    if path is None:
        gsettings = Gio.Settings.new(schema)
    else:
        gsettings = Gio.Settings.new_with_path(schema,path)
    return gsettings.set_strv(key,value)


current_list = list(gsettings_get('com.canonical.Unity.Launcher',None,'favorites'))

if sys.argv[2]:
   current_list.insert(int(sys.argv[2]),'application://' + sys.argv[1])
else:
   current_list.append(  'application://' + sys.argv[1]  )

gsettings_set( 'com.canonical.Unity.Launcher', None, 'favorites',current_list  )

2
2017-07-23 07:53



Terima kasih banyak! Saya menyadari pertanyaannya adalah kesalahan yang saya jawab kemudian. - Jacob Vlijm