Как отправить текущее рабочее пространство вместо текущего окна на другой экран? - PullRequest
0 голосов
/ 07 февраля 2019

Иногда я хочу отправить все текущее рабочее пространство на другой экран вместо просто текущего окна.

Я знаю, что greedyView выведет назначенное рабочее пространство на текущий экран.

Однако, что если я

  1. Не хочу сначала перейти к целевому экрану, чтобы запустить greedyView, но вместо этого хочу напрямую отправить текущее фокусированное рабочее пространство на другой экран.

  2. Не нужно менять исходное рабочее пространство на целевом экране на исходный экран (т. Е. Исходное рабочее пространство теперь не должно проецироваться на любой экран)

greedyView не в состоянии удовлетворить эти две потребности выше.Кроме того, я бы предпочел использовать view вместо greedyView с моими назначениями клавиш по умолчанию.

Есть ли альтернатива?Похоже, что поиск в Google не принес полезного результата.

1 Ответ

0 голосов
/ 08 февраля 2019

Вам, вероятно, придется сделать свою собственную функцию.Если вы посмотрите, как реализован greedyView:

greedyView :: (Eq s, Eq i) => i -> StackSet i l a s sd -> StackSet i l a s sd
greedyView w ws
     | any wTag (hidden ws) = view w ws
     | (Just s) <- L.find (wTag . workspace) (visible ws)
                            = ws { current = (current ws) { workspace = workspace s }
                                 , visible = s { workspace = workspace (current ws) }
                                           : L.filter (not . wTag . workspace) (visible ws) }
     | otherwise = ws
   where wTag = (w == ) . tag

Итак, соответствующие строки:

ws {
    current = (current ws) { workspace = workspace s }
  , visible = s { workspace = workspace (current ws) } : L.filter (not . wTag . workspace) (visible ws)
  }
...