Ubuntu 16.04起動アプリケーションでの奇妙な動作


1

いくつかのスタートアップアプリケーションがあります。

user@host:~$ ls -l .config/autostart/
. . .
. . . XXX.desktop
. . . YYY.desktop
. . . ZZZ.desktop
. . . setxkbmap.desktop

これらの中にはCaps Lockを無効にするコマンドがあります。

setxkbmap -option caps:none

まず、これらの起動コマンドを編集しようとするたびに sleep、うまくいかないようです。

sleep 20; setxkbmap -option caps:none

または...

sleep 20 && setxkbmap -option caps:none

そして、2番目に、すべての起動コマンドからsleepコマンドを削除してからCaps Lock disableコマンドをリストの先頭に追加した場合、それは機能しませんが他のユーザーは機能します...

スタートアップアプリケーション以外の端末で実行した場合、すべてのコマンドは問題なく動作します。そのため、起動時に動作しない理由についてはよくわかりません。

更新

@ Xen2050の回答に基づいて、私は彼が提案した方法を実行可能な解決策に適応させました。 2つの起動コマンドでは、このフォームを使用しています。

bash -c "sleep 20; specific_command"

そして他の人たちは、私はデフォルトの起動コマンドとして残しました。マシンの起動が速く、Caps Lock無効化コマンドが一貫して機能しているので、これは問題ありません。

アップデート2

いくつかの追加の研究をしました、そしてそれを見つけました xkb おそらくCaps Lockを無効にするための最良の方法です。この質問はスタートアップアプリケーションに関するものなので、受け入れられた答えは有効です。しかし、Ubuntu 16.04でCaps Lockキーを無効にする方法を探している人が他にいたら、ここにいくつかの役に立つヒントがあります。

編集を続けました /usr/share/X11/xkb/symbols/pcしかし、(@quixoticが示唆しているように)ユーザーオーバーライドを使用するのがおそらくそれを行うための正しい方法だと思います。

別のキーに再マッピングされたときに、TerminalにPageUpとPageDownを認識させる


1
GNOMEはxkb設定を自分で引き継ぐのが好きなので、どちらかをする必要があります。 GNOMEにあなたの設定を使うように説得する または GNOMEにキーボード設定だけを任せるよう説得する 。 xkbのレイアウトやオプションをカスタマイズするためには、 システムファイルを変更するよりもユーザーファイルを作成する
quixotic

@quixotic彼らのリソースをありがとう。私はこれを調べます。
nicorellius

回答:


1

私は.desktopファイルがそれらを実行しないと思います Exec= フル/通常のシェルでコマンドを実行するため、複数のコマンドを使用する場合は、それらのコマンドを使用してシェルを明示的に実行する必要があります。例えば、これらはうまくいくはずです。

Exec=sh -c "sleep 5; notify-send test-delay"

またはあなたの場合:

Exec=sh -c "sleep 20; setxkbmap -option caps:none"

答えとヒントをありがとう...私はこれを試しました、そして、それは私のスタートアップコマンドの1つがこの方法で働いているようですが、小さな例外があります。私が使っている: bash -c "sleep 20; specific_command"。ただし、他の2つの起動コマンドが、インストール時に設定された「デフォルト」に戻っています。そして、それでも、 setxkbmap 他の人がコマンドを使用しても、コマンドはまだ機能しません。 sleep コマンド(またはあなたが提案したように、シェルで実行されます)。
nicorellius

うーん、おそらくいくつかの不足している設定や間違ったパスワードがありますか?いくつかのコマンドをbashでファイルにエコーした.desktopファイルを試しました。 env 基本的には端末と同じですが、TERM =を指定せずに〜/ .config / autostartで実行します。 set 異なるSHELLOPTS& TERM =ダムで、たくさんの機能がありません。標準出力をリダイレクトしてみることができます役立つ可能性のあるメッセージがある場合はファイルへの標準エラー出力を実行します。 bash -c "stuff" 端末内の設定は非常によく似ています。出力が見やすくなりました。
Xen2050

1
"setxkbmap caps:none"というPSでは、一部のクリアと再びcapslockを修正するためにフットワークを再設定します。私はsetxkbmapを定期的には使用しないので、なぜうまく動かないのかわかりません。また、他の2つの起動コマンドが新しい設定/ new Exec =行を保持していないという意味ですか?私はあなたがそれらがデフォルト設定で実行されていたことをあなたが思ったが、.desktopファイルが正しく保存されないなら別のアカウントにログイン中に編集してみてください。ログインしている、特にデスクトップの設定
Xen2050

追加情報については、@ Xen2050に感謝します。 Caps Lockを無効にするために何を使用しますか? 2、3回再起動した後、問題なく動作していると思ったとき、私はあなたの一般的な問題は解決したと思います。 sleepsetxkbmap caps:none 他のコマンドの後まで。しかし、これは悪いことです。ログイン時にCaps Lockキーが機能するため(ログインシェルなど、ログイン後数秒で無効になるようです)、そもそもそれを無効にしたい理由の一部です。
nicorellius

私のcapsロックは "off"で始まり、無効にするための特別なことは何もしていません。実際にはmanページを読んでください。 "caps:none"コマンドを実際には何もしなくても貼り付けた後、caps lockボタンが再び機能するようにしばらくの間操作します(十分に安全に見えます;-)このQは起動時に物事を実行するいくつかの方法があります askubuntu.com/questions/228304/…
Xen2050
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.