Làm cách nào để đặt chương trình mặc định để mở một loại tệp nhất định trong một thư mục nhất định?


21

Ngoài việc là một Panda, tôi cũng là một nghệ sĩ, tôi tạo ra tác phẩm nghệ thuật của mình chủ yếu trong GIMP và lưu hình ảnh của tôi vào một thư mục nhất định trên máy tính của tôi. Tuy nhiên tôi có một chút bất tiện vì tôi lưu hình ảnh của mình ở jpegđịnh dạng, tuy nhiên chương trình mặc định để mở jpegImage Viewervà nếu tôi thay đổi nó để GIMPthuận tiện với tác phẩm nghệ thuật của mình, điều đó có nghĩa là tất cả các máy khác jpegtrên máy tính của tôi đều mở GIMPvà Tôi không muốn họ đến vì vậy đây là lúc vấn đề bắt đầu ...

Vì vậy, tôi tự hỏi nếu có bất kỳ cách nào để làm cho nó để tất cả jpegcác mở trong thư mục nhất định trên máy tính của tôi mở GIMP, nhưng tất cả các jpegnơi khác mở trong Image Viewer?


Chỉ cho Nautilus / Files hoặc cũng cho xdg-open?
AB

@AB: Tôi sẽ nói cả hai nếu điều đó có thể được thực hiện.

Đối với xdg-openthiết bị đầu cuối, bạn phải thay đổi hình ảnh của hình ảnh.
AB

Hoặc bạn cũng có thể sử dụng tập lệnh trong câu trả lời của tôi với đường dẫn hình ảnh hoàn chỉnh.
AB

4
Không bao giờ sử dụng .jpegnhư một định dạng trung gian! Nó phát sinh mất thế hệ . Tại sao bạn không lưu hình ảnh dưới dạng .xcfluôn được tự động mở bằng GIMP?
leftaroundabout

Câu trả lời:


21

Bạn cần một desktoptập tin và tập lệnh bao bọc:

  1. Các desktoptập tin

    • Tạo một tập tin máy tính để bàn

      nano ~/.local/share/applications/jpeg-wrapper.desktop
      
    • Thêm cấu hình bên dưới (thay đổi thuộc tính cho 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;
      
    • Thay thế uservào Exec=/home/user/bin/jpeg-wrapper %fvới Tên truy nhập của bạn, đầu ra của

      echo $USER
      
    • Thay thế tên biểu tượng Icon=bằng một tên hoặc đường dẫn bạn chọn

    • Sử dụng MimeType=image/jpegđể chỉ định các loại tệp mime mà quyết định được áp dụng. Tách nhiều loại mime thông qua;

      Nhận loại mime thông qua

      mimetype your_file
      

      ví dụ cho một tệp văn bản

      text/plain
      
  2. Kịch bản bao bọc

    • Tạo một kịch bản mới

      mkdir -p ~/bin
      nano ~/bin/jpeg-wrapper
      
    • Thêm mã dưới đây

      #!/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
    • Thay đổi thư mục tác phẩm nghệ thuậtmy_special_path của bạn . Tất cả các thư mục con cũng được xem xét.

    • Thay đổi ứng dụng đặc biệtopen_with_special của bạn (ví dụ )gimp

    • Làm cho tập lệnh bao bọc của bạn thực thi

      chmod +x ~/bin/jpeg-wrapper
      
  3. Khởi động lại Unity / Gnome Shell, cho Shell Gnome, ví dụ Alt- F2, gõ rEnter

  4. Liên kết một hoặc nhiều loại tệp với tệp máy tính để bàn

    • Mở trình quản lý tệp của bạn và nhấp chuột phải vào tệp mà quyết định được áp dụng

    • Nhấp chuột Properties

    • Kích hoạt tab Open With

    • Chọn mục Special or Standard

    • Nhấp chuột Set as default

  5. Tận hưởng ;)

Kịch bản kiểm tra ở đây .


Có vấn đề gì khi tôi thay đổi Namegiá trị thành?

Không, thay đổi tên như bạn muốn.
AB

Ngoài ra, tập lệnh của bạn có một vấn đề nhỏ ... Uhm ... Tất cả các tệp trong thư mục ảnh nghệ thuật của tôi hiện đang mở tốt trong GIMP và tương tự cho tất cả các thư mục con, tuy nhiên nếu một tệp không nằm trong khu vực đó, thì nó chỉ không mở ở tất cả.

Hãy để tôi kiểm tra nó.
AB

Ok, nó hoạt động tốt khi bạn loại bỏ vòng lặp vô hạn. ;)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.