Bagaimana cara mengatur program default untuk membuka jenis file tertentu di folder tertentu?


21

Selain menjadi Panda saya juga seorang seniman, saya membuat karya seni saya sebagian besar di GIMP dan menyimpan gambar saya ke direktori tertentu di komputer saya. Namun saya memiliki sedikit ketidaknyamanan karena saya menyimpan gambar saya dalam jpegformat, tetapi program default untuk membuka jpegadalah Image Viewer, dan jika saya mengubahnya GIMPuntuk kenyamanan dengan karya seni saya, itu berarti bahwa semua yang lain jpegdi komputer saya terbuka GIMP, dan Saya tidak ingin mereka jadi di sinilah masalahnya dimulai ...

Jadi saya bertanya-tanya apakah ada cara untuk membuatnya sehingga semua jpegdibuka di direktori tertentu di komputer saya terbuka GIMP, tetapi semua yang lain jpegdi tempat lain terbuka di Image Viewer?


Hanya untuk Nautilus / File atau juga untuk xdg-open?
AB

@ AB: Saya akan mengatakan keduanya jika itu bisa dilakukan.

Karena xdg-opendi terminal Anda harus mengubah mimetype gambar Anda.
AB

Atau Anda juga bisa menggunakan skrip dalam jawaban saya dengan jalur gambar lengkap.
AB

4
Jangan pernah gunakan .jpegsebagai format perantara! Itu menimbulkan kerugian generasi . Mengapa Anda tidak menyimpan gambar saja .xcf, yang selalu dibuka secara otomatis dengan GIMP?
leftaroundabout

Jawaban:


21

Anda memerlukan desktopfile, dan skrip pembungkus:

  1. The desktopfile

    • Buat file desktop

      nano ~/.local/share/applications/jpeg-wrapper.desktop
      
    • Tambahkan konfigurasi di bawah ini (ubah properti untuk Name)

      [Desktop Entry]
      Name=Special or Standard
      Comment=Open a JPEG depending of the path
      Exec=/home/user/bin/jpeg-wrapper %f
      Icon=
      Terminal=false
      Type=Application
      Categories=Editor;
      StartupNotify=true
      MimeType=image/jpeg;
      
    • Ganti userdi Exec=/home/user/bin/jpeg-wrapper %fdengan nama pengguna, output dari

      echo $USER
      
    • Ganti nama ikon Icon=dengan nama atau jalur pilihan Anda

    • Gunakan MimeType=image/jpeguntuk menentukan jenis pantomim file yang keputusannya akan diterapkan. Pisahkan beberapa tipe mime melalui;

      Dapatkan tipe mime melalui

      mimetype your_file
      

      misalnya untuk file teks

      text/plain
      
  2. Skrip pembungkus

    • Buat skrip baru

      mkdir -p ~/bin
      nano ~/bin/jpeg-wrapper
      
    • Tambahkan kode di bawah ini

      #!/usr/bin/env bash
      image_path=$(dirname "$1")
      my_special_path="$HOME/tmp"
      open_with_special="gimp"
      open_with_standard="eog"
      
      if [[ $(mimetype -b "$1") == "image/jpeg" ]] && [[ "$image_path" == "$my_special_path"* ]]; then
              "$open_with_special" "$1"
      else
              "$open_with_standard" "$1"
      fi
      
    • Ubah my_special_pathke folder karya seni Anda . Semua subfolder juga dipertimbangkan.

    • Ubah open_with_specialke aplikasi khusus Anda (mis. gimp)

    • Jadikan skrip wrapper Anda dapat dieksekusi

      chmod +x ~/bin/jpeg-wrapper
      
  3. Mulai kembali Unity / GNOME Shell, untuk GNOME Shell misalnya Alt- F2, ketik rdanEnter

  4. Kaitkan satu atau beberapa jenis file dengan file desktop

    • Buka file manager Anda dan klik kanan pada file yang keputusannya akan diterapkan

    • Klik Properties

    • Aktifkan tab Open With

    • Pilih entri Special or Standard

    • Klik Set as default

  5. Selamat menikmati ;)

Script diperiksa di sini .


Apakah penting untuk apa saya mengubah Namenilainya?

Tidak, ubah nama sesuai keinginan.
AB

Selain itu, skrip Anda memiliki sedikit masalah ... Uhm ... Semua file di folder artwork saya sekarang terbuka dengan baik di GIMP, dan hal yang sama untuk semua subdirektori, namun jika file tidak berada di area itu, itu hanya tidak membuka sama sekali.

Biarkan saya memeriksanya.
AB

Ok, itu berfungsi dengan baik sekarang setelah Anda menghapus loop tak terbatas. ;)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.