Xmonad: привязка ключа для переноса окна из другого рабочего пространства в текущее рабочее пространство - PullRequest
0 голосов
/ 13 сентября 2018

Я надеюсь, что вы, ребята, сможете мне помочь, поскольку я новичок в Haskell, а Haskell-fu довольно слаб.

Я пытаюсь создать терминал, похожий на землетрясение, который падает при вызове. По большей части я полагал, что сохранение именованного терминала urxvt в макете, управляемом simpleDrawer (XMonad.Layout.Drawer), хорошо работает для этого. У меня проблема с привязкой ключа к нему, чтобы он появлялся в любом рабочем пространстве, в котором я оказался.

Опция bringSelected не работает для меня, так как я не хочу иметь дело с меню сетки. То, что я попробовал, дало мне самое близкое:

raiseMaybe (spawnHere "urxvt -name drawer") (resource =? "drawer")

И

ifWindows (resource =? "drawer") (mapM_ focus) (spawn "urxvt -name drawer")

Проблема заключается в том, что оба по сути делают одно и то же в том, что вместо переноса указанного окна (с resource =? "drawer") в мое текущее рабочее пространство, оно сдвигает меня из моего текущего рабочего пространства туда, где оно было вызвано в последний раз.

В идеале я ищу что-то вроде:

ifWindows (resource =? "drawer") ({- bring window to current workspace -})  
    (spawnHere "urxvt -name drawer")

1 Ответ

0 голосов
/ 13 сентября 2018

Переходя к документам Contribute, кажется, что я пытаюсь заново изобрести колесо, поскольку я могу легко использовать блокнот. Это должно делать свое дело.

Но ... если у кого-то есть какие-либо идеи по поводу вышеуказанного вопроса, т. Е. С помощью ifWindows для перетаскивания другого окна из одного рабочего пространства в другое, я бы хотел узнать, как вы справились с этим.

Добавлены следующие myKeys:

, ("M-`", scratchpadSpawnActionTerminal myScratchTerm)

Определил ManageHook:

myScratchPadHook :: ManageHook
myScratchPadHook =
scratchpadManageHook (W.RationalRect fLeft fTop tRight fBottom)   
 where
  fLeft = 0.0
  fTop = 0.75
  tRight = 1.0
  fBottom = 0.25

и добавлено

<+> myScratchPadHook
...