From 3acf3e5689cc734620a9e34ef78cd290a63700c3 Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Sat, 23 Nov 2013 11:19:47 -0500 Subject: [PATCH 1/8] Added config file with all of i3 wm commands based on i3's manual. --- config | 649 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 649 insertions(+) create mode 100644 config diff --git a/config b/config new file mode 100644 index 0000000..9c103d9 --- /dev/null +++ b/config @@ -0,0 +1,649 @@ +# Chapter 4 + +# Section 4.1, Comments +# Examples: +# This is a comment + +# Section 4.2, Fonts +# Syntax +# font +# font pango:[family list] [style options] [size] +# Examples +font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 +font pango:DejaVu Sans Mono 10 +font pango:DejaVu Sans Mono, Terminus Bold Semi-Condensed 11 +font pango:Terminus 11px + +# Section 4.3, Keyboard Bindings +# Syntax +# bindsym [--release] [Modifiers+]keysym command +# bindcode [--release] [Modifiers+]keycode command + +# Fullscreen +bindsym $mod+f fullscreen + +# Restart +bindsym $mod+Shift+r restart + +# Notebook-specific hotkeys +bindcode 214 exec --no-startup-id /home/michael/toggle_beamer.sh + +# Simulate ctrl+v upon pressing $mod+x +bindsym --release $mod+x exec --no-startup-id xdotool key --clearmodifiers ctrl+v + +# Take a screenshot upon pressing $mod+x (select an area) +bindsym --release $mod+x exec --no-startup-id import /tmp/latest-screenshot.png + +# 4.4, Floating modifier +# Syntax: +# floating_modifier +# Example: +floating_modifier Mod1 + +# 4.5. Constraining floating window size +# Syntax: +# floating_minimum_size x +# floating_maximum_size x +# Example: +floating_minimum_size 75 x 50 +floating_maximum_size -1 x -1 + +# 4.6. Orientation for new workspaces +Syntax: +default_orientation +Example: +default_orientation vertical + +4.7. Layout mode for new containers +Syntax: +workspace_layout +Example: +workspace_layout tabbed + +4.8. Border style for new windows +Syntax: +new_window +new_float +Example: +new_window 1pixel + +# The "normal" and "pixel" border styles support an optional border width in pixels: +Example: +# The same as new_window none +new_window pixel 0 + +# A 3 px border +new_window pixel 3 + +4.9. Hiding vertical borders +Syntax: +hide_edge_borders +Example: +hide_edge_borders vertical + +4.10. Arbitrary commands for specific windows (for_window) +Syntax: +for_window command +Examples: +# enable floating mode for all XTerm windows +for_window [class="XTerm"] floating enable + +# Make all urxvts use a 1-pixel border: +for_window [class="urxvt"] border 1pixel + +# A less useful, but rather funny example: +# makes the window floating as soon as I change +# directory to ~/work +for_window [title="x200: ~/work"] floating enable + +4.11. Variables +Syntax: +set $name value +Example: +set $m Mod1 +bindsym $m+Shift+r restart + +4.12. Automatically putting clients on specific workspaces +Syntax: +assign [→] workspace +Examples: +# Assign URxvt terminals to workspace 2 +assign [class="URxvt"] 2 + +# Same thing, but more precise (exact match instead of substring) +assign [class="^URxvt$"] 2 + +# Same thing, but with a beautiful arrow :) +assign [class="^URxvt$"] → 2 + +# Assignment to a named workspace +assign [class="^URxvt$"] → work + +# Start urxvt -name irssi +assign [class="^URxvt$" instance="^irssi$"] → 3 + +4.13. Automatically starting applications on i3 startup + + +Syntax: +exec [--no-startup-id] command +exec_always [--no-startup-id] command +Examples: +exec chromium +exec_always ~/my_script.sh + +# Execute the terminal emulator urxvt, which is not yet startup-notification aware. +exec --no-startup-id urxvt + +4.14. Automatically putting workspaces on specific screens + +Syntax: +workspace output +The output is the name of the RandR output you attach your screen to. On a laptop, you might have VGA1 and LVDS1 as output names. You can see the available outputs by running xrandr --current. +If you use named workspaces, they must be quoted: +Examples: +workspace 1 output LVDS1 +workspace 5 output VGA1 +workspace "2: vim" output VGA1 + +4.15. Changing colors + +Syntax: +colorclass border background text indicator +Where colorclass can be one of: +client.focused +client.focused_inactive +client.unfocused +client.urgent +client.background + +Examples (default colors): +# class border backgr. text indicator +client.focused #4c7899 #285577 #ffffff #2e9ef4 +client.focused_inactive #333333 #5f676a #ffffff #484e50 +client.unfocused #333333 #222222 #888888 #292d2e +client.urgent #2f343a #900000 #ffffff #900000 + +4.16. Interprocess communication +Syntax +ipc-socket path_to_socket +Examples: +ipc-socket ~/.i3/i3-ipc.sock + +4.17. Focus follows mouse +Syntax: +focus_follows_mouse +Example: +focus_follows_mouse no + +4.18. Popups during fullscreen mode +Syntax: +popup_during_fullscreen +Example: +popup_during_fullscreen smart + +4.19. Focus wrapping +Syntax: +force_focus_wrapping +Example: +force_focus_wrapping yes + +4.20. Forcing Xinerama +Syntax: +force_xinerama +Example: +force_xinerama yes + +4.21. Automatic back-and-forth when switching to the current workspace +Syntax: +workspace_auto_back_and_forth +Example: +workspace_auto_back_and_forth yes + +4.22. Delaying urgency hint reset on workspace change +Syntax: +force_display_urgency_hint ms +Example: +force_display_urgency_hint 500 ms + +# Chapter 5, Configurring i3bar +Syntax +bar { + # i3bar commands +} +Example: +bar { + status_command i3status +} + +5.1. i3bar command +Syntax: +i3bar_command command +Example: +bar { + i3bar_command /home/user/bin/i3bar +} + +5.2. Statusline command +Syntax: +status_command command +Example: +bar { + status_command i3status --config ~/.i3status.conf +} +5.3. Display mode + +Syntax: +mode +hidden_state +modifier +Example: +bar { + mode hide + hidden_state hide + modifier Mod1 +} + +5.4. Bar ID +Syntax: +id +Example: +bar { + id bar-1 +} + +5.5. Position +Syntax: +position +Example: +bar { + position top +} + +5.6. Output(s) +Syntax: +output +Example: +# big monitor: everything +bar { + # The display is connected either via HDMI or via DisplayPort + output HDMI2 + output DP2 + status_command i3status +} + +# laptop monitor: bright colors and i3status with less modules. +bar { + output LVDS1 + status_command i3status --config ~/.i3status-small.conf + colors { + background #000000 + statusline #ffffff + } +} + + +5.7. Tray output +Syntax: +tray_output +Example: +# disable system tray +bar { + tray_output none +} + +# show tray icons on the primary monitor +tray_output primary + +# show tray icons on the big monitor +bar { + tray_output HDMI2 +} + +5.8. Font (same as 4.2) +Syntax: +font +Example: +bar { + font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 + font pango:DejaVu Sans Mono 10 +} + +5.9. Workspace buttons + +Syntax: +workspace_buttons +Example: +bar { + workspace_buttons no +} + +5.10. Colors + +color sub-commands: +background +statusline +separator +focused_workspace +active_workspace +inactive_workspace +urgent_workspace + +Syntax: +colors { + background + statusline + separator + + colorclass +} +Example (default colors): +bar { + colors { + background #000000 + statusline #ffffff + separator #666666 + + focused_workspace #4c7899 #285577 #ffffff + active_workspace #333333 #5f676a #ffffff + inactive_workspace #333333 #222222 #888888 + urgent_workspace #2f343a #900000 #ffffff + } +} + +6. List of commands +On to Chapter 6. + +# command chaining using ; +bindsym $mod+x move container to workspace 3; workspace 3 + +# scope of command changes using square brackets +Example: +bindsym $mod+x [class="Firefox"] kill + +# same thing, but case-insensitive +bindsym $mod+x [class="(?i)firefox"] kill +The criteria which are currently implemented are: +class +instance +window_role +id +title +urgent +con_mark +con_id + +criteria class, instance, role, title and mark are regular expressions (PCRE). + +6.1. Executing applications (exec) +Syntax: +exec [--no-startup-id] command +Example: +# Start the GIMP +bindsym $mod+g exec gimp + +# Start the terminal emulator urxvt which is not yet startup-notification-aware +bindsym $mod+Return exec --no-startup-id urxvt + +6.2. Splitting containers + +Syntax: +split +Example: +bindsym $mod+v split vertical +bindsym $mod+h split horizontal + +6.3. Manipulating layout + +Syntax: +layout +layout toggle [split|all] +Examples: +bindsym $mod+s layout stacking +bindsym $mod+l layout toggle split +bindsym $mod+w layout tabbed + +# Toggle between stacking/tabbed/split: +bindsym $mod+x layout toggle + +# Toggle between stacking/tabbed/splith/splitv: +bindsym $mod+x layout toggle all + +# Toggle fullscreen +bindsym $mod+f fullscreen + +# Toggle floating/tiling +bindsym $mod+t floating toggle + + +6.4. Focusing/Moving containers +Syntax: +focus +focus +focus output <|output> +move [ px] +move [absolute] position [[ px] [ px]|center] +Note that the amount of pixels you can specify for the move command is only relevant for floating containers. The default amount is 10 pixels. +Examples: +# Focus container on the left, bottom, top, right: +bindsym $mod+j focus left +bindsym $mod+k focus down +bindsym $mod+l focus up +bindsym $mod+semicolon focus right + +# Focus parent container +bindsym $mod+u focus parent + +# Focus last floating/tiling container +bindsym $mod+g focus mode_toggle + +# Focus the output right to the current one +bindsym $mod+x focus output right + +# Focus the big output +bindsym $mod+x focus output HDMI-2 + +# Move container to the left, bottom, top, right: +bindsym $mod+j move left +bindsym $mod+k move down +bindsym $mod+l move up +bindsym $mod+semicolon move right + +# Move container, but make floating containers +# move more than the default +bindsym $mod+j move left 20 px + +# Move floating container to the center +# of all outputs +bindsym $mod+c move absolute position center + +6.5. Changing (named) workspaces/moving to workspaces + +Syntax: +workspace +workspace back_and_forth +workspace +workspace number + +move [window|container] [to] workspace +move [window|container] [to] workspace number +move [window|container] [to] workspace +Examples: +bindsym $mod+1 workspace 1 +bindsym $mod+2 workspace 2 +... + +bindsym $mod+Shift+1 move container to workspace 1 +bindsym $mod+Shift+2 move container to workspace 2 +... + +# switch between the current and the previously focused one +bindsym $mod+b workspace back_and_forth +bindsym $mod+Shift+b move container to workspace back_and_forth + +# move the whole workspace to the next output +bindsym $mod+x move workspace to output right + +# move firefox to current workspace +bindsym $mod+F1 [class="Firefox"] move workspace current + +6.5.1. Named workspaces +Workspaces are identified by their name. So, instead of using numbers in the workspace command, you can use an arbitrary name: +Example: +bindsym $mod+1 workspace mail +... +If you want the workspace to have a number and a name, just prefix the number, like this: +Example: +bindsym $mod+1 workspace 1: mail +bindsym $mod+2 workspace 2: www + +6.5.2. Renaming workspaces + +Syntax: +rename workspace to +rename workspace to +Examples: +i3-msg 'rename workspace 5 to 6' +i3-msg 'rename workspace 1 to "1: www"' +i3-msg 'rename workspace "1: www" to "10: www"' +i3-msg 'rename workspace to "2: mail" +bindsym $mod+r exec i3-input -F 'rename workspace to %s' -P 'New name: ' + + +6.6. Moving workspaces to a different screen +# see section 6.7 + +6.7. Moving containers/workspaces to RandR outputs +Syntax: +move container to output <|> +move workspace to output <|> +Examples: +# Move the current workspace to the next output +# (effectively toggles when you only have two outputs) +bindsym $mod+x move workspace to output right + +# Put this window on the presentation output. +bindsym $mod+x move container to output VGA1 + +6.8. Resizing containers/windows + +Syntax: +resize [ px [or ppt]] + +Example: Configuration file, defining a mode for resizing +mode "resize" { + # These bindings trigger as soon as you enter the resize mode + + # Pressing left will shrink the window’s width. + # Pressing right will grow the window’s width. + # Pressing up will shrink the window’s height. + # Pressing down will grow the window’s height. + bindsym j resize shrink width 10 px or 10 ppt + bindsym k resize grow height 10 px or 10 ppt + bindsym l resize shrink height 10 px or 10 ppt + bindsym semicolon resize grow width 10 px or 10 ppt + + # same bindings, but for the arrow keys + bindsym Left resize shrink width 10 px or 10 ppt + bindsym Down resize grow height 10 px or 10 ppt + bindsym Up resize shrink height 10 px or 10 ppt + bindsym Right resize grow width 10 px or 10 ppt + + # back to normal: Enter or Escape + bindsym Return mode "default" + bindsym Escape mode "default" +} + +# Enter resize mode +bindsym $mod+r mode "resize" + +6.9. Jumping to specific windows + +Syntax: +[class="class"] focus +[title="title"] focus +Examples: +# Get me to the next open VIM instance +bindsym $mod+a [class="urxvt" title="VIM"] focus + +6.10. VIM-like marks (mark/goto) + +Syntax: +mark identifier +[con_mark="identifier"] focus +unmark identifier +Example (in a terminal): +$ i3-msg mark irssi +$ i3-msg '[con_mark="irssi"] focus' +$ i3-msg unmark irssi + +6.11. Changing border style + +Examples: +bindsym $mod+t border normal +bindsym $mod+y border 1pixel +bindsym $mod+u border none + +6.12. Enabling shared memory logging + +Syntax: +shmlog +shmlog +Examples: +# Enable/disable logging +bindsym $mod+x shmlog toggle + +# or, from a terminal: +# increase the shared memory log buffer to 50 MiB +i3-msg shmlog $((50*1024*1024)) + +6.13. Enabling debug logging + +Syntax: +debuglog +Examples: +# Enable/disable logging +bindsym $mod+x debuglog toggle + +6.14. Reloading/Restarting/Exiting + +Examples: +bindsym $mod+Shift+r restart +bindsym $mod+Shift+w reload +bindsym $mod+Shift+e exit + +6.15. Scratchpad + +Syntax: +move scratchpad + +scratchpad show +Examples: +# Make the currently focused window a scratchpad +bindsym $mod+Shift+minus move scratchpad + +# Show the first scratchpad window +bindsym $mod+minus scratchpad show + +# Show the sup-mail scratchpad window, if any. +bindsym mod4+s [title="^Sup ::"] scratchpad show + +6.16. i3bar control + +Syntax: +bar hidden_state hide|show|toggle [] + +bar mode dock|hide|invisible|toggle [] +Examples: +# Toggle between hide state and show state +bindsym $mod+m bar hidden_state toggle + +# Toggle between dock mode and hide mode +bindsym $mod+n bar mode toggle + +# Set the bar instance with id 'bar-1' to switch to hide mode +bindsym $mod+b bar mode hide bar-1 + +# Set the bar instance with id 'bar-1' to always stay hidden +bindsym $mod+Shift+b bar mode invisible bar-1 + From cd3dd0c873c265c9c14f45baf6b103f7987b2b7f Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Sat, 23 Nov 2013 11:27:37 -0500 Subject: [PATCH 2/8] Updated syntax defintion file --- Syntax/i3wm_config.YAML-tmLanguage | 282 ++++-- Syntax/i3wm_config.tmLanguage | 1316 ++++++++++++++++++---------- 2 files changed, 1055 insertions(+), 543 deletions(-) diff --git a/Syntax/i3wm_config.YAML-tmLanguage b/Syntax/i3wm_config.YAML-tmLanguage index 035adcf..cef7e06 100644 --- a/Syntax/i3wm_config.YAML-tmLanguage +++ b/Syntax/i3wm_config.YAML-tmLanguage @@ -1,149 +1,317 @@ -# [PackageDev] target_format: plist, ext: tmLanguage + name: i3-wm Config +author: skk scopeName: source.i3wm_config fileTypes: [i3/config, config] uuid: bb9ebd33-1b88-4310-acef-41720bcac38f +# ---> #rrggbb +# ---> path_to_file + patterns: - name: comment - match: (?:^ *|\G *)((#).*) + match: ((#).*) captures: '1': {name: comment} '2': {name: comment.source.i3wm_config} +# set $mod Mod4 - name: set - match: (?:^ *|\G *)(set)\s*(.*) + match: (set)\s*(\$\w*)\s*(\w*) captures: - '1': {name: keyword.source.i3wm_config} - '2': {name: constant.string.i3wm_config} + '1': {name: keyword.other.i3wm_config} + '2': {name: meta.scope.variable.other.i3wm_config} + '3': {name: constant.language.i3wm_config} +# ipc-socket - name: ipc_socket - match: (?:^ *|\G *)(ipc-socket)\s*(.*) + match: (ipc-socket)\s*(.*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.string.i3wm_config} + +# reload +- name: reload + match: (reload)\s*(.*) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} +# restart +- name: restart + match: (restart)\s*(.*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.string.i3wm_config} + +# focus +# focus +# focus output <|output> +# - name: focus +# match: (focus)\s*(.*) +# captures: +# '1': {name: keyword.other.i3wm_config} +# '2': {name: constant.string.i3wm_config} + +# move [ px] +# move [absolute] position [[ px] [ px]|center] +# - name: move +# match: (move)\s*(.*) +# captures: +# '1': {name: keyword.other.i3wm_config} +# '2': {name: constant.string.i3wm_config} + +# layout +- name: layout + match: (layout)\s*(default|tabbed|stacking|split v|split h) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# layout toggle [split|all] +- name: layout_toggle + match: (layout toggle)\s*(split|all) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +#split +- name: split + match: (split)\s*(vertical|horizontal|v|h) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# rename workspace to +# rename workspace to +- name: rename_workspace + match: (rename workspace)\s*(\w*)\s*(to)\s*(\w*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: keyword.other.i3wm_config} + '4': {name: constant.language.i3wm_config} + '5': {name: constant.language.i3wm_config} + +# workspace +# workspace back_and_forth +# workspace +# workspace number +- name: workspace + match: (workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# NOTE: move__container_or_workspace needs to be defined before move_workspace. +# It needs to be defined first, so that Sublime match 'move workspace to output' +# correctly. If its defined second, the 'output' won't be highlighted currently +# move container to output <|> +# move workspace to output <|> +- name: move__container_or_workspace + match: (move)\s*(workspace|container)\s*(to)\s*(output)\s*(left|right|down|up|[\w]*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: keyword.other.i3wm_config} + '3': {name: keyword.other.i3wm_config} + '4': {name: keyword.other.i3wm_config} + '5': {name: constant.language.i3wm_config} + +# move workspace +# move workspace back_and_forth +# move workspace +# move workspace number +- name: move_workspace + match: (move)\s*(workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: keyword.other.i3wm_config} + '3': {name: constant.language.i3wm_config} + +# move [window|container] [to] workspace +# move [window|container] [to] workspace number +# move [window|container] [to] workspace +- name: move__window_or_container + match: (move)\s*(window|container)\s*(to)? + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: keyword.other.i3wm_config} + '3': {name: keyword.other.i3wm_config} + +# move scratchpad +- name: move_scratchpad + match: (move)\s*(scratchpad) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: keyword.other.i3wm_config} + +# scratchpad show +- name: scratchpad_show + match: (scratchpad)\s*(show) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: keyword.other.i3wm_config} + +# Bar Section +# + +- name: bar + match: (?:^ *|\G *)(bar) + captures: + '1': {name: keyword.other.i3wm_config} + +# position bottom|top - name: position - match: (?:^ *|\G *)(position)\s*(.*) + match: (position)\s*(.*) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} +# status_command i3status --config ~/.i3/i3status.conf - name: status_command - match: (?:^ *|\G *)(status_command)\s*(.*) + match: (status_command)\s*(.*) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} +# tray_output primary - name: tray_output - match: (?:^ *|\G *)(tray_output)\s*(.*) + match: (tray_output)\s*(\w*) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} +# background - name: background - match: (?:^ *|\G *)(background)\s*(.*) + match: (background)\s*(#\w{6}) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} +# focused_workspace - name: focused_workspace - match: (?:^ *|\G *)(focused_workspace)\s*(.*) + match: (focused_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} + '3': {name: constant.string.i3wm_config} + '4': {name: constant.string.i3wm_config} + '5': {name: constant.string.i3wm_config} +# active_workspace - name: active_workspace - match: (?:^ *|\G *)(active_workspace)\s*(.*) + match: (active_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} + '3': {name: constant.string.i3wm_config} + '4': {name: constant.string.i3wm_config} + '5': {name: constant.string.i3wm_config} +# inactive_workspace - name: inactive_workspace - match: (?:^ *|\G *)(inactive_workspace)\s*(.*) + match: (inactive_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} + '3': {name: constant.string.i3wm_config} + '4': {name: constant.string.i3wm_config} + '5': {name: constant.string.i3wm_config} +# statusline - name: statusline - match: (?:^ *|\G *)(statusline)\s*(.*) + match: (statusline)\s*(#\w{6}) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} +# exec [--no-startup-id] command - name: exec - match: (?:^ *|\G *)(exec)\s*(.*) + match: (exec)\s*(\-\-no-startup-id)?\s*(.*) captures: - '1': {name: keyword.source.i3wm_config} - '2': {name: constant.string.i3wm_config} + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.string.i3wm_config} - name: font_pango - match: (?:^ *|\G *)(font\ pango\:)\s*([ \w]*) + match: (font\ pango\:)\s*([ \w]*) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} -- name: bind - match: (?:^ *|\G *)(bindsym|bindcode)\s*(.*)\s*(.*) - captures: - '1': {name: keyword.source.i3wm_config} - '2': {name: constant.string.i3wm_config} - '3': {name: constant.string.i3wm_config} - - name: font - match: (?:^ *|\G *)(font)\s*([-\w]*) + match: (font)\s*([-\w]*) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} +# force_xinerama - name: force_xinerama - match: (?:^ *|\G *)(force_xinerama)\s*(.*) + match: (force_xinerama)\s*(no|yes) captures: - '1': {name: keyword.source.i3wm_config} - '2': {name: constant.string.i3wm_config} + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} +# floating_modifier - name: floating_modifier - match: (?:^ *|\G *)(floating_modifier)\s*(.*) + match: (floating_modifier)\s*(\$\w*) captures: - '1': {name: keyword.source.i3wm_config} - '2': {name: constant.string.i3wm_config} + '1': {name: keyword.other.i3wm_config} + '2': {name: meta.scope.variable.other.i3wm_config} - name: client_focused - match: (?:^ *|\G *)(client\.focused)\s*(.*)\s*(.*)\s*(.*)\s*(.*) + match: (client.focused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} '3': {name: constant.string.i3wm_config} '4': {name: constant.string.i3wm_config} '5': {name: constant.string.i3wm_config} - name: client_focused_inactive - match: (?:^ *|\G *)(client\.focused_inactive)\s*(.*)\s*(.*)\s*(.*)\s*(.*) + match: (client\.focused\_inactive)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} '3': {name: constant.string.i3wm_config} '4': {name: constant.string.i3wm_config} '5': {name: constant.string.i3wm_config} - name: client_unfocused - match: (?:^ *|\G *)(client\.unfocused)\s*(.*)\s*(.*)\s*(.*)\s*(.*) + match: (client\.unfocused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.source.i3wm_config} + '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} '3': {name: constant.string.i3wm_config} '4': {name: constant.string.i3wm_config} '5': {name: constant.string.i3wm_config} -- name: bar - match: (?:^ *|\G *)(bar)\s*(.*) +# colors { +# background #073642 +# statusline #eee8d5 +# focused_workspace #cb4b16 #cb4b16 #eee8d5 +# active_workspace #cb4b16 #cb4b16 #eee8d5 +# inactive_workspace #b58900 #b58900 #eee8d5 +# } +- name: colors + match: (colors)\s*(.*) captures: - '1': {name: keyword.source.i3wm_config} - '2': {name: constant.string.i3wm_config} + '1': {name: keyword.other.i3wm_config} + '2': {name: meta.scope.block.i3wm_config} -- name: colors - match: (?:^ *|\G *)(colors)\s*(.*) +# bindcode 214 exec --no-startup-id /home/michael/toggle_beamer.sh +- name: bindcode + match: (bindcode)\s*(--release)?\s*(\d*) captures: - '1': {name: keyword.source.i3wm_config} - '2': {name: constant.string.i3wm_config} + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.numeric.i3wm_config} + +# bindsym $mod+1 workspace 1 +- name: bindsym + match: (bindsym)\s*(--release)?\s*([$\w\+]*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: meta.scope.variable.other.i3wm_config} diff --git a/Syntax/i3wm_config.tmLanguage b/Syntax/i3wm_config.tmLanguage index a60d02b..62072d3 100644 --- a/Syntax/i3wm_config.tmLanguage +++ b/Syntax/i3wm_config.tmLanguage @@ -1,488 +1,832 @@ - + - - - fileTypes - - i3/config - config - - name - i3-wm Config - patterns - - - captures - - 1 - - name - comment - - 2 - - name - comment.source.i3wm_config - - - match - (?:^ *|\G *)((#).*) - name - comment - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(set)\s*(.*) - name - set - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(ipc-socket)\s*(.*) - name - ipc_socket - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(position)\s*(.*) - name - position - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(status_command)\s*(.*) - name - status_command - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(tray_output)\s*(.*) - name - tray_output - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(background)\s*(.*) - name - background - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(focused_workspace)\s*(.*) - name - focused_workspace - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(active_workspace)\s*(.*) - name - active_workspace - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(inactive_workspace)\s*(.*) - name - inactive_workspace - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(statusline)\s*(.*) - name - statusline - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(exec)\s*(.*) - name - exec - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(font\ pango\:)\s*([ \w]*) - name - font_pango - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - 3 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(bindsym|bindcode)\s*(.*)\s*(.*) - name - bind - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(font)\s*([-\w]*) - name - font - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(force_xinerama)\s*(.*) - name - force_xinerama - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(floating_modifier)\s*(.*) - name - floating_modifier - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - 3 - - name - constant.string.i3wm_config - - 4 - - name - constant.string.i3wm_config - - 5 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(client\.focused)\s*(.*)\s*(.*)\s*(.*)\s*(.*) - name - client_focused - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - 3 - - name - constant.string.i3wm_config - - 4 - - name - constant.string.i3wm_config - - 5 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(client\.focused_inactive)\s*(.*)\s*(.*)\s*(.*)\s*(.*) - name - client_focused_inactive - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - 3 - - name - constant.string.i3wm_config - - 4 - - name - constant.string.i3wm_config - - 5 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(client\.unfocused)\s*(.*)\s*(.*)\s*(.*)\s*(.*) - name - client_unfocused - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(bar)\s*(.*) - name - bar - - - captures - - 1 - - name - keyword.source.i3wm_config - - 2 - - name - constant.string.i3wm_config - - - match - (?:^ *|\G *)(colors)\s*(.*) - name - colors - - - scopeName - source.i3wm_config - uuid - bb9ebd33-1b88-4310-acef-41720bcac38f - + + + name + i3-wm Config + author + skk + scopeName + source.i3wm_config + fileTypes + + i3/config + config + + uuid + bb9ebd33-1b88-4310-acef-41720bcac38f + patterns + + + name + comment + match + ((#).*) + captures + + 1 + + name + comment + + 2 + + name + comment.source.i3wm_config + + + + + name + set + match + (set)\s*(\$\w*)\s*(\w*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + meta.scope.variable.other.i3wm_config + + 3 + + name + constant.language.i3wm_config + + + + + name + ipc_socket + match + (ipc-socket)\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + + + + name + reload + match + (reload)\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + + + + name + restart + match + (restart)\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + + + + name + layout + match + (layout)\s*(default|tabbed|stacking|split v|split h) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + layout_toggle + match + (layout toggle)\s*(split|all) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + split + match + (split)\s*(vertical|horizontal|v|h) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + rename_workspace + match + (rename workspace)\s*(\w*)\s*(to)\s*(\w*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + keyword.other.i3wm_config + + 4 + + name + constant.language.i3wm_config + + 5 + + name + constant.language.i3wm_config + + + + + name + workspace + match + (workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + move__container_or_workspace + match + (move)\s*(workspace|container)\s*(to)\s*(output)\s*(left|right|down|up|[\w]*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + keyword.other.i3wm_config + + 3 + + name + keyword.other.i3wm_config + + 4 + + name + keyword.other.i3wm_config + + 5 + + name + constant.language.i3wm_config + + + + + name + move_workspace + match + (move)\s*(workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + keyword.other.i3wm_config + + 3 + + name + constant.language.i3wm_config + + + + + name + move__window_or_container + match + (move)\s*(window|container)\s*(to)? + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + keyword.other.i3wm_config + + 3 + + name + keyword.other.i3wm_config + + + + + name + move_scratchpad + match + (move)\s*(scratchpad) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + keyword.other.i3wm_config + + + + + name + scratchpad_show + match + (scratchpad)\s*(show) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + keyword.other.i3wm_config + + + + + name + bar + match + (?:^ *|\G *)(bar) + captures + + 1 + + name + keyword.other.i3wm_config + + + + + name + position + match + (position)\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + + + + name + status_command + match + (status_command)\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + + + + name + tray_output + match + (tray_output)\s*(\w*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + + + + name + background + match + (background)\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + + + + name + focused_workspace + match + (focused_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + 3 + + name + constant.string.i3wm_config + + 4 + + name + constant.string.i3wm_config + + 5 + + name + constant.string.i3wm_config + + + + + name + active_workspace + match + (active_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + 3 + + name + constant.string.i3wm_config + + 4 + + name + constant.string.i3wm_config + + 5 + + name + constant.string.i3wm_config + + + + + name + inactive_workspace + match + (inactive_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + 3 + + name + constant.string.i3wm_config + + 4 + + name + constant.string.i3wm_config + + 5 + + name + constant.string.i3wm_config + + + + + name + statusline + match + (statusline)\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + + + + name + exec + match + (exec)\s*(\-\-no-startup-id)?\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.string.i3wm_config + + + + + name + font_pango + match + (font\ pango\:)\s*([ \w]*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + + + + name + font + match + (font)\s*([-\w]*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + + + + name + force_xinerama + match + (force_xinerama)\s*(no|yes) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + floating_modifier + match + (floating_modifier)\s*(\$\w*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + meta.scope.variable.other.i3wm_config + + + + + name + client_focused + match + (client.focused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + 3 + + name + constant.string.i3wm_config + + 4 + + name + constant.string.i3wm_config + + 5 + + name + constant.string.i3wm_config + + + + + name + client_focused_inactive + match + (client\.focused\_inactive)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + 3 + + name + constant.string.i3wm_config + + 4 + + name + constant.string.i3wm_config + + 5 + + name + constant.string.i3wm_config + + + + + name + client_unfocused + match + (client\.unfocused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.string.i3wm_config + + 3 + + name + constant.string.i3wm_config + + 4 + + name + constant.string.i3wm_config + + 5 + + name + constant.string.i3wm_config + + + + + name + colors + match + (colors)\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + meta.scope.block.i3wm_config + + + + + name + bindcode + match + (bindcode)\s*(--release)?\s*(\d*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.numeric.i3wm_config + + + + + name + bindsym + match + (bindsym)\s*(--release)?\s*([$\w\+]*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + meta.scope.variable.other.i3wm_config + + + + + From 3514c73a6195f7b14d549681d929444c9464bfaf Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Sat, 23 Nov 2013 15:11:45 -0500 Subject: [PATCH 3/8] Commented out each section and its syntax docs --- config | 599 +++++++++++++++++++++++---------------------------------- 1 file changed, 240 insertions(+), 359 deletions(-) diff --git a/config b/config index 9c103d9..bb038b8 100644 --- a/config +++ b/config @@ -49,221 +49,188 @@ floating_minimum_size 75 x 50 floating_maximum_size -1 x -1 # 4.6. Orientation for new workspaces -Syntax: -default_orientation +#Syntax: +#default_orientation Example: default_orientation vertical -4.7. Layout mode for new containers -Syntax: -workspace_layout -Example: +#4.7. Layout mode for new containers +#Syntax: +#workspace_layout +#Example: workspace_layout tabbed -4.8. Border style for new windows -Syntax: -new_window -new_float -Example: +#4.8. Border style for new windows +#Syntax: +#new_window +#new_float +#Example: new_window 1pixel - -# The "normal" and "pixel" border styles support an optional border width in pixels: -Example: -# The same as new_window none -new_window pixel 0 - -# A 3 px border +new_float 1pixel +new_float none new_window pixel 3 -4.9. Hiding vertical borders -Syntax: -hide_edge_borders -Example: +#4.9. Hiding vertical borders +#Syntax: +#hide_edge_borders +#Example: hide_edge_borders vertical -4.10. Arbitrary commands for specific windows (for_window) -Syntax: -for_window command -Examples: -# enable floating mode for all XTerm windows +#4.10. Arbitrary commands for specific windows (for_window) +#Syntax: +#for_window command +#Examples: for_window [class="XTerm"] floating enable - -# Make all urxvts use a 1-pixel border: for_window [class="urxvt"] border 1pixel - -# A less useful, but rather funny example: -# makes the window floating as soon as I change -# directory to ~/work for_window [title="x200: ~/work"] floating enable -4.11. Variables -Syntax: -set $name value -Example: +#4.11. Variables +#Syntax: +#set $name value +#Example: set $m Mod1 bindsym $m+Shift+r restart -4.12. Automatically putting clients on specific workspaces -Syntax: -assign [→] workspace -Examples: -# Assign URxvt terminals to workspace 2 +#4.12. Automatically putting clients on specific workspaces +#Syntax: +#assign [→] workspace +#Examples: assign [class="URxvt"] 2 - -# Same thing, but more precise (exact match instead of substring) assign [class="^URxvt$"] 2 - -# Same thing, but with a beautiful arrow :) assign [class="^URxvt$"] → 2 - -# Assignment to a named workspace assign [class="^URxvt$"] → work - -# Start urxvt -name irssi assign [class="^URxvt$" instance="^irssi$"] → 3 -4.13. Automatically starting applications on i3 startup - - -Syntax: -exec [--no-startup-id] command -exec_always [--no-startup-id] command -Examples: +#4.13. Automatically starting applications on i3 startup +#Syntax: +#exec [--no-startup-id] command +#exec_always [--no-startup-id] command +#Examples: exec chromium exec_always ~/my_script.sh - -# Execute the terminal emulator urxvt, which is not yet startup-notification aware. exec --no-startup-id urxvt -4.14. Automatically putting workspaces on specific screens - -Syntax: -workspace output -The output is the name of the RandR output you attach your screen to. On a laptop, you might have VGA1 and LVDS1 as output names. You can see the available outputs by running xrandr --current. -If you use named workspaces, they must be quoted: -Examples: +#4.14. Automatically putting workspaces on specific screens +#Syntax: +#workspace output +#Examples: workspace 1 output LVDS1 workspace 5 output VGA1 workspace "2: vim" output VGA1 -4.15. Changing colors - -Syntax: -colorclass border background text indicator -Where colorclass can be one of: -client.focused -client.focused_inactive -client.unfocused -client.urgent -client.background - -Examples (default colors): +#4.15. Changing colors +#Syntax: +#colorclass border background text indicator +#Where colorclass can be one of: +#client.focused, client.focused_inactive, client.unfocused, client.urgent +#client.background +#Examples (default colors): # class border backgr. text indicator client.focused #4c7899 #285577 #ffffff #2e9ef4 client.focused_inactive #333333 #5f676a #ffffff #484e50 client.unfocused #333333 #222222 #888888 #292d2e client.urgent #2f343a #900000 #ffffff #900000 -4.16. Interprocess communication -Syntax -ipc-socket path_to_socket -Examples: +#4.16. Interprocess communication +#Syntax +#ipc-socket path_to_socket +#Examples: ipc-socket ~/.i3/i3-ipc.sock -4.17. Focus follows mouse -Syntax: -focus_follows_mouse -Example: +#4.17. Focus follows mouse +#Syntax: +#focus_follows_mouse +#Example: focus_follows_mouse no -4.18. Popups during fullscreen mode -Syntax: -popup_during_fullscreen -Example: +#4.18. Popups during fullscreen mode +#Syntax: +#popup_during_fullscreen +#Example: popup_during_fullscreen smart -4.19. Focus wrapping -Syntax: -force_focus_wrapping -Example: +#4.19. Focus wrapping +#Syntax: +#force_focus_wrapping +#Example: force_focus_wrapping yes -4.20. Forcing Xinerama -Syntax: -force_xinerama -Example: +#4.20. Forcing Xinerama +#Syntax: +#force_xinerama +#Example: force_xinerama yes -4.21. Automatic back-and-forth when switching to the current workspace -Syntax: -workspace_auto_back_and_forth -Example: +#4.21. Automatic back-and-forth when switching to the current workspace +#Syntax: +#workspace_auto_back_and_forth +#Example: workspace_auto_back_and_forth yes -4.22. Delaying urgency hint reset on workspace change -Syntax: -force_display_urgency_hint ms -Example: +#4.22. Delaying urgency hint reset on workspace change +#Syntax: +#force_display_urgency_hint ms +#Example: force_display_urgency_hint 500 ms -# Chapter 5, Configurring i3bar -Syntax -bar { - # i3bar commands -} -Example: +# Chapter 5, Configuring i3bar +#Syntax +#bar { +# # i3bar commands +#} +#Example: bar { status_command i3status } -5.1. i3bar command -Syntax: -i3bar_command command -Example: +#5.1. i3bar command +#Syntax: +#i3bar_command command +#Example: bar { i3bar_command /home/user/bin/i3bar } -5.2. Statusline command -Syntax: -status_command command -Example: +#5.2. Statusline command +#Syntax: +#status_command command +#Example: bar { status_command i3status --config ~/.i3status.conf } -5.3. Display mode -Syntax: -mode -hidden_state -modifier -Example: +#5.3. Display mode +#Syntax: +#mode +#hidden_state +#modifier +#Example: bar { mode hide hidden_state hide modifier Mod1 } -5.4. Bar ID -Syntax: -id -Example: +#5.4. Bar ID +#Syntax: +#id +#Example: bar { id bar-1 } -5.5. Position -Syntax: -position -Example: +#5.5. Position +#Syntax: +#position +#Example: bar { position top } -5.6. Output(s) -Syntax: -output -Example: +#5.6. Output(s) +#Syntax: +#output +#Example: # big monitor: everything bar { # The display is connected either via HDMI or via DisplayPort @@ -282,11 +249,10 @@ bar { } } - -5.7. Tray output -Syntax: -tray_output -Example: +#5.7. Tray output +#Syntax: +#tray_output +#Example: # disable system tray bar { tray_output none @@ -300,44 +266,40 @@ bar { tray_output HDMI2 } -5.8. Font (same as 4.2) -Syntax: -font -Example: +#5.8. Font (same as 4.2) +#Syntax: +#font +#Example: bar { font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 font pango:DejaVu Sans Mono 10 } -5.9. Workspace buttons - -Syntax: -workspace_buttons -Example: +#5.9. Workspace buttons +#Syntax: +#workspace_buttons +#Example: bar { workspace_buttons no } -5.10. Colors - -color sub-commands: -background -statusline -separator -focused_workspace -active_workspace -inactive_workspace -urgent_workspace - -Syntax: -colors { - background - statusline - separator - - colorclass -} -Example (default colors): +#5.10. Colors +#color sub-commands: +# background +# statusline +# separator +# focused_workspace +# active_workspace +# inactive_workspace +# urgent_workspace +#Syntax: +#colors { +# background +# statusline +# separator +# colorclass +#} +#Example (default colors): bar { colors { background #000000 @@ -351,186 +313,132 @@ bar { } } -6. List of commands -On to Chapter 6. - +#6. List of commands +#On to Chapter 6. # command chaining using ; -bindsym $mod+x move container to workspace 3; workspace 3 - +#bindsym $mod+x move container to workspace 3; workspace 3 # scope of command changes using square brackets -Example: +#Example: bindsym $mod+x [class="Firefox"] kill # same thing, but case-insensitive bindsym $mod+x [class="(?i)firefox"] kill -The criteria which are currently implemented are: -class -instance -window_role -id -title -urgent -con_mark -con_id - -criteria class, instance, role, title and mark are regular expressions (PCRE). - -6.1. Executing applications (exec) -Syntax: -exec [--no-startup-id] command -Example: -# Start the GIMP +#The criteria which are currently implemented are: +#class +#instance +#window_role +#id +#title +#urgent +#con_mark +#con_id +#criteria class, instance, role, title and mark are regular expressions (PCRE). + +#6.1. Executing applications (exec) +#Syntax: +#exec [--no-startup-id] command +#Example: bindsym $mod+g exec gimp - -# Start the terminal emulator urxvt which is not yet startup-notification-aware bindsym $mod+Return exec --no-startup-id urxvt -6.2. Splitting containers - -Syntax: -split -Example: +#6.2. Splitting containers +#Syntax: +#split +#Example: bindsym $mod+v split vertical bindsym $mod+h split horizontal -6.3. Manipulating layout - -Syntax: -layout -layout toggle [split|all] -Examples: +#6.3. Manipulating layout +#Syntax: +#layout +#layout toggle [split|all] +#Examples: bindsym $mod+s layout stacking bindsym $mod+l layout toggle split bindsym $mod+w layout tabbed - -# Toggle between stacking/tabbed/split: bindsym $mod+x layout toggle - -# Toggle between stacking/tabbed/splith/splitv: bindsym $mod+x layout toggle all - -# Toggle fullscreen bindsym $mod+f fullscreen - -# Toggle floating/tiling bindsym $mod+t floating toggle - -6.4. Focusing/Moving containers -Syntax: -focus -focus -focus output <|output> -move [ px] -move [absolute] position [[ px] [ px]|center] -Note that the amount of pixels you can specify for the move command is only relevant for floating containers. The default amount is 10 pixels. -Examples: -# Focus container on the left, bottom, top, right: +#6.4. Focusing/Moving containers +#Syntax: +#focus +#focus +#focus output <|output> +#move [ px] +#move [absolute] position [[ px] [ px]|center] +# Note that the amount of pixels you can specify for the move command is only +# relevant for floating containers. The default amount is 10 pixels. +#Examples: bindsym $mod+j focus left bindsym $mod+k focus down bindsym $mod+l focus up bindsym $mod+semicolon focus right - -# Focus parent container bindsym $mod+u focus parent - -# Focus last floating/tiling container bindsym $mod+g focus mode_toggle - -# Focus the output right to the current one bindsym $mod+x focus output right - -# Focus the big output bindsym $mod+x focus output HDMI-2 - -# Move container to the left, bottom, top, right: bindsym $mod+j move left bindsym $mod+k move down bindsym $mod+l move up bindsym $mod+semicolon move right - -# Move container, but make floating containers -# move more than the default bindsym $mod+j move left 20 px - -# Move floating container to the center -# of all outputs bindsym $mod+c move absolute position center -6.5. Changing (named) workspaces/moving to workspaces - -Syntax: -workspace -workspace back_and_forth -workspace -workspace number - -move [window|container] [to] workspace -move [window|container] [to] workspace number -move [window|container] [to] workspace -Examples: +#6.5. Changing (named) workspaces/moving to workspaces +#Syntax: +#workspace +#workspace back_and_forth +#workspace +#workspace number +#move [window|container] [to] workspace +#move [window|container] [to] workspace number +#move [window|container] [to] workspace +#Examples: bindsym $mod+1 workspace 1 bindsym $mod+2 workspace 2 -... - bindsym $mod+Shift+1 move container to workspace 1 bindsym $mod+Shift+2 move container to workspace 2 -... - -# switch between the current and the previously focused one bindsym $mod+b workspace back_and_forth bindsym $mod+Shift+b move container to workspace back_and_forth - -# move the whole workspace to the next output bindsym $mod+x move workspace to output right - -# move firefox to current workspace bindsym $mod+F1 [class="Firefox"] move workspace current -6.5.1. Named workspaces -Workspaces are identified by their name. So, instead of using numbers in the workspace command, you can use an arbitrary name: -Example: +#6.5.1. Named workspaces +#Workspaces are identified by their name. So, instead of using numbers in the +#workspace command, you can use an arbitrary name: +#Example: bindsym $mod+1 workspace mail -... -If you want the workspace to have a number and a name, just prefix the number, like this: -Example: bindsym $mod+1 workspace 1: mail bindsym $mod+2 workspace 2: www -6.5.2. Renaming workspaces - -Syntax: -rename workspace to -rename workspace to -Examples: +#6.5.2. Renaming workspaces +#Syntax: +#rename workspace to +#rename workspace to +#Examples: i3-msg 'rename workspace 5 to 6' i3-msg 'rename workspace 1 to "1: www"' i3-msg 'rename workspace "1: www" to "10: www"' i3-msg 'rename workspace to "2: mail" bindsym $mod+r exec i3-input -F 'rename workspace to %s' -P 'New name: ' - -6.6. Moving workspaces to a different screen +#6.6. Moving workspaces to a different screen # see section 6.7 -6.7. Moving containers/workspaces to RandR outputs -Syntax: -move container to output <|> -move workspace to output <|> +#6.7. Moving containers/workspaces to RandR outputs +#Syntax: +#move container to output <|> +#move workspace to output <|> Examples: -# Move the current workspace to the next output -# (effectively toggles when you only have two outputs) bindsym $mod+x move workspace to output right - -# Put this window on the presentation output. bindsym $mod+x move container to output VGA1 -6.8. Resizing containers/windows - -Syntax: -resize [ px [or ppt]] - -Example: Configuration file, defining a mode for resizing +#6.8. Resizing containers/windows +#Syntax: +#resize [ px [or ppt]] +#Example: Configuration file, defining a mode for resizing mode "resize" { # These bindings trigger as soon as you enter the resize mode @@ -553,97 +461,70 @@ mode "resize" { bindsym Return mode "default" bindsym Escape mode "default" } - # Enter resize mode bindsym $mod+r mode "resize" -6.9. Jumping to specific windows - -Syntax: -[class="class"] focus -[title="title"] focus -Examples: -# Get me to the next open VIM instance +#6.9. Jumping to specific windows +#Syntax: +#[class="class"] focus +#[title="title"] focus +#Examples: bindsym $mod+a [class="urxvt" title="VIM"] focus -6.10. VIM-like marks (mark/goto) - -Syntax: -mark identifier -[con_mark="identifier"] focus -unmark identifier +#6.10. VIM-like marks (mark/goto) +#Syntax: +#mark identifier +#[con_mark="identifier"] focus +#unmark identifier Example (in a terminal): -$ i3-msg mark irssi -$ i3-msg '[con_mark="irssi"] focus' -$ i3-msg unmark irssi - -6.11. Changing border style +mark irssi +[con_mark="irssi"] focus +unmark irssi -Examples: +#6.11. Changing border style +#Examples: bindsym $mod+t border normal bindsym $mod+y border 1pixel bindsym $mod+u border none -6.12. Enabling shared memory logging - -Syntax: -shmlog -shmlog -Examples: -# Enable/disable logging +#6.12. Enabling shared memory logging +#Syntax: +#shmlog +#shmlog +#Examples: bindsym $mod+x shmlog toggle -# or, from a terminal: -# increase the shared memory log buffer to 50 MiB -i3-msg shmlog $((50*1024*1024)) - -6.13. Enabling debug logging - -Syntax: -debuglog -Examples: -# Enable/disable logging +#6.13. Enabling debug logging +#Syntax: +#debuglog +#Examples: bindsym $mod+x debuglog toggle -6.14. Reloading/Restarting/Exiting - -Examples: +#6.14. Reloading/Restarting/Exiting +#Syntax: +#restart +#reload +#exit +#Examples: bindsym $mod+Shift+r restart bindsym $mod+Shift+w reload bindsym $mod+Shift+e exit -6.15. Scratchpad - -Syntax: -move scratchpad - -scratchpad show -Examples: -# Make the currently focused window a scratchpad +#6.15. Scratchpad +#Syntax: +#move scratchpad +#scratchpad show +#Examples: bindsym $mod+Shift+minus move scratchpad - -# Show the first scratchpad window bindsym $mod+minus scratchpad show - -# Show the sup-mail scratchpad window, if any. bindsym mod4+s [title="^Sup ::"] scratchpad show -6.16. i3bar control - -Syntax: -bar hidden_state hide|show|toggle [] - -bar mode dock|hide|invisible|toggle [] -Examples: -# Toggle between hide state and show state +#6.16. i3bar control +#Syntax: +#bar hidden_state hide|show|toggle [] +#bar mode dock|hide|invisible|toggle [] +#Examples: bindsym $mod+m bar hidden_state toggle - -# Toggle between dock mode and hide mode bindsym $mod+n bar mode toggle - -# Set the bar instance with id 'bar-1' to switch to hide mode bindsym $mod+b bar mode hide bar-1 - -# Set the bar instance with id 'bar-1' to always stay hidden bindsym $mod+Shift+b bar mode invisible bar-1 - From 3de001f21bc6a301c16b7f5e1fa7679f138d7115 Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Mon, 25 Nov 2013 20:27:45 -0500 Subject: [PATCH 4/8] Completed syntax defintion. All commands supported by i3wm are now supported. --- Syntax/i3wm_config.YAML-tmLanguage | 640 +++++++++---- Syntax/i3wm_config.tmLanguage | 1348 ++++++++++++++++++++++++---- config | 30 +- 3 files changed, 1662 insertions(+), 356 deletions(-) diff --git a/Syntax/i3wm_config.YAML-tmLanguage b/Syntax/i3wm_config.YAML-tmLanguage index cef7e06..87b8d0d 100644 --- a/Syntax/i3wm_config.YAML-tmLanguage +++ b/Syntax/i3wm_config.YAML-tmLanguage @@ -8,6 +8,8 @@ uuid: bb9ebd33-1b88-4310-acef-41720bcac38f # ---> #rrggbb # ---> path_to_file +# Chapter 4, Configuring i3 + patterns: - name: comment match: ((#).*) @@ -15,6 +17,86 @@ patterns: '1': {name: comment} '2': {name: comment.source.i3wm_config} +- name: font_pango + match: (font\ pango\:)\s*([- ,\w]*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +- name: font + match: (font)\s*([-\w]*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# fullscreen +- name: fullscreen + match: (fullscreen) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.string.i3wm_config} + +# floating_modifier +- name: floating_modifier + match: (floating_modifier)\s*(\$?\w*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: meta.scope.variable.other.i3wm_config} + +# floating_minimum_size +- name: floating_minimum_size + match: (floating_minimum_size)\s*(-?\d*)\s*(x)\s*(-?\d*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.numeric.i3wm_config} + '3': {name: keyword.other.i3wm_config} + '4': {name: constant.numeric.i3wm_config} + +# floating_maximum_size +- name: floating_maximum_size + match: (floating_maximum_size)\s*(-?\d*)\s*(x)\s*(-?\d*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.numeric.i3wm_config} + '3': {name: keyword.other.i3wm_config} + '4': {name: constant.numeric.i3wm_config} + +# default_orientation +- name: default_orientation + match: (default_orientation)\s*(vertical|horizontal|v|h|auto|a) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# workspace_layout +- name: workspace_layout + match: (workspace_layout)\s*(default|stacking|tabbed|d|s|t) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# new_(window|float) +- name: new_window_or_float + match: (new_(?:window|float))\s*(normal|none|(?:\d*pixel\s\d*)) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +#hide_edge_borders +- name: hide_edge_borders + match: (hide_edge_borders)\s*(vertical|horizontal|none|both|v|h|n|b) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +#for_window command +- name: for_window + match: (for_window)\s*\[(\w*)=([\"\w\s\:\~\/\$]*\])\s* + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.string.i3wm_config} + # set $mod Mod4 - name: set match: (set)\s*(\$\w*)\s*(\w*) @@ -23,295 +105,533 @@ patterns: '2': {name: meta.scope.variable.other.i3wm_config} '3': {name: constant.language.i3wm_config} -# ipc-socket -- name: ipc_socket - match: (ipc-socket)\s*(.*) +# [fix] - Multiple criteria isn't parsing correctly + +#assign command +- name: assign + match: (assign)\s*\[(\w*)=(.*)\]\s*(→)?\s*([\w\d]*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.string.i3wm_config} + '4': {name: keyword.operator.i3wm_config} + '5': {name: constant.language.i3wm_config} + +# exec_always [--no-startup-id] command +- name: exec_always + match: (exec_always)\s*(\-\-no-startup-id)?\s*(.*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.string.i3wm_config} + +# exec [--no-startup-id] command +- name: exec + match: (exec)\s*(\-\-no-startup-id)?\s*(.*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.string.i3wm_config} + +# client.focused +- name: client_focused + match: (client.focused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} + '3': {name: constant.string.i3wm_config} + '4': {name: constant.string.i3wm_config} + '5': {name: constant.string.i3wm_config} -# reload -- name: reload - match: (reload)\s*(.*) +# client.focused_inactive +- name: client_focused_inactive + match: (client\.focused\_inactive)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} + '3': {name: constant.string.i3wm_config} + '4': {name: constant.string.i3wm_config} + '5': {name: constant.string.i3wm_config} -# restart -- name: restart - match: (restart)\s*(.*) +# client.unfocused +- name: client_unfocused + match: (client\.unfocused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.string.i3wm_config} + '3': {name: constant.string.i3wm_config} + '4': {name: constant.string.i3wm_config} + '5': {name: constant.string.i3wm_config} -# focus -# focus -# focus output <|output> -# - name: focus -# match: (focus)\s*(.*) -# captures: -# '1': {name: keyword.other.i3wm_config} -# '2': {name: constant.string.i3wm_config} +# client.urgent +- name: client_urgent + match: (client\.urgent)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.string.i3wm_config} + '3': {name: constant.string.i3wm_config} + '4': {name: constant.string.i3wm_config} + '5': {name: constant.string.i3wm_config} -# move [ px] -# move [absolute] position [[ px] [ px]|center] -# - name: move -# match: (move)\s*(.*) -# captures: -# '1': {name: keyword.other.i3wm_config} -# '2': {name: constant.string.i3wm_config} +# ipc-socket +- name: ipc_socket + match: (ipc-socket)\s*(.*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.string.i3wm_config} -# layout -- name: layout - match: (layout)\s*(default|tabbed|stacking|split v|split h) +# focus_follows_mouse yes|no +- name: focus_follows_mouse + match: (focus_follows_mouse)\s*(yes|no|y|n) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.language.i3wm_config} -# layout toggle [split|all] -- name: layout_toggle - match: (layout toggle)\s*(split|all) +# popup_during_fullscreen +- name: popup_during_fullscreen + match: (popup_during_fullscreen)\s*(smart|ignore|leave_fullscreen) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.language.i3wm_config} -#split -- name: split - match: (split)\s*(vertical|horizontal|v|h) +# force_focus_wrapping yes|no +- name: force_focus_wrapping + match: (force_focus_wrapping)\s*(yes|no|y|n) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.language.i3wm_config} -# rename workspace to -# rename workspace to -- name: rename_workspace - match: (rename workspace)\s*(\w*)\s*(to)\s*(\w*) +# force_xinerama +- name: force_xinerama + match: (force_xinerama)\s*(no|yes) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.language.i3wm_config} - '3': {name: keyword.other.i3wm_config} - '4': {name: constant.language.i3wm_config} - '5': {name: constant.language.i3wm_config} -# workspace -# workspace back_and_forth -# workspace -# workspace number -- name: workspace - match: (workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) +# force_xinerama +- name: force_xinerama + match: (force_xinerama)\s*(yes|no|y|n) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.language.i3wm_config} -# NOTE: move__container_or_workspace needs to be defined before move_workspace. -# It needs to be defined first, so that Sublime match 'move workspace to output' -# correctly. If its defined second, the 'output' won't be highlighted currently -# move container to output <|> -# move workspace to output <|> -- name: move__container_or_workspace - match: (move)\s*(workspace|container)\s*(to)\s*(output)\s*(left|right|down|up|[\w]*) +# workspace_auto_back_and_forth +- name: workspace_auto_back_and_forth + match: (workspace_auto_back_and_forth)\s*(yes|no|y|n) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: keyword.other.i3wm_config} - '3': {name: keyword.other.i3wm_config} - '4': {name: keyword.other.i3wm_config} - '5': {name: constant.language.i3wm_config} + '2': {name: constant.language.i3wm_config} -# move workspace -# move workspace back_and_forth -# move workspace -# move workspace number -- name: move_workspace - match: (move)\s*(workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) +# force_display_urgency_hint ms +- name: force_display_urgency_hint + match: (force_display_urgency_hint)\s*(\d*)\s*ms captures: '1': {name: keyword.other.i3wm_config} - '2': {name: keyword.other.i3wm_config} - '3': {name: constant.language.i3wm_config} + '2': {name: constant.numeric.i3wm_config} -# move [window|container] [to] workspace -# move [window|container] [to] workspace number -# move [window|container] [to] workspace -- name: move__window_or_container - match: (move)\s*(window|container)\s*(to)? + +# Chapter 5, Configuring i3bar + +# bar { + # i3bar commands +# } +- name: bar + match: (?:^ *|\G *)(bar) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: keyword.other.i3wm_config} - '3': {name: keyword.other.i3wm_config} -# move scratchpad -- name: move_scratchpad - match: (move)\s*(scratchpad) +# i3bar_command i3status --config ~/.i3/i3status.conf +- name: i3bar_command + match: (i3bar_command)\s*(.*) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} -# scratchpad show -- name: scratchpad_show - match: (scratchpad)\s*(show) +# status_command i3status --config ~/.i3/i3status.conf +- name: status_command + match: (status_command)\s*(.*) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} -# Bar Section -# +# modifier +- name: modifier + match: (modifier)\s*(.*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} -- name: bar - match: (?:^ *|\G *)(bar) +# hidden_state +- name: hidden_state + match: (hidden_state)\s*(show|hide) + captures: + '1': {name: keyword.control.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# mode +- name: mode + match: (mode)\s*(dock|hide|invisible) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# bar_id +- name: id + match: (id)\s*(.*) captures: '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} -# position bottom|top +# position - name: position match: (position)\s*(.*) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} -# status_command i3status --config ~/.i3/i3status.conf -- name: status_command - match: (status_command)\s*(.*) +# output +- name: output + match: (output)\s*(\w*) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} # tray_output primary - name: tray_output match: (tray_output)\s*(\w*) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# workspace_buttons +- name: workspace_buttons + match: (workspace_buttons)\s*(yes|no|y|n) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# colors { + # color commands +# } +- name: colors + match: (colors)\s*(.*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: meta.scope.block.i3wm_config} # background - name: background match: (background)\s*(#\w{6}) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# statusline +- name: statusline + match: (statusline)\s*(#\w{6}) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# separator +- name: separator + match: (separator)\s*(#\w{6}) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} # focused_workspace - name: focused_workspace match: (focused_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} - '3': {name: constant.string.i3wm_config} - '4': {name: constant.string.i3wm_config} - '5': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.language.i3wm_config} + '4': {name: constant.language.i3wm_config} + '5': {name: constant.language.i3wm_config} # active_workspace - name: active_workspace match: (active_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} - '3': {name: constant.string.i3wm_config} - '4': {name: constant.string.i3wm_config} - '5': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.language.i3wm_config} + '4': {name: constant.language.i3wm_config} + '5': {name: constant.language.i3wm_config} # inactive_workspace - name: inactive_workspace match: (inactive_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} - '3': {name: constant.string.i3wm_config} - '4': {name: constant.string.i3wm_config} - '5': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.language.i3wm_config} + '4': {name: constant.language.i3wm_config} + '5': {name: constant.language.i3wm_config} -# statusline -- name: statusline - match: (statusline)\s*(#\w{6}) +# urgent_workspace +- name: urgent_workspace + match: (urgent_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.language.i3wm_config} + '4': {name: constant.language.i3wm_config} + '5': {name: constant.language.i3wm_config} -# exec [--no-startup-id] command -- name: exec - match: (exec)\s*(\-\-no-startup-id)?\s*(.*) +# Chapter 6, List of commands + +- name: bindcode + match: (bindcode)\s*(--release)?\s*(\d*) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.language.i3wm_config} - '3': {name: constant.string.i3wm_config} + '3': {name: constant.numeric.i3wm_config} -- name: font_pango - match: (font\ pango\:)\s*([ \w]*) +- name: bindsym + match: (bindsym)\s*(--release)?\s*([$\w\+]*) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: meta.scope.variable.other.i3wm_config} -- name: font - match: (font)\s*([-\w]*) +# split +- name: split + match: (split)\s*(vertical|horizontal|v|h) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} -# force_xinerama -- name: force_xinerama - match: (force_xinerama)\s*(no|yes) +# layout +- name: layout + match: (layout)\s*(default|tabbed|stacking|split v|split h) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.language.i3wm_config} -# floating_modifier -- name: floating_modifier - match: (floating_modifier)\s*(\$\w*) +# layout toggle [split|all] +- name: layout_toggle + match: (layout toggle)\s*(split|all)? captures: '1': {name: keyword.other.i3wm_config} - '2': {name: meta.scope.variable.other.i3wm_config} + '2': {name: constant.language.i3wm_config} -- name: client_focused - match: (client.focused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) +# floating toggle +- name: floating_toggle + match: (floating toggle) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} - '3': {name: constant.string.i3wm_config} - '4': {name: constant.string.i3wm_config} - '5': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} -- name: client_focused_inactive - match: (client\.focused\_inactive)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) +# focus +# focus +- name: focus + match: (focus)\s*(left|right|down|up|l|r|d|u|parent|child|floating|tiling|mode_toggle) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} - '3': {name: constant.string.i3wm_config} - '4': {name: constant.string.i3wm_config} - '5': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} -- name: client_unfocused - match: (client\.unfocused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) +# focus output <|output> +- name: focus_output + match: (focus output)\s*(left|right|down|up|l|r|d|u|(?:[-\w]*)) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.string.i3wm_config} - '3': {name: constant.string.i3wm_config} - '4': {name: constant.string.i3wm_config} - '5': {name: constant.string.i3wm_config} + '2': {name: constant.language.i3wm_config} -# colors { -# background #073642 -# statusline #eee8d5 -# focused_workspace #cb4b16 #cb4b16 #eee8d5 -# active_workspace #cb4b16 #cb4b16 #eee8d5 -# inactive_workspace #b58900 #b58900 #eee8d5 -# } -- name: colors - match: (colors)\s*(.*) +# move [ px] +- name: move + match: (move)\s*(left|right|down|up|l|r|d|u)(?:\s*(-?\d*)\s*(px)\s*(?:(-?\d*)\s*(px))?)? captures: '1': {name: keyword.other.i3wm_config} - '2': {name: meta.scope.block.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.numeric.i3wm_config} + '4': {name: constant.language.i3wm_config} + '5': {name: constant.numeric.i3wm_config} + '6': {name: constant.language.i3wm_config} -# bindcode 214 exec --no-startup-id /home/michael/toggle_beamer.sh -- name: bindcode - match: (bindcode)\s*(--release)?\s*(\d*) +# move [absolute] position [[ px] [ px]|center] +- name: move_abs + match: (move)\s*(absolute)\s*(position)\s*(?:(\d*)\s*(px))?(?:\s*(\d*)\s*(px))?(?:\s*(center)|\s*(?:(\d*) (px))\s*(?:(\d*)\s*(px)))? + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.language.i3wm_config} + '4': {name: constant.numeric.i3wm_config} + '5': {name: constant.language.i3wm_config} + '6': {name: constant.numeric.i3wm_config} + '7': {name: constant.language.i3wm_config} + '8': {name: constant.language.i3wm_config} + '9': {name: constant.numeric.i3wm_config} + '10': {name: constant.language.i3wm_config} + '11': {name: constant.numeric.i3wm_config} + '12': {name: constant.language.i3wm_config} + +# workspace +# workspace back_and_forth +# workspace +# workspace number +- name: workspace + match: (workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# rename workspace to +# rename workspace to +- name: rename_workspace + match: (rename workspace)\s*([:\s\w]*)\s*(to)\s*([:\s\w]*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: keyword.other.i3wm_config} + '4': {name: constant.language.i3wm_config} + '5': {name: constant.language.i3wm_config} + +# NOTE: move__container_or_workspace needs to be defined before move_workspace. +# It needs to be defined first, so that Sublime match 'move workspace to output' +# correctly. If its defined second, the 'output' won't be highlighted currently +# move container to output <|> +# move workspace to output <|> +- name: move__container_or_workspace + match: (move)\s*(workspace|container)\s*(to)\s*(output)\s*(left|right|down|up|[\w]*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: keyword.other.i3wm_config} + '3': {name: keyword.other.i3wm_config} + '4': {name: keyword.other.i3wm_config} + '5': {name: constant.language.i3wm_config} + +# move workspace +# move workspace back_and_forth +# move workspace +# move workspace number +- name: move_workspace + match: (move)\s*(workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: keyword.other.i3wm_config} + '3': {name: constant.language.i3wm_config} + +# move [window|container] [to] workspace +# move [window|container] [to] workspace number +# move [window|container] [to] workspace +- name: move__window_or_container + match: (move)\s*(window|container)\s*(to)? + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: keyword.other.i3wm_config} + '3': {name: keyword.other.i3wm_config} + +# resize_mode +- name: resize_mode + match: (mode)\s*\"(resize)\"\s*(.*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.stirng.i3wm_config} + +# resize [ px [or ppt]] +- name: resize + match: (resize)\s*(grow|shrink)\s*(width|height)\s*(\d*)\s*(px)\s*(or)\s*(\d*)\s*(ppt) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.language.i3wm_config} + '4': {name: constant.numeric.i3wm_config} + '5': {name: constant.language.i3wm_config} + '6': {name: constant.language.i3wm_config} + '7': {name: constant.numeric.i3wm_config} + '8': {name: constant.language.i3wm_config} + +# resize_mode_default +- name: resize_mode_default + match: (mode)\s*\"(default)\" + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.stirng.i3wm_config} + +#[class="class"] focus +#[title="title"] focus +- name: focus + match: \[(.*)\]\s*(focus) + captures: + '1': {name: constant.string.i3wm_config} + '2': {name: keyword.other.i3wm_config} + +- name: mark_identifier + match: (unmark|mark)\s*(.*) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# border +- name: border + match: (border)\s*(normal|none|(?:(\d*)\s*pixel)) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + +# shmlog +# shmlog +- name: shmlog + match: (shmlog)\s*(?:(on|off|toggle)|(\d*)) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.numeric.i3wm_config} -# bindsym $mod+1 workspace 1 -- name: bindsym - match: (bindsym)\s*(--release)?\s*([$\w\+]*) +# debuglog +- name: shmlog + match: (debuglog)\s*(on|off|toggle) captures: '1': {name: keyword.other.i3wm_config} '2': {name: constant.language.i3wm_config} - '3': {name: meta.scope.variable.other.i3wm_config} + '3': {name: constant.numeric.i3wm_config} + +# reload +- name: reload + match: (reload) + captures: + '1': {name: keyword.other.i3wm_config} +# restart +- name: restart + match: (restart) + captures: + '1': {name: keyword.other.i3wm_config} + +# exit +- name: exit + match: (exit) + captures: + '1': {name: keyword.other.i3wm_config} + +# move scratchpad +- name: move_scratchpad + match: (move)\s*(scratchpad) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: keyword.other.i3wm_config} + +# scratchpad show +- name: scratchpad_show + match: (scratchpad)\s*(show) + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: keyword.other.i3wm_config} + +# bar_hidden_state +- name: bar_hidden_state + match: (bar hidden_state)\s*(show|hide|toggle)\s*(.*)? + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.language.i3wm_config} + +# bar mode dock|hide|invisible|toggle [bar_id] +- name: bar_mode + match: (mode)\s*(dock|hide|invisible|toggle)\s*(.*)? + captures: + '1': {name: keyword.other.i3wm_config} + '2': {name: constant.language.i3wm_config} + '3': {name: constant.language.i3wm_config} diff --git a/Syntax/i3wm_config.tmLanguage b/Syntax/i3wm_config.tmLanguage index 62072d3..fbb0c9c 100644 --- a/Syntax/i3wm_config.tmLanguage +++ b/Syntax/i3wm_config.tmLanguage @@ -38,9 +38,9 @@ name - set + font_pango match - (set)\s*(\$\w*)\s*(\w*) + (font\ pango\:)\s*([- ,\w]*) captures 1 @@ -49,11 +49,6 @@ keyword.other.i3wm_config 2 - - name - meta.scope.variable.other.i3wm_config - - 3 name constant.language.i3wm_config @@ -62,9 +57,9 @@ name - ipc_socket + font match - (ipc-socket)\s*(.*) + (font)\s*([-\w]*) captures 1 @@ -75,15 +70,15 @@ 2 name - constant.string.i3wm_config + constant.language.i3wm_config name - reload + fullscreen match - (reload)\s*(.*) + (fullscreen) captures 1 @@ -100,9 +95,9 @@ name - restart + floating_modifier match - (restart)\s*(.*) + (floating_modifier)\s*(\$?\w*) captures 1 @@ -113,15 +108,15 @@ 2 name - constant.string.i3wm_config + meta.scope.variable.other.i3wm_config name - layout + floating_minimum_size match - (layout)\s*(default|tabbed|stacking|split v|split h) + (floating_minimum_size)\s*(-?\d*)\s*(x)\s*(-?\d*) captures 1 @@ -132,15 +127,25 @@ 2 name - constant.language.i3wm_config + constant.numeric.i3wm_config + + 3 + + name + keyword.other.i3wm_config + + 4 + + name + constant.numeric.i3wm_config name - layout_toggle + floating_maximum_size match - (layout toggle)\s*(split|all) + (floating_maximum_size)\s*(-?\d*)\s*(x)\s*(-?\d*) captures 1 @@ -151,15 +156,25 @@ 2 name - constant.language.i3wm_config + constant.numeric.i3wm_config + + 3 + + name + keyword.other.i3wm_config + + 4 + + name + constant.numeric.i3wm_config name - split + default_orientation match - (split)\s*(vertical|horizontal|v|h) + (default_orientation)\s*(vertical|horizontal|v|h|auto|a) captures 1 @@ -176,9 +191,9 @@ name - rename_workspace + workspace_layout match - (rename workspace)\s*(\w*)\s*(to)\s*(\w*) + (workspace_layout)\s*(default|stacking|tabbed|d|s|t) captures 1 @@ -191,28 +206,13 @@ name constant.language.i3wm_config - 3 - - name - keyword.other.i3wm_config - - 4 - - name - constant.language.i3wm_config - - 5 - - name - constant.language.i3wm_config - name - workspace + new_window_or_float match - (workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) + (new_(?:window|float))\s*(normal|none|(?:\d*pixel\s\d*)) captures 1 @@ -229,9 +229,9 @@ name - move__container_or_workspace + hide_edge_borders match - (move)\s*(workspace|container)\s*(to)\s*(output)\s*(left|right|down|up|[\w]*) + (hide_edge_borders)\s*(vertical|horizontal|none|both|v|h|n|b) captures 1 @@ -240,21 +240,6 @@ keyword.other.i3wm_config 2 - - name - keyword.other.i3wm_config - - 3 - - name - keyword.other.i3wm_config - - 4 - - name - keyword.other.i3wm_config - - 5 name constant.language.i3wm_config @@ -263,9 +248,9 @@ name - move_workspace + for_window match - (move)\s*(workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) + (for_window)\s*\[(\w*)=([\"\w\s\:\~\/\$]*\])\s* captures 1 @@ -276,20 +261,20 @@ 2 name - keyword.other.i3wm_config + constant.language.i3wm_config 3 name - constant.language.i3wm_config + constant.string.i3wm_config name - move__window_or_container + set match - (move)\s*(window|container)\s*(to)? + (set)\s*(\$\w*)\s*(\w*) captures 1 @@ -300,20 +285,20 @@ 2 name - keyword.other.i3wm_config + meta.scope.variable.other.i3wm_config 3 name - keyword.other.i3wm_config + constant.language.i3wm_config name - move_scratchpad + assign match - (move)\s*(scratchpad) + (assign)\s*\[(\w*)=(.*)\]\s*(→)?\s*([\w\d]*) captures 1 @@ -324,48 +309,30 @@ 2 name - keyword.other.i3wm_config + constant.language.i3wm_config - - - - name - scratchpad_show - match - (scratchpad)\s*(show) - captures - - 1 + 3 name - keyword.other.i3wm_config + constant.string.i3wm_config - 2 + 4 name - keyword.other.i3wm_config + keyword.operator.i3wm_config - - - - name - bar - match - (?:^ *|\G *)(bar) - captures - - 1 + 5 name - keyword.other.i3wm_config + constant.language.i3wm_config name - position + exec_always match - (position)\s*(.*) + (exec_always)\s*(\-\-no-startup-id)?\s*(.*) captures 1 @@ -374,6 +341,11 @@ keyword.other.i3wm_config 2 + + name + constant.language.i3wm_config + + 3 name constant.string.i3wm_config @@ -382,9 +354,9 @@ name - status_command + exec match - (status_command)\s*(.*) + (exec)\s*(\-\-no-startup-id)?\s*(.*) captures 1 @@ -393,6 +365,11 @@ keyword.other.i3wm_config 2 + + name + constant.language.i3wm_config + + 3 name constant.string.i3wm_config @@ -401,9 +378,9 @@ name - tray_output + client_focused match - (tray_output)\s*(\w*) + (client.focused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures 1 @@ -416,21 +393,17 @@ name constant.string.i3wm_config - - - - name - background - match - (background)\s*(#\w{6}) - captures - - 1 + 3 name - keyword.other.i3wm_config + constant.string.i3wm_config - 2 + 4 + + name + constant.string.i3wm_config + + 5 name constant.string.i3wm_config @@ -439,9 +412,9 @@ name - focused_workspace + client_focused_inactive match - (focused_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + (client\.focused\_inactive)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures 1 @@ -473,9 +446,9 @@ name - active_workspace + client_unfocused match - (active_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + (client\.unfocused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures 1 @@ -507,9 +480,9 @@ name - inactive_workspace + client_urgent match - (inactive_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + (client\.urgent)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures 1 @@ -541,9 +514,9 @@ name - statusline + ipc_socket match - (statusline)\s*(#\w{6}) + (ipc-socket)\s*(.*) captures 1 @@ -560,9 +533,9 @@ name - exec + focus_follows_mouse match - (exec)\s*(\-\-no-startup-id)?\s*(.*) + (focus_follows_mouse)\s*(yes|no|y|n) captures 1 @@ -575,18 +548,13 @@ name constant.language.i3wm_config - 3 - - name - constant.string.i3wm_config - name - font_pango + popup_during_fullscreen match - (font\ pango\:)\s*([ \w]*) + (popup_during_fullscreen)\s*(smart|ignore|leave_fullscreen) captures 1 @@ -597,15 +565,15 @@ 2 name - constant.string.i3wm_config + constant.language.i3wm_config name - font + force_focus_wrapping match - (font)\s*([-\w]*) + (force_focus_wrapping)\s*(yes|no|y|n) captures 1 @@ -616,7 +584,7 @@ 2 name - constant.string.i3wm_config + constant.language.i3wm_config @@ -641,9 +609,9 @@ name - floating_modifier + force_xinerama match - (floating_modifier)\s*(\$\w*) + (force_xinerama)\s*(yes|no|y|n) captures 1 @@ -654,15 +622,15 @@ 2 name - meta.scope.variable.other.i3wm_config + constant.language.i3wm_config name - client_focused + workspace_auto_back_and_forth match - (client.focused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + (workspace_auto_back_and_forth)\s*(yes|no|y|n) captures 1 @@ -673,30 +641,15 @@ 2 name - constant.string.i3wm_config - - 3 - - name - constant.string.i3wm_config - - 4 - - name - constant.string.i3wm_config - - 5 - - name - constant.string.i3wm_config + constant.language.i3wm_config name - client_focused_inactive + force_display_urgency_hint match - (client\.focused\_inactive)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + (force_display_urgency_hint)\s*(\d*)\s*ms captures 1 @@ -707,30 +660,29 @@ 2 name - constant.string.i3wm_config - - 3 - - name - constant.string.i3wm_config - - 4 - - name - constant.string.i3wm_config + constant.numeric.i3wm_config - 5 + + + + name + bar + match + (?:^ *|\G *)(bar) + captures + + 1 name - constant.string.i3wm_config + keyword.other.i3wm_config name - client_unfocused + i3bar_command match - (client\.unfocused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + (i3bar_command)\s*(.*) captures 1 @@ -741,30 +693,909 @@ 2 name - constant.string.i3wm_config + constant.language.i3wm_config - 3 - - name - constant.string.i3wm_config + + + + name + status_command + match + (status_command)\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + modifier + match + (modifier)\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + hidden_state + match + (hidden_state)\s*(show|hide) + captures + + 1 + + name + keyword.control.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + mode + match + (mode)\s*(dock|hide|invisible) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + id + match + (id)\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + position + match + (position)\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + output + match + (output)\s*(\w*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + tray_output + match + (tray_output)\s*(\w*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + workspace_buttons + match + (workspace_buttons)\s*(yes|no|y|n) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + colors + match + (colors)\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + meta.scope.block.i3wm_config + + + + + name + background + match + (background)\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + statusline + match + (statusline)\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + separator + match + (separator)\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + focused_workspace + match + (focused_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.language.i3wm_config + + 4 + + name + constant.language.i3wm_config + + 5 + + name + constant.language.i3wm_config + + + + + name + active_workspace + match + (active_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.language.i3wm_config + + 4 + + name + constant.language.i3wm_config + + 5 + + name + constant.language.i3wm_config + + + + + name + inactive_workspace + match + (inactive_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.language.i3wm_config + + 4 + + name + constant.language.i3wm_config + + 5 + + name + constant.language.i3wm_config + + + + + name + urgent_workspace + match + (urgent_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.language.i3wm_config + + 4 + + name + constant.language.i3wm_config + + 5 + + name + constant.language.i3wm_config + + + + + name + bindcode + match + (bindcode)\s*(--release)?\s*(\d*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.numeric.i3wm_config + + + + + name + bindsym + match + (bindsym)\s*(--release)?\s*([$\w\+]*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + meta.scope.variable.other.i3wm_config + + + + + name + split + match + (split)\s*(vertical|horizontal|v|h) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + layout + match + (layout)\s*(default|tabbed|stacking|split v|split h) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + layout_toggle + match + (layout toggle)\s*(split|all)? + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + floating_toggle + match + (floating toggle) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + focus + match + (focus)\s*(left|right|down|up|l|r|d|u|parent|child|floating|tiling|mode_toggle) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + focus_output + match + (focus output)\s*(left|right|down|up|l|r|d|u|(?:[-\w]*)) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + move + match + (move)\s*(left|right|down|up|l|r|d|u)(?:\s*(-?\d*)\s*(px)\s*(?:(-?\d*)\s*(px))?)? + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.numeric.i3wm_config + + 4 + + name + constant.language.i3wm_config + + 5 + + name + constant.numeric.i3wm_config + + 6 + + name + constant.language.i3wm_config + + + + + name + move_abs + match + (move)\s*(absolute)\s*(position)\s*(?:(\d*)\s*(px))?(?:\s*(\d*)\s*(px))?(?:\s*(center)|\s*(?:(\d*) (px))\s*(?:(\d*)\s*(px)))? + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.language.i3wm_config + + 4 + + name + constant.numeric.i3wm_config + + 5 + + name + constant.language.i3wm_config + + 6 + + name + constant.numeric.i3wm_config + + 7 + + name + constant.language.i3wm_config + + 8 + + name + constant.language.i3wm_config + + 9 + + name + constant.numeric.i3wm_config + + 10 + + name + constant.language.i3wm_config + + 11 + + name + constant.numeric.i3wm_config + + 12 + + name + constant.language.i3wm_config + + + + + name + workspace + match + (workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + rename_workspace + match + (rename workspace)\s*([:\s\w]*)\s*(to)\s*([:\s\w]*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + keyword.other.i3wm_config + + 4 + + name + constant.language.i3wm_config + + 5 + + name + constant.language.i3wm_config + + + + + name + move__container_or_workspace + match + (move)\s*(workspace|container)\s*(to)\s*(output)\s*(left|right|down|up|[\w]*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + keyword.other.i3wm_config + + 3 + + name + keyword.other.i3wm_config + + 4 + + name + keyword.other.i3wm_config + + 5 + + name + constant.language.i3wm_config + + + + + name + move_workspace + match + (move)\s*(workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + keyword.other.i3wm_config + + 3 + + name + constant.language.i3wm_config + + + + + name + move__window_or_container + match + (move)\s*(window|container)\s*(to)? + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + keyword.other.i3wm_config + + 3 + + name + keyword.other.i3wm_config + + + + + name + resize_mode + match + (mode)\s*\"(resize)\"\s*(.*) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.stirng.i3wm_config + + + + + name + resize + match + (resize)\s*(grow|shrink)\s*(width|height)\s*(\d*)\s*(px)\s*(or)\s*(\d*)\s*(ppt) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.language.i3wm_config 4 name - constant.string.i3wm_config + constant.numeric.i3wm_config 5 + + name + constant.language.i3wm_config + + 6 + + name + constant.language.i3wm_config + + 7 + + name + constant.numeric.i3wm_config + + 8 + + name + constant.language.i3wm_config + + + + + name + resize_mode_default + match + (mode)\s*\"(default)\" + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.stirng.i3wm_config + + + + + name + focus + match + \[(.*)\]\s*(focus) + captures + + 1 name constant.string.i3wm_config + 2 + + name + keyword.other.i3wm_config + name - colors + mark_identifier match - (colors)\s*(.*) + (unmark|mark)\s*(.*) captures 1 @@ -775,15 +1606,34 @@ 2 name - meta.scope.block.i3wm_config + constant.language.i3wm_config name - bindcode + border match - (bindcode)\s*(--release)?\s*(\d*) + (border)\s*(normal|none|(?:(\d*)\s*pixel)) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + + + + name + shmlog + match + (shmlog)\s*(?:(on|off|toggle)|(\d*)) captures 1 @@ -805,9 +1655,9 @@ name - bindsym + shmlog match - (bindsym)\s*(--release)?\s*([$\w\+]*) + (debuglog)\s*(on|off|toggle) captures 1 @@ -823,7 +1673,135 @@ 3 name - meta.scope.variable.other.i3wm_config + constant.numeric.i3wm_config + + + + + name + reload + match + (reload) + captures + + 1 + + name + keyword.other.i3wm_config + + + + + name + restart + match + (restart) + captures + + 1 + + name + keyword.other.i3wm_config + + + + + name + exit + match + (exit) + captures + + 1 + + name + keyword.other.i3wm_config + + + + + name + move_scratchpad + match + (move)\s*(scratchpad) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + keyword.other.i3wm_config + + + + + name + scratchpad_show + match + (scratchpad)\s*(show) + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + keyword.other.i3wm_config + + + + + name + bar_hidden_state + match + (bar hidden_state)\s*(show|hide|toggle)\s*(.*)? + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.language.i3wm_config + + + + + name + bar_mode + match + (mode)\s*(dock|hide|invisible|toggle)\s*(.*)? + captures + + 1 + + name + keyword.other.i3wm_config + + 2 + + name + constant.language.i3wm_config + + 3 + + name + constant.language.i3wm_config diff --git a/config b/config index bb038b8..ba882fe 100644 --- a/config +++ b/config @@ -1,4 +1,4 @@ -# Chapter 4 +# Chapter 4, Configuring i3 # Section 4.1, Comments # Examples: @@ -39,6 +39,7 @@ bindsym --release $mod+x exec --no-startup-id import /tmp/latest-screenshot.png # floating_modifier # Example: floating_modifier Mod1 +floating_modifier $m # 4.5. Constraining floating window size # Syntax: @@ -51,7 +52,7 @@ floating_maximum_size -1 x -1 # 4.6. Orientation for new workspaces #Syntax: #default_orientation -Example: +#Example: default_orientation vertical #4.7. Layout mode for new containers @@ -207,8 +208,8 @@ bar { #Example: bar { mode hide - hidden_state hide modifier Mod1 + hidden_state hide } #5.4. Bar ID @@ -313,8 +314,7 @@ bar { } } -#6. List of commands -#On to Chapter 6. +# Chapter 6, List of commands # command chaining using ; #bindsym $mod+x move container to workspace 3; workspace 3 # scope of command changes using square brackets @@ -383,8 +383,15 @@ bindsym $mod+j move left bindsym $mod+k move down bindsym $mod+l move up bindsym $mod+semicolon move right -bindsym $mod+j move left 20 px +bindsym $mod+j move left 20 px 10 px +bindsym $mod+j move left 20 px 10 px bindsym $mod+c move absolute position center +bindsym $mod+c move absolute position 10 px +bindsym $mod+c move absolute position 10 px 10 px +bindsym $mod+c move absolute position 10 px +bindsym $mod+c move absolute position 10 px 20 px +bindsym $mod+c move absolute position 10 px 20 px center +bindsym $mod+c move absolute position 10 px 30 px 30 px 40 px #6.5. Changing (named) workspaces/moving to workspaces #Syntax: @@ -418,11 +425,10 @@ bindsym $mod+2 workspace 2: www #rename workspace to #rename workspace to #Examples: -i3-msg 'rename workspace 5 to 6' -i3-msg 'rename workspace 1 to "1: www"' -i3-msg 'rename workspace "1: www" to "10: www"' -i3-msg 'rename workspace to "2: mail" -bindsym $mod+r exec i3-input -F 'rename workspace to %s' -P 'New name: ' +rename workspace 5 to 6 +rename workspace 1 to 1: www +rename workspace 1: www to 10: www +workspace to 2: mail #6.6. Moving workspaces to a different screen # see section 6.7 @@ -469,6 +475,8 @@ bindsym $mod+r mode "resize" #[class="class"] focus #[title="title"] focus #Examples: +bindsym $mod+a [title="VIM"] focus +bindsym $mod+a [class="urxvt"] focus bindsym $mod+a [class="urxvt" title="VIM"] focus #6.10. VIM-like marks (mark/goto) From bffa177bd626c483e857dc7c0978146bf854139b Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Mon, 25 Nov 2013 21:05:54 -0500 Subject: [PATCH 5/8] Added match for criteria --- Syntax/i3wm_config.YAML-tmLanguage | 17 ++++++++--------- Syntax/i3wm_config.tmLanguage | 21 +++++++++++++++------ 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/Syntax/i3wm_config.YAML-tmLanguage b/Syntax/i3wm_config.YAML-tmLanguage index 87b8d0d..e863bea 100644 --- a/Syntax/i3wm_config.YAML-tmLanguage +++ b/Syntax/i3wm_config.YAML-tmLanguage @@ -5,12 +5,14 @@ scopeName: source.i3wm_config fileTypes: [i3/config, config] uuid: bb9ebd33-1b88-4310-acef-41720bcac38f -# ---> #rrggbb -# ---> path_to_file - -# Chapter 4, Configuring i3 patterns: +- name: criteria + match: \[(.*)\] + captures: + '1': {name: constant.string.i3wm_config} + +# Chapter 4, Configuring i3 - name: comment match: ((#).*) captures: @@ -550,13 +552,10 @@ patterns: '1': {name: keyword.other.i3wm_config} '2': {name: constant.stirng.i3wm_config} -#[class="class"] focus -#[title="title"] focus - name: focus - match: \[(.*)\]\s*(focus) + match: (focus) captures: - '1': {name: constant.string.i3wm_config} - '2': {name: keyword.other.i3wm_config} + '1': {name: keyword.other.i3wm_config} - name: mark_identifier match: (unmark|mark)\s*(.*) diff --git a/Syntax/i3wm_config.tmLanguage b/Syntax/i3wm_config.tmLanguage index fbb0c9c..b491fc1 100644 --- a/Syntax/i3wm_config.tmLanguage +++ b/Syntax/i3wm_config.tmLanguage @@ -17,6 +17,20 @@ bb9ebd33-1b88-4310-acef-41720bcac38f patterns + + name + criteria + match + \[(.*)\] + captures + + 1 + + name + constant.string.i3wm_config + + + name comment @@ -1576,15 +1590,10 @@ name focus match - \[(.*)\]\s*(focus) + (focus) captures 1 - - name - constant.string.i3wm_config - - 2 name keyword.other.i3wm_config From 0d09ca1c45c3d9aa6d2bb8171e539a57ed300287 Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Tue, 26 Nov 2013 19:21:43 -0500 Subject: [PATCH 6/8] Updated definition to handle criteria better --- Syntax/i3wm_config.YAML-tmLanguage | 11 ++++------- Syntax/i3wm_config.tmLanguage | 11 +++-------- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/Syntax/i3wm_config.YAML-tmLanguage b/Syntax/i3wm_config.YAML-tmLanguage index e863bea..eb9ef25 100644 --- a/Syntax/i3wm_config.YAML-tmLanguage +++ b/Syntax/i3wm_config.YAML-tmLanguage @@ -107,17 +107,14 @@ patterns: '2': {name: meta.scope.variable.other.i3wm_config} '3': {name: constant.language.i3wm_config} -# [fix] - Multiple criteria isn't parsing correctly - #assign command - name: assign - match: (assign)\s*\[(\w*)=(.*)\]\s*(→)?\s*([\w\d]*) + match: (assign)\s*\[(.*)]\s*(→)?\s*([\w\d]*) captures: '1': {name: keyword.other.i3wm_config} - '2': {name: constant.language.i3wm_config} - '3': {name: constant.string.i3wm_config} - '4': {name: keyword.operator.i3wm_config} - '5': {name: constant.language.i3wm_config} + '2': {name: constant.string.i3wm_config} + '3': {name: keyword.operator.i3wm_config} + '4': {name: constant.language.i3wm_config} # exec_always [--no-startup-id] command - name: exec_always diff --git a/Syntax/i3wm_config.tmLanguage b/Syntax/i3wm_config.tmLanguage index b491fc1..6922fa5 100644 --- a/Syntax/i3wm_config.tmLanguage +++ b/Syntax/i3wm_config.tmLanguage @@ -312,7 +312,7 @@ name assign match - (assign)\s*\[(\w*)=(.*)\]\s*(→)?\s*([\w\d]*) + (assign)\s*\[(.*)]\s*(→)?\s*([\w\d]*) captures 1 @@ -321,21 +321,16 @@ keyword.other.i3wm_config 2 - - name - constant.language.i3wm_config - - 3 name constant.string.i3wm_config - 4 + 3 name keyword.operator.i3wm_config - 5 + 4 name constant.language.i3wm_config From a1fb6dc847c8c10eb58dcd3c67b0e93a7cdb963b Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Thu, 28 Nov 2013 14:35:18 -0500 Subject: [PATCH 7/8] Added missing '#' and changed backgr. to bg --- config | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config b/config index ba882fe..5b91a8f 100644 --- a/config +++ b/config @@ -29,7 +29,7 @@ bindsym $mod+Shift+r restart bindcode 214 exec --no-startup-id /home/michael/toggle_beamer.sh # Simulate ctrl+v upon pressing $mod+x -bindsym --release $mod+x exec --no-startup-id xdotool key --clearmodifiers ctrl+v +bindsym --release $mod+x exec xdotool key --clearmodifiers ctrl+v # Take a screenshot upon pressing $mod+x (select an area) bindsym --release $mod+x exec --no-startup-id import /tmp/latest-screenshot.png @@ -126,7 +126,7 @@ workspace "2: vim" output VGA1 #client.focused, client.focused_inactive, client.unfocused, client.urgent #client.background #Examples (default colors): -# class border backgr. text indicator +# class border bg text indicator client.focused #4c7899 #285577 #ffffff #2e9ef4 client.focused_inactive #333333 #5f676a #ffffff #484e50 client.unfocused #333333 #222222 #888888 #292d2e @@ -484,7 +484,7 @@ bindsym $mod+a [class="urxvt" title="VIM"] focus #mark identifier #[con_mark="identifier"] focus #unmark identifier -Example (in a terminal): +#Example (in a terminal): mark irssi [con_mark="irssi"] focus unmark irssi From 364b72a480dd094cb38876c1f44a34f303a83500 Mon Sep 17 00:00:00 2001 From: Steven Knight Date: Thu, 28 Nov 2013 14:35:55 -0500 Subject: [PATCH 8/8] Changed keyword.other to keyword.control as most color schemes don't implement the scope keyword.other --- Syntax/i3wm_config.YAML-tmLanguage | 172 ++++++++++++++--------------- Syntax/i3wm_config.tmLanguage | 172 ++++++++++++++--------------- 2 files changed, 172 insertions(+), 172 deletions(-) diff --git a/Syntax/i3wm_config.YAML-tmLanguage b/Syntax/i3wm_config.YAML-tmLanguage index eb9ef25..ec89e15 100644 --- a/Syntax/i3wm_config.YAML-tmLanguage +++ b/Syntax/i3wm_config.YAML-tmLanguage @@ -22,80 +22,80 @@ patterns: - name: font_pango match: (font\ pango\:)\s*([- ,\w]*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} - name: font match: (font)\s*([-\w]*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # fullscreen - name: fullscreen match: (fullscreen) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.string.i3wm_config} # floating_modifier - name: floating_modifier match: (floating_modifier)\s*(\$?\w*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: meta.scope.variable.other.i3wm_config} # floating_minimum_size - name: floating_minimum_size match: (floating_minimum_size)\s*(-?\d*)\s*(x)\s*(-?\d*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.numeric.i3wm_config} - '3': {name: keyword.other.i3wm_config} + '3': {name: keyword.control.i3wm_config} '4': {name: constant.numeric.i3wm_config} # floating_maximum_size - name: floating_maximum_size match: (floating_maximum_size)\s*(-?\d*)\s*(x)\s*(-?\d*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.numeric.i3wm_config} - '3': {name: keyword.other.i3wm_config} + '3': {name: keyword.control.i3wm_config} '4': {name: constant.numeric.i3wm_config} # default_orientation - name: default_orientation match: (default_orientation)\s*(vertical|horizontal|v|h|auto|a) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # workspace_layout - name: workspace_layout match: (workspace_layout)\s*(default|stacking|tabbed|d|s|t) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # new_(window|float) - name: new_window_or_float match: (new_(?:window|float))\s*(normal|none|(?:\d*pixel\s\d*)) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} #hide_edge_borders - name: hide_edge_borders match: (hide_edge_borders)\s*(vertical|horizontal|none|both|v|h|n|b) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} #for_window command - name: for_window match: (for_window)\s*\[(\w*)=([\"\w\s\:\~\/\$]*\])\s* captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.string.i3wm_config} @@ -103,7 +103,7 @@ patterns: - name: set match: (set)\s*(\$\w*)\s*(\w*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: meta.scope.variable.other.i3wm_config} '3': {name: constant.language.i3wm_config} @@ -111,7 +111,7 @@ patterns: - name: assign match: (assign)\s*\[(.*)]\s*(→)?\s*([\w\d]*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.string.i3wm_config} '3': {name: keyword.operator.i3wm_config} '4': {name: constant.language.i3wm_config} @@ -120,7 +120,7 @@ patterns: - name: exec_always match: (exec_always)\s*(\-\-no-startup-id)?\s*(.*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.string.i3wm_config} @@ -128,7 +128,7 @@ patterns: - name: exec match: (exec)\s*(\-\-no-startup-id)?\s*(.*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.string.i3wm_config} @@ -136,7 +136,7 @@ patterns: - name: client_focused match: (client.focused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.string.i3wm_config} '3': {name: constant.string.i3wm_config} '4': {name: constant.string.i3wm_config} @@ -146,7 +146,7 @@ patterns: - name: client_focused_inactive match: (client\.focused\_inactive)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.string.i3wm_config} '3': {name: constant.string.i3wm_config} '4': {name: constant.string.i3wm_config} @@ -156,7 +156,7 @@ patterns: - name: client_unfocused match: (client\.unfocused)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.string.i3wm_config} '3': {name: constant.string.i3wm_config} '4': {name: constant.string.i3wm_config} @@ -166,7 +166,7 @@ patterns: - name: client_urgent match: (client\.urgent)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.string.i3wm_config} '3': {name: constant.string.i3wm_config} '4': {name: constant.string.i3wm_config} @@ -176,56 +176,56 @@ patterns: - name: ipc_socket match: (ipc-socket)\s*(.*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.string.i3wm_config} # focus_follows_mouse yes|no - name: focus_follows_mouse match: (focus_follows_mouse)\s*(yes|no|y|n) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # popup_during_fullscreen - name: popup_during_fullscreen match: (popup_during_fullscreen)\s*(smart|ignore|leave_fullscreen) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # force_focus_wrapping yes|no - name: force_focus_wrapping match: (force_focus_wrapping)\s*(yes|no|y|n) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # force_xinerama - name: force_xinerama match: (force_xinerama)\s*(no|yes) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # force_xinerama - name: force_xinerama match: (force_xinerama)\s*(yes|no|y|n) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # workspace_auto_back_and_forth - name: workspace_auto_back_and_forth match: (workspace_auto_back_and_forth)\s*(yes|no|y|n) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # force_display_urgency_hint ms - name: force_display_urgency_hint match: (force_display_urgency_hint)\s*(\d*)\s*ms captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.numeric.i3wm_config} @@ -237,27 +237,27 @@ patterns: - name: bar match: (?:^ *|\G *)(bar) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} # i3bar_command i3status --config ~/.i3/i3status.conf - name: i3bar_command match: (i3bar_command)\s*(.*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # status_command i3status --config ~/.i3/i3status.conf - name: status_command match: (status_command)\s*(.*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # modifier - name: modifier match: (modifier)\s*(.*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # hidden_state @@ -271,42 +271,42 @@ patterns: - name: mode match: (mode)\s*(dock|hide|invisible) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # bar_id - name: id match: (id)\s*(.*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # position - name: position match: (position)\s*(.*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # output - name: output match: (output)\s*(\w*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # tray_output primary - name: tray_output match: (tray_output)\s*(\w*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # workspace_buttons - name: workspace_buttons match: (workspace_buttons)\s*(yes|no|y|n) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # colors { @@ -315,35 +315,35 @@ patterns: - name: colors match: (colors)\s*(.*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: meta.scope.block.i3wm_config} # background - name: background match: (background)\s*(#\w{6}) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # statusline - name: statusline match: (statusline)\s*(#\w{6}) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # separator - name: separator match: (separator)\s*(#\w{6}) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # focused_workspace - name: focused_workspace match: (focused_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.language.i3wm_config} '4': {name: constant.language.i3wm_config} @@ -353,7 +353,7 @@ patterns: - name: active_workspace match: (active_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.language.i3wm_config} '4': {name: constant.language.i3wm_config} @@ -363,7 +363,7 @@ patterns: - name: inactive_workspace match: (inactive_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.language.i3wm_config} '4': {name: constant.language.i3wm_config} @@ -373,7 +373,7 @@ patterns: - name: urgent_workspace match: (urgent_workspace)\s*(#\w{6})\s*(#\w{6})\s*(#\w{6}) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.language.i3wm_config} '4': {name: constant.language.i3wm_config} @@ -384,14 +384,14 @@ patterns: - name: bindcode match: (bindcode)\s*(--release)?\s*(\d*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.numeric.i3wm_config} - name: bindsym match: (bindsym)\s*(--release)?\s*([$\w\+]*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: meta.scope.variable.other.i3wm_config} @@ -399,28 +399,28 @@ patterns: - name: split match: (split)\s*(vertical|horizontal|v|h) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # layout - name: layout match: (layout)\s*(default|tabbed|stacking|split v|split h) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # layout toggle [split|all] - name: layout_toggle match: (layout toggle)\s*(split|all)? captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # floating toggle - name: floating_toggle match: (floating toggle) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # focus @@ -428,21 +428,21 @@ patterns: - name: focus match: (focus)\s*(left|right|down|up|l|r|d|u|parent|child|floating|tiling|mode_toggle) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # focus output <|output> - name: focus_output match: (focus output)\s*(left|right|down|up|l|r|d|u|(?:[-\w]*)) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # move [ px] - name: move match: (move)\s*(left|right|down|up|l|r|d|u)(?:\s*(-?\d*)\s*(px)\s*(?:(-?\d*)\s*(px))?)? captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.numeric.i3wm_config} '4': {name: constant.language.i3wm_config} @@ -453,7 +453,7 @@ patterns: - name: move_abs match: (move)\s*(absolute)\s*(position)\s*(?:(\d*)\s*(px))?(?:\s*(\d*)\s*(px))?(?:\s*(center)|\s*(?:(\d*) (px))\s*(?:(\d*)\s*(px)))? captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.language.i3wm_config} '4': {name: constant.numeric.i3wm_config} @@ -473,7 +473,7 @@ patterns: - name: workspace match: (workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # rename workspace to @@ -481,9 +481,9 @@ patterns: - name: rename_workspace match: (rename workspace)\s*([:\s\w]*)\s*(to)\s*([:\s\w]*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} - '3': {name: keyword.other.i3wm_config} + '3': {name: keyword.control.i3wm_config} '4': {name: constant.language.i3wm_config} '5': {name: constant.language.i3wm_config} @@ -495,10 +495,10 @@ patterns: - name: move__container_or_workspace match: (move)\s*(workspace|container)\s*(to)\s*(output)\s*(left|right|down|up|[\w]*) captures: - '1': {name: keyword.other.i3wm_config} - '2': {name: keyword.other.i3wm_config} - '3': {name: keyword.other.i3wm_config} - '4': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} + '2': {name: keyword.control.i3wm_config} + '3': {name: keyword.control.i3wm_config} + '4': {name: keyword.control.i3wm_config} '5': {name: constant.language.i3wm_config} # move workspace @@ -508,8 +508,8 @@ patterns: - name: move_workspace match: (move)\s*(workspace)\s*(next|prev|next_on_output|prev_on_output|back_and_forth|(?:\w)*|(?:\d*\s*\w*)) captures: - '1': {name: keyword.other.i3wm_config} - '2': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} + '2': {name: keyword.control.i3wm_config} '3': {name: constant.language.i3wm_config} # move [window|container] [to] workspace @@ -518,22 +518,22 @@ patterns: - name: move__window_or_container match: (move)\s*(window|container)\s*(to)? captures: - '1': {name: keyword.other.i3wm_config} - '2': {name: keyword.other.i3wm_config} - '3': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} + '2': {name: keyword.control.i3wm_config} + '3': {name: keyword.control.i3wm_config} # resize_mode - name: resize_mode match: (mode)\s*\"(resize)\"\s*(.*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.stirng.i3wm_config} # resize [ px [or ppt]] - name: resize match: (resize)\s*(grow|shrink)\s*(width|height)\s*(\d*)\s*(px)\s*(or)\s*(\d*)\s*(ppt) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.language.i3wm_config} '4': {name: constant.numeric.i3wm_config} @@ -546,25 +546,25 @@ patterns: - name: resize_mode_default match: (mode)\s*\"(default)\" captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.stirng.i3wm_config} - name: focus match: (focus) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} - name: mark_identifier match: (unmark|mark)\s*(.*) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # border - name: border match: (border)\s*(normal|none|(?:(\d*)\s*pixel)) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} # shmlog @@ -572,7 +572,7 @@ patterns: - name: shmlog match: (shmlog)\s*(?:(on|off|toggle)|(\d*)) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.numeric.i3wm_config} @@ -580,7 +580,7 @@ patterns: - name: shmlog match: (debuglog)\s*(on|off|toggle) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.numeric.i3wm_config} @@ -588,39 +588,39 @@ patterns: - name: reload match: (reload) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} # restart - name: restart match: (restart) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} # exit - name: exit match: (exit) captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} # move scratchpad - name: move_scratchpad match: (move)\s*(scratchpad) captures: - '1': {name: keyword.other.i3wm_config} - '2': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} + '2': {name: keyword.control.i3wm_config} # scratchpad show - name: scratchpad_show match: (scratchpad)\s*(show) captures: - '1': {name: keyword.other.i3wm_config} - '2': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} + '2': {name: keyword.control.i3wm_config} # bar_hidden_state - name: bar_hidden_state match: (bar hidden_state)\s*(show|hide|toggle)\s*(.*)? captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.language.i3wm_config} @@ -628,6 +628,6 @@ patterns: - name: bar_mode match: (mode)\s*(dock|hide|invisible|toggle)\s*(.*)? captures: - '1': {name: keyword.other.i3wm_config} + '1': {name: keyword.control.i3wm_config} '2': {name: constant.language.i3wm_config} '3': {name: constant.language.i3wm_config} diff --git a/Syntax/i3wm_config.tmLanguage b/Syntax/i3wm_config.tmLanguage index 6922fa5..49dc1ba 100644 --- a/Syntax/i3wm_config.tmLanguage +++ b/Syntax/i3wm_config.tmLanguage @@ -60,7 +60,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -79,7 +79,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -98,7 +98,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -117,7 +117,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -136,7 +136,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -146,7 +146,7 @@ 3 name - keyword.other.i3wm_config + keyword.control.i3wm_config 4 @@ -165,7 +165,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -175,7 +175,7 @@ 3 name - keyword.other.i3wm_config + keyword.control.i3wm_config 4 @@ -194,7 +194,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -213,7 +213,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -232,7 +232,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -251,7 +251,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -270,7 +270,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -294,7 +294,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -318,7 +318,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -347,7 +347,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -371,7 +371,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -395,7 +395,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -429,7 +429,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -463,7 +463,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -497,7 +497,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -531,7 +531,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -550,7 +550,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -569,7 +569,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -588,7 +588,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -607,7 +607,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -626,7 +626,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -645,7 +645,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -664,7 +664,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -683,7 +683,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config @@ -697,7 +697,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -716,7 +716,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -735,7 +735,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -773,7 +773,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -792,7 +792,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -811,7 +811,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -830,7 +830,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -849,7 +849,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -868,7 +868,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -887,7 +887,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -906,7 +906,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -925,7 +925,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -944,7 +944,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -963,7 +963,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -997,7 +997,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1031,7 +1031,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1065,7 +1065,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1099,7 +1099,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1123,7 +1123,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1147,7 +1147,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1166,7 +1166,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1185,7 +1185,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1204,7 +1204,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1223,7 +1223,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1242,7 +1242,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1261,7 +1261,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1300,7 +1300,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1369,7 +1369,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1388,7 +1388,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1398,7 +1398,7 @@ 3 name - keyword.other.i3wm_config + keyword.control.i3wm_config 4 @@ -1422,22 +1422,22 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 name - keyword.other.i3wm_config + keyword.control.i3wm_config 3 name - keyword.other.i3wm_config + keyword.control.i3wm_config 4 name - keyword.other.i3wm_config + keyword.control.i3wm_config 5 @@ -1456,12 +1456,12 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 name - keyword.other.i3wm_config + keyword.control.i3wm_config 3 @@ -1480,17 +1480,17 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 name - keyword.other.i3wm_config + keyword.control.i3wm_config 3 name - keyword.other.i3wm_config + keyword.control.i3wm_config @@ -1504,7 +1504,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1523,7 +1523,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1572,7 +1572,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1591,7 +1591,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config @@ -1605,7 +1605,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1624,7 +1624,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1643,7 +1643,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1667,7 +1667,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1691,7 +1691,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config @@ -1705,7 +1705,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config @@ -1719,7 +1719,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config @@ -1733,12 +1733,12 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 name - keyword.other.i3wm_config + keyword.control.i3wm_config @@ -1752,12 +1752,12 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 name - keyword.other.i3wm_config + keyword.control.i3wm_config @@ -1771,7 +1771,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2 @@ -1795,7 +1795,7 @@ 1 name - keyword.other.i3wm_config + keyword.control.i3wm_config 2