Существует ли ярлык, чтобы вновь открыть недавно закрытую программу?

Я нашел этот KDE Открытым недавно закрытым вопросом о приложении, и это точно, что я хотел бы сделать, однако я нахожусь на человечности. Единственные отвечают на тот вопрос, 'недавно используемая' часть средства запуска, но недавно используемый список не включает приложения, заблокированные в средство запуска.

Обычно я выполняю большинство вещей через терминал, но вещи как браузеры, я буду работать от средства запуска. Иногда я случайно закрываю их.

Короче говоря: я хотел бы функциональность 'ctrl-shift-t', что большинство браузеров относилось за вкладки к программам в человечности.

Если это прибыло в форме сценария, это прекрасно; у меня действительно нет большого опыта при записи сценариев удара, таким образом, объяснение или ссылки на документы ценятся.

Существует ли список недавно закрытых программ, сохраненных где-нибудь на диске? Я знаю, что это, вероятно, были бы журналы, но это будет стычкой, чтобы выяснить, как проанализировать, я думаю? Я предполагаю, что надеюсь, что существует миленький файл журнала где-нибудь, который ведет учет приложений, закрылся/открыл и путь к программе, которая выполняет/начинает их. Также: если бы я хотел, чтобы человечность создала файл журнала как этот, как я сделал бы это?

2
задан 13 April 2017 в 15:23

1 ответ

Согласно просьбе в комментариях, концептуальном ответе, никаком готовом к использованию сценарии.

Объяснение на понятии; как зарегистрировать последний раз закрытое приложение

<час>

Введение

Из списка процессов & pids, трудно решить, который принадлежит приложению или другому процессу. Так как Вы упоминаете приложения GUI однако, мы можем зарегистрироваться окна , который дает нам всем информацию, которую мы должны решить, который был последний раз закрытым приложением.

Используя wmctrl для списка запуска приложения GUI

wmctrl (не в системе по умолчанию) является инструментом командной строки, который может дать Вам информацию о в настоящее время существующих окнах. Команда:

wmctrl -lp

производит список окна, будучи похож:

---
0x02c0000c  0 23772  jacob-System-Product-Name Hud
0x02e0000a -1 23877  jacob-System-Product-Name Desktop
0x0480001d  0 28367  jacob-System-Product-Name Ask Ubuntu General Room | chat.stackexchange.com - Mozilla Firefox
0x05200007  0 26724  jacob-System-Product-Name System Monitor
0x05800084  0 27183  jacob-System-Product-Name *Untitled Document 1 - gedit
---

Во втором столбце списка, Вы видите pids в настоящее время открываемых окон, как: 23877, 28367

От этих pids, мы можем получить процесс (приложение), которое владеет окном, с помощью команды:

ps -o cmd= <pid>

, например:

$ ps -o cmd= 27183
gedit

Затем все, что мы должны сделать, выполняется цикл с периодом нескольких секунд, сравнивая (уникальный) список процессов, владея окном (=applications), со списком несколько секунд назад. Если процесс "оставил" список, это - последний раз закрывшее окно. Короче говоря:

(Концептуальный) обзор цикла (стиль Python)

applications1 = get_applications()
while True:
    time.sleep(3)
    applications2 = get_applications()
    closed = [app for app in applications1 if not app in applications2]
    if closed:
        most_recent = closed[0]
        # store the process in a file, to be available to run as most recently closed
        open(f, "wt").write(most_recent)
    application1 = application2

, где f является путем к файлу, где новое приложение записано в. Впоследствии имейте другой процесс/команду, запускают приложение в файле, и установка завершается.

Язык?

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

Примечание к Примечанию

, что схематический код выше просто, например, никакой протестированный код!

2
ответ дан 2 December 2019 в 03:42

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

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