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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

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

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

Оффлайн Faydaen

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

Написал вот такой скрипт
Код: Bash
  1. #!/bin/bash
  2.  
  3. # уведомление (как в rhythmbox) чтобы убедится что при нажатие на F5 скрипт срабатывает
  4. notify-send -i /usr/share/icons/hicolor/48x48/apps/distributor-logo.png "скрипт сработал"
  5.  
  6. # время которое нужно вставить
  7. now=$(date +"%T")
  8.  
  9. # записываем в буфер обмена
  10. echo $now | xsel -ib
  11.  
  12. # вставляем
  13. xsel -ob

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

 

Оффлайн Peter_I

  • Старожил
  • *
  • Сообщений: 1801
    • Просмотр профиля
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

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

Оффлайн AnrDaemon

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

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

Оффлайн Faydaen

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

Оффлайн AnrDaemon

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

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

Оффлайн Cxms

  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: Вставка времени через хоткей
« Ответ #7 : 24 Май 2016, 18:26:01 »
Faydaen,
Код: Bash
  1. BKP_CLIPBUF="$(xclip -selection clipboard -o)"
  2.  
  3. date +"%T" | tr -d '\n' | xclip -selection clipboard -i
  4.  
  5. ACT_WINDOW=$(xdotool getactivewindow)
  6.  
  7. xdotool key --window $ACT_WINDOW --clearmodifiers "ctrl+v"
  8.  
  9. echo -n "$BKP_CLIPBUF" | xclip -selection clipboard -i
  10.  

*нужен xdotool и xclip.

 

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