fzf는 터미널 대신 xdotool로 출력합니다.

fzf는 터미널 대신 xdotool로 출력합니다.

fzf.sh프로젝트 목록을 시작하고, 프로젝트를 선택하고, 선택한 특정 줄의 출력을 터미널에 인쇄하는 스크립트를 만들 수 있습니다 .

#!/bin/bash
cat ~/list.txt | fzf --reverse

다음 명령을 사용하여 이 스크립트를 시작하기 위해 Ubuntu 키보드 단축키를 만들었습니다.

gnome-terminal -e 'bash -c "fzf.sh"'

키보드 단축키를 활성화할 때 터미널이 아닌 내가 집중하고 있는 응용 프로그램에 선택한 줄을 인쇄하는 방법을 알아내려고 합니다.

나는 dmenu와 xdotool을 사용하기 전에 다음을 통해 이 작업을 수행했습니다 dmenu.sh.

#!/bin/bash
xdotool sleep 0.3 type --delay 0.1 "$(grep -v '^#' ~/list.txt | dmenu | cut -f1)"

그런 다음 내가 열어 놓은 프로그램(예: Chrome)에 출력이 표시됩니다.

fzf로 동일한 작업을 어떻게 수행할 수 있나요? 아래 스크립트는 작동하지 않습니다. 선택한 줄의 출력이 팬텀 터미널에 인쇄되는 것 같습니다. 그 이유는 해당 줄에서 줄을 선택하면 list.txt터미널 팝업이 빨리 나타나고 닫히는 것을 볼 수 있지만 아무 것도 인쇄되지 않기 때문입니다. 내 응용 프로그램 Focus는 dmenu에 있었던 것과 같습니다.

#!/bin/bash
xdotool sleep 0.3 type --delay 0.1 "$(grep -v '^#' ~/list.txt | fzf --reverse | cut -f1)"

디스플레이 문제가 있어서 Ubuntu의 기본 Wayland 세션을 사용해야 하기 때문에 dmenu에서 fzf(또는 대안)로 이동하려고 합니다.

관련 정보