다른 데스크탑 환경에 다른 기본 응용 프로그램 설정


9

기본 Unity 인터페이스와 함께 Ubuntu 12.04를 사용하고 있습니다. 나중에 KDE 데스크톱, XFCE, LXDE, gnome-shell 및 Cinnamon을 설치했습니다.

KDE는 Unity와 다른 기본 응용 프로그램과 함께 제공됩니다.

  • kwrite 텍스트 편집을 위해
  • konsole 가상 터미널로
  • kfontview 글꼴보기 및 설치
  • dolphin 파일 브라우저 등

다른 DE에는 다른 기본 응용 프로그램이 있습니다.

문제는 당신이 모두 열 수있는, 같은 텍스트 파일로 파일을 열려고 할 때 발생 geditkwrite내가 사용하려는 kwriteKDE와 gedit유니티 또는 그놈에. 그러나 이렇게 설정하는 방법은 없습니다. KDE와 Unity에서 각각의 설정을 변경하여 텍스트 파일의 기본 응용 프로그램을 설정할 수 있지만 DE의 기본값이됩니다.

예를 들어, kfontviewerKDE에서 기본 글꼴보기 응용 프로그램으로 설정하면 Unity 또는 Gnome에있을 때 글꼴이 열리고 그 반대도 마찬가지입니다. 다른 DE의 프로그램을로드하는 데 사용 된 DE의 기본 프로그램보다 시간이 오래 걸리기 때문에 문제가됩니다.

내 질문은 : DE마다 다른 기본 응용 프로그램을 사용할 수 있습니까? 어떻게?


2
이것이 도움이되는지 확인하십시오 : Linux에서 그놈 및 KDE에 대한 기본 응용 프로그램 구성
Mitch

답변:


5

이 솔루션을 모아 문제를 해결하고 텍스트 파일 및 글꼴 파일을 열어 KDE 및 XFCE에서 테스트했습니다. 다양한 데스크탑 환경 및 MIME 유형에 적용 할 수있는 일반적인 솔루션입니다. 작동 방식은 데스크탑 환경에 따라 다른 응용 프로그램을 사용하여 파일을 여는 custom-open이라는 간단한 Python 스크립트가 있습니다. 솔루션을 설정하는 단계는 다음과 같습니다.

  1. 컴퓨터에 사용자 정의 스크립트를 저장하는 것이 바람직하지만 반드시 그럴 필요는 없습니다.
  2. 홈 디렉토리 ~ / .custom-open.ini에 .custom-open.ini를 저장하십시오.
  3. 처리하려는 파일 형식의 기본 응용 프로그램으로 custom-open을 설정하십시오.

주문 제작

#!/usr/bin/env python
import traceback, sys, os, ConfigParser, os.path
from subprocess import Popen, check_output
from gtk import MessageDialog, MESSAGE_ERROR, BUTTONS_CLOSE

try:
    file, desktop = sys.argv[1], os.environ['DESKTOP_SESSION']
    mime = check_output(['file', '--mime-type', file]).strip().split(': ')[1]
    config = ConfigParser.RawConfigParser()
    config.read(os.path.expanduser('~/.custom-open.ini'))
    cmd = config.get(desktop, mime)
    Popen([cmd] + sys.argv[1:])
except:
    msg = "CUSTOM OPEN ERROR\n\n" + traceback.format_exc()
    MessageDialog(None, 0, MESSAGE_ERROR, BUTTONS_CLOSE, msg).run()

.custom-open.ini

[gnome]
text/plain = gedit
application/x-font-ttf = gnome-font-viewer

[xubuntu]
text/plain = leafpad
application/x-font-ttf = gnome-font-viewer

[kde-plasma]
text/plain = kate
application/x-font-ttf = kfontview

이 솔루션의 가장 큰 장점은 원하는만큼 새로운 데스크탑 환경과 원하는 MIME 유형을 추가 할 수 있다는 것입니다. 데스크탑 환경에 제공해야하는 이름을 확인하려면 터미널에서 아래 명령을 실행하십시오.

env | grep -i DESKTOP_SESSION

파일의 정확한 MIME 유형을 확인하려면 다음을 실행하십시오.

file --mime-type filename

편집 : 기호 링크가 필요하지 않아 사용하기가 쉽습니다. 또한 오류가 발생하면 경고를 표시하는 그래픽 오류 처리기를 추가했습니다.


1
답변 주셔서 감사합니다. 나는 당신의 단계를 따라 모든 스크립트, 링크 및 파일을 만들었습니다. 귀하의 솔루션은 명령 줄에서 훌륭하게 작동하며 광고 된대로 작동합니다. 그러나 스크립트 (또는 기호 링크)를 특정 파일 유형을 여는 기본 응용 프로그램으로 설정하려고하면 실패하고 2 차 기본값으로 돌아갑니다. 내가 뭔가 잘못하고 있는지 모르겠습니다.
Glutanimate

스크립트를 기본 앱으로 정의한 방법은 다음과 같습니다. 1.) ~ / .local / share / applications에서 런처 ( co.desktop)를 만듭니다 Exec=/home/user/.scripts/Customization/Defaultapps/custom-open-text. 2.) ./local/share/applications/mimeapps.list다음 기본 연결을 편집 하고 추가하십시오 text/plain=co.desktop. 이 절차에서 실수를 찾으십니까?
Glutanimate

1
확인 새 버전을 사용해보십시오. 사용하기 쉽도록 개선되었습니다. 그래픽 오류 처리기를 추가 했으므로 이제 오류 메시지와 함께 경고가 표시됩니다. 다시 시도하고 오류 메시지가 여전히 작동하지 않으면 주석에 게시하십시오. 또한 Ubuntu의 버전과 시도한 데스크탑 환경을 언급 할 수 있습니다.
Marwan Alsabbagh

그것은 작동하고 환상적으로 (LXDE / Unity 사용)! 당신의 솔루션은이 현상금의 모든 마지막 지점에 가치가 있습니다. 시간 내 주셔서 감사합니다. (PS : 여전히 이런 기능은 기본적으로 우분투와 함께 제공되어야한다고 생각합니다.
DE-

1
죄송하지만 OP가 아닙니다. 현상금을 설정하기 만하면됩니다. @Olive Twist는 자신의 질문에 답변을 표시해야합니다.
Glutanimate

2

"올바른"방법을 찾지 못하면 다음과 같은 무차별 대입 방법을 사용할 수 있습니다.

  1. 하나의 데스크탑 환경에서 모든 기본값 설정
  2. 같이 할 cd $HOME;ls -Rlrt | less그 선택이 저장된 즉 곳 - 파일을 바로 업데이트 된 것을 알아
  3. 각 데스크탑 환경에 대해 해당 파일의 사본을 별도로 만드십시오 (백업 됨).
  4. 각 데스크탑 환경에 대해 반복
  5. 해당 데스크탑 환경으로 전환하기 직전에 적절한 세트를 제자리에 복사하십시오 (아마 로그 아웃 및 다시 로그인 한 후 새 데스크탑 환경을 선택하여).

데스크탑 환경에 구성 파일을 가져올 위치를 알려주는 옵션을 사용하여 쉘 스크립트에서 데스크탑 환경을 전환하는 방법이 있기를 바랍니다. 파일을 항상 옮기는 것보다 깨끗할 수 있지만 그 방법이 작동하는지 또는 방법에 대해서는 연구하지 않았습니다.

또 다른 훨씬 간단한 솔루션이지만 정확히 요청한 것은 아닙니다.

  1. 각 데스크톱 환경에 대해 별도의 사용자 계정을 만듭니다.
  2. 이 사용자들을위한 새로운 그룹을 만드십시오
  3. 이 모든 사용자를 새 그룹에 추가
  4. 이러한 모든 사용자로부터 액세스해야하는 공통 데이터 파일을 만드십시오 -rwxrwxr-x ( chmod 775 list-of-files-and-directories). 이렇게하면 "사용자"중 다른 사용자가 먼저 작성한 파일에 쓰려고 시도 할 때 권한 오류가 발생하지 않습니다.

    • 이러한 모든 사용자에서 일부 파일을 동일하게하려면 한 사용자에서 파일을 작성하고 나머지 파일과 심볼릭 링크 할 수 있습니다. 이것은 작동해야하지만 변경 할 때 설정되어 있음을 기억해야합니다. 예를 들어 그 중 하나를 편집하고 편집기에서 백업 파일을 만드는 경우 해당 백업 파일은 다른 모든 사용자 계정이 아니라 편집 한 위치에만 저장됩니다.

사용자 별 파일 연결이 저장된 위치를 알 수 있습니다.~/.local/share/mime/
RobotHumans
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.