저는 Linux Mint 13에서 Mate 1.2.0을 사용하고 있습니다. 제가 사용하는 두 가지 텍스트 편집기는 Gedit와 Geany(v0.25)입니다. 저는 구문 강조와 기타 인터페이스 기능을 선호하기 때문에 모든 코딩에 Geany를 사용합니다.
하지만 저를 짜증나게 하는 한 가지는 다음과 같은 행동입니다.
- Geany의 작업공간 1에서 파일을 엽니다.
- 작업공간 2로 이동
- 파일을 두 번 클릭하여 엽니다(Geany에서).
- 데스크탑을 작업 공간 1로 다시 전환하고 Geany에서 파일을 엽니다.
Gedit에서 이 작업을 수행하면 해당 작업 공간에 새 Gedit 인스턴스가 열립니다. 이는 내 작업 스타일에 완벽하게 적합하며 각 작업 공간에는 다른 프로젝트가 열려 있습니다.
나할 수 있는프로그램 메뉴에서 다른 Geany 인스턴스를 시작하고 이를 다른 작업 공간으로 이동하지만 동작은 변경되지 않습니다. 그러면 다음이 표시됩니다.
- Geany의 작업공간 1에서 파일을 엽니다.
- 작업공간 2로 이동
- 프로그램 메뉴에서 새 Geany 인스턴스를 시작합니다(이제 작업공간당 하나의 인스턴스가 있습니다).
- 파일을 두 번 클릭하여 엽니다(Geany에서).
- 데스크탑을 작업 공간 1로 다시 전환하고 첫 번째 Geany 인스턴스에서 파일을 엽니다.
따라서 이는 항상 "기본" Geany에서 파일을 연 다음 그 안에 있는 작업 공간으로 전환하는 것과 같습니다.
이 동작을 바꿀 수 있는 방법이 있나요? 나는 이것이 다음과 같기를 원합니다 :
- 파일을 열 때: 이 작업 공간에 Geany가 실행되고 있나요?
- 예: Geany에서 파일을 엽니다.
- 아니요: 이 작업 공간에서 새 Geany를 열고 그 안에 있는 파일을 엽니다.
설정에 이에 대한 옵션이 표시되지 않습니다. 어떤 제안이라도 감사하겠습니다! 감사해요
답변1
이 배치를 사용하여 Geany를 엽니다. 그러면 각 작업 공간에 특정한 별도의 소켓이 열립니다.
예를 들어 Thunar에서는 다른 응용 프로그램에서 열기를 사용하고 이 배치 파일을 가리킵니다.
#!/bin/sh
socket=`xprop -root _NET_CURRENT_DESKTOP`
socket=${socket##* }
if [ "$socket" ]
then
if [ "$DISPLAY" ]
then
socket="${DISPLAY%.*}-$socket"
socket=${socket#*:}
else
socket="NODISPLAY-$socket"
fi
exec geany --socket-file "/tmp/geany_socket_$socket" "$@"
else
exec geany "$@"
fi
답변2
터미널로 가서 geany -h
이것을 입력하면 사용 가능한 모든 옵션이 표시됩니다. 바로 거기에 -i, --new-instance Don't open files in a running instance, force opening a new instance
당신에게 꼭 필요한 것이 있습니다.
어떻게
클릭하고 있는 것을 찾으세요.
텍스트 편집기에서 열거나 실행 중인 명령을 변경하는 방법을 찾으세요. (예를 들어 트레이에 있는 실행기인 경우 까다로울 수 있습니다.)
geany -some_options
다음 과 같은 명령을 변경하십시오.geany -some_options -i
--
완벽한.
답변3
댓글로 달기에는 너무 길어서 답변으로 게시합니다. 나는 Olivier의 답변을 제대로 이해하는 데 어려움을 겪었기 때문에 다른 사람도 문제가 있는 경우를 대비해 그의 답변에 더 자세한 설명을 포함해야 한다고 생각했습니다. .
다음을 포함하는 배치 파일을 만듭니다.
#!/bin/sh
socket=`xprop -root _NET_CURRENT_DESKTOP`
socket=${socket##* }
if [ "$socket" ]
then
if [ "$DISPLAY" ]
then
socket="${DISPLAY%.*}-$socket"
socket=${socket#*:}
else
socket="NODISPLAY-$socket"
fi
exec geany --socket-file "/tmp/geany_socket_$socket" "$@"
else
exec geany "$@"
fi
배치 파일을 PATH에 포함된 디렉터리에 배치합니다(참조:https://stackoverflow.com/questions/14650070/how-to-execute-bash-script-from-any-location). 배치 파일의 이름을 wgeany로 지정했다고 가정합니다. 그렇지 않으면 아래 지침의 이름을 원하는 이름으로 바꿉니다.
이제 이것을 텍스트 파일을 여는 기본 프로그램으로 설정하려고 합니다. 불행히도 적어도 내 버전에서는 목록에 없으며 불행히도 사용자 정의 선택을 할 수 없습니다.
~/.local/share/applications
또는 /usr/share/applications
(하나가 존재하지 않거나 작동하지 않는 경우/권한이 없으면 다른 하나를 시도) 로 이동하여 다음을 포함하는 wgeany.desktop이라는 텍스트 파일을 생성하여 이 문제를 해결할 수 있습니다 .
[Desktop Entry]
Name=wgeany
Comment=wgeany
Exec=wgeany %f
Type=Application
StartupNotify=false
Terminal=false
Categories=TextTools;
Name[en_US]=wgeany
또한 올바른 geany 아이콘( )을 가리키는 줄을 포함하고 싶을 수도 있지만 Icon=path/icon.png
굳이 찾지는 않았습니다. 파일을 저장하면 배치 파일이 연결 프로그램 대화 상자에 나타납니다. (해당 형식의 파일 속성으로 이동한 다음 "연결 프로그램" 탭으로 이동하여 wgeany를 기본 응용 프로그램으로 설정하여 해당 파일 형식(예: .txt)에 대한 기본 응용 프로그램으로 설정할 수 있습니다.
또한 이 문제를 해결하는 데 도움을 준 MaxWilliams에게도 감사드립니다.
답변4
File 및 Open을 사용하면 Geany는 현재 "기본" 인스턴스(즉, 첫 번째 인스턴스가 아닌 현재 사용 중인 Geany 인스턴스)에서 파일을 엽니다.