From 0f8146b2120e2d747575f75831037a978d83435b Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Sun, 19 Mar 2023 18:26:21 -0700 Subject: [PATCH] docs: shift from return {} style to config.something style Nudge new users towards using this style: ```lua local config = {} config.color_scheme = 'Batman' return config ``` and surface how to write lua modules closer to the main section on config files. In that lua modules section, nudge towards using a convention similar to that of the plugin spec described in this commit: e4ae8a844d8feaa43e1de34c5cc8b4f07ce525dd --- ci/generate-docs.py | 4 +- docs/config/appearance.md | 416 +- docs/config/default-keys.md | 4 +- docs/config/files.md | 121 +- docs/config/font-shaping.md | 39 +- docs/config/fonts.md | 22 +- docs/config/key-tables.md | 127 +- docs/config/keyboard-concepts.md | 10 +- docs/config/keys.md | 78 +- docs/config/launch.md | 65 +- docs/config/lua/ExecDomain.md | 105 +- docs/config/lua/PaneInformation.md | 6 +- docs/config/lua/SshDomain.md | 112 +- docs/config/lua/TlsDomainClient.md | 108 +- docs/config/lua/TlsDomainServer.md | 44 +- docs/config/lua/WslDomain.md | 42 +- docs/config/lua/config/animation_fps.md | 8 +- .../lua/config/automatically_reload_config.md | 4 +- docs/config/lua/config/background.md | 134 +- .../bypass_mouse_reporting_modifiers.md | 6 +- docs/config/lua/config/check_for_updates.md | 6 +- docs/config/lua/config/clean_exit_codes.md | 4 +- docs/config/lua/config/cursor_blink_rate.md | 4 +- docs/config/lua/config/daemon_options.md | 10 +- docs/config/lua/config/debug_key_events.md | 4 +- .../config/lua/config/default_cursor_style.md | 4 +- docs/config/lua/config/default_domain.md | 4 +- .../lua/config/default_gui_startup_args.md | 4 +- docs/config/lua/config/default_prog.md | 4 +- docs/config/lua/config/enable_scroll_bar.md | 4 +- docs/config/lua/config/enable_wayland.md | 10 +- docs/config/lua/config/exit_behavior.md | 10 +- docs/config/lua/config/font_dirs.md | 16 +- docs/config/lua/config/font_rules.md | 150 +- docs/config/lua/config/foreground_text_hsb.md | 12 +- docs/config/lua/config/freetype_load_flags.md | 8 +- .../lua/config/freetype_render_target.md | 6 +- .../config/hide_mouse_cursor_when_typing.md | 4 +- docs/config/lua/config/hyperlink_rules.md | 82 +- .../lua/config/ime_preedit_rendering.md | 4 +- docs/config/lua/config/index.markdown | 5 + docs/config/lua/config/launch_menu.md | 42 +- docs/config/lua/config/mux_env_remove.md | 10 +- .../lua/config/quick_select_patterns.md | 10 +- .../lua/config/selection_word_boundary.md | 4 +- .../config/show_new_tab_button_in_tab_bar.md | 10 +- .../config/lua/config/show_tabs_in_tab_bar.md | 10 +- docs/config/lua/config/show_update_window.md | 4 +- ..._close_confirmation_for_processes_named.md | 42 +- docs/config/lua/config/tab_bar_style.md | 46 +- docs/config/lua/config/tab_max_width.md | 4 +- docs/config/lua/config/term.md | 14 +- docs/config/lua/config/text_blink_rate.md | 4 +- .../lua/config/text_blink_rate_rapid.md | 4 +- .../lua/config/treat_left_ctrlalt_as_altgr.md | 4 +- docs/config/lua/config/use_ime.md | 4 +- docs/config/lua/config/visual_bell.md | 28 +- .../lua/config/webgpu_preferred_adapter.md | 42 +- .../lua/config/window_background_gradient.md | 146 +- .../lua/config/window_close_confirmation.md | 4 +- docs/config/lua/config/window_frame.md | 44 +- docs/config/lua/config/window_padding.md | 24 +- docs/config/lua/config/xim_im_name.md | 4 +- docs/config/lua/general.md | 53 +- docs/config/lua/gui-events/gui-startup.md | 9 +- .../keyassignment/ActivateCommandPalette.md | 12 +- .../lua/keyassignment/ActivateCopyMode.md | 6 +- .../lua/keyassignment/ActivateLastTab.md | 16 +- .../lua/keyassignment/ActivatePaneByIndex.md | 13 +- .../keyassignment/ActivatePaneDirection.md | 44 +- docs/config/lua/keyassignment/ActivateTab.md | 11 +- .../lua/keyassignment/ActivateTabRelative.md | 11 +- .../ActivateTabRelativeNoWrap.md | 10 +- .../lua/keyassignment/ActivateWindow.md | 9 +- .../keyassignment/ActivateWindowRelative.md | 10 +- .../ActivateWindowRelativeNoWrap.md | 24 +- .../lua/keyassignment/AdjustPaneSize.md | 38 +- docs/config/lua/keyassignment/AttachDomain.md | 24 +- docs/config/lua/keyassignment/CharSelect.md | 25 +- .../lua/keyassignment/ClearScrollback.md | 50 +- .../lua/keyassignment/ClearSelection.md | 34 +- .../lua/keyassignment/CloseCurrentPane.md | 14 +- .../lua/keyassignment/CloseCurrentTab.md | 12 +- .../lua/keyassignment/CompleteSelection.md | 22 +- ...ompleteSelectionOrOpenLinkAtMouseCursor.md | 18 +- docs/config/lua/keyassignment/Copy.md | 7 +- docs/config/lua/keyassignment/CopyTo.md | 14 +- .../lua/keyassignment/DecreaseFontSize.md | 8 +- docs/config/lua/keyassignment/DetachDomain.md | 38 +- .../keyassignment/DisableDefaultAssignment.md | 18 +- .../ExtendSelectionToMouseCursor.md | 14 +- docs/config/lua/keyassignment/Hide.md | 8 +- .../lua/keyassignment/HideApplication.md | 8 +- .../lua/keyassignment/IncreaseFontSize.md | 8 +- docs/config/lua/keyassignment/MoveTab.md | 10 +- .../lua/keyassignment/MoveTabRelative.md | 9 +- docs/config/lua/keyassignment/Multiple.md | 19 +- docs/config/lua/keyassignment/Nop.md | 10 +- .../keyassignment/OpenLinkAtMouseCursor.md | 16 +- docs/config/lua/keyassignment/PaneSelect.md | 40 +- docs/config/lua/keyassignment/Paste.md | 26 +- docs/config/lua/keyassignment/PasteFrom.md | 14 +- .../keyassignment/PastePrimarySelection.md | 20 +- docs/config/lua/keyassignment/QuickSelect.md | 6 +- .../lua/keyassignment/QuickSelectArgs.md | 44 +- .../lua/keyassignment/QuitApplication.md | 6 +- .../lua/keyassignment/ReloadConfiguration.md | 14 +- .../keyassignment/ResetFontAndWindowSize.md | 14 +- .../config/lua/keyassignment/ResetFontSize.md | 8 +- docs/config/lua/keyassignment/RotatePanes.md | 15 +- .../ScrollByCurrentEventWheelDelta.md | 23 +- docs/config/lua/keyassignment/ScrollByLine.md | 9 +- docs/config/lua/keyassignment/ScrollByPage.md | 19 +- .../lua/keyassignment/ScrollToPrompt.md | 9 +- docs/config/lua/keyassignment/Search.md | 41 +- .../keyassignment/SelectTextAtMouseCursor.md | 14 +- docs/config/lua/keyassignment/SendKey.md | 29 +- docs/config/lua/keyassignment/SendString.md | 21 +- .../lua/keyassignment/ShowDebugOverlay.md | 10 +- docs/config/lua/keyassignment/ShowLauncher.md | 8 +- .../lua/keyassignment/ShowLauncherArgs.md | 14 +- .../lua/keyassignment/ShowTabNavigator.md | 8 +- .../lua/keyassignment/SpawnCommandInNewTab.md | 18 +- .../keyassignment/SpawnCommandInNewWindow.md | 18 +- docs/config/lua/keyassignment/SpawnTab.md | 35 +- docs/config/lua/keyassignment/SpawnWindow.md | 8 +- .../lua/keyassignment/SplitHorizontal.md | 34 +- docs/config/lua/keyassignment/SplitPane.md | 22 +- .../config/lua/keyassignment/SplitVertical.md | 34 +- .../lua/keyassignment/StartWindowDrag.md | 24 +- .../lua/keyassignment/SwitchToWorkspace.md | 57 +- .../keyassignment/SwitchWorkspaceRelative.md | 16 +- .../lua/keyassignment/ToggleFullScreen.md | 13 +- .../lua/keyassignment/TogglePaneZoomState.md | 14 +- docs/config/lua/wezterm/nerdfonts.md | 8446 ++++++++--------- docs/config/mouse.md | 118 +- docs/style.css | 2 +- termwiz/examples/gennerdfonts.rs | 2 +- 138 files changed, 5922 insertions(+), 6317 deletions(-) diff --git a/ci/generate-docs.py b/ci/generate-docs.py index 65034a7f8..029f7ac22 100644 --- a/ci/generate-docs.py +++ b/ci/generate-docs.py @@ -307,9 +307,7 @@ function load_scheme_player(ident) {{ idx.write( f""" ```lua -return {{ - color_scheme = "{title}", -}} +config.color_scheme = "{title}" ``` """ diff --git a/docs/config/appearance.md b/docs/config/appearance.md index 107d82098..224601bb4 100644 --- a/docs/config/appearance.md +++ b/docs/config/appearance.md @@ -9,9 +9,12 @@ WezTerm ships with over 700 color schemes available from You can select a color scheme with a line like this: ```lua -return { - color_scheme = 'Batman', -} +local wezterm = require 'wezterm' +local config = {} + +config.color_scheme = 'Batman' + +return config ``` You can find a list of available color schemes and screenshots @@ -49,84 +52,87 @@ you can use `#RRGGBB` to specify a color code using the usual hex notation; eg: `#000000` is equivalent to `black`: ```lua -return { - colors = { - -- The default text color - foreground = 'silver', - -- The default background color - background = 'black', +local wezterm = require 'wezterm' +local config = {} - -- Overrides the cell background color when the current cell is occupied by the - -- cursor and the cursor style is set to Block - cursor_bg = '#52ad70', - -- Overrides the text color when the current cell is occupied by the cursor - cursor_fg = 'black', - -- Specifies the border color of the cursor when the cursor style is set to Block, - -- or the color of the vertical or horizontal bar when the cursor style is set to - -- Bar or Underline. - cursor_border = '#52ad70', +config.colors = { + -- The default text color + foreground = 'silver', + -- The default background color + background = 'black', - -- the foreground color of selected text - selection_fg = 'black', - -- the background color of selected text - selection_bg = '#fffacd', + -- Overrides the cell background color when the current cell is occupied by the + -- cursor and the cursor style is set to Block + cursor_bg = '#52ad70', + -- Overrides the text color when the current cell is occupied by the cursor + cursor_fg = 'black', + -- Specifies the border color of the cursor when the cursor style is set to Block, + -- or the color of the vertical or horizontal bar when the cursor style is set to + -- Bar or Underline. + cursor_border = '#52ad70', - -- The color of the scrollbar "thumb"; the portion that represents the current viewport - scrollbar_thumb = '#222222', + -- the foreground color of selected text + selection_fg = 'black', + -- the background color of selected text + selection_bg = '#fffacd', - -- The color of the split lines between panes - split = '#444444', + -- The color of the scrollbar "thumb"; the portion that represents the current viewport + scrollbar_thumb = '#222222', - ansi = { - 'black', - 'maroon', - 'green', - 'olive', - 'navy', - 'purple', - 'teal', - 'silver', - }, - brights = { - 'grey', - 'red', - 'lime', - 'yellow', - 'blue', - 'fuchsia', - 'aqua', - 'white', - }, + -- The color of the split lines between panes + split = '#444444', - -- Arbitrary colors of the palette in the range from 16 to 255 - indexed = { [136] = '#af8700' }, - - -- Since: 20220319-142410-0fcdea07 - -- When the IME, a dead key or a leader key are being processed and are effectively - -- holding input pending the result of input composition, change the cursor - -- to this color to give a visual cue about the compose state. - compose_cursor = 'orange', - - -- Colors for copy_mode and quick_select - -- available since: 20220807-113146-c2fee766 - -- In copy_mode, the color of the active text is: - -- 1. copy_mode_active_highlight_* if additional text was selected using the mouse - -- 2. selection_* otherwise - copy_mode_active_highlight_bg = { Color = '#000000' }, - -- use `AnsiColor` to specify one of the ansi color palette values - -- (index 0-15) using one of the names "Black", "Maroon", "Green", - -- "Olive", "Navy", "Purple", "Teal", "Silver", "Grey", "Red", "Lime", - -- "Yellow", "Blue", "Fuchsia", "Aqua" or "White". - copy_mode_active_highlight_fg = { AnsiColor = 'Black' }, - copy_mode_inactive_highlight_bg = { Color = '#52ad70' }, - copy_mode_inactive_highlight_fg = { AnsiColor = 'White' }, - - quick_select_label_bg = { Color = 'peru' }, - quick_select_label_fg = { Color = '#ffffff' }, - quick_select_match_bg = { AnsiColor = 'Navy' }, - quick_select_match_fg = { Color = '#ffffff' }, + ansi = { + 'black', + 'maroon', + 'green', + 'olive', + 'navy', + 'purple', + 'teal', + 'silver', }, + brights = { + 'grey', + 'red', + 'lime', + 'yellow', + 'blue', + 'fuchsia', + 'aqua', + 'white', + }, + + -- Arbitrary colors of the palette in the range from 16 to 255 + indexed = { [136] = '#af8700' }, + + -- Since: 20220319-142410-0fcdea07 + -- When the IME, a dead key or a leader key are being processed and are effectively + -- holding input pending the result of input composition, change the cursor + -- to this color to give a visual cue about the compose state. + compose_cursor = 'orange', + + -- Colors for copy_mode and quick_select + -- available since: 20220807-113146-c2fee766 + -- In copy_mode, the color of the active text is: + -- 1. copy_mode_active_highlight_* if additional text was selected using the mouse + -- 2. selection_* otherwise + copy_mode_active_highlight_bg = { Color = '#000000' }, + -- use `AnsiColor` to specify one of the ansi color palette values + -- (index 0-15) using one of the names "Black", "Maroon", "Green", + -- "Olive", "Navy", "Purple", "Teal", "Silver", "Grey", "Red", "Lime", + -- "Yellow", "Blue", "Fuchsia", "Aqua" or "White". + copy_mode_active_highlight_fg = { AnsiColor = 'Black' }, + copy_mode_inactive_highlight_bg = { Color = '#52ad70' }, + copy_mode_inactive_highlight_fg = { AnsiColor = 'White' }, + + quick_select_label_bg = { Color = 'peru' }, + quick_select_label_fg = { Color = '#ffffff' }, + quick_select_match_bg = { AnsiColor = 'Navy' }, + quick_select_match_fg = { Color = '#ffffff' }, } + +return config ``` *Since: 20220101-133340-7edc5b5a* @@ -134,16 +140,14 @@ return { You may specify colors in the HSL color space, if you prefer that over RGB, by using: ```lua -return { - colors = { - -- the first number is the hue measured in degrees with a range - -- of 0-360. - -- The second number is the saturation measured in percentage with - -- a range of 0-100. - -- The third number is the lightness measured in percentage with - -- a range of 0-100. - foreground = 'hsl:235 100 50', - }, +config.colors = { + -- the first number is the hue measured in degrees with a range + -- of 0-360. + -- The second number is the saturation measured in percentage with + -- a range of 0-100. + -- The third number is the lightness measured in percentage with + -- a range of 0-100. + foreground = 'hsl:235 100 50', } ``` @@ -174,16 +178,14 @@ The alpha value is ignored except when used with `selection_fg` and `selection_bg`: ```lua -return { - colors = { - -- Make the selection text color fully transparent. - -- When fully transparent, the current text color will be used. - selection_fg = 'none', - -- Set the selection background color with alpha. - -- When selection_bg is transparent, it will be alpha blended over - -- the current cell background color, rather than replace it - selection_bg = 'rgba(50% 50% 50% 50%)', - }, +config.colors = { + -- Make the selection text color fully transparent. + -- When fully transparent, the current text color will be used. + selection_fg = 'none', + -- Set the selection background color with alpha. + -- When selection_bg is transparent, it will be alpha blended over + -- the current cell background color, rather than replace it + selection_bg = 'rgba(50% 50% 50% 50%)', } ``` @@ -201,16 +203,14 @@ All of the settings available from the `colors` section are available to use in the `color_schemes` sections. ```lua -return { - color_scheme = 'Red Scheme', +config.color_scheme = 'Red Scheme' - color_schemes = { - ['Red Scheme'] = { - background = 'red', - }, - ['Blue Scheme'] = { - background = 'blue', - }, +config.color_schemes = { + ['Red Scheme'] = { + background = 'red', + }, + ['Blue Scheme'] = { + background = 'blue', }, } ``` @@ -236,9 +236,7 @@ will need to instruct wezterm where to look for your scheme files; the `color_scheme_dirs` setting specifies a list of directories to be searched: ```lua -return { - color_scheme_dirs = { '/some/path/to/my/color/schemes' }, -} +config.color_scheme_dirs = { '/some/path/to/my/color/schemes' } ``` Color scheme names that are defined in files in your `color_scheme_dirs` list @@ -253,14 +251,14 @@ of the color scheme repo contains shell scripts that can change the color scheme immediately on the fly. This can be used in your own scripts to alter the terminal appearance programmatically: -```bash +```console $ git clone https://github.com/mbadolato/iTerm2-Color-Schemes.git $ cd iTerm2-Color-Schemes/dynamic-colors $ for scheme in *.sh ; do ; echo $scheme ; \ bash "$scheme" ; ../tools/screenshotTable.sh; sleep 0.5; done ``` - + ### Tab Bar Appearance & Colors @@ -285,36 +283,32 @@ details. The following options affect the fancy tab bar: ```lua -local wezterm = require 'wezterm' +config.window_frame = { + -- The font used in the tab bar. + -- Roboto Bold is the default; this font is bundled + -- with wezterm. + -- Whatever font is selected here, it will have the + -- main font setting appended to it to pick up any + -- fallback fonts you may have used there. + font = wezterm.font { family = 'Roboto', weight = 'Bold' }, -return { - window_frame = { - -- The font used in the tab bar. - -- Roboto Bold is the default; this font is bundled - -- with wezterm. - -- Whatever font is selected here, it will have the - -- main font setting appended to it to pick up any - -- fallback fonts you may have used there. - font = wezterm.font { family = 'Roboto', weight = 'Bold' }, + -- The size of the font in the tab bar. + -- Default to 10. on Windows but 12.0 on other systems + font_size = 12.0, - -- The size of the font in the tab bar. - -- Default to 10. on Windows but 12.0 on other systems - font_size = 12.0, + -- The overall background color of the tab bar when + -- the window is focused + active_titlebar_bg = '#333333', - -- The overall background color of the tab bar when - -- the window is focused - active_titlebar_bg = '#333333', + -- The overall background color of the tab bar when + -- the window is not focused + inactive_titlebar_bg = '#333333', +} - -- The overall background color of the tab bar when - -- the window is not focused - inactive_titlebar_bg = '#333333', - }, - - colors = { - tab_bar = { - -- The color of the inactive tab bar edge/divider - inactive_tab_edge = '#575757', - }, +window.colors = { + tab_bar = { + -- The color of the inactive tab bar edge/divider + inactive_tab_edge = '#575757', }, } ``` @@ -327,78 +321,76 @@ to the items displayed in the tab bar. The following options control the appearance of the tab bar: ```lua -return { - colors = { - tab_bar = { - -- The color of the strip that goes along the top of the window - -- (does not apply when fancy tab bar is in use) - background = '#0b0022', +config.colors = { + tab_bar = { + -- The color of the strip that goes along the top of the window + -- (does not apply when fancy tab bar is in use) + background = '#0b0022', - -- The active tab is the one that has focus in the window - active_tab = { - -- The color of the background area for the tab - bg_color = '#2b2042', - -- The color of the text for the tab - fg_color = '#c0c0c0', + -- The active tab is the one that has focus in the window + active_tab = { + -- The color of the background area for the tab + bg_color = '#2b2042', + -- The color of the text for the tab + fg_color = '#c0c0c0', - -- Specify whether you want "Half", "Normal" or "Bold" intensity for the - -- label shown for this tab. - -- The default is "Normal" - intensity = 'Normal', + -- Specify whether you want "Half", "Normal" or "Bold" intensity for the + -- label shown for this tab. + -- The default is "Normal" + intensity = 'Normal', - -- Specify whether you want "None", "Single" or "Double" underline for - -- label shown for this tab. - -- The default is "None" - underline = 'None', + -- Specify whether you want "None", "Single" or "Double" underline for + -- label shown for this tab. + -- The default is "None" + underline = 'None', - -- Specify whether you want the text to be italic (true) or not (false) - -- for this tab. The default is false. - italic = false, + -- Specify whether you want the text to be italic (true) or not (false) + -- for this tab. The default is false. + italic = false, - -- Specify whether you want the text to be rendered with strikethrough (true) - -- or not for this tab. The default is false. - strikethrough = false, - }, + -- Specify whether you want the text to be rendered with strikethrough (true) + -- or not for this tab. The default is false. + strikethrough = false, + }, - -- Inactive tabs are the tabs that do not have focus - inactive_tab = { - bg_color = '#1b1032', - fg_color = '#808080', + -- Inactive tabs are the tabs that do not have focus + inactive_tab = { + bg_color = '#1b1032', + fg_color = '#808080', - -- The same options that were listed under the `active_tab` section above - -- can also be used for `inactive_tab`. - }, + -- The same options that were listed under the `active_tab` section above + -- can also be used for `inactive_tab`. + }, - -- You can configure some alternate styling when the mouse pointer - -- moves over inactive tabs - inactive_tab_hover = { - bg_color = '#3b3052', - fg_color = '#909090', - italic = true, + -- You can configure some alternate styling when the mouse pointer + -- moves over inactive tabs + inactive_tab_hover = { + bg_color = '#3b3052', + fg_color = '#909090', + italic = true, - -- The same options that were listed under the `active_tab` section above - -- can also be used for `inactive_tab_hover`. - }, + -- The same options that were listed under the `active_tab` section above + -- can also be used for `inactive_tab_hover`. + }, - -- The new tab button that let you create new tabs - new_tab = { - bg_color = '#1b1032', - fg_color = '#808080', + -- The new tab button that let you create new tabs + new_tab = { + bg_color = '#1b1032', + fg_color = '#808080', - -- The same options that were listed under the `active_tab` section above - -- can also be used for `new_tab`. - }, + -- The same options that were listed under the `active_tab` section above + -- can also be used for `new_tab`. + }, - -- You can configure some alternate styling when the mouse pointer - -- moves over the new tab button - new_tab_hover = { - bg_color = '#3b3052', - fg_color = '#909090', - italic = true, + -- You can configure some alternate styling when the mouse pointer + -- moves over the new tab button + new_tab_hover = { + bg_color = '#3b3052', + fg_color = '#909090', + italic = true, - -- The same options that were listed under the `active_tab` section above - -- can also be used for `new_tab_hover`. - }, + -- The same options that were listed under the `active_tab` section above + -- can also be used for `new_tab_hover`. }, }, } @@ -424,11 +416,9 @@ In this example, inactive panes will be slightly de-saturated and dimmed; this is the default configuration: ```lua -return { - inactive_pane_hsb = { - saturation = 0.9, - brightness = 0.8, - }, +config.inactive_pane_hsb = { + saturation = 0.9, + brightness = 0.8, } ``` @@ -458,9 +448,7 @@ reduce it by half, and 2.0 will double the value. You can attach an image to the background of the wezterm window: ```lua -return { - window_background_image = '/path/to/wallpaper.jpg', -} +config.window_background_image = '/path/to/wallpaper.jpg' ``` If the path is a relative path then it will be expanded relative @@ -478,20 +466,18 @@ You can optionally transform the background image by specifying a hue, saturation, brightness multiplier: ```lua -return { - window_background_image = '/path/to/wallpaper.jpg', +config.window_background_image = '/path/to/wallpaper.jpg' - window_background_image_hsb = { - -- Darken the background image by reducing it to 1/3rd - brightness = 0.3, +config.window_background_image_hsb = { + -- Darken the background image by reducing it to 1/3rd + brightness = 0.3, - -- You can adjust the hue by scaling its value. - -- a multiplier of 1.0 leaves the value unchanged. - hue = 1.0, + -- You can adjust the hue by scaling its value. + -- a multiplier of 1.0 leaves the value unchanged. + hue = 1.0, - -- You can adjust the saturation also. - saturation = 1.0, - }, + -- You can adjust the saturation also. + saturation = 1.0, } ``` @@ -533,9 +519,7 @@ Setting this to a value other than the default `1.0` may impact render performance. ```lua -return { - window_background_opacity = 1.0, -} +config.window_background_opacity = 1.0 ``` ## Text Background Opacity @@ -556,8 +540,6 @@ The range of values permitted are `0.0` (completely translucent) through to `1.0` (completely opaque). ```lua -return { - text_background_opacity = 0.3, -} +config.text_background_opacity = 0.3 ``` diff --git a/docs/config/default-keys.md b/docs/config/default-keys.md index 8ceb5ab93..9cc632b60 100644 --- a/docs/config/default-keys.md +++ b/docs/config/default-keys.md @@ -85,9 +85,7 @@ disable all of them with this configuration; if you chose to do this, you must explicitly register every binding. ```lua -return { - disable_default_key_bindings = true, -} +config.disable_default_key_bindings = true ``` !!! tip diff --git a/docs/config/files.md b/docs/config/files.md index 15983c217..f76f322d5 100644 --- a/docs/config/files.md +++ b/docs/config/files.md @@ -1,3 +1,31 @@ + +## Quick Start + +Create a file named `wezterm.lua` in your home directory, with the following +contents: + +```lua +-- Pull in the wezterm API +local wezterm = require 'wezterm' + +-- This table will hold the configuration. +local config = {} + +-- In newer versions of wezterm, use the config_builder which will +-- help provide clearer error messages +if wezterm.config_builder then + config = wezterm.config_builder() +end + +-- This is where you actually apply your config choices + +-- For example, changing the color scheme: +config.color_scheme = 'AdventureTime' + +-- and finally, return the configuration to wezterm +return config +``` + ## Configuration Files `wezterm` will look for a [lua](https://www.lua.org/manual/5.3/manual.html) @@ -79,7 +107,8 @@ for more information and examples of how to use that functionality. The `wezterm.lua` configuration file is a lua script which allows for a high degree of flexibility. The script is expected to return a configuration -table, so a basic empty configuration file will look like this: +table, so a basic empty (and rather useless!) configuration file will look like +this: ```lua return {} @@ -89,18 +118,23 @@ Throughout these docs you'll find configuration fragments that demonstrate configuration and that look something like this: ```lua -return { - color_scheme = 'Batman', -} +local wezterm = require 'wezterm' +local config = {} + +config.color_scheme = 'Batman' + +return config ``` and perhaps another one like this: ```lua local wezterm = require 'wezterm' -return { - font = wezterm.font 'JetBrains Mono', -} +local config = {} + +config.font = wezterm.font 'JetBrains Mono' + +return config ``` If you wanted to use both of these in the same file, you would merge them together @@ -108,12 +142,77 @@ like this: ```lua local wezterm = require 'wezterm' -return { - font = wezterm.font 'JetBrains Mono', - color_scheme = 'Batman', -} +local config = {} + +config.font = wezterm.font 'JetBrains Mono' +config.color_scheme = 'Batman' + +return config ``` +For the sake of brevity in these docs, individual snippets may be shown as +just the config assignments: + +```lua +config.color_scheme = 'Batman' +``` + +## Making your own Lua Modules + +If you'd like to break apart your configuration into multiple files, you'll +be interested in this information. + +The Lua `package.path` is configured with the following paths in this order: + +* On Windows: a `wezterm_modules` dir in the same directory as `wezterm.exe`. This is for thumb drive mode, and is not recommended to be used otherwise. +* `~/.config/wezterm` +* `~/.wezterm` +* A system specific set of paths which may (or may not!) find locally installed lua modules + +That means that if you wanted to break your config up into a `helpers.lua` file +you would place it in `~/.config/wezterm/helpers.lua` with contents like this: + +```lua +-- I am helpers.lua and I should live in ~/.config/wezterm/helpers.lua + +local wezterm = require 'wezterm' + +-- This is the module table that we will export +local module = {} + +-- This function is private to this module and is not visible +-- outside. +local function private_helper() + wezterm.log_error 'hello!' +end + +-- define a function in the module table. +-- Only functions defined in `module` will be exported to +-- code that imports this module. +-- The suggested convention for making modules that update +-- the config is for them to export an `apply_to_config` +-- function that accepts the config object, like this: +function module.apply_to_config(config) + private_helper() + + config.color_scheme = 'Batman' +end + +-- return our module table +return module +``` + +and then in your `wezterm.lua` +you would use it like this: + +```lua +local helpers = require 'helpers' +local config = {} +helpers.apply_to_config(config) +return config +``` + + ## Configuration Reference Continue browsing this section of the docs for an overview of the commonly diff --git a/docs/config/font-shaping.md b/docs/config/font-shaping.md index 9b9282df7..484cca21e 100644 --- a/docs/config/font-shaping.md +++ b/docs/config/font-shaping.md @@ -20,9 +20,7 @@ If you want to disable ligatures in most fonts, then you may want to use a setting like this: ```lua -return { - harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' }, -} +config.harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' } ``` Some fonts make available extended options via stylistic sets. @@ -33,11 +31,9 @@ it lists available stylistic sets here: and you can set them in wezterm: ```lua -return { - -- Use this for a zero with a dot rather than a line through it - -- when using the Fira Code font - harfbuzz_features = { 'zero' }, -} +-- Use this for a zero with a dot rather than a line through it +-- when using the Fira Code font +config.harfbuzz_features = { 'zero' } ``` *Since: 20220101-133340-7edc5b5a* @@ -46,12 +42,9 @@ You can specify `harfbuzz_features` on a per-font basis, rather than globally for all fonts: ```lua -local wezterm = require 'wezterm' -return { - font = wezterm.font { - family = 'JetBrains Mono', - harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' }, - }, +config.font = wezterm.font { + family = 'JetBrains Mono', + harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' }, } ``` @@ -59,18 +52,14 @@ and this example disables ligatures for JetBrains Mono, but keeps the default for the other fonts in the fallback: ```lua -local wezterm = require 'wezterm' - -return { - font = wezterm.font_with_fallback { - { - family = 'JetBrains Mono', - weight = 'Medium', - harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' }, - }, - { family = 'Terminus', weight = 'Bold' }, - 'Noto Color Emoji', +config.font = wezterm.font_with_fallback { + { + family = 'JetBrains Mono', + weight = 'Medium', + harfbuzz_features = { 'calt=0', 'clig=0', 'liga=0' }, }, + { family = 'Terminus', weight = 'Bold' }, + 'Noto Color Emoji', } ``` diff --git a/docs/config/fonts.md b/docs/config/fonts.md index d6a4ac1e6..7d5846907 100644 --- a/docs/config/fonts.md +++ b/docs/config/fonts.md @@ -9,14 +9,11 @@ If you wish to use a different font face, then you can use the [wezterm.font](lua/wezterm/font.md) function to specify it: ```lua -local wezterm = require 'wezterm' - -return { - font = wezterm.font 'Fira Code', - -- You can specify some parameters to influence the font selection; - -- for example, this selects a Bold, Italic font variant. - font = wezterm.font('JetBrains Mono', { weight = 'Bold', italic = true }), -} +config.font = wezterm.font 'Fira Code' +-- You can specify some parameters to influence the font selection; +-- for example, this selects a Bold, Italic font variant. +config.font = + wezterm.font('JetBrains Mono', { weight = 'Bold', italic = true }) ``` #### Fallback @@ -35,12 +32,9 @@ monospace font, but it doesn't have glyphs for the asian script that you sometimes work with: ```lua -local wezterm = require 'wezterm' -return { - font = wezterm.font_with_fallback { - 'Fira Code', - 'DengXian', - }, +config.font = wezterm.font_with_fallback { + 'Fira Code', + 'DengXian', } ``` diff --git a/docs/config/key-tables.md b/docs/config/key-tables.md index 9506ed474..8c4965f0f 100644 --- a/docs/config/key-tables.md +++ b/docs/config/key-tables.md @@ -18,6 +18,7 @@ modes, using `r` for resize and `a` for activation: ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -- Show which key table is active in the status area wezterm.on('update-right-status', function(window, pane) @@ -28,75 +29,75 @@ wezterm.on('update-right-status', function(window, pane) window:set_right_status(name or '') end) -return { - leader = { key = 'Space', mods = 'CTRL|SHIFT' }, - keys = { - -- CTRL+SHIFT+Space, followed by 'r' will put us in resize-pane - -- mode until we cancel that mode. - { - key = 'r', - mods = 'LEADER', - action = act.ActivateKeyTable { - name = 'resize_pane', - one_shot = false, - }, - }, - - -- CTRL+SHIFT+Space, followed by 'a' will put us in activate-pane - -- mode until we press some other key or until 1 second (1000ms) - -- of time elapses - { - key = 'a', - mods = 'LEADER', - action = act.ActivateKeyTable { - name = 'activate_pane', - timeout_milliseconds = 1000, - }, +config.leader = { key = 'Space', mods = 'CTRL|SHIFT' } +config.keys = { + -- CTRL+SHIFT+Space, followed by 'r' will put us in resize-pane + -- mode until we cancel that mode. + { + key = 'r', + mods = 'LEADER', + action = act.ActivateKeyTable { + name = 'resize_pane', + one_shot = false, }, }, - key_tables = { - -- Defines the keys that are active in our resize-pane mode. - -- Since we're likely to want to make multiple adjustments, - -- we made the activation one_shot=false. We therefore need - -- to define a key assignment for getting out of this mode. - -- 'resize_pane' here corresponds to the name="resize_pane" in - -- the key assignments above. - resize_pane = { - { key = 'LeftArrow', action = act.AdjustPaneSize { 'Left', 1 } }, - { key = 'h', action = act.AdjustPaneSize { 'Left', 1 } }, - - { key = 'RightArrow', action = act.AdjustPaneSize { 'Right', 1 } }, - { key = 'l', action = act.AdjustPaneSize { 'Right', 1 } }, - - { key = 'UpArrow', action = act.AdjustPaneSize { 'Up', 1 } }, - { key = 'k', action = act.AdjustPaneSize { 'Up', 1 } }, - - { key = 'DownArrow', action = act.AdjustPaneSize { 'Down', 1 } }, - { key = 'j', action = act.AdjustPaneSize { 'Down', 1 } }, - - -- Cancel the mode by pressing escape - { key = 'Escape', action = 'PopKeyTable' }, - }, - - -- Defines the keys that are active in our activate-pane mode. - -- 'activate_pane' here corresponds to the name="activate_pane" in - -- the key assignments above. - activate_pane = { - { key = 'LeftArrow', action = act.ActivatePaneDirection 'Left' }, - { key = 'h', action = act.ActivatePaneDirection 'Left' }, - - { key = 'RightArrow', action = act.ActivatePaneDirection 'Right' }, - { key = 'l', action = act.ActivatePaneDirection 'Right' }, - - { key = 'UpArrow', action = act.ActivatePaneDirection 'Up' }, - { key = 'k', action = act.ActivatePaneDirection 'Up' }, - - { key = 'DownArrow', action = act.ActivatePaneDirection 'Down' }, - { key = 'j', action = act.ActivatePaneDirection 'Down' }, + -- CTRL+SHIFT+Space, followed by 'a' will put us in activate-pane + -- mode until we press some other key or until 1 second (1000ms) + -- of time elapses + { + key = 'a', + mods = 'LEADER', + action = act.ActivateKeyTable { + name = 'activate_pane', + timeout_milliseconds = 1000, }, }, } + +config.key_tables = { + -- Defines the keys that are active in our resize-pane mode. + -- Since we're likely to want to make multiple adjustments, + -- we made the activation one_shot=false. We therefore need + -- to define a key assignment for getting out of this mode. + -- 'resize_pane' here corresponds to the name="resize_pane" in + -- the key assignments above. + resize_pane = { + { key = 'LeftArrow', action = act.AdjustPaneSize { 'Left', 1 } }, + { key = 'h', action = act.AdjustPaneSize { 'Left', 1 } }, + + { key = 'RightArrow', action = act.AdjustPaneSize { 'Right', 1 } }, + { key = 'l', action = act.AdjustPaneSize { 'Right', 1 } }, + + { key = 'UpArrow', action = act.AdjustPaneSize { 'Up', 1 } }, + { key = 'k', action = act.AdjustPaneSize { 'Up', 1 } }, + + { key = 'DownArrow', action = act.AdjustPaneSize { 'Down', 1 } }, + { key = 'j', action = act.AdjustPaneSize { 'Down', 1 } }, + + -- Cancel the mode by pressing escape + { key = 'Escape', action = 'PopKeyTable' }, + }, + + -- Defines the keys that are active in our activate-pane mode. + -- 'activate_pane' here corresponds to the name="activate_pane" in + -- the key assignments above. + activate_pane = { + { key = 'LeftArrow', action = act.ActivatePaneDirection 'Left' }, + { key = 'h', action = act.ActivatePaneDirection 'Left' }, + + { key = 'RightArrow', action = act.ActivatePaneDirection 'Right' }, + { key = 'l', action = act.ActivatePaneDirection 'Right' }, + + { key = 'UpArrow', action = act.ActivatePaneDirection 'Up' }, + { key = 'k', action = act.ActivatePaneDirection 'Up' }, + + { key = 'DownArrow', action = act.ActivatePaneDirection 'Down' }, + { key = 'j', action = act.ActivatePaneDirection 'Down' }, + }, +} + +return config ``` ### Key Table Activation Stack diff --git a/docs/config/keyboard-concepts.md b/docs/config/keyboard-concepts.md index fd197b80e..af372a402 100644 --- a/docs/config/keyboard-concepts.md +++ b/docs/config/keyboard-concepts.md @@ -109,10 +109,8 @@ with no composition effects, while the right `Option` key performs composition You can control this behavior in your configuration: ```lua -return { - send_composed_key_when_left_alt_is_pressed = false, - send_composed_key_when_right_alt_is_pressed = true, -} +config.send_composed_key_when_left_alt_is_pressed = false +config.send_composed_key_when_right_alt_is_pressed = true ``` *since: 20210203-095643-70a364eb* @@ -153,9 +151,7 @@ You can tell WezTerm to disable dead keys by setting this in your configuration file: ```lua -return { - use_dead_keys = false, -} +config.use_dead_keys = false ``` Note that for X11 systems with `use_ime=true`, depending on the configured IME, diff --git a/docs/config/keys.md b/docs/config/keys.md index 303cb1ae3..181ea5333 100644 --- a/docs/config/keys.md +++ b/docs/config/keys.md @@ -5,17 +5,13 @@ The default key table assignments can be overridden or extended using the disable a default assignment like this: ```lua -local wezterm = require 'wezterm' - -return { - keys = { - -- Turn off the default CMD-m Hide action, allowing CMD-m to - -- be potentially recognized and handled by the tab - { - key = 'm', - mods = 'CMD', - action = wezterm.action.DisableDefaultAssignment, - }, +config.keys = { + -- Turn off the default CMD-m Hide action, allowing CMD-m to + -- be potentially recognized and handled by the tab + { + key = 'm', + mods = 'CMD', + action = wezterm.action.DisableDefaultAssignment, }, } ``` @@ -142,23 +138,19 @@ milliseconds). While `LEADER` is active, the `|` key (with no other modifiers) will trigger the current pane to be split. ```lua -local wezterm = require 'wezterm' - -return { - -- timeout_milliseconds defaults to 1000 and can be omitted - leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1000 }, - keys = { - { - key = '|', - mods = 'LEADER|SHIFT', - action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' }, - }, - -- Send "CTRL-A" to the terminal when pressing CTRL-A, CTRL-A - { - key = 'a', - mods = 'LEADER|CTRL', - action = wezterm.action.SendString '\x01', - }, +-- timeout_milliseconds defaults to 1000 and can be omitted +config.leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1000 } +config.keys = { + { + key = '|', + mods = 'LEADER|SHIFT', + action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' }, + }, + -- Send "CTRL-A" to the terminal when pressing CTRL-A, CTRL-A + { + key = 'a', + mods = 'LEADER|CTRL', + action = wezterm.action.SendString '\x01', }, } ``` @@ -174,23 +166,19 @@ uses `CapsLock` as a `LEADER` without it affecting the shift / capital state as long as you have `setxkbmap -option caps:none` configured. ```lua -local wezterm = require 'wezterm' - -return { - -- timeout_milliseconds defaults to 1000 and can be omitted - -- for this example use `setxkbmap -option caps:none` in your terminal. - leader = { key = 'VoidSymbol', mods = '', timeout_milliseconds = 1000 }, - keys = { - { - key = '|', - mods = 'LEADER|SHIFT', - action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' }, - }, - { - key = '-', - mods = 'LEADER', - action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' }, - }, +-- timeout_milliseconds defaults to 1000 and can be omitted +-- for this example use `setxkbmap -option caps:none` in your terminal. +config.leader = { key = 'VoidSymbol', mods = '', timeout_milliseconds = 1000 } +config.keys = { + { + key = '|', + mods = 'LEADER|SHIFT', + action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' }, + }, + { + key = '-', + mods = 'LEADER', + action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' }, }, } ``` diff --git a/docs/config/launch.md b/docs/config/launch.md index 400d810cb..c5d0b8161 100644 --- a/docs/config/launch.md +++ b/docs/config/launch.md @@ -38,10 +38,8 @@ the argument array; the array allows specifying the program and arguments portably: ```lua -return { - -- Spawn a fish shell in login mode - default_prog = { '/usr/local/bin/fish', '-l' }, -} +-- Spawn a fish shell in login mode +config.default_prog = { '/usr/local/bin/fish', '-l' } ``` ## Launching a different program as a one off via the CLI @@ -64,9 +62,7 @@ directory you can do so via the config, CLI, and when using * Setting the [`default_cwd`](lua/config/default_cwd.md) via the config: ```lua - return { - default_cwd = "/some/path", - } + config.default_cwd = "/some/path" ``` * One off program in a specific working directory via the CLI: @@ -108,13 +104,11 @@ The behavior is to take the environment of the `wezterm` process and then set the specified variables for the spawned process. ```lua -return { - set_environment_variables = { - -- This changes the default prompt for cmd.exe to report the - -- current directory using OSC 7, show the current time and - -- the current directory colored in the prompt. - prompt = '$E]7;file://localhost/$P$E\\$E[32m$T$E[0m $E[35m$P$E[36m$_$G$E[0m ', - }, +config.set_environment_variables = { + -- This changes the default prompt for cmd.exe to report the + -- current directory using OSC 7, show the current time and + -- the current directory colored in the prompt. + prompt = '$E]7;file://localhost/$P$E\\$E[32m$T$E[0m $E[35m$P$E[36m$_$G$E[0m ', } ``` @@ -140,30 +134,28 @@ Each entry in `launch_menu` is an instance of a [SpawnCommand](lua/SpawnCommand.md) object. ```lua -return { - launch_menu = { - { - args = { 'top' }, - }, - { - -- Optional label to show in the launcher. If omitted, a label - -- is derived from the `args` - label = 'Bash', - -- The argument array to spawn. If omitted the default program - -- will be used as described in the documentation above - args = { 'bash', '-l' }, +config.launch_menu = { + { + args = { 'top' }, + }, + { + -- Optional label to show in the launcher. If omitted, a label + -- is derived from the `args` + label = 'Bash', + -- The argument array to spawn. If omitted the default program + -- will be used as described in the documentation above + args = { 'bash', '-l' }, - -- You can specify an alternative current working directory; - -- if you don't specify one then a default based on the OSC 7 - -- escape sequence will be used (see the Shell Integration - -- docs), falling back to the home directory. - -- cwd = "/some/path" + -- You can specify an alternative current working directory; + -- if you don't specify one then a default based on the OSC 7 + -- escape sequence will be used (see the Shell Integration + -- docs), falling back to the home directory. + -- cwd = "/some/path" - -- You can override environment variables just for this command - -- by setting this here. It has the same semantics as the main - -- set_environment_variables configuration option described above - -- set_environment_variables = { FOO = "bar" }, - }, + -- You can override environment variables just for this command + -- by setting this here. It has the same semantics as the main + -- set_environment_variables configuration option described above + -- set_environment_variables = { FOO = "bar" }, }, } ``` @@ -175,7 +167,6 @@ menu when running on Windows: ```lua local wezterm = require 'wezterm' - local launch_menu = {} if wezterm.target_triple == 'x86_64-pc-windows-msvc' then diff --git a/docs/config/lua/ExecDomain.md b/docs/config/lua/ExecDomain.md index 666592df9..aa4b88599 100644 --- a/docs/config/lua/ExecDomain.md +++ b/docs/config/lua/ExecDomain.md @@ -78,6 +78,7 @@ that affect the styling of the text. You may wish to use ```lua local wezterm = require 'wezterm' +local config = {} -- Equivalent to POSIX basename(3) -- Given "/foo/bar" returns "bar" @@ -86,61 +87,61 @@ local function basename(s) return string.gsub(s, '(.*[/\\])(.*)', '%2') end -return { - exec_domains = { - -- Defines a domain called "scoped" that will run the requested - -- command inside its own individual systemd scope. - -- This defines a strong boundary for resource control and can - -- help to avoid OOMs in one pane causing other panes to be - -- killed. - wezterm.exec_domain('scoped', function(cmd) - -- The "cmd" parameter is a SpawnCommand object. - -- You can log it to see what's inside: - wezterm.log_info(cmd) +config.exec_domains = { + -- Defines a domain called "scoped" that will run the requested + -- command inside its own individual systemd scope. + -- This defines a strong boundary for resource control and can + -- help to avoid OOMs in one pane causing other panes to be + -- killed. + wezterm.exec_domain('scoped', function(cmd) + -- The "cmd" parameter is a SpawnCommand object. + -- You can log it to see what's inside: + wezterm.log_info(cmd) - -- Synthesize a human understandable scope name that is - -- (reasonably) unique. WEZTERM_PANE is the pane id that - -- will be used for the newly spawned pane. - -- WEZTERM_UNIX_SOCKET is associated with the wezterm - -- process id. - local env = cmd.set_environment_variables - local ident = 'wezterm-pane-' - .. env.WEZTERM_PANE - .. '-on-' - .. basename(env.WEZTERM_UNIX_SOCKET) + -- Synthesize a human understandable scope name that is + -- (reasonably) unique. WEZTERM_PANE is the pane id that + -- will be used for the newly spawned pane. + -- WEZTERM_UNIX_SOCKET is associated with the wezterm + -- process id. + local env = cmd.set_environment_variables + local ident = 'wezterm-pane-' + .. env.WEZTERM_PANE + .. '-on-' + .. basename(env.WEZTERM_UNIX_SOCKET) - -- Generate a new argument array that will launch a - -- program via systemd-run - local wrapped = { - '/usr/bin/systemd-run', - '--user', - '--scope', - '--description=Shell started by wezterm', - '--same-dir', - '--collect', - '--unit=' .. ident, - } + -- Generate a new argument array that will launch a + -- program via systemd-run + local wrapped = { + '/usr/bin/systemd-run', + '--user', + '--scope', + '--description=Shell started by wezterm', + '--same-dir', + '--collect', + '--unit=' .. ident, + } - -- Append the requested command - -- Note that cmd.args may be nil; that indicates that the - -- default program should be used. Here we're using the - -- shell defined by the SHELL environment variable. - for _, arg in ipairs(cmd.args or { os.getenv 'SHELL' }) do - table.insert(wrapped, arg) - end + -- Append the requested command + -- Note that cmd.args may be nil; that indicates that the + -- default program should be used. Here we're using the + -- shell defined by the SHELL environment variable. + for _, arg in ipairs(cmd.args or { os.getenv 'SHELL' }) do + table.insert(wrapped, arg) + end - -- replace the requested argument array with our new one - cmd.args = wrapped + -- replace the requested argument array with our new one + cmd.args = wrapped - -- and return the SpawnCommand that we want to execute - return cmd - end), - }, - - -- Making the domain the default means that every pane/tab/window - -- spawned by wezterm will have its own scope - default_domain = 'scoped', + -- and return the SpawnCommand that we want to execute + return cmd + end), } + +-- Making the domain the default means that every pane/tab/window +-- spawned by wezterm will have its own scope +config.default_domain = 'scoped' + +return config ``` ## Example: docker domains @@ -150,6 +151,7 @@ gist of it is: ```lua local wezterm = require 'wezterm' +local config = {} function docker_list() -- Use wezterm.run_child_process to run @@ -200,9 +202,8 @@ for id, name in pairs(docker_list()) do ) end -return { - exec_domains = exec_domains, -} +config.exec_domains = exec_domains +return config ``` With something like the config above, each time the config is reloaded, the diff --git a/docs/config/lua/PaneInformation.md b/docs/config/lua/PaneInformation.md index 6b93e2236..1fdac93bb 100644 --- a/docs/config/lua/PaneInformation.md +++ b/docs/config/lua/PaneInformation.md @@ -73,6 +73,7 @@ tab in the tab bar when there is unseen output. ```lua local wezterm = require 'wezterm' +local config = {} wezterm.on( 'format-tab-title', @@ -100,7 +101,7 @@ wezterm.on( end ) -return {} +return config ``` *Since: 20220624-141144-bd1b7c5d* @@ -111,6 +112,7 @@ This example shows the domain name of the active pane appended to the tab title: ```lua local wezterm = require 'wezterm' +local config = {} wezterm.on('format-tab-title', function(tab) local pane = tab.active_pane @@ -121,6 +123,6 @@ wezterm.on('format-tab-title', function(tab) return title end) -return {} +return config ``` diff --git a/docs/config/lua/SshDomain.md b/docs/config/lua/SshDomain.md index 4d4e624ca..b51e4da26 100644 --- a/docs/config/lua/SshDomain.md +++ b/docs/config/lua/SshDomain.md @@ -6,36 +6,34 @@ The `SshDomain` struct specifies information about an individual It is a lua object with the following fields: ```lua -return { - ssh_domains = { - { - -- The name of this specific domain. Must be unique amongst - -- all types of domain in the configuration file. - name = 'my.server', +config.ssh_domains = { + { + -- The name of this specific domain. Must be unique amongst + -- all types of domain in the configuration file. + name = 'my.server', - -- identifies the host:port pair of the remote server - -- Can be a DNS name or an IP address with an optional - -- ":port" on the end. - remote_address = '192.168.1.1', + -- identifies the host:port pair of the remote server + -- Can be a DNS name or an IP address with an optional + -- ":port" on the end. + remote_address = '192.168.1.1', - -- Whether agent auth should be disabled. - -- Set to true to disable it. - -- no_agent_auth = false, + -- Whether agent auth should be disabled. + -- Set to true to disable it. + -- no_agent_auth = false, - -- The username to use for authenticating with the remote host - username = 'yourusername', + -- The username to use for authenticating with the remote host + username = 'yourusername', - -- If true, connect to this domain automatically at startup - -- connect_automatically = true, + -- If true, connect to this domain automatically at startup + -- connect_automatically = true, - -- Specify an alternative read timeout - -- timeout = 60, + -- Specify an alternative read timeout + -- timeout = 60, - -- The path to the wezterm binary on the remote host. - -- Primarily useful if it isn't installed in the $PATH - -- that is configure for ssh. - -- remote_wezterm_path = "/home/yourusername/bin/wezterm" - }, + -- The path to the wezterm binary on the remote host. + -- Primarily useful if it isn't installed in the $PATH + -- that is configure for ssh. + -- remote_wezterm_path = "/home/yourusername/bin/wezterm" }, } ``` @@ -45,14 +43,12 @@ return { You may now specify a table with ssh config overrides: ```lua -return { - ssh_domains = { - { - name = 'my.server', - remote_address = '192.168.1.1', - ssh_option = { - identityfile = '/path/to/id_rsa.pub', - }, +config.ssh_domains = { + { + name = 'my.server', + remote_address = '192.168.1.1', + ssh_option = { + identityfile = '/path/to/id_rsa.pub', }, }, } @@ -85,31 +81,29 @@ panes and tabs. The following values are recognized for `assume_shell`: `env -c DIR ENV1=VAL1 ENV2=VAL2 $SHELL`. ```lua -return { - ssh_domains = { - { - name = 'my.server', - remote_address = '192.168.1.1', - multiplexing = 'None', +config.ssh_domains = { + { + name = 'my.server', + remote_address = '192.168.1.1', + multiplexing = 'None', - -- When multiplexing == "None", default_prog can be used - -- to specify the default program to run in new tabs/panes. - -- Due to the way that ssh works, you cannot specify default_cwd, - -- but you could instead change your default_prog to put you - -- in a specific directory. - default_prog = { 'fish' }, + -- When multiplexing == "None", default_prog can be used + -- to specify the default program to run in new tabs/panes. + -- Due to the way that ssh works, you cannot specify default_cwd, + -- but you could instead change your default_prog to put you + -- in a specific directory. + default_prog = { 'fish' }, - -- assume that we can use syntax like: - -- "env -C /some/where $SHELL" - -- using whatever the default command shell is on this - -- remote host, so that shell integration will respect - -- the current directory on the remote host. - assume_shell = 'Posix', - }, + -- assume that we can use syntax like: + -- "env -C /some/where $SHELL" + -- using whatever the default command shell is on this + -- remote host, so that shell integration will respect + -- the current directory on the remote host. + assume_shell = 'Posix', }, - - default_domain = 'my.server', } + +config.default_domain = 'my.server' ``` You may now specify the round-trip latency threshold for enabling predictive @@ -120,13 +114,11 @@ result of that prediction locally without waiting, hence hiding latency to the user. This option only applies when `multiplexing = "WezTerm"`. ```lua -return { - ssh_domains = { - { - name = 'my.server', - remote_address = '192.168.1.1', - local_echo_threshold_ms = 10, - }, +config.ssh_domains = { + { + name = 'my.server', + remote_address = '192.168.1.1', + local_echo_threshold_ms = 10, }, } ``` diff --git a/docs/config/lua/TlsDomainClient.md b/docs/config/lua/TlsDomainClient.md index 2a68f4d6f..619855b2b 100644 --- a/docs/config/lua/TlsDomainClient.md +++ b/docs/config/lua/TlsDomainClient.md @@ -6,66 +6,64 @@ to a [TLS Domain](../../multiplexing.md#tls-domains). It is a lua object with the following fields: ```lua -return { - tls_domains = { - { - -- The name of this specific domain. Must be unique amongst - -- all types of domain in the configuration file. - name = 'server.name', +config.tls_domains = { + { + -- The name of this specific domain. Must be unique amongst + -- all types of domain in the configuration file. + name = 'server.name', - -- If set, use ssh to connect, start the server, and obtain - -- a certificate. - -- The value is "user@host:port", just like "wezterm ssh" accepts. - bootstrap_via_ssh = 'server.hostname', + -- If set, use ssh to connect, start the server, and obtain + -- a certificate. + -- The value is "user@host:port", just like "wezterm ssh" accepts. + bootstrap_via_ssh = 'server.hostname', - -- identifies the host:port pair of the remote server. - remote_address = 'server.hostname:8080', + -- identifies the host:port pair of the remote server. + remote_address = 'server.hostname:8080', - -- the path to an x509 PEM encoded private key file. - -- Omit this if you are using `bootstrap_via_ssh`. - -- pem_private_key = "/some/path/key.pem", + -- the path to an x509 PEM encoded private key file. + -- Omit this if you are using `bootstrap_via_ssh`. + -- pem_private_key = "/some/path/key.pem", - -- the path to an x509 PEM encoded certificate file - -- Omit this if you are using `bootstrap_via_ssh`. - -- pem_cert = "/some/path/cert.pem", + -- the path to an x509 PEM encoded certificate file + -- Omit this if you are using `bootstrap_via_ssh`. + -- pem_cert = "/some/path/cert.pem", - -- the path to an x509 PEM encoded CA chain file - -- Omit this if you are using `bootstrap_via_ssh`. - -- pem_ca = "/some/path/ca.pem", + -- the path to an x509 PEM encoded CA chain file + -- Omit this if you are using `bootstrap_via_ssh`. + -- pem_ca = "/some/path/ca.pem", - -- A set of paths to load additional CA certificates. - -- Each entry can be either the path to a directory or to a PEM encoded - -- CA file. If an entry is a directory, then its contents will be - -- loaded as CA certs and added to the trust store. - -- Omit this if you are using `bootstrap_via_ssh`. - -- pem_root_certs = { "/some/path/ca1.pem", "/some/path/ca2.pem" }, + -- A set of paths to load additional CA certificates. + -- Each entry can be either the path to a directory or to a PEM encoded + -- CA file. If an entry is a directory, then its contents will be + -- loaded as CA certs and added to the trust store. + -- Omit this if you are using `bootstrap_via_ssh`. + -- pem_root_certs = { "/some/path/ca1.pem", "/some/path/ca2.pem" }, - -- explicitly control whether the client checks that the certificate - -- presented by the server matches the hostname portion of - -- `remote_address`. The default is true. This option is made - -- available for troubleshooting purposes and should not be used outside - -- of a controlled environment as it weakens the security of the TLS - -- channel. - -- accept_invalid_hostnames = false, + -- explicitly control whether the client checks that the certificate + -- presented by the server matches the hostname portion of + -- `remote_address`. The default is true. This option is made + -- available for troubleshooting purposes and should not be used outside + -- of a controlled environment as it weakens the security of the TLS + -- channel. + -- accept_invalid_hostnames = false, - -- the hostname string that we expect to match against the common name - -- field in the certificate presented by the server. This defaults to - -- the hostname portion of the `remote_address` configuration and you - -- should not normally need to override this value. - -- expected_cn = "other.name", + -- the hostname string that we expect to match against the common name + -- field in the certificate presented by the server. This defaults to + -- the hostname portion of the `remote_address` configuration and you + -- should not normally need to override this value. + -- expected_cn = "other.name", - -- If true, connect to this domain automatically at startup - -- connect_automatically = false, + -- If true, connect to this domain automatically at startup + -- connect_automatically = false, - -- Specify an alternate read timeout - -- read_timeout = 60, + -- Specify an alternate read timeout + -- read_timeout = 60, - -- Specify an alternate write timeout - -- write_timeout = 60, + -- Specify an alternate write timeout + -- write_timeout = 60, - -- The path to the wezterm binary on the remote host - -- remote_wezterm_path = "/home/myname/bin/wezterm" - }, + -- The path to the wezterm binary on the remote host + -- remote_wezterm_path = "/home/myname/bin/wezterm" }, } ``` @@ -80,14 +78,12 @@ result of that prediction locally without waiting, hence hiding latency to the user. This option only applies when `multiplexing = "WezTerm"`. ```lua -return { - tls_domains = { - { - name = 'server,name', - bootstrap_via_ssh = 'server.hostname', - remote_address = 'server.hostname:8080', - local_echo_threshold_ms = 10, - }, +config.tls_domains = { + { + name = 'server,name', + bootstrap_via_ssh = 'server.hostname', + remote_address = 'server.hostname:8080', + local_echo_threshold_ms = 10, }, } ``` diff --git a/docs/config/lua/TlsDomainServer.md b/docs/config/lua/TlsDomainServer.md index 35a69e3ed..f6f72680f 100644 --- a/docs/config/lua/TlsDomainServer.md +++ b/docs/config/lua/TlsDomainServer.md @@ -6,33 +6,31 @@ the server side of a [TLS Domain](../../multiplexing.md#tls-domains). It is a lua object with the following fields: ```lua -return { - tls_servers = { - { - -- The address:port combination on which the server will listen - -- for client connections - bind_address = 'server.hostname:8080', +config.tls_servers = { + { + -- The address:port combination on which the server will listen + -- for client connections + bind_address = 'server.hostname:8080', - -- the path to an x509 PEM encoded private key file. - -- You can omit this if your tls_client is using bootstrap_via_ssh. - -- pem_private_key = "/path/to/key.pem", + -- the path to an x509 PEM encoded private key file. + -- You can omit this if your tls_client is using bootstrap_via_ssh. + -- pem_private_key = "/path/to/key.pem", - -- the path to an x509 PEM encoded certificate file. - -- You can omit this if your tls_client is using bootstrap_via_ssh. - -- pem_cert = "/path/to/cert.pem", + -- the path to an x509 PEM encoded certificate file. + -- You can omit this if your tls_client is using bootstrap_via_ssh. + -- pem_cert = "/path/to/cert.pem", - -- the path to an x509 PEM encoded CA chain file. - -- You can omit this if your tls_client is using bootstrap_via_ssh. - -- pem_ca = "/path/to/chain.pem", + -- the path to an x509 PEM encoded CA chain file. + -- You can omit this if your tls_client is using bootstrap_via_ssh. + -- pem_ca = "/path/to/chain.pem", - -- A set of paths to load additional CA certificates. - -- Each entry can be either the path to a directory - -- or to a PEM encoded CA file. If an entry is a directory, - -- then its contents will be loaded as CA certs and added - -- to the trust store. - -- You can omit this if your tls_client is using bootstrap_via_ssh. - -- pem_root_certs = { "/some/path/ca1.pem", "/some/path/ca2.pem" }, - }, + -- A set of paths to load additional CA certificates. + -- Each entry can be either the path to a directory + -- or to a PEM encoded CA file. If an entry is a directory, + -- then its contents will be loaded as CA certs and added + -- to the trust store. + -- You can omit this if your tls_client is using bootstrap_via_ssh. + -- pem_root_certs = { "/some/path/ca1.pem", "/some/path/ca2.pem" }, }, } ``` diff --git a/docs/config/lua/WslDomain.md b/docs/config/lua/WslDomain.md index 31b7a7b4d..99c21e9ba 100644 --- a/docs/config/lua/WslDomain.md +++ b/docs/config/lua/WslDomain.md @@ -18,35 +18,33 @@ output from `wsl -l -v` and assigns that as the value of the A `WslDomain` is a lua object with the following fields: ```lua -return { - wsl_domains = { - { - -- The name of this specific domain. Must be unique amonst all types - -- of domain in the configuration file. - name = 'WSL:Ubuntu-18.04', +config.wsl_domains = { + { + -- The name of this specific domain. Must be unique amonst all types + -- of domain in the configuration file. + name = 'WSL:Ubuntu-18.04', - -- The name of the distribution. This identifies the WSL distribution. - -- It must match a valid distribution from your `wsl -l -v` output in - -- order for the domain to be useful. - distribution = 'Ubuntu-18.04', + -- The name of the distribution. This identifies the WSL distribution. + -- It must match a valid distribution from your `wsl -l -v` output in + -- order for the domain to be useful. + distribution = 'Ubuntu-18.04', - -- The username to use when spawning commands in the distribution. - -- If omitted, the default user for that distribution will be used. + -- The username to use when spawning commands in the distribution. + -- If omitted, the default user for that distribution will be used. - -- username = "hunter", + -- username = "hunter", - -- The current working directory to use when spawning commands, if - -- the SpawnCommand doesn't otherwise specify the directory. + -- The current working directory to use when spawning commands, if + -- the SpawnCommand doesn't otherwise specify the directory. - -- default_cwd = "/tmp" + -- default_cwd = "/tmp" - -- The default command to run, if the SpawnCommand doesn't otherwise - -- override it. Note that you may prefer to use `chsh` to set the - -- default shell for your user inside WSL to avoid needing to - -- specify it here + -- The default command to run, if the SpawnCommand doesn't otherwise + -- override it. Note that you may prefer to use `chsh` to set the + -- default shell for your user inside WSL to avoid needing to + -- specify it here - -- default_prog = {"fish"} - }, + -- default_prog = {"fish"} }, } ``` diff --git a/docs/config/lua/config/animation_fps.md b/docs/config/lua/config/animation_fps.md index 07318a928..960cdd01d 100644 --- a/docs/config/lua/config/animation_fps.md +++ b/docs/config/lua/config/animation_fps.md @@ -14,10 +14,8 @@ If you are running with a CPU renderer (eg: you have [front_end](front_end.md) transitions: ```lua -return { - animation_fps = 1, - cursor_blink_ease_in = 'Constant', - cursor_blink_ease_out = 'Constant', -} +config.animation_fps = 1 +config.cursor_blink_ease_in = 'Constant' +config.cursor_blink_ease_out = 'Constant' ``` diff --git a/docs/config/lua/config/automatically_reload_config.md b/docs/config/lua/config/automatically_reload_config.md index ab2f403a2..305b8c6ae 100644 --- a/docs/config/lua/config/automatically_reload_config.md +++ b/docs/config/lua/config/automatically_reload_config.md @@ -10,7 +10,5 @@ with a key bound to the action [ReloadConfiguration](../keyassignment/ReloadConf For example, to disable auto config reload: ```lua -return { - automatically_reload_config = false, -} +config.automatically_reload_config = false ``` diff --git a/docs/config/lua/config/background.md b/docs/config/lua/config/background.md index 62fd053ef..49cc342e6 100644 --- a/docs/config/lua/config/background.md +++ b/docs/config/lua/config/background.md @@ -104,84 +104,82 @@ The video at the top of this page demonstrate this configuration in action. -- for text, so we're going to dim it down to 10% of its normal brightness local dimmer = { brightness = 0.1 } -return { - enable_scroll_bar = true, - min_scroll_bar_height = '2cell', - colors = { - scrollbar_thumb = 'white', +config.enable_scroll_bar = true +config.min_scroll_bar_height = '2cell' +config.colors = { + scrollbar_thumb = 'white', +} +config.background = { + -- This is the deepest/back-most layer. It will be rendered first + { + source = { + File = '/Alien_Ship_bg_vert_images/Backgrounds/spaceship_bg_1.png', + }, + -- The texture tiles vertically but not horizontally. + -- When we repeat it, mirror it so that it appears "more seamless". + -- An alternative to this is to set `width = "100%"` and have + -- it stretch across the display + repeat_x = 'Mirror', + hsb = dimmer, + -- When the viewport scrolls, move this layer 10% of the number of + -- pixels moved by the main viewport. This makes it appear to be + -- further behind the text. + attachment = { Parallax = 0.1 }, }, - background = { - -- This is the deepest/back-most layer. It will be rendered first - { - source = { - File = '/Alien_Ship_bg_vert_images/Backgrounds/spaceship_bg_1.png', - }, - -- The texture tiles vertically but not horizontally. - -- When we repeat it, mirror it so that it appears "more seamless". - -- An alternative to this is to set `width = "100%"` and have - -- it stretch across the display - repeat_x = 'Mirror', - hsb = dimmer, - -- When the viewport scrolls, move this layer 10% of the number of - -- pixels moved by the main viewport. This makes it appear to be - -- further behind the text. - attachment = { Parallax = 0.1 }, + -- Subsequent layers are rendered over the top of each other + { + source = { + File = '/Alien_Ship_bg_vert_images/Overlays/overlay_1_spines.png', }, - -- Subsequent layers are rendered over the top of each other - { - source = { - File = '/Alien_Ship_bg_vert_images/Overlays/overlay_1_spines.png', - }, - width = '100%', - repeat_x = 'NoRepeat', + width = '100%', + repeat_x = 'NoRepeat', - -- position the spins starting at the bottom, and repeating every - -- two screens. - vertical_align = 'Bottom', - repeat_y_size = '200%', - hsb = dimmer, + -- position the spins starting at the bottom, and repeating every + -- two screens. + vertical_align = 'Bottom', + repeat_y_size = '200%', + hsb = dimmer, - -- The parallax factor is higher than the background layer, so this - -- one will appear to be closer when we scroll - attachment = { Parallax = 0.2 }, + -- The parallax factor is higher than the background layer, so this + -- one will appear to be closer when we scroll + attachment = { Parallax = 0.2 }, + }, + { + source = { + File = '/Alien_Ship_bg_vert_images/Overlays/overlay_2_alienball.png', }, - { - source = { - File = '/Alien_Ship_bg_vert_images/Overlays/overlay_2_alienball.png', - }, - width = '100%', - repeat_x = 'NoRepeat', + width = '100%', + repeat_x = 'NoRepeat', - -- start at 10% of the screen and repeat every 2 screens - vertical_offset = '10%', - repeat_y_size = '200%', - hsb = dimmer, - attachment = { Parallax = 0.3 }, + -- start at 10% of the screen and repeat every 2 screens + vertical_offset = '10%', + repeat_y_size = '200%', + hsb = dimmer, + attachment = { Parallax = 0.3 }, + }, + { + source = { + File = '/Alien_Ship_bg_vert_images/Overlays/overlay_3_lobster.png', }, - { - source = { - File = '/Alien_Ship_bg_vert_images/Overlays/overlay_3_lobster.png', - }, - width = '100%', - repeat_x = 'NoRepeat', + width = '100%', + repeat_x = 'NoRepeat', - vertical_offset = '30%', - repeat_y_size = '200%', - hsb = dimmer, - attachment = { Parallax = 0.4 }, + vertical_offset = '30%', + repeat_y_size = '200%', + hsb = dimmer, + attachment = { Parallax = 0.4 }, + }, + { + source = { + File = '/Alien_Ship_bg_vert_images/Overlays/overlay_4_spiderlegs.png', }, - { - source = { - File = '/Alien_Ship_bg_vert_images/Overlays/overlay_4_spiderlegs.png', - }, - width = '100%', - repeat_x = 'NoRepeat', + width = '100%', + repeat_x = 'NoRepeat', - vertical_offset = '50%', - repeat_y_size = '150%', - hsb = dimmer, - attachment = { Parallax = 0.5 }, - }, + vertical_offset = '50%', + repeat_y_size = '150%', + hsb = dimmer, + attachment = { Parallax = 0.5 }, }, } ``` diff --git a/docs/config/lua/config/bypass_mouse_reporting_modifiers.md b/docs/config/lua/config/bypass_mouse_reporting_modifiers.md index 0df27a96e..fcd63dbc1 100644 --- a/docs/config/lua/config/bypass_mouse_reporting_modifiers.md +++ b/docs/config/lua/config/bypass_mouse_reporting_modifiers.md @@ -16,8 +16,6 @@ as though `SHIFT` was not pressed and then match it against the mouse assignments. ```lua -return { - -- Use ALT instead of SHIFT to bypass application mouse reporting - bypass_mouse_reporting_modifiers = 'ALT', -} +-- Use ALT instead of SHIFT to bypass application mouse reporting +config.bypass_mouse_reporting_modifiers = 'ALT' ``` diff --git a/docs/config/lua/config/check_for_updates.md b/docs/config/lua/config/check_for_updates.md index ea5994323..b4dec6605 100644 --- a/docs/config/lua/config/check_for_updates.md +++ b/docs/config/lua/config/check_for_updates.md @@ -13,8 +13,6 @@ Set `check_for_updates` to `false` to disable this completely or set `check_for_updates_interval_seconds` for an alternative update interval. ```lua -return { - check_for_updates = true, - check_for_updates_interval_seconds = 86400, -} +config.check_for_updates = true +config.check_for_updates_interval_seconds = 86400 ``` diff --git a/docs/config/lua/config/clean_exit_codes.md b/docs/config/lua/config/clean_exit_codes.md index cae954dae..6b1b7e2cc 100644 --- a/docs/config/lua/config/clean_exit_codes.md +++ b/docs/config/lua/config/clean_exit_codes.md @@ -15,9 +15,7 @@ with SIGINT, but that bash itself wasn't. In that situation you may wish to set this config to treat `130` as OK: ```lua -return { - clean_exit_codes = { 130 }, -} +config.clean_exit_codes = { 130 } ``` Note that `0` is always treated as a clean exit code and can be omitted diff --git a/docs/config/lua/config/cursor_blink_rate.md b/docs/config/lua/config/cursor_blink_rate.md index 6e0efa3d0..7fb433ee8 100644 --- a/docs/config/lua/config/cursor_blink_rate.md +++ b/docs/config/lua/config/cursor_blink_rate.md @@ -11,9 +11,7 @@ It is recommended to avoid blinking cursors when on battery power, as it is relatively costly to keep re-rendering for the blink! ```lua -return { - cursor_blink_rate = 800, -} +config.cursor_blink_rate = 800 ``` *Since: 20220319-142410-0fcdea07* diff --git a/docs/config/lua/config/daemon_options.md b/docs/config/lua/config/daemon_options.md index fc0256126..829cfc4b9 100644 --- a/docs/config/lua/config/daemon_options.md +++ b/docs/config/lua/config/daemon_options.md @@ -12,11 +12,9 @@ There are three fields supported: * `stderr` - specifies where a log of the stderr stream from the daemon will be placed. The default is `$XDG_RUNTIME_DIR/wezterm/stderr` on X11/Wayland systems, or `$HOME/.local/share/wezterm/stderr`. ```lua -return { - daemon_options = { - stdout = '/some/where/stdout', - stderr = '/some/where/stderr', - pid_file = '/some/where/pid_file', - }, +config.daemon_options = { + stdout = '/some/where/stdout', + stderr = '/some/where/stderr', + pid_file = '/some/where/pid_file', } ``` diff --git a/docs/config/lua/config/debug_key_events.md b/docs/config/lua/config/debug_key_events.md index 23de53a1c..30ad6420e 100644 --- a/docs/config/lua/config/debug_key_events.md +++ b/docs/config/lua/config/debug_key_events.md @@ -8,9 +8,7 @@ This can be helpful in figuring out how keys are being decoded on your system, or for discovering the system-dependent "raw" key code values. ```lua -return { - debug_key_events = true, -} +config.debug_key_events = true ``` Produces logs like the following when typing `ls`: (artificially wrapped diff --git a/docs/config/lua/config/default_cursor_style.md b/docs/config/lua/config/default_cursor_style.md index e478b5ed5..2f77d18a0 100644 --- a/docs/config/lua/config/default_cursor_style.md +++ b/docs/config/lua/config/default_cursor_style.md @@ -11,9 +11,7 @@ Acceptable values are `SteadyBlock`, `BlinkingBlock`, and `BlinkingBar`. ```lua -return { - default_cursor_style = 'SteadyBlock', -} +config.default_cursor_style = 'SteadyBlock' ``` Using a blinking style puts more load on the graphics subsystem. diff --git a/docs/config/lua/config/default_domain.md b/docs/config/lua/config/default_domain.md index 8ebf03325..0ccd10abf 100644 --- a/docs/config/lua/config/default_domain.md +++ b/docs/config/lua/config/default_domain.md @@ -27,9 +27,7 @@ then wezterm will by default create a `WslDomain` with the name `"WSL:Ubuntu-18. and if I set my config like this: ```lua -return { - default_domain = 'WSL:Ubuntu-18.04', -} +config.default_domain = 'WSL:Ubuntu-18.04' ``` then when wezterm starts up, it will open with a shell running inside that Ubuntu diff --git a/docs/config/lua/config/default_gui_startup_args.md b/docs/config/lua/config/default_gui_startup_args.md index a94798333..9c4803acd 100644 --- a/docs/config/lua/config/default_gui_startup_args.md +++ b/docs/config/lua/config/default_gui_startup_args.md @@ -13,9 +13,7 @@ If you know that you always want to use wezterm's ssh client to login to a particular host, then you might consider using this configuration: ```lua -return { - default_gui_startup_args = { 'ssh', 'some-host' }, -} +config.default_gui_startup_args = { 'ssh', 'some-host' } ``` which will cause `wezterm` with no additional subcommand arguments to be diff --git a/docs/config/lua/config/default_prog.md b/docs/config/lua/config/default_prog.md index 2336122b0..c9c34e390 100644 --- a/docs/config/lua/config/default_prog.md +++ b/docs/config/lua/config/default_prog.md @@ -7,9 +7,7 @@ For example, to have `wezterm` always run `top` by default, you'd use this: ```lua -return { - default_prog = { 'top' }, -} +config.default_prog = { 'top' } ``` `default_prog` is implemented as an array where the 0th element diff --git a/docs/config/lua/config/enable_scroll_bar.md b/docs/config/lua/config/enable_scroll_bar.md index 10e146daa..fdd7f6adc 100644 --- a/docs/config/lua/config/enable_scroll_bar.md +++ b/docs/config/lua/config/enable_scroll_bar.md @@ -6,9 +6,7 @@ It will occupy the right window padding space. If right padding is set to 0 then it will be increased to a single cell width. ```lua -return { - enable_scroll_bar = true, -} +config.enable_scroll_bar = true ``` diff --git a/docs/config/lua/config/enable_wayland.md b/docs/config/lua/config/enable_wayland.md index 348409c69..14ad34041 100644 --- a/docs/config/lua/config/enable_wayland.md +++ b/docs/config/lua/config/enable_wayland.md @@ -6,14 +6,10 @@ when starting the gui frontend, and instead use X11. This option is only considered on X11/Wayland systems and has no effect on macOS or Windows. -The default is false. +The default is true. In versions prior to 20220624-141144-bd1b7c5d it was +disabled by default. ```lua -return { - enable_wayland = true, -} +config.enable_wayland = true ``` -*Since: 20220624-141144-bd1b7c5d* - -The default is now `true`. diff --git a/docs/config/lua/config/exit_behavior.md b/docs/config/lua/config/exit_behavior.md index 8040f21eb..358047167 100644 --- a/docs/config/lua/config/exit_behavior.md +++ b/docs/config/lua/config/exit_behavior.md @@ -10,9 +10,7 @@ There are three possible values: * `"CloseOnCleanExit"` - if the shell program exited with a successful status, behave like `"Close"`, otherwise, behave like `"Hold"`. This is the default setting. ```lua -return { - exit_behavior = 'Hold', -} +console.exit_behavior = 'Hold' ``` Note that most unix shells will exit with the status of the last command that @@ -22,9 +20,9 @@ For example, if you interrupt a command and then use `exit` (with no arguments), CTRL-D to send EOF to the shell, the shell will return an unsuccessful exit status. The same thing holds if you were to run: -``` -false -exit +```console +$ false +$ exit ``` With the default `exit_behavior="CloseOnCleanExit"` setting, that will cause diff --git a/docs/config/lua/config/font_dirs.md b/docs/config/lua/config/font_dirs.md index 188784fd1..32a6e3860 100644 --- a/docs/config/lua/config/font_dirs.md +++ b/docs/config/lua/config/font_dirs.md @@ -6,13 +6,11 @@ if you configure the `font_dirs` option, wezterm will load fonts from that set of directories: ```lua -return { - -- This tells wezterm to look first for fonts in the directory named - -- `fonts` that is found alongside your `wezterm.lua` file. - -- As this option is an array, you may list multiple locations if - -- you wish. - font_dirs = { 'fonts' }, -} +-- This tells wezterm to look first for fonts in the directory named +-- `fonts` that is found alongside your `wezterm.lua` file. +-- As this option is an array, you may list multiple locations if +-- you wish. +config.font_dirs = { 'fonts' } ``` wezterm will scan the `font_dirs` to build a database of available fonts. When @@ -27,9 +25,7 @@ systems and don't want to install those fonts on every system that you use, then you can set: ```lua -return { - font_locator = 'ConfigDirsOnly', -} +config.font_locator = 'ConfigDirsOnly' ``` diff --git a/docs/config/lua/config/font_rules.md b/docs/config/lua/config/font_rules.md index 474b5f4f2..1d6a7bd8f 100644 --- a/docs/config/lua/config/font_rules.md +++ b/docs/config/lua/config/font_rules.md @@ -59,66 +59,62 @@ font-weights that are either too bold or too light for the default rules to produce great results, hence this set of rules. ```lua -local wezterm = require 'wezterm' +config.font = wezterm.font_with_fallback 'Operator Mono SSm Lig Medium' +config.font_rules = { + -- For Bold-but-not-italic text, use this relatively bold font, and override + -- its color to a tomato-red color to make bold text really stand out. + { + intensity = 'Bold', + italic = false, + font = wezterm.font_with_fallback( + 'Operator Mono SSm Lig', + -- Override the color specified by the terminal output and force + -- it to be tomato-red. + -- The color value you set here can be any CSS color name or + -- RGB color string. + { foreground = 'tomato' } + ), + }, -return { - font = wezterm.font_with_fallback 'Operator Mono SSm Lig Medium', - font_rules = { - -- For Bold-but-not-italic text, use this relatively bold font, and override - -- its color to a tomato-red color to make bold text really stand out. - { - intensity = 'Bold', - italic = false, - font = wezterm.font_with_fallback( - 'Operator Mono SSm Lig', - -- Override the color specified by the terminal output and force - -- it to be tomato-red. - -- The color value you set here can be any CSS color name or - -- RGB color string. - { foreground = 'tomato' } - ), - }, - - -- Bold-and-italic - { - intensity = 'Bold', + -- Bold-and-italic + { + intensity = 'Bold', + italic = true, + font = wezterm.font_with_fallback { + family = 'Operator Mono SSm Lig', italic = true, - font = wezterm.font_with_fallback { - family = 'Operator Mono SSm Lig', - italic = true, - }, }, + }, - -- normal-intensity-and-italic - { - intensity = 'Normal', + -- normal-intensity-and-italic + { + intensity = 'Normal', + italic = true, + font = wezterm.font_with_fallback { + family = 'Operator Mono SSm Lig', + weight = 'DemiLight', italic = true, - font = wezterm.font_with_fallback { - family = 'Operator Mono SSm Lig', - weight = 'DemiLight', - italic = true, - }, }, + }, - -- half-intensity-and-italic (half-bright or dim); use a lighter weight font - { - intensity = 'Half', + -- half-intensity-and-italic (half-bright or dim); use a lighter weight font + { + intensity = 'Half', + italic = true, + font = wezterm.font_with_fallback { + family = 'Operator Mono SSm Lig', + weight = 'Light', italic = true, - font = wezterm.font_with_fallback { - family = 'Operator Mono SSm Lig', - weight = 'Light', - italic = true, - }, }, + }, - -- half-intensity-and-not-italic - { - intensity = 'Half', - italic = false, - font = wezterm.font_with_fallback { - family = 'Operator Mono SSm Lig', - weight = 'Light', - }, + -- half-intensity-and-not-italic + { + intensity = 'Half', + italic = false, + font = wezterm.font_with_fallback { + family = 'Operator Mono SSm Lig', + weight = 'Light', }, }, } @@ -127,37 +123,33 @@ return { Here's another example combining `FiraCode` with `Victor Mono`, using `Victor Mono` only for italics: ```lua -local wezterm = require 'wezterm' +config.font = wezterm.font { family = 'FiraCode' } -return { - font = wezterm.font { family = 'FiraCode' }, - - font_rules = { - { - intensity = 'Bold', - italic = true, - font = wezterm.font { - family = 'VictorMono', - weight = 'Bold', - style = 'Italic', - }, +config.font_rules = { + { + intensity = 'Bold', + italic = true, + font = wezterm.font { + family = 'VictorMono', + weight = 'Bold', + style = 'Italic', }, - { - italic = true, - intensity = 'Half', - font = wezterm.font { - family = 'VictorMono', - weight = 'DemiBold', - style = 'Italic', - }, + }, + { + italic = true, + intensity = 'Half', + font = wezterm.font { + family = 'VictorMono', + weight = 'DemiBold', + style = 'Italic', }, - { - italic = true, - intensity = 'Normal', - font = wezterm.font { - family = 'VictorMono', - style = 'Italic', - }, + }, + { + italic = true, + intensity = 'Normal', + font = wezterm.font { + family = 'VictorMono', + style = 'Italic', }, }, } @@ -168,7 +160,7 @@ return { You can run `wezterm ls-fonts` to summarize the font rules and the fonts that match them: -```bash +```console $ wezterm ls-fonts Primary font: wezterm.font_with_fallback({ diff --git a/docs/config/lua/config/foreground_text_hsb.md b/docs/config/lua/config/foreground_text_hsb.md index 2fdf6bc3e..8f6b6b27b 100644 --- a/docs/config/lua/config/foreground_text_hsb.md +++ b/docs/config/lua/config/foreground_text_hsb.md @@ -23,13 +23,11 @@ values, so the default of 1.0 preserves the existing component, whilst 0.5 will reduce it by half, and 2.0 will double the value. ```lua -return { - -- This increases color saturation by 50% - foreground_text_hsb = { - hue = 1.0, - saturation = 1.5, - brightness = 1.0, - }, +-- This increases color saturation by 50% +config.foreground_text_hsb = { + hue = 1.0, + saturation = 1.5, + brightness = 1.0, } ``` diff --git a/docs/config/lua/config/freetype_load_flags.md b/docs/config/lua/config/freetype_load_flags.md index 4eefbbadb..ce0e9d81b 100644 --- a/docs/config/lua/config/freetype_load_flags.md +++ b/docs/config/lua/config/freetype_load_flags.md @@ -21,10 +21,8 @@ Available flags are: * `NO_AUTOHINT` - don't use the freetype auto-hinter ```lua -return { - -- You probably don't want to do this, but this demonstrates - -- that the flags can be combined - freetype_load_flags = 'NO_HINTING|MONOCHROME', -} +-- You probably don't want to do this, but this demonstrates +-- that the flags can be combined +config.freetype_load_flags = 'NO_HINTING|MONOCHROME' ``` diff --git a/docs/config/lua/config/freetype_render_target.md b/docs/config/lua/config/freetype_render_target.md index 9fd2e2651..950bc7900 100644 --- a/docs/config/lua/config/freetype_render_target.md +++ b/docs/config/lua/config/freetype_render_target.md @@ -13,9 +13,7 @@ For example, this configuration uses light hinting but produces subpixel-antialiased glyph bitmaps: ```lua -return { - freetype_load_target = 'Light', - freetype_render_target = 'HorizontalLcd', -} +config.freetype_load_target = 'Light' +config.freetype_render_target = 'HorizontalLcd' ``` diff --git a/docs/config/lua/config/hide_mouse_cursor_when_typing.md b/docs/config/lua/config/hide_mouse_cursor_when_typing.md index 016e05e83..3cdbd0fc7 100644 --- a/docs/config/lua/config/hide_mouse_cursor_when_typing.md +++ b/docs/config/lua/config/hide_mouse_cursor_when_typing.md @@ -8,7 +8,5 @@ hovering over the window. The default is `true`. Set to `false` to disable this behavior. ```lua -return { - hide_mouse_cursor_when_typing = true, -} +config.hide_mouse_cursor_when_typing = true ``` diff --git a/docs/config/lua/config/hyperlink_rules.md b/docs/config/lua/config/hyperlink_rules.md index 95a8424af..91768a398 100644 --- a/docs/config/lua/config/hyperlink_rules.md +++ b/docs/config/lua/config/hyperlink_rules.md @@ -24,42 +24,40 @@ The default value for `hyperlink_rules` can be retrieved using and is shown below: ```lua -return { - hyperlink_rules = { - -- Matches: a URL in parens: (URL) - { - regex = '\\((\\w+://\\S+)\\)', - format = '$1', - highlight = 1, - }, - -- Matches: a URL in brackets: [URL] - { - regex = '\\[(\\w+://\\S+)\\]', - format = '$1', - highlight = 1, - }, - -- Matches: a URL in curly braces: {URL} - { - regex = '\\{(\\w+://\\S+)\\}', - format = '$1', - highlight = 1, - }, - -- Matches: a URL in angle brackets: - { - regex = '<(\\w+://\\S+)>', - format = '$1', - highlight = 1, - }, - -- Then handle URLs not wrapped in brackets - { - regex = '\\b\\w+://\\S+[)/a-zA-Z0-9-]+', - format = '$0', - }, - -- implicit mailto link - { - regex = '\\b\\w+@[\\w-]+(\\.[\\w-]+)+\\b', - format = 'mailto:$0', - }, +config.hyperlink_rules = { + -- Matches: a URL in parens: (URL) + { + regex = '\\((\\w+://\\S+)\\)', + format = '$1', + highlight = 1, + }, + -- Matches: a URL in brackets: [URL] + { + regex = '\\[(\\w+://\\S+)\\]', + format = '$1', + highlight = 1, + }, + -- Matches: a URL in curly braces: {URL} + { + regex = '\\{(\\w+://\\S+)\\}', + format = '$1', + highlight = 1, + }, + -- Matches: a URL in angle brackets: + { + regex = '<(\\w+://\\S+)>', + format = '$1', + highlight = 1, + }, + -- Then handle URLs not wrapped in brackets + { + regex = '\\b\\w+://\\S+[)/a-zA-Z0-9-]+', + format = '$0', + }, + -- implicit mailto link + { + regex = '\\b\\w+@[\\w-]+(\\.[\\w-]+)+\\b', + format = 'mailto:$0', }, } ``` @@ -84,14 +82,12 @@ return { Some other examples include: ```lua -local wezterm = require 'wezterm' - -- Use the defaults as a base -local hyperlink_rules = wezterm.default_hyperlink_rules() +config.hyperlink_rules = wezterm.default_hyperlink_rules() -- make task numbers clickable -- the first matched regex group is captured in $1. -table.insert(hyperlink_rules, { +table.insert(config.hyperlink_rules, { regex = [[\b[tt](\d+)\b]], format = 'https://example.com/tasks/?t=$1', }) @@ -100,12 +96,8 @@ table.insert(hyperlink_rules, { -- ( "nvim-treesitter/nvim-treesitter" | wbthomason/packer.nvim | wez/wezterm | "wez/wezterm.git" ) -- as long as a full url hyperlink regex exists above this it should not match a full url to -- github or gitlab / bitbucket (i.e. https://gitlab.com/user/project.git is still a whole clickable url) -table.insert(hyperlink_rules, { +table.insert(config.hyperlink_rules, { regex = [[["]?([\w\d]{1}[-\w\d]+)(/){1}([-\w\d\.]+)["]?]], format = 'https://www.github.com/$1/$3', }) - -return { - hyperlink_rules = hyperlink_rules, -} ``` diff --git a/docs/config/lua/config/ime_preedit_rendering.md b/docs/config/lua/config/ime_preedit_rendering.md index 6b653f5af..f6bbb94ba 100644 --- a/docs/config/lua/config/ime_preedit_rendering.md +++ b/docs/config/lua/config/ime_preedit_rendering.md @@ -25,9 +25,7 @@ WezTerm supports the following IME preedit rendering. You can control IME preedit rendering in your configuraiton file: ```lua -return { - ime_preedit_rendering = 'System', -} +config.ime_preedit_rendering = 'System' ``` Otherwise, the default is `"Builtin"`. diff --git a/docs/config/lua/config/index.markdown b/docs/config/lua/config/index.markdown index b49e01e0e..2c7b696c9 100644 --- a/docs/config/lua/config/index.markdown +++ b/docs/config/lua/config/index.markdown @@ -1,3 +1,8 @@ +--- +search: + exclude: true +--- + # `Config` struct The `return` statement at the end of your `wezterm.lua` file returns diff --git a/docs/config/lua/config/launch_menu.md b/docs/config/lua/config/launch_menu.md index 76a08a904..1bc5b3620 100644 --- a/docs/config/lua/config/launch_menu.md +++ b/docs/config/lua/config/launch_menu.md @@ -11,30 +11,28 @@ Each entry in `launch_menu` is an instance of a [SpawnCommand](../SpawnCommand.md) object. ```lua -return { - launch_menu = { - { - args = { 'top' }, - }, - { - -- Optional label to show in the launcher. If omitted, a label - -- is derived from the `args` - label = 'Bash', - -- The argument array to spawn. If omitted the default program - -- will be used as described in the documentation above - args = { 'bash', '-l' }, +config.launch_menu = { + { + args = { 'top' }, + }, + { + -- Optional label to show in the launcher. If omitted, a label + -- is derived from the `args` + label = 'Bash', + -- The argument array to spawn. If omitted the default program + -- will be used as described in the documentation above + args = { 'bash', '-l' }, - -- You can specify an alternative current working directory; - -- if you don't specify one then a default based on the OSC 7 - -- escape sequence will be used (see the Shell Integration - -- docs), falling back to the home directory. - -- cwd = "/some/path" + -- You can specify an alternative current working directory; + -- if you don't specify one then a default based on the OSC 7 + -- escape sequence will be used (see the Shell Integration + -- docs), falling back to the home directory. + -- cwd = "/some/path" - -- You can override environment variables just for this command - -- by setting this here. It has the same semantics as the main - -- set_environment_variables configuration option described above - -- set_environment_variables = { FOO = "bar" }, - }, + -- You can override environment variables just for this command + -- by setting this here. It has the same semantics as the main + -- set_environment_variables configuration option described above + -- set_environment_variables = { FOO = "bar" }, }, } ``` diff --git a/docs/config/lua/config/mux_env_remove.md b/docs/config/lua/config/mux_env_remove.md index 808236be7..d19721598 100644 --- a/docs/config/lua/config/mux_env_remove.md +++ b/docs/config/lua/config/mux_env_remove.md @@ -12,11 +12,9 @@ spawned by the multiplexer server. The default value for this is: ```lua -return { - mux_env_remove = { - 'SSH_AUTH_SOCK', - 'SSH_CLIENT', - 'SSH_CONNECTION', - }, +config.mux_env_remove = { + 'SSH_AUTH_SOCK', + 'SSH_CLIENT', + 'SSH_CONNECTION', } ``` diff --git a/docs/config/lua/config/quick_select_patterns.md b/docs/config/lua/config/quick_select_patterns.md index 51cd60fda..ada5983ce 100644 --- a/docs/config/lua/config/quick_select_patterns.md +++ b/docs/config/lua/config/quick_select_patterns.md @@ -6,12 +6,10 @@ Specify additional patterns to match when in [quick select mode](../../../quicks This setting is a table listing out a set of regular expressions. ```lua -return { - quick_select_patterns = { - -- match things that look like sha1 hashes - -- (this is actually one of the default patterns) - '[0-9a-f]{7,40}', - }, +config.quick_select_patterns = { + -- match things that look like sha1 hashes + -- (this is actually one of the default patterns) + '[0-9a-f]{7,40}', } ``` diff --git a/docs/config/lua/config/selection_word_boundary.md b/docs/config/lua/config/selection_word_boundary.md index ec7ac0e48..683b34318 100644 --- a/docs/config/lua/config/selection_word_boundary.md +++ b/docs/config/lua/config/selection_word_boundary.md @@ -10,7 +10,5 @@ Defaults to ``" \t\n{}[]()\"'`"``. For example, to always include spaces and newline when selecting a word, but stop on punctuations: ```lua -return { - selection_word_boundary = '{}[]()"\'`.,;:', -} +config.selection_word_boundary = '{}[]()"\'`.,;:' ``` diff --git a/docs/config/lua/config/show_new_tab_button_in_tab_bar.md b/docs/config/lua/config/show_new_tab_button_in_tab_bar.md index f6c781b30..3becef9ab 100644 --- a/docs/config/lua/config/show_new_tab_button_in_tab_bar.md +++ b/docs/config/lua/config/show_new_tab_button_in_tab_bar.md @@ -12,17 +12,13 @@ This example turns off the tabs and new-tab button, leaving just the left and right status areas: ```lua -local wezterm = require 'wezterm' - wezterm.on('update-right-status', function(window, pane) window:set_left_status 'left' window:set_right_status 'right' end) -return { - use_fancy_tab_bar = false, - show_tabs_in_tab_bar = false, - show_new_tab_button_in_tab_bar = false, -} +config.use_fancy_tab_bar = false +config.show_tabs_in_tab_bar = false +config.show_new_tab_button_in_tab_bar = false ``` diff --git a/docs/config/lua/config/show_tabs_in_tab_bar.md b/docs/config/lua/config/show_tabs_in_tab_bar.md index bcc7d3a24..e346da438 100644 --- a/docs/config/lua/config/show_tabs_in_tab_bar.md +++ b/docs/config/lua/config/show_tabs_in_tab_bar.md @@ -11,16 +11,12 @@ This example turns off the tabs and new-tab button, leaving just the left and right status areas: ```lua -local wezterm = require 'wezterm' - wezterm.on('update-right-status', function(window, pane) window:set_left_status 'left' window:set_right_status 'right' end) -return { - use_fancy_tab_bar = false, - show_tabs_in_tab_bar = false, - show_new_tab_button_in_tab_bar = false, -} +config.use_fancy_tab_bar = false +config.show_tabs_in_tab_bar = false +config.show_new_tab_button_in_tab_bar = false ``` diff --git a/docs/config/lua/config/show_update_window.md b/docs/config/lua/config/show_update_window.md index 3201602d4..eeb042128 100644 --- a/docs/config/lua/config/show_update_window.md +++ b/docs/config/lua/config/show_update_window.md @@ -8,7 +8,5 @@ See [check_for_updates](check_for_updates.md) for more information on the automatic update checks. ```lua -return { - show_update_window = false, -} +config.show_update_window = false ``` diff --git a/docs/config/lua/config/skip_close_confirmation_for_processes_named.md b/docs/config/lua/config/skip_close_confirmation_for_processes_named.md index ed35c7fa6..94bfb0e1e 100644 --- a/docs/config/lua/config/skip_close_confirmation_for_processes_named.md +++ b/docs/config/lua/config/skip_close_confirmation_for_processes_named.md @@ -15,41 +15,19 @@ not prompt for closing that particular pane. The default value for this setting is shown below: ```lua -return { - skip_close_confirmation_for_processes_named = { - 'bash', - 'sh', - 'zsh', - 'fish', - 'tmux', - }, +config.skip_close_confirmation_for_processes_named = { + 'bash', + 'sh', + 'zsh', + 'fish', + 'tmux', + 'nu', + 'cmd.exe', + 'pwsh.exe', + 'powershell.exe', } ``` -*Since: 20210814-124438-54e29167*: - -This option now also works on Windows (prior versions only worked on Linux and -macOS), and the default value for this setting now includes some windows shell -processes: - -```lua -return { - skip_close_confirmation_for_processes_named = { - 'bash', - 'sh', - 'zsh', - 'fish', - 'tmux', - 'nu', - 'cmd.exe', - 'pwsh.exe', - 'powershell.exe', - }, -} -``` - -*Since: 20220101-133340-7edc5b5a* - More advanced control over this behavior can be achieved by defining a [mux-is-process-stateful](../mux-events/mux-is-process-stateful.md) event handler. diff --git a/docs/config/lua/config/tab_bar_style.md b/docs/config/lua/config/tab_bar_style.md index 6dec9b386..fdcbf7a59 100644 --- a/docs/config/lua/config/tab_bar_style.md +++ b/docs/config/lua/config/tab_bar_style.md @@ -41,33 +41,31 @@ This example changes the tab edges to the PowerLine arrow symbols: local wezterm = require 'wezterm' -- The filled in variant of the < symbol -local SOLID_LEFT_ARROW = utf8.char(0xe0b2) +local SOLID_LEFT_ARROW = wezterm.nerdfonts.pl_right_hard_divider -- The filled in variant of the > symbol -local SOLID_RIGHT_ARROW = utf8.char(0xe0b0) +local SOLID_RIGHT_ARROW = wezterm.nerdfonts.pl_left_hard_divider -return { - tab_bar_style = { - active_tab_left = wezterm.format { - { Background = { Color = '#0b0022' } }, - { Foreground = { Color = '#2b2042' } }, - { Text = SOLID_LEFT_ARROW }, - }, - active_tab_right = wezterm.format { - { Background = { Color = '#0b0022' } }, - { Foreground = { Color = '#2b2042' } }, - { Text = SOLID_RIGHT_ARROW }, - }, - inactive_tab_left = wezterm.format { - { Background = { Color = '#0b0022' } }, - { Foreground = { Color = '#1b1032' } }, - { Text = SOLID_LEFT_ARROW }, - }, - inactive_tab_right = wezterm.format { - { Background = { Color = '#0b0022' } }, - { Foreground = { Color = '#1b1032' } }, - { Text = SOLID_RIGHT_ARROW }, - }, +config.tab_bar_style = { + active_tab_left = wezterm.format { + { Background = { Color = '#0b0022' } }, + { Foreground = { Color = '#2b2042' } }, + { Text = SOLID_LEFT_ARROW }, + }, + active_tab_right = wezterm.format { + { Background = { Color = '#0b0022' } }, + { Foreground = { Color = '#2b2042' } }, + { Text = SOLID_RIGHT_ARROW }, + }, + inactive_tab_left = wezterm.format { + { Background = { Color = '#0b0022' } }, + { Foreground = { Color = '#1b1032' } }, + { Text = SOLID_LEFT_ARROW }, + }, + inactive_tab_right = wezterm.format { + { Background = { Color = '#0b0022' } }, + { Foreground = { Color = '#1b1032' } }, + { Text = SOLID_RIGHT_ARROW }, }, } ``` diff --git a/docs/config/lua/config/tab_max_width.md b/docs/config/lua/config/tab_max_width.md index 6ea10c048..5964bac21 100644 --- a/docs/config/lua/config/tab_max_width.md +++ b/docs/config/lua/config/tab_max_width.md @@ -7,7 +7,5 @@ using fancy tab mode. Defaults to 16 glyphs in width. ```lua -return { - tab_max_width = 16, -} +config.tab_max_width = 16 ``` diff --git a/docs/config/lua/config/term.md b/docs/config/lua/config/term.md index a646e5e42..85f58e602 100644 --- a/docs/config/lua/config/term.md +++ b/docs/config/lua/config/term.md @@ -8,8 +8,8 @@ data. If you want to get the most application support out of wezterm, then you may wish to install a copy of the `wezterm` TERM definition: -``` -tempfile=$(mktemp) \ +```console +$ tempfile=$(mktemp) \ && curl -o $tempfile https://raw.githubusercontent.com/wez/wezterm/main/termwiz/data/wezterm.terminfo \ && tic -x -o ~/.terminfo $tempfile \ && rm $tempfile @@ -29,11 +29,9 @@ If your package manager installed the terminfo data in a non-standard location, The following snippet works if you installed `wezterm.terminfo` with nix into your user profile. Update the path to `TERMINFO_DIRS` to match the location on your system. ```lua -return { - set_environment_variables = { - TERMINFO_DIRS = '/home/user/.nix-profile/share/terminfo', - WSLENV = 'TERMINFO_DIRS', - }, - term = 'wezterm', +config.set_environment_variables = { + TERMINFO_DIRS = '/home/user/.nix-profile/share/terminfo', + WSLENV = 'TERMINFO_DIRS', } +config.term = 'wezterm' ``` diff --git a/docs/config/lua/config/text_blink_rate.md b/docs/config/lua/config/text_blink_rate.md index 0987b9dc2..4157b7d9d 100644 --- a/docs/config/lua/config/text_blink_rate.md +++ b/docs/config/lua/config/text_blink_rate.md @@ -9,9 +9,7 @@ event loop schedulers manage timers; non-zero values will be at least the interval specified with some degree of slop. ```lua -return { - text_blink_rate = 500, -} +config.text_blink_rate = 500 ``` *Since: 20220319-142410-0fcdea07* diff --git a/docs/config/lua/config/text_blink_rate_rapid.md b/docs/config/lua/config/text_blink_rate_rapid.md index 6ccd66a20..778ba23d4 100644 --- a/docs/config/lua/config/text_blink_rate_rapid.md +++ b/docs/config/lua/config/text_blink_rate_rapid.md @@ -9,9 +9,7 @@ event loop schedulers manage timers; non-zero values will be at least the interval specified with some degree of slop. ```lua -return { - text_blink_rate_rapid = 250, -} +config.text_blink_rate_rapid = 250 ``` *Since: 20220319-142410-0fcdea07* diff --git a/docs/config/lua/config/treat_left_ctrlalt_as_altgr.md b/docs/config/lua/config/treat_left_ctrlalt_as_altgr.md index d7aed6032..610045be4 100644 --- a/docs/config/lua/config/treat_left_ctrlalt_as_altgr.md +++ b/docs/config/lua/config/treat_left_ctrlalt_as_altgr.md @@ -11,7 +11,5 @@ To fix this behavior you can tell WezTerm to treat left *Ctrl-Alt* keys as bindings using separate Ctrl and Alt won't be triggered anymore. ```lua -return { - treat_left_ctrlalt_as_altgr = true, -} +config.treat_left_ctrlalt_as_altgr = true ``` diff --git a/docs/config/lua/config/use_ime.md b/docs/config/lua/config/use_ime.md index 126b62709..98f1bb026 100644 --- a/docs/config/lua/config/use_ime.md +++ b/docs/config/lua/config/use_ime.md @@ -16,9 +16,7 @@ IME support is a platform dependent feature You can control whether the IME is enabled in your configuration file: ```lua -return { - use_ime = false, -} +config.use_ime = false ``` Changing `use_ime` usually requires re-launching WezTerm to take full effect. diff --git a/docs/config/lua/config/visual_bell.md b/docs/config/lua/config/visual_bell.md index 1d94f6920..4d7f0a11a 100644 --- a/docs/config/lua/config/visual_bell.md +++ b/docs/config/lua/config/visual_bell.md @@ -32,28 +32,24 @@ The following easing functions are supported: The following configuration enables a low intensity visual bell that takes a total of 300ms to "flash" the screen: ```lua -return { - visual_bell = { - fade_in_function = 'EaseIn', - fade_in_duration_ms = 150, - fade_out_function = 'EaseOut', - fade_out_duration_ms = 150, - }, - colors = { - visual_bell = '#202020', - }, +config.visual_bell = { + fade_in_function = 'EaseIn', + fade_in_duration_ms = 150, + fade_out_function = 'EaseOut', + fade_out_duration_ms = 150, +} +config.colors = { + visual_bell = '#202020', } ``` The follow configuration make the cursor briefly flare when the bell is run: ```lua -return { - visual_bell = { - fade_in_duration_ms = 75, - fade_out_duration_ms = 75, - target = 'CursorColor', - }, +config.visual_bell = { + fade_in_duration_ms = 75, + fade_out_duration_ms = 75, + target = 'CursorColor', } ``` diff --git a/docs/config/lua/config/webgpu_preferred_adapter.md b/docs/config/lua/config/webgpu_preferred_adapter.md index 8ae00cc61..b1942d206 100644 --- a/docs/config/lua/config/webgpu_preferred_adapter.md +++ b/docs/config/lua/config/webgpu_preferred_adapter.md @@ -48,32 +48,28 @@ Based on that list, I might choose to explicitly target the discrete Gpu like this (but note that this would be the default selection anyway): ```lua -local wezterm = require 'wezterm' - -return { - webgpu_preferred_adapter = { - backend = 'Vulkan', - device = 29730, - device_type = 'DiscreteGpu', - driver = 'radv', - driver_info = 'Mesa 22.3.4', - name = 'AMD Radeon Pro W6400 (RADV NAVI24)', - vendor = 4098, - }, - front_end = 'WebGpu', +config.webgpu_preferred_adapter = { + backend = 'Vulkan', + device = 29730, + device_type = 'DiscreteGpu', + driver = 'radv', + driver_info = 'Mesa 22.3.4', + name = 'AMD Radeon Pro W6400 (RADV NAVI24)', + vendor = 4098, } +config.front_end = 'WebGpu' ``` alternatively, I might use: ```lua local wezterm = require 'wezterm' +local config = {} local gpus = wezterm.gui.enumerate_gpus() -return { - webgpu_preferred_adapter = gpus[1], - front_end = 'WebGpu', -} +config.webgpu_preferred_adapter = gpus[1] +config.front_end = 'WebGpu' +return config ``` If you have a more complex situation you can get a bit more elaborate; this @@ -82,21 +78,17 @@ Vulkan drivers: ```lua local wezterm = require 'wezterm' -local adapter = nil -local front_end = nil +local config = {} for _, gpu in ipairs(wezterm.gui.enumerate_gpus()) do if gpu.backend == 'Vulkan' and gpu.device_type == 'Integrated' then - adapter = gpu - front_end = 'WebGpu' + config.webgpu_preferred_adapter = gpu + config.front_end = 'WebGpu' break end end -return { - webgpu_preferred_adapter = adapter, - front_end = front_end, -} +return config ``` See also [webgpu_power_preference](webgpu_power_preference.md), diff --git a/docs/config/lua/config/window_background_gradient.md b/docs/config/lua/config/window_background_gradient.md index ec211cbaf..a5a387712 100644 --- a/docs/config/lua/config/window_background_gradient.md +++ b/docs/config/lua/config/window_background_gradient.md @@ -9,57 +9,55 @@ for `window_background_image` is ignored. Linear gradients with vertical or horizontal orientation are supported: ```lua -return { - window_background_gradient = { - -- Can be "Vertical" or "Horizontal". Specifies the direction - -- in which the color gradient varies. The default is "Horizontal", - -- with the gradient going from left-to-right. - -- Linear and Radial gradients are also supported; see the other - -- examples below - orientation = 'Vertical', +config.window_background_gradient = { + -- Can be "Vertical" or "Horizontal". Specifies the direction + -- in which the color gradient varies. The default is "Horizontal", + -- with the gradient going from left-to-right. + -- Linear and Radial gradients are also supported; see the other + -- examples below + orientation = 'Vertical', - -- Specifies the set of colors that are interpolated in the gradient. - -- Accepts CSS style color specs, from named colors, through rgb - -- strings and more - colors = { - '#0f0c29', - '#302b63', - '#24243e', - }, - - -- Instead of specifying `colors`, you can use one of a number of - -- predefined, preset gradients. - -- A list of presets is shown in a section below. - -- preset = "Warm", - - -- Specifies the interpolation style to be used. - -- "Linear", "Basis" and "CatmullRom" as supported. - -- The default is "Linear". - interpolation = 'Linear', - - -- How the colors are blended in the gradient. - -- "Rgb", "LinearRgb", "Hsv" and "Oklab" are supported. - -- The default is "Rgb". - blend = 'Rgb', - - -- To avoid vertical color banding for horizontal gradients, the - -- gradient position is randomly shifted by up to the `noise` value - -- for each pixel. - -- Smaller values, or 0, will make bands more prominent. - -- The default value is 64 which gives decent looking results - -- on a retina macbook pro display. - -- noise = 64, - - -- By default, the gradient smoothly transitions between the colors. - -- You can adjust the sharpness by specifying the segment_size and - -- segment_smoothness parameters. - -- segment_size configures how many segments are present. - -- segment_smoothness is how hard the edge is; 0.0 is a hard edge, - -- 1.0 is a soft edge. - - -- segment_size = 11, - -- segment_smoothness = 0.0, + -- Specifies the set of colors that are interpolated in the gradient. + -- Accepts CSS style color specs, from named colors, through rgb + -- strings and more + colors = { + '#0f0c29', + '#302b63', + '#24243e', }, + + -- Instead of specifying `colors`, you can use one of a number of + -- predefined, preset gradients. + -- A list of presets is shown in a section below. + -- preset = "Warm", + + -- Specifies the interpolation style to be used. + -- "Linear", "Basis" and "CatmullRom" as supported. + -- The default is "Linear". + interpolation = 'Linear', + + -- How the colors are blended in the gradient. + -- "Rgb", "LinearRgb", "Hsv" and "Oklab" are supported. + -- The default is "Rgb". + blend = 'Rgb', + + -- To avoid vertical color banding for horizontal gradients, the + -- gradient position is randomly shifted by up to the `noise` value + -- for each pixel. + -- Smaller values, or 0, will make bands more prominent. + -- The default value is 64 which gives decent looking results + -- on a retina macbook pro display. + -- noise = 64, + + -- By default, the gradient smoothly transitions between the colors. + -- You can adjust the sharpness by specifying the segment_size and + -- segment_smoothness parameters. + -- segment_size configures how many segments are present. + -- segment_smoothness is how hard the edge is; 0.0 is a hard edge, + -- 1.0 is a soft edge. + + -- segment_size = 11, + -- segment_smoothness = 0.0, } ``` @@ -86,12 +84,10 @@ clockwise, so `-45` is equivalent to `315` degrees and results in a gradient that is moving from the top left corner down to the bottom right corner. ```lua -return { - window_background_gradient = { - colors = { '#EEBD89', '#D13ABD' }, - -- Specifices a Linear gradient starting in the top left corner. - orientation = { Linear = { angle = -45.0 } }, - }, +config.window_background_gradient = { + colors = { '#EEBD89', '#D13ABD' }, + -- Specifices a Linear gradient starting in the top left corner. + orientation = { Linear = { angle = -45.0 } }, } ``` @@ -103,29 +99,27 @@ Radial gradients are implemented using a notional perfect circle that is subsequently stretched to fill the dimensions of the window. ```lua -return { - color_scheme = 'Github', - window_background_gradient = { - colors = { 'deeppink', 'gold' }, - orientation = { - Radial = { - -- Specifies the x coordinate of the center of the circle, - -- in the range 0.0 through 1.0. The default is 0.5 which - -- is centered in the X dimension. - cx = 0.75, +config.color_scheme = 'Github' +config.window_background_gradient = { + colors = { 'deeppink', 'gold' }, + orientation = { + Radial = { + -- Specifies the x coordinate of the center of the circle, + -- in the range 0.0 through 1.0. The default is 0.5 which + -- is centered in the X dimension. + cx = 0.75, - -- Specifies the y coordinate of the center of the circle, - -- in the range 0.0 through 1.0. The default is 0.5 which - -- is centered in the Y dimension. - cy = 0.75, + -- Specifies the y coordinate of the center of the circle, + -- in the range 0.0 through 1.0. The default is 0.5 which + -- is centered in the Y dimension. + cy = 0.75, - -- Specifies the radius of the notional circle. - -- The default is 0.5, which combined with the default cx - -- and cy values places the circle in the center of the - -- window, with the edges touching the window edges. - -- Values larger than 1 are possible. - radius = 1.25, - }, + -- Specifies the radius of the notional circle. + -- The default is 0.5, which combined with the default cx + -- and cy values places the circle in the center of the + -- window, with the edges touching the window edges. + -- Values larger than 1 are possible. + radius = 1.25, }, }, } diff --git a/docs/config/lua/config/window_close_confirmation.md b/docs/config/lua/config/window_close_confirmation.md index d52bf0435..b45508e97 100644 --- a/docs/config/lua/config/window_close_confirmation.md +++ b/docs/config/lua/config/window_close_confirmation.md @@ -8,9 +8,7 @@ Set this to `"NeverPrompt"` if you don't like confirming closing windows every time. ```lua -return { - window_close_confirmation = 'AlwaysPrompt', -} +config.window_close_confirmation = 'AlwaysPrompt' ``` See also diff --git a/docs/config/lua/config/window_frame.md b/docs/config/lua/config/window_frame.md index 4ab7588c8..a0da17edb 100644 --- a/docs/config/lua/config/window_frame.md +++ b/docs/config/lua/config/window_frame.md @@ -10,19 +10,17 @@ It allows you to customize the colors of the window frame. Some of these colors are used by the fancy tab bar. ```lua -return { - window_frame = { - inactive_titlebar_bg = '#353535', - active_titlebar_bg = '#2b2042', - inactive_titlebar_fg = '#cccccc', - active_titlebar_fg = '#ffffff', - inactive_titlebar_border_bottom = '#2b2042', - active_titlebar_border_bottom = '#2b2042', - button_fg = '#cccccc', - button_bg = '#2b2042', - button_hover_fg = '#ffffff', - button_hover_bg = '#3b3052', - }, +config.window_frame = { + inactive_titlebar_bg = '#353535', + active_titlebar_bg = '#2b2042', + inactive_titlebar_fg = '#cccccc', + active_titlebar_fg = '#ffffff', + inactive_titlebar_border_bottom = '#2b2042', + active_titlebar_border_bottom = '#2b2042', + button_fg = '#cccccc', + button_bg = '#2b2042', + button_hover_fg = '#ffffff', + button_hover_bg = '#3b3052', } ``` @@ -31,16 +29,14 @@ return { You may explicitly add a border around the window area: ```lua -return { - window_frame = { - border_left_width = '0.5cell', - border_right_width = '0.5cell', - border_bottom_height = '0.25cell', - border_top_height = '0.25cell', - border_left_color = 'purple', - border_right_color = 'purple', - border_bottom_color = 'purple', - border_top_color = 'purple', - }, +config.window_frame = { + border_left_width = '0.5cell', + border_right_width = '0.5cell', + border_bottom_height = '0.25cell', + border_top_height = '0.25cell', + border_left_color = 'purple', + border_right_color = 'purple', + border_bottom_color = 'purple', + border_top_color = 'purple', } ``` diff --git a/docs/config/lua/config/window_padding.md b/docs/config/lua/config/window_padding.md index 071eb08ab..46b1d8eaf 100644 --- a/docs/config/lua/config/window_padding.md +++ b/docs/config/lua/config/window_padding.md @@ -11,13 +11,11 @@ enabled the scrollbar and have set `right` to `0` then the right padding (and thus the scrollbar width) will instead match the width of a cell. ```lua -return { - window_padding = { - left = 2, - right = 2, - top = 0, - bottom = 0, - }, +config.window_padding = { + left = 2, + right = 2, + top = 0, + bottom = 0, } ``` @@ -36,13 +34,11 @@ You may use a fractional number such as `"0.5cell"` or numbers large than one su The default padding is shown below. In earlier releases, the default padding was 0 for each of the possible edges. ```lua -return { - window_padding = { - left = '1cell', - right = '1cell', - top = '0.5cell', - bottom = '0.5cell', - }, +config.window_padding = { + left = '1cell', + right = '1cell', + top = '0.5cell', + bottom = '0.5cell', } ``` diff --git a/docs/config/lua/config/xim_im_name.md b/docs/config/lua/config/xim_im_name.md index 422bfa329..23dc70812 100644 --- a/docs/config/lua/config/xim_im_name.md +++ b/docs/config/lua/config/xim_im_name.md @@ -13,9 +13,7 @@ to quickly evaluate a different input method server, then you could update your config to specify it explicitly: ```lua -return { - xim_im_name = 'fcitx', -} +config.xim_im_name = 'fcitx' ``` will cause wezterm to connect to fcitx regardless of the value of `XMODIFIERS`. diff --git a/docs/config/lua/general.md b/docs/config/lua/general.md index db44c5e6f..51be2c60f 100644 --- a/docs/config/lua/general.md +++ b/docs/config/lua/general.md @@ -6,55 +6,8 @@ be imported into your configuration file: ```lua local wezterm = require 'wezterm' -return { - font = wezterm.font 'JetBrains Mono', -} +local config = {} +config.font = wezterm.font 'JetBrains Mono' +return config ``` -### Making your own Lua Modules - -If you'd like to break apart your configuration into multiple files, you'll -be interested in this information. - -The `package.path` is configured with the following paths in this order: - -* On Windows: a `wezterm_modules` dir in the same directory as `wezterm.exe` -* `~/.config/wezterm` -* `~/.wezterm` -* A system specific set of paths which may (or may not!) find locally installed lua modules - -That means that if you wanted to break your config up into a `helpers.lua` file -you would place it in `~/.config/wezterm/helpers.lua` with contents like this: - -```lua --- I am helpers.lua and I should live in ~/.config/wezterm/helpers.lua - -local wezterm = require 'wezterm' - --- This is the module table that we will export -local module = {} - --- This function is private to this module and is not visible --- outside. -local function private_helper() - wezterm.log_error 'hello!' -end - --- define a function in the module table. --- Only functions defined in `module` will be exported to --- code that imports this module -function module.my_function() - private_helper() -end - --- return our module table -return module -``` - -and then in your `wezterm.lua` -you would use it like this: - -```lua -local helpers = require 'helpers' -helpers.my_function() -``` diff --git a/docs/config/lua/gui-events/gui-startup.md b/docs/config/lua/gui-events/gui-startup.md index 255caca9f..e6441e30e 100644 --- a/docs/config/lua/gui-events/gui-startup.md +++ b/docs/config/lua/gui-events/gui-startup.md @@ -35,6 +35,7 @@ This basic example splits an initial window into thirds: ```lua local wezterm = require 'wezterm' local mux = wezterm.mux +local config = {} wezterm.on('gui-startup', function(cmd) local tab, pane, window = mux.spawn_window(cmd or {}) @@ -46,7 +47,7 @@ wezterm.on('gui-startup', function(cmd) pane:split { size = 0.5 } end) -return {} +return config ``` This example creates a default window but makes it maximize on startup: @@ -54,13 +55,14 @@ This example creates a default window but makes it maximize on startup: ```lua local wezterm = require 'wezterm' local mux = wezterm.mux +local config = {} wezterm.on('gui-startup', function(cmd) local tab, pane, window = mux.spawn_window(cmd or {}) window:gui_window():maximize() end) -return {} +return config ``` Here's a more elaborate example that configures two workspaces: @@ -68,6 +70,7 @@ Here's a more elaborate example that configures two workspaces: ```lua local wezterm = require 'wezterm' local mux = wezterm.mux +local config = {} wezterm.on('gui-startup', function(cmd) -- allow `wezterm start -- something` to affect what we spawn @@ -104,7 +107,7 @@ wezterm.on('gui-startup', function(cmd) mux.set_active_workspace 'coding' end) -return {} +return config ``` See also: diff --git a/docs/config/lua/keyassignment/ActivateCommandPalette.md b/docs/config/lua/keyassignment/ActivateCommandPalette.md index edb2eae45..18908a5c4 100644 --- a/docs/config/lua/keyassignment/ActivateCommandPalette.md +++ b/docs/config/lua/keyassignment/ActivateCommandPalette.md @@ -5,13 +5,11 @@ Activates the Command Palette, a modal overlay that enables discovery and activation of various commands. ```lua -return { - keys = { - { - key = 'P', - mods = 'CTRL', - action = wezterm.action.ActivateCommandPalette, - }, +config.keys = { + { + key = 'P', + mods = 'CTRL', + action = wezterm.action.ActivateCommandPalette, }, } ``` diff --git a/docs/config/lua/keyassignment/ActivateCopyMode.md b/docs/config/lua/keyassignment/ActivateCopyMode.md index 314568bc3..6ed9437e9 100644 --- a/docs/config/lua/keyassignment/ActivateCopyMode.md +++ b/docs/config/lua/keyassignment/ActivateCopyMode.md @@ -5,10 +5,8 @@ Activates copy mode! ```lua -return { - keys = { - { key = 'X', mods = 'CTRL', action = wezterm.action.ActivateCopyMode }, - }, +config.keys = { + { key = 'X', mods = 'CTRL', action = wezterm.action.ActivateCopyMode }, } ``` diff --git a/docs/config/lua/keyassignment/ActivateLastTab.md b/docs/config/lua/keyassignment/ActivateLastTab.md index 3682cd6fc..1cab716b4 100644 --- a/docs/config/lua/keyassignment/ActivateLastTab.md +++ b/docs/config/lua/keyassignment/ActivateLastTab.md @@ -5,15 +5,13 @@ Activate the previously active tab. If there is none, it will do nothing. ```lua -return { - leader = { key = 'a', mods = 'CTRL' }, - keys = { - -- CTRL-a, followed by CTRL-o will switch back to the last active tab - { - key = 'o', - mods = 'LEADER|CTRL', - action = wezterm.action.ActivateLastTab, - }, +config.leader = { key = 'a', mods = 'CTRL' } +config.keys = { + -- CTRL-a, followed by CTRL-o will switch back to the last active tab + { + key = 'o', + mods = 'LEADER|CTRL', + action = wezterm.action.ActivateLastTab, }, } ``` diff --git a/docs/config/lua/keyassignment/ActivatePaneByIndex.md b/docs/config/lua/keyassignment/ActivatePaneByIndex.md index 4c104fbb1..b0bfdd930 100644 --- a/docs/config/lua/keyassignment/ActivatePaneByIndex.md +++ b/docs/config/lua/keyassignment/ActivatePaneByIndex.md @@ -11,12 +11,13 @@ panes, respectively: ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -return { - keys = { - { key = 'a', mods = 'ALT', action = act.ActivatePaneByIndex(0) }, - { key = 'b', mods = 'ALT', action = act.ActivatePaneByIndex(1) }, - { key = 'c', mods = 'ALT', action = act.ActivatePaneByIndex(2) }, - }, +config.keys = { + { key = 'a', mods = 'ALT', action = act.ActivatePaneByIndex(0) }, + { key = 'b', mods = 'ALT', action = act.ActivatePaneByIndex(1) }, + { key = 'c', mods = 'ALT', action = act.ActivatePaneByIndex(2) }, } + +return config ``` diff --git a/docs/config/lua/keyassignment/ActivatePaneDirection.md b/docs/config/lua/keyassignment/ActivatePaneDirection.md index e9cdcd93a..b05db5b00 100644 --- a/docs/config/lua/keyassignment/ActivatePaneDirection.md +++ b/docs/config/lua/keyassignment/ActivatePaneDirection.md @@ -12,31 +12,31 @@ by the [`unzoom_on_switch_pane`](../config/unzoom_on_switch_pane.md) flag. ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -return { - keys = { - { - key = 'LeftArrow', - mods = 'CTRL|SHIFT', - action = act.ActivatePaneDirection 'Left', - }, - { - key = 'RightArrow', - mods = 'CTRL|SHIFT', - action = act.ActivatePaneDirection 'Right', - }, - { - key = 'UpArrow', - mods = 'CTRL|SHIFT', - action = act.ActivatePaneDirection 'Up', - }, - { - key = 'DownArrow', - mods = 'CTRL|SHIFT', - action = act.ActivatePaneDirection 'Down', - }, +config.keys = { + { + key = 'LeftArrow', + mods = 'CTRL|SHIFT', + action = act.ActivatePaneDirection 'Left', + }, + { + key = 'RightArrow', + mods = 'CTRL|SHIFT', + action = act.ActivatePaneDirection 'Right', + }, + { + key = 'UpArrow', + mods = 'CTRL|SHIFT', + action = act.ActivatePaneDirection 'Up', + }, + { + key = 'DownArrow', + mods = 'CTRL|SHIFT', + action = act.ActivatePaneDirection 'Down', }, } +return config ``` *Since: 20220101-133340-7edc5b5a* diff --git a/docs/config/lua/keyassignment/ActivateTab.md b/docs/config/lua/keyassignment/ActivateTab.md index 4a516d7a5..b65ddcfdb 100644 --- a/docs/config/lua/keyassignment/ActivateTab.md +++ b/docs/config/lua/keyassignment/ActivateTab.md @@ -13,25 +13,24 @@ to its left and so on. ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -local mykeys = {} +config.keys = {} for i = 1, 8 do -- CTRL+ALT + number to activate that tab - table.insert(mykeys, { + table.insert(config.keys, { key = tostring(i), mods = 'CTRL|ALT', action = act.ActivateTab(i - 1), }) -- F1 through F8 to activate that tab - table.insert(mykeys, { + table.insert(config.keys, { key = 'F' .. tostring(i), action = act.ActivateTab(i - 1), }) end -return { - keys = mykeys, -} +return config ``` diff --git a/docs/config/lua/keyassignment/ActivateTabRelative.md b/docs/config/lua/keyassignment/ActivateTabRelative.md index b81a52221..b5d0e8f4b 100644 --- a/docs/config/lua/keyassignment/ActivateTabRelative.md +++ b/docs/config/lua/keyassignment/ActivateTabRelative.md @@ -7,13 +7,14 @@ activates the tab to the right. ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -return { - keys = { - { key = '{', mods = 'ALT', action = act.ActivateTabRelative(-1) }, - { key = '}', mods = 'ALT', action = act.ActivateTabRelative(1) }, - }, +config.keys = { + { key = '{', mods = 'ALT', action = act.ActivateTabRelative(-1) }, + { key = '}', mods = 'ALT', action = act.ActivateTabRelative(1) }, } + +return config ``` See also [ActivateTabRelativeNoWrap](ActivateTabRelativeNoWrap.md) diff --git a/docs/config/lua/keyassignment/ActivateTabRelativeNoWrap.md b/docs/config/lua/keyassignment/ActivateTabRelativeNoWrap.md index d73fe705e..95b346c1f 100644 --- a/docs/config/lua/keyassignment/ActivateTabRelativeNoWrap.md +++ b/docs/config/lua/keyassignment/ActivateTabRelativeNoWrap.md @@ -14,13 +14,13 @@ but this one will not wrap around; for example, if the first tab is active ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -return { - keys = { - { key = '{', mods = 'ALT', action = act.ActivateTabRelativeNoWrap(-1) }, - { key = '}', mods = 'ALT', action = act.ActivateTabRelativeNoWrap(1) }, - }, +config.keys = { + { key = '{', mods = 'ALT', action = act.ActivateTabRelativeNoWrap(-1) }, + { key = '}', mods = 'ALT', action = act.ActivateTabRelativeNoWrap(1) }, } +return config ``` diff --git a/docs/config/lua/keyassignment/ActivateWindow.md b/docs/config/lua/keyassignment/ActivateWindow.md index 7dd97a3fc..9cde2b4e0 100644 --- a/docs/config/lua/keyassignment/ActivateWindow.md +++ b/docs/config/lua/keyassignment/ActivateWindow.md @@ -15,20 +15,19 @@ Here's an example of setting up hotkeys to activate specific windows: ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -local mykeys = {} +config.keys = {} for i = 1, 8 do -- CMD+ALT + number to activate that window - table.insert(mykeys, { + table.insert(config.keys, { key = tostring(i), mods = 'CMD|ALT', action = act.ActivateWindow(i - 1), }) end -return { - keys = mykeys, -} +return config ``` diff --git a/docs/config/lua/keyassignment/ActivateWindowRelative.md b/docs/config/lua/keyassignment/ActivateWindowRelative.md index 9efae4a9f..358e886ea 100644 --- a/docs/config/lua/keyassignment/ActivateWindowRelative.md +++ b/docs/config/lua/keyassignment/ActivateWindowRelative.md @@ -16,13 +16,13 @@ windows: ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -return { - keys = { - { key = 'r', mods = 'ALT', action = act.ActivateWindowRelative(1) }, - { key = 'e', mods = 'ALT', action = act.ActivateWindowRelative(-1) }, - }, +config.keys = { + { key = 'r', mods = 'ALT', action = act.ActivateWindowRelative(1) }, + { key = 'e', mods = 'ALT', action = act.ActivateWindowRelative(-1) }, } +return config ``` See also [ActivateWindowRelativeNoWrap](ActivateWindowRelativeNoWrap.md), diff --git a/docs/config/lua/keyassignment/ActivateWindowRelativeNoWrap.md b/docs/config/lua/keyassignment/ActivateWindowRelativeNoWrap.md index 01d73dc1a..90d5bc798 100644 --- a/docs/config/lua/keyassignment/ActivateWindowRelativeNoWrap.md +++ b/docs/config/lua/keyassignment/ActivateWindowRelativeNoWrap.md @@ -15,21 +15,21 @@ windows: ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -return { - keys = { - { - key = 'r', - mods = 'ALT', - action = act.ActivateWindowRelativeNoWrap(1), - }, - { - key = 'e', - mods = 'ALT', - action = act.ActivateWindowRelativeNoWrap(-1), - }, +config.keys = { + { + key = 'r', + mods = 'ALT', + action = act.ActivateWindowRelativeNoWrap(1), + }, + { + key = 'e', + mods = 'ALT', + action = act.ActivateWindowRelativeNoWrap(-1), }, } +return config ``` See also [ActivateWindowRelative](ActivateWindowRelative.md), diff --git a/docs/config/lua/keyassignment/AdjustPaneSize.md b/docs/config/lua/keyassignment/AdjustPaneSize.md index 338b31928..797b0eb97 100644 --- a/docs/config/lua/keyassignment/AdjustPaneSize.md +++ b/docs/config/lua/keyassignment/AdjustPaneSize.md @@ -19,26 +19,26 @@ respectively. ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -return { - leader = { key = 'a', mods = 'CTRL' }, - keys = { - { - key = 'H', - mods = 'LEADER', - action = act.AdjustPaneSize { 'Left', 5 }, - }, - { - key = 'J', - mods = 'LEADER', - action = act.AdjustPaneSize { 'Down', 5 }, - }, - { key = 'K', mods = 'LEADER', action = act.AdjustPaneSize { 'Up', 5 } }, - { - key = 'L', - mods = 'LEADER', - action = act.AdjustPaneSize { 'Right', 5 }, - }, +config.leader = { key = 'a', mods = 'CTRL' } +config.keys = { + { + key = 'H', + mods = 'LEADER', + action = act.AdjustPaneSize { 'Left', 5 }, + }, + { + key = 'J', + mods = 'LEADER', + action = act.AdjustPaneSize { 'Down', 5 }, + }, + { key = 'K', mods = 'LEADER', action = act.AdjustPaneSize { 'Up', 5 } }, + { + key = 'L', + mods = 'LEADER', + action = act.AdjustPaneSize { 'Right', 5 }, }, } +return config ``` diff --git a/docs/config/lua/keyassignment/AttachDomain.md b/docs/config/lua/keyassignment/AttachDomain.md index 09f471cb6..32bdfc80a 100644 --- a/docs/config/lua/keyassignment/AttachDomain.md +++ b/docs/config/lua/keyassignment/AttachDomain.md @@ -19,21 +19,17 @@ entries with this action. The example below shows how to bind a key to trigger attaching to an ssh domain: ```lua -local wezterm = require 'wezterm' - -return { - ssh_domains = { - { - name = 'devhost', - remote_address = 'devhost.example.com', - }, +config.ssh_domains = { + { + name = 'devhost', + remote_address = 'devhost.example.com', }, - keys = { - { - key = 'U', - mods = 'CTRL|SHIFT', - action = wezterm.action.AttachDomain 'devhost', - }, +} +config.keys = { + { + key = 'U', + mods = 'CTRL|SHIFT', + action = wezterm.action.AttachDomain 'devhost', }, } ``` diff --git a/docs/config/lua/keyassignment/CharSelect.md b/docs/config/lua/keyassignment/CharSelect.md index 85a319b68..61316114c 100644 --- a/docs/config/lua/keyassignment/CharSelect.md +++ b/docs/config/lua/keyassignment/CharSelect.md @@ -42,22 +42,17 @@ This action is by default assigned to `CTRL-SHIFT-U` (`U` for `Unicode`). The default assignment is equivalent to this config: ```lua -local wezterm = require 'wezterm' -local act = wezterm.action +-- Control the size of the font. +-- Uses the same font as window_frame.font +-- char_select_font_size = 18.0, -return { - -- Control the size of the font. - -- Uses the same font as window_frame.font - -- char_select_font_size = 18.0, - - keys = { - { - key = 'u', - mods = 'SHIFT|CTRL', - action = act.CharSelect { - copy_on_select = true, - copy_to = 'ClipboardAndPrimarySelection', - }, +config.keys = { + { + key = 'u', + mods = 'SHIFT|CTRL', + action = wezterm.action.CharSelect { + copy_on_select = true, + copy_to = 'ClipboardAndPrimarySelection', }, }, } diff --git a/docs/config/lua/keyassignment/ClearScrollback.md b/docs/config/lua/keyassignment/ClearScrollback.md index ef35d332a..850d11c16 100644 --- a/docs/config/lua/keyassignment/ClearScrollback.md +++ b/docs/config/lua/keyassignment/ClearScrollback.md @@ -11,32 +11,30 @@ Added a parameter that allows additionally clear the viewport: local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - -- Clears only the scrollback and leaves the viewport intact. - -- You won't see a difference in what is on screen, you just won't - -- be able to scroll back until you've output more stuff on screen. - -- This is the default behavior. - { - key = 'K', - mods = 'CTRL|SHIFT', - action = act.ClearScrollback 'ScrollbackOnly', - }, - -- Clears the scrollback and viewport leaving the prompt line the new first line. - { - key = 'K', - mods = 'CTRL|SHIFT', - action = act.ClearScrollback 'ScrollbackAndViewport', - }, - -- Clears the scrollback and viewport, and then sends CTRL-L to ask the - -- shell to redraw its prompt - { - key = 'K', - mods = 'CTRL|SHIFT', - action = act.Multiple { - act.ClearScrollback 'ScrollbackAndViewport', - act.SendKey { key = 'L', mods = 'CTRL' }, - }, +config.keys = { + -- Clears only the scrollback and leaves the viewport intact. + -- You won't see a difference in what is on screen, you just won't + -- be able to scroll back until you've output more stuff on screen. + -- This is the default behavior. + { + key = 'K', + mods = 'CTRL|SHIFT', + action = act.ClearScrollback 'ScrollbackOnly', + }, + -- Clears the scrollback and viewport leaving the prompt line the new first line. + { + key = 'K', + mods = 'CTRL|SHIFT', + action = act.ClearScrollback 'ScrollbackAndViewport', + }, + -- Clears the scrollback and viewport, and then sends CTRL-L to ask the + -- shell to redraw its prompt + { + key = 'K', + mods = 'CTRL|SHIFT', + action = act.Multiple { + act.ClearScrollback 'ScrollbackAndViewport', + act.SendKey { key = 'L', mods = 'CTRL' }, }, }, } diff --git a/docs/config/lua/keyassignment/ClearSelection.md b/docs/config/lua/keyassignment/ClearSelection.md index 0a94a5bbf..0f4af9ef0 100644 --- a/docs/config/lua/keyassignment/ClearSelection.md +++ b/docs/config/lua/keyassignment/ClearSelection.md @@ -12,28 +12,20 @@ CTRL-C to the terminal when there is no selection: local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - { - key = 'c', - mods = 'CTRL', - action = wezterm.action_callback(function(window, pane) - local has_selection = window:get_selection_text_for_pane(pane) ~= '' - if has_selection then - window:perform_action( - act.CopyTo 'ClipboardAndPrimarySelection', - pane - ) +config.keys = { + { + key = 'c', + mods = 'CTRL', + action = wezterm.action_callback(function(window, pane) + local has_selection = window:get_selection_text_for_pane(pane) ~= '' + if has_selection then + window:perform_action(act.CopyTo 'ClipboardAndPrimarySelection', pane) - window:perform_action(act.ClearSelection, pane) - else - window:perform_action( - act.SendKey { key = 'c', mods = 'CTRL' }, - pane - ) - end - end), - }, + window:perform_action(act.ClearSelection, pane) + else + window:perform_action(act.SendKey { key = 'c', mods = 'CTRL' }, pane) + end + end), }, } ``` diff --git a/docs/config/lua/keyassignment/CloseCurrentPane.md b/docs/config/lua/keyassignment/CloseCurrentPane.md index ef89689e8..293656133 100644 --- a/docs/config/lua/keyassignment/CloseCurrentPane.md +++ b/docs/config/lua/keyassignment/CloseCurrentPane.md @@ -8,15 +8,11 @@ The act of closing a pane shuts down the PTY associated with the pane and then kills the process associated with that pane. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { - key = 'w', - mods = 'CMD', - action = wezterm.action.CloseCurrentPane { confirm = true }, - }, +config.keys = { + { + key = 'w', + mods = 'CMD', + action = wezterm.action.CloseCurrentPane { confirm = true }, }, } ``` diff --git a/docs/config/lua/keyassignment/CloseCurrentTab.md b/docs/config/lua/keyassignment/CloseCurrentTab.md index 0b0dd5e08..2c9acfc5c 100644 --- a/docs/config/lua/keyassignment/CloseCurrentTab.md +++ b/docs/config/lua/keyassignment/CloseCurrentTab.md @@ -4,13 +4,11 @@ Closes the current tab, terminating all contained panes. If that was the last tab, closes that window. If that was the last window, wezterm terminates. ```lua -return { - keys = { - { - key = 'w', - mods = 'CMD', - action = wezterm.action.CloseCurrentTab { confirm = true }, - }, +config.keys = { + { + key = 'w', + mods = 'CMD', + action = wezterm.action.CloseCurrentTab { confirm = true }, }, } ``` diff --git a/docs/config/lua/keyassignment/CompleteSelection.md b/docs/config/lua/keyassignment/CompleteSelection.md index 0f78d2344..9382f75cb 100644 --- a/docs/config/lua/keyassignment/CompleteSelection.md +++ b/docs/config/lua/keyassignment/CompleteSelection.md @@ -11,19 +11,15 @@ which clipboard buffer the selection will populate; the copy action is now equivalent to [CopyTo](CopyTo.md). ```lua -local wezterm = require 'wezterm' - -return { - mouse_bindings = { - -- Change the default click behavior so that it only selects - -- text and doesn't open hyperlinks, and that it populates - -- the Clipboard rather the PrimarySelection which is part - -- of the default assignment for a left mouse click. - { - event = { Up = { streak = 1, button = 'Left' } }, - mods = 'NONE', - action = wezterm.action.CompleteSelection 'Clipboard', - }, +config.mouse_bindings = { + -- Change the default click behavior so that it only selects + -- text and doesn't open hyperlinks, and that it populates + -- the Clipboard rather the PrimarySelection which is part + -- of the default assignment for a left mouse click. + { + event = { Up = { streak = 1, button = 'Left' } }, + mods = 'NONE', + action = wezterm.action.CompleteSelection 'Clipboard', }, } ``` diff --git a/docs/config/lua/keyassignment/CompleteSelectionOrOpenLinkAtMouseCursor.md b/docs/config/lua/keyassignment/CompleteSelectionOrOpenLinkAtMouseCursor.md index c04a5019e..20f199019 100644 --- a/docs/config/lua/keyassignment/CompleteSelectionOrOpenLinkAtMouseCursor.md +++ b/docs/config/lua/keyassignment/CompleteSelectionOrOpenLinkAtMouseCursor.md @@ -12,17 +12,13 @@ which clipboard buffer the selection will populate. The copy action is now equivalent to [CopyTo](CopyTo.md). ```lua -local wezterm = require 'wezterm' - -return { - mouse_bindings = { - -- Change the default click behavior so that it populates - -- the Clipboard rather the PrimarySelection. - { - event = { Up = { streak = 1, button = 'Left' } }, - mods = 'NONE', - action = wezterm.action.CompleteSelectionOrOpenLinkAtMouseCursor 'Clipboard', - }, +config.mouse_bindings = { + -- Change the default click behavior so that it populates + -- the Clipboard rather the PrimarySelection. + { + event = { Up = { streak = 1, button = 'Left' } }, + mods = 'NONE', + action = wezterm.action.CompleteSelectionOrOpenLinkAtMouseCursor 'Clipboard', }, } ``` diff --git a/docs/config/lua/keyassignment/Copy.md b/docs/config/lua/keyassignment/Copy.md index d721e60a1..b8ae7e209 100644 --- a/docs/config/lua/keyassignment/Copy.md +++ b/docs/config/lua/keyassignment/Copy.md @@ -15,11 +15,8 @@ This action has been removed. Please use [CopyTo](CopyTo.md) instead. ```lua -local wezterm = require 'wezterm' -return { - keys = { - { key = 'C', mods = 'CTRL', action = wezterm.action.Copy }, - }, +config.keys = { + { key = 'C', mods = 'CTRL', action = wezterm.action.Copy }, } ``` diff --git a/docs/config/lua/keyassignment/CopyTo.md b/docs/config/lua/keyassignment/CopyTo.md index 4703c50dc..b8877cfa2 100644 --- a/docs/config/lua/keyassignment/CopyTo.md +++ b/docs/config/lua/keyassignment/CopyTo.md @@ -9,15 +9,11 @@ Possible values for destination are: * `ClipboardAndPrimarySelection` - Copy to both the clipboard and the primary selection. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { - key = 'C', - mods = 'CTRL', - action = wezterm.action.CopyTo 'ClipboardAndPrimarySelection', - }, +config.keys = { + { + key = 'C', + mods = 'CTRL', + action = wezterm.action.CopyTo 'ClipboardAndPrimarySelection', }, } ``` diff --git a/docs/config/lua/keyassignment/DecreaseFontSize.md b/docs/config/lua/keyassignment/DecreaseFontSize.md index b57991057..386450bbd 100644 --- a/docs/config/lua/keyassignment/DecreaseFontSize.md +++ b/docs/config/lua/keyassignment/DecreaseFontSize.md @@ -3,12 +3,8 @@ Decreases the font size of the current window by 10% ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { key = '-', mods = 'CTRL', action = wezterm.action.DecreaseFontSize }, - }, +config.keys = { + { key = '-', mods = 'CTRL', action = wezterm.action.DecreaseFontSize }, } ``` diff --git a/docs/config/lua/keyassignment/DetachDomain.md b/docs/config/lua/keyassignment/DetachDomain.md index 1e01e089d..618964579 100644 --- a/docs/config/lua/keyassignment/DetachDomain.md +++ b/docs/config/lua/keyassignment/DetachDomain.md @@ -14,27 +14,25 @@ error log/debug overlay. local wezterm = require 'wezterm' local act = wezterm.action -return { - ssh_domains = { - { - name = 'devhost', - remote_address = 'devhost.example.com', - }, +config.ssh_domains = { + { + name = 'devhost', + remote_address = 'devhost.example.com', }, - keys = { - { key = 'U', mods = 'CTRL|SHIFT', action = act.AttachDomain 'devhost' }, - -- Detaches the domain associated with the current pane - { - key = 'D', - mods = 'CTRL|SHIFT', - action = act.DetachDomain 'CurrentPaneDomain', - }, - -- Detaches the "devhost" domain - { - key = 'E', - mods = 'CTRL|SHIFT', - action = act.DetachDomain { DomainName = 'devhost' }, - }, +} +config.keys = { + { key = 'U', mods = 'CTRL|SHIFT', action = act.AttachDomain 'devhost' }, + -- Detaches the domain associated with the current pane + { + key = 'D', + mods = 'CTRL|SHIFT', + action = act.DetachDomain 'CurrentPaneDomain', + }, + -- Detaches the "devhost" domain + { + key = 'E', + mods = 'CTRL|SHIFT', + action = act.DetachDomain { DomainName = 'devhost' }, }, } ``` diff --git a/docs/config/lua/keyassignment/DisableDefaultAssignment.md b/docs/config/lua/keyassignment/DisableDefaultAssignment.md index d8fab760e..d09cf57e8 100644 --- a/docs/config/lua/keyassignment/DisableDefaultAssignment.md +++ b/docs/config/lua/keyassignment/DisableDefaultAssignment.md @@ -6,17 +6,13 @@ default assignments and cause the key press to be propagated through to the tab for processing. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - -- Turn off the default CMD-m Hide action, allowing CMD-m to - -- be potentially recognized and handled by the tab - { - key = 'm', - mods = 'CMD', - action = wezterm.action.DisableDefaultAssignment, - }, +config.keys = { + -- Turn off the default CMD-m Hide action, allowing CMD-m to + -- be potentially recognized and handled by the tab + { + key = 'm', + mods = 'CMD', + action = wezterm.action.DisableDefaultAssignment, }, } ``` diff --git a/docs/config/lua/keyassignment/ExtendSelectionToMouseCursor.md b/docs/config/lua/keyassignment/ExtendSelectionToMouseCursor.md index bab221b8b..cc6403436 100644 --- a/docs/config/lua/keyassignment/ExtendSelectionToMouseCursor.md +++ b/docs/config/lua/keyassignment/ExtendSelectionToMouseCursor.md @@ -9,15 +9,11 @@ the scope of the selection. The mode argument can also be `"Block"` to enable a rectangular block selection. ```lua -local wezterm = require 'wezterm' - -return { - mouse_bindings = { - { - event = { Up = { streak = 1, button = 'Left' } }, - mods = 'SHIFT', - action = wezterm.action.ExtendSelectionToMouseCursor 'Word', - }, +config.mouse_bindings = { + { + event = { Up = { streak = 1, button = 'Left' } }, + mods = 'SHIFT', + action = wezterm.action.ExtendSelectionToMouseCursor 'Word', }, } ``` diff --git a/docs/config/lua/keyassignment/Hide.md b/docs/config/lua/keyassignment/Hide.md index cf6d05de2..201499fb7 100644 --- a/docs/config/lua/keyassignment/Hide.md +++ b/docs/config/lua/keyassignment/Hide.md @@ -3,11 +3,7 @@ Hides (or minimizes, depending on the platform) the current window. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { key = 'h', mods = 'CMD', action = wezterm.action.Hide }, - }, +config.keys = { + { key = 'h', mods = 'CMD', action = wezterm.action.Hide }, } ``` diff --git a/docs/config/lua/keyassignment/HideApplication.md b/docs/config/lua/keyassignment/HideApplication.md index 5591abe0f..6925da81b 100644 --- a/docs/config/lua/keyassignment/HideApplication.md +++ b/docs/config/lua/keyassignment/HideApplication.md @@ -3,11 +3,7 @@ On macOS, hide the WezTerm application. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { key = 'h', mods = 'CMD', action = wezterm.action.HideApplication }, - }, +config.keys = { + { key = 'h', mods = 'CMD', action = wezterm.action.HideApplication }, } ``` diff --git a/docs/config/lua/keyassignment/IncreaseFontSize.md b/docs/config/lua/keyassignment/IncreaseFontSize.md index 41c64ace2..827178679 100644 --- a/docs/config/lua/keyassignment/IncreaseFontSize.md +++ b/docs/config/lua/keyassignment/IncreaseFontSize.md @@ -3,12 +3,8 @@ Increases the font size of the current window by 10% ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { key = '=', mods = 'CTRL', action = wezterm.action.IncreaseFontSize }, - }, +config.keys = { + { key = '=', mods = 'CTRL', action = wezterm.action.IncreaseFontSize }, } ``` diff --git a/docs/config/lua/keyassignment/MoveTab.md b/docs/config/lua/keyassignment/MoveTab.md index 29f599036..643dc2c80 100644 --- a/docs/config/lua/keyassignment/MoveTab.md +++ b/docs/config/lua/keyassignment/MoveTab.md @@ -6,20 +6,20 @@ from the left, and so on. ```lua local wezterm = require 'wezterm' +local config = {} + +config.keys = {} -local mykeys = {} for i = 1, 8 do -- CTRL+ALT + number to move to that position - table.insert(mykeys, { + table.insert(config.keys, { key = tostring(i), mods = 'CTRL|ALT', action = wezterm.action.MoveTab(i - 1), }) end -return { - keys = mykeys, -} +return config ``` diff --git a/docs/config/lua/keyassignment/MoveTabRelative.md b/docs/config/lua/keyassignment/MoveTabRelative.md index dfb09dac7..5c388912d 100644 --- a/docs/config/lua/keyassignment/MoveTabRelative.md +++ b/docs/config/lua/keyassignment/MoveTabRelative.md @@ -5,14 +5,11 @@ offset. eg: `-1` moves the tab to the left of the current tab, while `1` moves the tab to the right. ```lua -local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - { key = '{', mods = 'SHIFT|ALT', action = act.MoveTabRelative(-1) }, - { key = '}', mods = 'SHIFT|ALT', action = act.MoveTabRelative(1) }, - }, +config.keys = { + { key = '{', mods = 'SHIFT|ALT', action = act.MoveTabRelative(-1) }, + { key = '}', mods = 'SHIFT|ALT', action = act.MoveTabRelative(1) }, } ``` diff --git a/docs/config/lua/keyassignment/Multiple.md b/docs/config/lua/keyassignment/Multiple.md index b8b1b4b57..c7e8e3759 100644 --- a/docs/config/lua/keyassignment/Multiple.md +++ b/docs/config/lua/keyassignment/Multiple.md @@ -8,19 +8,16 @@ want a single key press to trigger multiple actions. The example below causes `LeftArrow` to effectively type `left`: ```lua -local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - { - key = 'LeftArrow', - action = act.Multiple { - act.SendKey { key = 'l' }, - act.SendKey { key = 'e' }, - act.SendKey { key = 'f' }, - act.SendKey { key = 't' }, - }, +config.keys = { + { + key = 'LeftArrow', + action = act.Multiple { + act.SendKey { key = 'l' }, + act.SendKey { key = 'e' }, + act.SendKey { key = 'f' }, + act.SendKey { key = 't' }, }, }, } diff --git a/docs/config/lua/keyassignment/Nop.md b/docs/config/lua/keyassignment/Nop.md index bc78a1735..33ef2c0fc 100644 --- a/docs/config/lua/keyassignment/Nop.md +++ b/docs/config/lua/keyassignment/Nop.md @@ -7,13 +7,9 @@ If instead of this you want the key presses to pass through to the terminal, look at [DisableDefaultAssignment](DisableDefaultAssignment.md). ```lua -local wezterm = require 'wezterm' - -return { - keys = { - -- Turn off any side effects from pressing CMD-m - { key = 'm', mods = 'CMD', action = wezterm.action.Nop }, - }, +config.keys = { + -- Turn off any side effects from pressing CMD-m + { key = 'm', mods = 'CMD', action = wezterm.action.Nop }, } ``` diff --git a/docs/config/lua/keyassignment/OpenLinkAtMouseCursor.md b/docs/config/lua/keyassignment/OpenLinkAtMouseCursor.md index 9bac61e65..0aed4971e 100644 --- a/docs/config/lua/keyassignment/OpenLinkAtMouseCursor.md +++ b/docs/config/lua/keyassignment/OpenLinkAtMouseCursor.md @@ -4,16 +4,12 @@ If the current mouse cursor position is over a cell that contains a hyperlink, this action causes that link to be opened. ```lua -local wezterm = require 'wezterm' - -return { - mouse_bindings = { - -- Ctrl-click will open the link under the mouse cursor - { - event = { Up = { streak = 1, button = 'Left' } }, - mods = 'CTRL', - action = wezterm.action.OpenLinkAtMouseCursor, - }, +config.mouse_bindings = { + -- Ctrl-click will open the link under the mouse cursor + { + event = { Up = { streak = 1, button = 'Left' } }, + mods = 'CTRL', + action = wezterm.action.OpenLinkAtMouseCursor, }, } ``` diff --git a/docs/config/lua/keyassignment/PaneSelect.md b/docs/config/lua/keyassignment/PaneSelect.md index 8820a0494..878ffb64d 100644 --- a/docs/config/lua/keyassignment/PaneSelect.md +++ b/docs/config/lua/keyassignment/PaneSelect.md @@ -23,29 +23,27 @@ The selection alphabet defaults to the same value as [quick_select_alphabet](../ local wezterm = require 'wezterm' local act = wezterm.action -return { - -- 36 is the default, but you can choose a different size. - -- Uses the same font as window_frame.font - -- pane_select_font_size=36, +-- 36 is the default, but you can choose a different size. +-- Uses the same font as window_frame.font +-- config.pane_select_font_size=36, - keys = { - -- activate pane selection mode with the default alphabet (labels are "a", "s", "d", "f" and so on) - { key = '8', mods = 'CTRL', action = act.PaneSelect }, - -- activate pane selection mode with numeric labels - { - key = '9', - mods = 'CTRL', - action = act.PaneSelect { - alphabet = '1234567890', - }, +config.keys = { + -- activate pane selection mode with the default alphabet (labels are "a", "s", "d", "f" and so on) + { key = '8', mods = 'CTRL', action = act.PaneSelect }, + -- activate pane selection mode with numeric labels + { + key = '9', + mods = 'CTRL', + action = act.PaneSelect { + alphabet = '1234567890', }, - -- show the pane selection mode, but have it swap the active and selected panes - { - key = '0', - mods = 'CTRL', - action = act.PaneSelect { - mode = 'SwapWithActive', - }, + }, + -- show the pane selection mode, but have it swap the active and selected panes + { + key = '0', + mods = 'CTRL', + action = act.PaneSelect { + mode = 'SwapWithActive', }, }, } diff --git a/docs/config/lua/keyassignment/Paste.md b/docs/config/lua/keyassignment/Paste.md index 3c36ffe5f..5f25efabf 100644 --- a/docs/config/lua/keyassignment/Paste.md +++ b/docs/config/lua/keyassignment/Paste.md @@ -9,28 +9,6 @@ a future release; please use [PasteFrom](PasteFrom.md) instead. *Since: nightly builds only* -This action has been removed. Please use [PasteFrom](PasteFrom.md) instead. - -## Example - -```lua -local wezterm = require 'wezterm' - -return { - keys = { - { key = 'v', mods = 'SHIFT|CTRL', action = wezterm.action.Paste }, - }, - - -- Middle mouse button pastes the clipboard. - -- Note that this is the default so you needn't copy this. - mouse_bindings = { - { - event = { Up = { streak = 1, button = 'Middle' } }, - mods = 'NONE', - action = wezterm.action.Paste, - }, - }, -} -``` - +!!! warning + This action has been removed. Please use [PasteFrom](PasteFrom.md) instead. diff --git a/docs/config/lua/keyassignment/PasteFrom.md b/docs/config/lua/keyassignment/PasteFrom.md index 547a70427..88702dc2c 100644 --- a/docs/config/lua/keyassignment/PasteFrom.md +++ b/docs/config/lua/keyassignment/PasteFrom.md @@ -9,20 +9,16 @@ Possible values for source are: * `Clipboard` - paste from the system clipboard * `PrimarySelection` - paste from the primary selection buffer -See also [Paste](Paste.md). - ```lua local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - -- paste from the clipboard - { key = 'V', mods = 'CTRL', action = act.PasteFrom 'Clipboard' }, +config.keys = { + -- paste from the clipboard + { key = 'V', mods = 'CTRL', action = act.PasteFrom 'Clipboard' }, - -- paste from the primary selection - { key = 'V', mods = 'CTRL', action = act.PasteFrom 'PrimarySelection' }, - }, + -- paste from the primary selection + { key = 'V', mods = 'CTRL', action = act.PasteFrom 'PrimarySelection' }, } ``` diff --git a/docs/config/lua/keyassignment/PastePrimarySelection.md b/docs/config/lua/keyassignment/PastePrimarySelection.md index fbaa5c580..5692db09c 100644 --- a/docs/config/lua/keyassignment/PastePrimarySelection.md +++ b/docs/config/lua/keyassignment/PastePrimarySelection.md @@ -18,18 +18,16 @@ This action has been removed. Please use [PasteFrom](PasteFrom.md) instead. local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - { key = 'v', mods = 'SHIFT|CTRL', action = act.PastePrimarySelection }, - }, +config.keys = { + { key = 'v', mods = 'SHIFT|CTRL', action = act.PastePrimarySelection }, +} - -- Middle mouse button pastes the primary selection. - mouse_bindings = { - { - event = { Up = { streak = 1, button = 'Middle' } }, - mods = 'NONE', - action = act.PastePrimarySelection, - }, +-- Middle mouse button pastes the primary selection. +config.mouse_bindings = { + { + event = { Up = { streak = 1, button = 'Middle' } }, + mods = 'NONE', + action = act.PastePrimarySelection, }, } ``` diff --git a/docs/config/lua/keyassignment/QuickSelect.md b/docs/config/lua/keyassignment/QuickSelect.md index 9bfc2b4e9..8f4a64ee7 100644 --- a/docs/config/lua/keyassignment/QuickSelect.md +++ b/docs/config/lua/keyassignment/QuickSelect.md @@ -7,10 +7,8 @@ Activates [Quick Select Mode](../../../quickselect.md). ```lua local wezterm = require 'wezterm' -return { - keys = { - { key = ' ', mods = 'SHIFT|CTRL', action = wezterm.action.QuickSelect }, - }, +config.keys = { + { key = ' ', mods = 'SHIFT|CTRL', action = wezterm.action.QuickSelect }, } ``` diff --git a/docs/config/lua/keyassignment/QuickSelectArgs.md b/docs/config/lua/keyassignment/QuickSelectArgs.md index 491f3024d..cc40accd3 100644 --- a/docs/config/lua/keyassignment/QuickSelectArgs.md +++ b/docs/config/lua/keyassignment/QuickSelectArgs.md @@ -13,15 +13,13 @@ configuration: ```lua local wezterm = require 'wezterm' -return { - keys = { - { - key = 'P', - mods = 'CTRL', - action = wezterm.action.QuickSelectArgs { - patterns = { - 'https?://\\S+', - }, +config.keys = { + { + key = 'P', + mods = 'CTRL', + action = wezterm.action.QuickSelectArgs { + patterns = { + 'https?://\\S+', }, }, }, @@ -43,22 +41,20 @@ the selected URL using the web browser: ```lua local wezterm = require 'wezterm' -return { - keys = { - { - key = 'P', - mods = 'CTRL', - action = wezterm.action.QuickSelectArgs { - label = 'open url', - patterns = { - 'https?://\\S+', - }, - action = wezterm.action_callback(function(window, pane) - local url = window:get_selection_text_for_pane(pane) - wezterm.log_info('opening: ' .. url) - wezterm.open_with(url) - end), +config.keys = { + { + key = 'P', + mods = 'CTRL', + action = wezterm.action.QuickSelectArgs { + label = 'open url', + patterns = { + 'https?://\\S+', }, + action = wezterm.action_callback(function(window, pane) + local url = window:get_selection_text_for_pane(pane) + wezterm.log_info('opening: ' .. url) + wezterm.open_with(url) + end), }, }, } diff --git a/docs/config/lua/keyassignment/QuitApplication.md b/docs/config/lua/keyassignment/QuitApplication.md index 53c15e60a..ff0ceb638 100644 --- a/docs/config/lua/keyassignment/QuitApplication.md +++ b/docs/config/lua/keyassignment/QuitApplication.md @@ -5,10 +5,8 @@ Terminate the WezTerm application, killing all tabs. ```lua local wezterm = require 'wezterm' -return { - keys = { - { key = 'q', mods = 'CMD', action = wezterm.action.QuitApplication }, - }, +config.keys = { + { key = 'q', mods = 'CMD', action = wezterm.action.QuitApplication }, } ``` diff --git a/docs/config/lua/keyassignment/ReloadConfiguration.md b/docs/config/lua/keyassignment/ReloadConfiguration.md index fdeb9f4d7..619d161b4 100644 --- a/docs/config/lua/keyassignment/ReloadConfiguration.md +++ b/docs/config/lua/keyassignment/ReloadConfiguration.md @@ -3,15 +3,11 @@ Explicitly reload the configuration. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { - key = 'r', - mods = 'CMD|SHIFT', - action = wezterm.action.ReloadConfiguration, - }, +config.keys = { + { + key = 'r', + mods = 'CMD|SHIFT', + action = wezterm.action.ReloadConfiguration, }, } ``` diff --git a/docs/config/lua/keyassignment/ResetFontAndWindowSize.md b/docs/config/lua/keyassignment/ResetFontAndWindowSize.md index 2d68e68d5..ab3145edc 100644 --- a/docs/config/lua/keyassignment/ResetFontAndWindowSize.md +++ b/docs/config/lua/keyassignment/ResetFontAndWindowSize.md @@ -6,15 +6,11 @@ Reset both the font size and the terminal dimensions for the current window to the values specified by your `font`, `initial_rows`, and `initial_cols` configuration. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { - key = '0', - mods = 'CTRL', - action = wezterm.action.ResetFontAndWindowSize, - }, +config.keys = { + { + key = '0', + mods = 'CTRL', + action = wezterm.action.ResetFontAndWindowSize, }, } ``` diff --git a/docs/config/lua/keyassignment/ResetFontSize.md b/docs/config/lua/keyassignment/ResetFontSize.md index 108fa7ebf..54d90ebdf 100644 --- a/docs/config/lua/keyassignment/ResetFontSize.md +++ b/docs/config/lua/keyassignment/ResetFontSize.md @@ -3,12 +3,8 @@ Reset the font size for the current window to the value in your configuration ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { key = '0', mods = 'CTRL', action = wezterm.action.ResetFontSize }, - }, +config.keys = { + { key = '0', mods = 'CTRL', action = wezterm.action.ResetFontSize }, } ``` diff --git a/docs/config/lua/keyassignment/RotatePanes.md b/docs/config/lua/keyassignment/RotatePanes.md index c2185840b..5beb2b7e2 100644 --- a/docs/config/lua/keyassignment/RotatePanes.md +++ b/docs/config/lua/keyassignment/RotatePanes.md @@ -38,18 +38,15 @@ above, the left-most pane is still the largest of the panes despite rotating the panes withing those placements. ```lua -local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - { - key = 'b', - mods = 'CTRL', - action = act.RotatePanes 'CounterClockwise', - }, - { key = 'n', mods = 'CTRL', action = act.RotatePanes 'Clockwise' }, +config.keys = { + { + key = 'b', + mods = 'CTRL', + action = act.RotatePanes 'CounterClockwise', }, + { key = 'n', mods = 'CTRL', action = act.RotatePanes 'Clockwise' }, } ``` diff --git a/docs/config/lua/keyassignment/ScrollByCurrentEventWheelDelta.md b/docs/config/lua/keyassignment/ScrollByCurrentEventWheelDelta.md index 6e9eda692..26213d7a5 100644 --- a/docs/config/lua/keyassignment/ScrollByCurrentEventWheelDelta.md +++ b/docs/config/lua/keyassignment/ScrollByCurrentEventWheelDelta.md @@ -12,21 +12,18 @@ there's not much point adding this to your config unless you also have set to `true`. ```lua -local wezterm = require 'wezterm' local act = wezterm.action -return { - mouse_bindings = { - { - event = { Down = { streak = 1, button = { WheelUp = 1 } } }, - mods = 'NONE', - action = act.ScrollByCurrentEventWheelDelta, - }, - { - event = { Down = { streak = 1, button = { WheelDown = 1 } } }, - mods = 'NONE', - action = act.ScrollByCurrentEventWheelDelta, - }, +config.mouse_bindings = { + { + event = { Down = { streak = 1, button = { WheelUp = 1 } } }, + mods = 'NONE', + action = act.ScrollByCurrentEventWheelDelta, + }, + { + event = { Down = { streak = 1, button = { WheelDown = 1 } } }, + mods = 'NONE', + action = act.ScrollByCurrentEventWheelDelta, }, } ``` diff --git a/docs/config/lua/keyassignment/ScrollByLine.md b/docs/config/lua/keyassignment/ScrollByLine.md index 8ceb4420a..595e5ac92 100644 --- a/docs/config/lua/keyassignment/ScrollByLine.md +++ b/docs/config/lua/keyassignment/ScrollByLine.md @@ -6,14 +6,11 @@ Adjusts the scroll position by the number of lines specified by the argument. Negative values scroll upwards, while positive values scroll downwards. ```lua -local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - { key = 'UpArrow', mods = 'SHIFT', action = act.ScrollByLine(-1) }, - { key = 'DownArrow', mods = 'SHIFT', action = act.ScrollByLine(1) }, - }, +config.keys = { + { key = 'UpArrow', mods = 'SHIFT', action = act.ScrollByLine(-1) }, + { key = 'DownArrow', mods = 'SHIFT', action = act.ScrollByLine(1) }, } ``` diff --git a/docs/config/lua/keyassignment/ScrollByPage.md b/docs/config/lua/keyassignment/ScrollByPage.md index abdd46e1e..26bcd93d4 100644 --- a/docs/config/lua/keyassignment/ScrollByPage.md +++ b/docs/config/lua/keyassignment/ScrollByPage.md @@ -4,14 +4,11 @@ Adjusts the scroll position by the number of pages specified by the argument. Negative values scroll upwards, while positive values scroll downwards. ```lua -local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - { key = 'PageUp', mods = 'SHIFT', action = act.ScrollByPage(-1) }, - { key = 'PageDown', mods = 'SHIFT', action = act.ScrollByPage(1) }, - }, +config.keys = { + { key = 'PageUp', mods = 'SHIFT', action = act.ScrollByPage(-1) }, + { key = 'PageDown', mods = 'SHIFT', action = act.ScrollByPage(1) }, } ``` @@ -21,12 +18,10 @@ You may now use floating point values to scroll by partial pages. This example how to make the `PageUp`/`PageDown` scroll by half a page at a time: ```lua -local wezterm = require 'wezterm' +local act = wezterm.action -return { - keys = { - { key = 'PageUp', mods = 'SHIFT', action = act.ScrollByPage(-0.5) }, - { key = 'PageDown', mods = 'SHIFT', action = act.ScrollByPage(0.5) }, - }, +config.keys = { + { key = 'PageUp', mods = 'SHIFT', action = act.ScrollByPage(-0.5) }, + { key = 'PageDown', mods = 'SHIFT', action = act.ScrollByPage(0.5) }, } ``` diff --git a/docs/config/lua/keyassignment/ScrollToPrompt.md b/docs/config/lua/keyassignment/ScrollToPrompt.md index 49e62a7ce..9ee8ce4d7 100644 --- a/docs/config/lua/keyassignment/ScrollToPrompt.md +++ b/docs/config/lua/keyassignment/ScrollToPrompt.md @@ -21,14 +21,11 @@ For the purposes of scrolling, the "current zone" is considered to be the one closest to the top of the viewport. ```lua -local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - { key = 'UpArrow', mods = 'SHIFT', action = act.ScrollToPrompt(-1) }, - { key = 'DownArrow', mods = 'SHIFT', action = act.ScrollToPrompt(1) }, - }, +config.keys = { + { key = 'UpArrow', mods = 'SHIFT', action = act.ScrollToPrompt(-1) }, + { key = 'DownArrow', mods = 'SHIFT', action = act.ScrollToPrompt(1) }, } ``` diff --git a/docs/config/lua/keyassignment/Search.md b/docs/config/lua/keyassignment/Search.md index 51c81ab7a..0162fcf8c 100644 --- a/docs/config/lua/keyassignment/Search.md +++ b/docs/config/lua/keyassignment/Search.md @@ -12,32 +12,29 @@ here](https://docs.rs/regex/1.3.9/regex/#syntax). ```lua -local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - -- search for things that look like git hashes - { - key = 'H', - mods = 'SHIFT|CTRL', - action = act.Search { - Regex = '[a-f0-9]{6,}', - }, - }, - -- search for the lowercase string "hash" matching the case exactly - { - key = 'H', - mods = 'SHIFT|CTRL', - action = act.Search { CaseSensitiveString = 'hash' }, - }, - -- search for the string "hash" matching regardless of case - { - key = 'H', - mods = 'SHIFT|CTRL', - action = act.Search { CaseInSensitiveString = 'hash' }, +config.keys = { + -- search for things that look like git hashes + { + key = 'H', + mods = 'SHIFT|CTRL', + action = act.Search { + Regex = '[a-f0-9]{6,}', }, }, + -- search for the lowercase string "hash" matching the case exactly + { + key = 'H', + mods = 'SHIFT|CTRL', + action = act.Search { CaseSensitiveString = 'hash' }, + }, + -- search for the string "hash" matching regardless of case + { + key = 'H', + mods = 'SHIFT|CTRL', + action = act.Search { CaseInSensitiveString = 'hash' }, + }, } ``` diff --git a/docs/config/lua/keyassignment/SelectTextAtMouseCursor.md b/docs/config/lua/keyassignment/SelectTextAtMouseCursor.md index cd965bc00..539007396 100644 --- a/docs/config/lua/keyassignment/SelectTextAtMouseCursor.md +++ b/docs/config/lua/keyassignment/SelectTextAtMouseCursor.md @@ -14,15 +14,11 @@ automatically select the entire command output when clicking on any character withing that region: ```lua -local wezterm = require 'wezterm' - -return { - mouse_bindings = { - { - event = { Down = { streak = 3, button = 'Left' } }, - action = wezterm.action.SelectTextAtMouseCursor 'SemanticZone', - mods = 'NONE', - }, +config.mouse_bindings = { + { + event = { Down = { streak = 3, button = 'Left' } }, + action = wezterm.action.SelectTextAtMouseCursor 'SemanticZone', + mods = 'NONE', }, } ``` diff --git a/docs/config/lua/keyassignment/SendKey.md b/docs/config/lua/keyassignment/SendKey.md index 99dfd3533..94b859ea7 100644 --- a/docs/config/lua/keyassignment/SendKey.md +++ b/docs/config/lua/keyassignment/SendKey.md @@ -18,26 +18,23 @@ shells and applications. The following configuration achieves that same effect: ```lua -local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - -- Rebind OPT-Left, OPT-Right as ALT-b, ALT-f respectively to match Terminal.app behavior - { - key = 'LeftArrow', - mods = 'OPT', - action = act.SendKey { - key = 'b', - mods = 'ALT', - }, - }, - { - key = 'RightArrow', - mods = 'OPT', - action = act.SendKey { key = 'f', mods = 'ALT' }, +config.keys = { + -- Rebind OPT-Left, OPT-Right as ALT-b, ALT-f respectively to match Terminal.app behavior + { + key = 'LeftArrow', + mods = 'OPT', + action = act.SendKey { + key = 'b', + mods = 'ALT', }, }, + { + key = 'RightArrow', + mods = 'OPT', + action = act.SendKey { key = 'f', mods = 'ALT' }, + }, } ``` diff --git a/docs/config/lua/keyassignment/SendString.md b/docs/config/lua/keyassignment/SendString.md index 1313af164..ece09c320 100644 --- a/docs/config/lua/keyassignment/SendString.md +++ b/docs/config/lua/keyassignment/SendString.md @@ -4,12 +4,8 @@ Sends the string specified argument to the terminal in the current tab, as though that text were literally typed into the terminal. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { key = 'm', mods = 'CMD', action = wezterm.action.SendString 'Hello' }, - }, +config.keys = { + { key = 'm', mods = 'CMD', action = wezterm.action.SendString 'Hello' }, } ``` @@ -20,16 +16,13 @@ keybinding for moving backwards/forwards through a word in a line editor. `\x1b` is the ESC character: ```lua -local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - -- Make Option-Left equivalent to Alt-b which many line editors interpret as backward-word - { key = 'LeftArrow', mods = 'OPT', action = act.SendString '\x1bb' }, - -- Make Option-Right equivalent to Alt-f; forward-word - { key = 'RightArrow', mods = 'OPT', action = act.SendString '\x1bf' }, - }, +config.keys = { + -- Make Option-Left equivalent to Alt-b which many line editors interpret as backward-word + { key = 'LeftArrow', mods = 'OPT', action = act.SendString '\x1bb' }, + -- Make Option-Right equivalent to Alt-f; forward-word + { key = 'RightArrow', mods = 'OPT', action = act.SendString '\x1bf' }, } ``` diff --git a/docs/config/lua/keyassignment/ShowDebugOverlay.md b/docs/config/lua/keyassignment/ShowDebugOverlay.md index b5945341d..58229a0a3 100644 --- a/docs/config/lua/keyassignment/ShowDebugOverlay.md +++ b/docs/config/lua/keyassignment/ShowDebugOverlay.md @@ -15,12 +15,8 @@ to dynamically assign event handlers for example. It is primarily useful for prototyping lua snippets before you integrate them fully into your config. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - -- CTRL-SHIFT-l activates the debug overlay - { key = 'L', mods = 'CTRL', action = wezterm.action.ShowDebugOverlay }, - }, +config.keys = { + -- CTRL-SHIFT-l activates the debug overlay + { key = 'L', mods = 'CTRL', action = wezterm.action.ShowDebugOverlay }, } ``` diff --git a/docs/config/lua/keyassignment/ShowLauncher.md b/docs/config/lua/keyassignment/ShowLauncher.md index 1fd811466..b838869bb 100644 --- a/docs/config/lua/keyassignment/ShowLauncher.md +++ b/docs/config/lua/keyassignment/ShowLauncher.md @@ -4,12 +4,8 @@ Activate the [Launcher Menu](../../launch.md#the-launcher-menu) in the current tab. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { key = 'l', mods = 'ALT', action = wezterm.action.ShowLauncher }, - }, +config.keys = { + { key = 'l', mods = 'ALT', action = wezterm.action.ShowLauncher }, } ``` diff --git a/docs/config/lua/keyassignment/ShowLauncherArgs.md b/docs/config/lua/keyassignment/ShowLauncherArgs.md index 3d0520064..60f0a53a8 100644 --- a/docs/config/lua/keyassignment/ShowLauncherArgs.md +++ b/docs/config/lua/keyassignment/ShowLauncherArgs.md @@ -35,15 +35,11 @@ This example shows how to make `ALT-9` activate the launcher directly in fuzzy matching mode, and have it show only tabs: ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { - key = '9', - mods = 'ALT', - action = wezterm.action.ShowLauncherArgs { flags = 'FUZZY|TABS' }, - }, +config.keys = { + { + key = '9', + mods = 'ALT', + action = wezterm.action.ShowLauncherArgs { flags = 'FUZZY|TABS' }, }, } ``` diff --git a/docs/config/lua/keyassignment/ShowTabNavigator.md b/docs/config/lua/keyassignment/ShowTabNavigator.md index d5d0d99dc..3a8046422 100644 --- a/docs/config/lua/keyassignment/ShowTabNavigator.md +++ b/docs/config/lua/keyassignment/ShowTabNavigator.md @@ -5,12 +5,8 @@ navigator displays a list of tabs and allows you to select and activate a tab from that list. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { key = 'F9', mods = 'ALT', action = wezterm.action.ShowTabNavigator }, - }, +config.keys = { + { key = 'F9', mods = 'ALT', action = wezterm.action.ShowTabNavigator }, } ``` diff --git a/docs/config/lua/keyassignment/SpawnCommandInNewTab.md b/docs/config/lua/keyassignment/SpawnCommandInNewTab.md index ce3c04ab9..277329f82 100644 --- a/docs/config/lua/keyassignment/SpawnCommandInNewTab.md +++ b/docs/config/lua/keyassignment/SpawnCommandInNewTab.md @@ -5,17 +5,13 @@ The argument is a `SpawnCommand` struct that is discussed in more detail in the [SpawnCommand](../SpawnCommand.md) docs. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - -- CMD-y starts `top` in a new tab - { - key = 'y', - mods = 'CMD', - action = wezterm.action.SpawnCommandInNewTab { - args = { 'top' }, - }, +config.keys = { + -- CMD-y starts `top` in a new tab + { + key = 'y', + mods = 'CMD', + action = wezterm.action.SpawnCommandInNewTab { + args = { 'top' }, }, }, } diff --git a/docs/config/lua/keyassignment/SpawnCommandInNewWindow.md b/docs/config/lua/keyassignment/SpawnCommandInNewWindow.md index faf06d598..024013ccf 100644 --- a/docs/config/lua/keyassignment/SpawnCommandInNewWindow.md +++ b/docs/config/lua/keyassignment/SpawnCommandInNewWindow.md @@ -5,17 +5,13 @@ The argument is a `SpawnCommand` struct that is discussed in more detail in the [SpawnCommand](../SpawnCommand.md) docs. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - -- CMD-y starts `top` in a new window - { - key = 'y', - mods = 'CMD', - action = wezterm.action.SpawnCommandInNewWindow { - args = { 'top' }, - }, +config.keys = { + -- CMD-y starts `top` in a new window + { + key = 'y', + mods = 'CMD', + action = wezterm.action.SpawnCommandInNewWindow { + args = { 'top' }, }, }, } diff --git a/docs/config/lua/keyassignment/SpawnTab.md b/docs/config/lua/keyassignment/SpawnTab.md index 0b9139da4..2e3008cca 100644 --- a/docs/config/lua/keyassignment/SpawnTab.md +++ b/docs/config/lua/keyassignment/SpawnTab.md @@ -3,27 +3,24 @@ Create a new tab in the current window. The argument defines to which *domain* the tab belongs: ```lua -local wezterm = require 'wezterm' local act = wezterm.action -return { - keys = { - -- Create a new tab in the same domain as the current pane. - -- This is usually what you want. - { - key = 't', - mods = 'SHIFT|ALT', - action = act.SpawnTab 'CurrentPaneDomain', - }, - -- Create a new tab in the default domain - { key = 't', mods = 'SHIFT|ALT', action = act.SpawnTab 'DefaultDomain' }, - -- Create a tab in a named domain - { - key = 't', - mods = 'SHIFT|ALT', - action = act.SpawnTab { - DomainName = 'unix', - }, +config.keys = { + -- Create a new tab in the same domain as the current pane. + -- This is usually what you want. + { + key = 't', + mods = 'SHIFT|ALT', + action = act.SpawnTab 'CurrentPaneDomain', + }, + -- Create a new tab in the default domain + { key = 't', mods = 'SHIFT|ALT', action = act.SpawnTab 'DefaultDomain' }, + -- Create a tab in a named domain + { + key = 't', + mods = 'SHIFT|ALT', + action = act.SpawnTab { + DomainName = 'unix', }, }, } diff --git a/docs/config/lua/keyassignment/SpawnWindow.md b/docs/config/lua/keyassignment/SpawnWindow.md index e424c9288..17572c5a2 100644 --- a/docs/config/lua/keyassignment/SpawnWindow.md +++ b/docs/config/lua/keyassignment/SpawnWindow.md @@ -3,12 +3,8 @@ Create a new window containing a tab from the default tab domain. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { key = 'n', mods = 'SHIFT|CTRL', action = wezterm.action.SpawnWindow }, - }, +config.keys = { + { key = 'n', mods = 'SHIFT|CTRL', action = wezterm.action.SpawnWindow }, } ``` diff --git a/docs/config/lua/keyassignment/SplitHorizontal.md b/docs/config/lua/keyassignment/SplitHorizontal.md index 0eb636be0..dde96a119 100644 --- a/docs/config/lua/keyassignment/SplitHorizontal.md +++ b/docs/config/lua/keyassignment/SplitHorizontal.md @@ -6,16 +6,12 @@ Splits the current pane in half horizontally such that the current pane becomes the left half and the new right half spawns a new command. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - -- This will create a new split and run your default program inside it - { - key = '%', - mods = 'CTRL|SHIFT|ALT', - action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' }, - }, +config.keys = { + -- This will create a new split and run your default program inside it + { + key = '%', + mods = 'CTRL|SHIFT|ALT', + action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' }, }, } ``` @@ -24,17 +20,13 @@ return { specify what should be spawned into the new split. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - -- This will create a new split and run the `top` program inside it - { - key = '%', - mods = 'CTRL|SHIFT|ALT', - action = wezterm.action.SplitHorizontal { - args = { 'top' }, - }, +config.keys = { + -- This will create a new split and run the `top` program inside it + { + key = '%', + mods = 'CTRL|SHIFT|ALT', + action = wezterm.action.SplitHorizontal { + args = { 'top' }, }, }, } diff --git a/docs/config/lua/keyassignment/SplitPane.md b/docs/config/lua/keyassignment/SplitPane.md index e1aef44e4..3d62c8985 100644 --- a/docs/config/lua/keyassignment/SplitPane.md +++ b/docs/config/lua/keyassignment/SplitPane.md @@ -12,19 +12,15 @@ This assignment has a number of fields that control the overall action: * `top_level` - if set to `true`, rather than splitting the active pane, the split will be made at the root of the tab and effectively split the entire tab across the full extent possible. The default is `false`. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - -- This will create a new split and run the `top` program inside it - { - key = '%', - mods = 'CTRL|SHIFT|ALT', - action = wezterm.action.SplitPane { - direction = 'Left', - command = { args = { 'top' } }, - size = { Percent = 50 }, - }, +config.keys = { + -- This will create a new split and run the `top` program inside it + { + key = '%', + mods = 'CTRL|SHIFT|ALT', + action = wezterm.action.SplitPane { + direction = 'Left', + command = { args = { 'top' } }, + size = { Percent = 50 }, }, }, } diff --git a/docs/config/lua/keyassignment/SplitVertical.md b/docs/config/lua/keyassignment/SplitVertical.md index 322d6c060..3a97a4a84 100644 --- a/docs/config/lua/keyassignment/SplitVertical.md +++ b/docs/config/lua/keyassignment/SplitVertical.md @@ -6,16 +6,12 @@ Splits the current pane in half vertically such that the current pane becomes the top half and the new bottom half spawns a new command. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - -- This will create a new split and run your default program inside it - { - key = '"', - mods = 'CTRL|SHIFT|ALT', - action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' }, - }, +config.keys = { + -- This will create a new split and run your default program inside it + { + key = '"', + mods = 'CTRL|SHIFT|ALT', + action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' }, }, } ``` @@ -24,17 +20,13 @@ return { specify what should be spawned into the new split. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - -- This will create a new split and run the `top` program inside it - { - key = '"', - mods = 'CTRL|SHIFT|ALT', - action = wezterm.action.SplitVertical { - args = { 'top' }, - }, +config.keys = { + -- This will create a new split and run the `top` program inside it + { + key = '"', + mods = 'CTRL|SHIFT|ALT', + action = wezterm.action.SplitVertical { + args = { 'top' }, }, }, } diff --git a/docs/config/lua/keyassignment/StartWindowDrag.md b/docs/config/lua/keyassignment/StartWindowDrag.md index 09de990e6..f14a7d055 100644 --- a/docs/config/lua/keyassignment/StartWindowDrag.md +++ b/docs/config/lua/keyassignment/StartWindowDrag.md @@ -8,20 +8,16 @@ move to follow your mouse pointer until the mouse button is released. By default this is bound to SUPER + left mouse drag, as well as CTRL-SHIFT + left mouse drag. ```lua -local wezterm = require 'wezterm' - -return { - mouse_bindings = { - { - event = { Drag = { streak = 1, button = 'Left' } }, - mods = 'SUPER', - action = wezterm.action.StartWindowDrag, - }, - { - event = { Drag = { streak = 1, button = 'Left' } }, - mods = 'CTRL|SHIFT', - action = wezterm.action.StartWindowDrag, - }, +config.mouse_bindings = { + { + event = { Drag = { streak = 1, button = 'Left' } }, + mods = 'SUPER', + action = wezterm.action.StartWindowDrag, + }, + { + event = { Drag = { streak = 1, button = 'Left' } }, + mods = 'CTRL|SHIFT', + action = wezterm.action.StartWindowDrag, }, } ``` diff --git a/docs/config/lua/keyassignment/SwitchToWorkspace.md b/docs/config/lua/keyassignment/SwitchToWorkspace.md index 4d47b27ea..07d267c0f 100644 --- a/docs/config/lua/keyassignment/SwitchToWorkspace.md +++ b/docs/config/lua/keyassignment/SwitchToWorkspace.md @@ -10,44 +10,41 @@ Switch to a different workspace, creating it if it doesn't already exist. * `spawn` - a [SpawnCommand](../SpawnCommand.md) describing the command that should be started in the workspace if it doesn't already exist. If omitted, the default program will be spawned in the newly created workspace. ```lua -local wezterm = require 'wezterm' local act = wezterm.action wezterm.on('update-right-status', function(window, pane) window:set_right_status(window:active_workspace()) end) -return { - keys = { - -- Switch to the default workspace - { - key = 'y', - mods = 'CTRL|SHIFT', - action = act.SwitchToWorkspace { - name = 'default', +config.keys = { + -- Switch to the default workspace + { + key = 'y', + mods = 'CTRL|SHIFT', + action = act.SwitchToWorkspace { + name = 'default', + }, + }, + -- Switch to a monitoring workspace, which will have `top` launched into it + { + key = 'u', + mods = 'CTRL|SHIFT', + action = act.SwitchToWorkspace { + name = 'monitoring', + spawn = { + args = { 'top' }, }, }, - -- Switch to a monitoring workspace, which will have `top` launched into it - { - key = 'u', - mods = 'CTRL|SHIFT', - action = act.SwitchToWorkspace { - name = 'monitoring', - spawn = { - args = { 'top' }, - }, - }, - }, - -- Create a new workspace with a random name and switch to it - { key = 'i', mods = 'CTRL|SHIFT', action = act.SwitchToWorkspace }, - -- Show the launcher in fuzzy selection mode and have it list all workspaces - -- and allow activating one. - { - key = '9', - mods = 'ALT', - action = act.ShowLauncherArgs { - flags = 'FUZZY|WORKSPACES', - }, + }, + -- Create a new workspace with a random name and switch to it + { key = 'i', mods = 'CTRL|SHIFT', action = act.SwitchToWorkspace }, + -- Show the launcher in fuzzy selection mode and have it list all workspaces + -- and allow activating one. + { + key = '9', + mods = 'ALT', + action = act.ShowLauncherArgs { + flags = 'FUZZY|WORKSPACES', }, }, } diff --git a/docs/config/lua/keyassignment/SwitchWorkspaceRelative.md b/docs/config/lua/keyassignment/SwitchWorkspaceRelative.md index 55486b759..9a7fb2794 100644 --- a/docs/config/lua/keyassignment/SwitchWorkspaceRelative.md +++ b/docs/config/lua/keyassignment/SwitchWorkspaceRelative.md @@ -21,16 +21,14 @@ wezterm.on('update-right-status', function(window, pane) window:set_right_status(window:active_workspace()) end) -return { - keys = { - { - key = '9', - mods = 'ALT', - action = act.ShowLauncherArgs { flags = 'FUZZY|WORKSPACES' }, - }, - { key = 'n', mods = 'CTRL', action = act.SwitchWorkspaceRelative(1) }, - { key = 'p', mods = 'CTRL', action = act.SwitchWorkspaceRelative(-1) }, +config.keys = { + { + key = '9', + mods = 'ALT', + action = act.ShowLauncherArgs { flags = 'FUZZY|WORKSPACES' }, }, + { key = 'n', mods = 'CTRL', action = act.SwitchWorkspaceRelative(1) }, + { key = 'p', mods = 'CTRL', action = act.SwitchWorkspaceRelative(-1) }, } ``` diff --git a/docs/config/lua/keyassignment/ToggleFullScreen.md b/docs/config/lua/keyassignment/ToggleFullScreen.md index a4355a3aa..9eb66eef8 100644 --- a/docs/config/lua/keyassignment/ToggleFullScreen.md +++ b/docs/config/lua/keyassignment/ToggleFullScreen.md @@ -5,15 +5,14 @@ Toggles full screen mode for the current window. ```lua local wezterm = require 'wezterm' -return { - keys = { - { - key = 'n', - mods = 'SHIFT|CTRL', - action = wezterm.action.ToggleFullScreen, - }, +config.keys = { + { + key = 'n', + mods = 'SHIFT|CTRL', + action = wezterm.action.ToggleFullScreen, }, } ``` +See also: [native_macos_fullscreen_mode](../config/native_macos_fullscreen_mode.md). diff --git a/docs/config/lua/keyassignment/TogglePaneZoomState.md b/docs/config/lua/keyassignment/TogglePaneZoomState.md index c670438f1..c6cf6e27b 100644 --- a/docs/config/lua/keyassignment/TogglePaneZoomState.md +++ b/docs/config/lua/keyassignment/TogglePaneZoomState.md @@ -7,15 +7,11 @@ all available space in the tab, hiding all other panes while it is zoomed. Switching its zoom state off will restore the prior split arrangement. ```lua -local wezterm = require 'wezterm' - -return { - keys = { - { - key = 'Z', - mods = 'CTRL', - action = wezterm.action.TogglePaneZoomState, - }, +config.keys = { + { + key = 'Z', + mods = 'CTRL', + action = wezterm.action.TogglePaneZoomState, }, } ``` diff --git a/docs/config/lua/wezterm/nerdfonts.md b/docs/config/lua/wezterm/nerdfonts.md index 7945e125d..c3e438e18 100644 --- a/docs/config/lua/wezterm/nerdfonts.md +++ b/docs/config/lua/wezterm/nerdfonts.md @@ -42,4226 +42,4226 @@ This block generated by: --> | | | |-|-| -||cod_account| -||cod_activate_breakpoints| -||cod_add| -||cod_archive| -||cod_arrow_both| -||cod_arrow_down| -||cod_arrow_left| -||cod_arrow_right| -||cod_arrow_small_down| -||cod_arrow_small_left| -||cod_arrow_small_right| -||cod_arrow_small_up| -||cod_arrow_swap| -||cod_arrow_up| -||cod_azure| -||cod_azure_devops| -||cod_beaker| -||cod_beaker_stop| -||cod_bell| -||cod_bell_dot| -||cod_bold| -||cod_book| -||cod_bookmark| -||cod_bracket_dot| -||cod_bracket_error| -||cod_briefcase| -||cod_broadcast| -||cod_browser| -||cod_bug| -||cod_calendar| -||cod_call_incoming| -||cod_call_outgoing| -||cod_case_sensitive| -||cod_check| -||cod_check_all| -||cod_checklist| -||cod_chevron_down| -||cod_chevron_left| -||cod_chevron_right| -||cod_chevron_up| -||cod_chrome_close| -||cod_chrome_maximize| -||cod_chrome_minimize| -||cod_chrome_restore| -||cod_circle| -||cod_circle_filled| -||cod_circle_large| -||cod_circle_large_filled| -||cod_circle_slash| -||cod_circle_small_filled| -||cod_circuit_board| -||cod_clear_all| -||cod_clippy| -||cod_close| -||cod_close_all| -||cod_cloud| -||cod_cloud_download| -||cod_cloud_upload| -||cod_code| -||cod_collapse_all| -||cod_color_mode| -||cod_combine| -||cod_comment| -||cod_comment_discussion| -||cod_compass| -||cod_compass_active| -||cod_compass_dot| -||cod_copy| -||cod_credit_card| -||cod_dash| -||cod_dashboard| -||cod_database| -||cod_debug| -||cod_debug_all| -||cod_debug_alt| -||cod_debug_alt_small| -||cod_debug_breakpoint_conditional| -||cod_debug_breakpoint_conditional_unverified| -||cod_debug_breakpoint_data| -||cod_debug_breakpoint_data_unverified| -||cod_debug_breakpoint_function| -||cod_debug_breakpoint_function_unverified| -||cod_debug_breakpoint_log| -||cod_debug_breakpoint_log_unverified| -||cod_debug_breakpoint_unsupported| -||cod_debug_console| -||cod_debug_continue| -||cod_debug_continue_small| -||cod_debug_coverage| -||cod_debug_disconnect| -||cod_debug_line_by_line| -||cod_debug_pause| -||cod_debug_rerun| -||cod_debug_restart| -||cod_debug_restart_frame| -||cod_debug_reverse_continue| -||cod_debug_stackframe| -||cod_debug_stackframe_active| -||cod_debug_start| -||cod_debug_step_back| -||cod_debug_step_into| -||cod_debug_step_out| -||cod_debug_step_over| -||cod_debug_stop| -||cod_desktop_download| -||cod_device_camera| -||cod_device_camera_video| -||cod_device_mobile| -||cod_diff| -||cod_diff_added| -||cod_diff_ignored| -||cod_diff_modified| -||cod_diff_removed| -||cod_diff_renamed| -||cod_discard| -||cod_edit| -||cod_editor_layout| -||cod_ellipsis| -||cod_empty_window| -||cod_error| -||cod_exclude| -||cod_expand_all| -||cod_export| -||cod_extensions| -||cod_eye| -||cod_eye_closed| -||cod_feedback| -||cod_file| -||cod_file_binary| -||cod_file_code| -||cod_file_media| -||cod_file_pdf| -||cod_file_submodule| -||cod_file_symlink_directory| -||cod_file_symlink_file| -||cod_file_zip| -||cod_files| -||cod_filter| -||cod_filter_filled| -||cod_flame| -||cod_fold| -||cod_fold_down| -||cod_fold_up| -||cod_folder| -||cod_folder_active| -||cod_folder_library| -||cod_folder_opened| -||cod_gear| -||cod_gift| -||cod_gist_secret| -||cod_git_commit| -||cod_git_compare| -||cod_git_merge| -||cod_git_pull_request| -||cod_git_pull_request_closed| -||cod_git_pull_request_create| -||cod_git_pull_request_draft| -||cod_github| -||cod_github_action| -||cod_github_alt| -||cod_github_inverted| -||cod_globe| -||cod_go_to_file| -||cod_grabber| -||cod_graph| -||cod_graph_left| -||cod_graph_line| -||cod_graph_scatter| -||cod_gripper| -||cod_group_by_ref_type| -||cod_heart| -||cod_history| -||cod_home| -||cod_horizontal_rule| -||cod_hubot| -||cod_inbox| -||cod_info| -||cod_inspect| -||cod_issue_draft| -||cod_issue_reopened| -||cod_issues| -||cod_italic| -||cod_jersey| -||cod_json| -||cod_kebab_vertical| -||cod_key| -||cod_law| -||cod_layers| -||cod_layers_active| -||cod_layers_dot| -||cod_layout| -||cod_library| -||cod_lightbulb| -||cod_lightbulb_autofix| -||cod_link| -||cod_link_external| -||cod_list_filter| -||cod_list_flat| -||cod_list_ordered| -||cod_list_selection| -||cod_list_tree| -||cod_list_unordered| -||cod_live_share| -||cod_loading| -||cod_location| -||cod_lock| -||cod_lock_small| -||cod_magnet| -||cod_mail| -||cod_mail_read| -||cod_markdown| -||cod_megaphone| -||cod_mention| -||cod_menu| -||cod_merge| -||cod_milestone| -||cod_mirror| -||cod_mortar_board| -||cod_move| -||cod_multiple_windows| -||cod_mute| -||cod_new_file| -||cod_new_folder| -||cod_newline| -||cod_no_newline| -||cod_note| -||cod_notebook| -||cod_notebook_template| -||cod_octoface| -||cod_open_preview| -||cod_organization| -||cod_output| -||cod_package| -||cod_paintcan| -||cod_pass| -||cod_pass_filled| -||cod_person| -||cod_person_add| -||cod_pie_chart| -||cod_pin| -||cod_pinned| -||cod_pinned_dirty| -||cod_play| -||cod_play_circle| -||cod_plug| -||cod_preserve_case| -||cod_preview| -||cod_primitive_square| -||cod_project| -||cod_pulse| -||cod_question| -||cod_quote| -||cod_radio_tower| -||cod_reactions| -||cod_record| -||cod_record_keys| -||cod_redo| -||cod_references| -||cod_refresh| -||cod_regex| -||cod_remote| -||cod_remote_explorer| -||cod_remove| -||cod_replace| -||cod_replace_all| -||cod_reply| -||cod_repo| -||cod_repo_clone| -||cod_repo_force_push| -||cod_repo_forked| -||cod_repo_pull| -||cod_repo_push| -||cod_report| -||cod_request_changes| -||cod_rocket| -||cod_root_folder| -||cod_root_folder_opened| -||cod_rss| -||cod_ruby| -||cod_run_above| -||cod_run_all| -||cod_run_below| -||cod_run_errors| -||cod_save| -||cod_save_all| -||cod_save_as| -||cod_screen_full| -||cod_screen_normal| -||cod_search| -||cod_search_stop| -||cod_server| -||cod_server_environment| -||cod_server_process| -||cod_settings| -||cod_settings_gear| -||cod_shield| -||cod_sign_in| -||cod_sign_out| -||cod_smiley| -||cod_sort_precedence| -||cod_source_control| -||cod_split_horizontal| -||cod_split_vertical| -||cod_squirrel| -||cod_star_empty| -||cod_star_full| -||cod_star_half| -||cod_stop_circle| -||cod_symbol_array| -||cod_symbol_boolean| -||cod_symbol_class| -||cod_symbol_color| -||cod_symbol_constant| -||cod_symbol_enum| -||cod_symbol_enum_member| -||cod_symbol_event| -||cod_symbol_field| -||cod_symbol_file| -||cod_symbol_interface| -||cod_symbol_key| -||cod_symbol_keyword| -||cod_symbol_method| -||cod_symbol_misc| -||cod_symbol_namespace| -||cod_symbol_numeric| -||cod_symbol_operator| -||cod_symbol_parameter| -||cod_symbol_property| -||cod_symbol_ruler| -||cod_symbol_snippet| -||cod_symbol_string| -||cod_symbol_structure| -||cod_symbol_variable| -||cod_sync| -||cod_sync_ignored| -||cod_table| -||cod_tag| -||cod_tasklist| -||cod_telescope| -||cod_terminal| -||cod_terminal_bash| -||cod_terminal_cmd| -||cod_terminal_debian| -||cod_terminal_linux| -||cod_terminal_powershell| -||cod_terminal_tmux| -||cod_terminal_ubuntu| -||cod_text_size| -||cod_three_bars| -||cod_thumbsdown| -||cod_thumbsup| -||cod_tools| -||cod_trash| -||cod_triangle_down| -||cod_triangle_left| -||cod_triangle_right| -||cod_triangle_up| -||cod_twitter| -||cod_type_hierarchy| -||cod_type_hierarchy_sub| -||cod_type_hierarchy_super| -||cod_unfold| -||cod_ungroup_by_ref_type| -||cod_unlock| -||cod_unmute| -||cod_unverified| -||cod_variable_group| -||cod_verified| -||cod_verified_filled| -||cod_versions| -||cod_vm| -||cod_vm_active| -||cod_vm_connect| -||cod_vm_outline| -||cod_vm_running| -||cod_wand| -||cod_warning| -||cod_watch| -||cod_whitespace| -||cod_whole_word| -||cod_window| -||cod_word_wrap| -||cod_workspace_trusted| -||cod_workspace_unknown| -||cod_workspace_untrusted| -||cod_zoom_in| -||cod_zoom_out| -||custom_asm| -||custom_c| -||custom_cpp| -||custom_crystal| -||custom_default| -||custom_electron| -||custom_elixir| -||custom_elm| -||custom_emacs| -||custom_folder| -||custom_folder_config| -||custom_folder_git| -||custom_folder_github| -||custom_folder_npm| -||custom_folder_open| -||custom_go| -||custom_home| -||custom_kotlin| -||custom_msdos| -||custom_orgmode| -||custom_play_arrow| -||custom_purescript| -||custom_v_lang| -||custom_vim| -||custom_windows| -||dev_android| -||dev_angular| -||dev_appcelerator| -||dev_apple| -||dev_appstore| -||dev_aptana| -||dev_asterisk| -||dev_atlassian| -||dev_atom| -||dev_aws| -||dev_backbone| -||dev_bing_small| -||dev_bintray| -||dev_bitbucket| -||dev_blackberry| -||dev_bootstrap| -||dev_bower| -||dev_brackets| -||dev_bugsense| -||dev_celluloid| -||dev_chart| -||dev_chrome| -||dev_cisco| -||dev_clojure| -||dev_clojure_alt| -||dev_cloud9| -||dev_coda| -||dev_code| -||dev_code_badge| -||dev_codeigniter| -||dev_codepen| -||dev_codrops| -||dev_coffeescript| -||dev_compass| -||dev_composer| -||dev_creativecommons| -||dev_creativecommons_badge| -||dev_css3| -||dev_css3_full| -||dev_css_tricks| -||dev_cssdeck| -||dev_dart| -||dev_database| -||dev_debian| -||dev_digital_ocean| -||dev_django| -||dev_dlang| -||dev_docker| -||dev_doctrine| -||dev_dojo| -||dev_dotnet| -||dev_dreamweaver| -||dev_dropbox| -||dev_drupal| -||dev_eclipse| -||dev_ember| -||dev_envato| -||dev_erlang| -||dev_extjs| -||dev_firebase| -||dev_firefox| -||dev_fsharp| -||dev_ghost| -||dev_ghost_small| -||dev_git| -||dev_git_branch| -||dev_git_commit| -||dev_git_compare| -||dev_git_merge| -||dev_git_pull_request| -||dev_github| -||dev_github_alt| -||dev_github_badge| -||dev_github_full| -||dev_gnu| -||dev_go| -||dev_google_cloud_platform| -||dev_google_drive| -||dev_grails| -||dev_groovy| -||dev_grunt| -||dev_gulp| -||dev_hackernews| -||dev_haskell| -||dev_heroku| -||dev_html5| -||dev_html5_3d_effects| -||dev_html5_connectivity| -||dev_html5_device_access| -||dev_html5_multimedia| -||dev_ie| -||dev_illustrator| -||dev_intellij| -||dev_ionic| -||dev_java| -||dev_javascript| -||dev_javascript_badge| -||dev_javascript_shield| -||dev_jekyll_small| -||dev_jenkins| -||dev_jira| -||dev_joomla| -||dev_jquery| -||dev_jquery_ui| -||dev_komodo| -||dev_krakenjs| -||dev_krakenjs_badge| -||dev_laravel| -||dev_less| -||dev_linux| -||dev_magento| -||dev_mailchimp| -||dev_markdown| -||dev_materializecss| -||dev_meteor| -||dev_meteorfull| -||dev_mitlicence| -||dev_modernizr| -||dev_mongodb| -||dev_mootools| -||dev_mootools_badge| -||dev_mozilla| -||dev_msql_server| -||dev_mysql| -||dev_nancy| -||dev_netbeans| -||dev_netmagazine| -||dev_nginx| -||dev_nodejs| -||dev_nodejs_small| -||dev_npm| -||dev_onedrive| -||dev_openshift| -||dev_opensource| -||dev_opera| -||dev_perl| -||dev_phonegap| -||dev_photoshop| -||dev_php| -||dev_postgresql| -||dev_prolog| -||dev_python| -||dev_rackspace| -||dev_raphael| -||dev_rasberry_pi| -||dev_react| -||dev_redhat| -||dev_redis| -||dev_requirejs| -||dev_responsive| -||dev_ruby| -||dev_ruby_on_rails| -||dev_ruby_rough| -||dev_rust| -||dev_safari| -||dev_sass| -||dev_scala| -||dev_scriptcs| -||dev_scrum| -||dev_senchatouch| -||dev_sizzlejs| -||dev_smashing_magazine| -||dev_snap_svg| -||dev_sqllite| -||dev_stackoverflow| -||dev_streamline| -||dev_stylus| -||dev_sublime| -||dev_swift| -||dev_symfony| -||dev_symfony_badge| -||dev_techcrunch| -||dev_terminal| -||dev_terminal_badge| -||dev_travis| -||dev_trello| -||dev_typo3| -||dev_ubuntu| -||dev_uikit| -||dev_unity_small| -||dev_vim| -||dev_visualstudio| -||dev_w3c| -||dev_webplatform| -||dev_windows| -||dev_wordpress| -||dev_yahoo| -||dev_yahoo_small| -||dev_yeoman| -||dev_yii| -||dev_zend| -||fa_500px| -||fa_address_book| -||fa_address_book_o| -||fa_address_card| -||fa_address_card_o| -||fa_adjust| -||fa_adn| -||fa_align_center| -||fa_align_justify| -||fa_align_left| -||fa_align_right| -||fa_amazon| -||fa_ambulance| -||fa_american_sign_language_interpreting| -||fa_anchor| -||fa_android| -||fa_angellist| -||fa_angle_double_down| -||fa_angle_double_left| -||fa_angle_double_right| -||fa_angle_double_up| -||fa_angle_down| -||fa_angle_left| -||fa_angle_right| -||fa_angle_up| -||fa_apple| -||fa_archive| -||fa_area_chart| -||fa_arrow_circle_down| -||fa_arrow_circle_left| -||fa_arrow_circle_o_down| -||fa_arrow_circle_o_left| -||fa_arrow_circle_o_right| -||fa_arrow_circle_o_up| -||fa_arrow_circle_right| -||fa_arrow_circle_up| -||fa_arrow_down| -||fa_arrow_left| -||fa_arrow_right| -||fa_arrow_up| -||fa_arrows| -||fa_arrows_alt| -||fa_arrows_h| -||fa_arrows_v| -||fa_assistive_listening_systems| -||fa_asterisk| -||fa_at| -||fa_audio_description| -||fa_backward| -||fa_balance_scale| -||fa_ban| -||fa_bandcamp| -||fa_bar_chart| -||fa_barcode| -||fa_bars| -||fa_bath| -||fa_battery_empty| -||fa_battery_full| -||fa_battery_half| -||fa_battery_quarter| -||fa_battery_three_quarters| -||fa_bed| -||fa_beer| -||fa_behance| -||fa_behance_square| -||fa_bell| -||fa_bell_o| -||fa_bell_slash| -||fa_bell_slash_o| -||fa_bicycle| -||fa_binoculars| -||fa_birthday_cake| -||fa_bitbucket| -||fa_bitbucket_square| -||fa_black_tie| -||fa_blind| -||fa_bluetooth| -||fa_bluetooth_b| -||fa_bold| -||fa_bolt| -||fa_bomb| -||fa_book| -||fa_bookmark| -||fa_bookmark_o| -||fa_braille| -||fa_briefcase| -||fa_btc| -||fa_bug| -||fa_building| -||fa_building_o| -||fa_bullhorn| -||fa_bullseye| -||fa_bus| -||fa_buysellads| -||fa_calculator| -||fa_calendar| -||fa_calendar_check_o| -||fa_calendar_minus_o| -||fa_calendar_o| -||fa_calendar_plus_o| -||fa_calendar_times_o| -||fa_camera| -||fa_camera_retro| -||fa_car| -||fa_caret_down| -||fa_caret_left| -||fa_caret_right| -||fa_caret_square_o_down| -||fa_caret_square_o_left| -||fa_caret_square_o_right| -||fa_caret_square_o_up| -||fa_caret_up| -||fa_cart_arrow_down| -||fa_cart_plus| -||fa_cc| -||fa_cc_amex| -||fa_cc_diners_club| -||fa_cc_discover| -||fa_cc_jcb| -||fa_cc_mastercard| -||fa_cc_paypal| -||fa_cc_stripe| -||fa_cc_visa| -||fa_certificate| -||fa_chain_broken| -||fa_check| -||fa_check_circle| -||fa_check_circle_o| -||fa_check_square| -||fa_check_square_o| -||fa_chevron_circle_down| -||fa_chevron_circle_left| -||fa_chevron_circle_right| -||fa_chevron_circle_up| -||fa_chevron_down| -||fa_chevron_left| -||fa_chevron_right| -||fa_chevron_up| -||fa_child| -||fa_chrome| -||fa_circle| -||fa_circle_o| -||fa_circle_o_notch| -||fa_circle_thin| -||fa_clipboard| -||fa_clock_o| -||fa_clone| -||fa_cloud| -||fa_cloud_download| -||fa_cloud_upload| -||fa_code| -||fa_code_fork| -||fa_codepen| -||fa_codiepie| -||fa_coffee| -||fa_cog| -||fa_cogs| -||fa_columns| -||fa_comment| -||fa_comment_o| -||fa_commenting| -||fa_commenting_o| -||fa_comments| -||fa_comments_o| -||fa_compass| -||fa_compress| -||fa_connectdevelop| -||fa_contao| -||fa_copyright| -||fa_creative_commons| -||fa_credit_card| -||fa_credit_card_alt| -||fa_crop| -||fa_crosshairs| -||fa_css3| -||fa_cube| -||fa_cubes| -||fa_cutlery| -||fa_dashcube| -||fa_database| -||fa_deaf| -||fa_delicious| -||fa_desktop| -||fa_deviantart| -||fa_diamond| -||fa_digg| -||fa_dot_circle_o| -||fa_download| -||fa_dribbble| -||fa_dropbox| -||fa_drupal| -||fa_edge| -||fa_eercast| -||fa_eject| -||fa_ellipsis_h| -||fa_ellipsis_v| -||fa_empire| -||fa_envelope| -||fa_envelope_o| -||fa_envelope_open| -||fa_envelope_open_o| -||fa_envelope_square| -||fa_envira| -||fa_eraser| -||fa_etsy| -||fa_eur| -||fa_exchange| -||fa_exclamation| -||fa_exclamation_circle| -||fa_exclamation_triangle| -||fa_expand| -||fa_expeditedssl| -||fa_external_link| -||fa_external_link_square| -||fa_eye| -||fa_eye_slash| -||fa_eyedropper| -||fa_facebook| -||fa_facebook_official| -||fa_facebook_square| -||fa_fast_backward| -||fa_fast_forward| -||fa_fax| -||fa_female| -||fa_fighter_jet| -||fa_file| -||fa_file_archive_o| -||fa_file_audio_o| -||fa_file_code_o| -||fa_file_excel_o| -||fa_file_image_o| -||fa_file_o| -||fa_file_pdf_o| -||fa_file_powerpoint_o| -||fa_file_text| -||fa_file_text_o| -||fa_file_video_o| -||fa_file_word_o| -||fa_files_o| -||fa_film| -||fa_filter| -||fa_fire| -||fa_fire_extinguisher| -||fa_firefox| -||fa_first_order| -||fa_flag| -||fa_flag_checkered| -||fa_flag_o| -||fa_flask| -||fa_flickr| -||fa_floppy_o| -||fa_folder| -||fa_folder_o| -||fa_folder_open| -||fa_folder_open_o| -||fa_font| -||fa_font_awesome| -||fa_fonticons| -||fa_fort_awesome| -||fa_forumbee| -||fa_forward| -||fa_foursquare| -||fa_free_code_camp| -||fa_frown_o| -||fa_futbol_o| -||fa_gamepad| -||fa_gavel| -||fa_gbp| -||fa_genderless| -||fa_get_pocket| -||fa_gg| -||fa_gg_circle| -||fa_gift| -||fa_git| -||fa_git_square| -||fa_github| -||fa_github_alt| -||fa_github_square| -||fa_gitlab| -||fa_glass| -||fa_glide| -||fa_glide_g| -||fa_globe| -||fa_google| -||fa_google_plus| -||fa_google_plus_official| -||fa_google_plus_square| -||fa_google_wallet| -||fa_graduation_cap| -||fa_gratipay| -||fa_grav| -||fa_h_square| -||fa_hacker_news| -||fa_hand_lizard_o| -||fa_hand_o_down| -||fa_hand_o_left| -||fa_hand_o_right| -||fa_hand_o_up| -||fa_hand_paper_o| -||fa_hand_peace_o| -||fa_hand_pointer_o| -||fa_hand_rock_o| -||fa_hand_scissors_o| -||fa_hand_spock_o| -||fa_handshake_o| -||fa_hashtag| -||fa_hdd_o| -||fa_header| -||fa_headphones| -||fa_heart| -||fa_heart_o| -||fa_heartbeat| -||fa_history| -||fa_home| -||fa_hospital_o| -||fa_hourglass| -||fa_hourglass_end| -||fa_hourglass_half| -||fa_hourglass_o| -||fa_hourglass_start| -||fa_houzz| -||fa_html5| -||fa_i_cursor| -||fa_id_badge| -||fa_id_card| -||fa_id_card_o| -||fa_ils| -||fa_imdb| -||fa_inbox| -||fa_indent| -||fa_industry| -||fa_info| -||fa_info_circle| -||fa_inr| -||fa_instagram| -||fa_internet_explorer| -||fa_ioxhost| -||fa_italic| -||fa_joomla| -||fa_jpy| -||fa_jsfiddle| -||fa_key| -||fa_keyboard_o| -||fa_krw| -||fa_language| -||fa_laptop| -||fa_lastfm| -||fa_lastfm_square| -||fa_leaf| -||fa_leanpub| -||fa_lemon_o| -||fa_level_down| -||fa_level_up| -||fa_life_ring| -||fa_lightbulb_o| -||fa_line_chart| -||fa_link| -||fa_linkedin| -||fa_linkedin_square| -||fa_linode| -||fa_linux| -||fa_list| -||fa_list_alt| -||fa_list_ol| -||fa_list_ul| -||fa_location_arrow| -||fa_lock| -||fa_long_arrow_down| -||fa_long_arrow_left| -||fa_long_arrow_right| -||fa_long_arrow_up| -||fa_low_vision| -||fa_magic| -||fa_magnet| -||fa_male| -||fa_map| -||fa_map_marker| -||fa_map_o| -||fa_map_pin| -||fa_map_signs| -||fa_mars| -||fa_mars_double| -||fa_mars_stroke| -||fa_mars_stroke_h| -||fa_mars_stroke_v| -||fa_maxcdn| -||fa_meanpath| -||fa_medium| -||fa_medkit| -||fa_meetup| -||fa_meh_o| -||fa_mercury| -||fa_microchip| -||fa_microphone| -||fa_microphone_slash| -||fa_minus| -||fa_minus_circle| -||fa_minus_square| -||fa_minus_square_o| -||fa_mixcloud| -||fa_mobile| -||fa_modx| -||fa_money| -||fa_moon_o| -||fa_motorcycle| -||fa_mouse_pointer| -||fa_music| -||fa_neuter| -||fa_newspaper_o| -||fa_object_group| -||fa_object_ungroup| -||fa_odnoklassniki| -||fa_odnoklassniki_square| -||fa_opencart| -||fa_openid| -||fa_opera| -||fa_optin_monster| -||fa_outdent| -||fa_pagelines| -||fa_paint_brush| -||fa_paper_plane| -||fa_paper_plane_o| -||fa_paperclip| -||fa_paragraph| -||fa_pause| -||fa_pause_circle| -||fa_pause_circle_o| -||fa_paw| -||fa_paypal| -||fa_pencil| -||fa_pencil_square| -||fa_pencil_square_o| -||fa_percent| -||fa_phone| -||fa_phone_square| -||fa_picture_o| -||fa_pie_chart| -||fa_pied_piper| -||fa_pied_piper_alt| -||fa_pied_piper_pp| -||fa_pinterest| -||fa_pinterest_p| -||fa_pinterest_square| -||fa_plane| -||fa_play| -||fa_play_circle| -||fa_play_circle_o| -||fa_plug| -||fa_plus| -||fa_plus_circle| -||fa_plus_square| -||fa_plus_square_o| -||fa_podcast| -||fa_power_off| -||fa_print| -||fa_product_hunt| -||fa_puzzle_piece| -||fa_qq| -||fa_qrcode| -||fa_question| -||fa_question_circle| -||fa_question_circle_o| -||fa_quora| -||fa_quote_left| -||fa_quote_right| -||fa_random| -||fa_ravelry| -||fa_rebel| -||fa_recycle| -||fa_reddit| -||fa_reddit_alien| -||fa_reddit_square| -||fa_refresh| -||fa_registered| -||fa_renren| -||fa_repeat| -||fa_reply| -||fa_reply_all| -||fa_retweet| -||fa_road| -||fa_rocket| -||fa_rss| -||fa_rss_square| -||fa_rub| -||fa_safari| -||fa_scissors| -||fa_scribd| -||fa_search| -||fa_search_minus| -||fa_search_plus| -||fa_sellsy| -||fa_server| -||fa_share| -||fa_share_alt| -||fa_share_alt_square| -||fa_share_square| -||fa_share_square_o| -||fa_shield| -||fa_ship| -||fa_shirtsinbulk| -||fa_shopping_bag| -||fa_shopping_basket| -||fa_shopping_cart| -||fa_shower| -||fa_sign_in| -||fa_sign_language| -||fa_sign_out| -||fa_signal| -||fa_simplybuilt| -||fa_sitemap| -||fa_skyatlas| -||fa_skype| -||fa_slack| -||fa_sliders| -||fa_slideshare| -||fa_smile_o| -||fa_snapchat| -||fa_snapchat_ghost| -||fa_snapchat_square| -||fa_snowflake_o| -||fa_sort| -||fa_sort_alpha_asc| -||fa_sort_alpha_desc| -||fa_sort_amount_asc| -||fa_sort_amount_desc| -||fa_sort_asc| -||fa_sort_desc| -||fa_sort_numeric_asc| -||fa_sort_numeric_desc| -||fa_soundcloud| -||fa_space_shuttle| -||fa_spinner| -||fa_spoon| -||fa_spotify| -||fa_square| -||fa_square_o| -||fa_stack_exchange| -||fa_stack_overflow| -||fa_star| -||fa_star_half| -||fa_star_half_o| -||fa_star_o| -||fa_steam| -||fa_steam_square| -||fa_step_backward| -||fa_step_forward| -||fa_stethoscope| -||fa_sticky_note| -||fa_sticky_note_o| -||fa_stop| -||fa_stop_circle| -||fa_stop_circle_o| -||fa_street_view| -||fa_strikethrough| -||fa_stumbleupon| -||fa_stumbleupon_circle| -||fa_subscript| -||fa_subway| -||fa_suitcase| -||fa_sun_o| -||fa_superpowers| -||fa_superscript| -||fa_table| -||fa_tablet| -||fa_tachometer| -||fa_tag| -||fa_tags| -||fa_tasks| -||fa_taxi| -||fa_telegram| -||fa_television| -||fa_tencent_weibo| -||fa_terminal| -||fa_text_height| -||fa_text_width| -||fa_th| -||fa_th_large| -||fa_th_list| -||fa_themeisle| -||fa_thermometer_empty| -||fa_thermometer_full| -||fa_thermometer_half| -||fa_thermometer_quarter| -||fa_thermometer_three_quarters| -||fa_thumb_tack| -||fa_thumbs_down| -||fa_thumbs_o_down| -||fa_thumbs_o_up| -||fa_thumbs_up| -||fa_ticket| -||fa_times| -||fa_times_circle| -||fa_times_circle_o| -||fa_tint| -||fa_toggle_off| -||fa_toggle_on| -||fa_trademark| -||fa_train| -||fa_transgender| -||fa_transgender_alt| -||fa_trash| -||fa_trash_o| -||fa_tree| -||fa_trello| -||fa_tripadvisor| -||fa_trophy| -||fa_truck| -||fa_try| -||fa_tty| -||fa_tumblr| -||fa_tumblr_square| -||fa_twitch| -||fa_twitter| -||fa_twitter_square| -||fa_umbrella| -||fa_underline| -||fa_undo| -||fa_universal_access| -||fa_university| -||fa_unlock| -||fa_unlock_alt| -||fa_upload| -||fa_usb| -||fa_usd| -||fa_user| -||fa_user_circle| -||fa_user_circle_o| -||fa_user_md| -||fa_user_o| -||fa_user_plus| -||fa_user_secret| -||fa_user_times| -||fa_users| -||fa_venus| -||fa_venus_double| -||fa_venus_mars| -||fa_viacoin| -||fa_viadeo| -||fa_viadeo_square| -||fa_video_camera| -||fa_vimeo| -||fa_vimeo_square| -||fa_vine| -||fa_vk| -||fa_volume_control_phone| -||fa_volume_down| -||fa_volume_off| -||fa_volume_up| -||fa_weibo| -||fa_weixin| -||fa_whatsapp| -||fa_wheelchair| -||fa_wheelchair_alt| -||fa_wifi| -||fa_wikipedia_w| -||fa_window_close| -||fa_window_close_o| -||fa_window_maximize| -||fa_window_minimize| -||fa_window_restore| -||fa_windows| -||fa_wordpress| -||fa_wpbeginner| -||fa_wpexplorer| -||fa_wpforms| -||fa_wrench| -||fa_xing| -||fa_xing_square| -||fa_y_combinator| -||fa_yahoo| -||fa_yelp| -||fa_yoast| -||fa_youtube| -||fa_youtube_play| -||fa_youtube_square| -||fae_apple_fruit| -||fae_atom| -||fae_bacteria| -||fae_banana| -||fae_bath| -||fae_bed| -||fae_benzene| -||fae_bigger| -||fae_biohazard| -||fae_blogger_circle| -||fae_blogger_square| -||fae_bones| -||fae_book_open| -||fae_book_open_o| -||fae_brain| -||fae_bread| -||fae_butterfly| -||fae_carot| -||fae_cc_by| -||fae_cc_cc| -||fae_cc_nc| -||fae_cc_nc_eu| -||fae_cc_nc_jp| -||fae_cc_nd| -||fae_cc_remix| -||fae_cc_sa| -||fae_cc_share| -||fae_cc_zero| -||fae_checklist_o| -||fae_cheese| -||fae_cherry| -||fae_chess_bishop| -||fae_chess_horse| -||fae_chess_king| -||fae_chess_pawn| -||fae_chess_queen| -||fae_chess_tower| -||fae_chicken_thigh| -||fae_chilli| -||fae_chip| -||fae_cicling| -||fae_cloud| -||fae_cockroach| -||fae_coffe_beans| -||fae_coins| -||fae_comb| -||fae_comet| -||fae_crown| -||fae_cup_coffe| -||fae_dice| -||fae_disco| -||fae_dna| -||fae_donut| -||fae_dress| -||fae_drop| -||fae_ello| -||fae_envelope_open| -||fae_envelope_open_o| -||fae_equal| -||fae_equal_bigger| -||fae_feedly| -||fae_file_export| -||fae_file_import| -||fae_fingerprint| -||fae_floppy| -||fae_footprint| -||fae_freecodecamp| -||fae_galaxy| -||fae_galery| -||fae_gift_card| -||fae_glass| -||fae_google_drive| -||fae_google_play| -||fae_gps| -||fae_grav| -||fae_guitar| -||fae_gut| -||fae_halter| -||fae_hamburger| -||fae_hat| -||fae_hexagon| -||fae_high_heel| -||fae_hotdog| -||fae_ice_cream| -||fae_id_card| -||fae_imdb| -||fae_infinity| -||fae_injection| -||fae_isle| -||fae_java| -||fae_layers| -||fae_lips| -||fae_lipstick| -||fae_liver| -||fae_lollipop| -||fae_loyalty_card| -||fae_lung| -||fae_makeup_brushes| -||fae_maximize| -||fae_meat| -||fae_medicine| -||fae_microscope| -||fae_milk_bottle| -||fae_minimize| -||fae_molecule| -||fae_moon_cloud| -||fae_mountains| -||fae_mushroom| -||fae_mustache| -||fae_mysql| -||fae_nintendo| -||fae_orange| -||fae_palette_color| -||fae_peach| -||fae_pear| -||fae_pi| -||fae_pizza| -||fae_planet| -||fae_plant| -||fae_playstation| -||fae_poison| -||fae_popcorn| -||fae_popsicle| -||fae_pulse| -||fae_python| -||fae_quora_circle| -||fae_quora_square| -||fae_radioactive| -||fae_raining| -||fae_real_heart| -||fae_refrigerator| -||fae_restore| -||fae_ring| -||fae_ruby| -||fae_ruby_o| -||fae_ruler| -||fae_shirt| -||fae_slash| -||fae_smaller| -||fae_snowing| -||fae_soda| -||fae_sofa| -||fae_soup| -||fae_spermatozoon| -||fae_spin_double| -||fae_stomach| -||fae_storm| -||fae_sun_cloud| -||fae_sushi| -||fae_tacos| -||fae_telegram| -||fae_telegram_circle| -||fae_telescope| -||fae_thermometer| -||fae_thermometer_high| -||fae_thermometer_low| -||fae_thin_close| -||fae_toilet| -||fae_tools| -||fae_tooth| -||fae_tree| -||fae_triangle_ruler| -||fae_umbrella| -||fae_uterus| -||fae_virus| -||fae_w3c| -||fae_walking| -||fae_wallet| -||fae_wind| -||fae_xbox| -||iec_power| -||iec_power_off| -||iec_power_on| -||iec_sleep_mode| -||iec_toggle_power| -||indent_line| -||linux_almalinux| -||linux_alpine| -||linux_aosc| -||linux_apple| -||linux_archlabs| -||linux_archlinux| -||linux_artix| -||linux_budgie| -||linux_centos| -||linux_coreos| -||linux_debian| -||linux_deepin| -||linux_devuan| -||linux_docker| -||linux_elementary| -||linux_endeavour| -||linux_fedora| -||linux_fedora_inverse| -||linux_ferris| -||linux_flathub| -||linux_freebsd| -||linux_gentoo| -||linux_gnu_guix| -||linux_illumos| -||linux_kali_linux| -||linux_linuxmint| -||linux_linuxmint_inverse| -||linux_mageia| -||linux_mandriva| -||linux_manjaro| -||linux_nixos| -||linux_openbsd| -||linux_opensuse| -||linux_parrot| -||linux_pop_os| -||linux_raspberry_pi| -||linux_redhat| -||linux_rocky_linux| -||linux_sabayon| -||linux_slackware| -||linux_slackware_inverse| -||linux_snappy| -||linux_solus| -||linux_tux| -||linux_ubuntu| -||linux_ubuntu_inverse| -||linux_void| -||linux_zorin| -||mdi_access_point| -||mdi_access_point_network| -||mdi_account| -||mdi_account_alert| -||mdi_account_box| -||mdi_account_box_outline| -||mdi_account_card_details| -||mdi_account_check| -||mdi_account_circle| -||mdi_account_convert| -||mdi_account_edit| -||mdi_account_key| -||mdi_account_location| -||mdi_account_minus| -||mdi_account_multiple| -||mdi_account_multiple_minus| -||mdi_account_multiple_outline| -||mdi_account_multiple_plus| -||mdi_account_multiple_plus_outline| -||mdi_account_network| -||mdi_account_off| -||mdi_account_outline| -||mdi_account_plus| -|ﳿ|mdi_account_plus_outline| -||mdi_account_remove| -||mdi_account_search| -||mdi_account_settings| -||mdi_account_settings_variant| -||mdi_account_star| -||mdi_account_switch| -||mdi_adjust| -||mdi_air_conditioner| -||mdi_airballoon| -||mdi_airplane| -||mdi_airplane_landing| -||mdi_airplane_off| -||mdi_airplane_takeoff| -||mdi_airplay| -||mdi_alarm| -||mdi_alarm_bell| -||mdi_alarm_check| -||mdi_alarm_light| -||mdi_alarm_multiple| -||mdi_alarm_off| -||mdi_alarm_plus| -||mdi_alarm_snooze| -||mdi_album| -||mdi_alert| -||mdi_alert_box| -||mdi_alert_circle| -||mdi_alert_circle_outline| -||mdi_alert_decagram| -||mdi_alert_octagon| -||mdi_alert_octagram| -||mdi_alert_outline| -||mdi_all_inclusive| -||mdi_allo| -||mdi_alpha| -||mdi_alphabetical| -||mdi_altimeter| -||mdi_amazon| -||mdi_amazon_clouddrive| -||mdi_ambulance| -||mdi_amplifier| -||mdi_anchor| -||mdi_android| -||mdi_android_debug_bridge| -||mdi_android_head| -||mdi_android_studio| -||mdi_angular| -||mdi_angularjs| -||mdi_animation| -||mdi_apple| -||mdi_apple_finder| -||mdi_apple_ios| -||mdi_apple_keyboard_caps| -||mdi_apple_keyboard_command| -||mdi_apple_keyboard_control| -||mdi_apple_keyboard_option| -||mdi_apple_keyboard_shift| -||mdi_apple_mobileme| -||mdi_apple_safari| -||mdi_application| -||mdi_approval| -||mdi_apps| -||mdi_archive| -||mdi_arrange_bring_forward| -||mdi_arrange_bring_to_front| -||mdi_arrange_send_backward| -||mdi_arrange_send_to_back| -||mdi_arrow_all| -||mdi_arrow_bottom_left| -||mdi_arrow_bottom_right| -||mdi_arrow_collapse| -||mdi_arrow_collapse_all| -||mdi_arrow_collapse_down| -||mdi_arrow_collapse_left| -||mdi_arrow_collapse_right| -||mdi_arrow_collapse_up| -||mdi_arrow_down| -||mdi_arrow_down_bold| -||mdi_arrow_down_bold_box| -||mdi_arrow_down_bold_box_outline| -||mdi_arrow_down_bold_circle| -||mdi_arrow_down_bold_circle_outline| -||mdi_arrow_down_bold_hexagon_outline| -||mdi_arrow_down_box| -||mdi_arrow_down_drop_circle| -||mdi_arrow_down_drop_circle_outline| -||mdi_arrow_down_thick| -||mdi_arrow_expand| -||mdi_arrow_expand_all| -||mdi_arrow_expand_down| -||mdi_arrow_expand_left| -||mdi_arrow_expand_right| -||mdi_arrow_expand_up| -||mdi_arrow_left| -||mdi_arrow_left_bold| -||mdi_arrow_left_bold_box| -||mdi_arrow_left_bold_box_outline| -||mdi_arrow_left_bold_circle| -||mdi_arrow_left_bold_circle_outline| -||mdi_arrow_left_bold_hexagon_outline| -|﮿|mdi_arrow_left_box| -||mdi_arrow_left_drop_circle| -||mdi_arrow_left_drop_circle_outline| -||mdi_arrow_left_thick| -||mdi_arrow_right| -||mdi_arrow_right_bold| -||mdi_arrow_right_bold_box| -||mdi_arrow_right_bold_box_outline| -||mdi_arrow_right_bold_circle| -||mdi_arrow_right_bold_circle_outline| -||mdi_arrow_right_bold_hexagon_outline| -||mdi_arrow_right_box| -||mdi_arrow_right_drop_circle| -||mdi_arrow_right_drop_circle_outline| -||mdi_arrow_right_thick| -||mdi_arrow_top_left| -||mdi_arrow_top_right| -||mdi_arrow_up| -||mdi_arrow_up_bold| -||mdi_arrow_up_bold_box| -||mdi_arrow_up_bold_box_outline| -||mdi_arrow_up_bold_circle| -||mdi_arrow_up_bold_circle_outline| -||mdi_arrow_up_bold_hexagon_outline| -||mdi_arrow_up_box| -||mdi_arrow_up_drop_circle| -||mdi_arrow_up_drop_circle_outline| -||mdi_arrow_up_thick| -||mdi_artist| -||mdi_assistant| -||mdi_asterisk| -||mdi_at| -||mdi_atlassian| -||mdi_atom| -||mdi_attachment| -||mdi_audiobook| -||mdi_auto_fix| -||mdi_auto_upload| -||mdi_autorenew| -||mdi_av_timer| -||mdi_azure| -||mdi_baby| -||mdi_baby_buggy| -||mdi_backburger| -||mdi_backspace| -||mdi_backup_restore| -||mdi_bandcamp| -||mdi_bank| -||mdi_barcode| -||mdi_barcode_scan| -||mdi_barley| -||mdi_barrel| -||mdi_basecamp| -||mdi_basket| -||mdi_basket_fill| -||mdi_basket_unfill| -||mdi_basketball| -||mdi_battery| -||mdi_battery_10| -||mdi_battery_20| -||mdi_battery_30| -||mdi_battery_40| -||mdi_battery_50| -||mdi_battery_60| -||mdi_battery_70| -||mdi_battery_80| -||mdi_battery_90| -||mdi_battery_alert| -||mdi_battery_charging| -||mdi_battery_charging_20| -||mdi_battery_charging_30| -||mdi_battery_charging_40| -||mdi_battery_charging_60| -||mdi_battery_charging_80| -||mdi_battery_charging_90| -||mdi_battery_charging_100| -||mdi_battery_charging_wireless| -||mdi_battery_charging_wireless_10| -||mdi_battery_charging_wireless_20| -||mdi_battery_charging_wireless_30| -||mdi_battery_charging_wireless_40| -||mdi_battery_charging_wireless_50| -||mdi_battery_charging_wireless_60| -||mdi_battery_charging_wireless_70| -||mdi_battery_charging_wireless_80| -||mdi_battery_charging_wireless_90| -||mdi_battery_charging_wireless_alert| -||mdi_battery_charging_wireless_outline| -||mdi_battery_minus| -||mdi_battery_negative| -||mdi_battery_outline| -||mdi_battery_plus| -||mdi_battery_positive| -||mdi_battery_unknown| -||mdi_beach| -||mdi_beaker| -||mdi_beats| -||mdi_beer| -||mdi_behance| -||mdi_bell| -||mdi_bell_off| -||mdi_bell_outline| -||mdi_bell_plus| -||mdi_bell_ring| -||mdi_bell_ring_outline| -||mdi_bell_sleep| -||mdi_beta| -||mdi_bible| -||mdi_bike| -||mdi_bing| -||mdi_binoculars| -||mdi_bio| -||mdi_biohazard| -||mdi_bitbucket| -||mdi_bitcoin| -||mdi_black_mesa| -||mdi_blackberry| -||mdi_blender| -||mdi_blinds| -||mdi_block_helper| -||mdi_blogger| -||mdi_bluetooth| -||mdi_bluetooth_audio| -||mdi_bluetooth_connect| -||mdi_bluetooth_off| -||mdi_bluetooth_settings| -||mdi_bluetooth_transfer| -||mdi_blur| -||mdi_blur_linear| -||mdi_blur_off| -||mdi_blur_radial| -||mdi_bomb| -||mdi_bomb_off| -||mdi_bone| -||mdi_book| -||mdi_book_minus| -||mdi_book_multiple| -||mdi_book_multiple_variant| -||mdi_book_open| -||mdi_book_open_page_variant| -||mdi_book_open_variant| -||mdi_book_plus| -||mdi_book_secure| -||mdi_book_unsecure| -||mdi_book_variant| -||mdi_bookmark| -||mdi_bookmark_check| -||mdi_bookmark_music| -||mdi_bookmark_outline| -||mdi_bookmark_plus| -||mdi_bookmark_plus_outline| -||mdi_bookmark_remove| -||mdi_boombox| -||mdi_bootstrap| -||mdi_border_all| -||mdi_border_bottom| -||mdi_border_color| -||mdi_border_horizontal| -||mdi_border_inside| -||mdi_border_left| -||mdi_border_none| -||mdi_border_outside| -||mdi_border_right| -||mdi_border_style| -||mdi_border_top| -||mdi_border_vertical| -||mdi_bow_tie| -||mdi_bowl| -||mdi_bowling| -||mdi_box| -||mdi_box_cutter| -||mdi_box_shadow| -||mdi_bridge| -||mdi_briefcase| -||mdi_briefcase_check| -||mdi_briefcase_download| -||mdi_briefcase_outline| -||mdi_briefcase_upload| -||mdi_brightness_1| -||mdi_brightness_2| -||mdi_brightness_3| -||mdi_brightness_4| -||mdi_brightness_5| -||mdi_brightness_6| -||mdi_brightness_7| -||mdi_brightness_auto| -||mdi_broom| -||mdi_brush| -||mdi_buffer| -||mdi_bug| -||mdi_bulletin_board| -||mdi_bullhorn| -||mdi_bullseye| -||mdi_bus| -||mdi_bus_articulated_end| -||mdi_bus_articulated_front| -||mdi_bus_double_decker| -||mdi_bus_school| -||mdi_bus_side| -||mdi_cached| -||mdi_cake| -||mdi_cake_layered| -||mdi_cake_variant| -||mdi_calculator| -||mdi_calendar| -||mdi_calendar_blank| -||mdi_calendar_check| -||mdi_calendar_clock| -||mdi_calendar_multiple| -||mdi_calendar_multiple_check| -||mdi_calendar_plus| -||mdi_calendar_question| -||mdi_calendar_range| -||mdi_calendar_remove| -||mdi_calendar_text| -||mdi_calendar_today| -||mdi_call_made| -||mdi_call_merge| -||mdi_call_missed| -||mdi_call_received| -||mdi_call_split| -||mdi_camcorder| -||mdi_camcorder_box| -||mdi_camcorder_box_off| -||mdi_camcorder_off| -||mdi_camera| -||mdi_camera_burst| -||mdi_camera_enhance| -||mdi_camera_front| -||mdi_camera_front_variant| -||mdi_camera_gopro| -||mdi_camera_iris| -||mdi_camera_metering_center| -||mdi_camera_metering_matrix| -||mdi_camera_metering_partial| -||mdi_camera_metering_spot| -||mdi_camera_off| -||mdi_camera_party_mode| -||mdi_camera_rear| -||mdi_camera_rear_variant| -||mdi_camera_switch| -||mdi_camera_timer| -||mdi_cancel| -||mdi_candle| -||mdi_candycane| -||mdi_cannabis| -||mdi_car| -||mdi_car_battery| -||mdi_car_connected| -||mdi_car_convertible| -||mdi_car_estate| -||mdi_car_hatchback| -||mdi_car_pickup| -||mdi_car_side| -||mdi_car_sports| -||mdi_car_wash| -||mdi_caravan| -||mdi_cards| -||mdi_cards_outline| -||mdi_cards_playing_outline| -||mdi_cards_variant| -||mdi_carrot| -||mdi_cart| -||mdi_cart_off| -||mdi_cart_outline| -||mdi_cart_plus| -||mdi_case_sensitive_alt| -||mdi_cash| -||mdi_cash_100| -||mdi_cash_multiple| -||mdi_cash_usd| -||mdi_cast| -||mdi_cast_connected| -||mdi_cast_off| -||mdi_castle| -||mdi_cat| -||mdi_cctv| -||mdi_ceiling_light| -||mdi_cellphone| -||mdi_cellphone_android| -||mdi_cellphone_basic| -||mdi_cellphone_dock| -||mdi_cellphone_iphone| -||mdi_cellphone_link| -||mdi_cellphone_link_off| -||mdi_cellphone_settings| -||mdi_cellphone_wireless| -||mdi_certificate| -||mdi_chair_school| -||mdi_chart_arc| -||mdi_chart_areaspline| -||mdi_chart_bar| -||mdi_chart_bar_stacked| -||mdi_chart_bubble| -||mdi_chart_donut| -||mdi_chart_donut_variant| -||mdi_chart_gantt| -||mdi_chart_histogram| -||mdi_chart_line| -||mdi_chart_line_stacked| -||mdi_chart_line_variant| -||mdi_chart_pie| -||mdi_chart_scatterplot_hexbin| -||mdi_chart_timeline| -||mdi_check| -||mdi_check_all| -||mdi_check_circle| -||mdi_check_circle_outline| -||mdi_checkbox_blank| -||mdi_checkbox_blank_circle| -||mdi_checkbox_blank_circle_outline| -||mdi_checkbox_blank_outline| -||mdi_checkbox_marked| -||mdi_checkbox_marked_circle| -||mdi_checkbox_marked_circle_outline| -||mdi_checkbox_marked_outline| -||mdi_checkbox_multiple_blank| -||mdi_checkbox_multiple_blank_circle| -||mdi_checkbox_multiple_blank_circle_outline| -||mdi_checkbox_multiple_blank_outline| -||mdi_checkbox_multiple_marked| -||mdi_checkbox_multiple_marked_circle| -||mdi_checkbox_multiple_marked_circle_outline| -||mdi_checkbox_multiple_marked_outline| -||mdi_checkerboard| -||mdi_chemical_weapon| -||mdi_chevron_double_down| -||mdi_chevron_double_left| -||mdi_chevron_double_right| -||mdi_chevron_double_up| -||mdi_chevron_down| -||mdi_chevron_left| -||mdi_chevron_right| -||mdi_chevron_up| -||mdi_chili_hot| -||mdi_chili_medium| -||mdi_chili_mild| -||mdi_chip| -||mdi_church| -||mdi_circle| -||mdi_circle_outline| -||mdi_cisco_webex| -||mdi_city| -||mdi_clipboard| -||mdi_clipboard_account| -||mdi_clipboard_alert| -||mdi_clipboard_arrow_down| -||mdi_clipboard_arrow_left| -||mdi_clipboard_check| -||mdi_clipboard_flow| -||mdi_clipboard_outline| -||mdi_clipboard_plus| -||mdi_clipboard_text| -||mdi_clippy| -||mdi_clock| -||mdi_clock_alert| -||mdi_clock_end| -||mdi_clock_fast| -||mdi_clock_in| -||mdi_clock_out| -||mdi_clock_start| -||mdi_close| -||mdi_close_box| -||mdi_close_box_outline| -||mdi_close_circle| -||mdi_close_circle_outline| -||mdi_close_network| -||mdi_close_octagon| -||mdi_close_octagon_outline| -||mdi_close_outline| -||mdi_closed_caption| -||mdi_cloud| -||mdi_cloud_braces| -||mdi_cloud_check| -||mdi_cloud_circle| -||mdi_cloud_download| -||mdi_cloud_off_outline| -||mdi_cloud_outline| -||mdi_cloud_print| -||mdi_cloud_print_outline| -||mdi_cloud_sync| -||mdi_cloud_tags| -||mdi_cloud_upload| -||mdi_clover| -||mdi_code_array| -||mdi_code_braces| -||mdi_code_brackets| -||mdi_code_equal| -||mdi_code_greater_than| -||mdi_code_greater_than_or_equal| -||mdi_code_less_than| -||mdi_code_less_than_or_equal| -||mdi_code_not_equal| -||mdi_code_not_equal_variant| -||mdi_code_parentheses| -||mdi_code_string| -||mdi_code_tags| -||mdi_code_tags_check| -||mdi_codepen| -||mdi_coffee| -||mdi_coffee_outline| -||mdi_coffee_to_go| -||mdi_coin| -||mdi_coins| -|﬿|mdi_collage| -||mdi_color_helper| -||mdi_comment| -||mdi_comment_account| -||mdi_comment_account_outline| -||mdi_comment_alert| -||mdi_comment_alert_outline| -||mdi_comment_check| -||mdi_comment_check_outline| -||mdi_comment_multiple_outline| -||mdi_comment_outline| -||mdi_comment_plus_outline| -||mdi_comment_processing| -||mdi_comment_processing_outline| -||mdi_comment_question| -||mdi_comment_question_outline| -||mdi_comment_remove| -||mdi_comment_remove_outline| -||mdi_comment_text| -||mdi_comment_text_outline| -||mdi_compare| -||mdi_compass| -||mdi_compass_outline| -||mdi_console| -||mdi_console_line| -||mdi_contact_mail| -||mdi_contacts| -||mdi_content_copy| -||mdi_content_cut| -||mdi_content_duplicate| -||mdi_content_paste| -||mdi_content_save| -||mdi_content_save_all| -||mdi_content_save_outline| -||mdi_content_save_settings| -||mdi_contrast| -||mdi_contrast_box| -||mdi_contrast_circle| -||mdi_cookie| -||mdi_copyright| -||mdi_corn| -||mdi_counter| -||mdi_cow| -||mdi_creation| -||mdi_credit_card| -||mdi_credit_card_multiple| -||mdi_credit_card_off| -||mdi_credit_card_plus| -||mdi_credit_card_scan| -||mdi_crop| -||mdi_crop_free| -||mdi_crop_landscape| -||mdi_crop_portrait| -||mdi_crop_rotate| -||mdi_crop_square| -||mdi_crosshairs| -||mdi_crosshairs_gps| -||mdi_crown| -||mdi_cube| -||mdi_cube_outline| -||mdi_cube_send| -||mdi_cube_unfolded| -||mdi_cup| -||mdi_cup_off| -||mdi_cup_water| -||mdi_currency_btc| -||mdi_currency_chf| -||mdi_currency_cny| -||mdi_currency_eth| -||mdi_currency_eur| -||mdi_currency_gbp| -||mdi_currency_inr| -||mdi_currency_jpy| -||mdi_currency_krw| -||mdi_currency_ngn| -||mdi_currency_rub| -||mdi_currency_sign| -||mdi_currency_try| -||mdi_currency_twd| -||mdi_currency_usd| -||mdi_currency_usd_off| -||mdi_cursor_default| -||mdi_cursor_default_outline| -||mdi_cursor_move| -||mdi_cursor_pointer| -||mdi_cursor_text| -||mdi_database| -||mdi_database_minus| -||mdi_database_plus| -||mdi_debug_step_into| -||mdi_debug_step_out| -||mdi_debug_step_over| -||mdi_decagram| -||mdi_decagram_outline| -||mdi_decimal_decrease| -||mdi_decimal_increase| -||mdi_delete| -||mdi_delete_circle| -||mdi_delete_empty| -||mdi_delete_forever| -||mdi_delete_restore| -||mdi_delete_sweep| -||mdi_delete_variant| -||mdi_delta| -||mdi_deskphone| -||mdi_desktop_classic| -||mdi_desktop_mac| -||mdi_desktop_tower| -||mdi_details| -||mdi_developer_board| -||mdi_deviantart| -||mdi_dialpad| -||mdi_diamond| -||mdi_dice_1| -||mdi_dice_2| -||mdi_dice_3| -||mdi_dice_4| -||mdi_dice_5| -||mdi_dice_6| -||mdi_dice_d4| -||mdi_dice_d6| -||mdi_dice_d8| -||mdi_dice_d10| -||mdi_dice_d20| -||mdi_dice_multiple| -||mdi_dictionary| -|ﲿ|mdi_dip_switch| -||mdi_directions| -||mdi_directions_fork| -||mdi_discord| -||mdi_disk| -||mdi_disk_alert| -||mdi_disqus| -||mdi_disqus_outline| -||mdi_division| -||mdi_division_box| -||mdi_dna| -||mdi_dns| -||mdi_do_not_disturb| -||mdi_do_not_disturb_off| -||mdi_dolby| -||mdi_domain| -||mdi_donkey| -||mdi_door| -||mdi_door_closed| -||mdi_door_open| -||mdi_dots_horizontal| -||mdi_dots_horizontal_circle| -||mdi_dots_vertical| -||mdi_dots_vertical_circle| -||mdi_douban| -||mdi_download| -||mdi_download_network| -||mdi_drag| -||mdi_drag_horizontal| -||mdi_drag_vertical| -||mdi_drawing| -||mdi_drawing_box| -||mdi_dribbble| -||mdi_dribbble_box| -||mdi_drone| -||mdi_dropbox| -||mdi_drupal| -||mdi_duck| -||mdi_dumbbell| -||mdi_ear_hearing| -||mdi_earth| -||mdi_earth_box| -||mdi_earth_box_off| -||mdi_earth_off| -||mdi_edge| -||mdi_eject| -||mdi_elephant| -||mdi_elevation_decline| -||mdi_elevation_rise| -||mdi_elevator| -||mdi_email| -||mdi_email_alert| -||mdi_email_open| -||mdi_email_open_outline| -||mdi_email_outline| -||mdi_email_secure| -||mdi_email_variant| -||mdi_emby| -||mdi_emoticon| -||mdi_emoticon_cool| -||mdi_emoticon_dead| -||mdi_emoticon_devil| -||mdi_emoticon_excited| -||mdi_emoticon_happy| -||mdi_emoticon_neutral| -||mdi_emoticon_poop| -||mdi_emoticon_sad| -||mdi_emoticon_tongue| -||mdi_engine| -||mdi_engine_outline| -||mdi_equal| -||mdi_equal_box| -||mdi_eraser| -||mdi_eraser_variant| -||mdi_escalator| -||mdi_ethernet| -||mdi_ethernet_cable| -||mdi_ethernet_cable_off| -||mdi_etsy| -||mdi_ev_station| -||mdi_eventbrite| -||mdi_evernote| -||mdi_exclamation| -||mdi_exit_to_app| -||mdi_export| -||mdi_eye| -||mdi_eye_off| -||mdi_eye_off_outline| -||mdi_eye_outline| -||mdi_eyedropper| -||mdi_eyedropper_variant| -||mdi_face| -||mdi_face_profile| -||mdi_facebook| -||mdi_facebook_box| -||mdi_facebook_messenger| -||mdi_factory| -||mdi_fan| -||mdi_fan_off| -||mdi_fast_forward| -||mdi_fast_forward_outline| -||mdi_fax| -||mdi_feather| -||mdi_ferry| -||mdi_file| -||mdi_file_account| -||mdi_file_chart| -||mdi_file_check| -||mdi_file_cloud| -||mdi_file_delimited| -||mdi_file_document| -||mdi_file_document_box| -||mdi_file_excel| -||mdi_file_excel_box| -||mdi_file_export| -||mdi_file_find| -||mdi_file_hidden| -||mdi_file_image| -||mdi_file_import| -||mdi_file_lock| -||mdi_file_multiple| -||mdi_file_music| -||mdi_file_outline| -||mdi_file_pdf| -||mdi_file_pdf_box| -||mdi_file_percent| -||mdi_file_plus| -||mdi_file_powerpoint| -||mdi_file_powerpoint_box| -||mdi_file_presentation_box| -||mdi_file_restore| -||mdi_file_send| -||mdi_file_tree| -||mdi_file_video| -||mdi_file_word| -||mdi_file_word_box| -||mdi_file_xml| -||mdi_film| -||mdi_filmstrip| -||mdi_filmstrip_off| -||mdi_filter| -||mdi_filter_outline| -||mdi_filter_remove| -||mdi_filter_remove_outline| -||mdi_filter_variant| -||mdi_finance| -||mdi_find_replace| -||mdi_fingerprint| -||mdi_fire| -||mdi_firefox| -||mdi_fish| -||mdi_flag| -||mdi_flag_checkered| -||mdi_flag_outline| -||mdi_flag_triangle| -||mdi_flag_variant| -||mdi_flag_variant_outline| -||mdi_flash| -||mdi_flash_auto| -||mdi_flash_circle| -||mdi_flash_off| -||mdi_flash_outline| -||mdi_flash_red_eye| -||mdi_flashlight| -||mdi_flashlight_off| -||mdi_flask| -||mdi_flask_empty| -||mdi_flask_empty_outline| -||mdi_flask_outline| -||mdi_flattr| -||mdi_flip_to_back| -||mdi_flip_to_front| -||mdi_floor_plan| -||mdi_floppy| -||mdi_flower| -||mdi_folder| -||mdi_folder_account| -||mdi_folder_download| -||mdi_folder_google_drive| -||mdi_folder_image| -||mdi_folder_lock| -||mdi_folder_lock_open| -||mdi_folder_move| -||mdi_folder_multiple| -||mdi_folder_multiple_image| -||mdi_folder_multiple_outline| -||mdi_folder_open| -||mdi_folder_outline| -||mdi_folder_plus| -||mdi_folder_remove| -||mdi_folder_star| -||mdi_folder_upload| -||mdi_font_awesome| -||mdi_food| -||mdi_food_apple| -||mdi_food_croissant| -||mdi_food_fork_drink| -||mdi_food_off| -||mdi_food_variant| -||mdi_football| -||mdi_football_australian| -||mdi_football_helmet| -||mdi_forklift| -||mdi_format_align_bottom| -||mdi_format_align_center| -||mdi_format_align_justify| -||mdi_format_align_left| -||mdi_format_align_middle| -||mdi_format_align_right| -||mdi_format_align_top| -||mdi_format_annotation_plus| -||mdi_format_bold| -||mdi_format_clear| -||mdi_format_color_fill| -||mdi_format_color_text| -||mdi_format_float_center| -||mdi_format_float_left| -||mdi_format_float_none| -||mdi_format_float_right| -||mdi_format_font| -||mdi_format_header_1| -||mdi_format_header_2| -||mdi_format_header_3| -||mdi_format_header_4| -||mdi_format_header_5| -||mdi_format_header_6| -||mdi_format_header_decrease| -||mdi_format_header_equal| -||mdi_format_header_increase| -||mdi_format_header_pound| -||mdi_format_horizontal_align_center| -||mdi_format_horizontal_align_left| -||mdi_format_horizontal_align_right| -||mdi_format_indent_decrease| -||mdi_format_indent_increase| -||mdi_format_italic| -||mdi_format_line_spacing| -||mdi_format_line_style| -||mdi_format_line_weight| -||mdi_format_list_bulleted| -||mdi_format_list_bulleted_type| -||mdi_format_list_checks| -||mdi_format_list_numbers| -||mdi_format_page_break| -||mdi_format_paint| -||mdi_format_paragraph| -||mdi_format_pilcrow| -||mdi_format_quote_close| -||mdi_format_quote_open| -||mdi_format_rotate_90| -||mdi_format_section| -||mdi_format_size| -||mdi_format_strikethrough| -||mdi_format_strikethrough_variant| -||mdi_format_subscript| -||mdi_format_superscript| -||mdi_format_text| -||mdi_format_textdirection_l_to_r| -||mdi_format_textdirection_r_to_l| -||mdi_format_title| -||mdi_format_underline| -||mdi_format_vertical_align_bottom| -||mdi_format_vertical_align_center| -||mdi_format_vertical_align_top| -||mdi_format_wrap_inline| -||mdi_format_wrap_square| -||mdi_format_wrap_tight| -||mdi_format_wrap_top_bottom| -||mdi_forum| -||mdi_forum_outline| -||mdi_forward| -||mdi_foursquare| -||mdi_fridge| -||mdi_fridge_filled| -||mdi_fridge_filled_bottom| -||mdi_fridge_filled_top| -||mdi_fuel| -||mdi_fullscreen| -||mdi_fullscreen_exit| -||mdi_function| -||mdi_gamepad| -||mdi_gamepad_variant| -||mdi_garage| -||mdi_garage_open| -||mdi_gas_cylinder| -||mdi_gas_station| -||mdi_gate| -||mdi_gauge| -||mdi_gavel| -||mdi_gender_female| -||mdi_gender_male| -||mdi_gender_male_female| -||mdi_gender_transgender| -||mdi_gesture| -||mdi_gesture_double_tap| -||mdi_gesture_swipe_down| -||mdi_gesture_swipe_left| -||mdi_gesture_swipe_right| -||mdi_gesture_swipe_up| -|ﰿ|mdi_gesture_tap| -||mdi_gesture_two_double_tap| -||mdi_gesture_two_tap| -||mdi_ghost| -||mdi_gift| -||mdi_git| -||mdi_github_box| -||mdi_github_circle| -||mdi_github_face| -||mdi_glass_flute| -||mdi_glass_mug| -||mdi_glass_stange| -||mdi_glass_tulip| -||mdi_glassdoor| -||mdi_glasses| -||mdi_gmail| -||mdi_gnome| -||mdi_golf| -||mdi_gondola| -||mdi_google| -||mdi_google_analytics| -||mdi_google_assistant| -||mdi_google_cardboard| -||mdi_google_chrome| -||mdi_google_circles| -||mdi_google_circles_communities| -||mdi_google_circles_extended| -||mdi_google_circles_group| -||mdi_google_controller| -||mdi_google_controller_off| -||mdi_google_drive| -||mdi_google_earth| -||mdi_google_glass| -||mdi_google_home| -||mdi_google_keep| -||mdi_google_maps| -||mdi_google_nearby| -||mdi_google_pages| -||mdi_google_photos| -||mdi_google_physical_web| -||mdi_google_play| -||mdi_google_plus| -||mdi_google_plus_box| -||mdi_google_translate| -||mdi_google_wallet| -||mdi_gradient| -||mdi_grease_pencil| -||mdi_grid| -||mdi_grid_large| -||mdi_grid_off| -||mdi_group| -||mdi_guitar_acoustic| -||mdi_guitar_electric| -||mdi_guitar_pick| -||mdi_guitar_pick_outline| -||mdi_guy_fawkes_mask| -||mdi_hackernews| -||mdi_hamburger| -||mdi_hand_pointing_right| -||mdi_hanger| -||mdi_hangouts| -||mdi_harddisk| -||mdi_headphones| -||mdi_headphones_box| -||mdi_headphones_off| -||mdi_headphones_settings| -||mdi_headset| -||mdi_headset_dock| -||mdi_headset_off| -||mdi_heart| -||mdi_heart_box| -||mdi_heart_box_outline| -||mdi_heart_broken| -||mdi_heart_half| -||mdi_heart_half_full| -||mdi_heart_half_outline| -||mdi_heart_off| -||mdi_heart_outline| -||mdi_heart_pulse| -||mdi_help| -||mdi_help_box| -||mdi_help_circle| -||mdi_help_circle_outline| -||mdi_help_network| -||mdi_hexagon| -||mdi_hexagon_multiple| -||mdi_hexagon_outline| -||mdi_high_definition| -||mdi_highway| -||mdi_history| -||mdi_hololens| -||mdi_home| -||mdi_home_account| -||mdi_home_assistant| -||mdi_home_automation| -||mdi_home_circle| -||mdi_home_heart| -||mdi_home_map_marker| -||mdi_home_modern| -||mdi_home_outline| -||mdi_home_variant| -||mdi_hook| -||mdi_hook_off| -||mdi_hops| -||mdi_hospital| -||mdi_hospital_building| -||mdi_hospital_marker| -||mdi_hot_tub| -||mdi_hotel| -||mdi_houzz| -||mdi_houzz_box| -||mdi_hulu| -||mdi_human| -||mdi_human_child| -||mdi_human_female| -||mdi_human_greeting| -||mdi_human_handsdown| -||mdi_human_handsup| -||mdi_human_male| -||mdi_human_male_female| -||mdi_human_pregnant| -||mdi_humble_bundle| -||mdi_ice_cream| -||mdi_image| -||mdi_image_album| -||mdi_image_area| -||mdi_image_area_close| -||mdi_image_broken| -||mdi_image_broken_variant| -||mdi_image_filter| -||mdi_image_filter_black_white| -||mdi_image_filter_center_focus| -||mdi_image_filter_center_focus_weak| -||mdi_image_filter_drama| -||mdi_image_filter_frames| -||mdi_image_filter_hdr| -||mdi_image_filter_none| -||mdi_image_filter_tilt_shift| -||mdi_image_filter_vintage| -||mdi_image_multiple| -||mdi_image_off| -||mdi_import| -||mdi_inbox| -||mdi_inbox_arrow_down| -||mdi_inbox_arrow_up| -||mdi_incognito| -||mdi_infinity| -||mdi_information| -||mdi_information_outline| -||mdi_information_variant| -||mdi_instagram| -||mdi_instapaper| -||mdi_internet_explorer| -||mdi_invert_colors| -||mdi_itunes| -||mdi_jeepney| -||mdi_jira| -||mdi_jsfiddle| -||mdi_json| -||mdi_karate| -||mdi_keg| -||mdi_kettle| -||mdi_key| -||mdi_key_change| -||mdi_key_minus| -||mdi_key_plus| -||mdi_key_remove| -||mdi_key_variant| -||mdi_keyboard| -||mdi_keyboard_backspace| -||mdi_keyboard_caps| -||mdi_keyboard_close| -||mdi_keyboard_off| -||mdi_keyboard_return| -||mdi_keyboard_tab| -||mdi_keyboard_variant| -||mdi_kickstarter| -||mdi_kodi| -||mdi_label| -||mdi_label_outline| -||mdi_ladybug| -||mdi_lambda| -||mdi_lamp| -||mdi_lan| -||mdi_lan_connect| -||mdi_lan_disconnect| -||mdi_lan_pending| -||mdi_language_c| -||mdi_language_cpp| -||mdi_language_csharp| -||mdi_language_css3| -||mdi_language_go| -||mdi_language_html5| -||mdi_language_javascript| -||mdi_language_php| -||mdi_language_python| -||mdi_language_python_text| -||mdi_language_r| -||mdi_language_swift| -||mdi_language_typescript| -||mdi_laptop| -||mdi_laptop_chromebook| -||mdi_laptop_mac| -||mdi_laptop_off| -||mdi_laptop_windows| -||mdi_lastfm| -||mdi_lastpass| -||mdi_launch| -||mdi_lava_lamp| -||mdi_layers| -||mdi_layers_off| -||mdi_lead_pencil| -||mdi_leaf| -||mdi_led_off| -||mdi_led_on| -||mdi_led_outline| -||mdi_led_strip| -||mdi_led_variant_off| -||mdi_led_variant_on| -||mdi_led_variant_outline| -||mdi_library| -||mdi_library_books| -||mdi_library_music| -||mdi_library_plus| -||mdi_lightbulb| -||mdi_lightbulb_on| -||mdi_lightbulb_on_outline| -||mdi_lightbulb_outline| -||mdi_link| -||mdi_link_off| -||mdi_link_variant| -||mdi_link_variant_off| -||mdi_linkedin| -||mdi_linkedin_box| -||mdi_linux| -||mdi_loading| -||mdi_lock| -||mdi_lock_open| -||mdi_lock_open_outline| -||mdi_lock_outline| -||mdi_lock_pattern| -||mdi_lock_plus| -||mdi_lock_reset| -||mdi_locker| -||mdi_locker_multiple| -||mdi_login| -||mdi_login_variant| -||mdi_logout| -||mdi_logout_variant| -||mdi_looks| -||mdi_loop| -||mdi_loupe| -||mdi_lumx| -||mdi_magnet| -||mdi_magnet_on| -||mdi_magnify| -||mdi_magnify_minus| -||mdi_magnify_minus_outline| -||mdi_magnify_plus| -||mdi_magnify_plus_outline| -||mdi_mail_ru| -||mdi_mailbox| -||mdi_map| -||mdi_map_marker| -||mdi_map_marker_circle| -||mdi_map_marker_minus| -||mdi_map_marker_multiple| -||mdi_map_marker_off| -||mdi_map_marker_outline| -||mdi_map_marker_plus| -||mdi_map_marker_radius| -||mdi_margin| -||mdi_markdown| -||mdi_marker| -||mdi_marker_check| -||mdi_martini| -||mdi_material_ui| -||mdi_math_compass| -||mdi_matrix| -||mdi_maxcdn| -||mdi_medical_bag| -||mdi_medium| -||mdi_memory| -||mdi_menu| -||mdi_menu_down| -||mdi_menu_down_outline| -||mdi_menu_left| -||mdi_menu_right| -||mdi_menu_up| -||mdi_menu_up_outline| -||mdi_message| -||mdi_message_alert| -||mdi_message_bulleted| -||mdi_message_bulleted_off| -||mdi_message_draw| -||mdi_message_image| -||mdi_message_outline| -||mdi_message_plus| -||mdi_message_processing| -||mdi_message_reply| -||mdi_message_reply_text| -||mdi_message_settings| -||mdi_message_settings_variant| -||mdi_message_text| -||mdi_message_text_outline| -||mdi_message_video| -||mdi_meteor| -||mdi_metronome| -||mdi_metronome_tick| -||mdi_micro_sd| -||mdi_microphone| -||mdi_microphone_off| -||mdi_microphone_outline| -||mdi_microphone_settings| -||mdi_microphone_variant| -||mdi_microphone_variant_off| -||mdi_microscope| -||mdi_microsoft| -||mdi_minecraft| -||mdi_minus| -||mdi_minus_box| -||mdi_minus_box_outline| -||mdi_minus_circle| -||mdi_minus_circle_outline| -||mdi_minus_network| -||mdi_mixcloud| -||mdi_mixer| -||mdi_monitor| -||mdi_monitor_multiple| -||mdi_more| -||mdi_motorbike| -||mdi_mouse| -||mdi_mouse_off| -||mdi_mouse_variant| -||mdi_mouse_variant_off| -||mdi_move_resize| -||mdi_move_resize_variant| -||mdi_movie| -||mdi_movie_roll| -||mdi_multiplication| -||mdi_multiplication_box| -||mdi_mushroom| -||mdi_mushroom_outline| -||mdi_music| -||mdi_music_box| -||mdi_music_box_outline| -||mdi_music_circle| -||mdi_music_note| -||mdi_music_note_bluetooth| -||mdi_music_note_bluetooth_off| -||mdi_music_note_eighth| -||mdi_music_note_half| -||mdi_music_note_off| -||mdi_music_note_quarter| -||mdi_music_note_sixteenth| -||mdi_music_note_whole| -||mdi_music_off| -||mdi_nature| -||mdi_nature_people| -||mdi_navigation| -||mdi_near_me| -||mdi_needle| -||mdi_nest_protect| -||mdi_nest_thermostat| -||mdi_netflix| -||mdi_network| -||mdi_new_box| -||mdi_newspaper| -||mdi_nfc| -||mdi_nfc_tap| -||mdi_nfc_variant| -||mdi_ninja| -||mdi_nintendo_switch| -||mdi_nodejs| -||mdi_note| -||mdi_note_multiple| -||mdi_note_multiple_outline| -||mdi_note_outline| -||mdi_note_plus| -||mdi_note_plus_outline| -||mdi_note_text| -||mdi_notebook| -||mdi_notification_clear_all| -||mdi_npm| -||mdi_nuke| -||mdi_null| -||mdi_numeric| -||mdi_numeric_0_box| -||mdi_numeric_0_box_multiple_outline| -||mdi_numeric_0_box_outline| -||mdi_numeric_1_box| -||mdi_numeric_1_box_multiple_outline| -||mdi_numeric_1_box_outline| -||mdi_numeric_2_box| -||mdi_numeric_2_box_multiple_outline| -||mdi_numeric_2_box_outline| -||mdi_numeric_3_box| -||mdi_numeric_3_box_multiple_outline| -||mdi_numeric_3_box_outline| -||mdi_numeric_4_box| -||mdi_numeric_4_box_multiple_outline| -||mdi_numeric_4_box_outline| -||mdi_numeric_5_box| -||mdi_numeric_5_box_multiple_outline| -||mdi_numeric_5_box_outline| -||mdi_numeric_6_box| -||mdi_numeric_6_box_multiple_outline| -||mdi_numeric_6_box_outline| -||mdi_numeric_7_box| -||mdi_numeric_7_box_multiple_outline| -||mdi_numeric_7_box_outline| -||mdi_numeric_8_box| -||mdi_numeric_8_box_multiple_outline| -||mdi_numeric_8_box_outline| -||mdi_numeric_9_box| -||mdi_numeric_9_box_multiple_outline| -||mdi_numeric_9_box_outline| -||mdi_numeric_9_plus_box| -||mdi_numeric_9_plus_box_multiple_outline| -||mdi_numeric_9_plus_box_outline| -||mdi_nut| -||mdi_nutrition| -||mdi_oar| -||mdi_octagon| -||mdi_octagon_outline| -||mdi_octagram| -||mdi_octagram_outline| -||mdi_odnoklassniki| -||mdi_office| -||mdi_oil| -||mdi_oil_temperature| -||mdi_omega| -||mdi_onedrive| -||mdi_onenote| -||mdi_opacity| -||mdi_open_in_app| -||mdi_open_in_new| -||mdi_openid| -||mdi_opera| -||mdi_orbit| -||mdi_ornament| -||mdi_ornament_variant| -||mdi_owl| -||mdi_package| -||mdi_package_down| -||mdi_package_up| -||mdi_package_variant| -||mdi_package_variant_closed| -|﫿|mdi_page_first| -||mdi_page_last| -||mdi_page_layout_body| -||mdi_page_layout_footer| -||mdi_page_layout_header| -||mdi_page_layout_sidebar_left| -||mdi_page_layout_sidebar_right| -||mdi_palette| -||mdi_palette_advanced| -||mdi_panda| -||mdi_pandora| -||mdi_panorama| -||mdi_panorama_fisheye| -||mdi_panorama_horizontal| -||mdi_panorama_vertical| -||mdi_panorama_wide_angle| -||mdi_paper_cut_vertical| -||mdi_paperclip| -||mdi_parking| -||mdi_passport| -||mdi_pause| -||mdi_pause_circle| -||mdi_pause_circle_outline| -||mdi_pause_octagon| -||mdi_pause_octagon_outline| -||mdi_paw| -||mdi_paw_off| -||mdi_pen| -||mdi_pencil| -||mdi_pencil_box| -||mdi_pencil_box_outline| -||mdi_pencil_circle| -||mdi_pencil_circle_outline| -||mdi_pencil_lock| -||mdi_pencil_off| -||mdi_pentagon| -|ﯿ|mdi_pentagon_outline| -||mdi_percent| -||mdi_periodic_table_co2| -||mdi_periscope| -||mdi_pharmacy| -||mdi_phone| -||mdi_phone_bluetooth| -||mdi_phone_classic| -||mdi_phone_forward| -||mdi_phone_hangup| -||mdi_phone_in_talk| -||mdi_phone_incoming| -||mdi_phone_locked| -||mdi_phone_log| -||mdi_phone_minus| -||mdi_phone_missed| -||mdi_phone_outgoing| -||mdi_phone_paused| -||mdi_phone_plus| -||mdi_phone_return| -||mdi_phone_settings| -||mdi_phone_voip| -||mdi_pi| -||mdi_pi_box| -||mdi_piano| -||mdi_pig| -||mdi_pill| -||mdi_pillar| -||mdi_pin| -||mdi_pin_off| -||mdi_pine_tree| -||mdi_pine_tree_box| -||mdi_pinterest| -||mdi_pinterest_box| -||mdi_pipe| -||mdi_pipe_disconnected| -||mdi_pistol| -||mdi_pizza| -||mdi_plane_shield| -||mdi_play| -||mdi_play_box_outline| -||mdi_play_circle| -||mdi_play_circle_outline| -||mdi_play_pause| -||mdi_play_protected_content| -||mdi_playlist_check| -||mdi_playlist_minus| -||mdi_playlist_play| -||mdi_playlist_plus| -||mdi_playlist_remove| -||mdi_playstation| -||mdi_plex| -||mdi_plus| -||mdi_plus_box| -||mdi_plus_box_outline| -||mdi_plus_circle| -||mdi_plus_circle_multiple_outline| -||mdi_plus_circle_outline| -||mdi_plus_network| -||mdi_plus_one| -||mdi_plus_outline| -||mdi_pocket| -||mdi_pokeball| -||mdi_poker_chip| -||mdi_polaroid| -||mdi_poll| -||mdi_poll_box| -||mdi_polymer| -||mdi_pool| -||mdi_popcorn| -||mdi_pot| -||mdi_pot_mix| -||mdi_pound| -||mdi_pound_box| -||mdi_power| -||mdi_power_plug| -||mdi_power_plug_off| -||mdi_power_settings| -||mdi_power_socket| -||mdi_power_socket_eu| -||mdi_power_socket_uk| -||mdi_power_socket_us| -||mdi_prescription| -||mdi_presentation| -||mdi_presentation_play| -||mdi_printer| -||mdi_printer_3d| -||mdi_printer_alert| -||mdi_printer_settings| -||mdi_priority_high| -||mdi_priority_low| -||mdi_professional_hexagon| -||mdi_projector| -||mdi_projector_screen| -||mdi_publish| -||mdi_pulse| -||mdi_puzzle| -||mdi_qqchat| -||mdi_qrcode| -||mdi_qrcode_scan| -||mdi_quadcopter| -||mdi_quality_high| -||mdi_quicktime| -||mdi_radar| -||mdi_radiator| -||mdi_radio| -||mdi_radio_handheld| -||mdi_radio_tower| -||mdi_radioactive| -||mdi_radiobox_blank| -||mdi_radiobox_marked| -||mdi_raspberrypi| -|錄|mdi_ray_end| -||mdi_ray_end_arrow| -||mdi_ray_start| -||mdi_ray_start_arrow| -||mdi_ray_start_end| -||mdi_ray_vertex| -||mdi_react| -||mdi_read| -||mdi_receipt| -||mdi_record| -||mdi_record_rec| -||mdi_recycle| -||mdi_reddit| -||mdi_redo| -||mdi_redo_variant| -||mdi_refresh| -||mdi_regex| -||mdi_relative_scale| -||mdi_reload| -||mdi_remote| -||mdi_rename_box| -||mdi_reorder_horizontal| -||mdi_reorder_vertical| -||mdi_repeat| -||mdi_repeat_off| -||mdi_repeat_once| -||mdi_replay| -||mdi_reply| -||mdi_reply_all| -||mdi_reproduction| -||mdi_resize_bottom_right| -||mdi_responsive| -||mdi_restart| -||mdi_restore| -||mdi_rewind| -||mdi_rewind_outline| -||mdi_rhombus| -||mdi_rhombus_outline| -||mdi_ribbon| -||mdi_rice| -||mdi_ring| -||mdi_road| -||mdi_road_variant| -||mdi_robot| -||mdi_rocket| -||mdi_roomba| -||mdi_rotate_3d| -||mdi_rotate_left| -||mdi_rotate_left_variant| -||mdi_rotate_right| -||mdi_rotate_right_variant| -||mdi_rounded_corner| -||mdi_router_wireless| -||mdi_routes| -||mdi_rowing| -||mdi_rss| -||mdi_rss_box| -||mdi_ruler| -||mdi_run| -||mdi_run_fast| -||mdi_sale| -||mdi_sass| -||mdi_satellite| -||mdi_satellite_variant| -||mdi_saxophone| -||mdi_scale| -||mdi_scale_balance| -||mdi_scale_bathroom| -||mdi_scanner| -||mdi_school| -||mdi_screen_rotation| -||mdi_screen_rotation_lock| -||mdi_screwdriver| -||mdi_script| -||mdi_sd| -||mdi_seal| -||mdi_search_web| -||mdi_seat_flat| -||mdi_seat_flat_angled| -||mdi_seat_individual_suite| -||mdi_seat_legroom_extra| -||mdi_seat_legroom_normal| -|勵|mdi_seat_legroom_reduced| -||mdi_seat_recline_extra| -||mdi_seat_recline_normal| -||mdi_security| -||mdi_security_home| -||mdi_security_network| -||mdi_select| -||mdi_select_all| -||mdi_select_inverse| -||mdi_select_off| -||mdi_selection| -||mdi_selection_off| -||mdi_send| -||mdi_send_secure| -||mdi_serial_port| -||mdi_server| -||mdi_server_minus| -||mdi_server_network| -||mdi_server_network_off| -||mdi_server_off| -||mdi_server_plus| -||mdi_server_remove| -||mdi_server_security| -||mdi_set_all| -||mdi_set_center| -||mdi_set_center_right| -||mdi_set_left| -||mdi_set_left_center| -||mdi_set_left_right| -||mdi_set_none| -||mdi_set_right| -||mdi_settings| -||mdi_settings_box| -||mdi_shape| -||mdi_shape_circle_plus| -||mdi_shape_outline| -||mdi_shape_plus| -||mdi_shape_polygon_plus| -||mdi_shape_rectangle_plus| -||mdi_shape_square_plus| -||mdi_share| -||mdi_share_variant| -||mdi_shield| -||mdi_shield_half_full| -||mdi_shield_outline| -||mdi_ship_wheel| -||mdi_shopping| -||mdi_shopping_music| -||mdi_shovel| -||mdi_shovel_off| -||mdi_shredder| -||mdi_shuffle| -||mdi_shuffle_disabled| -||mdi_shuffle_variant| -||mdi_sigma| -||mdi_sigma_lower| -||mdi_sign_caution| -|ﱿ|mdi_sign_direction| -||mdi_sign_text| -||mdi_signal| -||mdi_signal_2g| -||mdi_signal_3g| -||mdi_signal_4g| -||mdi_signal_hspa| -||mdi_signal_hspa_plus| -||mdi_signal_off| -||mdi_signal_variant| -||mdi_silverware| -||mdi_silverware_fork| -||mdi_silverware_spoon| -||mdi_silverware_variant| -||mdi_sim| -||mdi_sim_alert| -||mdi_sim_off| -||mdi_sitemap| -||mdi_skip_backward| -||mdi_skip_forward| -||mdi_skip_next| -||mdi_skip_next_circle| -||mdi_skip_next_circle_outline| -||mdi_skip_previous| -||mdi_skip_previous_circle| -||mdi_skip_previous_circle_outline| -||mdi_skull| -||mdi_skype| -||mdi_skype_business| -||mdi_slack| -||mdi_sleep| -||mdi_sleep_off| -||mdi_smoking| -||mdi_smoking_off| -||mdi_snapchat| -||mdi_snowflake| -||mdi_snowman| -||mdi_soccer| -||mdi_soccer_field| -||mdi_sofa| -||mdi_solid| -||mdi_sort| -||mdi_sort_alphabetical| -||mdi_sort_ascending| -||mdi_sort_descending| -||mdi_sort_numeric| -||mdi_sort_variant| -|樂|mdi_soundcloud| -||mdi_source_branch| -||mdi_source_commit| -||mdi_source_commit_end| -||mdi_source_commit_end_local| -||mdi_source_commit_local| -||mdi_source_commit_next_local| -||mdi_source_commit_start| -||mdi_source_commit_start_next_local| -||mdi_source_fork| -||mdi_source_merge| -||mdi_source_pull| -||mdi_soy_sauce| -||mdi_speaker| -||mdi_speaker_off| -||mdi_speaker_wireless| -||mdi_speedometer| -||mdi_spellcheck| -||mdi_spotify| -||mdi_spotlight| -||mdi_spotlight_beam| -||mdi_spray| -||mdi_square| -||mdi_square_inc| -||mdi_square_inc_cash| -||mdi_square_outline| -||mdi_square_root| -||mdi_stack_overflow| -||mdi_stackexchange| -||mdi_stadium| -||mdi_stairs| -||mdi_standard_definition| -||mdi_star| -||mdi_star_circle| -||mdi_star_half| -||mdi_star_off| -||mdi_star_outline| -||mdi_steam| -||mdi_steering| -||mdi_step_backward| -||mdi_step_backward_2| -||mdi_step_forward| -||mdi_step_forward_2| -||mdi_stethoscope| -||mdi_sticker| -||mdi_sticker_emoji| -||mdi_stocking| -||mdi_stop| -||mdi_stop_circle| -||mdi_stop_circle_outline| -||mdi_store| -||mdi_store_24_hour| -||mdi_stove| -||mdi_subdirectory_arrow_left| -||mdi_subdirectory_arrow_right| -||mdi_subway| -||mdi_subway_variant| -||mdi_summit| -||mdi_sunglasses| -||mdi_surround_sound| -||mdi_surround_sound_2_0| -||mdi_surround_sound_3_1| -||mdi_surround_sound_5_1| -||mdi_surround_sound_7_1| -||mdi_svg| -||mdi_swap_horizontal| -||mdi_swap_vertical| -||mdi_swim| -||mdi_switch| -||mdi_sword| -||mdi_sword_cross| -||mdi_sync| -||mdi_sync_alert| -||mdi_sync_off| -||mdi_tab| -||mdi_tab_plus| -||mdi_tab_unselected| -||mdi_table| -||mdi_table_column| -||mdi_table_column_plus_after| -||mdi_table_column_plus_before| -||mdi_table_column_remove| -||mdi_table_column_width| -||mdi_table_edit| -||mdi_table_large| -||mdi_table_of_contents| -||mdi_table_row| -||mdi_table_row_height| -||mdi_table_row_plus_after| -||mdi_table_row_plus_before| -||mdi_table_row_remove| -||mdi_table_settings| -||mdi_tablet| -||mdi_tablet_android| -||mdi_tablet_ipad| -||mdi_taco| -||mdi_tag| -||mdi_tag_faces| -||mdi_tag_heart| -||mdi_tag_multiple| -||mdi_tag_outline| -||mdi_tag_plus| -||mdi_tag_remove| -||mdi_tag_text_outline| -||mdi_target| -||mdi_taxi| -|刺|mdi_teamviewer| -||mdi_telegram| -||mdi_television| -||mdi_television_box| -||mdi_television_classic| -||mdi_television_classic_off| -||mdi_television_guide| -||mdi_television_off| -||mdi_temperature_celsius| -||mdi_temperature_fahrenheit| -||mdi_temperature_kelvin| -||mdi_tennis| -||mdi_tent| -||mdi_terrain| -||mdi_test_tube| -||mdi_text_shadow| -||mdi_text_to_speech| -||mdi_text_to_speech_off| -||mdi_textbox| -||mdi_textbox_password| -||mdi_texture| -||mdi_theater| -||mdi_theme_light_dark| -||mdi_thermometer| -||mdi_thermometer_lines| -||mdi_thought_bubble| -||mdi_thought_bubble_outline| -||mdi_thumb_down| -||mdi_thumb_down_outline| -||mdi_thumb_up| -||mdi_thumb_up_outline| -||mdi_thumbs_up_down| -||mdi_ticket| -||mdi_ticket_account| -||mdi_ticket_confirmation| -||mdi_ticket_percent| -||mdi_tie| -||mdi_tilde| -||mdi_timelapse| -||mdi_timer| -||mdi_timer_3| -||mdi_timer_10| -||mdi_timer_off| -||mdi_timer_sand| -||mdi_timer_sand_empty| -||mdi_timer_sand_full| -||mdi_timetable| -||mdi_toggle_switch| -||mdi_toggle_switch_off| -||mdi_tooltip| -||mdi_tooltip_edit| -||mdi_tooltip_image| -||mdi_tooltip_outline| -||mdi_tooltip_outline_plus| -||mdi_tooltip_text| -||mdi_tooth| -||mdi_tor| -|ﭿ|mdi_tower_beach| -||mdi_tower_fire| -||mdi_towing| -||mdi_trackpad| -||mdi_traffic_light| -||mdi_train| -||mdi_tram| -||mdi_transcribe| -||mdi_transcribe_close| -||mdi_transfer| -||mdi_transit_transfer| -||mdi_translate| -||mdi_treasure_chest| -||mdi_tree| -||mdi_trello| -||mdi_trending_down| -||mdi_trending_neutral| -||mdi_trending_up| -||mdi_triangle| -||mdi_triangle_outline| -||mdi_trophy| -||mdi_trophy_award| -||mdi_trophy_outline| -||mdi_trophy_variant| -||mdi_trophy_variant_outline| -||mdi_truck| -||mdi_truck_delivery| -||mdi_truck_fast| -||mdi_truck_trailer| -||mdi_tshirt_crew| -|憎|mdi_tshirt_v| -||mdi_tumblr| -||mdi_tumblr_reblog| -||mdi_tune| -||mdi_tune_vertical| -||mdi_twitch| -||mdi_twitter| -||mdi_twitter_box| -||mdi_twitter_circle| -||mdi_twitter_retweet| -||mdi_uber| -||mdi_ubuntu| -||mdi_ultra_high_definition| -||mdi_umbraco| -||mdi_umbrella| -||mdi_umbrella_outline| -||mdi_undo| -||mdi_undo_variant| -||mdi_unfold_less_horizontal| -||mdi_unfold_less_vertical| -||mdi_unfold_more_horizontal| -||mdi_unfold_more_vertical| -||mdi_ungroup| -||mdi_unity| -||mdi_untappd| -||mdi_update| -||mdi_upload| -||mdi_upload_multiple| -||mdi_upload_network| -||mdi_usb| -||mdi_van_passenger| -||mdi_van_utility| -||mdi_vanish| -||mdi_vector_arrange_above| -||mdi_vector_arrange_below| -||mdi_vector_circle| -||mdi_vector_circle_variant| -||mdi_vector_combine| -||mdi_vector_curve| -||mdi_vector_difference| -||mdi_vector_difference_ab| -||mdi_vector_difference_ba| -||mdi_vector_intersection| -||mdi_vector_line| -||mdi_vector_point| -||mdi_vector_polygon| -||mdi_vector_polyline| -||mdi_vector_radius| -||mdi_vector_rectangle| -||mdi_vector_selection| -||mdi_vector_square| -||mdi_vector_triangle| -||mdi_vector_union| -||mdi_venmo| -||mdi_verified| -||mdi_vibrate| -||mdi_video| -||mdi_video_3d| -||mdi_video_4k_box| -||mdi_video_input_antenna| -||mdi_video_input_component| -|﴿|mdi_video_input_hdmi| -||mdi_video_input_svideo| -||mdi_video_off| -||mdi_video_switch| -||mdi_view_agenda| -||mdi_view_array| -||mdi_view_carousel| -||mdi_view_column| -||mdi_view_dashboard| -||mdi_view_dashboard_variant| -||mdi_view_day| -||mdi_view_grid| -||mdi_view_headline| -||mdi_view_list| -||mdi_view_module| -||mdi_view_parallel| -||mdi_view_quilt| -||mdi_view_sequential| -||mdi_view_stream| -||mdi_view_week| -||mdi_vimeo| -||mdi_violin| -||mdi_visualstudio| -||mdi_vk| -||mdi_vk_box| -||mdi_vk_circle| -||mdi_vlc| -||mdi_voice| -||mdi_voicemail| -||mdi_volume_high| -||mdi_volume_low| -|奔|mdi_volume_medium| -||mdi_volume_minus| -||mdi_volume_mute| -||mdi_volume_off| -||mdi_volume_plus| -||mdi_vpn| -||mdi_vuejs| -||mdi_walk| -||mdi_wall| -||mdi_wallet| -||mdi_wallet_giftcard| -||mdi_wallet_membership| -||mdi_wallet_travel| -||mdi_wan| -||mdi_washing_machine| -||mdi_watch| -||mdi_watch_export| -||mdi_watch_import| -||mdi_watch_vibrate| -||mdi_water| -||mdi_water_off| -||mdi_water_percent| -||mdi_water_pump| -||mdi_watermark| -||mdi_waves| -||mdi_weather_cloudy| -||mdi_weather_fog| -||mdi_weather_hail| -||mdi_weather_lightning| -||mdi_weather_lightning_rainy| -||mdi_weather_night| -||mdi_weather_partlycloudy| -||mdi_weather_pouring| -||mdi_weather_rainy| -||mdi_weather_snowy| -||mdi_weather_snowy_rainy| -||mdi_weather_sunny| -||mdi_weather_sunset| -||mdi_weather_sunset_down| -||mdi_weather_sunset_up| -||mdi_weather_windy| -||mdi_weather_windy_variant| -||mdi_web| -||mdi_webcam| -||mdi_webhook| -||mdi_webpack| -||mdi_wechat| -||mdi_weight| -||mdi_weight_kilogram| -||mdi_whatsapp| -||mdi_wheelchair_accessibility| -||mdi_white_balance_auto| -||mdi_white_balance_incandescent| -||mdi_white_balance_iridescent| -||mdi_white_balance_sunny| -||mdi_widgets| -||mdi_wifi| -||mdi_wifi_off| -||mdi_wii| -||mdi_wiiu| -||mdi_wikipedia| -||mdi_window_close| -||mdi_window_closed| -||mdi_window_maximize| -||mdi_window_minimize| -||mdi_window_open| -||mdi_window_restore| -||mdi_windows| -||mdi_wordpress| -||mdi_worker| -||mdi_wrap| -||mdi_wrench| -||mdi_wunderlist| -||mdi_xamarin| -||mdi_xamarin_outline| -||mdi_xaml| -||mdi_xbox| -||mdi_xbox_controller| -||mdi_xbox_controller_battery_alert| -||mdi_xbox_controller_battery_empty| -||mdi_xbox_controller_battery_full| -||mdi_xbox_controller_battery_low| -||mdi_xbox_controller_battery_medium| -||mdi_xbox_controller_battery_unknown| -||mdi_xbox_controller_off| -||mdi_xda| -||mdi_xing| -||mdi_xing_box| -||mdi_xing_circle| -|謹|mdi_xml| -||mdi_xmpp| -||mdi_yammer| -||mdi_yeast| -||mdi_yelp| -||mdi_yin_yang| -||mdi_youtube_creator_studio| -||mdi_youtube_gaming| -||mdi_youtube_play| -||mdi_youtube_tv| -||mdi_zip_box| -||oct_alert| -||oct_arrow_down| -||oct_arrow_left| -||oct_arrow_right| -||oct_arrow_small_down| -||oct_arrow_small_left| -||oct_arrow_small_right| -||oct_arrow_small_up| -||oct_arrow_up| -||oct_beaker| -||oct_bell| -||oct_bold| -||oct_book| -||oct_bookmark| -||oct_briefcase| -||oct_broadcast| -||oct_browser| -||oct_bug| -||oct_calendar| -||oct_check| -||oct_checklist| -||oct_chevron_down| -||oct_chevron_left| -||oct_chevron_right| -||oct_chevron_up| -||oct_circle_slash| -||oct_circuit_board| -||oct_clippy| -||oct_clock| -||oct_cloud_download| -||oct_cloud_upload| -||oct_code| -||oct_comment| -||oct_comment_discussion| -||oct_credit_card| -||oct_dash| -||oct_dashboard| -||oct_database| -||oct_desktop_download| -||oct_device_camera| -||oct_device_camera_video| -||oct_device_desktop| -||oct_device_mobile| -||oct_diff| -||oct_diff_added| -||oct_diff_ignored| -||oct_diff_modified| -||oct_diff_removed| -||oct_diff_renamed| -||oct_ellipses| -||oct_ellipsis| -||oct_eye| -||oct_file| -||oct_file_binary| -||oct_file_code| -||oct_file_directory| -||oct_file_media| -||oct_file_pdf| -||oct_file_submodule| -||oct_file_symlink_directory| -||oct_file_symlink_file| -||oct_file_text| -||oct_file_zip| -||oct_flame| -||oct_fold| -||oct_gear| -||oct_gift| -||oct_gist| -||oct_gist_secret| -||oct_git_branch| -||oct_git_commit| -||oct_git_compare| -||oct_git_merge| -||oct_git_pull_request| -||oct_globe| -||oct_grabber| -||oct_graph| -||oct_heart| -||oct_history| -||oct_home| -||oct_horizontal_rule| -||oct_hubot| -||oct_inbox| -||oct_info| -||oct_issue_closed| -||oct_issue_opened| -||oct_issue_reopened| -||oct_italic| -||oct_jersey| -||oct_key| -||oct_keyboard| -||oct_law| -||oct_light_bulb| -||oct_link| -||oct_link_external| -||oct_list_ordered| -||oct_list_unordered| -||oct_location| -||oct_lock| -||oct_logo_gist| -||oct_logo_github| -||oct_mail| -||oct_mail_read| -||oct_mail_reply| -||oct_mark_github| -||oct_markdown| -||oct_megaphone| -||oct_mention| -||oct_milestone| -||oct_mirror| -||oct_mortar_board| -||oct_mute| -||oct_no_newline| -||oct_octoface| -||oct_organization| -||oct_package| -||oct_paintcan| -||oct_pencil| -||oct_person| -||oct_pin| -||oct_plug| -||oct_plus| -||oct_plus_small| -||oct_primitive_dot| -||oct_primitive_square| -||oct_pulse| -||oct_question| -||oct_quote| -||oct_radio_tower| -||oct_reply| -||oct_repo| -||oct_repo_clone| -||oct_repo_force_push| -||oct_repo_forked| -||oct_repo_pull| -||oct_repo_push| -||oct_rocket| -||oct_rss| -||oct_ruby| -||oct_search| -||oct_server| -||oct_settings| -||oct_shield| -||oct_sign_in| -||oct_sign_out| -||oct_smiley| -||oct_squirrel| -||oct_star| -||oct_stop| -||oct_sync| -||oct_tag| -||oct_tasklist| -||oct_telescope| -||oct_terminal| -||oct_text_size| -||oct_three_bars| -||oct_thumbsdown| -||oct_thumbsup| -||oct_tools| -||oct_trashcan| -||oct_triangle_down| -||oct_triangle_left| -||oct_triangle_right| -||oct_triangle_up| -||oct_unfold| -||oct_unmute| -||oct_unverified| -||oct_verified| -||oct_versions| -||oct_watch| -||oct_x| -||oct_zap| -||pl_branch| -||pl_hostname| -||pl_left_hard_divider| -||pl_left_soft_divider| -||pl_line_number| -||pl_right_hard_divider| -||pl_right_soft_divider| -||ple_backslash_separator| -||ple_backslash_separator_redundant| -||ple_column_number| -||ple_flame_thick| -||ple_flame_thick_mirrored| -||ple_flame_thin| -||ple_flame_thin_mirrored| -||ple_forwardslash_separator| -||ple_forwardslash_separator_redundant| -||ple_honeycomb| -||ple_honeycomb_outline| -||ple_ice_waveform| -||ple_ice_waveform_mirrored| -||ple_left_half_circle_thick| -||ple_left_half_circle_thin| -||ple_lego_block_facing| -||ple_lego_block_sideways| -||ple_lego_separator| -||ple_lego_separator_thin| -||ple_lower_left_triangle| -||ple_lower_right_triangle| -||ple_pixelated_squares_big| -||ple_pixelated_squares_big_mirrored| -||ple_pixelated_squares_small| -||ple_pixelated_squares_small_mirrored| -||ple_right_half_circle_thick| -||ple_right_half_circle_thin| -||ple_trapezoid_top_bottom| -||ple_trapezoid_top_bottom_mirrored| -||ple_upper_left_triangle| -||ple_upper_right_triangle| -||pom_away| -||pom_clean_code| -||pom_external_interruption| -||pom_internal_interruption| -||pom_long_pause| -||pom_pair_programming| -||pom_pomodoro_done| -||pom_pomodoro_estimated| -||pom_pomodoro_squashed| -||pom_pomodoro_ticking| -||pom_short_pause| -||seti_apple| -||seti_argdown| -||seti_asm| -||seti_audio| -||seti_babel| -||seti_bazel| -||seti_bicep| -||seti_bower| -||seti_bsl| -||seti_c| -||seti_c_sharp| -||seti_cake| -||seti_cake_php| -||seti_checkbox| -||seti_checkbox_unchecked| -||seti_clock| -||seti_clojure| -||seti_code_climate| -||seti_code_search| -||seti_coffee| -||seti_coldfusion| -||seti_config| -||seti_cpp| -||seti_crystal_embedded| -||seti_css| -||seti_csv| -||seti_cu| -||seti_d| -||seti_dart| -||seti_db| -||seti_default| -||seti_deprecation_cop| -||seti_docker| -||seti_editorconfig| -||seti_ejs| -||seti_elixir_script| -||seti_error| -||seti_eslint| -||seti_ethereum| -||seti_f_sharp| -||seti_favicon| -||seti_firebase| -||seti_firefox| -||seti_folder| -||seti_font| -||seti_git| -||seti_github| -||seti_gitlab| -||seti_go| -||seti_go2| -||seti_godot| -||seti_gradle| -||seti_grails| -||seti_graphql| -||seti_grunt| -||seti_gulp| -||seti_hacklang| -||seti_haml| -||seti_happenings| -||seti_haskell| -||seti_haxe| -||seti_heroku| -||seti_hex| -||seti_html| -||seti_ignored| -||seti_illustrator| -||seti_image| -||seti_info| -||seti_ionic| -||seti_jade| -||seti_java| -||seti_javascript| -||seti_jenkins| -||seti_jinja| -||seti_json| -||seti_julia| -||seti_karma| -||seti_license| -||seti_liquid| -||seti_livescript| -||seti_lock| -||seti_lua| -||seti_makefile| -||seti_markdown| -||seti_maven| -||seti_mdo| -||seti_mustache| -||seti_new_file| -||seti_nim| -||seti_notebook| -||seti_npm| -||seti_nunjucks| -||seti_ocaml| -||seti_odata| -||seti_pddl| -||seti_pdf| -||seti_perl| -||seti_photoshop| -||seti_php| -||seti_pipeline| -||seti_plan| -||seti_platformio| -||seti_powershell| -||seti_prisma| -||seti_project| -||seti_prolog| -||seti_pug| -||seti_puppet| -||seti_python| -||seti_r| -||seti_rails| -||seti_react| -||seti_reasonml| -||seti_rescript| -||seti_rollup| -||seti_ruby| -||seti_rust| -||seti_salesforce| -||seti_sass| -||seti_sbt| -||seti_scala| -||seti_search| -||seti_settings| -||seti_shell| -||seti_slim| -||seti_smarty| -||seti_spring| -||seti_stylelint| -||seti_stylus| -||seti_sublime| -||seti_svelte| -||seti_svg| -||seti_swift| -||seti_terraform| -||seti_tex| -||seti_todo| -||seti_tsconfig| -||seti_twig| -||seti_typescript| -||seti_vala| -||seti_video| -||seti_vue| -||seti_wasm| -||seti_wat| -||seti_webpack| -||seti_wgt| -||seti_word| -||seti_xls| -||seti_xml| -||seti_yarn| -||seti_yml| -||seti_zig| -||seti_zip| -||weather_alien| -||weather_aliens| -||weather_barometer| -||weather_celsius| -||weather_cloud| -||weather_cloud_down| -||weather_cloud_refresh| -||weather_cloud_up| -||weather_cloudy| -||weather_cloudy_gusts| -||weather_cloudy_windy| -||weather_day_cloudy| -||weather_day_cloudy_gusts| -||weather_day_cloudy_high| -||weather_day_cloudy_windy| -||weather_day_fog| -||weather_day_hail| -||weather_day_haze| -||weather_day_light_wind| -||weather_day_lightning| -||weather_day_rain| -||weather_day_rain_mix| -||weather_day_rain_wind| -||weather_day_showers| -||weather_day_sleet| -||weather_day_sleet_storm| -||weather_day_snow| -||weather_day_snow_thunderstorm| -||weather_day_snow_wind| -||weather_day_sprinkle| -||weather_day_storm_showers| -||weather_day_sunny| -||weather_day_sunny_overcast| -||weather_day_thunderstorm| -||weather_day_windy| -||weather_degrees| -||weather_direction_down| -||weather_direction_down_left| -||weather_direction_down_right| -||weather_direction_left| -||weather_direction_right| -||weather_direction_up| -||weather_direction_up_left| -||weather_direction_up_right| -||weather_dust| -||weather_earthquake| -||weather_fahrenheit| -||weather_fire| -||weather_flood| -||weather_fog| -||weather_gale_warning| -||weather_hail| -||weather_horizon| -||weather_horizon_alt| -||weather_hot| -||weather_humidity| -||weather_hurricane| -||weather_hurricane_warning| -||weather_lightning| -||weather_lunar_eclipse| -||weather_meteor| -||weather_moon_alt_first_quarter| -||weather_moon_alt_full| -||weather_moon_alt_new| -||weather_moon_alt_third_quarter| -||weather_moon_alt_waning_crescent_1| -||weather_moon_alt_waning_crescent_2| -||weather_moon_alt_waning_crescent_3| -||weather_moon_alt_waning_crescent_4| -||weather_moon_alt_waning_crescent_5| -||weather_moon_alt_waning_crescent_6| -||weather_moon_alt_waning_gibbous_1| -||weather_moon_alt_waning_gibbous_2| -||weather_moon_alt_waning_gibbous_3| -||weather_moon_alt_waning_gibbous_4| -||weather_moon_alt_waning_gibbous_5| -||weather_moon_alt_waning_gibbous_6| -||weather_moon_alt_waxing_crescent_1| -||weather_moon_alt_waxing_crescent_2| -||weather_moon_alt_waxing_crescent_3| -||weather_moon_alt_waxing_crescent_4| -||weather_moon_alt_waxing_crescent_5| -||weather_moon_alt_waxing_crescent_6| -||weather_moon_alt_waxing_gibbous_1| -||weather_moon_alt_waxing_gibbous_2| -||weather_moon_alt_waxing_gibbous_3| -||weather_moon_alt_waxing_gibbous_4| -||weather_moon_alt_waxing_gibbous_5| -||weather_moon_alt_waxing_gibbous_6| -||weather_moon_first_quarter| -||weather_moon_full| -||weather_moon_new| -||weather_moon_third_quarter| -||weather_moon_waning_crescent_1| -||weather_moon_waning_crescent_2| -||weather_moon_waning_crescent_3| -||weather_moon_waning_crescent_4| -||weather_moon_waning_crescent_5| -||weather_moon_waning_crescent_6| -||weather_moon_waning_gibbous_1| -||weather_moon_waning_gibbous_2| -||weather_moon_waning_gibbous_3| -||weather_moon_waning_gibbous_4| -||weather_moon_waning_gibbous_5| -||weather_moon_waning_gibbous_6| -||weather_moon_waxing_crescent_1| -||weather_moon_waxing_crescent_2| -||weather_moon_waxing_crescent_3| -||weather_moon_waxing_crescent_4| -||weather_moon_waxing_crescent_5| -||weather_moon_waxing_crescent_6| -||weather_moon_waxing_gibbous_1| -||weather_moon_waxing_gibbous_2| -||weather_moon_waxing_gibbous_3| -||weather_moon_waxing_gibbous_4| -||weather_moon_waxing_gibbous_5| -||weather_moon_waxing_gibbous_6| -||weather_moonrise| -||weather_moonset| -||weather_na| -||weather_night_alt_cloudy| -||weather_night_alt_cloudy_gusts| -||weather_night_alt_cloudy_high| -||weather_night_alt_cloudy_windy| -||weather_night_alt_hail| -||weather_night_alt_lightning| -||weather_night_alt_partly_cloudy| -||weather_night_alt_rain| -||weather_night_alt_rain_mix| -||weather_night_alt_rain_mix| -||weather_night_alt_rain_wind| -||weather_night_alt_sleet| -||weather_night_alt_sleet_storm| -||weather_night_alt_snow| -||weather_night_alt_snow_thunderstorm| -||weather_night_alt_snow_wind| -||weather_night_alt_sprinkle| -||weather_night_alt_storm_showers| -||weather_night_alt_thunderstorm| -||weather_night_clear| -||weather_night_cloudy| -||weather_night_cloudy_gusts| -||weather_night_cloudy_high| -||weather_night_cloudy_windy| -||weather_night_fog| -||weather_night_hail| -||weather_night_lightning| -||weather_night_partly_cloudy| -||weather_night_rain| -||weather_night_rain_mix| -||weather_night_rain_wind| -||weather_night_showers| -||weather_night_sleet| -||weather_night_sleet_storm| -||weather_night_snow| -||weather_night_snow_thunderstorm| -||weather_night_snow_wind| -||weather_night_sprinkle| -||weather_night_storm_showers| -||weather_night_thunderstorm| -||weather_rain| -||weather_rain_mix| -||weather_rain_wind| -||weather_raindrop| -||weather_raindrops| -||weather_refresh| -||weather_refresh_alt| -||weather_sandstorm| -||weather_showers| -||weather_sleet| -||weather_small_craft_advisory| -||weather_smog| -||weather_smoke| -||weather_snow| -||weather_snow_wind| -||weather_snowflake_cold| -||weather_solar_eclipse| -||weather_sprinkle| -||weather_stars| -||weather_storm_showers| -||weather_storm_warning| -||weather_strong_wind| -||weather_sunrise| -||weather_sunset| -||weather_thermometer| -||weather_thermometer_exterior| -||weather_thermometer_internal| -||weather_thunderstorm| -||weather_time_1| -||weather_time_2| -||weather_time_3| -||weather_time_4| -||weather_time_5| -||weather_time_6| -||weather_time_7| -||weather_time_8| -||weather_time_9| -||weather_time_10| -||weather_time_11| -||weather_time_12| -||weather_tornado| -||weather_train| -||weather_tsunami| -||weather_umbrella| -||weather_volcano| -||weather_wind_beaufort_0| -||weather_wind_beaufort_1| -||weather_wind_beaufort_2| -||weather_wind_beaufort_3| -||weather_wind_beaufort_4| -||weather_wind_beaufort_5| -||weather_wind_beaufort_6| -||weather_wind_beaufort_7| -||weather_wind_beaufort_8| -||weather_wind_beaufort_9| -||weather_wind_beaufort_10| -||weather_wind_beaufort_11| -||weather_wind_beaufort_12| -||weather_wind_direction| -||weather_wind_east| -||weather_wind_north| -||weather_wind_north_east| -||weather_wind_north_west| -||weather_wind_south| -||weather_wind_south_east| -||weather_wind_south_west| -||weather_wind_west| -||weather_windy| +||cod_account| +||cod_activate_breakpoints| +||cod_add| +||cod_archive| +||cod_arrow_both| +||cod_arrow_down| +||cod_arrow_left| +||cod_arrow_right| +||cod_arrow_small_down| +||cod_arrow_small_left| +||cod_arrow_small_right| +||cod_arrow_small_up| +||cod_arrow_swap| +||cod_arrow_up| +||cod_azure| +||cod_azure_devops| +||cod_beaker| +||cod_beaker_stop| +||cod_bell| +||cod_bell_dot| +||cod_bold| +||cod_book| +||cod_bookmark| +||cod_bracket_dot| +||cod_bracket_error| +||cod_briefcase| +||cod_broadcast| +||cod_browser| +||cod_bug| +||cod_calendar| +||cod_call_incoming| +||cod_call_outgoing| +||cod_case_sensitive| +||cod_check| +||cod_check_all| +||cod_checklist| +||cod_chevron_down| +||cod_chevron_left| +||cod_chevron_right| +||cod_chevron_up| +||cod_chrome_close| +||cod_chrome_maximize| +||cod_chrome_minimize| +||cod_chrome_restore| +||cod_circle| +||cod_circle_filled| +||cod_circle_large| +||cod_circle_large_filled| +||cod_circle_slash| +||cod_circle_small_filled| +||cod_circuit_board| +||cod_clear_all| +||cod_clippy| +||cod_close| +||cod_close_all| +||cod_cloud| +||cod_cloud_download| +||cod_cloud_upload| +||cod_code| +||cod_collapse_all| +||cod_color_mode| +||cod_combine| +||cod_comment| +||cod_comment_discussion| +||cod_compass| +||cod_compass_active| +||cod_compass_dot| +||cod_copy| +||cod_credit_card| +||cod_dash| +||cod_dashboard| +||cod_database| +||cod_debug| +||cod_debug_all| +||cod_debug_alt| +||cod_debug_alt_small| +||cod_debug_breakpoint_conditional| +||cod_debug_breakpoint_conditional_unverified| +||cod_debug_breakpoint_data| +||cod_debug_breakpoint_data_unverified| +||cod_debug_breakpoint_function| +||cod_debug_breakpoint_function_unverified| +||cod_debug_breakpoint_log| +||cod_debug_breakpoint_log_unverified| +||cod_debug_breakpoint_unsupported| +||cod_debug_console| +||cod_debug_continue| +||cod_debug_continue_small| +||cod_debug_coverage| +||cod_debug_disconnect| +||cod_debug_line_by_line| +||cod_debug_pause| +||cod_debug_rerun| +||cod_debug_restart| +||cod_debug_restart_frame| +||cod_debug_reverse_continue| +||cod_debug_stackframe| +||cod_debug_stackframe_active| +||cod_debug_start| +||cod_debug_step_back| +||cod_debug_step_into| +||cod_debug_step_out| +||cod_debug_step_over| +||cod_debug_stop| +||cod_desktop_download| +||cod_device_camera| +||cod_device_camera_video| +||cod_device_mobile| +||cod_diff| +||cod_diff_added| +||cod_diff_ignored| +||cod_diff_modified| +||cod_diff_removed| +||cod_diff_renamed| +||cod_discard| +||cod_edit| +||cod_editor_layout| +||cod_ellipsis| +||cod_empty_window| +||cod_error| +||cod_exclude| +||cod_expand_all| +||cod_export| +||cod_extensions| +||cod_eye| +||cod_eye_closed| +||cod_feedback| +||cod_file| +||cod_file_binary| +||cod_file_code| +||cod_file_media| +||cod_file_pdf| +||cod_file_submodule| +||cod_file_symlink_directory| +||cod_file_symlink_file| +||cod_file_zip| +||cod_files| +||cod_filter| +||cod_filter_filled| +||cod_flame| +||cod_fold| +||cod_fold_down| +||cod_fold_up| +||cod_folder| +||cod_folder_active| +||cod_folder_library| +||cod_folder_opened| +||cod_gear| +||cod_gift| +||cod_gist_secret| +||cod_git_commit| +||cod_git_compare| +||cod_git_merge| +||cod_git_pull_request| +||cod_git_pull_request_closed| +||cod_git_pull_request_create| +||cod_git_pull_request_draft| +||cod_github| +||cod_github_action| +||cod_github_alt| +||cod_github_inverted| +||cod_globe| +||cod_go_to_file| +||cod_grabber| +||cod_graph| +||cod_graph_left| +||cod_graph_line| +||cod_graph_scatter| +||cod_gripper| +||cod_group_by_ref_type| +||cod_heart| +||cod_history| +||cod_home| +||cod_horizontal_rule| +||cod_hubot| +||cod_inbox| +||cod_info| +||cod_inspect| +||cod_issue_draft| +||cod_issue_reopened| +||cod_issues| +||cod_italic| +||cod_jersey| +||cod_json| +||cod_kebab_vertical| +||cod_key| +||cod_law| +||cod_layers| +||cod_layers_active| +||cod_layers_dot| +||cod_layout| +||cod_library| +||cod_lightbulb| +||cod_lightbulb_autofix| +||cod_link| +||cod_link_external| +||cod_list_filter| +||cod_list_flat| +||cod_list_ordered| +||cod_list_selection| +||cod_list_tree| +||cod_list_unordered| +||cod_live_share| +||cod_loading| +||cod_location| +||cod_lock| +||cod_lock_small| +||cod_magnet| +||cod_mail| +||cod_mail_read| +||cod_markdown| +||cod_megaphone| +||cod_mention| +||cod_menu| +||cod_merge| +||cod_milestone| +||cod_mirror| +||cod_mortar_board| +||cod_move| +||cod_multiple_windows| +||cod_mute| +||cod_new_file| +||cod_new_folder| +||cod_newline| +||cod_no_newline| +||cod_note| +||cod_notebook| +||cod_notebook_template| +||cod_octoface| +||cod_open_preview| +||cod_organization| +||cod_output| +||cod_package| +||cod_paintcan| +||cod_pass| +||cod_pass_filled| +||cod_person| +||cod_person_add| +||cod_pie_chart| +||cod_pin| +||cod_pinned| +||cod_pinned_dirty| +||cod_play| +||cod_play_circle| +||cod_plug| +||cod_preserve_case| +||cod_preview| +||cod_primitive_square| +||cod_project| +||cod_pulse| +||cod_question| +||cod_quote| +||cod_radio_tower| +||cod_reactions| +||cod_record| +||cod_record_keys| +||cod_redo| +||cod_references| +||cod_refresh| +||cod_regex| +||cod_remote| +||cod_remote_explorer| +||cod_remove| +||cod_replace| +||cod_replace_all| +||cod_reply| +||cod_repo| +||cod_repo_clone| +||cod_repo_force_push| +||cod_repo_forked| +||cod_repo_pull| +||cod_repo_push| +||cod_report| +||cod_request_changes| +||cod_rocket| +||cod_root_folder| +||cod_root_folder_opened| +||cod_rss| +||cod_ruby| +||cod_run_above| +||cod_run_all| +||cod_run_below| +||cod_run_errors| +||cod_save| +||cod_save_all| +||cod_save_as| +||cod_screen_full| +||cod_screen_normal| +||cod_search| +||cod_search_stop| +||cod_server| +||cod_server_environment| +||cod_server_process| +||cod_settings| +||cod_settings_gear| +||cod_shield| +||cod_sign_in| +||cod_sign_out| +||cod_smiley| +||cod_sort_precedence| +||cod_source_control| +||cod_split_horizontal| +||cod_split_vertical| +||cod_squirrel| +||cod_star_empty| +||cod_star_full| +||cod_star_half| +||cod_stop_circle| +||cod_symbol_array| +||cod_symbol_boolean| +||cod_symbol_class| +||cod_symbol_color| +||cod_symbol_constant| +||cod_symbol_enum| +||cod_symbol_enum_member| +||cod_symbol_event| +||cod_symbol_field| +||cod_symbol_file| +||cod_symbol_interface| +||cod_symbol_key| +||cod_symbol_keyword| +||cod_symbol_method| +||cod_symbol_misc| +||cod_symbol_namespace| +||cod_symbol_numeric| +||cod_symbol_operator| +||cod_symbol_parameter| +||cod_symbol_property| +||cod_symbol_ruler| +||cod_symbol_snippet| +||cod_symbol_string| +||cod_symbol_structure| +||cod_symbol_variable| +||cod_sync| +||cod_sync_ignored| +||cod_table| +||cod_tag| +||cod_tasklist| +||cod_telescope| +||cod_terminal| +||cod_terminal_bash| +||cod_terminal_cmd| +||cod_terminal_debian| +||cod_terminal_linux| +||cod_terminal_powershell| +||cod_terminal_tmux| +||cod_terminal_ubuntu| +||cod_text_size| +||cod_three_bars| +||cod_thumbsdown| +||cod_thumbsup| +||cod_tools| +||cod_trash| +||cod_triangle_down| +||cod_triangle_left| +||cod_triangle_right| +||cod_triangle_up| +||cod_twitter| +||cod_type_hierarchy| +||cod_type_hierarchy_sub| +||cod_type_hierarchy_super| +||cod_unfold| +||cod_ungroup_by_ref_type| +||cod_unlock| +||cod_unmute| +||cod_unverified| +||cod_variable_group| +||cod_verified| +||cod_verified_filled| +||cod_versions| +||cod_vm| +||cod_vm_active| +||cod_vm_connect| +||cod_vm_outline| +||cod_vm_running| +||cod_wand| +||cod_warning| +||cod_watch| +||cod_whitespace| +||cod_whole_word| +||cod_window| +||cod_word_wrap| +||cod_workspace_trusted| +||cod_workspace_unknown| +||cod_workspace_untrusted| +||cod_zoom_in| +||cod_zoom_out| +||custom_asm| +||custom_c| +||custom_cpp| +||custom_crystal| +||custom_default| +||custom_electron| +||custom_elixir| +||custom_elm| +||custom_emacs| +||custom_folder| +||custom_folder_config| +||custom_folder_git| +||custom_folder_github| +||custom_folder_npm| +||custom_folder_open| +||custom_go| +||custom_home| +||custom_kotlin| +||custom_msdos| +||custom_orgmode| +||custom_play_arrow| +||custom_purescript| +||custom_v_lang| +||custom_vim| +||custom_windows| +||dev_android| +||dev_angular| +||dev_appcelerator| +||dev_apple| +||dev_appstore| +||dev_aptana| +||dev_asterisk| +||dev_atlassian| +||dev_atom| +||dev_aws| +||dev_backbone| +||dev_bing_small| +||dev_bintray| +||dev_bitbucket| +||dev_blackberry| +||dev_bootstrap| +||dev_bower| +||dev_brackets| +||dev_bugsense| +||dev_celluloid| +||dev_chart| +||dev_chrome| +||dev_cisco| +||dev_clojure| +||dev_clojure_alt| +||dev_cloud9| +||dev_coda| +||dev_code| +||dev_code_badge| +||dev_codeigniter| +||dev_codepen| +||dev_codrops| +||dev_coffeescript| +||dev_compass| +||dev_composer| +||dev_creativecommons| +||dev_creativecommons_badge| +||dev_css3| +||dev_css3_full| +||dev_css_tricks| +||dev_cssdeck| +||dev_dart| +||dev_database| +||dev_debian| +||dev_digital_ocean| +||dev_django| +||dev_dlang| +||dev_docker| +||dev_doctrine| +||dev_dojo| +||dev_dotnet| +||dev_dreamweaver| +||dev_dropbox| +||dev_drupal| +||dev_eclipse| +||dev_ember| +||dev_envato| +||dev_erlang| +||dev_extjs| +||dev_firebase| +||dev_firefox| +||dev_fsharp| +||dev_ghost| +||dev_ghost_small| +||dev_git| +||dev_git_branch| +||dev_git_commit| +||dev_git_compare| +||dev_git_merge| +||dev_git_pull_request| +||dev_github| +||dev_github_alt| +||dev_github_badge| +||dev_github_full| +||dev_gnu| +||dev_go| +||dev_google_cloud_platform| +||dev_google_drive| +||dev_grails| +||dev_groovy| +||dev_grunt| +||dev_gulp| +||dev_hackernews| +||dev_haskell| +||dev_heroku| +||dev_html5| +||dev_html5_3d_effects| +||dev_html5_connectivity| +||dev_html5_device_access| +||dev_html5_multimedia| +||dev_ie| +||dev_illustrator| +||dev_intellij| +||dev_ionic| +||dev_java| +||dev_javascript| +||dev_javascript_badge| +||dev_javascript_shield| +||dev_jekyll_small| +||dev_jenkins| +||dev_jira| +||dev_joomla| +||dev_jquery| +||dev_jquery_ui| +||dev_komodo| +||dev_krakenjs| +||dev_krakenjs_badge| +||dev_laravel| +||dev_less| +||dev_linux| +||dev_magento| +||dev_mailchimp| +||dev_markdown| +||dev_materializecss| +||dev_meteor| +||dev_meteorfull| +||dev_mitlicence| +||dev_modernizr| +||dev_mongodb| +||dev_mootools| +||dev_mootools_badge| +||dev_mozilla| +||dev_msql_server| +||dev_mysql| +||dev_nancy| +||dev_netbeans| +||dev_netmagazine| +||dev_nginx| +||dev_nodejs| +||dev_nodejs_small| +||dev_npm| +||dev_onedrive| +||dev_openshift| +||dev_opensource| +||dev_opera| +||dev_perl| +||dev_phonegap| +||dev_photoshop| +||dev_php| +||dev_postgresql| +||dev_prolog| +||dev_python| +||dev_rackspace| +||dev_raphael| +||dev_rasberry_pi| +||dev_react| +||dev_redhat| +||dev_redis| +||dev_requirejs| +||dev_responsive| +||dev_ruby| +||dev_ruby_on_rails| +||dev_ruby_rough| +||dev_rust| +||dev_safari| +||dev_sass| +||dev_scala| +||dev_scriptcs| +||dev_scrum| +||dev_senchatouch| +||dev_sizzlejs| +||dev_smashing_magazine| +||dev_snap_svg| +||dev_sqllite| +||dev_stackoverflow| +||dev_streamline| +||dev_stylus| +||dev_sublime| +||dev_swift| +||dev_symfony| +||dev_symfony_badge| +||dev_techcrunch| +||dev_terminal| +||dev_terminal_badge| +||dev_travis| +||dev_trello| +||dev_typo3| +||dev_ubuntu| +||dev_uikit| +||dev_unity_small| +||dev_vim| +||dev_visualstudio| +||dev_w3c| +||dev_webplatform| +||dev_windows| +||dev_wordpress| +||dev_yahoo| +||dev_yahoo_small| +||dev_yeoman| +||dev_yii| +||dev_zend| +||fa_500px| +||fa_address_book| +||fa_address_book_o| +||fa_address_card| +||fa_address_card_o| +||fa_adjust| +||fa_adn| +||fa_align_center| +||fa_align_justify| +||fa_align_left| +||fa_align_right| +||fa_amazon| +||fa_ambulance| +||fa_american_sign_language_interpreting| +||fa_anchor| +||fa_android| +||fa_angellist| +||fa_angle_double_down| +||fa_angle_double_left| +||fa_angle_double_right| +||fa_angle_double_up| +||fa_angle_down| +||fa_angle_left| +||fa_angle_right| +||fa_angle_up| +||fa_apple| +||fa_archive| +||fa_area_chart| +||fa_arrow_circle_down| +||fa_arrow_circle_left| +||fa_arrow_circle_o_down| +||fa_arrow_circle_o_left| +||fa_arrow_circle_o_right| +||fa_arrow_circle_o_up| +||fa_arrow_circle_right| +||fa_arrow_circle_up| +||fa_arrow_down| +||fa_arrow_left| +||fa_arrow_right| +||fa_arrow_up| +||fa_arrows| +||fa_arrows_alt| +||fa_arrows_h| +||fa_arrows_v| +||fa_assistive_listening_systems| +||fa_asterisk| +||fa_at| +||fa_audio_description| +||fa_backward| +||fa_balance_scale| +||fa_ban| +||fa_bandcamp| +||fa_bar_chart| +||fa_barcode| +||fa_bars| +||fa_bath| +||fa_battery_empty| +||fa_battery_full| +||fa_battery_half| +||fa_battery_quarter| +||fa_battery_three_quarters| +||fa_bed| +||fa_beer| +||fa_behance| +||fa_behance_square| +||fa_bell| +||fa_bell_o| +||fa_bell_slash| +||fa_bell_slash_o| +||fa_bicycle| +||fa_binoculars| +||fa_birthday_cake| +||fa_bitbucket| +||fa_bitbucket_square| +||fa_black_tie| +||fa_blind| +||fa_bluetooth| +||fa_bluetooth_b| +||fa_bold| +||fa_bolt| +||fa_bomb| +||fa_book| +||fa_bookmark| +||fa_bookmark_o| +||fa_braille| +||fa_briefcase| +||fa_btc| +||fa_bug| +||fa_building| +||fa_building_o| +||fa_bullhorn| +||fa_bullseye| +||fa_bus| +||fa_buysellads| +||fa_calculator| +||fa_calendar| +||fa_calendar_check_o| +||fa_calendar_minus_o| +||fa_calendar_o| +||fa_calendar_plus_o| +||fa_calendar_times_o| +||fa_camera| +||fa_camera_retro| +||fa_car| +||fa_caret_down| +||fa_caret_left| +||fa_caret_right| +||fa_caret_square_o_down| +||fa_caret_square_o_left| +||fa_caret_square_o_right| +||fa_caret_square_o_up| +||fa_caret_up| +||fa_cart_arrow_down| +||fa_cart_plus| +||fa_cc| +||fa_cc_amex| +||fa_cc_diners_club| +||fa_cc_discover| +||fa_cc_jcb| +||fa_cc_mastercard| +||fa_cc_paypal| +||fa_cc_stripe| +||fa_cc_visa| +||fa_certificate| +||fa_chain_broken| +||fa_check| +||fa_check_circle| +||fa_check_circle_o| +||fa_check_square| +||fa_check_square_o| +||fa_chevron_circle_down| +||fa_chevron_circle_left| +||fa_chevron_circle_right| +||fa_chevron_circle_up| +||fa_chevron_down| +||fa_chevron_left| +||fa_chevron_right| +||fa_chevron_up| +||fa_child| +||fa_chrome| +||fa_circle| +||fa_circle_o| +||fa_circle_o_notch| +||fa_circle_thin| +||fa_clipboard| +||fa_clock_o| +||fa_clone| +||fa_cloud| +||fa_cloud_download| +||fa_cloud_upload| +||fa_code| +||fa_code_fork| +||fa_codepen| +||fa_codiepie| +||fa_coffee| +||fa_cog| +||fa_cogs| +||fa_columns| +||fa_comment| +||fa_comment_o| +||fa_commenting| +||fa_commenting_o| +||fa_comments| +||fa_comments_o| +||fa_compass| +||fa_compress| +||fa_connectdevelop| +||fa_contao| +||fa_copyright| +||fa_creative_commons| +||fa_credit_card| +||fa_credit_card_alt| +||fa_crop| +||fa_crosshairs| +||fa_css3| +||fa_cube| +||fa_cubes| +||fa_cutlery| +||fa_dashcube| +||fa_database| +||fa_deaf| +||fa_delicious| +||fa_desktop| +||fa_deviantart| +||fa_diamond| +||fa_digg| +||fa_dot_circle_o| +||fa_download| +||fa_dribbble| +||fa_dropbox| +||fa_drupal| +||fa_edge| +||fa_eercast| +||fa_eject| +||fa_ellipsis_h| +||fa_ellipsis_v| +||fa_empire| +||fa_envelope| +||fa_envelope_o| +||fa_envelope_open| +||fa_envelope_open_o| +||fa_envelope_square| +||fa_envira| +||fa_eraser| +||fa_etsy| +||fa_eur| +||fa_exchange| +||fa_exclamation| +||fa_exclamation_circle| +||fa_exclamation_triangle| +||fa_expand| +||fa_expeditedssl| +||fa_external_link| +||fa_external_link_square| +||fa_eye| +||fa_eye_slash| +||fa_eyedropper| +||fa_facebook| +||fa_facebook_official| +||fa_facebook_square| +||fa_fast_backward| +||fa_fast_forward| +||fa_fax| +||fa_female| +||fa_fighter_jet| +||fa_file| +||fa_file_archive_o| +||fa_file_audio_o| +||fa_file_code_o| +||fa_file_excel_o| +||fa_file_image_o| +||fa_file_o| +||fa_file_pdf_o| +||fa_file_powerpoint_o| +||fa_file_text| +||fa_file_text_o| +||fa_file_video_o| +||fa_file_word_o| +||fa_files_o| +||fa_film| +||fa_filter| +||fa_fire| +||fa_fire_extinguisher| +||fa_firefox| +||fa_first_order| +||fa_flag| +||fa_flag_checkered| +||fa_flag_o| +||fa_flask| +||fa_flickr| +||fa_floppy_o| +||fa_folder| +||fa_folder_o| +||fa_folder_open| +||fa_folder_open_o| +||fa_font| +||fa_font_awesome| +||fa_fonticons| +||fa_fort_awesome| +||fa_forumbee| +||fa_forward| +||fa_foursquare| +||fa_free_code_camp| +||fa_frown_o| +||fa_futbol_o| +||fa_gamepad| +||fa_gavel| +||fa_gbp| +||fa_genderless| +||fa_get_pocket| +||fa_gg| +||fa_gg_circle| +||fa_gift| +||fa_git| +||fa_git_square| +||fa_github| +||fa_github_alt| +||fa_github_square| +||fa_gitlab| +||fa_glass| +||fa_glide| +||fa_glide_g| +||fa_globe| +||fa_google| +||fa_google_plus| +||fa_google_plus_official| +||fa_google_plus_square| +||fa_google_wallet| +||fa_graduation_cap| +||fa_gratipay| +||fa_grav| +||fa_h_square| +||fa_hacker_news| +||fa_hand_lizard_o| +||fa_hand_o_down| +||fa_hand_o_left| +||fa_hand_o_right| +||fa_hand_o_up| +||fa_hand_paper_o| +||fa_hand_peace_o| +||fa_hand_pointer_o| +||fa_hand_rock_o| +||fa_hand_scissors_o| +||fa_hand_spock_o| +||fa_handshake_o| +||fa_hashtag| +||fa_hdd_o| +||fa_header| +||fa_headphones| +||fa_heart| +||fa_heart_o| +||fa_heartbeat| +||fa_history| +||fa_home| +||fa_hospital_o| +||fa_hourglass| +||fa_hourglass_end| +||fa_hourglass_half| +||fa_hourglass_o| +||fa_hourglass_start| +||fa_houzz| +||fa_html5| +||fa_i_cursor| +||fa_id_badge| +||fa_id_card| +||fa_id_card_o| +||fa_ils| +||fa_imdb| +||fa_inbox| +||fa_indent| +||fa_industry| +||fa_info| +||fa_info_circle| +||fa_inr| +||fa_instagram| +||fa_internet_explorer| +||fa_ioxhost| +||fa_italic| +||fa_joomla| +||fa_jpy| +||fa_jsfiddle| +||fa_key| +||fa_keyboard_o| +||fa_krw| +||fa_language| +||fa_laptop| +||fa_lastfm| +||fa_lastfm_square| +||fa_leaf| +||fa_leanpub| +||fa_lemon_o| +||fa_level_down| +||fa_level_up| +||fa_life_ring| +||fa_lightbulb_o| +||fa_line_chart| +||fa_link| +||fa_linkedin| +||fa_linkedin_square| +||fa_linode| +||fa_linux| +||fa_list| +||fa_list_alt| +||fa_list_ol| +||fa_list_ul| +||fa_location_arrow| +||fa_lock| +||fa_long_arrow_down| +||fa_long_arrow_left| +||fa_long_arrow_right| +||fa_long_arrow_up| +||fa_low_vision| +||fa_magic| +||fa_magnet| +||fa_male| +||fa_map| +||fa_map_marker| +||fa_map_o| +||fa_map_pin| +||fa_map_signs| +||fa_mars| +||fa_mars_double| +||fa_mars_stroke| +||fa_mars_stroke_h| +||fa_mars_stroke_v| +||fa_maxcdn| +||fa_meanpath| +||fa_medium| +||fa_medkit| +||fa_meetup| +||fa_meh_o| +||fa_mercury| +||fa_microchip| +||fa_microphone| +||fa_microphone_slash| +||fa_minus| +||fa_minus_circle| +||fa_minus_square| +||fa_minus_square_o| +||fa_mixcloud| +||fa_mobile| +||fa_modx| +||fa_money| +||fa_moon_o| +||fa_motorcycle| +||fa_mouse_pointer| +||fa_music| +||fa_neuter| +||fa_newspaper_o| +||fa_object_group| +||fa_object_ungroup| +||fa_odnoklassniki| +||fa_odnoklassniki_square| +||fa_opencart| +||fa_openid| +||fa_opera| +||fa_optin_monster| +||fa_outdent| +||fa_pagelines| +||fa_paint_brush| +||fa_paper_plane| +||fa_paper_plane_o| +||fa_paperclip| +||fa_paragraph| +||fa_pause| +||fa_pause_circle| +||fa_pause_circle_o| +||fa_paw| +||fa_paypal| +||fa_pencil| +||fa_pencil_square| +||fa_pencil_square_o| +||fa_percent| +||fa_phone| +||fa_phone_square| +||fa_picture_o| +||fa_pie_chart| +||fa_pied_piper| +||fa_pied_piper_alt| +||fa_pied_piper_pp| +||fa_pinterest| +||fa_pinterest_p| +||fa_pinterest_square| +||fa_plane| +||fa_play| +||fa_play_circle| +||fa_play_circle_o| +||fa_plug| +||fa_plus| +||fa_plus_circle| +||fa_plus_square| +||fa_plus_square_o| +||fa_podcast| +||fa_power_off| +||fa_print| +||fa_product_hunt| +||fa_puzzle_piece| +||fa_qq| +||fa_qrcode| +||fa_question| +||fa_question_circle| +||fa_question_circle_o| +||fa_quora| +||fa_quote_left| +||fa_quote_right| +||fa_random| +||fa_ravelry| +||fa_rebel| +||fa_recycle| +||fa_reddit| +||fa_reddit_alien| +||fa_reddit_square| +||fa_refresh| +||fa_registered| +||fa_renren| +||fa_repeat| +||fa_reply| +||fa_reply_all| +||fa_retweet| +||fa_road| +||fa_rocket| +||fa_rss| +||fa_rss_square| +||fa_rub| +||fa_safari| +||fa_scissors| +||fa_scribd| +||fa_search| +||fa_search_minus| +||fa_search_plus| +||fa_sellsy| +||fa_server| +||fa_share| +||fa_share_alt| +||fa_share_alt_square| +||fa_share_square| +||fa_share_square_o| +||fa_shield| +||fa_ship| +||fa_shirtsinbulk| +||fa_shopping_bag| +||fa_shopping_basket| +||fa_shopping_cart| +||fa_shower| +||fa_sign_in| +||fa_sign_language| +||fa_sign_out| +||fa_signal| +||fa_simplybuilt| +||fa_sitemap| +||fa_skyatlas| +||fa_skype| +||fa_slack| +||fa_sliders| +||fa_slideshare| +||fa_smile_o| +||fa_snapchat| +||fa_snapchat_ghost| +||fa_snapchat_square| +||fa_snowflake_o| +||fa_sort| +||fa_sort_alpha_asc| +||fa_sort_alpha_desc| +||fa_sort_amount_asc| +||fa_sort_amount_desc| +||fa_sort_asc| +||fa_sort_desc| +||fa_sort_numeric_asc| +||fa_sort_numeric_desc| +||fa_soundcloud| +||fa_space_shuttle| +||fa_spinner| +||fa_spoon| +||fa_spotify| +||fa_square| +||fa_square_o| +||fa_stack_exchange| +||fa_stack_overflow| +||fa_star| +||fa_star_half| +||fa_star_half_o| +||fa_star_o| +||fa_steam| +||fa_steam_square| +||fa_step_backward| +||fa_step_forward| +||fa_stethoscope| +||fa_sticky_note| +||fa_sticky_note_o| +||fa_stop| +||fa_stop_circle| +||fa_stop_circle_o| +||fa_street_view| +||fa_strikethrough| +||fa_stumbleupon| +||fa_stumbleupon_circle| +||fa_subscript| +||fa_subway| +||fa_suitcase| +||fa_sun_o| +||fa_superpowers| +||fa_superscript| +||fa_table| +||fa_tablet| +||fa_tachometer| +||fa_tag| +||fa_tags| +||fa_tasks| +||fa_taxi| +||fa_telegram| +||fa_television| +||fa_tencent_weibo| +||fa_terminal| +||fa_text_height| +||fa_text_width| +||fa_th| +||fa_th_large| +||fa_th_list| +||fa_themeisle| +||fa_thermometer_empty| +||fa_thermometer_full| +||fa_thermometer_half| +||fa_thermometer_quarter| +||fa_thermometer_three_quarters| +||fa_thumb_tack| +||fa_thumbs_down| +||fa_thumbs_o_down| +||fa_thumbs_o_up| +||fa_thumbs_up| +||fa_ticket| +||fa_times| +||fa_times_circle| +||fa_times_circle_o| +||fa_tint| +||fa_toggle_off| +||fa_toggle_on| +||fa_trademark| +||fa_train| +||fa_transgender| +||fa_transgender_alt| +||fa_trash| +||fa_trash_o| +||fa_tree| +||fa_trello| +||fa_tripadvisor| +||fa_trophy| +||fa_truck| +||fa_try| +||fa_tty| +||fa_tumblr| +||fa_tumblr_square| +||fa_twitch| +||fa_twitter| +||fa_twitter_square| +||fa_umbrella| +||fa_underline| +||fa_undo| +||fa_universal_access| +||fa_university| +||fa_unlock| +||fa_unlock_alt| +||fa_upload| +||fa_usb| +||fa_usd| +||fa_user| +||fa_user_circle| +||fa_user_circle_o| +||fa_user_md| +||fa_user_o| +||fa_user_plus| +||fa_user_secret| +||fa_user_times| +||fa_users| +||fa_venus| +||fa_venus_double| +||fa_venus_mars| +||fa_viacoin| +||fa_viadeo| +||fa_viadeo_square| +||fa_video_camera| +||fa_vimeo| +||fa_vimeo_square| +||fa_vine| +||fa_vk| +||fa_volume_control_phone| +||fa_volume_down| +||fa_volume_off| +||fa_volume_up| +||fa_weibo| +||fa_weixin| +||fa_whatsapp| +||fa_wheelchair| +||fa_wheelchair_alt| +||fa_wifi| +||fa_wikipedia_w| +||fa_window_close| +||fa_window_close_o| +||fa_window_maximize| +||fa_window_minimize| +||fa_window_restore| +||fa_windows| +||fa_wordpress| +||fa_wpbeginner| +||fa_wpexplorer| +||fa_wpforms| +||fa_wrench| +||fa_xing| +||fa_xing_square| +||fa_y_combinator| +||fa_yahoo| +||fa_yelp| +||fa_yoast| +||fa_youtube| +||fa_youtube_play| +||fa_youtube_square| +||fae_apple_fruit| +||fae_atom| +||fae_bacteria| +||fae_banana| +||fae_bath| +||fae_bed| +||fae_benzene| +||fae_bigger| +||fae_biohazard| +||fae_blogger_circle| +||fae_blogger_square| +||fae_bones| +||fae_book_open| +||fae_book_open_o| +||fae_brain| +||fae_bread| +||fae_butterfly| +||fae_carot| +||fae_cc_by| +||fae_cc_cc| +||fae_cc_nc| +||fae_cc_nc_eu| +||fae_cc_nc_jp| +||fae_cc_nd| +||fae_cc_remix| +||fae_cc_sa| +||fae_cc_share| +||fae_cc_zero| +||fae_checklist_o| +||fae_cheese| +||fae_cherry| +||fae_chess_bishop| +||fae_chess_horse| +||fae_chess_king| +||fae_chess_pawn| +||fae_chess_queen| +||fae_chess_tower| +||fae_chicken_thigh| +||fae_chilli| +||fae_chip| +||fae_cicling| +||fae_cloud| +||fae_cockroach| +||fae_coffe_beans| +||fae_coins| +||fae_comb| +||fae_comet| +||fae_crown| +||fae_cup_coffe| +||fae_dice| +||fae_disco| +||fae_dna| +||fae_donut| +||fae_dress| +||fae_drop| +||fae_ello| +||fae_envelope_open| +||fae_envelope_open_o| +||fae_equal| +||fae_equal_bigger| +||fae_feedly| +||fae_file_export| +||fae_file_import| +||fae_fingerprint| +||fae_floppy| +||fae_footprint| +||fae_freecodecamp| +||fae_galaxy| +||fae_galery| +||fae_gift_card| +||fae_glass| +||fae_google_drive| +||fae_google_play| +||fae_gps| +||fae_grav| +||fae_guitar| +||fae_gut| +||fae_halter| +||fae_hamburger| +||fae_hat| +||fae_hexagon| +||fae_high_heel| +||fae_hotdog| +||fae_ice_cream| +||fae_id_card| +||fae_imdb| +||fae_infinity| +||fae_injection| +||fae_isle| +||fae_java| +||fae_layers| +||fae_lips| +||fae_lipstick| +||fae_liver| +||fae_lollipop| +||fae_loyalty_card| +||fae_lung| +||fae_makeup_brushes| +||fae_maximize| +||fae_meat| +||fae_medicine| +||fae_microscope| +||fae_milk_bottle| +||fae_minimize| +||fae_molecule| +||fae_moon_cloud| +||fae_mountains| +||fae_mushroom| +||fae_mustache| +||fae_mysql| +||fae_nintendo| +||fae_orange| +||fae_palette_color| +||fae_peach| +||fae_pear| +||fae_pi| +||fae_pizza| +||fae_planet| +||fae_plant| +||fae_playstation| +||fae_poison| +||fae_popcorn| +||fae_popsicle| +||fae_pulse| +||fae_python| +||fae_quora_circle| +||fae_quora_square| +||fae_radioactive| +||fae_raining| +||fae_real_heart| +||fae_refrigerator| +||fae_restore| +||fae_ring| +||fae_ruby| +||fae_ruby_o| +||fae_ruler| +||fae_shirt| +||fae_slash| +||fae_smaller| +||fae_snowing| +||fae_soda| +||fae_sofa| +||fae_soup| +||fae_spermatozoon| +||fae_spin_double| +||fae_stomach| +||fae_storm| +||fae_sun_cloud| +||fae_sushi| +||fae_tacos| +||fae_telegram| +||fae_telegram_circle| +||fae_telescope| +||fae_thermometer| +||fae_thermometer_high| +||fae_thermometer_low| +||fae_thin_close| +||fae_toilet| +||fae_tools| +||fae_tooth| +||fae_tree| +||fae_triangle_ruler| +||fae_umbrella| +||fae_uterus| +||fae_virus| +||fae_w3c| +||fae_walking| +||fae_wallet| +||fae_wind| +||fae_xbox| +||iec_power| +||iec_power_off| +||iec_power_on| +||iec_sleep_mode| +||iec_toggle_power| +||indent_line| +||linux_almalinux| +||linux_alpine| +||linux_aosc| +||linux_apple| +||linux_archlabs| +||linux_archlinux| +||linux_artix| +||linux_budgie| +||linux_centos| +||linux_coreos| +||linux_debian| +||linux_deepin| +||linux_devuan| +||linux_docker| +||linux_elementary| +||linux_endeavour| +||linux_fedora| +||linux_fedora_inverse| +||linux_ferris| +||linux_flathub| +||linux_freebsd| +||linux_gentoo| +||linux_gnu_guix| +||linux_illumos| +||linux_kali_linux| +||linux_linuxmint| +||linux_linuxmint_inverse| +||linux_mageia| +||linux_mandriva| +||linux_manjaro| +||linux_nixos| +||linux_openbsd| +||linux_opensuse| +||linux_parrot| +||linux_pop_os| +||linux_raspberry_pi| +||linux_redhat| +||linux_rocky_linux| +||linux_sabayon| +||linux_slackware| +||linux_slackware_inverse| +||linux_snappy| +||linux_solus| +||linux_tux| +||linux_ubuntu| +||linux_ubuntu_inverse| +||linux_void| +||linux_zorin| +||mdi_access_point| +||mdi_access_point_network| +||mdi_account| +||mdi_account_alert| +||mdi_account_box| +||mdi_account_box_outline| +||mdi_account_card_details| +||mdi_account_check| +||mdi_account_circle| +||mdi_account_convert| +||mdi_account_edit| +||mdi_account_key| +||mdi_account_location| +||mdi_account_minus| +||mdi_account_multiple| +||mdi_account_multiple_minus| +||mdi_account_multiple_outline| +||mdi_account_multiple_plus| +||mdi_account_multiple_plus_outline| +||mdi_account_network| +||mdi_account_off| +||mdi_account_outline| +||mdi_account_plus| +|ﳿ|mdi_account_plus_outline| +||mdi_account_remove| +||mdi_account_search| +||mdi_account_settings| +||mdi_account_settings_variant| +||mdi_account_star| +||mdi_account_switch| +||mdi_adjust| +||mdi_air_conditioner| +||mdi_airballoon| +||mdi_airplane| +||mdi_airplane_landing| +||mdi_airplane_off| +||mdi_airplane_takeoff| +||mdi_airplay| +||mdi_alarm| +||mdi_alarm_bell| +||mdi_alarm_check| +||mdi_alarm_light| +||mdi_alarm_multiple| +||mdi_alarm_off| +||mdi_alarm_plus| +||mdi_alarm_snooze| +||mdi_album| +||mdi_alert| +||mdi_alert_box| +||mdi_alert_circle| +||mdi_alert_circle_outline| +||mdi_alert_decagram| +||mdi_alert_octagon| +||mdi_alert_octagram| +||mdi_alert_outline| +||mdi_all_inclusive| +||mdi_allo| +||mdi_alpha| +||mdi_alphabetical| +||mdi_altimeter| +||mdi_amazon| +||mdi_amazon_clouddrive| +||mdi_ambulance| +||mdi_amplifier| +||mdi_anchor| +||mdi_android| +||mdi_android_debug_bridge| +||mdi_android_head| +||mdi_android_studio| +||mdi_angular| +||mdi_angularjs| +||mdi_animation| +||mdi_apple| +||mdi_apple_finder| +||mdi_apple_ios| +||mdi_apple_keyboard_caps| +||mdi_apple_keyboard_command| +||mdi_apple_keyboard_control| +||mdi_apple_keyboard_option| +||mdi_apple_keyboard_shift| +||mdi_apple_mobileme| +||mdi_apple_safari| +||mdi_application| +||mdi_approval| +||mdi_apps| +||mdi_archive| +||mdi_arrange_bring_forward| +||mdi_arrange_bring_to_front| +||mdi_arrange_send_backward| +||mdi_arrange_send_to_back| +||mdi_arrow_all| +||mdi_arrow_bottom_left| +||mdi_arrow_bottom_right| +||mdi_arrow_collapse| +||mdi_arrow_collapse_all| +||mdi_arrow_collapse_down| +||mdi_arrow_collapse_left| +||mdi_arrow_collapse_right| +||mdi_arrow_collapse_up| +||mdi_arrow_down| +||mdi_arrow_down_bold| +||mdi_arrow_down_bold_box| +||mdi_arrow_down_bold_box_outline| +||mdi_arrow_down_bold_circle| +||mdi_arrow_down_bold_circle_outline| +||mdi_arrow_down_bold_hexagon_outline| +||mdi_arrow_down_box| +||mdi_arrow_down_drop_circle| +||mdi_arrow_down_drop_circle_outline| +||mdi_arrow_down_thick| +||mdi_arrow_expand| +||mdi_arrow_expand_all| +||mdi_arrow_expand_down| +||mdi_arrow_expand_left| +||mdi_arrow_expand_right| +||mdi_arrow_expand_up| +||mdi_arrow_left| +||mdi_arrow_left_bold| +||mdi_arrow_left_bold_box| +||mdi_arrow_left_bold_box_outline| +||mdi_arrow_left_bold_circle| +||mdi_arrow_left_bold_circle_outline| +||mdi_arrow_left_bold_hexagon_outline| +|﮿|mdi_arrow_left_box| +||mdi_arrow_left_drop_circle| +||mdi_arrow_left_drop_circle_outline| +||mdi_arrow_left_thick| +||mdi_arrow_right| +||mdi_arrow_right_bold| +||mdi_arrow_right_bold_box| +||mdi_arrow_right_bold_box_outline| +||mdi_arrow_right_bold_circle| +||mdi_arrow_right_bold_circle_outline| +||mdi_arrow_right_bold_hexagon_outline| +||mdi_arrow_right_box| +||mdi_arrow_right_drop_circle| +||mdi_arrow_right_drop_circle_outline| +||mdi_arrow_right_thick| +||mdi_arrow_top_left| +||mdi_arrow_top_right| +||mdi_arrow_up| +||mdi_arrow_up_bold| +||mdi_arrow_up_bold_box| +||mdi_arrow_up_bold_box_outline| +||mdi_arrow_up_bold_circle| +||mdi_arrow_up_bold_circle_outline| +||mdi_arrow_up_bold_hexagon_outline| +||mdi_arrow_up_box| +||mdi_arrow_up_drop_circle| +||mdi_arrow_up_drop_circle_outline| +||mdi_arrow_up_thick| +||mdi_artist| +||mdi_assistant| +||mdi_asterisk| +||mdi_at| +||mdi_atlassian| +||mdi_atom| +||mdi_attachment| +||mdi_audiobook| +||mdi_auto_fix| +||mdi_auto_upload| +||mdi_autorenew| +||mdi_av_timer| +||mdi_azure| +||mdi_baby| +||mdi_baby_buggy| +||mdi_backburger| +||mdi_backspace| +||mdi_backup_restore| +||mdi_bandcamp| +||mdi_bank| +||mdi_barcode| +||mdi_barcode_scan| +||mdi_barley| +||mdi_barrel| +||mdi_basecamp| +||mdi_basket| +||mdi_basket_fill| +||mdi_basket_unfill| +||mdi_basketball| +||mdi_battery| +||mdi_battery_10| +||mdi_battery_20| +||mdi_battery_30| +||mdi_battery_40| +||mdi_battery_50| +||mdi_battery_60| +||mdi_battery_70| +||mdi_battery_80| +||mdi_battery_90| +||mdi_battery_alert| +||mdi_battery_charging| +||mdi_battery_charging_20| +||mdi_battery_charging_30| +||mdi_battery_charging_40| +||mdi_battery_charging_60| +||mdi_battery_charging_80| +||mdi_battery_charging_90| +||mdi_battery_charging_100| +||mdi_battery_charging_wireless| +||mdi_battery_charging_wireless_10| +||mdi_battery_charging_wireless_20| +||mdi_battery_charging_wireless_30| +||mdi_battery_charging_wireless_40| +||mdi_battery_charging_wireless_50| +||mdi_battery_charging_wireless_60| +||mdi_battery_charging_wireless_70| +||mdi_battery_charging_wireless_80| +||mdi_battery_charging_wireless_90| +||mdi_battery_charging_wireless_alert| +||mdi_battery_charging_wireless_outline| +||mdi_battery_minus| +||mdi_battery_negative| +||mdi_battery_outline| +||mdi_battery_plus| +||mdi_battery_positive| +||mdi_battery_unknown| +||mdi_beach| +||mdi_beaker| +||mdi_beats| +||mdi_beer| +||mdi_behance| +||mdi_bell| +||mdi_bell_off| +||mdi_bell_outline| +||mdi_bell_plus| +||mdi_bell_ring| +||mdi_bell_ring_outline| +||mdi_bell_sleep| +||mdi_beta| +||mdi_bible| +||mdi_bike| +||mdi_bing| +||mdi_binoculars| +||mdi_bio| +||mdi_biohazard| +||mdi_bitbucket| +||mdi_bitcoin| +||mdi_black_mesa| +||mdi_blackberry| +||mdi_blender| +||mdi_blinds| +||mdi_block_helper| +||mdi_blogger| +||mdi_bluetooth| +||mdi_bluetooth_audio| +||mdi_bluetooth_connect| +||mdi_bluetooth_off| +||mdi_bluetooth_settings| +||mdi_bluetooth_transfer| +||mdi_blur| +||mdi_blur_linear| +||mdi_blur_off| +||mdi_blur_radial| +||mdi_bomb| +||mdi_bomb_off| +||mdi_bone| +||mdi_book| +||mdi_book_minus| +||mdi_book_multiple| +||mdi_book_multiple_variant| +||mdi_book_open| +||mdi_book_open_page_variant| +||mdi_book_open_variant| +||mdi_book_plus| +||mdi_book_secure| +||mdi_book_unsecure| +||mdi_book_variant| +||mdi_bookmark| +||mdi_bookmark_check| +||mdi_bookmark_music| +||mdi_bookmark_outline| +||mdi_bookmark_plus| +||mdi_bookmark_plus_outline| +||mdi_bookmark_remove| +||mdi_boombox| +||mdi_bootstrap| +||mdi_border_all| +||mdi_border_bottom| +||mdi_border_color| +||mdi_border_horizontal| +||mdi_border_inside| +||mdi_border_left| +||mdi_border_none| +||mdi_border_outside| +||mdi_border_right| +||mdi_border_style| +||mdi_border_top| +||mdi_border_vertical| +||mdi_bow_tie| +||mdi_bowl| +||mdi_bowling| +||mdi_box| +||mdi_box_cutter| +||mdi_box_shadow| +||mdi_bridge| +||mdi_briefcase| +||mdi_briefcase_check| +||mdi_briefcase_download| +||mdi_briefcase_outline| +||mdi_briefcase_upload| +||mdi_brightness_1| +||mdi_brightness_2| +||mdi_brightness_3| +||mdi_brightness_4| +||mdi_brightness_5| +||mdi_brightness_6| +||mdi_brightness_7| +||mdi_brightness_auto| +||mdi_broom| +||mdi_brush| +||mdi_buffer| +||mdi_bug| +||mdi_bulletin_board| +||mdi_bullhorn| +||mdi_bullseye| +||mdi_bus| +||mdi_bus_articulated_end| +||mdi_bus_articulated_front| +||mdi_bus_double_decker| +||mdi_bus_school| +||mdi_bus_side| +||mdi_cached| +||mdi_cake| +||mdi_cake_layered| +||mdi_cake_variant| +||mdi_calculator| +||mdi_calendar| +||mdi_calendar_blank| +||mdi_calendar_check| +||mdi_calendar_clock| +||mdi_calendar_multiple| +||mdi_calendar_multiple_check| +||mdi_calendar_plus| +||mdi_calendar_question| +||mdi_calendar_range| +||mdi_calendar_remove| +||mdi_calendar_text| +||mdi_calendar_today| +||mdi_call_made| +||mdi_call_merge| +||mdi_call_missed| +||mdi_call_received| +||mdi_call_split| +||mdi_camcorder| +||mdi_camcorder_box| +||mdi_camcorder_box_off| +||mdi_camcorder_off| +||mdi_camera| +||mdi_camera_burst| +||mdi_camera_enhance| +||mdi_camera_front| +||mdi_camera_front_variant| +||mdi_camera_gopro| +||mdi_camera_iris| +||mdi_camera_metering_center| +||mdi_camera_metering_matrix| +||mdi_camera_metering_partial| +||mdi_camera_metering_spot| +||mdi_camera_off| +||mdi_camera_party_mode| +||mdi_camera_rear| +||mdi_camera_rear_variant| +||mdi_camera_switch| +||mdi_camera_timer| +||mdi_cancel| +||mdi_candle| +||mdi_candycane| +||mdi_cannabis| +||mdi_car| +||mdi_car_battery| +||mdi_car_connected| +||mdi_car_convertible| +||mdi_car_estate| +||mdi_car_hatchback| +||mdi_car_pickup| +||mdi_car_side| +||mdi_car_sports| +||mdi_car_wash| +||mdi_caravan| +||mdi_cards| +||mdi_cards_outline| +||mdi_cards_playing_outline| +||mdi_cards_variant| +||mdi_carrot| +||mdi_cart| +||mdi_cart_off| +||mdi_cart_outline| +||mdi_cart_plus| +||mdi_case_sensitive_alt| +||mdi_cash| +||mdi_cash_100| +||mdi_cash_multiple| +||mdi_cash_usd| +||mdi_cast| +||mdi_cast_connected| +||mdi_cast_off| +||mdi_castle| +||mdi_cat| +||mdi_cctv| +||mdi_ceiling_light| +||mdi_cellphone| +||mdi_cellphone_android| +||mdi_cellphone_basic| +||mdi_cellphone_dock| +||mdi_cellphone_iphone| +||mdi_cellphone_link| +||mdi_cellphone_link_off| +||mdi_cellphone_settings| +||mdi_cellphone_wireless| +||mdi_certificate| +||mdi_chair_school| +||mdi_chart_arc| +||mdi_chart_areaspline| +||mdi_chart_bar| +||mdi_chart_bar_stacked| +||mdi_chart_bubble| +||mdi_chart_donut| +||mdi_chart_donut_variant| +||mdi_chart_gantt| +||mdi_chart_histogram| +||mdi_chart_line| +||mdi_chart_line_stacked| +||mdi_chart_line_variant| +||mdi_chart_pie| +||mdi_chart_scatterplot_hexbin| +||mdi_chart_timeline| +||mdi_check| +||mdi_check_all| +||mdi_check_circle| +||mdi_check_circle_outline| +||mdi_checkbox_blank| +||mdi_checkbox_blank_circle| +||mdi_checkbox_blank_circle_outline| +||mdi_checkbox_blank_outline| +||mdi_checkbox_marked| +||mdi_checkbox_marked_circle| +||mdi_checkbox_marked_circle_outline| +||mdi_checkbox_marked_outline| +||mdi_checkbox_multiple_blank| +||mdi_checkbox_multiple_blank_circle| +||mdi_checkbox_multiple_blank_circle_outline| +||mdi_checkbox_multiple_blank_outline| +||mdi_checkbox_multiple_marked| +||mdi_checkbox_multiple_marked_circle| +||mdi_checkbox_multiple_marked_circle_outline| +||mdi_checkbox_multiple_marked_outline| +||mdi_checkerboard| +||mdi_chemical_weapon| +||mdi_chevron_double_down| +||mdi_chevron_double_left| +||mdi_chevron_double_right| +||mdi_chevron_double_up| +||mdi_chevron_down| +||mdi_chevron_left| +||mdi_chevron_right| +||mdi_chevron_up| +||mdi_chili_hot| +||mdi_chili_medium| +||mdi_chili_mild| +||mdi_chip| +||mdi_church| +||mdi_circle| +||mdi_circle_outline| +||mdi_cisco_webex| +||mdi_city| +||mdi_clipboard| +||mdi_clipboard_account| +||mdi_clipboard_alert| +||mdi_clipboard_arrow_down| +||mdi_clipboard_arrow_left| +||mdi_clipboard_check| +||mdi_clipboard_flow| +||mdi_clipboard_outline| +||mdi_clipboard_plus| +||mdi_clipboard_text| +||mdi_clippy| +||mdi_clock| +||mdi_clock_alert| +||mdi_clock_end| +||mdi_clock_fast| +||mdi_clock_in| +||mdi_clock_out| +||mdi_clock_start| +||mdi_close| +||mdi_close_box| +||mdi_close_box_outline| +||mdi_close_circle| +||mdi_close_circle_outline| +||mdi_close_network| +||mdi_close_octagon| +||mdi_close_octagon_outline| +||mdi_close_outline| +||mdi_closed_caption| +||mdi_cloud| +||mdi_cloud_braces| +||mdi_cloud_check| +||mdi_cloud_circle| +||mdi_cloud_download| +||mdi_cloud_off_outline| +||mdi_cloud_outline| +||mdi_cloud_print| +||mdi_cloud_print_outline| +||mdi_cloud_sync| +||mdi_cloud_tags| +||mdi_cloud_upload| +||mdi_clover| +||mdi_code_array| +||mdi_code_braces| +||mdi_code_brackets| +||mdi_code_equal| +||mdi_code_greater_than| +||mdi_code_greater_than_or_equal| +||mdi_code_less_than| +||mdi_code_less_than_or_equal| +||mdi_code_not_equal| +||mdi_code_not_equal_variant| +||mdi_code_parentheses| +||mdi_code_string| +||mdi_code_tags| +||mdi_code_tags_check| +||mdi_codepen| +||mdi_coffee| +||mdi_coffee_outline| +||mdi_coffee_to_go| +||mdi_coin| +||mdi_coins| +|﬿|mdi_collage| +||mdi_color_helper| +||mdi_comment| +||mdi_comment_account| +||mdi_comment_account_outline| +||mdi_comment_alert| +||mdi_comment_alert_outline| +||mdi_comment_check| +||mdi_comment_check_outline| +||mdi_comment_multiple_outline| +||mdi_comment_outline| +||mdi_comment_plus_outline| +||mdi_comment_processing| +||mdi_comment_processing_outline| +||mdi_comment_question| +||mdi_comment_question_outline| +||mdi_comment_remove| +||mdi_comment_remove_outline| +||mdi_comment_text| +||mdi_comment_text_outline| +||mdi_compare| +||mdi_compass| +||mdi_compass_outline| +||mdi_console| +||mdi_console_line| +||mdi_contact_mail| +||mdi_contacts| +||mdi_content_copy| +||mdi_content_cut| +||mdi_content_duplicate| +||mdi_content_paste| +||mdi_content_save| +||mdi_content_save_all| +||mdi_content_save_outline| +||mdi_content_save_settings| +||mdi_contrast| +||mdi_contrast_box| +||mdi_contrast_circle| +||mdi_cookie| +||mdi_copyright| +||mdi_corn| +||mdi_counter| +||mdi_cow| +||mdi_creation| +||mdi_credit_card| +||mdi_credit_card_multiple| +||mdi_credit_card_off| +||mdi_credit_card_plus| +||mdi_credit_card_scan| +||mdi_crop| +||mdi_crop_free| +||mdi_crop_landscape| +||mdi_crop_portrait| +||mdi_crop_rotate| +||mdi_crop_square| +||mdi_crosshairs| +||mdi_crosshairs_gps| +||mdi_crown| +||mdi_cube| +||mdi_cube_outline| +||mdi_cube_send| +||mdi_cube_unfolded| +||mdi_cup| +||mdi_cup_off| +||mdi_cup_water| +||mdi_currency_btc| +||mdi_currency_chf| +||mdi_currency_cny| +||mdi_currency_eth| +||mdi_currency_eur| +||mdi_currency_gbp| +||mdi_currency_inr| +||mdi_currency_jpy| +||mdi_currency_krw| +||mdi_currency_ngn| +||mdi_currency_rub| +||mdi_currency_sign| +||mdi_currency_try| +||mdi_currency_twd| +||mdi_currency_usd| +||mdi_currency_usd_off| +||mdi_cursor_default| +||mdi_cursor_default_outline| +||mdi_cursor_move| +||mdi_cursor_pointer| +||mdi_cursor_text| +||mdi_database| +||mdi_database_minus| +||mdi_database_plus| +||mdi_debug_step_into| +||mdi_debug_step_out| +||mdi_debug_step_over| +||mdi_decagram| +||mdi_decagram_outline| +||mdi_decimal_decrease| +||mdi_decimal_increase| +||mdi_delete| +||mdi_delete_circle| +||mdi_delete_empty| +||mdi_delete_forever| +||mdi_delete_restore| +||mdi_delete_sweep| +||mdi_delete_variant| +||mdi_delta| +||mdi_deskphone| +||mdi_desktop_classic| +||mdi_desktop_mac| +||mdi_desktop_tower| +||mdi_details| +||mdi_developer_board| +||mdi_deviantart| +||mdi_dialpad| +||mdi_diamond| +||mdi_dice_1| +||mdi_dice_2| +||mdi_dice_3| +||mdi_dice_4| +||mdi_dice_5| +||mdi_dice_6| +||mdi_dice_d4| +||mdi_dice_d6| +||mdi_dice_d8| +||mdi_dice_d10| +||mdi_dice_d20| +||mdi_dice_multiple| +||mdi_dictionary| +|ﲿ|mdi_dip_switch| +||mdi_directions| +||mdi_directions_fork| +||mdi_discord| +||mdi_disk| +||mdi_disk_alert| +||mdi_disqus| +||mdi_disqus_outline| +||mdi_division| +||mdi_division_box| +||mdi_dna| +||mdi_dns| +||mdi_do_not_disturb| +||mdi_do_not_disturb_off| +||mdi_dolby| +||mdi_domain| +||mdi_donkey| +||mdi_door| +||mdi_door_closed| +||mdi_door_open| +||mdi_dots_horizontal| +||mdi_dots_horizontal_circle| +||mdi_dots_vertical| +||mdi_dots_vertical_circle| +||mdi_douban| +||mdi_download| +||mdi_download_network| +||mdi_drag| +||mdi_drag_horizontal| +||mdi_drag_vertical| +||mdi_drawing| +||mdi_drawing_box| +||mdi_dribbble| +||mdi_dribbble_box| +||mdi_drone| +||mdi_dropbox| +||mdi_drupal| +||mdi_duck| +||mdi_dumbbell| +||mdi_ear_hearing| +||mdi_earth| +||mdi_earth_box| +||mdi_earth_box_off| +||mdi_earth_off| +||mdi_edge| +||mdi_eject| +||mdi_elephant| +||mdi_elevation_decline| +||mdi_elevation_rise| +||mdi_elevator| +||mdi_email| +||mdi_email_alert| +||mdi_email_open| +||mdi_email_open_outline| +||mdi_email_outline| +||mdi_email_secure| +||mdi_email_variant| +||mdi_emby| +||mdi_emoticon| +||mdi_emoticon_cool| +||mdi_emoticon_dead| +||mdi_emoticon_devil| +||mdi_emoticon_excited| +||mdi_emoticon_happy| +||mdi_emoticon_neutral| +||mdi_emoticon_poop| +||mdi_emoticon_sad| +||mdi_emoticon_tongue| +||mdi_engine| +||mdi_engine_outline| +||mdi_equal| +||mdi_equal_box| +||mdi_eraser| +||mdi_eraser_variant| +||mdi_escalator| +||mdi_ethernet| +||mdi_ethernet_cable| +||mdi_ethernet_cable_off| +||mdi_etsy| +||mdi_ev_station| +||mdi_eventbrite| +||mdi_evernote| +||mdi_exclamation| +||mdi_exit_to_app| +||mdi_export| +||mdi_eye| +||mdi_eye_off| +||mdi_eye_off_outline| +||mdi_eye_outline| +||mdi_eyedropper| +||mdi_eyedropper_variant| +||mdi_face| +||mdi_face_profile| +||mdi_facebook| +||mdi_facebook_box| +||mdi_facebook_messenger| +||mdi_factory| +||mdi_fan| +||mdi_fan_off| +||mdi_fast_forward| +||mdi_fast_forward_outline| +||mdi_fax| +||mdi_feather| +||mdi_ferry| +||mdi_file| +||mdi_file_account| +||mdi_file_chart| +||mdi_file_check| +||mdi_file_cloud| +||mdi_file_delimited| +||mdi_file_document| +||mdi_file_document_box| +||mdi_file_excel| +||mdi_file_excel_box| +||mdi_file_export| +||mdi_file_find| +||mdi_file_hidden| +||mdi_file_image| +||mdi_file_import| +||mdi_file_lock| +||mdi_file_multiple| +||mdi_file_music| +||mdi_file_outline| +||mdi_file_pdf| +||mdi_file_pdf_box| +||mdi_file_percent| +||mdi_file_plus| +||mdi_file_powerpoint| +||mdi_file_powerpoint_box| +||mdi_file_presentation_box| +||mdi_file_restore| +||mdi_file_send| +||mdi_file_tree| +||mdi_file_video| +||mdi_file_word| +||mdi_file_word_box| +||mdi_file_xml| +||mdi_film| +||mdi_filmstrip| +||mdi_filmstrip_off| +||mdi_filter| +||mdi_filter_outline| +||mdi_filter_remove| +||mdi_filter_remove_outline| +||mdi_filter_variant| +||mdi_finance| +||mdi_find_replace| +||mdi_fingerprint| +||mdi_fire| +||mdi_firefox| +||mdi_fish| +||mdi_flag| +||mdi_flag_checkered| +||mdi_flag_outline| +||mdi_flag_triangle| +||mdi_flag_variant| +||mdi_flag_variant_outline| +||mdi_flash| +||mdi_flash_auto| +||mdi_flash_circle| +||mdi_flash_off| +||mdi_flash_outline| +||mdi_flash_red_eye| +||mdi_flashlight| +||mdi_flashlight_off| +||mdi_flask| +||mdi_flask_empty| +||mdi_flask_empty_outline| +||mdi_flask_outline| +||mdi_flattr| +||mdi_flip_to_back| +||mdi_flip_to_front| +||mdi_floor_plan| +||mdi_floppy| +||mdi_flower| +||mdi_folder| +||mdi_folder_account| +||mdi_folder_download| +||mdi_folder_google_drive| +||mdi_folder_image| +||mdi_folder_lock| +||mdi_folder_lock_open| +||mdi_folder_move| +||mdi_folder_multiple| +||mdi_folder_multiple_image| +||mdi_folder_multiple_outline| +||mdi_folder_open| +||mdi_folder_outline| +||mdi_folder_plus| +||mdi_folder_remove| +||mdi_folder_star| +||mdi_folder_upload| +||mdi_font_awesome| +||mdi_food| +||mdi_food_apple| +||mdi_food_croissant| +||mdi_food_fork_drink| +||mdi_food_off| +||mdi_food_variant| +||mdi_football| +||mdi_football_australian| +||mdi_football_helmet| +||mdi_forklift| +||mdi_format_align_bottom| +||mdi_format_align_center| +||mdi_format_align_justify| +||mdi_format_align_left| +||mdi_format_align_middle| +||mdi_format_align_right| +||mdi_format_align_top| +||mdi_format_annotation_plus| +||mdi_format_bold| +||mdi_format_clear| +||mdi_format_color_fill| +||mdi_format_color_text| +||mdi_format_float_center| +||mdi_format_float_left| +||mdi_format_float_none| +||mdi_format_float_right| +||mdi_format_font| +||mdi_format_header_1| +||mdi_format_header_2| +||mdi_format_header_3| +||mdi_format_header_4| +||mdi_format_header_5| +||mdi_format_header_6| +||mdi_format_header_decrease| +||mdi_format_header_equal| +||mdi_format_header_increase| +||mdi_format_header_pound| +||mdi_format_horizontal_align_center| +||mdi_format_horizontal_align_left| +||mdi_format_horizontal_align_right| +||mdi_format_indent_decrease| +||mdi_format_indent_increase| +||mdi_format_italic| +||mdi_format_line_spacing| +||mdi_format_line_style| +||mdi_format_line_weight| +||mdi_format_list_bulleted| +||mdi_format_list_bulleted_type| +||mdi_format_list_checks| +||mdi_format_list_numbers| +||mdi_format_page_break| +||mdi_format_paint| +||mdi_format_paragraph| +||mdi_format_pilcrow| +||mdi_format_quote_close| +||mdi_format_quote_open| +||mdi_format_rotate_90| +||mdi_format_section| +||mdi_format_size| +||mdi_format_strikethrough| +||mdi_format_strikethrough_variant| +||mdi_format_subscript| +||mdi_format_superscript| +||mdi_format_text| +||mdi_format_textdirection_l_to_r| +||mdi_format_textdirection_r_to_l| +||mdi_format_title| +||mdi_format_underline| +||mdi_format_vertical_align_bottom| +||mdi_format_vertical_align_center| +||mdi_format_vertical_align_top| +||mdi_format_wrap_inline| +||mdi_format_wrap_square| +||mdi_format_wrap_tight| +||mdi_format_wrap_top_bottom| +||mdi_forum| +||mdi_forum_outline| +||mdi_forward| +||mdi_foursquare| +||mdi_fridge| +||mdi_fridge_filled| +||mdi_fridge_filled_bottom| +||mdi_fridge_filled_top| +||mdi_fuel| +||mdi_fullscreen| +||mdi_fullscreen_exit| +||mdi_function| +||mdi_gamepad| +||mdi_gamepad_variant| +||mdi_garage| +||mdi_garage_open| +||mdi_gas_cylinder| +||mdi_gas_station| +||mdi_gate| +||mdi_gauge| +||mdi_gavel| +||mdi_gender_female| +||mdi_gender_male| +||mdi_gender_male_female| +||mdi_gender_transgender| +||mdi_gesture| +||mdi_gesture_double_tap| +||mdi_gesture_swipe_down| +||mdi_gesture_swipe_left| +||mdi_gesture_swipe_right| +||mdi_gesture_swipe_up| +|ﰿ|mdi_gesture_tap| +||mdi_gesture_two_double_tap| +||mdi_gesture_two_tap| +||mdi_ghost| +||mdi_gift| +||mdi_git| +||mdi_github_box| +||mdi_github_circle| +||mdi_github_face| +||mdi_glass_flute| +||mdi_glass_mug| +||mdi_glass_stange| +||mdi_glass_tulip| +||mdi_glassdoor| +||mdi_glasses| +||mdi_gmail| +||mdi_gnome| +||mdi_golf| +||mdi_gondola| +||mdi_google| +||mdi_google_analytics| +||mdi_google_assistant| +||mdi_google_cardboard| +||mdi_google_chrome| +||mdi_google_circles| +||mdi_google_circles_communities| +||mdi_google_circles_extended| +||mdi_google_circles_group| +||mdi_google_controller| +||mdi_google_controller_off| +||mdi_google_drive| +||mdi_google_earth| +||mdi_google_glass| +||mdi_google_home| +||mdi_google_keep| +||mdi_google_maps| +||mdi_google_nearby| +||mdi_google_pages| +||mdi_google_photos| +||mdi_google_physical_web| +||mdi_google_play| +||mdi_google_plus| +||mdi_google_plus_box| +||mdi_google_translate| +||mdi_google_wallet| +||mdi_gradient| +||mdi_grease_pencil| +||mdi_grid| +||mdi_grid_large| +||mdi_grid_off| +||mdi_group| +||mdi_guitar_acoustic| +||mdi_guitar_electric| +||mdi_guitar_pick| +||mdi_guitar_pick_outline| +||mdi_guy_fawkes_mask| +||mdi_hackernews| +||mdi_hamburger| +||mdi_hand_pointing_right| +||mdi_hanger| +||mdi_hangouts| +||mdi_harddisk| +||mdi_headphones| +||mdi_headphones_box| +||mdi_headphones_off| +||mdi_headphones_settings| +||mdi_headset| +||mdi_headset_dock| +||mdi_headset_off| +||mdi_heart| +||mdi_heart_box| +||mdi_heart_box_outline| +||mdi_heart_broken| +||mdi_heart_half| +||mdi_heart_half_full| +||mdi_heart_half_outline| +||mdi_heart_off| +||mdi_heart_outline| +||mdi_heart_pulse| +||mdi_help| +||mdi_help_box| +||mdi_help_circle| +||mdi_help_circle_outline| +||mdi_help_network| +||mdi_hexagon| +||mdi_hexagon_multiple| +||mdi_hexagon_outline| +||mdi_high_definition| +||mdi_highway| +||mdi_history| +||mdi_hololens| +||mdi_home| +||mdi_home_account| +||mdi_home_assistant| +||mdi_home_automation| +||mdi_home_circle| +||mdi_home_heart| +||mdi_home_map_marker| +||mdi_home_modern| +||mdi_home_outline| +||mdi_home_variant| +||mdi_hook| +||mdi_hook_off| +||mdi_hops| +||mdi_hospital| +||mdi_hospital_building| +||mdi_hospital_marker| +||mdi_hot_tub| +||mdi_hotel| +||mdi_houzz| +||mdi_houzz_box| +||mdi_hulu| +||mdi_human| +||mdi_human_child| +||mdi_human_female| +||mdi_human_greeting| +||mdi_human_handsdown| +||mdi_human_handsup| +||mdi_human_male| +||mdi_human_male_female| +||mdi_human_pregnant| +||mdi_humble_bundle| +||mdi_ice_cream| +||mdi_image| +||mdi_image_album| +||mdi_image_area| +||mdi_image_area_close| +||mdi_image_broken| +||mdi_image_broken_variant| +||mdi_image_filter| +||mdi_image_filter_black_white| +||mdi_image_filter_center_focus| +||mdi_image_filter_center_focus_weak| +||mdi_image_filter_drama| +||mdi_image_filter_frames| +||mdi_image_filter_hdr| +||mdi_image_filter_none| +||mdi_image_filter_tilt_shift| +||mdi_image_filter_vintage| +||mdi_image_multiple| +||mdi_image_off| +||mdi_import| +||mdi_inbox| +||mdi_inbox_arrow_down| +||mdi_inbox_arrow_up| +||mdi_incognito| +||mdi_infinity| +||mdi_information| +||mdi_information_outline| +||mdi_information_variant| +||mdi_instagram| +||mdi_instapaper| +||mdi_internet_explorer| +||mdi_invert_colors| +||mdi_itunes| +||mdi_jeepney| +||mdi_jira| +||mdi_jsfiddle| +||mdi_json| +||mdi_karate| +||mdi_keg| +||mdi_kettle| +||mdi_key| +||mdi_key_change| +||mdi_key_minus| +||mdi_key_plus| +||mdi_key_remove| +||mdi_key_variant| +||mdi_keyboard| +||mdi_keyboard_backspace| +||mdi_keyboard_caps| +||mdi_keyboard_close| +||mdi_keyboard_off| +||mdi_keyboard_return| +||mdi_keyboard_tab| +||mdi_keyboard_variant| +||mdi_kickstarter| +||mdi_kodi| +||mdi_label| +||mdi_label_outline| +||mdi_ladybug| +||mdi_lambda| +||mdi_lamp| +||mdi_lan| +||mdi_lan_connect| +||mdi_lan_disconnect| +||mdi_lan_pending| +||mdi_language_c| +||mdi_language_cpp| +||mdi_language_csharp| +||mdi_language_css3| +||mdi_language_go| +||mdi_language_html5| +||mdi_language_javascript| +||mdi_language_php| +||mdi_language_python| +||mdi_language_python_text| +||mdi_language_r| +||mdi_language_swift| +||mdi_language_typescript| +||mdi_laptop| +||mdi_laptop_chromebook| +||mdi_laptop_mac| +||mdi_laptop_off| +||mdi_laptop_windows| +||mdi_lastfm| +||mdi_lastpass| +||mdi_launch| +||mdi_lava_lamp| +||mdi_layers| +||mdi_layers_off| +||mdi_lead_pencil| +||mdi_leaf| +||mdi_led_off| +||mdi_led_on| +||mdi_led_outline| +||mdi_led_strip| +||mdi_led_variant_off| +||mdi_led_variant_on| +||mdi_led_variant_outline| +||mdi_library| +||mdi_library_books| +||mdi_library_music| +||mdi_library_plus| +||mdi_lightbulb| +||mdi_lightbulb_on| +||mdi_lightbulb_on_outline| +||mdi_lightbulb_outline| +||mdi_link| +||mdi_link_off| +||mdi_link_variant| +||mdi_link_variant_off| +||mdi_linkedin| +||mdi_linkedin_box| +||mdi_linux| +||mdi_loading| +||mdi_lock| +||mdi_lock_open| +||mdi_lock_open_outline| +||mdi_lock_outline| +||mdi_lock_pattern| +||mdi_lock_plus| +||mdi_lock_reset| +||mdi_locker| +||mdi_locker_multiple| +||mdi_login| +||mdi_login_variant| +||mdi_logout| +||mdi_logout_variant| +||mdi_looks| +||mdi_loop| +||mdi_loupe| +||mdi_lumx| +||mdi_magnet| +||mdi_magnet_on| +||mdi_magnify| +||mdi_magnify_minus| +||mdi_magnify_minus_outline| +||mdi_magnify_plus| +||mdi_magnify_plus_outline| +||mdi_mail_ru| +||mdi_mailbox| +||mdi_map| +||mdi_map_marker| +||mdi_map_marker_circle| +||mdi_map_marker_minus| +||mdi_map_marker_multiple| +||mdi_map_marker_off| +||mdi_map_marker_outline| +||mdi_map_marker_plus| +||mdi_map_marker_radius| +||mdi_margin| +||mdi_markdown| +||mdi_marker| +||mdi_marker_check| +||mdi_martini| +||mdi_material_ui| +||mdi_math_compass| +||mdi_matrix| +||mdi_maxcdn| +||mdi_medical_bag| +||mdi_medium| +||mdi_memory| +||mdi_menu| +||mdi_menu_down| +||mdi_menu_down_outline| +||mdi_menu_left| +||mdi_menu_right| +||mdi_menu_up| +||mdi_menu_up_outline| +||mdi_message| +||mdi_message_alert| +||mdi_message_bulleted| +||mdi_message_bulleted_off| +||mdi_message_draw| +||mdi_message_image| +||mdi_message_outline| +||mdi_message_plus| +||mdi_message_processing| +||mdi_message_reply| +||mdi_message_reply_text| +||mdi_message_settings| +||mdi_message_settings_variant| +||mdi_message_text| +||mdi_message_text_outline| +||mdi_message_video| +||mdi_meteor| +||mdi_metronome| +||mdi_metronome_tick| +||mdi_micro_sd| +||mdi_microphone| +||mdi_microphone_off| +||mdi_microphone_outline| +||mdi_microphone_settings| +||mdi_microphone_variant| +||mdi_microphone_variant_off| +||mdi_microscope| +||mdi_microsoft| +||mdi_minecraft| +||mdi_minus| +||mdi_minus_box| +||mdi_minus_box_outline| +||mdi_minus_circle| +||mdi_minus_circle_outline| +||mdi_minus_network| +||mdi_mixcloud| +||mdi_mixer| +||mdi_monitor| +||mdi_monitor_multiple| +||mdi_more| +||mdi_motorbike| +||mdi_mouse| +||mdi_mouse_off| +||mdi_mouse_variant| +||mdi_mouse_variant_off| +||mdi_move_resize| +||mdi_move_resize_variant| +||mdi_movie| +||mdi_movie_roll| +||mdi_multiplication| +||mdi_multiplication_box| +||mdi_mushroom| +||mdi_mushroom_outline| +||mdi_music| +||mdi_music_box| +||mdi_music_box_outline| +||mdi_music_circle| +||mdi_music_note| +||mdi_music_note_bluetooth| +||mdi_music_note_bluetooth_off| +||mdi_music_note_eighth| +||mdi_music_note_half| +||mdi_music_note_off| +||mdi_music_note_quarter| +||mdi_music_note_sixteenth| +||mdi_music_note_whole| +||mdi_music_off| +||mdi_nature| +||mdi_nature_people| +||mdi_navigation| +||mdi_near_me| +||mdi_needle| +||mdi_nest_protect| +||mdi_nest_thermostat| +||mdi_netflix| +||mdi_network| +||mdi_new_box| +||mdi_newspaper| +||mdi_nfc| +||mdi_nfc_tap| +||mdi_nfc_variant| +||mdi_ninja| +||mdi_nintendo_switch| +||mdi_nodejs| +||mdi_note| +||mdi_note_multiple| +||mdi_note_multiple_outline| +||mdi_note_outline| +||mdi_note_plus| +||mdi_note_plus_outline| +||mdi_note_text| +||mdi_notebook| +||mdi_notification_clear_all| +||mdi_npm| +||mdi_nuke| +||mdi_null| +||mdi_numeric| +||mdi_numeric_0_box| +||mdi_numeric_0_box_multiple_outline| +||mdi_numeric_0_box_outline| +||mdi_numeric_1_box| +||mdi_numeric_1_box_multiple_outline| +||mdi_numeric_1_box_outline| +||mdi_numeric_2_box| +||mdi_numeric_2_box_multiple_outline| +||mdi_numeric_2_box_outline| +||mdi_numeric_3_box| +||mdi_numeric_3_box_multiple_outline| +||mdi_numeric_3_box_outline| +||mdi_numeric_4_box| +||mdi_numeric_4_box_multiple_outline| +||mdi_numeric_4_box_outline| +||mdi_numeric_5_box| +||mdi_numeric_5_box_multiple_outline| +||mdi_numeric_5_box_outline| +||mdi_numeric_6_box| +||mdi_numeric_6_box_multiple_outline| +||mdi_numeric_6_box_outline| +||mdi_numeric_7_box| +||mdi_numeric_7_box_multiple_outline| +||mdi_numeric_7_box_outline| +||mdi_numeric_8_box| +||mdi_numeric_8_box_multiple_outline| +||mdi_numeric_8_box_outline| +||mdi_numeric_9_box| +||mdi_numeric_9_box_multiple_outline| +||mdi_numeric_9_box_outline| +||mdi_numeric_9_plus_box| +||mdi_numeric_9_plus_box_multiple_outline| +||mdi_numeric_9_plus_box_outline| +||mdi_nut| +||mdi_nutrition| +||mdi_oar| +||mdi_octagon| +||mdi_octagon_outline| +||mdi_octagram| +||mdi_octagram_outline| +||mdi_odnoklassniki| +||mdi_office| +||mdi_oil| +||mdi_oil_temperature| +||mdi_omega| +||mdi_onedrive| +||mdi_onenote| +||mdi_opacity| +||mdi_open_in_app| +||mdi_open_in_new| +||mdi_openid| +||mdi_opera| +||mdi_orbit| +||mdi_ornament| +||mdi_ornament_variant| +||mdi_owl| +||mdi_package| +||mdi_package_down| +||mdi_package_up| +||mdi_package_variant| +||mdi_package_variant_closed| +|﫿|mdi_page_first| +||mdi_page_last| +||mdi_page_layout_body| +||mdi_page_layout_footer| +||mdi_page_layout_header| +||mdi_page_layout_sidebar_left| +||mdi_page_layout_sidebar_right| +||mdi_palette| +||mdi_palette_advanced| +||mdi_panda| +||mdi_pandora| +||mdi_panorama| +||mdi_panorama_fisheye| +||mdi_panorama_horizontal| +||mdi_panorama_vertical| +||mdi_panorama_wide_angle| +||mdi_paper_cut_vertical| +||mdi_paperclip| +||mdi_parking| +||mdi_passport| +||mdi_pause| +||mdi_pause_circle| +||mdi_pause_circle_outline| +||mdi_pause_octagon| +||mdi_pause_octagon_outline| +||mdi_paw| +||mdi_paw_off| +||mdi_pen| +||mdi_pencil| +||mdi_pencil_box| +||mdi_pencil_box_outline| +||mdi_pencil_circle| +||mdi_pencil_circle_outline| +||mdi_pencil_lock| +||mdi_pencil_off| +||mdi_pentagon| +|ﯿ|mdi_pentagon_outline| +||mdi_percent| +||mdi_periodic_table_co2| +||mdi_periscope| +||mdi_pharmacy| +||mdi_phone| +||mdi_phone_bluetooth| +||mdi_phone_classic| +||mdi_phone_forward| +||mdi_phone_hangup| +||mdi_phone_in_talk| +||mdi_phone_incoming| +||mdi_phone_locked| +||mdi_phone_log| +||mdi_phone_minus| +||mdi_phone_missed| +||mdi_phone_outgoing| +||mdi_phone_paused| +||mdi_phone_plus| +||mdi_phone_return| +||mdi_phone_settings| +||mdi_phone_voip| +||mdi_pi| +||mdi_pi_box| +||mdi_piano| +||mdi_pig| +||mdi_pill| +||mdi_pillar| +||mdi_pin| +||mdi_pin_off| +||mdi_pine_tree| +||mdi_pine_tree_box| +||mdi_pinterest| +||mdi_pinterest_box| +||mdi_pipe| +||mdi_pipe_disconnected| +||mdi_pistol| +||mdi_pizza| +||mdi_plane_shield| +||mdi_play| +||mdi_play_box_outline| +||mdi_play_circle| +||mdi_play_circle_outline| +||mdi_play_pause| +||mdi_play_protected_content| +||mdi_playlist_check| +||mdi_playlist_minus| +||mdi_playlist_play| +||mdi_playlist_plus| +||mdi_playlist_remove| +||mdi_playstation| +||mdi_plex| +||mdi_plus| +||mdi_plus_box| +||mdi_plus_box_outline| +||mdi_plus_circle| +||mdi_plus_circle_multiple_outline| +||mdi_plus_circle_outline| +||mdi_plus_network| +||mdi_plus_one| +||mdi_plus_outline| +||mdi_pocket| +||mdi_pokeball| +||mdi_poker_chip| +||mdi_polaroid| +||mdi_poll| +||mdi_poll_box| +||mdi_polymer| +||mdi_pool| +||mdi_popcorn| +||mdi_pot| +||mdi_pot_mix| +||mdi_pound| +||mdi_pound_box| +||mdi_power| +||mdi_power_plug| +||mdi_power_plug_off| +||mdi_power_settings| +||mdi_power_socket| +||mdi_power_socket_eu| +||mdi_power_socket_uk| +||mdi_power_socket_us| +||mdi_prescription| +||mdi_presentation| +||mdi_presentation_play| +||mdi_printer| +||mdi_printer_3d| +||mdi_printer_alert| +||mdi_printer_settings| +||mdi_priority_high| +||mdi_priority_low| +||mdi_professional_hexagon| +||mdi_projector| +||mdi_projector_screen| +||mdi_publish| +||mdi_pulse| +||mdi_puzzle| +||mdi_qqchat| +||mdi_qrcode| +||mdi_qrcode_scan| +||mdi_quadcopter| +||mdi_quality_high| +||mdi_quicktime| +||mdi_radar| +||mdi_radiator| +||mdi_radio| +||mdi_radio_handheld| +||mdi_radio_tower| +||mdi_radioactive| +||mdi_radiobox_blank| +||mdi_radiobox_marked| +||mdi_raspberrypi| +|錄|mdi_ray_end| +||mdi_ray_end_arrow| +||mdi_ray_start| +||mdi_ray_start_arrow| +||mdi_ray_start_end| +||mdi_ray_vertex| +||mdi_react| +||mdi_read| +||mdi_receipt| +||mdi_record| +||mdi_record_rec| +||mdi_recycle| +||mdi_reddit| +||mdi_redo| +||mdi_redo_variant| +||mdi_refresh| +||mdi_regex| +||mdi_relative_scale| +||mdi_reload| +||mdi_remote| +||mdi_rename_box| +||mdi_reorder_horizontal| +||mdi_reorder_vertical| +||mdi_repeat| +||mdi_repeat_off| +||mdi_repeat_once| +||mdi_replay| +||mdi_reply| +||mdi_reply_all| +||mdi_reproduction| +||mdi_resize_bottom_right| +||mdi_responsive| +||mdi_restart| +||mdi_restore| +||mdi_rewind| +||mdi_rewind_outline| +||mdi_rhombus| +||mdi_rhombus_outline| +||mdi_ribbon| +||mdi_rice| +||mdi_ring| +||mdi_road| +||mdi_road_variant| +||mdi_robot| +||mdi_rocket| +||mdi_roomba| +||mdi_rotate_3d| +||mdi_rotate_left| +||mdi_rotate_left_variant| +||mdi_rotate_right| +||mdi_rotate_right_variant| +||mdi_rounded_corner| +||mdi_router_wireless| +||mdi_routes| +||mdi_rowing| +||mdi_rss| +||mdi_rss_box| +||mdi_ruler| +||mdi_run| +||mdi_run_fast| +||mdi_sale| +||mdi_sass| +||mdi_satellite| +||mdi_satellite_variant| +||mdi_saxophone| +||mdi_scale| +||mdi_scale_balance| +||mdi_scale_bathroom| +||mdi_scanner| +||mdi_school| +||mdi_screen_rotation| +||mdi_screen_rotation_lock| +||mdi_screwdriver| +||mdi_script| +||mdi_sd| +||mdi_seal| +||mdi_search_web| +||mdi_seat_flat| +||mdi_seat_flat_angled| +||mdi_seat_individual_suite| +||mdi_seat_legroom_extra| +||mdi_seat_legroom_normal| +|勵|mdi_seat_legroom_reduced| +||mdi_seat_recline_extra| +||mdi_seat_recline_normal| +||mdi_security| +||mdi_security_home| +||mdi_security_network| +||mdi_select| +||mdi_select_all| +||mdi_select_inverse| +||mdi_select_off| +||mdi_selection| +||mdi_selection_off| +||mdi_send| +||mdi_send_secure| +||mdi_serial_port| +||mdi_server| +||mdi_server_minus| +||mdi_server_network| +||mdi_server_network_off| +||mdi_server_off| +||mdi_server_plus| +||mdi_server_remove| +||mdi_server_security| +||mdi_set_all| +||mdi_set_center| +||mdi_set_center_right| +||mdi_set_left| +||mdi_set_left_center| +||mdi_set_left_right| +||mdi_set_none| +||mdi_set_right| +||mdi_settings| +||mdi_settings_box| +||mdi_shape| +||mdi_shape_circle_plus| +||mdi_shape_outline| +||mdi_shape_plus| +||mdi_shape_polygon_plus| +||mdi_shape_rectangle_plus| +||mdi_shape_square_plus| +||mdi_share| +||mdi_share_variant| +||mdi_shield| +||mdi_shield_half_full| +||mdi_shield_outline| +||mdi_ship_wheel| +||mdi_shopping| +||mdi_shopping_music| +||mdi_shovel| +||mdi_shovel_off| +||mdi_shredder| +||mdi_shuffle| +||mdi_shuffle_disabled| +||mdi_shuffle_variant| +||mdi_sigma| +||mdi_sigma_lower| +||mdi_sign_caution| +|ﱿ|mdi_sign_direction| +||mdi_sign_text| +||mdi_signal| +||mdi_signal_2g| +||mdi_signal_3g| +||mdi_signal_4g| +||mdi_signal_hspa| +||mdi_signal_hspa_plus| +||mdi_signal_off| +||mdi_signal_variant| +||mdi_silverware| +||mdi_silverware_fork| +||mdi_silverware_spoon| +||mdi_silverware_variant| +||mdi_sim| +||mdi_sim_alert| +||mdi_sim_off| +||mdi_sitemap| +||mdi_skip_backward| +||mdi_skip_forward| +||mdi_skip_next| +||mdi_skip_next_circle| +||mdi_skip_next_circle_outline| +||mdi_skip_previous| +||mdi_skip_previous_circle| +||mdi_skip_previous_circle_outline| +||mdi_skull| +||mdi_skype| +||mdi_skype_business| +||mdi_slack| +||mdi_sleep| +||mdi_sleep_off| +||mdi_smoking| +||mdi_smoking_off| +||mdi_snapchat| +||mdi_snowflake| +||mdi_snowman| +||mdi_soccer| +||mdi_soccer_field| +||mdi_sofa| +||mdi_solid| +||mdi_sort| +||mdi_sort_alphabetical| +||mdi_sort_ascending| +||mdi_sort_descending| +||mdi_sort_numeric| +||mdi_sort_variant| +|樂|mdi_soundcloud| +||mdi_source_branch| +||mdi_source_commit| +||mdi_source_commit_end| +||mdi_source_commit_end_local| +||mdi_source_commit_local| +||mdi_source_commit_next_local| +||mdi_source_commit_start| +||mdi_source_commit_start_next_local| +||mdi_source_fork| +||mdi_source_merge| +||mdi_source_pull| +||mdi_soy_sauce| +||mdi_speaker| +||mdi_speaker_off| +||mdi_speaker_wireless| +||mdi_speedometer| +||mdi_spellcheck| +||mdi_spotify| +||mdi_spotlight| +||mdi_spotlight_beam| +||mdi_spray| +||mdi_square| +||mdi_square_inc| +||mdi_square_inc_cash| +||mdi_square_outline| +||mdi_square_root| +||mdi_stack_overflow| +||mdi_stackexchange| +||mdi_stadium| +||mdi_stairs| +||mdi_standard_definition| +||mdi_star| +||mdi_star_circle| +||mdi_star_half| +||mdi_star_off| +||mdi_star_outline| +||mdi_steam| +||mdi_steering| +||mdi_step_backward| +||mdi_step_backward_2| +||mdi_step_forward| +||mdi_step_forward_2| +||mdi_stethoscope| +||mdi_sticker| +||mdi_sticker_emoji| +||mdi_stocking| +||mdi_stop| +||mdi_stop_circle| +||mdi_stop_circle_outline| +||mdi_store| +||mdi_store_24_hour| +||mdi_stove| +||mdi_subdirectory_arrow_left| +||mdi_subdirectory_arrow_right| +||mdi_subway| +||mdi_subway_variant| +||mdi_summit| +||mdi_sunglasses| +||mdi_surround_sound| +||mdi_surround_sound_2_0| +||mdi_surround_sound_3_1| +||mdi_surround_sound_5_1| +||mdi_surround_sound_7_1| +||mdi_svg| +||mdi_swap_horizontal| +||mdi_swap_vertical| +||mdi_swim| +||mdi_switch| +||mdi_sword| +||mdi_sword_cross| +||mdi_sync| +||mdi_sync_alert| +||mdi_sync_off| +||mdi_tab| +||mdi_tab_plus| +||mdi_tab_unselected| +||mdi_table| +||mdi_table_column| +||mdi_table_column_plus_after| +||mdi_table_column_plus_before| +||mdi_table_column_remove| +||mdi_table_column_width| +||mdi_table_edit| +||mdi_table_large| +||mdi_table_of_contents| +||mdi_table_row| +||mdi_table_row_height| +||mdi_table_row_plus_after| +||mdi_table_row_plus_before| +||mdi_table_row_remove| +||mdi_table_settings| +||mdi_tablet| +||mdi_tablet_android| +||mdi_tablet_ipad| +||mdi_taco| +||mdi_tag| +||mdi_tag_faces| +||mdi_tag_heart| +||mdi_tag_multiple| +||mdi_tag_outline| +||mdi_tag_plus| +||mdi_tag_remove| +||mdi_tag_text_outline| +||mdi_target| +||mdi_taxi| +|刺|mdi_teamviewer| +||mdi_telegram| +||mdi_television| +||mdi_television_box| +||mdi_television_classic| +||mdi_television_classic_off| +||mdi_television_guide| +||mdi_television_off| +||mdi_temperature_celsius| +||mdi_temperature_fahrenheit| +||mdi_temperature_kelvin| +||mdi_tennis| +||mdi_tent| +||mdi_terrain| +||mdi_test_tube| +||mdi_text_shadow| +||mdi_text_to_speech| +||mdi_text_to_speech_off| +||mdi_textbox| +||mdi_textbox_password| +||mdi_texture| +||mdi_theater| +||mdi_theme_light_dark| +||mdi_thermometer| +||mdi_thermometer_lines| +||mdi_thought_bubble| +||mdi_thought_bubble_outline| +||mdi_thumb_down| +||mdi_thumb_down_outline| +||mdi_thumb_up| +||mdi_thumb_up_outline| +||mdi_thumbs_up_down| +||mdi_ticket| +||mdi_ticket_account| +||mdi_ticket_confirmation| +||mdi_ticket_percent| +||mdi_tie| +||mdi_tilde| +||mdi_timelapse| +||mdi_timer| +||mdi_timer_3| +||mdi_timer_10| +||mdi_timer_off| +||mdi_timer_sand| +||mdi_timer_sand_empty| +||mdi_timer_sand_full| +||mdi_timetable| +||mdi_toggle_switch| +||mdi_toggle_switch_off| +||mdi_tooltip| +||mdi_tooltip_edit| +||mdi_tooltip_image| +||mdi_tooltip_outline| +||mdi_tooltip_outline_plus| +||mdi_tooltip_text| +||mdi_tooth| +||mdi_tor| +|ﭿ|mdi_tower_beach| +||mdi_tower_fire| +||mdi_towing| +||mdi_trackpad| +||mdi_traffic_light| +||mdi_train| +||mdi_tram| +||mdi_transcribe| +||mdi_transcribe_close| +||mdi_transfer| +||mdi_transit_transfer| +||mdi_translate| +||mdi_treasure_chest| +||mdi_tree| +||mdi_trello| +||mdi_trending_down| +||mdi_trending_neutral| +||mdi_trending_up| +||mdi_triangle| +||mdi_triangle_outline| +||mdi_trophy| +||mdi_trophy_award| +||mdi_trophy_outline| +||mdi_trophy_variant| +||mdi_trophy_variant_outline| +||mdi_truck| +||mdi_truck_delivery| +||mdi_truck_fast| +||mdi_truck_trailer| +||mdi_tshirt_crew| +|憎|mdi_tshirt_v| +||mdi_tumblr| +||mdi_tumblr_reblog| +||mdi_tune| +||mdi_tune_vertical| +||mdi_twitch| +||mdi_twitter| +||mdi_twitter_box| +||mdi_twitter_circle| +||mdi_twitter_retweet| +||mdi_uber| +||mdi_ubuntu| +||mdi_ultra_high_definition| +||mdi_umbraco| +||mdi_umbrella| +||mdi_umbrella_outline| +||mdi_undo| +||mdi_undo_variant| +||mdi_unfold_less_horizontal| +||mdi_unfold_less_vertical| +||mdi_unfold_more_horizontal| +||mdi_unfold_more_vertical| +||mdi_ungroup| +||mdi_unity| +||mdi_untappd| +||mdi_update| +||mdi_upload| +||mdi_upload_multiple| +||mdi_upload_network| +||mdi_usb| +||mdi_van_passenger| +||mdi_van_utility| +||mdi_vanish| +||mdi_vector_arrange_above| +||mdi_vector_arrange_below| +||mdi_vector_circle| +||mdi_vector_circle_variant| +||mdi_vector_combine| +||mdi_vector_curve| +||mdi_vector_difference| +||mdi_vector_difference_ab| +||mdi_vector_difference_ba| +||mdi_vector_intersection| +||mdi_vector_line| +||mdi_vector_point| +||mdi_vector_polygon| +||mdi_vector_polyline| +||mdi_vector_radius| +||mdi_vector_rectangle| +||mdi_vector_selection| +||mdi_vector_square| +||mdi_vector_triangle| +||mdi_vector_union| +||mdi_venmo| +||mdi_verified| +||mdi_vibrate| +||mdi_video| +||mdi_video_3d| +||mdi_video_4k_box| +||mdi_video_input_antenna| +||mdi_video_input_component| +|﴿|mdi_video_input_hdmi| +||mdi_video_input_svideo| +||mdi_video_off| +||mdi_video_switch| +||mdi_view_agenda| +||mdi_view_array| +||mdi_view_carousel| +||mdi_view_column| +||mdi_view_dashboard| +||mdi_view_dashboard_variant| +||mdi_view_day| +||mdi_view_grid| +||mdi_view_headline| +||mdi_view_list| +||mdi_view_module| +||mdi_view_parallel| +||mdi_view_quilt| +||mdi_view_sequential| +||mdi_view_stream| +||mdi_view_week| +||mdi_vimeo| +||mdi_violin| +||mdi_visualstudio| +||mdi_vk| +||mdi_vk_box| +||mdi_vk_circle| +||mdi_vlc| +||mdi_voice| +||mdi_voicemail| +||mdi_volume_high| +||mdi_volume_low| +|奔|mdi_volume_medium| +||mdi_volume_minus| +||mdi_volume_mute| +||mdi_volume_off| +||mdi_volume_plus| +||mdi_vpn| +||mdi_vuejs| +||mdi_walk| +||mdi_wall| +||mdi_wallet| +||mdi_wallet_giftcard| +||mdi_wallet_membership| +||mdi_wallet_travel| +||mdi_wan| +||mdi_washing_machine| +||mdi_watch| +||mdi_watch_export| +||mdi_watch_import| +||mdi_watch_vibrate| +||mdi_water| +||mdi_water_off| +||mdi_water_percent| +||mdi_water_pump| +||mdi_watermark| +||mdi_waves| +||mdi_weather_cloudy| +||mdi_weather_fog| +||mdi_weather_hail| +||mdi_weather_lightning| +||mdi_weather_lightning_rainy| +||mdi_weather_night| +||mdi_weather_partlycloudy| +||mdi_weather_pouring| +||mdi_weather_rainy| +||mdi_weather_snowy| +||mdi_weather_snowy_rainy| +||mdi_weather_sunny| +||mdi_weather_sunset| +||mdi_weather_sunset_down| +||mdi_weather_sunset_up| +||mdi_weather_windy| +||mdi_weather_windy_variant| +||mdi_web| +||mdi_webcam| +||mdi_webhook| +||mdi_webpack| +||mdi_wechat| +||mdi_weight| +||mdi_weight_kilogram| +||mdi_whatsapp| +||mdi_wheelchair_accessibility| +||mdi_white_balance_auto| +||mdi_white_balance_incandescent| +||mdi_white_balance_iridescent| +||mdi_white_balance_sunny| +||mdi_widgets| +||mdi_wifi| +||mdi_wifi_off| +||mdi_wii| +||mdi_wiiu| +||mdi_wikipedia| +||mdi_window_close| +||mdi_window_closed| +||mdi_window_maximize| +||mdi_window_minimize| +||mdi_window_open| +||mdi_window_restore| +||mdi_windows| +||mdi_wordpress| +||mdi_worker| +||mdi_wrap| +||mdi_wrench| +||mdi_wunderlist| +||mdi_xamarin| +||mdi_xamarin_outline| +||mdi_xaml| +||mdi_xbox| +||mdi_xbox_controller| +||mdi_xbox_controller_battery_alert| +||mdi_xbox_controller_battery_empty| +||mdi_xbox_controller_battery_full| +||mdi_xbox_controller_battery_low| +||mdi_xbox_controller_battery_medium| +||mdi_xbox_controller_battery_unknown| +||mdi_xbox_controller_off| +||mdi_xda| +||mdi_xing| +||mdi_xing_box| +||mdi_xing_circle| +|謹|mdi_xml| +||mdi_xmpp| +||mdi_yammer| +||mdi_yeast| +||mdi_yelp| +||mdi_yin_yang| +||mdi_youtube_creator_studio| +||mdi_youtube_gaming| +||mdi_youtube_play| +||mdi_youtube_tv| +||mdi_zip_box| +||oct_alert| +||oct_arrow_down| +||oct_arrow_left| +||oct_arrow_right| +||oct_arrow_small_down| +||oct_arrow_small_left| +||oct_arrow_small_right| +||oct_arrow_small_up| +||oct_arrow_up| +||oct_beaker| +||oct_bell| +||oct_bold| +||oct_book| +||oct_bookmark| +||oct_briefcase| +||oct_broadcast| +||oct_browser| +||oct_bug| +||oct_calendar| +||oct_check| +||oct_checklist| +||oct_chevron_down| +||oct_chevron_left| +||oct_chevron_right| +||oct_chevron_up| +||oct_circle_slash| +||oct_circuit_board| +||oct_clippy| +||oct_clock| +||oct_cloud_download| +||oct_cloud_upload| +||oct_code| +||oct_comment| +||oct_comment_discussion| +||oct_credit_card| +||oct_dash| +||oct_dashboard| +||oct_database| +||oct_desktop_download| +||oct_device_camera| +||oct_device_camera_video| +||oct_device_desktop| +||oct_device_mobile| +||oct_diff| +||oct_diff_added| +||oct_diff_ignored| +||oct_diff_modified| +||oct_diff_removed| +||oct_diff_renamed| +||oct_ellipses| +||oct_ellipsis| +||oct_eye| +||oct_file| +||oct_file_binary| +||oct_file_code| +||oct_file_directory| +||oct_file_media| +||oct_file_pdf| +||oct_file_submodule| +||oct_file_symlink_directory| +||oct_file_symlink_file| +||oct_file_text| +||oct_file_zip| +||oct_flame| +||oct_fold| +||oct_gear| +||oct_gift| +||oct_gist| +||oct_gist_secret| +||oct_git_branch| +||oct_git_commit| +||oct_git_compare| +||oct_git_merge| +||oct_git_pull_request| +||oct_globe| +||oct_grabber| +||oct_graph| +||oct_heart| +||oct_history| +||oct_home| +||oct_horizontal_rule| +||oct_hubot| +||oct_inbox| +||oct_info| +||oct_issue_closed| +||oct_issue_opened| +||oct_issue_reopened| +||oct_italic| +||oct_jersey| +||oct_key| +||oct_keyboard| +||oct_law| +||oct_light_bulb| +||oct_link| +||oct_link_external| +||oct_list_ordered| +||oct_list_unordered| +||oct_location| +||oct_lock| +||oct_logo_gist| +||oct_logo_github| +||oct_mail| +||oct_mail_read| +||oct_mail_reply| +||oct_mark_github| +||oct_markdown| +||oct_megaphone| +||oct_mention| +||oct_milestone| +||oct_mirror| +||oct_mortar_board| +||oct_mute| +||oct_no_newline| +||oct_octoface| +||oct_organization| +||oct_package| +||oct_paintcan| +||oct_pencil| +||oct_person| +||oct_pin| +||oct_plug| +||oct_plus| +||oct_plus_small| +||oct_primitive_dot| +||oct_primitive_square| +||oct_pulse| +||oct_question| +||oct_quote| +||oct_radio_tower| +||oct_reply| +||oct_repo| +||oct_repo_clone| +||oct_repo_force_push| +||oct_repo_forked| +||oct_repo_pull| +||oct_repo_push| +||oct_rocket| +||oct_rss| +||oct_ruby| +||oct_search| +||oct_server| +||oct_settings| +||oct_shield| +||oct_sign_in| +||oct_sign_out| +||oct_smiley| +||oct_squirrel| +||oct_star| +||oct_stop| +||oct_sync| +||oct_tag| +||oct_tasklist| +||oct_telescope| +||oct_terminal| +||oct_text_size| +||oct_three_bars| +||oct_thumbsdown| +||oct_thumbsup| +||oct_tools| +||oct_trashcan| +||oct_triangle_down| +||oct_triangle_left| +||oct_triangle_right| +||oct_triangle_up| +||oct_unfold| +||oct_unmute| +||oct_unverified| +||oct_verified| +||oct_versions| +||oct_watch| +||oct_x| +||oct_zap| +||pl_branch| +||pl_hostname| +||pl_left_hard_divider| +||pl_left_soft_divider| +||pl_line_number| +||pl_right_hard_divider| +||pl_right_soft_divider| +||ple_backslash_separator| +||ple_backslash_separator_redundant| +||ple_column_number| +||ple_flame_thick| +||ple_flame_thick_mirrored| +||ple_flame_thin| +||ple_flame_thin_mirrored| +||ple_forwardslash_separator| +||ple_forwardslash_separator_redundant| +||ple_honeycomb| +||ple_honeycomb_outline| +||ple_ice_waveform| +||ple_ice_waveform_mirrored| +||ple_left_half_circle_thick| +||ple_left_half_circle_thin| +||ple_lego_block_facing| +||ple_lego_block_sideways| +||ple_lego_separator| +||ple_lego_separator_thin| +||ple_lower_left_triangle| +||ple_lower_right_triangle| +||ple_pixelated_squares_big| +||ple_pixelated_squares_big_mirrored| +||ple_pixelated_squares_small| +||ple_pixelated_squares_small_mirrored| +||ple_right_half_circle_thick| +||ple_right_half_circle_thin| +||ple_trapezoid_top_bottom| +||ple_trapezoid_top_bottom_mirrored| +||ple_upper_left_triangle| +||ple_upper_right_triangle| +||pom_away| +||pom_clean_code| +||pom_external_interruption| +||pom_internal_interruption| +||pom_long_pause| +||pom_pair_programming| +||pom_pomodoro_done| +||pom_pomodoro_estimated| +||pom_pomodoro_squashed| +||pom_pomodoro_ticking| +||pom_short_pause| +||seti_apple| +||seti_argdown| +||seti_asm| +||seti_audio| +||seti_babel| +||seti_bazel| +||seti_bicep| +||seti_bower| +||seti_bsl| +||seti_c| +||seti_c_sharp| +||seti_cake| +||seti_cake_php| +||seti_checkbox| +||seti_checkbox_unchecked| +||seti_clock| +||seti_clojure| +||seti_code_climate| +||seti_code_search| +||seti_coffee| +||seti_coldfusion| +||seti_config| +||seti_cpp| +||seti_crystal_embedded| +||seti_css| +||seti_csv| +||seti_cu| +||seti_d| +||seti_dart| +||seti_db| +||seti_default| +||seti_deprecation_cop| +||seti_docker| +||seti_editorconfig| +||seti_ejs| +||seti_elixir_script| +||seti_error| +||seti_eslint| +||seti_ethereum| +||seti_f_sharp| +||seti_favicon| +||seti_firebase| +||seti_firefox| +||seti_folder| +||seti_font| +||seti_git| +||seti_github| +||seti_gitlab| +||seti_go| +||seti_go2| +||seti_godot| +||seti_gradle| +||seti_grails| +||seti_graphql| +||seti_grunt| +||seti_gulp| +||seti_hacklang| +||seti_haml| +||seti_happenings| +||seti_haskell| +||seti_haxe| +||seti_heroku| +||seti_hex| +||seti_html| +||seti_ignored| +||seti_illustrator| +||seti_image| +||seti_info| +||seti_ionic| +||seti_jade| +||seti_java| +||seti_javascript| +||seti_jenkins| +||seti_jinja| +||seti_json| +||seti_julia| +||seti_karma| +||seti_license| +||seti_liquid| +||seti_livescript| +||seti_lock| +||seti_lua| +||seti_makefile| +||seti_markdown| +||seti_maven| +||seti_mdo| +||seti_mustache| +||seti_new_file| +||seti_nim| +||seti_notebook| +||seti_npm| +||seti_nunjucks| +||seti_ocaml| +||seti_odata| +||seti_pddl| +||seti_pdf| +||seti_perl| +||seti_photoshop| +||seti_php| +||seti_pipeline| +||seti_plan| +||seti_platformio| +||seti_powershell| +||seti_prisma| +||seti_project| +||seti_prolog| +||seti_pug| +||seti_puppet| +||seti_python| +||seti_r| +||seti_rails| +||seti_react| +||seti_reasonml| +||seti_rescript| +||seti_rollup| +||seti_ruby| +||seti_rust| +||seti_salesforce| +||seti_sass| +||seti_sbt| +||seti_scala| +||seti_search| +||seti_settings| +||seti_shell| +||seti_slim| +||seti_smarty| +||seti_spring| +||seti_stylelint| +||seti_stylus| +||seti_sublime| +||seti_svelte| +||seti_svg| +||seti_swift| +||seti_terraform| +||seti_tex| +||seti_todo| +||seti_tsconfig| +||seti_twig| +||seti_typescript| +||seti_vala| +||seti_video| +||seti_vue| +||seti_wasm| +||seti_wat| +||seti_webpack| +||seti_wgt| +||seti_word| +||seti_xls| +||seti_xml| +||seti_yarn| +||seti_yml| +||seti_zig| +||seti_zip| +||weather_alien| +||weather_aliens| +||weather_barometer| +||weather_celsius| +||weather_cloud| +||weather_cloud_down| +||weather_cloud_refresh| +||weather_cloud_up| +||weather_cloudy| +||weather_cloudy_gusts| +||weather_cloudy_windy| +||weather_day_cloudy| +||weather_day_cloudy_gusts| +||weather_day_cloudy_high| +||weather_day_cloudy_windy| +||weather_day_fog| +||weather_day_hail| +||weather_day_haze| +||weather_day_light_wind| +||weather_day_lightning| +||weather_day_rain| +||weather_day_rain_mix| +||weather_day_rain_wind| +||weather_day_showers| +||weather_day_sleet| +||weather_day_sleet_storm| +||weather_day_snow| +||weather_day_snow_thunderstorm| +||weather_day_snow_wind| +||weather_day_sprinkle| +||weather_day_storm_showers| +||weather_day_sunny| +||weather_day_sunny_overcast| +||weather_day_thunderstorm| +||weather_day_windy| +||weather_degrees| +||weather_direction_down| +||weather_direction_down_left| +||weather_direction_down_right| +||weather_direction_left| +||weather_direction_right| +||weather_direction_up| +||weather_direction_up_left| +||weather_direction_up_right| +||weather_dust| +||weather_earthquake| +||weather_fahrenheit| +||weather_fire| +||weather_flood| +||weather_fog| +||weather_gale_warning| +||weather_hail| +||weather_horizon| +||weather_horizon_alt| +||weather_hot| +||weather_humidity| +||weather_hurricane| +||weather_hurricane_warning| +||weather_lightning| +||weather_lunar_eclipse| +||weather_meteor| +||weather_moon_alt_first_quarter| +||weather_moon_alt_full| +||weather_moon_alt_new| +||weather_moon_alt_third_quarter| +||weather_moon_alt_waning_crescent_1| +||weather_moon_alt_waning_crescent_2| +||weather_moon_alt_waning_crescent_3| +||weather_moon_alt_waning_crescent_4| +||weather_moon_alt_waning_crescent_5| +||weather_moon_alt_waning_crescent_6| +||weather_moon_alt_waning_gibbous_1| +||weather_moon_alt_waning_gibbous_2| +||weather_moon_alt_waning_gibbous_3| +||weather_moon_alt_waning_gibbous_4| +||weather_moon_alt_waning_gibbous_5| +||weather_moon_alt_waning_gibbous_6| +||weather_moon_alt_waxing_crescent_1| +||weather_moon_alt_waxing_crescent_2| +||weather_moon_alt_waxing_crescent_3| +||weather_moon_alt_waxing_crescent_4| +||weather_moon_alt_waxing_crescent_5| +||weather_moon_alt_waxing_crescent_6| +||weather_moon_alt_waxing_gibbous_1| +||weather_moon_alt_waxing_gibbous_2| +||weather_moon_alt_waxing_gibbous_3| +||weather_moon_alt_waxing_gibbous_4| +||weather_moon_alt_waxing_gibbous_5| +||weather_moon_alt_waxing_gibbous_6| +||weather_moon_first_quarter| +||weather_moon_full| +||weather_moon_new| +||weather_moon_third_quarter| +||weather_moon_waning_crescent_1| +||weather_moon_waning_crescent_2| +||weather_moon_waning_crescent_3| +||weather_moon_waning_crescent_4| +||weather_moon_waning_crescent_5| +||weather_moon_waning_crescent_6| +||weather_moon_waning_gibbous_1| +||weather_moon_waning_gibbous_2| +||weather_moon_waning_gibbous_3| +||weather_moon_waning_gibbous_4| +||weather_moon_waning_gibbous_5| +||weather_moon_waning_gibbous_6| +||weather_moon_waxing_crescent_1| +||weather_moon_waxing_crescent_2| +||weather_moon_waxing_crescent_3| +||weather_moon_waxing_crescent_4| +||weather_moon_waxing_crescent_5| +||weather_moon_waxing_crescent_6| +||weather_moon_waxing_gibbous_1| +||weather_moon_waxing_gibbous_2| +||weather_moon_waxing_gibbous_3| +||weather_moon_waxing_gibbous_4| +||weather_moon_waxing_gibbous_5| +||weather_moon_waxing_gibbous_6| +||weather_moonrise| +||weather_moonset| +||weather_na| +||weather_night_alt_cloudy| +||weather_night_alt_cloudy_gusts| +||weather_night_alt_cloudy_high| +||weather_night_alt_cloudy_windy| +||weather_night_alt_hail| +||weather_night_alt_lightning| +||weather_night_alt_partly_cloudy| +||weather_night_alt_rain| +||weather_night_alt_rain_mix| +||weather_night_alt_rain_mix| +||weather_night_alt_rain_wind| +||weather_night_alt_sleet| +||weather_night_alt_sleet_storm| +||weather_night_alt_snow| +||weather_night_alt_snow_thunderstorm| +||weather_night_alt_snow_wind| +||weather_night_alt_sprinkle| +||weather_night_alt_storm_showers| +||weather_night_alt_thunderstorm| +||weather_night_clear| +||weather_night_cloudy| +||weather_night_cloudy_gusts| +||weather_night_cloudy_high| +||weather_night_cloudy_windy| +||weather_night_fog| +||weather_night_hail| +||weather_night_lightning| +||weather_night_partly_cloudy| +||weather_night_rain| +||weather_night_rain_mix| +||weather_night_rain_wind| +||weather_night_showers| +||weather_night_sleet| +||weather_night_sleet_storm| +||weather_night_snow| +||weather_night_snow_thunderstorm| +||weather_night_snow_wind| +||weather_night_sprinkle| +||weather_night_storm_showers| +||weather_night_thunderstorm| +||weather_rain| +||weather_rain_mix| +||weather_rain_wind| +||weather_raindrop| +||weather_raindrops| +||weather_refresh| +||weather_refresh_alt| +||weather_sandstorm| +||weather_showers| +||weather_sleet| +||weather_small_craft_advisory| +||weather_smog| +||weather_smoke| +||weather_snow| +||weather_snow_wind| +||weather_snowflake_cold| +||weather_solar_eclipse| +||weather_sprinkle| +||weather_stars| +||weather_storm_showers| +||weather_storm_warning| +||weather_strong_wind| +||weather_sunrise| +||weather_sunset| +||weather_thermometer| +||weather_thermometer_exterior| +||weather_thermometer_internal| +||weather_thunderstorm| +||weather_time_1| +||weather_time_2| +||weather_time_3| +||weather_time_4| +||weather_time_5| +||weather_time_6| +||weather_time_7| +||weather_time_8| +||weather_time_9| +||weather_time_10| +||weather_time_11| +||weather_time_12| +||weather_tornado| +||weather_train| +||weather_tsunami| +||weather_umbrella| +||weather_volcano| +||weather_wind_beaufort_0| +||weather_wind_beaufort_1| +||weather_wind_beaufort_2| +||weather_wind_beaufort_3| +||weather_wind_beaufort_4| +||weather_wind_beaufort_5| +||weather_wind_beaufort_6| +||weather_wind_beaufort_7| +||weather_wind_beaufort_8| +||weather_wind_beaufort_9| +||weather_wind_beaufort_10| +||weather_wind_beaufort_11| +||weather_wind_beaufort_12| +||weather_wind_direction| +||weather_wind_east| +||weather_wind_north| +||weather_wind_north_east| +||weather_wind_north_west| +||weather_wind_south| +||weather_wind_south_east| +||weather_wind_south_west| +||weather_wind_west| +||weather_windy| diff --git a/docs/config/mouse.md b/docs/config/mouse.md index e7bcdf085..da86993eb 100644 --- a/docs/config/mouse.md +++ b/docs/config/mouse.md @@ -28,7 +28,11 @@ of that triple click, so for a triple click both `SelectTextAtMouseCursor="Line"` and `CompleteSelection` will be triggered in that order. -NOTE: In the action column, `act` is an alias to `wezterm.action` (to avoid repetition). +NOTE: In the action column, `act` is an alias to `wezterm.action` (to avoid repetition): + +```lua +local act = wezterm.action +``` | Event | Modifiers | Action | | --------- | --- | ------ | @@ -57,9 +61,7 @@ disable all of them with this configuration; if you chose to do this, you must explicitly register every binding. ```lua -return { - disable_default_mouse_bindings = true, -} +config.disable_default_mouse_bindings = true ``` ## Configuring Mouse Assignments @@ -71,34 +73,35 @@ You can define mouse actions using the `mouse_bindings` configuration section: ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -return { - mouse_bindings = { - -- Right click sends "woot" to the terminal - { - event = { Down = { streak = 1, button = 'Right' } }, - mods = 'NONE', - action = act.SendString 'woot', - }, - - -- Change the default click behavior so that it only selects - -- text and doesn't open hyperlinks - { - event = { Up = { streak = 1, button = 'Left' } }, - mods = 'NONE', - action = act.CompleteSelection 'ClipboardAndPrimarySelection', - }, - - -- and make CTRL-Click open hyperlinks - { - event = { Up = { streak = 1, button = 'Left' } }, - mods = 'CTRL', - action = act.OpenLinkAtMouseCursor, - }, - -- NOTE that binding only the 'Up' event can give unexpected behaviors. - -- Read more below on the gotcha of binding an 'Up' event only. +config.mouse_bindings = { + -- Right click sends "woot" to the terminal + { + event = { Down = { streak = 1, button = 'Right' } }, + mods = 'NONE', + action = act.SendString 'woot', }, + + -- Change the default click behavior so that it only selects + -- text and doesn't open hyperlinks + { + event = { Up = { streak = 1, button = 'Left' } }, + mods = 'NONE', + action = act.CompleteSelection 'ClipboardAndPrimarySelection', + }, + + -- and make CTRL-Click open hyperlinks + { + event = { Up = { streak = 1, button = 'Left' } }, + mods = 'CTRL', + action = act.OpenLinkAtMouseCursor, + }, + -- NOTE that binding only the 'Up' event can give unexpected behaviors. + -- Read more below on the gotcha of binding an 'Up' event only. } + +return config ``` Each entry in the mouse binding table can have the following fields: @@ -160,24 +163,25 @@ delta scroll value while handling the event. ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -return { - mouse_bindings = { - -- Scrolling up while holding CTRL increases the font size - { - event = { Down = { streak = 1, button = { WheelUp = 1 } } }, - mods = 'CTRL', - action = act.IncreaseFontSize, - }, +config.mouse_bindings = { + -- Scrolling up while holding CTRL increases the font size + { + event = { Down = { streak = 1, button = { WheelUp = 1 } } }, + mods = 'CTRL', + action = act.IncreaseFontSize, + }, - -- Scrolling down while holding CTRL decreases the font size - { - event = { Down = { streak = 1, button = { WheelDown = 1 } } }, - mods = 'CTRL', - action = act.DecreaseFontSize, - }, + -- Scrolling down while holding CTRL decreases the font size + { + event = { Down = { streak = 1, button = { WheelDown = 1 } } }, + mods = 'CTRL', + action = act.DecreaseFontSize, }, } + +return config ``` @@ -194,23 +198,23 @@ be sent to the running program), for example: ```lua local wezterm = require 'wezterm' local act = wezterm.action +local config = {} -return { - mouse_bindings = { - -- Bind 'Up' event of CTRL-Click to open hyperlinks - { - event = { Up = { streak = 1, button = 'Left' } }, - mods = 'CTRL', - action = act.OpenLinkAtMouseCursor, - }, - -- Disable the 'Down' event of CTRL-Click to avoid weird program behaviors - { - event = { Down = { streak = 1, button = 'Left' } }, - mods = 'CTRL', - action = act.Nop, - }, +config.mouse_bindings = { + -- Bind 'Up' event of CTRL-Click to open hyperlinks + { + event = { Up = { streak = 1, button = 'Left' } }, + mods = 'CTRL', + action = act.OpenLinkAtMouseCursor, + }, + -- Disable the 'Down' event of CTRL-Click to avoid weird program behaviors + { + event = { Down = { streak = 1, button = 'Left' } }, + mods = 'CTRL', + action = act.Nop, }, } +return config ``` diff --git a/docs/style.css b/docs/style.css index 35c329ace..37f207626 100644 --- a/docs/style.css +++ b/docs/style.css @@ -13,7 +13,7 @@ font-style: normal; } -.nf { +.nerdfont { font-family: "Symbols Nerd Font Mono"; speak: none; line-height: 1; diff --git a/termwiz/examples/gennerdfonts.rs b/termwiz/examples/gennerdfonts.rs index 9f2c8b968..d09474c63 100644 --- a/termwiz/examples/gennerdfonts.rs +++ b/termwiz/examples/gennerdfonts.rs @@ -5,7 +5,7 @@ fn main() { println!("|-|-|"); for &(label, c) in termwiz::nerdfonts::NERD_FONT_GLYPHS { println!( - "|&#x{:x};|{}|", + "|&#x{:x};|{}|", c as u32, label ); }