Jak ustawić domyślny program do otwierania określonego typu pliku w określonym folderze?


21

Oprócz tego, że jestem pandą, jestem także artystą, tworzę swoje prace głównie w GIMP i zapisuję zdjęcia w określonym katalogu na moim komputerze. Mam jednak niewielką niedogodność, ponieważ zapisuję moje obrazy w jpegformacie, jednak domyślnym programem do otwierania jpegs jest ten Image Viewer, a jeśli zmienię go GIMPna wygodę z moją grafiką, oznacza to, że wszystkie inne jpegs na moim komputerze otwierają się GIMPi Nie chcę ich, więc tutaj zaczyna się problem ...

Zastanawiam się więc, czy jest jakiś sposób, aby wszystko jpegotworzyło się w tym określonym katalogu na moim komputerze GIMP, ale wszystkie inne jpegsą otwarte w Image Viewer?


Tylko dla Nautilus / Files czy też dla xdg-open?
AB

@AB: Powiedziałbym oba, jeśli można to zrobić.

W xdg-openterminalu musiałbyś zmienić typ mime swoich zdjęć.
AB

Możesz też użyć skryptu w mojej odpowiedzi z pełną ścieżką obrazu.
AB

4
Nigdy nie używaj .jpegjako formatu pośredniego! Powoduje utratę generacji . Dlaczego nie zapisujesz obrazów jako .xcf, które zawsze są automatycznie otwierane w GIMP?
leftaroundabout

Odpowiedzi:


21

Potrzebujesz desktoppliku i skryptu opakowania:

  1. desktopplik

    • Utwórz plik na pulpicie

      nano ~/.local/share/applications/jpeg-wrapper.desktop
      
    • Dodaj konfigurację poniżej (zmień właściwość dla 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;
      
    • Zamień userna Exec=/home/user/bin/jpeg-wrapper %fswoją nazwę użytkownika, wyjście

      echo $USER
      
    • Zamień nazwę ikony Icon=na wybraną nazwę lub ścieżkę

    • Służy MimeType=image/jpegdo określania typów plików MIME, których dotyczy decyzja. Oddziel wiele typów mimów za pomocą;

      Uzyskaj typ MIME przez

      mimetype your_file
      

      np. dla pliku tekstowego

      text/plain
      
  2. Skrypt opakowania

    • Utwórz nowy skrypt

      mkdir -p ~/bin
      nano ~/bin/jpeg-wrapper
      
    • Dodaj kod poniżej

      #!/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
    • Przejdź my_special_pathdo folderu grafiki . Uwzględniane są również wszystkie podfoldery.

    • Zmień open_with_specialna specjalną aplikację (np. gimp)

    • Spraw, aby skrypt opakowania był wykonywalny

      chmod +x ~/bin/jpeg-wrapper
      
  3. Uruchom ponownie powłokę Unity / GNOME Shell, dla powłoki GNOME, np. Alt- F2, wpisz riEnter

  4. Skojarz jeden lub więcej typów plików z plikiem pulpitu

    • Otwórz menedżera plików i kliknij prawym przyciskiem myszy plik, którego dotyczy decyzja

    • Kliknij Properties

    • Aktywuj kartę Open With

    • Wybierz wpis Special or Standard

    • Kliknij Set as default

  5. Ciesz się ;)

Skrypt sprawdzony tutaj .


Czy to ważne, na co zmieniam Namewartość?

Nie, zmień nazwę, jak chcesz.
AB

Poza tym w twoim skrypcie jest niewielki problem ... Uhm ... Wszystkie pliki w moim folderze grafiki otwierają się teraz poprawnie w GIMP i tak samo dla wszystkich podkatalogów, jednak jeśli plik nie znajduje się w tym obszarze, po prostu się nie otwiera w ogóle.

Pozwól, że to sprawdzę.
AB

Ok, teraz działa dobrze po usunięciu nieskończonej pętli. ;)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.