Alfred에서 범위 선택한 문자열을 단축키로 가져올 때 클립 보드 기록을 더럽히지 않는 방법
2880 단어 ShellScriptAlfredSQLite3
TL; DR
Alfred에서 번역 워크플로를 사용할 때 클립보드 기록에 저장하지 않는 방법을 찾아서 해결책을 찾았으므로 지식으로 요약합니다.
실례로서 하기 번역 워크플로우를 사용하고 있습니다(작가님께 감사).
Alfred의 번역 워크플로 v2 릴리스(DeepL 번역 및 언어 선택 등에 대응)
환경
전제 지식
Alfred는 범위 선택한 문자열을 단축키로 가져올 때 클립보드에 일시적으로 저장합니다.
따라서 Workflow 내에서 Hotkey 액션 인수에
Selection in macOS
를 지정하면 Copy to Clipboard 액션을 사용하지 않고 클립보드에 저장되므로 항상 클립보드 기록에 남아 있습니다.이것은 Selection Hotkeys를
Restore previous clipboard item
로 설정해도 피할 수 없습니다.해결책
현재의 Alfred 기능은 클립보드 히스토리에 저장하지 않는 방법이 없기 때문에 클립보드 히스토리에 저장된 직후에 직접 삭제합니다.
Alfred 포럼 에도 게시되었지만 Alfred의 클립보드 기록은 SQLite3에 저장되어 있으므로 직접 쉘 스크립트에서 삭제 쿼리를 실행하면 Workflow에서 삭제할 수 있습니다.
실례
아래와 같은 쉘 스크립트를 Run Script에 쓰고 Hotkey 액션에 연결합니다.
sql="DELETE FROM clipboard WHERE dataType = 0 ORDER BY ts DESC LIMIT 1;"
/usr/bin/sqlite3 ~/Library/Application\ Support/Alfred/Databases/clipboard.alfdb $sql
echo -n $1
스크립트 자체는 매우 간단하며 SQLite3의 clipboard 테이블에서 가장 최근의 하나를 삭제합니다.
그 밖에 처리할 필요도 없기 때문에, 나머지는
echo
로 Hotkey 액션으로부터 받은 인수를 출력해 그대로 후속의 액션에 건네줄 뿐입니다.요약
직접 DB를 조작하고 있으므로 업데이트로 사용할 수 없게 될 가능성도 있습니다만, 번역 워크플로에 한정하지 않고, 범위 선택한 캐릭터 라인을 여러가지 가공하고 싶을 때에 가공전의 캐릭터 라인이 클립보드 이력에 불필요한 경우는, 이번 의 방법으로 회피할 수 있으므로 꼭 활용해 보세요.
(원래 클립보드 이력에 보존되어 버리는 현상 자체.
Reference
이 문제에 관하여(Alfred에서 범위 선택한 문자열을 단축키로 가져올 때 클립 보드 기록을 더럽히지 않는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/oskamathis/items/4db3dcbd0a9f2d507298텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)