스크립트에서 강조 표시된 텍스트에 액세스하시겠습니까?

스크립트에서 강조 표시된 텍스트에 액세스하시겠습니까?

쉘 스크립트를 통해 강조 표시된 텍스트에 액세스할 수 있습니까?

"espeak"를 사용하여 강조 표시된 텍스트를 읽는 키보드 단축키를 만들고 싶습니다.

답변1

예, 상대적으로 쉽습니다. 클립보드 조작을 위한 수많은 도구가 있습니다. 저는 이를 사용하여 Apple 장치 등록 및 이메일 확인을 작성하고 xdotool...양식을 1000번 작성하는 것보다 훨씬 쉽습니다...

그래서 바로가기를 설정하는 것은/home/bob/bin/speak.sh

speak.sh:

#!/bin/bash

xclip -o | xclip -selection clipboard -i
xclip -o | espeak

답변2

짧게: 일반적으로 이 작업을 수행할 수 없습니다(선택 항목을 클립보드에 복사하지 않는 한).

long: 몇 가지 특별한 경우가 있습니다. 예를 들어 xterm에는 응용 프로그램이 이스케이프 시퀀스를 통해 선택한 텍스트를 읽을 수 있도록 하는 기능(일반적으로 비활성화됨)이 있습니다. 이 시간은XTerm 제어 순서:

        Ps = 5 2  -> Manipulate Selection Data.  These controls may
      be disabled using the allowWindowOps resource.  The parameter
      Pt is parsed as
           Pc; Pd
      The first, Pc, may contain zero or more characters from the
      set c  p  s  0  1  2  3  4  5  6  7 .  It is used to construct
      a list of selection parameters for clipboard, primary, select,
      or cut buffers 0 through 7 respectively, in the order given.
      If the parameter is empty, xterm uses s 0 , to specify the
      configurable primary/clipboard selection and cut buffer 0.
      The second parameter, Pd, gives the selection data.  Normally
      this is a string encoded in base64.  The data becomes the new
      selection, which is then available for pasting by other appli-
      cations.
      If the second parameter is a ? , xterm replies to the host
      with the selection data encoded using the same protocol.
      If the second parameter is neither a base64 string nor ? ,
      then the selection is cleared.

즉, 만약창 작업 허용리소스가 활성화되고 애플리케이션이 다음과 같은 작업을 수행할 수 있습니다.

printf '\033]52;s;?\007'

그리고 선택 데이터를 base64 문자열로 읽습니다. 그러나 이것은 특별한 경우이다.

물론 일부 응용 프로그램은 클립보드에 복사되지만(FAQ 참조) 전부는 아닙니다. 예를 들어 rxvt 등은 선호하는 것을 사용합니다. 어느 곳에서나 작동하는 솔루션은 없습니다.

추가 자료:

관련 정보