문제

새로운 홈 프로젝트 중 하나는 간단한 창 관리자가 될 것이지만 시작하기 전에 몇 가지 사항을 알아야합니다.

  • 이것을하기에 가장 좋은 언어는 무엇입니까?
  • 배울 자원을 어디서 얻을 수 있습니까?
도움이 되었습니까?

해결책

중요한 결정 중 하나는 X 서버와 대화하는 방법입니다. 당신은 사용할 수 있습니다 xlib 선택 언어에 대한 바인딩 또는 더 높은 수준을 사용할 수 있습니다. XCB 바인딩. (당신이 정신 이상의, 당신은 X 서버에 직접 소켓을 열 수 있습니다.)

창 관리자가 어떻게 행동 해야하는지 알기 위해 규칙과 정책을 지정하는 두 가지 문서가 있습니다. EWMH 그리고 ICCCM1. 이를 준수한다는 것은 창 관리자가 그놈, KDE, XFCE 및 기타 데스크탑 환경에서 잘 작동한다는 것을 의미하지만, 처음 시도 할 때는 무시하는 것이 더 쉽습니다.

윈도우 관리자는 C의 거대하고 복잡한 공을 필요로하지 않습니다. 성공적인 창 관리자는 LISP, Haskell 및 Python과 같은 고급 언어로 작성되었으며 C의 일부는 작고 읽을 수있었습니다. Xmonad, Haskell으로 작성되었으며, 꽤 오랫동안 1000 줄 미만을 유지했습니다. stumpwm (공통 LISP) 및 DWM (c) 둘 다 상당히 미니멀리스트입니다. WM을 설계하는 방법에 대한 영감을 얻기 위해 소스 코드를 읽을 수 있습니다.


1 Elijah Newren은 다음과 같이 썼습니다.

가서 그 것들을 읽지 마십시오. 그들은 정말로, 정말 지루합니다. 당신이 그렇게한다면, 아마도 메시도를 해킹하는 대신 수면을 따라 잡을 것입니다. ;-)

생각해보세요. 메이티브의 문서는 Windows와 어떻게 상호 작용하는지, 어떤 종류의 확장 된 속성을 지원하는지에 대해 이야기하는 것이 좋습니다.

다른 팁

그만큼 Tinywm C에서 시작하는 데 도움이 될 수 있습니다.

다른 언어와 라이브러리 세트는 기술적으로 가능하지만 최상의 언어 선택은 C와 XLIB 또는 XCB 라이브러리 일 것이라고 생각합니다. X의 대부분의 윈도우 관리자는이를 사용하며 이미 이러한 특정 라이브러리에 대한 많은 추진력과 성숙도가 있습니다.

관심있는 일부 문서 :

  • xlib 매뉴얼 - 저수준 X 프로그래밍을 위해 읽어야합니다.
  • ICCCM - X 응용 프로그램과 창 관리자 간의 통신을위한 규칙 및 인터페이스.
  • XCB - XLIB의 21 세기 교체. 이것은 약간 낮은 수준이며 XLIB보다 귀하를 위해 결정을 적게합니다. 내가 수집 한 결과, 결과는 비동기식의 잠재력이 더 많기 때문에 잠재적으로 더 나은 성능을 발휘할 수 있지만, 나는 그와 함께 일한 적이 없다고 경고해야합니다.
  • 이것을하기에 가장 좋은 언어는 무엇입니까?

    당신이 가장 편한 사람이든. 많은 다른 언어로 성공적인 창 관리자의 예가 많이 있습니다. Qtile 그리고 Xmonad Python과 Haskell으로 각각 쓰여진 좋은 예입니다.

  • 배울 자원을 어디서 얻을 수 있습니까?

    기존 창 관리자 중 일부를 살펴 보겠습니다. 그들 중 많은 것이 있으므로 적어도 일부는 읽을 수있는 코드가 있어야합니다. 여기에 있습니다 UNIX 용 윈도우 관리자의 포괄적 인 목록.

나는이 주제가 조금 늙었다는 것을 알고 있지만, 같은 것을 궁금해하고있었습니다. 이 창 관리자는 전화를했습니다 i3 배우기에 좋은 사람처럼 보입니다.

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