Gnome Shell: Menjalankan skrip shell setelah sesi dimulai?

9

Saya pengguna lama KDE, tidak pernah melihat GNOME karena mungkin Mandrake Linux 10 sesuatu. Kemarin saya melihat GNOME Shell di Youtube dan berpikir mungkin layak untuk dilihat.

Sebenarnya ini layak, tetapi saya tidak dapat menemukan satu momen pun.

Saya punya skrip shell yang digunakan untuk berjalan pada instalasi Laptop KDE saya selama berabad-abad:

synclient |grep -E 'TapT|RightB|EdgeScr'|awk '{print $1}'|while read item; do synclient $item=0; done
synclient VertScrollDelta=-111
synclient HorizScrollDelta=1
synclient RightEdge=999999999
synclient TopEdge=0
synclient CircularScrolling=0
synclient BottomEdge=999999999
synclient RightButtonAreaLeft=9999999
synclient ClickFinger3=2
synclient HorizScrollDelta=0
synclient HorizTwoFingerScroll=0 

Ini menonaktifkan klik kanan, semua ketukan, membalikkan arah gulir, menonaktifkan pengguliran horizontal dan lainnya. Menu touchpad atau di KDE tidak di gnome tidak mengizinkan konfigurasi seperti ini. (TBH, hanya Mac dari semua sistem operasi yang memiliki gui untuk mengatur touchpad persis seperti itu :)).

Saya tidak tahu, bagaimana cara menjalankan ini setelah sesi shell gnome dimulai? Saya sudah mencoba ini tanpa hasil:

[1] % cat /home/neko/.config/autostart/script.desktop 
[Desktop Entry]
Name="Auto stuff"
GenericName="Auto startup stuff"
Comment="Synclient mostly"
Exec=/home/neko/bin/auto_stuff.sh
Terminal=false
Type=Application
X-Gnome-Autostart=true

Ada saran lain, tolong? Terima kasih.

Mikhail Krutov
sumber
1
Apakah .desktopfile itu dapat dieksekusi?
muru
Saya tidak tahu bahwa file .desktop harus memiliki izin yang dapat dieksekusi. :)
Mikhail Krutov
3
Peluncur (pengguna) lokal, ya, memang harus begitu +x. Buka ~/.config/autostartdi Nautilus dan klik dua kali script.desktop, Anda akan diminta untuk "menandai sebagai tepercaya" (yang setara dengan chmod +x).
don_crissti

Jawaban:

7

Anda dapat menggunakan program gnome-session-properties. Cukup jalankan dari prompt shell Anda (gnome-terminal):

$ gnome-session-properties

Ini akan membuka GUI tempat Anda dapat mengonfigurasi (yaitu, menambah, mengedit, menghapus, mengaktifkan dan menonaktifkan) program startup.

Baik dan mudah. Nikmati.

Pembaruan: Seperti dicatat oleh don_crissti (terima kasih) dalam komentar di bawah, fungsionalitas program startup gnome-session-properties telah dimigrasikan gnome-tweak-toolsejak Gnome 3.12 (yang btw adalah alat yang hebat, tetapi sedikit berantakan karena terlalu banyak memusatkan fungsi). Jadi, untuk versi 3.12 ke atas, ini adalah tempat baru untuk mencari.

OBS: Dan btw, menggunakan metode ini, Anda tidak perlu membuat .desktopfile, Anda cukup menentukan baris perintah dari /home/neko/bin/auto_stuff.shskrip yang Anda buat (atau skrip atau perintah lain yang Anda inginkan).

Marcelo
sumber
Perlu dicatat bahwa gnome-session-propertiesbiner tidak lagi hadir dalam rilis Gnome 3 terbaru (dihapus pada 3.12IIRC). Its fungsi termasuk dalam gnome-tweak-tool.
don_crissti
Menarik ... Saya menggunakan Fedora 20 (dengan Gnome 3.10), yang masih memilikinya. Sedih bahwa tim Gnome terus-menerus melumpuhkan (atau membentuk) perangkat lunak sesuai selera pengguna. Setidaknya mereka menyimpan fungsionalitas di gnome-tweak-tool, jadi ini dia tempat baru untuk melihat ...
Marcelo
gnome-tweak-tools tidak memungkinkan Anda untuk menambahkan skrip di lokasi tertentu. Anda perlu melompati simpai dengan file desktop.
RichieHH
Namun, properti-sesi-gnome masih berfungsi setidaknya di ubuntu gnome 17.04; mulai saja dari shell.
Tim Richardson
3
Hai @ Marscelo untuk saya, (Ubuntu 17.04) Saya tidak dapat menemukan elemen UI di gnome-tweak-tool yang memungkinkan saya memasukkan skrip baris perintah atau bahkan menjelajahinya. Mungkin Gnome di Ubuntu sedikit ketinggalan, meskipun sebagian besar 3,24. Ini bisa jadi mengapa properti gnome-sesi-masih tersedia. Saya baru ke gnome, bermigrasi dari xfce. Dari apa yang saya lihat, gnome-tweak-tool tidak memiliki fungsi seperti gnome-session-properties ketika datang ke skrip startup dan aneh betapa sulitnya tampaknya.
Tim Richardson
2

Dalam .desktopfile kasusnya adalah signifikan . Template berikut berfungsi di bawah Fedora 27 dengan shell GNOME (yaitu Exec=nilai dieksekusi selama sesi dimulai):

[Desktop Entry]
Encoding=UTF-8
Exec=/path/to/myscript arg1
Name=myscript
Comment=script some stuff
Terminal=false
OnlyShowIn=GNOME
Type=Application
StartupNotify=false
X-GNOME-Autostart-enabled=true

(untuk disimpan sebagai $HOME/.config/autostart/myscript.desktop)

Perbedaan utama: Anda menggunakan kunci X-Gnome-Autostart=dalam contoh Anda.

Periksa jika naskah Anda /path/to/myscriptadalah executable, yaitu jika ia memiliki e x ecutable izin bit (s) set.

Ini OnlyShowIn=mungkin tidak signifikan untuk fungsi autostart, tapi saya belum mengujinya tanpa itu. Anda dapat membuat daftar beberapa lingkungan desktop seperti ini: OnlyShowIn=GNOME;LXDE;Unity;Konsultasikan XDG_CURRENT_DESKTOPvariabel lingkungan untuk memverifikasi nilai yang benar.

Jika Anda ingin memeriksa apakah skrip Anda mencetak pesan kesalahan yang dapat Anda periksa journalctl --user, yaitu jurnal sesi.

maxschlepzig
sumber
Ini bekerja untuk saya tetapi saya harus menggunakan chmod +x myscript.desktop /path/to/myscript.shseperti yang disarankan dalam komentar. Kalau tidak, jurnalctl --user akan memberikan kesalahan Could not parse desktop file myscript.desktop or it references a not found TryExec binary.
sergio
@sergio, tentu saja, /path/to/myscript.shAnda ingin eksekutif harus dapat dieksekusi. Tapi myscript.desktoptidak tidak perlu memiliki izin eksekusi.
maxschlepzig