Toolbox: Integrasi file desktop

Dibuat pada 21 Apr 2020  ·  18Komentar  ·  Sumber: containers/toolbox

Jika Anda menginstal Aplikasi GUI (misalnya Kode VS, Pembuat GNOME, dan lain-lain), itu akan membuat file desktop di /usr/share/applications. Tetapi kotak alat memiliki sistem yang terisolasi (kecuali homedir) dan tidak akan mengikat.
Jika ada opsi untuk membuat file desktop darinya seperti:
$ toolbox desktop code.desktop akan melakukan:

  1. Salin /usr/share/applications/code.desktop ke .local/share/applications/toolbox_code.desktop
  2. Ubah semua referensi yang dapat dieksekusi (/usr/bin/code atau kode) ke conainers (/usr/bin/code -> toolbox run /usr/bin/code dan lain-lain)
  3. Salin ikon ke penyimpanan ikon lokal

Juga tambahkan opsi untuk menghapus:
$ toolbox desktop code.desktop -r
untuk menghapus ~/.local/share/applications/toolbox_code.desktop dan ikon

1. Feature request 5. Good First Issue 5. Help Wanted

Komentar yang paling membantu

Aku pergi untuk itu!

Semua 18 komentar

Hai @oksoft-git! Ini terlihat menarik. Saya berpikir untuk memberikan sesuatu yang mirip dengan ini. Apakah Anda ingin membuat PR dengan fitur ini (tetapi tidak di Shell tetapi di Go untuk Toolbox versi baru ?

@debarshiray , bagaimana menurutmu?

Aku pergi untuk itu!

Fitur ini akan sangat menguntungkan pengguna silverblue karena Anda dapat dengan mudah menggunakan aplikasi dari wadah

Apakah mungkin untuk memasukkan integrasi biner dasar, untuk memungkinkannya mengekspor pembungkus perintah dasar ke sistem dasar atau apakah itu di luar cakupan proyek?

Sebagai pembungkus perintah yang saya maksud adalah pembungkus seperti ini untuk nano misalnya (mungkin lebih kompleks dari ini untuk beberapa program)

!/bin/bash
toolbox nano "$@"

(flatpak melakukan sesuatu seperti ini, dapat memeriksanya lebih lanjut)

Hai @sandorex ! Fitur yang Anda bicarakan sudah dilacak di sini: #145. Ini adalah salah satu prioritas setelah meluncurkan Toolbox yang diperbarui. Meskipun kedua fitur ini serupa, solusinya sangat berbeda.

Saya bertanya-tanya sekarang apakah memberi Toolbox kekuatan untuk membuat/mengedit file .desktop untuk aplikasi benar-benar cara yang tepat. Itu akan membutuhkan Toolbox untuk mengetahui di mana menemukan file .desktop yang ada, menemukan baris yang tepat, memperbaruinya dan memindahkan/menyalin file ke lokasi di mana desktop (tidak semua orang menggunakan GNOME Shell) akan menemukannya dan menggunakannya. Bagi saya ini tampak sebagai potongan besar logika yang tidak perlu yang tidak akan banyak berguna.

Alih-alih bagian dalam dokumentasi dengan instruksi cara memperbarui file .desktop yang ada terdengar lebih baik bagi saya.

Jika saya salah tentang kerumitannya, tolong, buktikan saya salah.

Saya mungkin salah tetapi file desktop dicari secara rekursif di ~/.local/share/applications jadi direktori yang hanya berisi file desktop dari kotak alat (per wadah) dan kemudian hapus saja file desktop yang tidak ada di wadah tetapi modifikasi saya tidak bisa benar-benar menyederhanakan

Pendekatan kedua adalah memberikan tanggung jawab ini ke aplikasi lain ( toolbox-desktop-integration ) yang akan memungkinkan pemilihan file desktop untuk dibawa ke Host (menempatkannya di folder mereka akan menjadi pintar, seperti ~/.local/share/applications/_toolbox_XXX mana XXX adalah nama wadah)

Tertarik dengan pendapat Anda @HarryMichal

Ini hampir selesai, tetapi saya tidak dapat mengekstrak jalur ikon dari file desktop untuk disalin ke Host.

_edit_: Membuat alat khusus untuk itu akan lebih baik. Saya akan membuatnya kembali.

Yah, aku memilikinya. github.com/ondra05/toolbox-desktop

@ondra05 Kerja bagus!

Ada satu hal yang saya pribadi akan perbaiki (meskipun tidak perlu) dan itu menggunakan cat untuk membaca file dari wadah, itu akan berfungsi dengan baik tetapi agak meretas, karena podman membagikan gambar dengan toolbox Anda dapat menggunakan podman cp untuk menyalin file antara wadah dan host

Saya telah mempermainkan ide ini dalam skrip python

Sayangnya saya tidak punya waktu untuk melakukan aplikasi yang tepat, saya telah membuat UI tetapi GTK hanya sakit di pantat, mungkin saya akan melakukan aplikasi CLI saja suatu hari nanti (semoga)

Sayangnya saya tidak punya waktu untuk membuat aplikasi yang tepat

Saya pikir GUI untuk ini berlebihan. Imho ini harus ditangani dengan perintah ke arah toolbox export dengan flag sebagai --remove dan --list .

Saya akan mencoba untuk melihat ke dalamnya. Saya ingin tahu apakah mungkin untuk menambahkan perintah toolbox export APP yang memanggil, katakanlah, skrip python ini di dalam kotak alat dengan cara yang mirip dengan toolbox run export.py ARGS . Meskipun jelas lebih baik untuk melakukannya secara langsung, ini hanya melibatkan penyalinan file dari /usr toolbox ke $XDG_DATA_DIR dan mungkin lebih mudah menggunakan skrip untuk itu. Saya tidak tahu apa pengelola kemungkinan ini.

Perhatikan bahwa ekstensi semacam itu harus mempertimbangkan banyak hal, misalnya masalah penanganan ikon tidak sepele.

Ini mirip dengan diskusi seputar penambahan run command , termasuk percakapan IRC ini dari #silverblue di Freenode:

From #silverblue on Freenode:

15:56 <rishi> otaylor: alexlarsson: Hey! Do you have any thoughts on            
      https://github.com/debarshiray/toolbox/pull/76 ?
15:57 <rishi> In short, people want to be able to do "toolbox run emacs".
15:57 <rishi> And I am worried about encroaching on Flatpak territory.
15:58 <alexlarsson> I don't think its a huge problem.
15:58 <otaylor> rishi: I suspect we need such functionality if we want the      
      toolbox to be a serious tool that people rely on
15:58 <alexlarsson> No 2 tools will be 100% non-overlapping
15:59 <alexlarsson> and i can imagine using this in non-flatpak like way
15:59 <alexlarsson> toolbox run some-service
15:59 <otaylor> rishi: I'd be more worried about adding, say, menu item         
      management so that it looks like 'toolbox run emacs' is a real app
16:00 <alexlarsson> I mean, some people use flatpak for cli stuff
16:00 <rishi> otaylor: alexlarsson: Okay!
16:00 <alexlarsson> which is not quite the point
16:00 <alexlarsson> Still, it works
16:01 <alexlarsson> The main thing is that the design decisions that drive      
      toolbox and flatpak are driven by a particular usecase
16:01 <alexlarsson> Not that they can't be used other ways
16:03 <rishi> Yeah, toolbox is very clearly: "use jhbuild on Silverblue".
16:04 <rishi> walters would say "separate development prefix", but that's       
      about it, I think.

Sudah dimungkinkan untuk menambahkan toolbox run emacs di file .desktop untuk aplikasi yang diinstal di dalam wadah. Memiliki perintah yang benar-benar mem-parsing dan membuat file .desktop adalah langkah lain ke arah yang sama, dan saya tidak yakin apakah itu satu langkah terlalu jauh.

@debarshiray apa pendapat Anda tentang skrip python yang menyalin file desktop, icondata, dan metadata? Saya sudah membuatnya dan berfungsi dengan baik.

Ini pasti salah satu cara untuk melakukannya. Namun, saya ragu untuk memasukkannya ke dalam Toolbox sekarang.

Saya tertarik untuk mengerjakan masalah ini!

...
tidak semua orang menggunakan GNOME Shell
...
Jika saya salah tentang kerumitannya, tolong, buktikan saya salah.

@HarryMichal Saya yakin kekhawatiran Anda tidak perlu.
Saat ini file .desktop dan tema file ikon dirancang untuk desktop-agnostik dan tunduk pada Spesifikasi XDG :
https://spesifikasi.freedesktop.org/
https://specifications.freedesktop.org/desktop-entry-spec/latest/index.html
https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html

Untuk semua:
bisakah kita mendesain fungsionalitas yang dibutuhkan sebagai plugin DNF mungkin?

PS: baru sadar Flatpak sudah mengekspos aplikasi sehingga kami bisa meminjam kodenya jika diperlukan.

Saya belum menambahkan fitur uninstall, tetapi sepertinya tidak terlalu sulit.

Terima kasih @A6GibKm , tolong lakukan! :)

Apakah halaman ini membantu?
0 / 5 - 0 peringkat