{"id":3185,"date":"2023-09-14T08:38:44","date_gmt":"2023-09-14T03:08:44","guid":{"rendered":"https:\/\/smarttech101.com\/?p=3185"},"modified":"2023-09-14T08:42:19","modified_gmt":"2023-09-14T03:12:19","slug":"how-bind-shortcut-keys-to-commands-in-i3","status":"publish","type":"post","link":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/","title":{"rendered":"How to Bind Shortcut Keys to Commands in i3"},"content":{"rendered":"\n<p>If you&#8217;re a Linux enthusiast, you probably enjoy customizing your system to work exactly the way you want it to. One way to enhance your Linux experience is by binding commands or scripts to shortcut keys. If you have read my articles on <a href=\"https:\/\/smarttech101.com\/how-to-send-notifications-in-linux-using-dunstify-notify-send\/#Closing_notifications_using_shortcuts\" target=\"_blank\" rel=\"noreferrer noopener\">dunst\/notify-send<\/a> and <a href=\"https:\/\/smarttech101.com\/how-change-brightness-on-a-linux-laptop\/\" target=\"_blank\" rel=\"noreferrer noopener\">changing brightness on a Linux laptop<\/a>, you might remember that I talked about binding commands\/scripts to shortcut keys. In this article, I will delve deeper into how to do it.<\/p>\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_69_1 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#How_to_Find_Standard_Names_of_Keys_on_Your_Keyboard\" title=\"How to Find Standard Names of Keys on Your Keyboard\">How to Find Standard Names of Keys on Your Keyboard<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#Method_1_Using_Xmodmap\" title=\"Method 1: Using Xmodmap\">Method 1: Using Xmodmap<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#Method_2_Using_Xev\" title=\"Method 2: Using Xev\">Method 2: Using Xev<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#Other_Standard_Keys\" title=\"Other Standard Keys\">Other Standard Keys<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#Bind_Keys_in_i3\" title=\"Bind Keys in i3\">Bind Keys in i3<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#Bind_Using_Keysyms_in_i3\" title=\"Bind Using Keysyms in i3\">Bind Using Keysyms in i3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#Bind_Using_Keycodes_in_i3\" title=\"Bind Using Keycodes in i3\">Bind Using Keycodes in i3<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#Bind_Using_Binding_Modes_in_i3\" title=\"Bind Using Binding Modes in i3\">Bind Using Binding Modes in i3<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#Conclusion\" title=\"Conclusion\">Conclusion<\/a><\/li><\/ul><\/nav><\/div>\n\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"How_to_Find_Standard_Names_of_Keys_on_Your_Keyboard\"><\/span>How to Find Standard Names of Keys on Your Keyboard<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Before we dive into the process of binding keys in i3, it&#8217;s essential to understand how Linux recognizes keys. Linux uses standard names for keys, which can vary depending on your keyboard layout and configuration. Here are two methods to discover these key names:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Method_1_Using_Xmodmap\"><\/span>Method 1: Using Xmodmap<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Xmodmap is a utility that allows you to view and modify key mappings on your system. To install it on your system, use the following command based on your Linux distribution:<\/p>\n\n\n\n<p><strong>Debian\/Ubuntu\/Raspbian\/Kali Linux:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apt-get install x11-xserver-utils<\/code><\/pre>\n\n\n\n<p><strong>Arch Linux\/Manjaro:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>pacman -S xorg-xmodmap<\/code><\/pre>\n\n\n\n<p><strong>CentOS:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>yum install xorg-xmodmap<\/code><\/pre>\n\n\n\n<p><strong>Fedora:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>dnf install xorg-xmodmap<\/code><\/pre>\n\n\n\n<p>Once installed, you can use the following command to list modifier keys (Modifier keys are keys that are pressed in conjunction with other keys. For example, Shift, Control, Windows, Alt, etc.):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;ajay@legion ~]$ xmodmap -pm<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"293\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/xmodmap_to_print_modifier_keys-1.png?resize=874%2C293&#038;ssl=1\" alt=\" xmodmap to print modifier keys\" class=\"wp-image-3157\" srcset=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/xmodmap_to_print_modifier_keys-1.png?w=874&amp;ssl=1 874w, https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/xmodmap_to_print_modifier_keys-1.png?resize=768%2C257&amp;ssl=1 768w\" sizes=\"(max-width: 874px) 100vw, 874px\" \/><figcaption class=\"wp-element-caption\">Figure 1: xmodmap to print modifier keys<\/figcaption><\/figure>\n\n\n\n<p>This command will display a list of modifier keys like <code>Super_L<\/code> for the left Windows key and <code>Alt_L<\/code> for the left Alt key. You can use these key names when binding commands in i3.<\/p>\n\n\n\n<p>To find the names of other keys, such as alphanumeric keys, use the command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;ajay@legion ~]$ xmodmap -pke<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"767\" height=\"162\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/use_xmodmap_to_print_keys.png-w.png?resize=767%2C162&#038;ssl=1\" alt=\"\" class=\"wp-image-3197\"\/><figcaption class=\"wp-element-caption\">figure 2: use xmodmap to print key names; use <a href=\"https:\/\/smarttech101.com\/grep-command-in-linux\/\" target=\"_blank\" rel=\"noreferrer noopener\">grep to filter <\/a>it<\/figcaption><\/figure>\n\n\n\n<p>In the output, keycodes are represented by numbers, and keysyms are the associated key names.<\/p>\n\n\n\n<p>For more details on how to remap keys using Xmodmap, refer to our <a href=\"https:\/\/smarttech101.com\/xmodmap-remap-any-key-using-xmodmap\/\" target=\"_blank\" rel=\"noreferrer noopener\">Xmodmap article<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Method_2_Using_Xev\"><\/span>Method 2: Using Xev<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Another method to discover key names is by using the <code>xev<\/code> utility. Install it if you haven&#8217;t already, and then run the following command:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#091;ajay@legion ~]$ xev<\/code><\/pre>\n\n\n\n<p>With <code>xev<\/code> running, press any key on your keyboard, and it will display the name of the key as you press it.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"564\" height=\"212\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/using_xev_to_print_key_name-1.png-w-1.png?resize=564%2C212&#038;ssl=1\" alt=\"use xev to print key names\" class=\"wp-image-3187\"\/><figcaption class=\"wp-element-caption\">figure 3: use <code>xev<\/code> to print key names<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Other_Standard_Keys\"><\/span>Other Standard Keys<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>While Xev can help identify most keys, it may not recognize some special function keys like brightness controls. Here are some standard keys that might be useful for custom bindings:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>XF86Display<\/code>: the monitor button<\/li>\n\n\n\n<li><code>XF86WLAN<\/code>: WLAN toggle button<\/li>\n\n\n\n<li><code>XF86TouchpadToggle<\/code>: touchpad on-off toggle button<\/li>\n\n\n\n<li><code>XF86AudioMute<\/code>: audio mute button<\/li>\n\n\n\n<li><code>XF86AudioLowerVolume<\/code>: volume down button<\/li>\n\n\n\n<li><code>XF86AudioRaiseVolume<\/code>: Volume up button<\/li>\n\n\n\n<li><code>XF86MonBrightnessDown<\/code>: brightness down button<\/li>\n<\/ul>\n\n\n\n<p><a href=\"https:\/\/wiki.linuxquestions.org\/wiki\/XF86_keyboard_symbols\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">For a comprehensive list of XF86* keys, refer to this LinuxQuestions page<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"728\" height=\"546\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/laptop_keyboard.jpg?resize=728%2C546&#038;ssl=1\" alt=\"the top row keyboards like brightness control might not be recognised by xev.\" class=\"wp-image-3193\"\/><figcaption class=\"wp-element-caption\">Figure 4: the top row keyboards like brightness control might not be recognised by xev.<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bind_Keys_in_i3\"><\/span>Bind Keys in i3<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Keys in i3 are bound by appending them in i3&#8217;s configuration files <code>~\/home\/ajay\/.config\/i3\/config<\/code><\/p>\n\n\n\n<p>In i3, you can bind keys using both keycodes and keysyms. Here&#8217;s how you can use them.<\/p>\n\n\n\n<p><strong>\ud83d\udca1Recommendation:<\/strong> If you <strong>frequently switch between keyboard layouts<\/strong> (e.g., US, RU) but prefer to maintain consistent key bindings in their physical positions on the keyboard, <strong>consider using keycode<\/strong>s. However, if you don&#8217;t frequently switch layouts and prefer a<strong> more readable configuration file, opt for keysyms.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bind_Using_Keysyms_in_i3\"><\/span>Bind Using Keysyms in i3<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>To bind keys using keysyms in i3, use the following syntax:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bindsym &#091;--release] &#091;&lt;Group&gt;+]&#091;&lt;Modifiers&gt;+]&lt;keysym&gt; command<\/code><\/pre>\n\n\n\n<p>The items in square brackets are optional.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>--release<\/code>: Some commands may <strong>only work when the shortcut keys are released<\/strong>. Use this option if needed. Examples of such commands in my case include the screenshot tool <code>imagemagick's<\/code>import`. Use it if your command does not work without it.<\/li>\n\n\n\n<li><code>[&lt;Group&gt;+]<\/code>: You can specify groups as well (Group1, Group2, Group3, Group4) for different keyboard layouts. This way i3 will make sure that these keybindings will be active only in a certain layout. If you omit this, the shortcut keybinding will be active for all layouts. To learn more, read the official i3 documentation.<\/li>\n\n\n\n<li><code>[&lt;Modifiers&gt;+]<\/code>: Available modifiers include Mod1-Mod5, Shift, and Control.<\/li>\n\n\n\n<li><code>&lt;keysym&gt;<\/code>: The key name, such as &#8216;a&#8217; or &#8216;b&#8217;.<\/li>\n\n\n\n<li><code>command<\/code>: For example, <code>exec ...<\/code> or <code>gaps inner current plus 1<\/code> in the i3 tiling window manager. I will talk more about this in my other article. Just know that for your script, it would be \u2026<\/li>\n<\/ul>\n\n\n\n<p>For example, the following <a href=\"https:\/\/smarttech101.com\/how-change-brightness-on-a-linux-laptop\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">binds the brightness key in my laptop&#8217;s i3<\/a>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bindsym XF86MonBrightnessUp exec brightness.sh -bu<\/code><\/pre>\n\n\n\n<p>In the above example, <code>exec brightness.sh -bu<\/code> is the command (actually, my script is <code>brightness.sh -bu<\/code>, <code>exec<\/code> is i3&#8217;s tool which runs any script).<\/p>\n\n\n\n<p>The <code>XF86MonBrightnessUp<\/code> is the brightness up key.<\/p>\n\n\n\n<p>Other Examples:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bindsym Mod4+w exec floating_terminal.sh -b \"window_switch.sh\"\nbindsym Mod4+Tab workspace next\nbindsym Mod4+shift+d exec floating_terminal.sh -h 35 -w 130 -b \"launcher.sh -b\"<\/code><\/pre>\n\n\n\n<p>Notice the key combo Mod4+shift+d, Mod4+Tab, Mod4+w.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bind_Using_Keycodes_in_i3\"><\/span>Bind Using Keycodes in i3<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Everything is the same except you need to replace <code>bindsym<\/code> with <code>bindcode<\/code>. Use the keycode instead of keysym.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>bindcode Mod4+42 gaps inner current plus 1<\/code><\/pre>\n\n\n\n<p>In this example, 42 is the keycode corresponding to &#8216;g&#8217;.<\/p>\n\n\n\n<p>The <code>gaps inner current plus 1<\/code> is the command.<\/p>\n\n\n\n<p>The shortcut keys are <code>Mod4+42<\/code>, i.e., Super_L + g.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Bind_Using_Binding_Modes_in_i3\"><\/span>Bind Using Binding Modes in i3<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Binding modes are a handy feature, especially when you find yourself <strong>running out of available keys on your keyboard<\/strong>. These modes serve as a <strong>helpful reminder of which key you need to press, <\/strong>simplifying your navigation and workflow.<\/p>\n\n\n\n<p><strong>Syntax<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mode &lt;name&gt; {\n    &lt;keybinding1&gt;\n    &lt;keybinding2&gt;\n    &lt;keybinding3&gt;\n    ...\n\n    bindsym Escape mode \"default\"\n    bindsym Return mode \"default\"\n}\nbindsym Mod4+p mode &lt;name&gt;<\/code><\/pre>\n\n\n\n<p><strong>Example<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mode program {\n    bindsym b exec qbittorrent, mode \"default\", workspace $ws8\n    bindsym f exec firefox, mode \"default\", workspace $ws2\n\n    bindsym Escape mode \"default\"\n    bindsym Return mode \"default\"\n}\n\nbindsym Mod4+p mode program<\/code><\/pre>\n\n\n\n<p>A slightly more complex example would be:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Launcher\nset $mode_launcher Launch: \\\n&#091;w]mfocus \\\n&#091;g]oogle \\\nq&#091;b]ittorrent \\\n&#091;r]anger \\\n&#091;p]cmanfm \\\n&#091;n]ewsboat\n\nmode \"$mode_launcher\" {\n    bindsym w exec wmfocus, mode \"default\"\n    bindsym g exec google-chrome-stable, mode \"default\", workspace $ws2\n    bindsym b exec qbittorrent, mode \"default\", workspace $ws8\n    bindsym r exec kitty -1 --name ranger ranger, mode \"default\", workspace $ws9\n    bindsym n exec kitty -1 --title newsboat --name newsboat newsboat, mode \"default\", workspace $ws7\n    bindsym p exec pcmanfm, mode \"default\", workspace $ws9\n\n    bindsym Escape mode \"default\"\n    bindsym Return mode \"default\"\n}\nbindsym Mod4+p mode \"$mode_launcher\"\n\n# DPI Change\nset $mode_dpi Scale: 1. 100%, 2. 110%, 3. 120%, 4. 130%. Kill everything and log out.\nmode \"$mode_dpi\" {\n    bindsym 1 exec echo \"Xft.dpi: 96\" &gt; ~\/.Xresources.d\/dpi.Xresources, mode \"default\"\n    bindsym 2 exec echo \"Xft.dpi: 106\" &gt; ~\/.Xresources.d\/dpi.Xresources, mode \"default\"\n    bindsym 3 exec echo \"Xft.dpi: 115\" &gt; ~\/.Xresources.d\/dpi.Xresources, mode \"default\"\n    bindsym 4 exec echo \"Xft.dpi: 125\" &gt; ~\/.Xresources.d\/dpi.Xresources, mode \"default\"\n\n    bindsym Return mode \"default\"\n    bindsym Escape mode \"default\"\n}\nbindsym Mod4+r mode \"$mode_dpi\"\n\n# Power Button Mode\nset $mode_system System: (k)ill all, (l)ock, log(o)ut, (r)eboot, (s)uspend, shut(d)own (w)indows\nmode \"$mode_system\" {\n    bindsym k exec power_menu.sh -k, mode \"default\"\n    bindsym l exec power_menu.sh -l, mode \"default\"\n    bindsym o exec power_menu.sh -o, mode \"default\"\n    bindsym s exec power_menu.sh -s, mode \"default\"\n    bindsym r exec power_menu.sh -r, mode \"default\" \n    bindsym d exec power_menu.sh -S, mode \"default\" \n    bindsym w exec power_menu.sh -w, mode \"default\" \n\n    bindsym Return mode \"default\"\n    bindsym Escape mode \"default\"\n}\nbindsym Mod4+Escape mode \"$mode_system\"<\/code><\/pre>\n\n\n\n<p><strong>\ud83d\udcd4 Please note that in the above example:<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>set $mode_launcher &lt;any_text&gt;<\/code> in i3 is used to define a string variable <code>mode_launcher<\/code> with its value being the <code>any_text<\/code>. Now, you can use the variable to refer to the text. It is more convenient to use this instead of whole text again and again.<\/li>\n\n\n\n<li>The name is each mode is created intellegently to <strong>remind you which key you need to press<\/strong>. I have put these keys into brackets.<\/li>\n\n\n\n<li>There are three modes defined &#8211; for launching programs, DPI change, and power modes. <strong>You can have as many modes as you want<\/strong>.<\/li>\n\n\n\n<li>To use it, press a shortcut key corresponding to its mode (Mod4+p or Mod4+r or Mod4+Escape). It will show the corresponding mode in your computer screen (figure 5).<\/li>\n\n\n\n<li><strong>Bindings for <code>Return<\/code> and <code>Escape<\/code> buttons are necessary<\/strong>. When you press Return\/Escape directly without pressing any key in a mode, you will exit the mode, and nothing will happen.<\/li>\n\n\n\n<li>Now, press the key hinted in the brackets. For example, pressing Mod+p and then g opens Google Chrome, and if you press Escape in the mode, nothing will be opened.<\/li>\n\n\n\n<li>The bachslash, like any other programming language\/configuration, is for continuation of the previous line.<\/li>\n\n\n\n<li><code>mode \"default\"<\/code> ensures that after launching the programme or running the command, the bindings modes are removed from your screen. That&#8217;s why they are bound to Escape, Return and other keys.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"779\" height=\"54\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/binding_modes_in_i3.png?resize=779%2C54&#038;ssl=1\" alt=\"binding modes in i3\" class=\"wp-image-3190\" srcset=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/binding_modes_in_i3.png?w=779&amp;ssl=1 779w, https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/binding_modes_in_i3.png?resize=768%2C53&amp;ssl=1 768w\" sizes=\"(max-width: 779px) 100vw, 779px\" \/><figcaption class=\"wp-element-caption\">figure 5: binding modes in i3; I have cropped the image because it is too big to fit in this window.<\/figcaption><\/figure>\n\n\n\n<p><strong>You can also use Pango markup<\/strong> to beautify these modes. Use the flag <code>--pango_markup<\/code> as shown below:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>set $mode_launcher Launch: \\\n&lt;b&gt;w&lt;\/b&gt;mfocus \\\n&lt;b&gt;g&lt;\/b&gt;oogle \\\nq&lt;b&gt;b&lt;\/b&gt;ittorrent \\\n&lt;b&gt;r&lt;\/b&gt;anger \\\n&lt;b&gt;p&lt;\/b&gt;cmanfm \\\n&lt;b&gt;n&lt;\/b&gt;ewsboat \\\n&lt;b&gt;i&lt;\/b&gt;3_keys\n\nmode --pango_markup \"$mode_launcher\" {\n    bindsym w exec wmfocus, mode \"default\"\n    bindsym g exec google-chrome-stable, mode \"default\", workspace $ws2\n    bindsym b exec qbittorrent, mode \"default\", workspace $ws8\n    bindsym r exec kitty -1 --name ranger ranger, mode \"default\", workspace $ws9\n    bindsym p exec pcmanfm, mode \"default\", workspace $ws9\n    bindsym n exec kitty -1 --title newsboat --name newsboat newsboat, mode \"default\", workspace $ws7\n\n    bindsym Escape mode \"default\"\n    bindsym Return mode \"default\"\n}\nbindsym Mod4+p mode \"$mode_launcher\"<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"956\" height=\"56\" src=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/binding_modes_with_pango_markup_to_bolden_in_i3.png?resize=956%2C56&#038;ssl=1\" alt=\"binding modes with pango markup in i3\" class=\"wp-image-3192\" srcset=\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/binding_modes_with_pango_markup_to_bolden_in_i3.png?w=956&amp;ssl=1 956w, https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/binding_modes_with_pango_markup_to_bolden_in_i3.png?resize=768%2C45&amp;ssl=1 768w\" sizes=\"(max-width: 956px) 100vw, 956px\" \/><figcaption class=\"wp-element-caption\">figure 6: binding modes with pango markup in i3; I have cropped the image because it is too big to fit in this window.<\/figcaption><\/figure>\n\n\n\n<p>In the above examples, the characters <code>w<\/code>, <code>g<\/code>, <code>p<\/code>, <code>r<\/code>, <code>n<\/code> will be bolded instead of bracketed. <a href=\"https:\/\/docs.gtk.org\/Pango\/pango_markup.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">To learn about underscores, superscript, strikethrough, and other Pango markup, look over here<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Customizing your Linux system with shortcut keybindings can greatly improve your workflow and productivity. Whether you prefer using keysyms or keycodes, i3 provides a flexible environment to set up your custom shortcuts. And binding modes are something which I like the most. That&#8217;s all, folks. Thanks. If you have any questions or suggestions, please ask them in the comment section below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn to bind keys effectively in i3, the Linux tiling window manager, and elevate your productivity through custom shortcuts. Unlock the magic of binding modes in i3, which not only lets you create custom shortcuts but also helps you remember the keys you need to press, especially when you&#8217;ve run out of keys on your keyboard. Elevate your productivity today.<\/p>\n","protected":false},"author":2,"featured_media":3195,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[62],"tags":[61],"class_list":["post-3185","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-i3","tag-i3"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Bind Shortcut Keys to Commands in i3 | SmartTech101<\/title>\n<meta name=\"description\" content=\"Discover how to bind in i3: Customize Linux with shortcut keys. Enhance your productivity with custom keybindings in i3 window manager.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Bind Shortcut Keys to Commands in i3 | SmartTech101\" \/>\n<meta property=\"og:description\" content=\"Discover how to bind in i3: Customize Linux with shortcut keys. Enhance your productivity with custom keybindings in i3 window manager.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/\" \/>\n<meta property=\"og:site_name\" content=\"SmartTech101\" \/>\n<meta property=\"article:published_time\" content=\"2023-09-14T03:08:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-09-14T03:12:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/smarttech101.com\/wp-content\/uploads\/2023\/09\/How-to-Bind-Shortcut-Keys-to-Commands-in-i3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1280\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Ajay\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ajay_yadav\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ajay\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/\"},\"author\":{\"name\":\"Ajay\",\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/2edfee738a82f9c963210f8cdb438334\"},\"headline\":\"How to Bind Shortcut Keys to Commands in i3\",\"datePublished\":\"2023-09-14T03:08:44+00:00\",\"dateModified\":\"2023-09-14T03:12:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/\"},\"wordCount\":1207,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633\"},\"image\":{\"@id\":\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/How-to-Bind-Shortcut-Keys-to-Commands-in-i3.png?fit=1280%2C720&ssl=1\",\"keywords\":[\"i3\"],\"articleSection\":[\"i3\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/\",\"url\":\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/\",\"name\":\"How to Bind Shortcut Keys to Commands in i3 | SmartTech101\",\"isPartOf\":{\"@id\":\"https:\/\/smarttech101.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/How-to-Bind-Shortcut-Keys-to-Commands-in-i3.png?fit=1280%2C720&ssl=1\",\"datePublished\":\"2023-09-14T03:08:44+00:00\",\"dateModified\":\"2023-09-14T03:12:19+00:00\",\"description\":\"Discover how to bind in i3: Customize Linux with shortcut keys. Enhance your productivity with custom keybindings in i3 window manager.\",\"breadcrumb\":{\"@id\":\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#primaryimage\",\"url\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/How-to-Bind-Shortcut-Keys-to-Commands-in-i3.png?fit=1280%2C720&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/How-to-Bind-Shortcut-Keys-to-Commands-in-i3.png?fit=1280%2C720&ssl=1\",\"width\":1280,\"height\":720,\"caption\":\"How to Bind Shortcut Keys to Commands in i3\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/smarttech101.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Bind Shortcut Keys to Commands in i3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/smarttech101.com\/#website\",\"url\":\"https:\/\/smarttech101.com\/\",\"name\":\"SmartTech101\",\"description\":\"Do Everything in Linux\",\"publisher\":{\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/smarttech101.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633\",\"name\":\"Ajay Yadav\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2022\/09\/cropped-ST101_logo.png?fit=180%2C60&ssl=1\",\"contentUrl\":\"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2022\/09\/cropped-ST101_logo.png?fit=180%2C60&ssl=1\",\"width\":180,\"height\":60,\"caption\":\"Ajay Yadav\"},\"logo\":{\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/2edfee738a82f9c963210f8cdb438334\",\"name\":\"Ajay\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/smarttech101.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6eea348caae2173954765a7cdf6cd107?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6eea348caae2173954765a7cdf6cd107?s=96&d=mm&r=g\",\"caption\":\"Ajay\"},\"sameAs\":[\"https:\/\/x.com\/ajay_yadav\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Bind Shortcut Keys to Commands in i3 | SmartTech101","description":"Discover how to bind in i3: Customize Linux with shortcut keys. Enhance your productivity with custom keybindings in i3 window manager.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/","og_locale":"en_US","og_type":"article","og_title":"How to Bind Shortcut Keys to Commands in i3 | SmartTech101","og_description":"Discover how to bind in i3: Customize Linux with shortcut keys. Enhance your productivity with custom keybindings in i3 window manager.","og_url":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/","og_site_name":"SmartTech101","article_published_time":"2023-09-14T03:08:44+00:00","article_modified_time":"2023-09-14T03:12:19+00:00","og_image":[{"width":1280,"height":720,"url":"https:\/\/smarttech101.com\/wp-content\/uploads\/2023\/09\/How-to-Bind-Shortcut-Keys-to-Commands-in-i3.png","type":"image\/png"}],"author":"Ajay","twitter_card":"summary_large_image","twitter_creator":"@ajay_yadav","twitter_misc":{"Written by":"Ajay","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#article","isPartOf":{"@id":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/"},"author":{"name":"Ajay","@id":"https:\/\/smarttech101.com\/#\/schema\/person\/2edfee738a82f9c963210f8cdb438334"},"headline":"How to Bind Shortcut Keys to Commands in i3","datePublished":"2023-09-14T03:08:44+00:00","dateModified":"2023-09-14T03:12:19+00:00","mainEntityOfPage":{"@id":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/"},"wordCount":1207,"commentCount":0,"publisher":{"@id":"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633"},"image":{"@id":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/How-to-Bind-Shortcut-Keys-to-Commands-in-i3.png?fit=1280%2C720&ssl=1","keywords":["i3"],"articleSection":["i3"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/","url":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/","name":"How to Bind Shortcut Keys to Commands in i3 | SmartTech101","isPartOf":{"@id":"https:\/\/smarttech101.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#primaryimage"},"image":{"@id":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/How-to-Bind-Shortcut-Keys-to-Commands-in-i3.png?fit=1280%2C720&ssl=1","datePublished":"2023-09-14T03:08:44+00:00","dateModified":"2023-09-14T03:12:19+00:00","description":"Discover how to bind in i3: Customize Linux with shortcut keys. Enhance your productivity with custom keybindings in i3 window manager.","breadcrumb":{"@id":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#primaryimage","url":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/How-to-Bind-Shortcut-Keys-to-Commands-in-i3.png?fit=1280%2C720&ssl=1","contentUrl":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/How-to-Bind-Shortcut-Keys-to-Commands-in-i3.png?fit=1280%2C720&ssl=1","width":1280,"height":720,"caption":"How to Bind Shortcut Keys to Commands in i3"},{"@type":"BreadcrumbList","@id":"https:\/\/smarttech101.com\/how-bind-shortcut-keys-to-commands-in-i3\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/smarttech101.com\/"},{"@type":"ListItem","position":2,"name":"How to Bind Shortcut Keys to Commands in i3"}]},{"@type":"WebSite","@id":"https:\/\/smarttech101.com\/#website","url":"https:\/\/smarttech101.com\/","name":"SmartTech101","description":"Do Everything in Linux","publisher":{"@id":"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/smarttech101.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/smarttech101.com\/#\/schema\/person\/e8d5aebc510d698e11e9df6291381633","name":"Ajay Yadav","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/smarttech101.com\/#\/schema\/person\/image\/","url":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2022\/09\/cropped-ST101_logo.png?fit=180%2C60&ssl=1","contentUrl":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2022\/09\/cropped-ST101_logo.png?fit=180%2C60&ssl=1","width":180,"height":60,"caption":"Ajay Yadav"},"logo":{"@id":"https:\/\/smarttech101.com\/#\/schema\/person\/image\/"}},{"@type":"Person","@id":"https:\/\/smarttech101.com\/#\/schema\/person\/2edfee738a82f9c963210f8cdb438334","name":"Ajay","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/smarttech101.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6eea348caae2173954765a7cdf6cd107?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6eea348caae2173954765a7cdf6cd107?s=96&d=mm&r=g","caption":"Ajay"},"sameAs":["https:\/\/x.com\/ajay_yadav"]}]}},"jetpack_featured_media_url":"https:\/\/i0.wp.com\/smarttech101.com\/wp-content\/uploads\/2023\/09\/How-to-Bind-Shortcut-Keys-to-Commands-in-i3.png?fit=1280%2C720&ssl=1","_links":{"self":[{"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/posts\/3185"}],"collection":[{"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/comments?post=3185"}],"version-history":[{"count":5,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/posts\/3185\/revisions"}],"predecessor-version":[{"id":3215,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/posts\/3185\/revisions\/3215"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/media\/3195"}],"wp:attachment":[{"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/media?parent=3185"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/categories?post=3185"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/smarttech101.com\/wp-json\/wp\/v2\/tags?post=3185"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}