お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2024-05-18 16:35:45

subzero
メンバ
From: 北怪道
登録日: 2011-07-16

GUI起動時に自動的にキーボードでマウスを動かせるようにしたい@Ubuntu22.04

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.target

2)

コード:

$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

オフライン

 

#2 2024-05-18 22:45:25

kanchi
メンバ
登録日: 2024-05-11

Re: GUI起動時に自動的にキーボードでマウスを動かせるようにしたい@Ubuntu22.04

そもそもの話なのですが、gsettingsで設定したものって自分の環境では再起動前の値を引き継ぐんですが、それがうまく動かないって認識で大丈夫でしょうか?

オフライン

 

#3 2024-05-19 08:07:01

subzero
メンバ
From: 北怪道
登録日: 2011-07-16

Re: GUI起動時に自動的にキーボードでマウスを動かせるようにしたい@Ubuntu22.04

kanchi による投稿:

そもそもの話なのですが、gsettingsで設定したものって自分の環境では再起動前の値を引き継ぐんですが、それがうまく動かないって認識で大丈夫でしょうか?

kanchiさん、お返事ありがとうございます。kanchiさんの返答にヒントを得て調べたところ、マウスキーにはトグルスイッチがあるという情報があり、[NumLockキー]を2回押すとマウスキーが有効になりました。{マウスキー機能自体は、最初の投稿の2)の方法、または、未確認ですが、GUIの設定メニューのAccessibilityのMouse Keysをオンにする事により有効になっているようです。}私の環境がノートブックだからこの[NumLockキー]操作が必要なのかどうか不明ですが、簡単にマウスキーをオンにすることができるようになりました。ありがとうございました。

オフライン

 

Board footer

Powered by FluxBB