명령줄에서 Openbox 키 바인딩 수정

명령줄에서 Openbox 키 바인딩 수정

저는 Openbox를 기반으로 하는 LXDE 데스크탑 환경을 사용하고 있습니다. 나는 내 것을 편집하여 키 바인딩을 변경하는 방법을 알고 있습니다 ~/.config/openbox/lxde-rc.xml. 예를 들면 다음과 같습니다.

<keybind key="A-F11">
  <action name="ToggleFullscreen"/>
</keybind>

그러나 현재 세션에만 유효한 비지속적 변경을 수행해야 합니다. XML 파일을 편집하지 않고 명령줄에서 이 변경을 수행해야 합니다.

그게 가능합니까?

답변1

작성하는데 복잡성이 필요한 언어인 bash를 위한 솔루션입니다!

 #!/usr/bin/bash

 RCXML='rc.xml'

 find=$(cat $RCXML | grep -i -B 1 $1 | head -2)

 editkeys=$(cat $RCXML | grep -i -B 1 $1 | head -1)

 echo ''
 echo '  FOUND THE FOLLOWING SHORTCUT:'
 echo " ${find}"
 echo ''
 echo '  EDITING ABOVE KEYBIND TO:'
 echo "     <keybind key=\"$2\">"
 echo ''
 echo '  HIT ENTER TO CONFIRM.'
 read y

 if [ -z $y ]; then
     sed -i "s/$editkeys/\ \ \ \ <keybind key=\"$2\">/g" $RCXML
 fi

사용 예:

 bash rcedit.sh ToggleShowD C-S-u

참고: 서로 다른 두 항목의 키 바인딩이 동일한 경우 파일의 마지막 항목을 사용합니다. 스크립트는ggledesktop과 같은 작업 이름으로 찾은 첫 번째 스크립트를 편집합니다. 하지만 분명히 키 바인딩으로 보도록 편집할 수는 있지만 키 바인딩이 고유할 가능성은 거의 없습니다.

RCXML 변수에 전체 경로를 지정하지 않는 한 스크립트는 rc.xml과 동일한 폴더에 있어야 하며 globbing/tilda는 변수에서 작동하지 않습니다.

또한 사용자 정의 바로가기를 편집하려면 다음 줄을 추가하세요.

 <action name="Execute">

다음 추가 줄을 포함하도록 bash 스크립트를 조정해야 합니다.

 find=$(cat $RCXML | grep -i -B 2 $1 | head -3)
 editkeys=$(cat $RCXML | grep -i -B 2 $1 | head -1)

마우스 단축키를 편집하려면 추가 편집을 수행해야 합니다.

액션 이름 항목이 중첩되어 있지만 XML 형식을 선호하는 Ruby를 사용하여 무언가를 만들려고 합니다.~에키 바인딩은 간단한 솔루션을 코딩하는 잘못된 방법입니다. 또한 rc.xml 파일에는 주석 줄이 가득 차 있어 제가 시도 중인 두 개의 Ruby XML 모듈을 혼동하게 됩니다. 하지만 그것들을 제거하면 루비로 무언가를 만들 수 있을지도 모릅니다.

.bashrc에 다음 줄을 추가할 수도 있습니다.

 alias backuprcxml="~/.config/openbox/lxde-rc.xml > ~/.config/openbox/lxde-rc.xml.backup"
 alias restorercxml="~/.config/openbox/lxde-rc.xml.backup > ~/.config/openbox/lxde-rc.xml"

그런 다음 이것을 한 번 실행하여 백업을 만듭니다.

 backuprcxml

그런 다음 ~/.config/openbox/autostart에 다음 줄을 추가합니다.

 ~/.config/openbox/lxde-rc.xml.backup > ~/.config/openbox/lxde-rc.xml

답변2

몇 년 전 openbox를 사용하다가 발견했습니다.OB 단축키도움이 되는. 명령줄 인터페이스와 트레이 아이콘도 있습니다.

내가 원하는 것을 얻기 위해 페어링해야 했는지 기억이 나지 않지만 xdotool꽤 쉽게 작동시킬 수 있을 것입니다.

관련 정보