Как получить строки, заканчивающиеся на определенном выражении

Чтобы можно было найти ярлыки приложений, файлы .desktop должны находиться в одном из каталогов по умолчанию, например ~ / .local / share / applications для текущего пользователя или / usr / share / applications для всех пользователей.

Если вы не уверены, что пошло не так в вашем случае, посмотрите мой рабочий пример, протестированный в Xubuntu 14.04 (Xfce 4.10), как показано ниже.

Пример настройки

Следующая настройка предполагает, что:

  • ярлыки ( .desktop файлы) были созданы и включают по крайней мере одну категорию, которая может существовать (например, «Система») или не существует (например, «Пользовательский», «Виртуальный»)
  • ярлыки были перемещены в общий или локальный каталог, например ~ / .local / share / applications ;
  • меню (Файл .menu ) были созданы таким образом, что включены ярлыки из определенной определенной категории (например, «Виртуальная»);
  • меню помещено в соответствующее место, например ~ / .config / menus Каталог

Файл .menu содержит следующее.




    Parent
    
    
    
    
        Virtual
        X-Xfce-Toplevel
    
    
    
        Child
        
        exo-terminal-emulator.desktop
        
    
    
    
        Child
        xfce4-about.desktop
        exo-file-manager.desktop
        exo-terminal-emulator.desktop
        vm-test.desktop
    

В этом примере я создал только один пользовательский ярлык с именем vm-test.desktop , который появится в меню «Родитель». Остальные файлы .desktop уже существуют в каталогах ~ / .local / share / applications и / usr / share / applications . Я включил их специально, чтобы показать, что это работает в обоих направлениях.

Примеры снимков экрана

Добавьте апплет «Меню приложения» на панель Xfce, выберите «Использовать файл пользовательского меню» и загрузите файл .menu из общего или локального каталога. Наконец, щелкните апплет меню, чтобы увидеть ярлыки.

Xfce menu applet properties

Xfce menu applet demo

Обнаружение ярлыков

Ярлыки, которые были добавлены в каталог ~ / .local / share / applications , также будут автоматически найдены с помощью меню Whisker или апплета меню приложений (с использованием по умолчанию .menu файл).

Файлы .desktop , в которых указана несуществующая категория или не указана никакая категория, появятся в категории «Другое». Если он имеет несколько или более категорий, он будет отображаться только в существующей категории, то есть «Система», и не появится в разделе «Другое».

Чтобы понять это, просмотрите содержимое файла .desktop , который я использовал в примере выше.

[Desktop Entry]
Version=1.0
Type=Application
Name=VirtualBox VM test
Comment=Run "test" VM in VirtualBox
Exec=virtualbox --startvm "test"
Icon=virtualbox
Terminal=false
StartupNotify=false
Categories=Custom;System;Virtual;
Name[en_US]=VirtualBox VM test
GenericName=VM test

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

Дополнительные примечания

В Debian не было файлов .desktop по умолчанию в ~ / .local / share / applications и ~ / .config / menus Каталог не существует (необходимо создать его вручную).

Протестировано для работы в 32-битных системах Xubuntu 14.04 (Xfce 4.10) и Debian 8.3 Xfce (Xfce 4.10).

Ссылки

0
31.10.2018, 12:51
1 ответ

Конвейеры являются примером потоковой обработки. Как только конвейер построен, обработка принимает участие во многих процессах одновременно -, как только данные попадают во все процессы. Представьте себе -три части данных-a b cи два процесса-Aи B. Теперь посмотрите на эти шаги:

  1. a@A B-aвходит A, в Bпока ничего нет

  2. b@A a@B-aпередается на B, а bвходит вA

  3. c@A b@B-cдостигает A, а bдостигаетB

  4. A c@B-больше ничего в Aи cвB

Представьте, что a, bи cочень большие. Такой большой, что в машине одновременно могут находиться только два элемента. Последовательная обработка требует сначала обработки их в A, затем в Bи сохранения их всех одновременно. Параллельная обработка означает не только меньшие требования к памяти, но и задействует несколько процессоров -, хотя и не обязательно, поскольку параллелизм можно имитировать на одном процессоре путем распределения времени.

Каждый шаг конвейера — это отдельный процесс, работающий в подоболочке. Обычно выходные данные в определенных процессах буферизуются, что означает, что выходные данные отправляются большими порциями. Это оптимизирует операции, но может быть отключено, и тогда вывод отключится, как только он будет готов. Но даже с большими кусками это все еще параллельно.

0
28.01.2020, 04:10

Теги

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