
Ubuntu日本語フォーラム

ログインしていません。
Ubuntu22.04(X11)です。現状、以下のmousekeys.shを~/.bashrcで実行することで、マウスをキーボードで動かすこと(以下マウスキーと呼称)自体はできるのですが、.bashrcを実行するために毎回ターミナルを起動しなければならないため、GUIを起動した時に自動的にこのマウスキーを有効にしたいです。
$cat mousekeys.sh #!/usr/bin/bash #マウスキーを有効にするシェルスクリプト gsettings set org.gnome.desktop.a11y.keyboard mousekeys-enable false gsettings set org.gnome.desktop.a11y.keyboard mousekeys-enable true
以下の2つの方法を試してみましたがうまく行きませんでした。
1)Systemdのサービスとして起動時にシェルスクリプトを実行。
2)gschemaのデフォルト値を変更し、glib-compile-schemasを実行。
1)
$ sudo systemctl status myscript-mousekeys.service #自作したマウスキーサービスの状態はok
[sudo] password for ****:
● myscript-mousekeys.service - mousekeys on boot
Loaded: loaded (/etc/systemd/system/myscript-mousekeys.service; enabled; vendor preset: enabled)
Active: active (exited) since Sat 2024-05-18 14:48:22 JST; 49s ago
Process: 732 ExecStart=/usr/bin/bash -c /usr/bin/myscript-mousekeys (code=exited, status=0/SUCCESS)
CPU: 6ms
May 18 14:48:22 LB-PF.jp systemd[1]: Starting mousekeys on boot...
May 18 14:48:22 LB-PF.jp systemd[1]: Started mousekeys on boot.
$ cat /usr/bin/myscript-mousekeys #マウスキーサービスで実行させるシェルスクリプト
#!/bin/bash
stop(){
gsettings set org.gnome.desktop.a11y.keyboard mousekeys-enable false
}
start(){
stop
gsettings set org.gnome.desktop.a11y.keyboard mousekeys-enable true
}
case $1 in
start|stop) $1;;
esac
$ cat /etc/systemd/system/myscript-mousekeys.service #自作したマウスキーサービス
[Unit]
Description=mousekeys on boot
[Service]
Type=forking
ExecStart=/usr/bin/bash -c '/usr/bin/myscript-mousekeys'
RemainAfterExit=true
[Install]
WantedBy=multi-user.target2)
$cat /usr/share/glib-2.0/schemas/org.gnome.desktop.a11y.keyboard.gschema.xml #スキーマファイル、マウスキーのデフォルト値をtrueに変更
<?xml version="1.0" encoding="UTF-8"?>
<schemalist gettext-domain="gsettings-desktop-schemas">
<schema id="org.gnome.desktop.a11y.keyboard" path="/org/gnome/desktop/a11y/keyboard/">
<key name="enable" type="b">
<default>true</default> #[[[[[false->trueに変更]]]]]
<summary>Enable accessibility keyboard shortcuts</summary>
(中略)
</key>
<key name="mousekeys-enable" type="b">
<default>true</default> #[[[[[false->trueに変更]]]]]
<summary>Enable “Mouse Keys”</summary>
<description>Whether the “Mouse Keys” accessibility feature is turned on.</description>
(後略)
$cd /usr/share/glib-2.0/schemas/
$glib-compile-schemas .環境
$uname -a Linux 6.5.0-26-generic #26~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Mar 12 10:22:43 UTC 2 x86_64 x86_64 x86_64 GNU/Linux echo $XDG_SESSION_TYPE x11
オフライン
そもそもの話なのですが、gsettingsで設定したものって自分の環境では再起動前の値を引き継ぐんですが、それがうまく動かないって認識で大丈夫でしょうか?
オフライン
kanchi による投稿:
そもそもの話なのですが、gsettingsで設定したものって自分の環境では再起動前の値を引き継ぐんですが、それがうまく動かないって認識で大丈夫でしょうか?
kanchiさん、お返事ありがとうございます。kanchiさんの返答にヒントを得て調べたところ、マウスキーにはトグルスイッチがあるという情報があり、[NumLockキー]を2回押すとマウスキーが有効になりました。{マウスキー機能自体は、最初の投稿の2)の方法、または、未確認ですが、GUIの設定メニューのAccessibilityのMouse Keysをオンにする事により有効になっているようです。}私の環境がノートブックだからこの[NumLockキー]操作が必要なのかどうか不明ですが、簡単にマウスキーをオンにすることができるようになりました。ありがとうございました。
オフライン