#
# WMFS2 configuration file
#

# Possible file inclusion:
# @include "file"

# Multi theme section
[themes]

  [theme]
     # No name mean default
     # name = "default"

     font = "fixed"

     # Bars
     bars_width = 14
     bars_fg = "#AABBAA"
     bars_bg = "#223322"

     # Element tags
     tags_normal_fg = "#AABBAA"
     tags_normal_bg = "#223322"
     # tags_normal_statusline = ""

     tags_sel_fg    = "#223322"
     tags_sel_bg    = "#AABBAA"
     # tags_sel_statusline = ""

     tags_occupied_fg = "#AABBAA"
     tags_occupied_bg = "#445544"
     tags_occupied_statusline = "\R[0;0;100;1;#AABBAA]"

     tags_urgent_fg    = "#223322"
     tags_urgent_bg    = "#CC5544"
     # tags_urgent_statusline = ""

     tags_border_color = "#112211"
     tags_border_width = 1

     # Frame / Client
     client_normal_fg = "#AABBAA"
     client_normal_bg = "#223322"
     client_normal_statusline = "\s[3;9;#121212;x] \s[2;8;#ff0000;x](1;client_close)"

     client_sel_fg = "#223322"
     client_sel_bg = "#AABBAA"
     client_sel_statusline = "\s[3;9;#121212;x] \s[2;8;#ff0000;x](1;client_close)"

     # client_free_statusline = ""

     frame_bg = "#555555"
     client_titlebar_width = 12
     client_border_width = 1

   [/theme]

[/themes]

[bars]

  # Position:
  #
  # 0  Top
  # 1  Bottom
  # 2  Hide

  # Element type:
  #
  # t  Tags
  # s  Statustext (will take available space)
  # y  Systray (can be set only ONE time among all element)
  # l  Launcher (will be expended at launcher use)

  [bar]
     position = 0
     screen = 0
     elements = "tlsy"   # element order in bar
     theme = "default"
  [/bar]

# [bar]
#    position = 0
#    screen = 1
#    elements = "ts"
#    theme = "default"
# [/bar]

[/bars]

[tags]

  # Tag wrapping navigation
  circular = false

  # Use no screen option or screen = -1 to set tag on each screen
  [tag]
      screen = -1
      name = "Firefox"
      # statusline=""
  [/tag]

  [tag] name = "Telegram" [/tag]
  [tag] name = "Email" [/tag]
  [tag] name = "Terminal" [/tag]
  [tag] name = "Remote" [/tag]
  [tag] name = "E-Farm" [/tag]
  [tag] name = "Sublime" [/tag]
  [tag] name = "mama" [/tag]
  [tag] name = "ama" [/tag]
  [tag] name = "hacker" [/tag]
  [tag] name = "man" [/tag]
  [tag] name = "-.-" [/tag]
  [tag] name = "wow" [/tag]
  [tag] name = "such" [/tag]
  [tag] name = "terminal" [/tag]
  [tag] name = "many" [/tag]
  [tag] name = "tags" [/tag]
  [tag] name = "very" [/tag]
  [tag] name = "hacker" [/tag]
  [tag] name = ":O" [/tag]
  [tag] name = "Spotify" [/tag]


  # Mousebinds associated to Tags element button
  [mouse] button = "1" func = "tag_click" [/mouse]
  [mouse] button = "4" func = "tag_next"  [/mouse]
  [mouse] button = "5" func = "tag_prev"  [/mouse]


[/tags]

[client]

  # Padding between clients (default: 0) :
  #padding = 75

  # Give focus to new created client (default = false)
  autofocus = false

  theme = "default"
  key_modifier = "Super"

  # Focus type:
  #  enter : focus follow mouse (default)
  #  click : click to focus
  #  everything-else : disable mouse focus support
  focus = enter

  [mouse] button = "1" func = "client_focus_click"    [/mouse]
  [mouse] button = "1" func = "mouse_swap"            [/mouse]
  [mouse] button = "2" func = "mouse_tab"             [/mouse]
  [mouse] button = "3" func = "mouse_resize"          [/mouse]
  [mouse] button = "4" func = "client_focus_next_tab" [/mouse]
  [mouse] button = "5" func = "client_focus_prev_tab" [/mouse]

[/client]

[rules]

  [rule]
      # use instance = "*" for a all-clients rule
      instance = "firefox"

      # role   = ""
      # name   = ""
      # theme  = "default"

      tag    = 0  # 2nd tag
      screen = 0

      free       = false
      tab        = false
      ignore_tag = false
  [/rule]

[/rules]

[launchers]

  # command can be an uicb function or an uicb function + extension (see example)
  [launcher]
     name = "exec"
     prompt = "Run:"

     # Example of uicb + ext:
     #   command = "spawn xterm -e"
     command = "spawn"

     width = 150
  [/launcher]

[/launchers]

[keys]

  [key] mod = {"Super"} key = "Return" func = "spawn" cmd = "terminator || xterm" [/key]

  [key] mod = {"Control", "Alt"} key = "q" func = "quit" [/key]
  [key] mod = {"Control", "Alt"} key = "r" func = "reload" [/key]

  # Tag manipulation
  [key] mod = {"Super"} key = "1" func = "tag_set" cmd = "0" [/key]
  [key] mod = {"Super"} key = "2" func = "tag_set" cmd = "1" [/key]
  [key] mod = {"Super"} key = "3" func = "tag_set" cmd = "2" [/key]
  [key] mod = {"Super"} key = "4" func = "tag_set" cmd = "3" [/key]
  [key] mod = {"Super"} key = "6" func = "tag_set" cmd = "55" [/key]
  [key] mod = {"Super"} key = "e" func = "tag_set" cmd = "15" [/key]
  [key] mod = {"Super"} key = "s" func = "tag_set" cmd = "6" [/key]
  [key] mod = {"Super"} key = "7" func = "tag_set" cmd = "7" [/key]
  [key] mod = {"Super"} key = "m" func = "tag_set" cmd = "20" [/key]

  [key] mod = {"Super", "Shift"} key = "F1" func = "tag_client" cmd = "0" [/key]
  [key] mod = {"Super", "Shift"} key = "F2" func = "tag_client" cmd = "1" [/key]
  [key] mod = {"Super", "Shift"} key = "F3" func = "tag_client" cmd = "2" [/key]
  [key] mod = {"Super", "Shift"} key = "F4" func = "tag_client" cmd = "3" [/key]
  [key] mod = {"Super", "Shift"} key = "F5" func = "tag_client" cmd = "4" [/key]
  [key] mod = {"Super", "Shift"} key = "F6" func = "tag_client" cmd = "5" [/key]
  [key] mod = {"Super", "Shift"} key = "F7" func = "tag_client" cmd = "6" [/key]
  [key] mod = {"Super", "Shift"} key = "F8" func = "tag_client" cmd = "7" [/key]

  [key] mod = {"Super"} key = "minus" func = "tag_del" [/key]
  [key] mod = {"Super", "Shift"} key = "minus" func = "tag_new" [/key]

  # tag function: cmd = nameofthetag
  #[key] mod = {"Super"} key = "z" func = "tag" cmd = "2" [/key]

  [key] mod = {"Control"} key = "Right" func = "tag_next" [/key]
  [key] mod = {"Control"} key = "Left"  func = "tag_prev" [/key]

  [key] mod = {"Control"} key = "Up"  func = "screen_next" [/key]
  [key] mod = {"Control"} key = "Down" func = "screen_prev" [/key]

  [key] mod = {"Super"} key = "q" func = "client_close" [/key]

  # Focus next / prev client and next / prev tabbed client
  [key] mod = { "Alt" }            key = "Tab" func = "client_focus_next" [/key]
  [key] mod = { "Alt", "Shift" }   key = "Tab" func = "client_focus_prev" [/key]
  [key] mod = { "Super" }          key = "Tab" func = "client_focus_next_tab" [/key]
  [key] mod = { "Super", "Shift" } key = "Tab" func = "client_focus_prev_tab" [/key]

  # Focus next client with direction
  [key] mod = {"Alt"} key = "h" func = "client_focus_left"   [/key]
  [key] mod = {"Alt"} key = "l" func = "client_focus_right"  [/key]
  [key] mod = {"Alt"} key = "k" func = "client_focus_top"    [/key]
  [key] mod = {"Alt"} key = "j" func = "client_focus_bottom" [/key]

  # swap next client with direction:
  [key] mod = {"Control", "Shift"} key = "h" func = "client_swap_left"   [/key]
  [key] mod = {"Control", "Shift"} key = "l" func = "client_swap_right"  [/key]
  [key] mod = {"Control", "Shift"} key = "k" func = "client_swap_top"    [/key]
  [key] mod = {"Control", "Shift"} key = "j" func = "client_swap_bottom" [/key]

  # Resize selected tiled client with direction
  [key] mod = {"Super"} key = "h" func = "client_resize_left"   cmd = "20" [/key]
  [key] mod = {"Super"} key = "l" func = "client_resize_left"   cmd = "-20" [/key]
  [key] mod = {"Super"} key = "k" func = "client_resize_top"    cmd = "20" [/key]
  [key] mod = {"Super"} key = "j" func = "client_resize_top"    cmd = "-20" [/key]
  [key] mod = {"Super", "Control"} key = "h" func = "client_resize_right"  cmd = "-20" [/key]
  [key] mod = {"Super", "Control"} key = "l" func = "client_resize_right"  cmd = "20" [/key]
  [key] mod = {"Super", "Control"} key = "k" func = "client_resize_bottom" cmd = "-20" [/key]
  [key] mod = {"Super", "Control"} key = "j" func = "client_resize_bottom" cmd = "20" [/key]

  # Tabbing command
  [key] mod = {"Alt", "Shift"} key = "h" func = "client_tab_left"   [/key]
  [key] mod = {"Alt", "Shift"} key = "l" func = "client_tab_right"  [/key]
  [key] mod = {"Alt", "Shift"} key = "k" func = "client_tab_top"    [/key]
  [key] mod = {"Alt", "Shift"} key = "j" func = "client_tab_bottom" [/key]
  [key] mod = {"Alt", "Shift"} key = "u" func = "client_untab" [/key]
  [key] mod = {"Super"}        key = "t" func = "client_tab_next_opened" [/key]

  # Layout manipulation
  [key] mod = {"Super"}          key = "m" func = "layout_vmirror" [/key]
  [key] mod = {"Super", "Shift"} key = "m" func = "layout_hmirror" [/key]
  [key] mod = {"Super"}          key = "r" func = "layout_rotate_right" [/key]
  [key] mod = {"Super", "Shift"} key = "r" func = "layout_rotate_left" [/key]

  [key] mod = {"Control", "Super", "Alt"} key = "h" func = "layout_integrate_left" [/key]
  [key] mod = {"Control", "Super", "Alt"} key = "j" func = "layout_integrate_bottom" [/key]
  [key] mod = {"Control", "Super", "Alt"} key = "k" func = "layout_integrate_top" [/key]
  [key] mod = {"Control", "Super", "Alt"} key = "l" func = "layout_integrate_right" [/key]

  # Layout set historic travelling function (TESTING)
  [key] mod = {"Super"} key = "o" func = "layout_prev_set" [/key]
  [key] mod = {"Super", "Shift"} key = "o" func = "layout_next_set" [/key]

  # Toggle client free/tile
  [key] mod = {"Super"} key = "f" func = "client_toggle_free" [/key]

  # Toggle client ignore_tag
  [key] mod = {"Super", "Shift"} key = "f" func = "client_toggle_ignore_tag" [/key]

  # Toggle infobar visibility
  [key] mod = {"Super", "Shift"} key = "h" func = "infobar_toggle_hide" cmd = "default" [/key]

  # Launcher
  [key] mod = {"Super"} key = "p" func = "launcher" cmd = "exec" [/key]

[/keys]
