Получить слово под курсором в X11

Для некоторых сценариев мне нужно получить слово, находящееся под курсором.

Может ли xdotool или подобный инструмент получить его?

8
задан 5 June 2016 в 22:06

1 ответ

То, как добираться в настоящее время , выбрало текст

, можно добраться в настоящее время , выбрал текст с командой:

echo $(xclip -o -sel)

..., но необходимо было бы установить xclip сначала:

sudo apt-get install xclip

От man xclip:

-o, -out
    prints the selection to standard out (generally for piping to a file or program) 

и:

-selection
    specify which X selection to use, options are "primary" to use XA_PRIMARY (default), "secondary" for XA_SECONDARY or "clipboard" for XA_CLIPBOARD

См. также здесь или, как всегда, man xclip.

<час>

РЕДАКТИРОВАНИЕ

Обходное решение выходит с последним выбором

Из комментария, я понял, что xclip выводы последний выбор, даже если нет ничего выбранного еще (например, когда файл закрывается). Это, кажется, проблема в Вашей ситуации.

, Хотя xsel также имеет эту проблему, она может работаться вокруг: если мы заставляем Ваш сценарий не только считать текущий выбор в сценарий, но и также пишут то же содержание в файл. Мы можем затем проверить, отличается ли новый выбор от последнего выбора. В противном случае мы можем прийти к заключению, что никакой новый выбор не сделан, и команда, скорее всего, производит устаревший выбор. Мы можем затем сказать сценарию передавать.

пример (использующий xsel, который имеет небольшие преимущества в этом случае):

#!/bin/bash

# make sure the file to store the last selection exists
f=~/.old_sel
touch $f
# get the previous & current selection
old=$(cat "$f"); new=$(xsel -o)

if [ "$old" != "$new" ]; then
  # if selection changed, store the new selection to remember
  echo "$new" > "$f"
  # do the action, whatever that may be
  echo $new
fi

Никакая потребность сказать, что необходимо было бы установить xsel:

sudo apt-get install xsel
9
ответ дан 5 June 2016 в 22:06

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

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