Приложение всегда показывает в третьем положении в Ubuntu 16.04

После того, как я обновляю свой ubutu к 16,04, я получил проблему со средством запуска Единицы. Каждый раз, когда я открываю приложение, которое не перечислено в средстве запуска, оно займет третью позицию вместо последней позиции. У кого-либо есть та же проблема?

enter image description here

5
задан 8 December 2016 в 10:40

2 ответа

Существует специальный невидимый элемент запуска под названием «Запуск приложений», который всегда присутствует в вашем избранном модуле запуска и определяет, в каком месте отображаются значки незакрепленных запущенных приложений. В вашем случае он явно каким-то образом попал в странное положение, но это легко поправимо.

Есть два способа, простой и, конечно же, изящный способ командной строки; -)


Я хочу, чтобы это было легко сделать и запомнить!

Самый простой способ - просто перетащить значки вашей пусковой установки в правильном порядке.

Поэтому откройте одно приложение, которое не закреплено на панели запуска, например настройки внешнего вида на скриншоте. Его нельзя закреплять, иначе это не сработает.

Тогда вы не перетаскиваете незакрепленный значок , потому что это не повлияет на положение специального элемента «Запуск приложений», а просто закрепите его. перетащил значок в новое место.
Вместо этого перетащите все значки снизу / справа (работает для обеих ориентаций запуска) незакрепленного значка прямо над / слева от него. Таким образом, вы переместите незакрепленный значок вниз / вправо, не касаясь его.

Когда он достиг положения, в котором должны отображаться все незакрепленные значки приложений, все готово. Теперь вы можете закрыть это окно и открыть его снова или снова, чтобы проверить, что оно работает.


Я чувствую себя занудой, давайте взломаем его через терминал!

Ваши закрепленные элементы запуска называются «избранными» и являются хранятся как настройки dconf в вашем профиле пользователя. Вы можете увидеть свой список избранного, открыв терминал и запустив

gsettings get com.canonical.Unity.Launcher favorites

. Это может выглядеть как пример ниже (форматирование вывода добавлено мной):

$ gsettings get com.canonical.Unity.Launcher favorites
['application://gnome-terminal.desktop', 
 'application://org.gnome.Nautilus.desktop', 
 'application://firefox.desktop', 
 'unity://running-apps', 
 'unity://desktop-icon',
 'unity://devices']

Этот вывод представляет собой минималистичную программу запуска с только терминалом, закрепленным значком Nautilus и Firefox . Следующим элементом является 'unity: // running-apps' , который является важным специальным элементом, который служит заполнителем для значков всех незакрепленных запущенных приложений. После этого следуют другие специальные элементы, а именно значок «Показать рабочий стол» и еще один элемент-заполнитель, который определяет, где будут отображаться значки подключенных съемных устройств.

Единственный элемент, который нас интересует, - это элемент «Запуск приложений» . Чтобы решить проблему, вы должны переместить его в нужное место в списке элементов.

Вы делаете это, набирая команду

gsettings set com.canonical.Unity.Launcher favorites []

, но вместо пустого списка [] вам нужно передать ваш измененный список в качестве последнего аргумента, конечно.

Например, с учетом описанного выше средства запуска, чтобы значки запущенных приложений отображались ниже «Показать рабочий стол», но все еще над значками устройств, выполните следующее:

$ gsettings set com.canonical.Unity.Launcher favorites "['application://gnome-terminal.desktop', 'application://org.gnome.Nautilus.desktop', 'application://firefox.desktop', 'unity://desktop-icon', 'unity://running-apps', 'unity://devices']"

изменения вступят в силу немедленно, поэтому запустите несколько незакрепленных приложений, чтобы убедиться, что вы поместили элемент в нужное место, и наслаждайтесь.

7
ответ дан 23 November 2019 в 08:54

Как правильно объяснил ByteCommander, позиция unity: // running-apps в списке com.canonical.Unity.Launcher gsettings schema делает влияет на то, где появляются запущенные приложения, поэтому его ответ точен. Чтобы продемонстрировать и проверить это, я написал небольшой скрипт, результаты которого вы можете увидеть на скриншотах ниже.

Обратите внимание, как сценарий, вызываемый с индексом 1 и индексом 2, показывает два терминальных приложения, перемещающихся вместе в соответствующую позицию в средстве запуска (т. Е. Запущенные приложения, которые не в текущем списке сгруппированы вместе). Обратите внимание, что список начинается с индекса 0, который соответствует значку хрома.

enter image description here enter image description here

Примечание: если вы хотите, чтобы запущенные приложения были последними, достаточно использовать -1 в качестве аргумента.

] Script

from gi.repository import Gio
import sys

def gsettings_get(schema, path, key):
    """Get value of gsettings schema"""
    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):
    """Set value of gsettings schema"""
    if path is None:
        gsettings = Gio.Settings.new(schema)
    else:
        gsettings = Gio.Settings.new_with_path(schema, path)
    if isinstance(value, list):
        return gsettings.set_strv(key, value)
    if isinstance(value, int):
        return gsettings.set_int(key, value)

def main():
    schema='com.canonical.Unity.Launcher' 
    key='favorites'
    current_list = list(gsettings_get(schema,None,key))
    running_index = current_list.index('unity://running-apps')

    position = int(sys.argv[1])

    temp = current_list[position]
    current_list[position] = current_list[running_index]
    current_list[running_index] = temp
    gsettings_set(schema,None,key,current_list)
if __name__ == '__main__': main()
2
ответ дан 23 November 2019 в 08:54

Другие вопросы по тегам:

Похожие вопросы: