Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Вставка времени через хоткей  (Прочитано 555 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Faydaen

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Здравствуйте, я решил написать такой скрипт чтобы по нажатию клавиши (например F5) у меня вставлялось время (в нужном формате) в текущие открытое окно активной программы.

Написал вот такой скрипт
Код: (bash) [Выделить]
#!/bin/bash

# уведомление (как в rhythmbox) чтобы убедится что при нажатие на F5 скрипт срабатывает
notify-send -i /usr/share/icons/hicolor/48x48/apps/distributor-logo.png "скрипт сработал"

# время которое нужно вставить
now=$(date +"%T")

# записываем в буфер обмена
echo $now | xsel -ib

# вставляем
xsel -ob

И повесил его на хот кей (через параметры клавиатуры). Если запустить скрипт через терминал, то он правильно отрабатывает.
Но если попытаться вызвать его через хот кей, то сам скрипт срабатывает (о чем я узнаю из уведомления), но время не вставляется (и даже в буфере обмена её нет).
Подскажите в чем дело, ну или хотя бы куда копать? Спасибо!
 

 


ТС не появлялся на Форуме более полугода по состоянию на 14/07/2019 (последняя явка: 02/01/2018). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 14 Июля 2019, 00:57:21 от zg_nico »

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3030
    • Просмотр профиля
Re: Вставка времени через хоткей
« Ответ #1 : 24 Мая 2016, 13:37:53 »
Как я понимаю, когда вы нажимаете HotKey, xsel не связана ни с каким терминалом, поэтому и вы и не видите вывода.
Её вывод в stdout надо перенаправить в какой-нибудь терминал. Например, я запустил два xterm. Сам в одном,
в другом ввёл команду tty, она вернула /dev/pts/0. Затем вернулся в 1-й и там по команде
xsel -ob >& /dev/pts/0выбранное содержимое вывелось во 2-й xterm. У меня tcsh, но "&>" должно работать и в bash.
Пётр.

Оффлайн Faydaen

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Вставка времени через хоткей
« Ответ #2 : 24 Мая 2016, 14:09:56 »
Это срабатывает если я два терминала открыл и во втором нажимаю F5 то в первый вставляется время. А было бы круто чтобы когда я нажимал F5 дата вставлялась в окно активной программы (такой же эффект как и при нажатии ctrl+v с скопированном временем)

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 3030
    • Просмотр профиля
Re: Вставка времени через хоткей
« Ответ #3 : 24 Мая 2016, 16:51:17 »
Тогда скрипт должен сам находить активное окно и получать его идентификатор или устройство.
Пётр.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
Re: Вставка времени через хоткей
« Ответ #4 : 24 Мая 2016, 17:21:52 »
Посмотрите в сторону xNeur.
Возможно, у него есть и такой функционал.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Faydaen

  • Автор темы
  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Вставка времени через хоткей
« Ответ #5 : 24 Мая 2016, 17:45:00 »
Посмотрите в сторону xNeur.
Возможно, у него есть и такой функционал.
Спасибо, попробую

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28365
    • Просмотр профиля
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: Вставка времени через хоткей
« Ответ #7 : 24 Мая 2016, 18:26:01 »
Faydaen,
Код: (bash) [Выделить]
BKP_CLIPBUF="$(xclip -selection clipboard -o)"

date +"%T" | tr -d '\n' | xclip -selection clipboard -i

ACT_WINDOW=$(xdotool getactivewindow)

xdotool key --window $ACT_WINDOW --clearmodifiers "ctrl+v"

echo -n "$BKP_CLIPBUF" | xclip -selection clipboard -i

*нужен xdotool и xclip.

 

Страница сгенерирована за 0.036 секунд. Запросов: 23.