2015-01-02 26 views
7

mogę zmienić nazwy obszarów roboczych i przypuszczalnie po prostu dodać więcej zmieniając tę ​​conststant:Jak mogę mieć więcej niż 9 obszarów roboczych w Xmonad?

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

Jeśli mogę dodać coś do tablicy, nie będzie więcej przestrzeni roboczej, ale jak mam keybind je? Mod-1 do Mod-9 są domyślne, ale nie mogę znaleźć dokumentacji, jak zmienić tę domyślną.

+0

@AndrewC: Nie, to nie jest generowany ze strun. Mogę powiedzieć "foo" zamiast "1" i to tylko wpłynie na to, co jest wyświetlane jako nazwa obszaru roboczego. Zwróć uwagę, że używam znaków Unicode, aby pokazać, za co przeznaczone są niektóre obszary robocze. – bitmask

Odpowiedz

9

Znalazłem odpowiedź zakopane w this example configuration i wraz z key names list, to wygląda następująco:

Definiowanie dziesiąte miejsce pracy:

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

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

następnie klawisz wiążące wygląda następująco:

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

W tym przykładzie użyto ukośnika, ale można użyć dowolnego innego klawisza z powyższej listy.

I wreszcie:

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

Dzięki! Aby sprawić, aby twoje przykłady działały, potrzebowałem również "importować kwalifikowany XMonad.StackSet jako W" i musiałem zastąpić oba wystąpienia 'myModMask' na' modm'. Nie jestem pewien, gdzie zdefiniowano 'modm', ale pasuje do wzorca używanego w innych powiązaniach klawiszy. –

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] 

zmienić długość listy w Config.hs