데스크톱 파일이있는 위치를 기준으로 .desktop 파일의 'Path'변수를 설정하려면 어떻게해야합니까?


11

데스크톱 파일이있는 위치를 기준으로 .desktop 파일에서 'Path'변수를 설정하고 싶습니다. 관리 할 수 ​​없습니다.

선언하지 않거나 공란으로 설정하면 어디에서 실행하더라도 홈 폴더가 기본값입니다. 파일 시스템 내 현재 위치와 관련된 값을 허용하지 않습니다.


나는이 문제를 겪었다. 해결 방법을 찾았지만 때로는 수행중인 작업에 따라 근본적으로 복잡합니다. 현재 해결 방법을 사용하고 있습니까? 그렇지 않으면 도움이 될 수 있습니다. 나는 이것에 대해 많은 것을 설명하는 xdg 문서를 찾지 못했습니다.
bambuntu

OP 아직도 답을 찾고 있습니까? 그렇다면 폐쇄 된 것으로 표시되어 질문을 다시 게시해야 할 수도 있습니다. 감사합니다
꼬리에 고리 무늬

답변:


3

.desktop 파일에서 CWD를 설정할 수 없습니다. 응용 프로그램에 특정 CWD를 가지려면 응용 프로그램에 대한 간단한 래퍼 스크립트를 작성해야합니다.

#!/bin/sh

(cd /where/you/want/it/to/be && exec your_program)

당신은 대체 할 수 your_program거기 $@등을들 수 있으며, 인수로 your_program으로 스크립트를 실행합니다 run-in-dir.sh your_program. 이 방법으로 동일한 스크립트를 사용하여 해당 디렉토리에서 시작하려는 모든 프로그램을 래핑 할 수 있습니다.


14

Exec에서 인라인 bash 미니 스크립트를 사용 하여이 문제를 해결할 수 있습니다. 명령을 실행하기 전에 .desktop 파일의 경로가 PATH에 추가됩니다.

Exec=bash -c "export PATH=$PATH:`dirname %k`; your_command"

% k는 데스크탑 파일 자체의 경로로 대체됩니다. 이 dirname명령은 파일 이름 부분을 잘라 내고 디렉토리 만 남겨 둡니다. PATH가 이와 같이 설정되면 your_command전체 경로없이 호출 할 수 있습니다.


1
나는 클릭하여 잘못된 것을 투표했지만 귀하의 솔루션은 완벽합니다.
CrandellWS

1
이것은 다른 질문 / 답변 stackoverflow.com/a/3464561/1815624
CrandellWS

2

나는 이것을 사용했다 :

Exec=bash -c 'cd $(dirname %k) && ./SCRIPT_NAME'

% k는 경로를 포함한 .desktop 파일의 전체 이름입니다. 그런 다음 dirname에서 위치를 가져 와서 해당 위치로 디렉토리를 변경하는 데 사용됩니다. 마지막으로, 올바른 위치에 있으므로 스크립트를 찾아서 실행합니다.


0

이름에 공백이있는 디렉토리 이름의 경우 마침내 나를 위해 일했습니다.

Exec=/bin/bash -c 'cd "$(dirname "$0")"; wine game.exe -windowed' %k

/unix//a/144428/61349의 크레딧


0

이것은 나를 위해 우분투 14.04에서 작동했습니다 :

Exec=bash -c "cd %k && ./app.run"

최신 사양에 따르면 % k 는 데스크탑 파일의 위치를 ​​가리 킵니다.

% k-데스크톱 파일의 위치는 URI (예 : vfolder 시스템에서 가져온 경우)이거나 로컬 파일 이름이거나 알려진 위치가 없으면 비어 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.