У меня есть небольшое приложение, перечисленное ниже, которое просто создает окно x и небольшое окно внутри него. Позже я планирую создать экспериментальную среду IDE, где все панели инструментов и меню являются подокнами, и каждый может выбрать любой оконный менеджер, которым он хочет управлять.Как я могу изменить окно xmonad reparents?
Что я хотел бы сделать, это запустить экземпляр xmonad и сделать его невосприимчивым и управлять окнами из корневого окна, но для восстановления и управления окнами в окне моего приложения.
Возможно ли это?
P.S. Вот приложение.
module Main where
import Graphics.X11.Xlib
y f = w where w = f w
main = do
display <- openDisplay ""
let screen = defaultScreen display
root <- rootWindow display screen
mainWindow <- createSimpleWindow
display
root
0 0 100 100
1
(blackPixel display screen)
(whitePixel display screen)
setTextProperty display mainWindow "Subwindows" wM_NAME
subWindow <- createSimpleWindow
display
mainWindow
0 0 100 100
1
(whitePixel display screen)
(blackPixel display screen)
mapWindow display subWindow
mapWindow display mainWindow
y $ \loop -> allocaXEvent $ \eventPointer -> do
nextEvent display eventPointer
event <- get_EventType eventPointer
case() of
_ | event == expose -> loop
| otherwise -> return()
еще лучше, я буду видеть, если я могу просто использовать Xephyr непосредственно. –