시작 시 KWin 스크립트를 실행하는 방법과 시작 시 실행되지 않는 경우 설치 스크립트의 목적은 무엇입니까?

시작 시 KWin 스크립트를 실행하는 방법과 시작 시 실행되지 않는 경우 설치 스크립트의 목적은 무엇입니까?

나는 최근에 KWin 스크립트를 가지고 놀았습니다.https://develop.kde.org/docs/plasma/kwin/

제가 이해한 바로는 다음 방법 중 하나로 IDE를 열어 KWin 스크립트를 생성할 수 있습니다.

  • qdbus org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.showInteractiveKWinConsole콘솔에서 명령 실행
  • plasma-interactiveconsole --kwin콘솔에서 명령 실행
  • 누른 Alt+F2다음 Enter를 누른 wm console다음 Enter를 누르세요.

이제 다음과 같은 스크립트를 만들었습니다.

print("registerShortcut ...");;
registerShortcut("...","...", "Meta+C", function() {
   ...
});

IDE에서 성공적으로 실행할 수 있으며 실행 시 체크인하면 journalctl위의 RegisterShortcut 문자열을 인쇄하는 로그가 추가됩니다.

$ journalctl -f | grep registerShortcut
Nov 12 xx:xx:xx HOST kwin_x11[1105]: js: registerShortcut ...

이제 위 함수에서 지정한 모든 작업을 수행할 수 있는 멋진 Meta+C 단축키가 생겼습니다.

Alt+F2하지만 바로가기를 활성화하기 위해 부팅할 때 마다 Enter 키를 누른 wm console다음 Enter 키를 누른 다음 수동으로 스크립트를 열거나 로드하고 싶지는 않습니다 .

그래서 난 보고 있어https://develop.kde.org/docs/plasma/kwin/#packaging-kwin-scripts패키지로 만든 다음 내 컴퓨터에 설치하면 시작 시 실행될 것입니다. 그래서 ~/tools/kwin-script-1에 넣었습니다.

파일 ~/tools/kwin-script-1/metadata.desktop:

[Desktop Entry]
Name=kwin-script-1
Comment=kwin-script-1
Icon=preferences-system-windows

X-KDE-PluginInfo-Author=xxx
[email protected]
X-KDE-PluginInfo-Name=kwin-script-1
X-KDE-PluginInfo-Version=1.0
X-KDE-PluginInfo-License=GPL

Type=Service
X-KDE-ServiceTypes=KWin/Script
X-Plasma-API=javascript
X-Plasma-MainScript=code/main.js

파일 ~/tools/kwin-script-1/contents/code/main.js

print("registerShortcut ...");;
registerShortcut("...","...", "Meta+C", function() {
   ...
});

그럼 내가 설치해kpackagetool5 --type=KWin/Script -i ~/tools/kwin-script-1

그러나 그것이 하는 일은 그것들을 에 복사하는 것 ~/.local/share/kwin/scripts/kwin-script-1/뿐이고, 시작 시에는 실행되지 않습니다. 출력이 journalctl -b | grep registerShortcut비어 있다는 사실에서 알 수 있듯이

따라서 질문은 다음과 같습니다.

  • 시작 시 KWin 스크립트를 실행하는 방법은 무엇입니까?
  • KWin 스크립트를 설치해도 부팅 시 실행되지 않는다면 왜 설치해야 할까요? 설치(또는 ~/.local/share/kwin/scripts/...?
  • 알아요명령줄에서 kwin 스크립트를 실행하는 방법은 무엇입니까?나는 그것들을 사용해 보았습니다(시작 시 자동으로 실행하기 위해 bash_profile 또는 bashrc에 추가하려고 생각 중입니다). 작동하지 않습니다(수동으로 콘솔을 통해 또는 bash_profile/bashrc를 통해).
    • 주문하다:
script="/home/kristian/.local/share/kwin/scripts/kwin-script-1/contents/code/main.js"
num=$(dbus-send --print-reply --dest=org.kde.KWin \
    /Scripting org.kde.kwin.Scripting.loadScript \
    string:"$script" | awk 'END {print $2}' )
dbus-send --print-reply --dest=org.kde.KWin /$num \
    org.kde.kwin.Scripting.run
  • 산출:
Error org.freedesktop.DBus.Error.UnknownInterface: No such interface 'org.kde.kwin.Scripting' at object path '/4'
  • 주문하다:
$ script="/home/kristian/.local/share/kwin/scripts/kwin-script-1/contents/code/main.js"
num=$(dbus-send --print-reply --dest=org.kde.kwin.Scripting \
    /Scripting org.kde.kwin.Scripting.loadScript \
    string:"$script" | awk 'END {print $2}' )
dbus-send --print-reply --dest=org.kde.KWin /$num \
    org.kde.kwin.Scripting.run
  • 산출:
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.kde.kwin.Scripting was not provided by any .service files
Error org.freedesktop.DBus.Error.UnknownInterface: No such interface 'org.kde.kwin.Scripting' at object path '/'

답변1

스크립트가 설치되어 있을 뿐만 아니라 활성화되어 있는지 확인하세요.

시스템 설정 > 창 관리 > KWin 스크립트 > 스크립트 체크박스 선택 > 적용

또는

kwriteconfig5 --file kwinrc --group Plugins --key nameofyourkwinscriptEnabled true
qdbus org.kde.KWin /KWin reconfigure

관련 정보