Gtk
私は、-module (recent-manager 機能のために からインポート)を使用する python3 スクリプトを持っており、現在の xserver セッション ( Ubuntu ではサービス)gi.repository
へのリンクを必要とします。lightdm
コンソール (xserver セッション内) 経由で手動で実行することはできますが、自動実行にしたいです。
init.d スクリプトは動作しません (DISPLAY 変数を 0.0 に設定)。 を使用すると、xvfb-run
init.d スクリプトは私のスクリプトを実行しますが、予想どおり仮想 xserver 環境で実行されます (私のものではありません)。init.d スクリプトを現在の xserver セッションに接続する同等のものはありませんか?
これまで、.xinitrc
ファイル ( 内~/
、実行可能) を試したほか、 を.xprofile, .xsession, .xsessionrc
介して最初のファイルにすべてリンクするファイルを作成しましたln -s
。テストのために追加しようとしましたが、再起動しても、PC 全体を再起動して再度ログインしても、gnome-terminal &
ターミナルは表示されませんでした。lightdm
私も試してみましたXセッション再開時に設定スクリプトを実行するしかし、エラーが発生しますCan't open /usr/share/acpi-support/power-funcs
。
の提案upstart
に従って、lightdmで起動スクリプトを実行するxserver 表示変数 (またはハンドル?) も提供されず、lightdm
起動後に実行されるだけですよね?
どこかに入れておこうかなxorg.conf
?(xrandr のカスタマイズを永続的にするにはどうすればよいですか?) 私を殴る..
(私のスクリプトは最近のファイルのクイックリストを作成し、Windows と同様に Unity ランチャーの右クリック メニューに追加します。https://github.com/thirschbuechler/ubuntu-recentquicklists)
答え1
多くの場合と同様に、ここでの主な問題はタイミングです。
- スクリプトはユーザーレベルで実行する必要がありますログイン後ランチャー項目を編集するため、ユーザー レベルで編集されます。
- それでも、スクリプトが何をすべきかを考えると (説明を読んで)、スクリプトはデスクトップが完全に読み込まれるまで少し待つ必要があります。Unity ランチャーは、ログイン後に最初に「準備完了」になるものではありません。スクリプトの実行が早すぎると、スクリプトが壊れたり、ターゲットを逃したりします。
要するに
ログイン後約 10 ~ 15 秒後にスクリプトを実行する必要があります。これは、次のいずれかを追加することで実行できます。
/bin/bash -c "sleep 15 && python /path/to/script.py"
(スクリプトが実行可能でない場合)、または
/bin/bash -c "sleep 15 && /path/to/script.py"
(スクリプトがは実行可能ファイル) をユーザーのスタートアップ アプリケーションに追加します (ダッシュ > スタートアップ アプリケーション > 追加)。
実行するすべてのユーザー
スクリプトを実行する必要がある場合すべてのユーザー(ログイン後)全ユーザーのスタートアップアプリケーションに一括で追加できます。
これを行うには、以下のコードを空のファイルにコピーし、次の行から始めて、Name=
その行にスクリプトへの正しいパスを設定します。
Exec=/bin/bash -c "sleep 15 && python /path/to/script.py"
次に、ファイルを(または で終わる任意の名前)/etc/xdg/autostart
として保存します。launch_script.desktop
.desktop
[Desktop Entry]
Name=Name
Exec=/bin/bash -c "sleep 15 && python /path/to/script.py"
Type=Application