Chciałem otworzyć plik (plik .pdb: format struktury białka, nieważne) przez podwójne kliknięcie.
„Otwórz za pomocą” jest ręcznie kierowane, aby uruchomić „pymol” (program, który otwiera format .pdb) za pomocą Ubuntu Tweak.
Odkryłem jednak, że katalog roboczy to $ HOME.
Ponieważ inne pliki w katalogu, które otworzyłem, plik ma kluczowe znaczenie, chcę uzyskać do nich dostęp.
Wydaje mi się, że „pymol” jest wykonywany w $ HOME, podczas gdy bezwzględna ścieżka do pliku „pdb” (plik podwójnego kliknięcia) jest przekazywana jako argument.
Myślę, że jest to dość ogólny problem i zadaj pytanie:
Jak mogę pozwolić systemowi zmienić „katalog roboczy” na „katalog, w którym kliknąłem plik” i uruchomić program?
źródło
~
poprawnie zdefiniować . Nie potrzebujesz bash -c, jeśli używasz ścieżki direct / home / marc.cd "%k"
nie będzie działać. Ale możesz użyćcd "$(dirname %k)"
.&&
wykonuje coś względnego~
?Żadne z powyższych rozwiązań nie działało na moim debianie.
%d
Jest również przestarzałe. Zobacz specyfikację wpisu na pulpicie .Więc używam następującego skryptu bash do uruchomienia pymola. Najpierw musisz utworzyć następujący plik skryptu bash i zapisać go w
/usr/local/bin/run_pymol.sh
. Zapisałem plik,/usr/local
ponieważ wygląda naxdg-open
to, że nie rozumie on, co to jest katalog HOME itp.Po drugie, zezwól na plik wykonywalny. Otwórz terminal i wpisz następujące polecenia, aby udzielić pozwolenia i potwierdzić.
Na koniec zmodyfikuj
pymol.desktop
plik w następujący sposób, a następnie pymol uruchomi się w katalogu, w którym znajduje się pierwszy dany plik.Mam nadzieję, że to wam pomoże :-)
źródło
Path=/my/path
i to działało dobrze.Path - If entry is of type Application, the working directory to run the program in.
Nie rozumiem, dlaczego rozwiązanie tak entuzjastyczne, robi zupełnie inną rzecz. Zmienia katalog roboczy na te, w których znajduje się plik .desktop, a pytanie dotyczyło zmiany katalogu roboczego na te z otwartymi plikami.
Moje rozwiązanie:
Pamiętaj, że ustawianie zmiennych env dla plików .desktop jest inne
źródło
Możesz przejść do
/usr/share/applications
odpowiedniego,file.desktop
który jest wywoływany za każdym razem, gdy otwierasz określony typ pliku. Następnie edytuj go iexec
dodajcd PATH &&
do początku linii.źródło
OK -
nie działało dla mnie, ponieważ PATH nie jest zdefiniowany tak, aby wskazywał ścieżkę% F. Jedynymi zmiennymi dostępnymi w dowolnym pliku pulpitu aplikacji są:
Oto on:% d to pojedynczy katalog, którego szukasz, ponieważ nie ma sensu przechodzić do wielu katalogów. Więc przejdź do / usr / share / applications i edytuj plik application-name.desktop (w twoim przypadku pymol.desktop); musisz mieć do tego uprawnienia administratora. Następnie zlokalizuj wiersz rozpoczynający się od „Exec =”. Prawdopodobnie czyta
(W twoim przypadku Exec = pymol% F). Zmień tę linię na
Zapisz ten plik na pulpicie, a następnym razem, gdy klikniesz plik .pdb, twoim katalogiem roboczym powinien być ten, w którym znajduje się ten plik .pdb, aby pymol mógł tam zobaczyć wszystkie twoje pliki.
Oczywiście możesz również uruchomić pymol z wiersza poleceń po pierwszym przejściu do katalogu, w którym znajdują się twoje pliki, ale myślę, że chciałeś rozwiązania GUI, więc musisz trochę edytować :-)
źródło