Gnome 데스크탑 메뉴에 애플리케이션 추가하기
Read The Fucking Manual; RTFM
- Desktop files: putting your application in the desktop menus
- Desktop Entry Specification
이 글로 충분하지 않을 수 있다. 그럴 땐 매뉴얼을 참고하라.
왜?
Gnome 데스크탑 메뉴 커스터마이징이 필요해질 때가 있다. 예를 들면, 무척이나 유용한 프로그램을 발견했으나 그놈 데스크탑 메뉴를 고려하지 않고 만들어진 경우나, 자신이 직접 만든 프로그램을 편하게 불러다 쓰고 싶은 경우이다.
간단한 프로그램의 경우, Path에 밀어넣고 Alt
+ F2
핫 키로 명령어를 실행하면 된다. 하지만 그 많은 커맨드를 외우기에는 한계가 있고, 무엇보다 데스크탑 메뉴에 fancy한 아이콘과 함께 정리되지 않는다.
본질
Gnome의 데스크탑 메뉴는 윈도우의 바로가기 메뉴처럼 파일 기반으로 구성되어있지만, 좀 더 customizable 하다.
시스템 전체에서 사용될 소프트웨어는 /usr/share/applications/
디렉토리에, 특정 계정을 위한 소프트웨어는 ~/.local/share/applications/
디렉토리에 *.desktop
형식의 파일로 저장되어 있다.
$ ls /usr/share/applications/
bluetooth-sendto.desktop
ca.desrt.dconf-editor.desktop
chromium-browser.desktop
eog.desktop
evolution-calendar.desktop
firefox.desktop
gcm-calibrate.desktop
...
예제
Hello world 프로그램을 만들어보자. ~/.local/share/applications/
디렉토리에 다음과 같이 helloworld.desktop
파일을 만들자.
[Desktop Entry]
Name=Hello World
Exec=bash -c 'echo "Hello World!";sleep 1;'
Type=Application
Terminal=true
실행해보면 Hello World!
라고 출력된 터미널이 나타났다가 1초뒤에 사라질 것이다.
이게 뭐지?
Desktop Entry 파일 형식은 읽고 쓰기 쉽게 만들어져있다. 여기에 여러분이 쓸만한 몇 가지 항목을 정리해보았다.
- Name :: 데스크탑 메뉴에 표시될 이름
- Exec :: 프로그램을 실행하는 명령
- Icon :: 데스크탑 메뉴에 표시될 아이콘(파일 위치로 지정)
- Type ::
Application
혹은Link
,Directory
이다.Application
:: 소프트웨어를 실행하는 엔트리이다.Link
:: URL shortcut을 나타내는 엔트리이다.Directory
:: 데스크탑 메뉴의 서브 메뉴이다..directory
확장자를 갖는다.
- Terminal :: 이 값이
true
인 경우 새 터미널이 만들어진다.true
값을 갖기 위해선 Type 값이Application
이어야 한다.
예제2
아래는 Stylus Lab's Write 라는 전자펜 필기 애플리케이션의 데스크탑 엔트리를 지정하는 예제이다.
[Desktop Entry]
Name=Stylus Labs Write
Type=Application
Terminal=False
Exec=/home/user/.local/bin/Write
Icon=/home/user/.local/share/icons/hicolor/128x128/apps/styluslabs-write.svg
Keywords=Write;
styluslabs-write.svg는 이렇게 생겼다:
그놈 데스크탑 메뉴에 "write"를 검색하면, 다음과 같이 나온다.
데스크탑 엔트리에 대해 더 알고 싶다면, 이 페이지 맨 위의 RTFM 단락을 보라.