我已经完成了XMonad Mac 教程中的每一步.但是,我无法启动它.
我的shell最初没有运行我的.profile.我的PATH现在正常工作.我运行以下命令失败
startx
Run Code Online (Sandbox Code Playgroud)
我明白了
font_cache: Scanning user font directories to generate X11 font caches
font_cache: Updating FC cache
xauth: creating new authority file /Users/Masi/.serverauth.2188
Xquartz: X11.app = /Applications/Utilities/X11.app/Contents/MacOS/X11
Xquartz: Starting X server: /Applications/Utilities/X11.app/Contents/MacOS/X11 --listenonly
X11.app: main(): argc=2
argv[0] = /Applications/Utilities/X11.app/Contents/MacOS/X11.bin
argv[1] = --listenonly
Waiting for startup parameters via Mach IPC.
X11.app: do_start_x11_server(): argc=6
argv[0] = /usr/X11/bin/X
argv[1] = :0
argv[2] = -nolisten
argv[3] = tcp
argv[4] = -auth
argv[5] = /Users/Masi/.serverauth.2188
Xquartz starting:
X.Org X Server …
Run Code Online (Sandbox Code Playgroud) 有时会发生这种情况,当我mod-L
或mod-H
Xmonad我的窗户没有调整大小时.我相信这是因为我不小心改变了主窗格中的窗口数量.有时候我很幸运能够获得适当的数量,mod-,
或者mod-.
回到我可以调整大小的位置,但不是经常.
如何将窗格重置为默认值,Xmonad在启动时为其提供默认值?我的xmonad.hs:
import XMonad
import qualified XMonad.StackSet as W
import qualified Data.Map as M
import System.Exit
import Graphics.X11.Xlib
import IO (Handle, hPutStrLn)
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.SetWMName
import XMonad.Layout.IM
import XMonad.Layout.Reflect
import XMonad.Layout.NoBorders
import XMonad.Layout.ResizableTile
import XMonad.Layout.PerWorkspace
import XMonad.Layout.LayoutHints
import XMonad.Layout.LayoutCombinators hiding ((|||))
import XMonad.Layout.LayoutHints
import XMonad.Layout.NoBorders
import XMonad.Layout.ComboP
import XMonad.Layout.PerWorkspace
import XMonad.Layout.ResizableTile
import XMonad.Layout.Tabbed
import XMonad.Layout.TwoPane
import XMonad.Util.Run (spawnPipe)
import qualified XMonad.StackSet as W
import XMonad.Hooks.ManageHelpers
import XMonad.Layout.NoBorders …
Run Code Online (Sandbox Code Playgroud) 目前我用
import XMonad.Layout.NoBorders
...
xmonad $ defaultConfig { layoutHook = noBorders $ layoutHook defaultConfig }
Run Code Online (Sandbox Code Playgroud)
但这会产生noBorder
所有布局,而不仅仅是" Full
".
我知道,我可以简单地layoutHook
从默认配置复制定义并noBorder
在" Full
" 之前添加,但我想要美丽的方式,希望Haskell为它提供一些方法.
我是Haskell noob,目前只使用它来配置xmonad.
我想将我的配置放入一个git仓库,因为我不想硬编码我的家庭目录来抓住我的图标.
我查看了 http://www.haskell.org/haskellwiki/How_to_get_rid_of_IO, 但我太无知了解它.
hd h = h =<< getHomeDirectory
getIcon::String -> String
getIcon out = ( "^i("++hd++".xmonad/dzen2/"++out )
Run Code Online (Sandbox Code Playgroud)
这有可能吗?如果是这样,怎么样?我不想在目录上操作,我只想要路径,作为一个字符串,它杀了我.
错误是:
Run Code Online (Sandbox Code Playgroud)Couldn't match expected type `[Char]' with actual type `(FilePath -> IO b0) -> IO b0' In the first argument of `(++)', namely `hd' In the second argument of `(++)', namely `hd ++ ".xmonad/dzen2/" ++ out' In the expression: ("^i(" ++ hd ++ ".xmonad/dzen2/" ++ out)
在我看来,IO monad根本没有删除.
更新:好的.我将学习如何适应IO规则,在此之前我将保持硬编码并使用将替换相应位的脚本克隆配置文件.
我正在使用 xmonad,并且想要一种锁定屏幕的好方法。所以我安装了 slock (apt-get install slock),效果很好。
然后我想要一个简单的按键序列来触发 slock,所以我在 xmonad.hs 中定义了这个新函数:
import qualified Data.Map as M
myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
[ ((modMask .|. controlMask, xK_l),
spawn "slock")
]
Run Code Online (Sandbox Code Playgroud)
并添加keys = myKeys
到主函数中。
这使我能够使用 很好地锁定屏幕Ctrl+Alt+l
,但其他 xmonad 快捷方式都不起作用!
有没有办法让我添加一个新的按键绑定,但不改变任何现有的绑定?
我正在学习基本的Haskell,所以我可以配置Xmonad,我遇到了这段代码:
newKeys x = myKeys x `M.union` keys def x
Run Code Online (Sandbox Code Playgroud)
现在我明白了M.union
反引号的含义和含义.这就是我解释它的方式:
newKeys(x) = M.union(myKeys(x),???)
Run Code Online (Sandbox Code Playgroud)
我不知道该怎么做keys def x
.是keys(def(x))
吗?还是keys(def,x)
?或者是def
某种其他关键字?
这个问题有一个合适的答案,但它隐藏了我在“spawn xmobar”评论中发现的所有困难。
- 如何为不同的屏幕生成一个 xmobar 实例?
- 如果这不是一个选项,如何在多个屏幕上生成多个实例?
- 如何使用 xmobar 的多个实例设置 logHook?
操作系统:NixOS,通道不稳定。
\nNeovim:0.7.2。
\n哈斯克尔 LSP:haskell-language-server
.
xmonad --recompile
在终端中运行是有效的。
请帮忙 :-)
\n正如@ArtemPelenitsyn 在下面的评论中所询问的,这是我的init.lua
:https: //pastebin.com/70jMHm02。\n我认为相关的部分:
require\'lspconfig\'.hls.setup{}\n
Run Code Online (Sandbox Code Playgroud)\n我认为它与 NixOS 更相关,而不是 Neovim。
\n正如@Ben 在下面的评论中所询问的,以下是所需的信息:
\n\xce\xbb ghci\nGHCi, version 9.0.2: https://www.haskell.org/ghc/ :? for help\nghci> import XMonad\n\n<no location info>: error:\n Could not find module \xe2\x80\x98XMonad\xe2\x80\x99\n It is not a module in the current program, or in any known package.\nghci> \n
Run Code Online (Sandbox Code Playgroud)\n这是我的configuration.nix中与Haskell和XMonad相关的所有内容:
\n\xce\xbb ghci\nGHCi, version 9.0.2: https://www.haskell.org/ghc/ …
Run Code Online (Sandbox Code Playgroud)