문제

나는 시스템의 작동 방식에 대한 합리적인 이해를 가진 Linux (주로 Ubuntu) 사용자입니다. ~ 아니다 리눅스 전문가!). 과거에는 Python/GTK에서 소규모 크로스 플랫폼 데스크톱 응용 프로그램을 개발했으며 고객에게 자체 포함 된 필레어로 고객에게 전달하여 유일한 종속성은 Python 자체와 GTK였습니다.

지금 우분투를위한 작은 애플릿을 개발하고 싶습니다, GPL 2 또는 3에 따라 석방하고 싶습니다.

특히 이것들은 새로운 단계입니다 나는 배워야한다는 것을 안다 내 목표를 달성하기 위해 (그것은 매우 가능합니다 그래도 내가 알지 못하는 것이 몇 개 더 있습니다!) :

  • 그놈과 통합 : 작업 표시 줄에서 애플릿으로 응용 프로그램을 사용할 수 있기를 바랍니다.
  • D- 버스 사용 : 특히 나는 애플릿이 우분투에 새로운 OSD-Notification 프레임 워크를 사용하기를 원하지만 다른 애플릿과의 커뮤니케이션도 두 번째 반복에 가능한 기능입니다.
  • 포장 : 응용 프로그램이 알파 스테이지에 도달하자마자 공개 PPA를 설정하고 싶습니다. 그러나 라이브러리를 내 패키지에 다시 포함시키지 않고 공식 저장소의 기존 패키지의 종속성을 사용하고 싶습니다.

물론 공식 문서는 나의 첫 번째 지식의 원천이 될 것입니다. 또 다른 주제 여기서 - 나는 예를 들어 다음과 같은 추가 조언을 수집하기 위해 SO 커뮤니티에 의지하기로 결정했습니다.

  1. 프로젝트를 구현하기 위해 배워야하는 이전에 설명한 사람들에게 추가 단계가 있습니까?
  2. 자신의 경험을 바탕으로, 그 단계를 미리 배우도록 조언 하시겠습니까 (핵심 기능을 코딩하는 방식에 영향을 미치기 때문에 Gnome / D-Bus와의 통합 및 포장을 "높은 캡슐화 레벨로 고려 하시겠습니까? "이후에는 핵심 기능 위에 추가 할 수 있습니다 (참고 : D-BUS는 처음에는 데이터를 푸시하는 데 사용됩니다. Webservice로 입력 데이터가 검색됩니다)?
  3. 내 응용 프로그램이 두 개의 패키지 (백엔드 및 프론트 엔드)로 분리하거나 단일 패키지로 함께 유지하도록 조언 하시겠습니까?,
  4. 내가해야 할 일을 배우기 위해 저에게 보라고 조언 할 유용한 리소스를 알고 있습니까?
  5. 내가 알아야 할 일반적인 "초보자의 실수"를 알고 있습니까?

그러나이 질문들은 철저한 것이 아닙니다. 내가 일반 그림에서 무언가를 놓치고 있다고 생각한다면, 당신은 나를 올바른 방향으로 가리키는 것을 환영합니다!

추신 : 최종 목표를 설명하지 못했습니까? 프로젝트 햄스터: 내가 달성하려는 것은 사용자 인터페이스 측면에서 비슷합니다 (의미 : 애플릿은 상태를 표시하고 클릭하면 애플릿을 구성하고 다양한 작업을 수행 할 수있는 응용 프로그램 자체를 열어야합니다).

도움이 되었습니까?

해결책 4

2 년 전에이 질문을했을 때 우분투와 그놈은 오늘날보다 서로 훨씬 더 가깝습니다. 현재 (2011 년 말) 그놈은 그놈 쉘을 채택했으며, 표준은 자신의 UI를 개발하기로 결정했습니다.단일성)...

분할에 가져온 긴장의 일부 구체적으로 libappindicator와 관련이 있습니다,이 질문을 공식화 한 방식 (그리고 아마도 답의 일부)은 쓸모 없게됩니다.

게다가 지금이 있습니다 Askubuntu Stack Exchange에서는 Ubuntu 관련 질문에 대해 물어 보는 것이 훨씬 더 나은 포럼 일 것입니다.

다른 팁

글쎄, 당신은 파이썬을 나열하므로 당신은 가고 싶을 것입니다 pynotify 당신의 무기고에서. 그것은 dbus를 감싸고 OSD-Notification 시스템을 조작하기위한 직접 API를 제공합니다.

>>> import pynotify
>>> pynotify.init("Lil' Applet")
True
>>> note = pynotify.Notification(
...            pynotify.get_app_name(), 
...            "Lil' Applet wants you to know something's up.", 
...            "/usr/share/icons/Human/48x48/status/dialog-information.png")
>>> note.show()
True

여기에는 다음과 같은 것으로 보이는 알림이 표시됩니다.

[    ] **Lil' Applet**
[ICON]
[    ] Lil' Applet wants you to know something's up.

이미 알고 있듯이, 첫 번째이자 가장 친한 친구는 다른 사람이 작성한 코드 (복사, 붙여 넣기, 해부, 이해가 될 것입니다. 운 좋게도 달성하려는 일을하는 몇 가지 프로젝트가 있습니다. 추천 할 수 있습니다 도관 클린 방식으로 일을하는 방법을 주요 참조로 코드. 나는 그들이 DBU에 물건이 있다고 생각합니다. 다른 사람들을 주시해야 할 것입니다 데스크바 applet, 햄스터 (heh) 및 기능 X가 있다는 것을 기억하는 다른 앱. 때로는 일부 C 코드 해독이 필요할 수도 있습니다 (애플릿 버튼 비트와 같은 - 햄스터에서 똑바로 데려가는 것이 더 좋을 것입니다).

그러면 "Devhelp"앱은 큰 도움이 될 것입니다.이를 통해 Man Pages에서 빠르고 쉽게 읽고 검색 할 수 있습니다. 사용하려는 모든 모듈에 대한 -DOC 패키지도 있는지 확인하십시오. 사용자 인터페이스의 경우 Glade 사용을 강력하게 사용하는 것이 좋습니다. 따라서 인터페이스를 훨씬 쉽게 변경할 수 있습니다. Glade를 사용할 수없는 경우 - 추가 및 정렬 상자를 추가하고 코드의 상자에 위젯을 추가하십시오. 확실히 어려운 방법을 배울 수있는 기발한 것들과 것들이있을 것입니다. 그래도 너무 힘들어서는 안됩니다!

포장, 특히 Autotools는 약간의 투쟁이지만, 당신은 그것을 올바르게 얻을 것입니다. 데비안 (그리고 거기에서 PPA로)을하는 방법은 햄스터의 저장소 기록을 파헤칠 수 있습니다. 한때 "데비안"폴더가있었습니다.

작은 시작을 제안합니다. 창문을 얻을 수 있는지 확인하십시오. 그런 다음 버튼을 넣으십시오. 당신은 처음으로 "올바른"것을 할 필요가 없습니다. 처음으로는 괜찮을 것입니다. 무언가가 작동한다면.

분리에 관해서 - 나는 당신이 거기에 도착할 때까지 그것에 대해 귀찮게하지 않을 것입니다. 두 부분으로 나누고 코어가 있으면 나중에 너무 어려워서는 안됩니다. 그러나 모든 것이 당신의 우선 순위에 달려 있습니다.

마지막으로 - 현장을 아는 친구를 얻는 것도 도움이됩니다. 그리고 새로운 친구를 사귀는 한 가지 방법은 다른 프로젝트에 참여하는 것입니다.

여기에는 이미 아주 좋은 권장 사항이 있지만 "Gnome을위한 Ubuntu"를 위해 "Ubuntu"를 많이 개발하지 말라고 제안하겠습니다. Fedora 및 Arch Linux 패키지와 같은 분포에 대한 RPM 패키지를 만들기 위해서는 두 가지 예를 지정하기 위해서는 많은 노력을 기울이지 않습니다. 그러나 데비안 안정과 호환 되려면 고대 버전의 GTK와 Glib를 고수하거나 최소한 최신 버전 선택에 따라 기능을 수행해야합니다. 고통 스럽지만 분명히 데비안 안정적인 사용자는 그것을 감사합니다.

또한 가능한 빨리 소스 코드 관리 시스템을 설정하는 것이 좋습니다. 디스크 충돌에 대해 걱정하지 않을 수도 있지만 때로는 마지막 커밋 이후로 한 모든 일을 되돌릴 수 있도록 많은 어려움을 덜어줍니다.

여기공식 그놈 패널 애플릿 라이브러리의 문서 링크입니다. 파이썬 바인딩이 있는지 여부는 모르겠습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top