나는 최근에 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