Ubuntu 12.04 में लॉन्चर आइकन एप्लिकेशन मेनू कैसे ताज़ा करें?


10

डेस्कटॉप फ़ाइल को संशोधित करने के बाद /usr/share/applications, मुझे लॉन्चर आइकन एप्लिकेशन मेनू को ताज़ा करना होगा ताकि मेरा संशोधन दिखाई दे। स्पष्टता के लिए, जिस मेनू को संशोधित किया जाना चाहिए, वह वह है जो दाएं क्लिक के साथ दिखाई देता है जब सूचक लॉन्चर के आइकन (स्क्रीन के बाईं ओर आइकन से भरा बड़ा बार) पर होता है।

सबसे अच्छा जवाब एक साधारण कमांड लाइन होगी।

मैं ubuntu-2d का उपयोग नहीं कर रहा हूं और मैं लॉगआउट / लॉगिन नहीं करना चाहता।

मैं कुछ आंशिक समाधान से अवगत हूँ:

  • unity --replace सब कुछ पुनः लोड करता है (खिड़की की सजावट, अधिसूचना क्षेत्र, ...)
  • killall ubuntu-2d-launcher केवल ubuntu-2d है, लेकिन अगर एकता के लिए एक समान एक-लाइन कमांड मौजूद है, तो यह एक अच्छा समाधान होगा।
  • तब लॉग आउट करना वापस काम में भी लॉग इन करता है, लेकिन मैं मेनू को अपडेट करने के लिए अपने सभी सत्रों को खो नहीं सकता।
  • ubuntu 14.04 पर मेरे पास यह मुद्दा नहीं है: "* .desktop" फ़ाइलों में किए गए किसी भी परिवर्तन का सीधा प्रसारण प्रतीत होता है।

कोई सुझाव ? वहाँ एक तरीका है ccsm के लिए धन्यवाद?


हाय @ ओवाब, मेरे पास एक डीस्टॉप फ़ाइल है और मैं .desktop फ़ाइल के अंदर पथ को संपादित करके इसका आइकन बदल देता हूं। क्या स्वीकार किया गया समाधान आप के साथ गया था? unity --replaceकाम करता है? मुझे हर चीज पर भरोसा नहीं है।
Noitidart

Ubuntu 16.04unity --replace में काम करने की पुष्टि की गई लेकिन क्रोम, थंडरबर्ड्स जैसे भारी अनुप्रयोगों को फिर से लोड नहीं किया जाएगा ...
PhatHV

@PHHV: ओह क्षमा करें, यह किसी भी एप्लिकेशन को पुनः लोड नहीं करता है, केवल एकता को पुनः लोड किया जाता है, लेकिन यह डिस्प्ले के कई अलग-अलग पहलुओं का प्रबंधन करता है इसलिए प्रत्येक प्रदर्शित तत्व को ताज़ा किया जाएगा, न कि किसी भी एप्लिकेशन को वास्तव में पुनः लोड किया जाता है।
वाब

जवाबों:


8

सबसे सुरुचिपूर्ण तरीका आइकन को "पुनरारंभ" करना है; लॉन्चर में आइकन को उसकी स्थिति से हटाने के लिए और उसे उसी स्थिति में बदल दें। नीचे दी गई स्क्रिप्ट काम करती है। यह python2 में है, क्योंकि 12.04 डिफ़ॉल्ट रूप से python3 के साथ नहीं आता है। हालाँकि, इसका उपयोग python3 में भी किया जा सकता है, केवल उस स्थिति में शेबंग को बदलें। स्क्रिप्ट उपयोगी भी हो सकती है (बाद में उबंटू संस्करणों पर भी) उदाहरण के लिए तुरंत एक परिवर्तित आइकन लागू करने के लिए।

आप इसका उपयोग स्क्रिप्ट को कॉल करके, संपादित डेस्कटॉप फ़ाइल के साथ एक तर्क के रूप में कर सकते हैं (नीचे और देखें)।

नोट : 12.04 में, यदि एक ताज़ा आइकन चल रहे एप्लिकेशन का प्रतिनिधित्व करता है , तो प्रश्न में दिया गया अनुप्रयोग क्रैश हो जाएगा, जैसा कि इस प्रश्न में वर्णित है , इसलिए यदि आप इसका उपयोग करते हैं, तो सुनिश्चित करें कि अनुप्रयोग चालू नहीं है। 14.04 में, चल रहे एप्लिकेशन के मामले में आइकन बस ताज़ा नहीं होगा।

लिपी

#!/usr/bin/env python

import subprocess
import time
import sys

desktopfile = sys.argv[-1]

def read_currentlauncher():
    # reads the current launcher contents
    get_launcheritems = subprocess.Popen([
        "gsettings", "get", "com.canonical.Unity.Launcher", "favorites"
        ], stdout=subprocess.PIPE)
    return get_launcheritems.communicate()[0].decode("utf-8")

def set_launcher(llist):
    # sets a defined unity launcher list
    current_launcher = str(llist).replace(", ", ",")
    subprocess.Popen([
        "gsettings", "set", "com.canonical.Unity.Launcher", "favorites",
        current_launcher,
        ])

def refresh_icon(desktopfile):
    current_launcher = read_currentlauncher()
    current_launcher_temp = eval(current_launcher)
    item = [item for item in current_launcher_temp if desktopfile in item][0]
    index = current_launcher_temp.index(item)
    current_launcher_temp.pop(index)
    set_launcher(current_launcher_temp)
    time.sleep(2)
    set_launcher(current_launcher)

refresh_icon(desktopfile)

इसका इस्तेमाल कैसे करें

  • ऊपर की स्क्रिप्ट को एक खाली फाइल में कॉपी करें और इसे सुरक्षित करें refresh.py
  • सुविधा कारणों से, इसे निष्पादन योग्य बनाएं
  • आदेश द्वारा आइकन ताज़ा करें:

    /path/to/script/refresh.py name_of_edited_desktopfile (e.g. 'firefox.desktop')
    

यदि आप वास्तव में इसे चिकना बनाना चाहते हैं

  • स्क्रिप्ट को निष्पादन योग्य बनाएं, .pyएक्सटेंशन को हटाएं , इसे सहेजें ~/bin। लॉग आउट / इन करने के बाद, आप इसे कमांड द्वारा चला सकते हैं:

    refresh firefox.desktop (as an example)
    

अंतिम सुगमता के लिए: pythonhosted.org/watchdog
EoghanM
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.