Создать ссылку на файл на рабочем столе или в папке

Что происходит, когда вы нажимаете Lock To Launcher, это означает, что Unity изменит конкретную схему dconf для избранных Launcher и вызовет пару методов dbus. Ключом для программистов и разработчиков приложений является изменение схемы dconf. (Ответ Джейкоба полагается на gsettings, однако идея по существу такая же, как и gsettings - это просто передняя часть с проверкой работоспособности для dconf). Здесь я просто хочу представить несколько сделанных замечаний.

Боковое замечание: здесь я тестирую все с помощью специального приложения python, у которого нет файла .desktop

Dconf

Запуск dconf watch / покажет, что это то, что изменилось:

$ dconf watch /                                                                           # Lock to launcher
/com/canonical/unity/launcher/favorites
  ['application://gnome-terminal.desktop', 'application://firefox.desktop', 'application://gedit.desktop', 'application://sakura.desktop', 'application://mplab.desktop', 'unity://running-apps', 'application://pyqt_clock_py.desktop', 'unity://devices']
# Unlock from launcher

/com/canonical/unity/launcher/favorites
  ['application://gnome-terminal.desktop', 'application://firefox.desktop', 'application://gedit.desktop', 'application://sakura.desktop', 'application://mplab.desktop', 'unity://running-apps', 'unity://devices']

Создание файла .desktop для приложения

Первоначально есть проверка независимо от того, существует ли файл .desktop для приложения. Если файл существует - хорошо. Если нет - Unity выдает dbus вызов метода org.ayatana.bamf.control.CreateLocalDesktopFile в службе org.ayatana.bamf. Это можно использовать для автоматизации создания файла .desktop. Хотя это не отображается в выходе dbus-monitor, я считаю, что это один из методов, которые могут быть использованы Unity.

Вот небольшая демонстрация:

# start custom app in background, app appears on the launcher
$> python /home/xieerqi/bin/python/pyqt_clock.py &                                                                    
[1] 16768
# confirm that there is no .desktop file for that app
$> qdbus org.ayatana.bamf /org/ayatana/bamf/matcher org.ayatana.bamf.matcher.RunningApplicationsDesktopFiles 
/usr/share/applications/compiz.desktop
/usr/share/applications/firefox.desktop
/usr/share/applications/x-terminal-emulator.desktop
$> ls .local/share/applications/pyqt_clock_py.desktop                                                                 
ls: cannot access .local/share/applications/pyqt_clock_py.desktop: No such file or directory
# I use custom function to find list of running apps by their dbus path
$> typeset -f running_apps
running_apps() {
    qdbus org.ayatana.bamf /org/ayatana/bamf/matcher org.ayatana.bamf.matcher.RunningApplications | xargs -I {} bash -c "echo {}; qdbus org.ayatana.bamf {} org.ayatana.bamf.view.Name" 
} 
$> running_apps                                                                                                       
/org/ayatana/bamf/application/0x146bb90
Clock
/org/ayatana/bamf/application/1932146384 # that's what we want
Firefox Web Browser
/org/ayatana/bamf/application/1060483892
MY CUSTOM TERMINAL
/org/ayatana/bamf/application/885622223
Compiz
/org/ayatana/bamf/application/0x146b8f0
 # Use  the dbus method to create desktop file
$> qdbus org.ayatana.bamf /org/ayatana/bamf/control \                                                                 
> org.ayatana.bamf.control.CreateLocalDesktopFile  /org/ayatana/bamf/application/0x146bb90                            
# Verify its creation
$> ls .local/share/applications/pyqt*                                                                                 
.local/share/applications/pyqt_clock_py.desktop
# This doesn't however pin the program to launcher
# Different call to dbus will be issued
$ gsettings get com.canonical.Unity.Launcher favorites                                                                
['application://gnome-terminal.desktop', 'application://firefox.desktop', 'application://gedit.desktop', 'application://sakura.desktop', 'application://mplab.desktop', 'unity://running-apps', 'unity://devices']

Существует другой метод dbus, который разрушает файл:

dbus-monitor revelations

Я выполнил блокировку и разблокировку с помощью команды dbus-monitor --profile. Ниже вы можете увидеть несколько вызовов методов (обозначенных символом mc) на интерфейсе ca.desrt.dconf.Writer и Zeitgeist.

mc  1461904751  317156  3474    :1.32   /ca/desrt/dconf/Writer/user ca.desrt.dconf.Writer   Change
mr  1461904751  317976  4520    3473    :1.32
mc  1461904751  320331  3475    :1.32   /org/gnome/zeitgeist/log/activity   org.gnome.zeitgeist.Log InsertEvents
mc  1461904751  341474  118 :1.93   /org/gnome/zeitgeist/monitor/special    org.gnome.zeitgeist.Monitor NotifyInsert
mr  1461904751  341576  119 3475    :1.32
mr  1461904751  341927  39  118 :1.93
mr  1461904751  356896  114 3474    :1.32
sig 1461904751  357892  115 /ca/desrt/dconf/Writer/user ca.desrt.dconf.Writer   Notify

Если выполнить более подробное представление с помощью dconf-monitor, вы увидите, что вызовы записи dconf последовательность байтов и записи zeitgeist записывает добавленную запись. Я проверил это несколько раз, и это те же самые действия, которые выполняются в каждом случае.

Пример формы вывода Zeitgeist.

method call sender=:1.93 -> dest=org.gnome.zeitgeist.SimpleIndexer serial=104 path=/org/gnome/zeitgeist/monitor/special; interface=org.gnome.zeitgeist.Monitor; member=NotifyInsert
   struct {
      int64 1461904249994
      int64 1461904249994
   }
   array [
      struct {
         array [
            string "14288"
            string "1461904249994"
            string "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#AccessEvent"
            string "http://www.zeitgeist-project.com/ontologies/2010/01/27/zg#UserActivity"
            string "application://compiz.desktop"
            string ""
         ]
         array [
            array [
               string "application://pyqt_clock_py.desktop"
               string "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#Software"
               string "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SoftwareItem"
               string ""
               string "application/x-desktop"
               string "Clock"
               string "unknown"
               string "application://pyqt_clock_py.desktop"
               string ""
            ]
         ]
         array [
         ]
      }
   ]

Unity Source Code:

Конкретный код, который обрабатывается, который определен в launcher/ApplicationLauncherIcon.cpp исходного кода Unity

/* (Un)Stick to Launcher */
  glib::Object<DbusmenuMenuitem> menu_item(dbusmenu_menuitem_new());
  const char* label = !IsSticky() ? _("Lock to Launcher") : _("Unlock from Launcher");
  dbusmenu_menuitem_property_set(menu_item, DBUSMENU_MENUITEM_PROP_LABEL, label);
  dbusmenu_menuitem_property_set_bool(menu_item, DBUSMENU_MENUITEM_PROP_ENABLED, true);
  dbusmenu_menuitem_property_set_bool(menu_item, DBUSMENU_MENUITEM_PROP_VISIBLE, true);

Но фактическое задание выполняется с помощью unity-shared/BamfApplicationManager.cpp

bool Application::SetSticky(bool const& param)
{
  bool is_sticky = GetSticky();
  if (param == is_sticky)
    return false; // unchanged

  bamf_view_set_sticky(bamf_view_, param);
  return true; // value updated
}

Знание изменений, внесенных в dconf, и конкретное поведение пусковой установки могут помочь нам расширить ее функциональность. Примеры этого из меня и Якоба включают:

Настройка Launcher из входного файла Переупорядочение, чтобы сделать активный верхний или нижний элемент приложения Cloning launcher от пользователя к пользователю Создание уникальной пусковой установки на рабочее пространство

Особая полезность метода dbus для создания файлов .desktop позволяет автоматизировать создание ярлыков для специально написанных приложений, которые позже могут быть заблокированы для запуска с использованием метода gsettings, описанного Джейкобом.

6
задан 1 August 2017 в 04:22

22 ответа

[D0] 1. Если у вашей мыши есть центральная кнопка

Вы просто щелкните по центру и перетащите файл туда, куда вы хотите, и когда вы отпустите центральную кнопку / колесо, появится всплывающее меню с вопросом о том, вы хотите переместить, скопировать или связать файл.

Центр-щелчок и перетащите , конечно.

2. Если у вашей мыши нет центральной кнопки

Вы левый клик и перетащите файл туда, куда хотите, но перед тем, как вы отпустите левую кнопку, нажмите и удерживайте клавишу Alt, затем отпустите левую кнопку, и появится сообщение о том, хотите ли вы «Переместить», «Копировать» или «Ссылка ».

Конечно, левый клик и перетащите .

Вот изображение того, как выглядит меню.

7
ответ дан 18 July 2018 в 09:18

После нажатия кнопки «Сделать ссылку»:

Нажмите ссылку и нажмите Ctrl + X или щелкните правой кнопкой мыши ссылку и нажмите «Вырезать». Перейдите в нужную папку. Нажмите Ctrl + V или вправо, щелкните пустое место и нажмите «Вставить»
1
ответ дан 18 July 2018 в 09:18
[D0] 1. Если у вашей мыши есть центральная кнопка

Вы просто щелкните по центру и перетащите файл туда, куда вы хотите, и когда вы отпустите центральную кнопку / колесо, появится всплывающее меню с вопросом о том, вы хотите переместить, скопировать или связать файл.

Центр-щелчок и перетащите , конечно.

2. Если у вашей мыши нет центральной кнопки

Вы левый клик и перетащите файл туда, куда хотите, но перед тем, как вы отпустите левую кнопку, нажмите и удерживайте клавишу Alt, затем отпустите левую кнопку, и появится сообщение о том, хотите ли вы «Переместить», «Копировать» или «Ссылка ».

Конечно, левый клик и перетащите .

Вот изображение того, как выглядит меню.

8
ответ дан 24 July 2018 в 19:18
  • 1
    У моих мышей нет кликов по центру. Все колесо прокрутки - это ... хорошо прокрутить. – WinEunuuchs2Unix 1 August 2017 в 04:55
  • 2
    О черт. Жизнь в Linux намного проще с помощью 10-кнопочной мыши. Первые 7 кнопок имеют отличные значения по умолчанию, а затем я использую CCSM для настройки кнопок 8 и 10 (кнопки большого пальца), чтобы инициировать мой выбор рабочего стола и инициировать мой сборщик окон. Эти функции CCSM - это всего лишь несколько из немногих вещей, которые делают рабочий стол Linux намного более эффективным, чем обычный образ Windows. – SunnyDaze 1 August 2017 в 05:36
  • 3
    Там я понял это для вас. Я добавил кнопку «Нет центральной кнопки». ответ. Пожалуйста, выберите этот ответ в качестве решения, если вам это нравится. – SunnyDaze 1 August 2017 в 05:45
  • 4
    Я думаю, что моя мышь имеет 9 кнопок, это Logitech Pro MX: logitech.com/en-ca/product/performance-mouse-mx Я трачу больше времени на то, чтобы возиться в bash, чем в мытье. Я думаю, что ваша кнопка эмулирующего центра будет ценна для основного направления. – WinEunuuchs2Unix 1 August 2017 в 06:01
  • 5
    @ WinEunuuchs2Unix У Pro MX есть средний клик ... – wjandrea 1 August 2017 в 06:35

После нажатия кнопки «Сделать ссылку»:

Нажмите ссылку и нажмите Ctrl + X или щелкните правой кнопкой мыши ссылку и нажмите «Вырезать». Перейдите в нужную папку. Нажмите Ctrl + V или вправо, щелкните пустое место и нажмите «Вставить»
1
ответ дан 24 July 2018 в 19:18

1. Если у вашей мыши есть центральная кнопка

Вы просто щелкните по центру и перетащите файл туда, куда вы хотите, и когда вы отпустите центральную кнопку / колесо, появится всплывающее меню с вопросом, хотите ли вы вы хотите перемещать, копировать или связывать файл.

Выберите ссылку, конечно.

2. Если у вашей мыши нет центральной кнопки

, щелкните левой кнопкой мыши и перетащите файл туда, куда вы хотите, но перед тем, как вы отпустите левую кнопку, нажмите и удерживайте клавишу Alt, затем отпустите левую кнопку, и появится сообщение о том, хотите ли вы Переместить, Копировать или Ссылка файла.

Выберите ссылку, конечно.

Вот изображение того, как выглядит меню.

8
ответ дан 31 July 2018 в 12:44

После того, как вы нажмете «Сделать ссылку»:

  1. Нажмите ссылку и нажмите Ctrl + X или щелкните правой кнопкой мыши ссылку и нажмите «Вырезать»
  2. Перейдите к папка, которую вы хотите
  3. Нажмите Ctrl + V или щелкните правой кнопкой мыши в пустое пространство и нажмите «Вставить»
1
ответ дан 31 July 2018 в 12:44

1. Если у вашей мыши есть центральная кнопка

Вы просто щелкните по центру и перетащите файл туда, куда вы хотите, и когда вы отпустите центральную кнопку / колесо, появится всплывающее меню с вопросом, хотите ли вы вы хотите перемещать, копировать или связывать файл.

Выберите ссылку, конечно.

2. Если у вашей мыши нет центральной кнопки

, щелкните левой кнопкой мыши и перетащите файл туда, куда вы хотите, но перед тем, как вы отпустите левую кнопку, нажмите и удерживайте клавишу Alt, затем отпустите левую кнопку, и появится сообщение о том, хотите ли вы Переместить, Копировать или Ссылка файла.

Выберите ссылку, конечно.

Вот изображение того, как выглядит меню.

8
ответ дан 31 July 2018 в 22:22

После того, как вы нажмете «Сделать ссылку»:

  1. Нажмите ссылку и нажмите Ctrl + X или щелкните правой кнопкой мыши ссылку и нажмите «Вырезать»
  2. Перейдите к папка, которую вы хотите
  3. Нажмите Ctrl + V или щелкните правой кнопкой мыши в пустое пространство и нажмите «Вставить»
1
ответ дан 31 July 2018 в 22:22

1. Если у вашей мыши есть центральная кнопка

Вы просто щелкните по центру и перетащите файл туда, куда вы хотите, и когда вы отпустите центральную кнопку / колесо, появится всплывающее меню с вопросом, хотите ли вы вы хотите перемещать, копировать или связывать файл.

Выберите ссылку, конечно.

2. Если у вашей мыши нет центральной кнопки

, щелкните левой кнопкой мыши и перетащите файл туда, куда вы хотите, но перед тем, как вы отпустите левую кнопку, нажмите и удерживайте клавишу Alt, затем отпустите левую кнопку, и появится сообщение о том, хотите ли вы Переместить, Копировать или Ссылка файла.

Выберите ссылку, конечно.

Вот изображение того, как выглядит меню.

8
ответ дан 2 August 2018 в 15:39

После того, как вы нажмете «Сделать ссылку»:

  1. Нажмите ссылку и нажмите Ctrl + X или щелкните правой кнопкой мыши ссылку и нажмите «Вырезать»
  2. Перейдите к папка, которую вы хотите
  3. Нажмите Ctrl + V или щелкните правой кнопкой мыши в пустое пространство и нажмите «Вставить»
1
ответ дан 2 August 2018 в 15:39

1. Если у вашей мыши есть центральная кнопка

Вы просто щелкните по центру и перетащите файл туда, куда вы хотите, и когда вы отпустите центральную кнопку / колесо, появится всплывающее меню с вопросом, хотите ли вы вы хотите перемещать, копировать или связывать файл.

Выберите ссылку, конечно.

2. Если у вашей мыши нет центральной кнопки

, щелкните левой кнопкой мыши и перетащите файл туда, куда вы хотите, но перед тем, как вы отпустите левую кнопку, нажмите и удерживайте клавишу Alt, затем отпустите левую кнопку, и появится сообщение о том, хотите ли вы Переместить, Копировать или Ссылка файла.

Выберите ссылку, конечно.

Вот изображение того, как выглядит меню.

8
ответ дан 2 August 2018 в 17:05

После того, как вы нажмете «Сделать ссылку»:

  1. Нажмите ссылку и нажмите Ctrl + X или щелкните правой кнопкой мыши ссылку и нажмите «Вырезать»
  2. Перейдите к папка, которую вы хотите
  3. Нажмите Ctrl + V или щелкните правой кнопкой мыши в пустое пространство и нажмите «Вставить»
1
ответ дан 2 August 2018 в 17:05

1. Если у вашей мыши есть центральная кнопка

Вы просто щелкните по центру и перетащите файл туда, куда вы хотите, и когда вы отпустите центральную кнопку / колесо, появится всплывающее меню с вопросом, хотите ли вы вы хотите перемещать, копировать или связывать файл.

Выберите ссылку, конечно.

2. Если у вашей мыши нет центральной кнопки

, щелкните левой кнопкой мыши и перетащите файл туда, куда вы хотите, но перед тем, как вы отпустите левую кнопку, нажмите и удерживайте клавишу Alt, затем отпустите левую кнопку, и появится сообщение о том, хотите ли вы Переместить, Копировать или Ссылка файла.

Выберите ссылку, конечно.

Вот изображение того, как выглядит меню.

8
ответ дан 3 August 2018 в 19:41

После того, как вы нажмете «Сделать ссылку»:

  1. Нажмите ссылку и нажмите Ctrl + X или щелкните правой кнопкой мыши ссылку и нажмите «Вырезать»
  2. Перейдите к папка, которую вы хотите
  3. Нажмите Ctrl + V или щелкните правой кнопкой мыши в пустое пространство и нажмите «Вставить»
1
ответ дан 3 August 2018 в 19:41

1. Если у вашей мыши есть центральная кнопка

Вы просто щелкните по центру и перетащите файл туда, куда вы хотите, и когда вы отпустите центральную кнопку / колесо, появится всплывающее меню с вопросом, хотите ли вы вы хотите перемещать, копировать или связывать файл.

Выберите ссылку, конечно.

2. Если у вашей мыши нет центральной кнопки

, щелкните левой кнопкой мыши и перетащите файл туда, куда вы хотите, но перед тем, как вы отпустите левую кнопку, нажмите и удерживайте клавишу Alt, затем отпустите левую кнопку, и появится сообщение о том, хотите ли вы Переместить, Копировать или Ссылка файла.

Выберите ссылку, конечно.

Вот изображение того, как выглядит меню.

8
ответ дан 5 August 2018 в 04:27

После того, как вы нажмете «Сделать ссылку»:

  1. Нажмите ссылку и нажмите Ctrl + X или щелкните правой кнопкой мыши ссылку и нажмите «Вырезать»
  2. Перейдите к папка, которую вы хотите
  3. Нажмите Ctrl + V или щелкните правой кнопкой мыши в пустое пространство и нажмите «Вставить»
1
ответ дан 5 August 2018 в 04:27

1. Если у вашей мыши есть центральная кнопка

Вы просто щелкните по центру и перетащите файл туда, куда вы хотите, и когда вы отпустите центральную кнопку / колесо, появится всплывающее меню с вопросом, хотите ли вы вы хотите перемещать, копировать или связывать файл.

Выберите ссылку, конечно.

2. Если у вашей мыши нет центральной кнопки

, щелкните левой кнопкой мыши и перетащите файл туда, куда вы хотите, но перед тем, как вы отпустите левую кнопку, нажмите и удерживайте клавишу Alt, затем отпустите левую кнопку, и появится сообщение о том, хотите ли вы Переместить, Копировать или Ссылка файла.

Выберите ссылку, конечно.

Вот изображение того, как выглядит меню.

8
ответ дан 6 August 2018 в 21:31

После того, как вы нажмете «Сделать ссылку»:

  1. Нажмите ссылку и нажмите Ctrl + X или щелкните правой кнопкой мыши ссылку и нажмите «Вырезать»
  2. Перейдите к папка, которую вы хотите
  3. Нажмите Ctrl + V или щелкните правой кнопкой мыши в пустое пространство и нажмите «Вставить»
1
ответ дан 6 August 2018 в 21:31

1. Если у вашей мыши есть центральная кнопка

Вы просто щелкните по центру и перетащите файл туда, куда вы хотите, и когда вы отпустите центральную кнопку / колесо, появится всплывающее меню с вопросом, хотите ли вы вы хотите перемещать, копировать или связывать файл.

Выберите ссылку, конечно.

2. Если у вашей мыши нет центральной кнопки

, щелкните левой кнопкой мыши и перетащите файл туда, куда вы хотите, но перед тем, как вы отпустите левую кнопку, нажмите и удерживайте клавишу Alt, затем отпустите левую кнопку, и появится сообщение о том, хотите ли вы Переместить, Копировать или Ссылка файла.

Выберите ссылку, конечно.

Вот изображение того, как выглядит меню.

8
ответ дан 9 August 2018 в 01:57

После того, как вы нажмете «Сделать ссылку»:

  1. Нажмите ссылку и нажмите Ctrl + X или щелкните правой кнопкой мыши ссылку и нажмите «Вырезать»
  2. Перейдите к папка, которую вы хотите
  3. Нажмите Ctrl + V или щелкните правой кнопкой мыши в пустое пространство и нажмите «Вставить»
1
ответ дан 9 August 2018 в 01:57

1. Если у вашей мыши есть центральная кнопка

Вы просто щелкните по центру и перетащите файл туда, куда вы хотите, и когда вы отпустите центральную кнопку / колесо, появится всплывающее меню с вопросом, хотите ли вы вы хотите перемещать, копировать или связывать файл.

Выберите ссылку, конечно.

2. Если у вашей мыши нет центральной кнопки

, щелкните левой кнопкой мыши и перетащите файл туда, куда вы хотите, но перед тем, как вы отпустите левую кнопку, нажмите и удерживайте клавишу Alt, затем отпустите левую кнопку, и появится сообщение о том, хотите ли вы Переместить, Копировать или Ссылка файла.

Выберите ссылку, конечно.

Вот изображение того, как выглядит меню.

8
ответ дан 14 August 2018 в 20:08
  • 1
    У моих мышей нет кликов по центру. Все колесо прокрутки - это ... хорошо прокрутить. – WinEunuuchs2Unix 1 August 2017 в 04:55
  • 2
    Ох, блин. Жизнь в Linux намного проще с помощью 10-кнопочной мыши. Первые 7 кнопок имеют отличные значения по умолчанию, а затем я использую CCSM для настройки кнопок 8 и 10 (кнопки большого пальца), чтобы инициировать мой выбор рабочего стола и инициировать мой сборщик окон. Эти функции CCSM - это всего лишь несколько из немногих вещей, которые делают рабочий стол Linux намного более эффективным, чем обычный образ Windows. – SunnyDaze 1 August 2017 в 05:36
  • 3
    Там я понял это для вас. Я добавил кнопку «Нет центральной кнопки». ответ. Пожалуйста, выберите этот ответ в качестве решения, если вам это нравится. – SunnyDaze 1 August 2017 в 05:45
  • 4
    Я думаю, что моя мышь имеет 9 кнопок, это Logitech Pro MX: logitech.com/en-ca/product/performance-mouse-mx . Я трачу больше времени на вождение в bash, чем на мытье. Я думаю, что ваша кнопка эмулирующего центра будет ценна для основного направления. – WinEunuuchs2Unix 1 August 2017 в 06:01
  • 5
    @ WinEunuuchs2Unix У Pro MX есть средний клик ... – wjandrea 1 August 2017 в 06:35

После того, как вы нажмете «Сделать ссылку»:

  1. Нажмите ссылку и нажмите Ctrl + X или щелкните правой кнопкой мыши ссылку и нажмите «Вырезать»
  2. Перейдите к папка, которую вы хотите
  3. Нажмите Ctrl + V или щелкните правой кнопкой мыши в пустое пространство и нажмите «Вставить»
1
ответ дан 14 August 2018 в 20:08

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

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