2015-01-02 26 views
7

posso cambiare i nomi di aree di lavoro, e, presumibilmente, è sufficiente aggiungere più modificando questo conststant:Come posso avere più di 9 spazi di lavoro in xmonad?

myWorkspaces = ["1","2","3⌂","4","5","6","7✉","8☺","9♫"] 

Se posso aggiungere qualcosa alla matrice, ci saranno più spazi di lavoro, ma come faccio keybind? Da Mod-1 a Mod-9 sono i valori predefiniti ma non riesco a trovare la documentazione su come modificare quell'impostazione predefinita.

+0

@AndrewC: No, non è generato dalle corde. Posso dire "pippo" invece di "1" e questo influenzerà solo ciò che viene visualizzato come nome dell'area di lavoro. Si noti che utilizzo i caratteri Unicode per descrivere a cosa sono dedicati alcuni spazi di lavoro. – bitmask

risposta

9

ho trovato la risposta sepolto in this example configuration e insieme con il key names list, sembra il seguente:

Definizione di un decimo di lavoro:

myExtraWorkspaces = [(xK_0, "0"),(xK_minus, "tmp"),(xK_equal, "swap")] 

myWorkspaces = ["1","2","3⌂","4","5","6","7✉","8☺","9♫"] ++ (map snd myExtraWorkspaces) 

quindi il tasto sguardi vincolanti come questo:

myKeys = 
     [ -- ... some more keys ... 
     ] ++ [ 
     ((myModMask, key), (windows $ W.greedyView ws)) 
     | (key,ws) <- myExtraWorkspaces 
     ] ++ [ 
     ((myModMask .|. shiftMask, key), (windows $ W.shift ws)) 
     | (key,ws) <- myExtraWorkspaces 
     ] 

In questo esempio il tasto barra viene utilizzato, ma qualsiasi altro tasto dalla lista di cui sopra può essere utilizzato invece.

E infine:

main = do 
xmonad $ config { 
      workspaces = myWorkspaces 
     } `additionalKeys` (myKeys) 
+1

Grazie! Per far funzionare i tuoi esempi, ho anche bisogno di importare XMonad.StackSet qualificato come W e ho dovuto sostituire entrambe le occorrenze di 'myModMask' in' modm'. Non sono sicuro di dove 'modm' sia definito, ma corrisponde al pattern usato in altri binding di tasti. –

0
-- | The default number of workspaces (virtual screens) and their names. 
-- By default we use numeric strings, but any string may be used as a 
-- workspace name. The number of workspaces is determined by the length 
-- of this list. 
-- 
-- A tagging example: 
-- 
-- > workspaces = ["web", "irc", "code" ] ++ map show [4..9] 
-- 
workspaces :: [WorkspaceId] 
workspaces = map show [1 .. 9 :: Int] 

Modificare la lunghezza della lista in Config.hs