- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个下面列出的小应用程序,它只是在其中制作了一个 x 窗口和一个小窗口。我稍后计划制作一个实验性 IDE,其中所有的工具栏和菜单都是子窗口,并且可以选择任何想要管理它们的窗口管理器。
我想做的是启动一个 xmonad 实例,并使其不从根窗口重新设置窗口的父级和控制窗口,而是在我的应用程序窗口内重新设置和控制窗口。
这可能吗?
附言这是应用程序。
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 ()
最佳答案
原则上“只是”将 xmonad 中所有硬编码的根窗口引用替换为可以在启动时指定的窗口 ID。但除非 xmonad 已经具有该功能,否则您肯定必须破解 xmonad 代码才能添加它。
你可以运行你自己的整个 X 服务器并假装你的窗口是一个根窗口——就像 Xephyr 或 Xnest。这肯定比添加 xmonad 功能以使用非根窗口要难得多,但它的优势在于它可以与任何窗口管理器一起工作。
另一种方法可能是从 xmonad 中提取代码并将其粘贴到您的应用中...
关于linux - 如何更改 xmonad reparents 的窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9300120/
如何获取 xmonad 中可见工作空间(当前显示在显示器上的工作空间)的列表?目前,在我的 xmonad.hs 配置文件中,命令 (XMonad.workspaces conf) 为我提供了所有工作区
默认情况下,xmonad 处理 every display separately 。我可以切换到每个显示器并在其上放置一个工作区。这非常有效并且很有意义。 现在我遇到的问题是,通过 DisplayPo
每当 xmonad 启动、重新启动或重新编译时,我都会收到一条 xmessage: xmonad.hs:1:8: Could not find module `XMonad' Perhaps you
我知道 XMobar 支持位图图标,并且我能够配置它们。不过,我还想使用图标来指示当前的 XMonad 布局,但 XMobar 从 XMonad 的 stdin 上获取它。而且我无法找到一种方法来传递
我试图从 ~/.xmonad/Tree.hs 导入一个名为“Tree.hs”的自定义本地模块,但我得到: Error detected while loading xmonad configurati
嗨,直到几天前,我的 Xmonad 一直运行良好,然后我想我用 Synaptic 安装了一些东西,然后开始提示 Xmonad.Config.Gnome这是我的 xmonad.hs import XMo
编辑:原来我的问题只是 Xmobar 中的一个临时错误。请参阅已接受的答案。 谷歌上有很多解决方案,但几乎没有一个对我有用。我正在建立一个 Arch 系统,所以我的第一个倾向是使用 the confi
当我在 ubuntu 中使用 xmonad 时,我遵循了 Xmonad 的教程,但是没有应用程序菜单栏。 我怎么解决这个问题? 我的配置文件在这里: import XMonad import XMon
我正在尝试在 ubuntu 上使用 nix,并使用 XMonad 作为我的窗口管理器。我在一台使用 nixOS 的主机上运行良好,但我有第二台设备尚未准备好支持 nixOS。 Ubuntu 之上的 n
我正在尝试在haskell中设置一个用于代码开发的NixOS VM,并且在xmonad和emacs的基本安装方面遇到了麻烦。我的相关部分/etc/nixos/configuration.nix是 en
This answer描述了如何在 Xmonad 中创建组合键绑定(bind)。 使用 additionalKeys 我将我的键绑定(bind)作为列表添加到我的 XConfig 配置中: ... -
在使用 Alt-Tab 键切换事件窗口时,XMonad 是否可以像许多窗口管理器一样工作?经过一番寻找,我尝试过: ((mod1Mask, xK_Tab), cycleRecentWindows [x
正如标题所说,我需要在两个或更多屏幕上显示一个窗口。 我尝试了 XMonad.Actions.CopyWindow。但似乎虽然窗口被复制到正确的工作区,但它只显示在一个物理屏幕上。 最佳答案 据我了解
我对 xmonad 完全陌生,但我想开始使用它来提高我的工作效率。 这是我一直在使用的指南(我使用的是 Apple OS X Snow Leopard) http://xmonad.org/tour.
我正在尝试编写一个 xmonad.hs,它在启动时会在某些工作区上启动一些应用程序。其中几个应用程序(例如, atop )将在终端内运行( urxvt 是我的偏好)。 这已经被问过几次了,例如,her
我想在 xmonad 启动时在不同的工作区(这很重要)中启动一些应用程序。所以,我写了以下 startupHook : startupApps :: [String] startupApps = ["
我看到其他几个人也有同样的问题,但是没有一个解决方案对我有用。下面的命令+输出主要是我试过的。我发帖 1) 因为我一直坚持这个问题 2) 我想在另一篇文章中发表评论,但我没有声誉 :( 我已经重新安装
我想扩展我的 xmonad.hs,方法是通过 stack 将它移动到它自己的沙盒项目环境中。事实证明,通过将您的 xmonad main 函数嵌入到使用 xmonad-entryhelper 的父级
我正在尝试配置我的 xmonad.hs所以当我开始我的 session 时,我会在不同的工作区启动一系列不同的程序(比如 1 中的终端;2 中的 Firefox;3 中的 Pidgin)。 我已经查看
是否可以根据我显示的物理屏幕以某种方式更改工作区布局? 我想在左显示器的布局上使用 reflectHoriz(来自 XMonad.Layout.PerWorkspace),以便主 Pane 始终最靠近
我是一名优秀的程序员,十分优秀!