GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Anda mendapatkan ikon, tipe MIME, dan aplikasi yang terkait dengan file di Desktop Linux?

Berikut adalah contoh penggunaan GLib/GIO untuk mendapatkan informasi yang Anda inginkan.

#include <gio/gio.h>
#include <stdio.h>

int
main (int argc, char **argv)
{
    g_thread_init (NULL);
    g_type_init ();

    if (argc < 2)
        return -1;

    GError *error;
    GFile *file = g_file_new_for_path (argv[1]);
    GFileInfo *file_info = g_file_query_info (file,
                                              "standard::*",
                                              0,
                                              NULL,
                                              &error);

    const char *content_type = g_file_info_get_content_type (file_info);
    char *desc = g_content_type_get_description (content_type);
    GAppInfo *app_info = g_app_info_get_default_for_type (
                                  content_type,
                                  FALSE);

    /* you'd have to use g_loadable_icon_load to get the actual icon */
    GIcon *icon = g_file_info_get_icon (file_info);

    printf ("File: %s\nDescription: %s\nDefault Application: %s\n",
            argv[1],
            desc,
            g_app_info_get_executable (app_info));

    return 0;
}

Anda dapat menggunakan alat yang tersedia dari xdg untuk itu, khususnya xdg-mime query .

Untuk mengetahui tipe file mis. file index.html Anda akan

$ xdg-mime query filetype index.html

Ini akan mengembalikan mimetype. Untuk menanyakan aplikasi apa yang dikaitkan dengan mimetye itu, gunakan mis.

$ xdg-mime query default text/html

Ini mengembalikan epiphany.desktop di sini, yaitu $APPNAME.desktop , sehingga mudah untuk mendapatkan nama aplikasi darinya. Jika Anda hanya ingin membuka file di aplikasi default, tentu saja Anda dapat menjalankannya

$ xdg-open index.html

yang akan membangkitkan pencerahan.

Fungsi kueri untuk sumber daya ikon sepertinya tidak tersedia di xdg-utils , tetapi Anda dapat menulis skrip python kecil menggunakan pyxdg yang juga menawarkan banyak fungsi tambahan.

Untuk pengikatan C, Anda mungkin perlu melihat kode portland yang tertaut di halaman xdg.

EDIT:

Tentang libmagic dan teman-teman, Anda harus memutuskan preferensi Anda:Meskipun libmagic tampaknya lebih lengkap (dan akurat) dalam hal cakupan untuk tipe file, itu tidak peduli sama sekali tentang aplikasi atau ikon default. Itu juga tidak memberi Anda alat untuk memasang tipe mime tambahan.


Di Qt>=4.6, ada fungsi baru untuk sistem X11

QIcon QIcon::fromTheme ( const QString & name, const QIcon & fallback = QIcon() ) [static]

Anda dapat menggunakan fungsi ini. Dokumentasi di sini / (Qt 5)


Linux
  1. Bagaimana Anda memulai Linux?

  2. Cara memperluas fungsionalitas desktop Linux Anda dengan PlexyDesk

  3. Cara menangkap sesi terminal dan output dengan perintah skrip Linux

  1. Bagaimana Cara Menemukan Aplikasi Untuk Tipe Mime Di Linux?

  2. Bagaimana Anda mem-gunzip file dan menyimpan file .gz?

  3. Bagaimana Anda menggunakan ekspresi reguler dengan perintah cp di Linux?

  1. Linux – Bagaimana Cara Menampilkan Jenis Filesystem Melalui Terminal??

  2. Bagaimana Menemukan Jenis File Img Dan Memasangnya?

  3. Bagaimana cara menentukan ikon dengan jalur RELATIF untuk file entri desktop Linux?