데모 코드와 튜토리얼이 마음에 들지 않는 이유는 무작위 가져 오기를 소개하고 그들이 무엇인지 또는 어떻게 사용하는지 설명하지 않기 때문입니다. 사람들이 호출 할 수있는 기능, 가져올 수있는 기능 등을 실제로 알 수 있도록 다른 사람들이 추가 할 수있는 자체 답변을 작성하고 있습니다.
Gnome Shell에 대한 생성 된 문서가 있지만 다소 불완전합니다. 다양한 튜토리얼, 예제 및 게시 된 확장에서 본 것 대부분을 찾을 수 없었습니다.
실제로 믿을 수있는 유일한 문서는 Gnome Shell 소스 자체입니다. 사용 가능한 항목을 알 수있는 다른 최신 방법이나 완전한 방법은 없습니다.
이 두 가지 출발점이 특히 좋습니다.
C 소스는 global
가져올 필요가없는 중요한 개체 가 있으며 창 관리자 (키 바인딩 포함), 세션 정보, 사용 가능한 화면 및 기타 항목에 액세스 할 수 있도록합니다. 소스는 다음과 같습니다.
나는 객체 를 사용하는 방법global.display
을 알고 싶었고 , 현재 가장 좋은 문서는 Alan Knowles가 제공 한 것이다.
GObject 내부 검사 바인딩을 통해 다른 항목을 가져올 수 있습니다 (예 :
일반적으로 다양한 그놈 구성 요소 에 대한 참조 문서를 통해 다른 가져 오기를 찾을 수 있습니다.
유리 잔에 대한 참고 사항 : 유리판에 이러한 수입품을 사용하는 것에 대한 몇 가지 단점이 있습니다. 즉석에서 물건을 시험하는 데 많은 시간을 낭비했습니다. 예를 들면 다음과 같습니다.
const Clutter = imports.gi.Clutter;
... Clutter
이미 존재 하기 때문에 작동하지 않습니다 . 하지만:
const MyClutter = imports.gi.Clutter;
... 또한 작동하지 않습니다. MyClutter
정의되지 않아 사용할 수 없습니다. 너가해야되는:
MyClutter = imports.gi.Clutter;
물론이 경우 Clutter
이미 존재하므로 실제로 필요하지는 않습니다. 그러나 유리로 된 네임 스페이스에 무엇이 있는지 아직 문서화되어 있지 않기 때문에 무언가를 가져 와서 이러한 문제가 발생하면 명심하십시오.
나머지 질문들 :
- 무엇입니까
Mainloop
? 이것은 임포트되어 main.js
GLib 메인 루프와 관련된 기능을 가진 것으로 보입니다. 이에 대한 문서가 있습니까?
- 무엇입니까
imports.misc
? 거기에 정말 유용한 것들이있는 것 같습니다. ExtensionUtils
그게 뭐죠?
- DBus는 어떻게 사용합니까? 내성 검사는 어떻습니까?