web-dev-qa-db-ja.com

私のubuntu-serverは起動時に私のgtkベースのプログラムを実行しません!

私はUbuntuサーバー16.04を持っています。 gtk3をインストールし、次のコマンドでプログラムを手動で実行できます:./imgディレクトリ/home/mに移動したとき。 enter image description here

しかし、この行を/etc/rc.localファイルに追加しようとすると、次のようになります。

/home/m/img &

それはうまくいきませんでした。これは私のrc.localの完全なコンテンツです:

startx
/home/m/img &
exit 0

次に、次の内容で~/.xinitrcファイルを作成しようとしました。

 #!/usr/bin/env bash
/home/m/img &
exec openbox-session

次に、次のコマンドで実行可能にしました:chmod +x ~/.xinitrc

しかし、何も得られなかったので(再起動後にオープンボックスが表示されなかったとしても)、次のコマンドも実行しました。

ln -s ~/.xinitrc ~/.xsession

その後、オープンボックスが戻ってきましたが、起動後にプログラムが起動しませんでした。または他の時間!

私の目標はこれです:起動後、ボードの電源を入れると、gtkベースのプログラムが実行され、イメージが表示されます。キオスクのようなものですが、c ++プログラムは画像のみを表示する必要があります!

どうすればいいですか?

編集:次の行を追加しました:/home/m/img &/etc/xdg/openbox/autostartファイルに追加しました。ログイン後は機能しますが、画像は表示されず、画面の中央にファイルアイコンのみが表示されます。しかし、このアドレス/home/m/に移動してこのコマンド./imgを実行すると、画像が全画面で表示されます。

なぜこれが起こるのですか?

**また、マウスポインタとウィンドウの境界線を非表示にするのが好きですが、方法がわかりませんか?

EDIT2:これは私が起動後に見るものです: enter image description here

そして、これは私がこのコマンドを試した後に見るものです(書き込みボタンの隅にアイコンが表示されます):/home/m/img &enter image description here

2
user145959

**また、マウスポインタとウィンドウの境界線を非表示にするのが好きですが、方法がわかりませんか?

-- -nocursorstartxに追加して、マウスポインタを非表示にすることができます。

exec startx -- -nocursor

編集用のファイル~/.config/openbox/rc.xml/etc/xdg/openbox/rc.xmlがあります(参照: http://openbox.org/wiki/Help:Configuration )、例: (そのファイルの下部):

    ...
  </menu>
    <applications>

    <application class="*">
        <decor>no</decor>
        <position force="yes">
              <x>50</x>
              <y>50</y>
              <monitor>1</monitor>
        </position>
        <size>
              <width>300</width>
              <height>300</height>
        </size>
        <focus>yes</focus>
        <desktop>1</desktop>
        <layer>normal</layer>
        <iconic>no</iconic>
        <skip_pager>no</skip_pager>
        <skip_taskbar>no</skip_taskbar>
        <fullscreen>no</fullscreen>
        <maximized>false</maximized>
    </application>

</applications>
</openbox_config>

上記の<decor>no</decor>により、画像アプリはボーダレスになります。画像に完全なサイズが表示されない場合は、<width><height>を調整してください。アプリの<x><y>を調整することもできます。

もっとあります、例えばメニュータグをコメントアウトします(複数の<contextタグにこの<menu>エントリがあります):

  <mousebind button="Right" action="Press">
    <action name="ShowMenu">
        <!-- menu>root-menu</menu -->
    </action>
  </mousebind>

右クリックしてメニューを表示できなくなります(startx -- -nocursorマウスカーソルを非表示にすると、右クリックしてメニューを開くことができます)。

右クリックメニュー項目をカスタマイズするためのopenbox/menu.xmlもあります。例:

  <item label="Run Image app">
    <action name="Execute"><execute>/home/m/img</execute></action>
  </item>

menu.xmlまたはrc.xmlを編集して有効にしたら、メニュー項目Reconfigureを右クリックして選択できます。

また、自動起動の問題を非rootとして解決するために、回答 ここ を投稿しました。

4
林果皞

Openbox(ログの1つに従って使用しているもの)を使用する場合、(ログイン後に)単一ユーザー用のグラフィカルアプリケーションを開くためのより良いオプションは、~/.config/openbox/autostartを使用することです。

すべてのユーザーに対して、/etc/xdg/openbox/autostartを試してください。

ソース: http://openbox.org/wiki/Help:Autostart

1
Zip