AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / computer / 问题

问题[window-manager](computer)

Martin Hope
Raymond
Asked: 2022-08-19 08:18:45 +0800 CST

将窗口移动到工作区并将该工作区(shiftAndView)聚焦在 XMonad WM 上

  • 5

我有 XMonad 有一段时间了,过去几天我一直在研究这个问题,但仍然没有解决方案。

让我给你一个我正在尝试做的例子:VLC 是打开的,在它仍然集中的时候将它移动到工作区 2,所以我不必走很长的路,首先将 VLC 移动到工作区 2,然后切换到那个工作区。

我搜索了很多论坛和网站,人们提供了很好的答案,但我的情况有所不同:

我将namedActions用于我的键绑定,而这些答案对我不起作用。

我不确定它是否会有所帮助,但这是我的配置文件: https ://pastebin.com/UuWt9qji

import XMonad
import Data.Char
import Data.Monoid
import System.Exit
import System.IO
import XMonad.Layout.Tabbed
import XMonad.Layout.Spacing
import XMonad.Layout.NoBorders
import XMonad.Layout.Fullscreen
import XMonad.Layout.Spiral
import XMonad.Layout.ResizableTile
import XMonad.Layout.Renamed
import XMonad.Layout.BinarySpacePartition
import XMonad.Layout.ToggleLayouts
import XMonad.Layout.Reflect
import XMonad.Layout.SubLayouts
import XMonad.Layout.WindowNavigation
import XMonad.Layout.Simplest
import XMonad.Util.Run
import XMonad.Util.SpawnOnce
import XMonad.Util.NamedScratchpad
import XMonad.Util.NamedActions
import XMonad.Util.EZConfig
import XMonad.ManageHook
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
import qualified XMonad.StackSet as W
import qualified Data.Map        as M
import XMonad.Actions.CycleWS
import XMonad.Util.WorkspaceCompare

-----------------------------------------------------------------------------------
myModMask       = mod4Mask
myTerminal      = "alacritty"
myBrowser       = "qutebrowser"
myBorderWidth   = 2

myLauncher      = "rofi -show drun"
myStatusBar     = "xmobar .config/xmobar/xmobarrc"
myFont          = "xft:Hack Nerd Font:regular:size=12:antialias=true:hinting=true"

myNormalColor   = "#4e5173"
myFocusColor    = "#46d9ff"

myFocusFollowsMouse :: Bool
myFocusFollowsMouse = True

myClickJustFocuses :: Bool
myClickJustFocuses = False

-----------------------------------------------------------------------------------
myScratchPads :: [NamedScratchpad]
myScratchPads  = [ NS "terminal" spawnTerm findTerm manageTerm
                 , NS "htop"     spawnHtop findHtop manageHtop
                 ]
  where
    spawnTerm  = myTerminal ++ " -t scratchpad"
    findTerm   = title =?      "scratchpad"
    manageTerm = customFloating $ W.RationalRect l t w h
              where
                h  = 0.9
                w  = 0.9
                t  = 0.95 -h
                l  = 0.95 -w
    spawnHtop  = myTerminal ++ " -t htop -e htop"
    findHtop   = title =?      "htop"
    manageHtop = customFloating $ W.RationalRect l t w h
               where
                h  = 0.9
                w  = 0.9
                t  = 0.95 -h
                l  = 0.95 -w

-----------------------------------------------------------------------------------
wsDo   = "AV"
wsBo   = "BSA"
wsCo   = "COM"
wsMo   = "DOM"
wsGo   = "DMO"
wsFo   = "FLT"

-- myWorkspaces = map show [1..9]
myWorkspaces = [wsDo, wsBo, wsCo, wsGo, wsMo, wsFo]

-----------------------------------------------------------------------------------
showKeybindings :: [((KeyMask, KeySym), NamedAction)] -> NamedAction
showKeybindings x = addName "Show Keybindings" $ io $ do
  h <- spawnPipe $ "yad --text-info --fontname=\"SauceCodePro Nerd Font Mono 12\" --fore=#46d9ff --back=#282c36 --center --geometry=1200x800 --title \"XMonad keybindings\""
  hPutStr h (unlines $ showKm x)
  hClose h
  return ()

wsKeys = map show $ [1..9] ++ [0]
notSP = (return $ ("SP" /=) . W.tag) :: X (WindowSpace -> Bool)
shiftAndView dir = findWorkspace getSortByIndex dir (WSIs notSP) 1
  >>= \t -> (windows . W.shift $ t) >> (windows . W.greedyView $ t)

myKeys confkey =let subKeys str ks = subtitle str : mkNamedKeymap confkey ks in

  subKeys "System"
  [ ("M-t"    , addName "Push window back into tiling"  $ withFocused $ windows . W.sink)
  , ("M-S-q"  , addName "Quit xmonad"                   $ io (exitWith ExitSuccess))
  , ("M-q"    , addName "Rebuild & restart XMonad"      $ spawn "xmonad --recompile; xmonad --restart")]

  ^++^ subKeys "Launchers"
  [ ("M-S-<Return>"  , addName "Launch Terminal"  $ spawn myTerminal)
  , ("M-p"           , addName "Launch Rofi"      $ spawn myLauncher)
  , ("M-b"           , addName "Launch Browser"   $ spawn myBrowser)]

  ^++^ subKeys "Layout Management"
  [ ("M-<Space>"    , addName "Switch to next layout"            $ sendMessage NextLayout)
  , ("M-S-<Space>"  , addName "Reset layouts"                    $ setLayout $ XMonad.layoutHook confkey)
  , ("M-f"          , addName "Toggle to Fullscreen"             $ sendMessage (Toggle "Full"))
  , ("M-S-b"        , addName "Toggle Struts"                    $ sendMessage ToggleStruts)
  ]

  ^++^ subKeys "Workspaces"
  [ ("M-1", addName "Switch to workspace 1"    $ (windows $ W.greedyView $ myWorkspaces !! 0))
  , ("M-2", addName "Switch to workspace 2"    $ (windows $ W.greedyView $ myWorkspaces !! 1))
  , ("M-3", addName "Switch to workspace 3"    $ (windows $ W.greedyView $ myWorkspaces !! 2))
  , ("M-4", addName "Switch to workspace 4"    $ (windows $ W.greedyView $ myWorkspaces !! 3))
  , ("M-5", addName "Switch to workspace 5"    $ (windows $ W.greedyView $ myWorkspaces !! 4))
  , ("M-6", addName "Switch to workspace 6"    $ (windows $ W.greedyView $ myWorkspaces !! 5))
  , ("M-S-1", addName "Send to workspace 1"    $ (windows $ W.shift $ myWorkspaces !! 0))
  , ("M-S-2", addName "Send to workspace 2"    $ (windows $ W.shift $ myWorkspaces !! 1))
  , ("M-S-3", addName "Send to workspace 3"    $ (windows $ W.shift $ myWorkspaces !! 2))
  , ("M-S-4", addName "Send to workspace 4"    $ (windows $ W.shift $ myWorkspaces !! 3))
  , ("M-S-5", addName "Send to workspace 5"    $ (windows $ W.shift $ myWorkspaces !! 4))
  , ("M-S-6", addName "Send to workspace 6"    $ (windows $ W.shift $ myWorkspaces !! 5))]
  
  ^++^ subKeys "Window Management"
  [ ("M-<Tab>"     , addName "Move focus to the next window"        $ windows W.focusDown)
  , ("M-j"         , addName "Move focus to the next window"        $ windows W.focusDown)
  , ("M-k"         , addName "Move focus to the previous window"    $ windows W.focusUp)
  , ("M-m"         , addName "Move focus to the master window"      $ windows W.focusMaster)
  , ("M-<Return>"  , addName "Swap focused to the master window"    $ windows W.swapMaster)
  , ("M-S-j"       , addName "Swap focused to the next window"      $ windows W.swapDown)
  , ("M-S-k"       , addName "Swap focused to the previous window"  $ windows W.swapUp)
  , ("M-t"         , addName "Push window back into tiling"         $ withFocused $ windows . W.sink)
  , ("M-,"         , addName "Increase windows in master area"      $ sendMessage (IncMasterN 1))
  , ("M-."         , addName "Decrease windows in master area"      $ sendMessage (IncMasterN (-1)))
  , ("M-c"         , addName "Close focused window"                 $ kill)]

  ^++^ subKeys "Scratchpads"
  [ ("M-s t"  , addName "Toggle scratchpad terminal"  $ namedScratchpadAction myScratchPads "terminal")
  , ("M-s h"  , addName "Toggle scratchpad htop"      $ namedScratchpadAction myScratchPads "htop")]

  ^++^ subKeys "Sublayouts"
  [ ("M-C-h",  addName "pullGroup Left"        $ sendMessage $ pullGroup L)
  , ("M-C-l",  addName "pullGroup Right"       $ sendMessage $ pullGroup R)
  , ("M-C-k",  addName "pullGroup Up"          $ sendMessage $ pullGroup U)
  , ("M-C-j",  addName "pullGroup Down"        $ sendMessage $ pullGroup D)
  , ("M-C-m",  addName "MergeAll"              $ withFocused (sendMessage . MergeAll))
  , ("M-C-u",  addName "UnMerge"               $ withFocused (sendMessage . UnMerge))
  , ("M-C-/", addName "UnMergeAll"             $  withFocused (sendMessage . UnMergeAll))
  , ("M-C-.", addName "Switch focus next tab"  $  onGroup W.focusUp')
  , ("M-C-,", addName "Switch focus prev tab"  $  onGroup W.focusDown')]

  ^++^ subKeys "Window resizing"
  [ ("M-h"  , addName "Shrink the master area"  $ sendMessage Shrink)
  , ("M-l"  , addName "Expand the master area"  $ sendMessage Expand)]

  ^++^ subKeys "Window spacing"
  [ ("C-M1-j",  addName "Decrease window spacing"  $ decWindowSpacing 5)
  , ("C-M1-k",  addName "Increase window spacing"  $ incWindowSpacing 5)]

-----Workspaces

-----------------------------------------------------------------------------------
myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $

    [ ((modm, button1), (\w -> focus w >> mouseMoveWindow w
                                       >> windows W.shiftMaster))

    , ((modm, button2), (\w -> focus w >> windows W.shiftMaster))

    , ((modm, button3), (\w -> focus w >> mouseResizeWindow w
                                       >> windows W.shiftMaster)) ]

-----------------------------------------------------------------------------------
myTabConfig = def { fontName            = myFont
                  , activeColor         = "#46d9ff"
                  , inactiveColor       = "#202328"
                  , activeBorderColor   = "#46d9ff"
                  , inactiveBorderColor = "#282c34"
                  , activeTextColor     = "#282c34"
                  , inactiveTextColor   = "#dfdfdf" }

tall         = renamed [Replace "tall"]
             $ windowNavigation
             $ addTabs shrinkText myTabConfig
             $ subLayout [] Simplest
             $ smartSpacing 5
             $ ResizableTall 1 (3/100) (1/2) []

binary       = renamed [Replace "binary"]
             $ reflectHoriz
             $ reflectVert
             $ smartSpacing 5
             $ emptyBSP

spirals      = renamed [Replace "spirals"]
             $ smartSpacing 5
             $ spiral (6/7)

myLayoutHook = avoidStruts
             $ smartBorders
             $ toggleLayouts Full
             $ myLayouts
  where
   myLayouts = tall
           ||| binary
           ||| spirals

-----------------------------------------------------------------------------------
myManageHook = composeAll
    [ className =? "MPlayer"        --> doFloat
    , className =? "Gimp"           --> doFloat
    , className =? "confirm"        --> doFloat
    , className =? "file_progress"  --> doFloat
    , className =? "dialog"         --> doFloat
    , className =? "download"       --> doFloat
    , className =? "error"          --> doFloat
    , className =? "notification"   --> doFloat
    , className =? "Yad"            --> doCenterFloat
    , resource  =? "desktop_window" --> doIgnore
    , resource  =? "kdesktop"       --> doIgnore
    , isFullscreen --> doFullFloat
    ] <+> namedScratchpadManageHook myScratchPads

-----------------------------------------------------------------------------------
myEventHook = mempty

-----------------------------------------------------------------------------------
myLogHook = return ()


-----------------------------------------------------------------------------------
myStartupHook :: X ()
myStartupHook = do
    spawnOnce "xsetroot -cursor_name left_ptr"
    spawnOnce "nitrogen --restore &"
    spawnOnce "picom -f"

-----------------------------------------------------------------------------------
main :: IO ()
main = do
    xmproc <- spawnPipe myStatusBar
    xmonad 
        $ addDescrKeys' ((mod4Mask, xK_F1), showKeybindings) myKeys 
        $ docks defaults

defaults = def 
     {
        terminal           = myTerminal,
        focusFollowsMouse  = myFocusFollowsMouse,
        clickJustFocuses   = myClickJustFocuses,
        borderWidth        = myBorderWidth,
        modMask            = myModMask,
        workspaces         = myWorkspaces,
        normalBorderColor  = myNormalColor,
        focusedBorderColor = myFocusColor,
        mouseBindings      = myMouseBindings,
        layoutHook         = myLayoutHook,
        manageHook         = myManageHook,
        handleEventHook    = myEventHook,
        logHook            = myLogHook,
        startupHook        = myStartupHook
    }
linux window-manager
  • 1 个回答
  • 37 Views
Martin Hope
Viaceslavus
Asked: 2022-07-10 05:43:55 +0800 CST

在 Linux 中运行没有 D-Bus 会话的独立窗口管理器

  • 5

这是我的问题的史前史,如果需要更多细节,实际问题在第二段。

所以几个月来我一直在不同的 Linux 发行版上使用独立的窗口管理器,为了启动我刚刚放入exec awesome.xinitrc 的 WM,所以我没有启动 dbus 守护进程。在像 Debian 这样的 systemd 系统上,我注意到 D-Bus 用户会话在我运行 AwesomeWM 时会自动启动。当我使用带有 runit init 系统的 Void Linux 时也发生了同样的情况。现在我在 Artix Linux 上将 Emacs 作为窗口管理器运行,它也不使用 systemd,在我的 .xinitrc 中有这一行exec emacs,它运行得非常好。但是没有为 Emacs 启动 dbus 守护进程,因此在其中运行的所有应用程序都不使用 DBus。我怀疑这不正常。

当使用没有 D-Bus 会话守护程序的独立窗口管理器时,这是否意味着我的应用程序的某些功能可能不可用?或者如果我的 WM 在没有 D-Bus 守护程序的情况下工作正常,这是否意味着我正在使用的应用程序不使用 D-Bus?那么如果某些应用程序需要 D-Bus 会话会发生什么?或者,如果会话本地 D-Bus 守护程序不可用,我的应用程序可能正在连接到系统范围的 D-Bus 守护程序?这怎么可能?

linux window-manager
  • 1 个回答
  • 110 Views
Martin Hope
user1661668
Asked: 2022-01-24 04:55:35 +0800 CST

StackWM Windows 平铺管理器 - 如何将窗口固定到屏幕的特定区域

  • 3

UPD1:我的问题的第一个版本不是英文的。很抱歉,Stack WM 的开发者在他们的应用程序中放置了一个指向该站点的链接,显然是作为从社区获得帮助的地方,所以我首先认为它是该程序的本地帮助站点。我的错 %(

goggle trans
如何将窗口固定到屏幕的特定区域。我在商店购买了该应用程序,感谢您的工作,除了 FancyWM,我还没有在 Windows 上看到过类似的东西。请告诉我如何制作,以便在使用 4Part 方案时,TotalCommander 始终出现在右下部分,例如浏览器占据整个左侧部分。提前感谢您的回复!:)

window-manager stack
  • 1 个回答
  • 57 Views
Martin Hope
Joce NoToPutinsWarInUkraine
Asked: 2021-10-29 01:17:19 +0800 CST

按下 Ctrl-Z 后,窗口管理器因特定鼠标指针形状而停止

  • 5

我已经完全停止了 X 窗口管理器,这发生在我试图通过击键停止进程时。我想知道是否可以确定失速的原因,或者我是否可以以比我所做的不那么苛刻的方式恢复功能。

什么导致了停顿:在终端中,在与远程计算机的 ssh 会话中,我启动了一个进程,我立即意识到这不是我缩进的并且可能有害。具体来说,我跑bash script.py而不是python script.py. 我按ctrl- C,这显示为^C但没有给我返回 bash 提示,所以我也按 ctrl-Z可能还有其他几个ctrl- whatever。

症状:就在那之后,我意识到我无法将焦点转移到任何其他终端或窗口。鼠标指针没有它通常的箭头或 I 光束形状,而是像这样:

在此处输入图像描述

alt像- tab, alt- C-这样的击键arrow来改变工作空间,那些打开的菜单不起作用。alt我可以使用- ctrl-切换到 tty/1 F1,在那里运行top并没有透露太多(顶级进程是ssh,sshfs并且cp因为我在后台运行备份)。我杀firefox了就像一个疯狂的尝试。回到我的 X 窗口会话中,我尝试了更多交互,直到按下crlalt-backspace这结束了图形会话。重新登录,一切正常。

我的问题:如果下次发生这种情况,我能做些什么更好?

一些细节:debian 靶心,xfwm 4.16.1-1,xfce 4.14,xorg 1:7.7+22

xorg window-manager
  • 1 个回答
  • 15 Views
Martin Hope
PatS
Asked: 2021-03-05 10:15:07 +0800 CST

在 Linux Mate-window manager 中,最大化窗口长度(保持宽度相同)

  • 6

在windows中,我双击窗口的标题栏来最大化窗口的长度并保持相同的宽度,我在Linux中如何做到这一点?我在 AWS Linux2 桌面上运行 MATE。

我进行了搜索并发现:

  • 你能让在 Ubuntu 上调整窗口大小变得更容易吗?没有
  • 在Linux中双击标题会使窗口全屏(不是我想要的)
  • Alt+F10 将最大化窗口(不是我想要的)。
  • Alt+右键单击并拖动并调整屏幕大小(不)。有时它是超级(或 Windows 键)+右键单击并拖动。
  • Alt+F8 - 不用鼠标调整大小。(不)

提前致谢。

linux window-manager
  • 1 个回答
  • 540 Views
Martin Hope
geonaut
Asked: 2020-04-02 23:15:04 +0800 CST

安装在 Chromebook/ChromeOS 上时 VSCode UI 上的不可点击区域

  • 5

我在 Lenovo Yoga Chromebook 上安装了 VSCode,但无法使用 UI 右下角的鼠标。通过重新启动、切换终端窗口、切换到 2 列布局和 VSCode 升级,问题仍然存在。澄清:

  • 我可以用箭头键在问题区域内移动光标,然后正常选择文本。
  • 问题跨越不同的 VSCode UI 元素 - 文本编辑器、终端和通知(即我无法关闭插件通知,或通过 UI 的那部分进入终端)
  • 问题区域与 ChromeOS 控制面板不一致。
  • Chrome 或 Chromebook 上的其他程序不会出现此问题。

我通过Linux 终端中的.deb安装了VSCode 。版本信息如下:

  • 版本:1.43.2
  • 提交:0ba0ca52957102ca3527cf479571617f0de6ed50
  • 日期:2020-03-24T07:52:11.516Z
  • 电子:7.1.11
  • 铬:78.0.3904.130
  • Node.js:12.8.1
  • V8:7.8.279.23-electron.0
  • 操作系统:Linux x64 4.19.87-07826-g55ab70aff690

我附上了一个屏幕截图,显示了当我从字符文件的右下角沿对角线向上拖动时会发生什么.,以进行说明。

截屏

有谁知道我可以如何解决或调试这个?我们为我们的开发人员提供了一些这样的 Yoga chromebook,没有其他人报告过这个问题。

visual-studio-code window-manager
  • 1 个回答
  • 233 Views
Martin Hope
Adam Barnes
Asked: 2019-04-12 12:01:38 +0800 CST

Cinnamon 是桌面环境还是窗口管理器?(或两者?)

  • 21

据我了解:

  • X11 是您绘制原始事物的方式;
  • (合成)窗口管理器是使用 X11 提供工具来绘制更复杂的东西,并将它们分层放置在屏幕上的东西;
  • 桌面环境是使用窗口管理器来提供基于 GUI 的操作系统的基本要素,如控制面板、计算器和纸牌应用程序、任务栏等。

如果我的理解是正确的——肉桂是什么?它的 wiki 文章(以及 SU 上的标签)将其描述为“桌面环境”,但我在其 wiki 文章中找不到 Linux Mint 默认使用的窗口管理器,Tara 发行说明提到改进“窗口管理器” “在 Cinnamon 3.8 部分。

linux xorg window-manager
  • 2 个回答
  • 7394 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何减少“vmmem”进程的消耗?

    • 11 个回答
  • Marko Smith

    从 Microsoft Stream 下载视频

    • 4 个回答
  • Marko Smith

    Google Chrome DevTools 无法解析 SourceMap:chrome-extension

    • 6 个回答
  • Marko Smith

    Windows 照片查看器因为内存不足而无法运行?

    • 5 个回答
  • Marko Smith

    支持结束后如何激活 WindowsXP?

    • 6 个回答
  • Marko Smith

    远程桌面间歇性冻结

    • 7 个回答
  • Marko Smith

    子网掩码 /32 是什么意思?

    • 6 个回答
  • Marko Smith

    鼠标指针在 Windows 中按下的箭头键上移动?

    • 1 个回答
  • Marko Smith

    VirtualBox 无法以 VERR_NEM_VM_CREATE_FAILED 启动

    • 8 个回答
  • Marko Smith

    应用程序不会出现在 MacBook 的摄像头和麦克风隐私设置中

    • 5 个回答
  • Martin Hope
    Vickel Firefox 不再允许粘贴到 WhatsApp 网页中? 2023-08-18 05:04:35 +0800 CST
  • Martin Hope
    Saaru Lindestøkke 为什么使用 Python 的 tar 库时 tar.xz 文件比 macOS tar 小 15 倍? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh 如何减少“vmmem”进程的消耗? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Windows 10 搜索未加载,显示空白窗口 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    andre_ss6 远程桌面间歇性冻结 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney 为什么在 URL 后面加一个点会删除登录信息? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension 鼠标指针在 Windows 中按下的箭头键上移动? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca 我所有的 Firefox 附加组件突然被禁用了,我该如何重新启用它们? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK 是否可以使用文本创建二维码? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 更改 git init 默认分支名称 2019-04-01 06:16:56 +0800 CST

热门标签

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve