Saya telah menulis skrip instalasi yang mengotomatiskan proses instalasi saya. Setelah itu saya ingin mengatur ulang/menambah/menghapus ikon ke peluncur kesatuan.
Menggunakan dconf watch /
Saya dapat melihat output saat saya menyusun ulang ikon. Apakah ada cara baris perintah untuk melakukan ini – mungkin dengan gsettings
?
Jawaban yang Diterima:
Pengantar
Skrip sederhana di bawah ini memungkinkan pengambilan file sebagai argumen dan menyetel peluncur agar memiliki pintasan apa pun ke program yang muncul di file (satu per baris).
Ide dasarnya adalah bahwa ikon peluncur sebenarnya adalah tautan ke .desktop
file (di mana pun mereka muncul), dan metode kanonik untuk mengatur item peluncur adalah dengan menjalankan perintah berikut:
gsettings set com.canonical.Unity.Launcher favorites "[ 'item1.desktop' , 'item2.desktop' , . . . 'item3.desktop; ]"
Ini bisa menjadi membosankan jika Anda ingin menambahkan banyak item dan mengutip bisa menjadi menyusahkan. Seseorang selalu dapat membuka program yang diinginkan dan klik kanan pada ikon untuk menjalankan opsi "Kunci ke peluncur", tetapi itu juga tidak praktis ketika Anda berurusan dengan sejumlah besar item.
Pendekatan yang diambil di sini adalah dengan hanya membaca file, dengan 1 kali per baris, membangun teks perintah, dan menjalankannya. Ini tidak berbeda dengan menjalankan gsettings set
perintah di atas, kecuali bahwa kerja keras dilakukan untuk Anda.
Penggunaan:
Untuk menjalankan skrip , simpan ke file, buat agar dapat dieksekusi dengan chmod +x /path/to/script
dan jalankan sebagai
python /path/to/script /path/to/file
File input harus berisi path lengkap ke item yang ingin Anda tambahkan ke peluncur, seperti /usr/share/applications/firefox.desktop
, tapi tidak perlu , sebaris dengan firefox.desktop
juga oke.
Demo
Sebelum menjalankan skrip
Setelah menjalankan skrip
Perhatikan bahwa urutannya persis sama dengan entri yang muncul di file input
Sumber Skrip
#!/usr/bin/env python
# Author: Serg Kolo
# Date: April 22, 2016
# Purpose: programmatically set Unity launcher items
# by reading a file
# Written for: http://askubuntu.com/q/760895/295286
# Tested on: Ubuntu 14.04 LTS
import sys
import subprocess
command="""gsettings set com.canonical.Unity.Launcher favorites """
def run_command(cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
output = p.stdout.read().strip()
return output
items=""
with open(sys.argv[1]) as file:
for line in file:
temp = "'" + line.strip().split('/')[-1] + "'"
items = ",".join([items,temp])
items = '"[ ' + items[1:] + ' ]"'
print run_command(command + " " + items)