シェルスクリプトでKDEのマウステーマとボタン設定を変更する

シェルスクリプトでKDEのマウステーマとボタン設定を変更する

私は左利き用のマウスを試していますが、右利き用モードと左利き用モードを簡単に切り替えることができます。 Windows用のユーティリティは次のとおりです。マウスボタンの切り替えこのスイッチにキーをバインドできます。つまり、ボタンを交換してポインタの向きを変更できます。

シェルスクリプトでKDEと同様のことをしたいと思います。

置換ボタンを使用すると簡単ですが、xinputコマンドラインでマウスのテーマを左のテーマに変更するのに問題があります。また、変更がxinputセッションにバインドされ、KDE設定が保存されるため、ボタンを交換するためのKDEソリューションを見つけることをお勧めします。リセット後、右手ボタン付きの左手テーマを使用したくありません...

問題は、KDEのコマンドラインユーティリティに関するドキュメントがあまり見つからないことです。私が見つけたこの投稿これはお勧めですkapplymousetheme。有望に見えますが、使い方がわかりません(マンページもなく--helpフラグもありません...)。

kcmshell4 cursorthemeまた、マウステーマダイアログボックスが開き、モジュールにパラメータを送信するためkcmshell4のフラグを受け入れることがわかりましたが、--argsダイアログボックスを開かずにマウステーマを変更したい場合は、どのパラメータを送信するかを見つけることができず、把握することもできません。これはサポートされます)。

また、これらの変更がすぐに適用されることを望んでいることも指摘したいと思います。設定ファイルを変更してシステムを再起動する必要がある場合(またはXまたはKDMのみを再起動しても)機能しませんが、変更がすぐに有効になるように設定ファイルを再ロード(もちろんコマンドラインユーティリティを使用して)できる場合は問題ありません。

よろしくお願いします!

答え1

2年遅れましたが、Plasma 5でこの問題を再作業しました。おそらく、これはこの答えを尋ねる次の人に役立ちます。

これがマウスボタンを交換するために使用するKDEメソッドです。テーマの変更にも同じアイデアを適用できます。

基本的にすべきことは、$HOME/.config/kcminputrcLeftHandedとRightHandedの間でMouseButtonMappingを変更してから呼び出すことkcminit mouseです。

#!/bin/bash

CONFIG=$HOME/.config/kcminputrc
CURRENT=`kreadconfig --file $CONFIG --group Mouse --key MouseButtonMapping`

if [ $CURRENT = "LeftHanded" ]; then
  kwriteconfig --file $CONFIG --group Mouse --key MouseButtonMapping RightHanded
elif [ $CURRENT = "RightHanded" ]; then
  kwriteconfig --file $CONFIG --group Mouse --key MouseButtonMapping LeftHanded
fi

kcminit mouse

KDE Plasma 4のファイルは$HOME/.kde/share/config/kcminputrcPlasma 5のファイルと同じであるため、$HOME/.config/kcminputrcスクリプトを編集する必要があるかもしれません。

その後、グローバルショートカットを割り当てることができるように、このスクリプトを私のデフォルトのKDEアプリケーションメニューに追加しました。

2018アップデート:

KDE設定ファイルの変更により、スクリプトは次のようになります。

#!/bin/bash

CONFIG=$HOME/.config/kcminputrc
CURRENT=`kreadconfig --file $CONFIG --group Mouse --key XLbInptLeftHanded`

if [ $CURRENT = "true" ]; then
  kwriteconfig --file $CONFIG --group Mouse --key XLbInptLeftHanded false
elif [ $CURRENT = "false" ]; then
  kwriteconfig --file $CONFIG --group Mouse --key XLbInptLeftHanded true
fi

kcminit mouse

2022年アップデート:

kreadconfigとkwriteconfigはkreadconfig5とkwriteconfig5です。

kcminitコマンドラインが少し変更されました。

#!/bin/bash

CONFIG=$HOME/.config/kcminputrc
CURRENT=`kreadconfig5 --file $CONFIG --group Mouse --key XLbInptLeftHanded`

echo $CURRENT

if [ $CURRENT = "true" ]; then
  kwriteconfig5 --file $CONFIG --group Mouse --key XLbInptLeftHanded false
  #/usr/bin/kdialog --title "Leftyswitch" --passivepopup "Right handed mouse" 3
elif [ $CURRENT = "false" ]; then
  kwriteconfig5 --file $CONFIG --group Mouse --key XLbInptLeftHanded true
  #/usr/bin/kdialog --title "Leftyswitch" --passivepopup "Left handed mouse" 3
fi

kcminit kcm_mouse

答え2

次のように簡単に左利きに変更できます。

 xmodmap -e "pointer = 3 2 1"

以下で文書を見つけることができます。https://help.ubuntu.com/community/MouseCustomizations

答え3

構成の実際の名前はソースコードでしか見つからないようです。https://github.com/KDE/plasma-desktop/tree/d3c40a0582edbfa2674006e5a15e991a65f8f409/kcms/mouse/backends/x11

設定を処理する方法を探しています。~/.config/kcminputrc

libinput(代わりに)を使用している場合は、確認したい場合がlibevdevありますx11_libinput_dummydevice.h。下の3行段落の最後の行(属性名に「サポート」または「デフォルト」がある項目ではない)が必要な場合は、必要なものを教えてください。マウス設定

Apply this を実行すると、kcminit次のような出力が得られます。

Initializing  "/usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/kcms/systemsettings/kcm_mouse.so"
Initializing  "/usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/kcms/systemsettings/kcm_style.so"
Initializing  "/usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/kcms/systemsettings/kcm_fonts.so"
Initializing  "/usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/kcms/systemsettings/kcm_touchpad.so"
kcm_touchpad: Using X11 backend
Initializing  "/usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/kcms/systemsettings/kcm_kgamma.so"

関連情報