Arch-Linux
如何在 Xmonad 中始終生成沒有邊界的 mpv?
mpv
由於邊框,我遇到了問題,xmonad
我希望能夠始終啟動mpv
,浮動,完全沒有邊框,並且mpv
預設情況下保持鍵綁定的功能。注意:我知道就像我目前的
.xmonad
配置文件一樣,我可以全屏顯示,mpv
但meta+b
我meta+f
希望能夠只使用預設的f
鍵綁定mpv
來全屏顯示並且沒有邊框。最後一種方法目前不起作用。那可能嗎?
如果是,我需要如何修改我的
.xmonad
配置文件?這是我目前的 .xmonad 配置文件
import System.IO import System.Exit import XMonad import XMonad.Hooks.SetWMName import XMonad.Hooks.DynamicLog import XMonad.Hooks.ManageDocks import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.ManageHelpers(doFullFloat, doCenterFloat, isFullscreen, isDialog) import XMonad.Config.Desktop import XMonad.Config.Azerty import XMonad.Util.Run(spawnPipe) import XMonad.Actions.SpawnOn import XMonad.Util.EZConfig (additionalKeys, additionalMouseBindings) import XMonad.Actions.CycleWS import XMonad.Hooks.UrgencyHook import qualified Codec.Binary.UTF8.String as UTF8 import XMonad.Layout.Spacing import XMonad.Layout.Gaps import XMonad.Layout.ResizableTile import XMonad.Layout.NoBorders import XMonad.Layout.Fullscreen (fullscreenFull) import XMonad.Layout.Cross(simpleCross) import XMonad.Layout.Spiral(spiral) import XMonad.Layout.ThreeColumns import XMonad.Layout.MultiToggle import XMonad.Layout.MultiToggle.Instances import XMonad.Layout.IndependentScreens import XMonad.Layout.CenteredMaster(centerMaster) import Graphics.X11.ExtraTypes.XF86 import qualified XMonad.StackSet as W import qualified Data.Map as M import qualified Data.ByteString as B import Control.Monad (liftM2) import qualified DBus as D import qualified DBus.Client as D myStartupHook = do spawn "$HOME/.xmonad/scripts/autostart.sh" setWMName "LG3D" -- colours normBord = "#4c566a" focdBord = "#5e81ac" fore = "#DEE3E0" back = "#282c34" winType = "#c678dd" --mod4Mask= super key --mod1Mask= alt key --controlMask= ctrl key --shiftMask= shift key myModMask = mod4Mask encodeCChar = map fromIntegral . B.unpack myFocusFollowsMouse = True myBorderWidth = 2 myWorkspaces = ["\61612","\61899","\61947","\61635","\61502","\61501","\61705","\61564","\62150","\61872"] --myWorkspaces = ["1","2","3","4","5","6","7","8","9","10"] --myWorkspaces = ["I","II","III","IV","V","VI","VII","VIII","IX","X"] myBaseConfig = desktopConfig -- window manipulations myManageHook = composeAll . concat $ [ [isDialog --> doCenterFloat] , [className =? c --> doCenterFloat | c <- myCFloats] , [title =? t --> doFloat | t <- myTFloats] , [resource =? r --> doFloat | r <- myRFloats] , [resource =? i --> doIgnore | i <- myIgnores] -- , [(className =? x <||> title =? x <||> resource =? x) --> doShiftAndGo "\61612" | x <- my1Shifts] -- , [(className =? x <||> title =? x <||> resource =? x) --> doShiftAndGo "\61899" | x <- my2Shifts] -- , [(className =? x <||> title =? x <||> resource =? x) --> doShiftAndGo "\61947" | x <- my3Shifts] -- , [(className =? x <||> title =? x <||> resource =? x) --> doShiftAndGo "\61635" | x <- my4Shifts] -- , [(className =? x <||> title =? x <||> resource =? x) --> doShiftAndGo "\61502" | x <- my5Shifts] -- , [(className =? x <||> title =? x <||> resource =? x) --> doShiftAndGo "\61501" | x <- my6Shifts] -- , [(className =? x <||> title =? x <||> resource =? x) --> doShiftAndGo "\61705" | x <- my7Shifts] -- , [(className =? x <||> title =? x <||> resource =? x) --> doShiftAndGo "\61564" | x <- my8Shifts] -- , [(className =? x <||> title =? x <||> resource =? x) --> doShiftAndGo "\62150" | x <- my9Shifts] -- , [(className =? x <||> title =? x <||> resource =? x) --> doShiftAndGo "\61872" | x <- my10Shifts] ] where -- doShiftAndGo = doF . liftM2 (.) W.greedyView W.shift myCFloats = ["Arandr", "Arcolinux-calamares-tool.py", "Arcolinux-tweak-tool.py", "Arcolinux-welcome-app.py", "Galculator", "feh", "Xfce4-terminal"] myTFloats = ["Downloads", "Save As..."] myRFloats = [] myIgnores = ["desktop_window"] -- my1Shifts = ["Chromium", "Vivaldi-stable", "Firefox"] -- my2Shifts = [] -- my3Shifts = ["Inkscape"] -- my4Shifts = [] -- my5Shifts = ["Gimp", "feh"] -- my6Shifts = ["vlc", "mpv"] -- my7Shifts = ["Virtualbox"] -- my8Shifts = ["Thunar"] -- my9Shifts = [] -- my10Shifts = ["discord"] myLayout = spacingRaw True (Border 0 5 5 5) True (Border 5 5 5 5) True $ mkToggle (NBFULL ?? NOBORDERS ?? EOT) $ tiled ||| Mirror tiled ||| spiral (6/7) ||| ThreeColMid 1 (3/100) (1/2) ||| noBorders Full where tiled = Tall nmaster delta tiled_ratio nmaster = 1 delta = 3/100 tiled_ratio = 1/2 myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $ -- mod-button1, Set the window to floating mode and move by dragging [ ((modMask, 1), (\w -> focus w >> mouseMoveWindow w >> windows W.shiftMaster)) -- mod-button2, Raise the window to the top of the stack , ((modMask, 2), (\w -> focus w >> windows W.shiftMaster)) -- mod-button3, Set the window to floating mode and resize by dragging , ((modMask, 3), (\w -> focus w >> mouseResizeWindow w >> windows W.shiftMaster)) ]
我已經解決了這個問題
lessBorders Never $ avoidStruts
我的佈局
myLayout = BO.lessBorders BO.Never $ avoidStruts (full ||| tiled ||| grid ||| bsp) where -- full full = renamed [Replace "Full"] $ BO.noBorders (Full) --- tiled tiled = renamed [Replace "Tall"] $ spacingRaw True (Border 10 0 10 0) True (Border 0 10 0 10) True -- $ spacingRaw True (Border 0 5 5 5) True (Border 5 5 5 5) True $ ResizableTall 1 (3/100) (1/2) [] -- grid grid = renamed [Replace "Grid"] $ spacingRaw True (Border 10 0 10 0) True (Border 0 10 0 10) True $ Grid (16/10) -- bsp bsp = renamed [Replace "BSP"] $ emptyBSP
主要的
main :: IO () main = do dbus <- D.connectSession -- Request access to the DBus name D.requestName dbus (D.busName_ "org.xmonad.Log") [D.nameAllowReplacement, D.nameReplaceExisting, D.nameDoNotQueue] xmonad $ withUrgencyHook LibNotifyUrgencyHook $ ewmh desktopConfig { manageHook = ( isFullscreen --> doFullFloat ) <+> manageDocks <+> myManageHook <+> manageHook desktopConfig , startupHook = myStartupHook , layoutHook = myLayout , handleEventHook = handleEventHook desktopConfig , workspaces = myWorkspaces , borderWidth = myBorderWidth , terminal = myTerminal , modMask = myModMask , normalBorderColor = normBord , focusedBorderColor = focdBord , logHook = updatePointer (0.25, 0.25) (0.25, 0.25) , keys = myKeys , mouseBindings = myMouseBindings }
並完全重建
xmonad.sh
請參閱我關於此主題的相關答案,它也解決了此問題中提出的問題。