<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:fh="http://purl.org/syndication/history/1.0">
  <title>Posts tagged: tmux Archive</title>
  <id>https://go.waylonwalker.com/tags/tmux/archive/atom.xml</id>
  <updated>2022-12-04T13:25:54Z</updated>
  <subtitle>All posts with the tag &#34;tmux&#34;</subtitle>
  <link href="https://go.waylonwalker.com/tags/tmux/" rel="alternate" type="text/html"></link>
  <link href="https://go.waylonwalker.com/tags/tmux/archive/atom.xml" rel="self" type="application/atom+xml"></link>
  <link href="https://go.waylonwalker.com/tags/tmux/atom.xml" rel="current" type="application/atom+xml"></link>
  <author>
    <name>Waylon Walker</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <fh:complete></fh:complete>
  <entry>
    <title>tmux push/pull panes</title>
    <id>https://go.waylonwalker.com/tmux-push-pull-panes/</id>
    <updated>2022-12-04T13:25:54Z</updated>
    <published>2022-12-04T13:25:54Z</published>
    <link href="https://go.waylonwalker.com/tmux-push-pull-panes/" rel="alternate" type="text/html"></link>
    <summary type="text">Moving panes between tmux sessions is something that makes tmux a very flexible and powerful tool. I don&#39;t need this feature very often, but it comes in...</summary>
    <content type="html">&lt;p&gt;Moving panes between tmux sessions is something that makes tmux a very flexible&#xA;and powerful tool.  I don’t need this feature very often, but it comes in&#xA;clutch when you need it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;pull-a-pane-from-any-other-session&#34;&gt;Pull a pane from any other session &lt;a href=&#34;#pull-a-pane-from-any-other-session&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Using &lt;code&gt;choose-window&lt;/code&gt; I was able to come up with a way to select any pane&#xA;withing any other session and join it into my current session.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Choose a pane to join in horizontally&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; f choose-window -Z &lt;span class=&#34;s1&#34;&gt;&amp;#39;join-pane -h -s &amp;#34;%%&amp;#34;&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;pushpull-from-scratch&#34;&gt;Push/Pull from scratch &lt;a href=&#34;#pushpull-from-scratch&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I’ve long had this one in my tmux config, I always have a “scratch” session&#xA;that I’m running, I often use for looking at things like &lt;code&gt;k9s&lt;/code&gt; accross repos&#xA;within a popup.&lt;/p&gt;&#xA;&lt;p&gt;This use case puts a pane into the scratch session, then pulls it back out.  I&#xA;will use this to move a pane between sessions in the rare cases I need to do&#xA;this.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# push the active pane into the scratch session horizonally&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-f join-pane -ht scratch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# pull the last active pane from the scratch session horizonally into this session&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-F join-pane -hs scratch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>How I Present Markdown Slides from the Terminal</title>
    <id>https://go.waylonwalker.com/lookatme-slides/</id>
    <updated>2022-03-21T16:13:39Z</updated>
    <published>2022-03-21T16:13:39Z</published>
    <link href="https://go.waylonwalker.com/lookatme-slides/" rel="alternate" type="text/html"></link>
    <summary type="text">I love the freedom of writing in markdown. It allows me to write content from the comfort of my editor with very little focus on page style. It turns out...</summary>
    <content type="html">&lt;p&gt;I love the freedom of writing in markdown.  It allows me to write content from&#xA;the comfort of my editor with very little focus on page style.  It turns out&#xA;that markdown is also a fantastic tool for creating slides.&lt;/p&gt;&#xA;&lt;h2 id=&#34;present-from-the-terminal&#34;&gt;Present from the terminal &lt;a href=&#34;#present-from-the-terminal&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I will most often just present right from the terminal using&#xA;&lt;a href=&#34;https://lookatme.readthedocs.io/en/latest/index.html&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/lookatme.readthedocs.io.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/lookatme.readthedocs.io.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;lookatme&lt;/a&gt;.  Presenting&#xA;from the terminal lets me see the results quick right from where I am editing.&#xA;It also allows me to pop into other terminal applications quickly.&lt;/p&gt;&#xA;&lt;h2 id=&#34;revealjs&#34;&gt;reveal.js &lt;a href=&#34;#revealjs&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I sometimes also use reveal.js, but that’s for another post.  It is handy that&#xA;it lives in the browser and is easier to share.&lt;/p&gt;&#xA;&lt;h2 id=&#34;new-slides&#34;&gt;New Slides &lt;a href=&#34;#new-slides&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I leverage auto slides when I write my slides in markdown.  The largest&#xA;heading, usually an h2 for me, becomes the new slide marker.  Otherwise my&#xA;process is not much different, It just becomes a shorter writing style.&lt;/p&gt;&#xA;&lt;h2 id=&#34;installation&#34;&gt;Installation &lt;a href=&#34;#installation&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;lookatme is a python library that is available on pypi, you can install it with&#xA;the pip command.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;python -m pip install lookatme&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Since it’s a command line application it works great with pipx.  This prevents&#xA;the need to manage virtual environments yourself or ending up with packages&#xA;clashing in your system python environment.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;pipx install lookatme&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;from-my-terminal&#34;&gt;From my terminal &lt;a href=&#34;#from-my-terminal&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;lookatme &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;filepath&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I just run it with pipx.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pipx run &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt; --spec git+https://github.com/waylonwalker/lookatme &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt; lookatme &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;filepath&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt; &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt; --live-reload &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt; --style gruvbox-dark&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;Note, I use a custom fork of lookatme.  It’s schema validation did not like&#xA;the date format of my blog posts, so I have a one line fix built into my&#xA;fork that is pretty specific to me.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;from-neovim&#34;&gt;From Neovim &lt;a href=&#34;#from-neovim&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;most often what I do&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;From Neovim I use a plugin I created for sending out commands to tmux called&#xA;&lt;a href=&#34;https://github.com/WaylonWalker/Telegraph.nvim&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;telegraph&lt;/a&gt;.  This sends the&#xA;above command to a new session that I can bounce between quickly.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;nnoremap&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;leader&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;leader&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;s&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;cmd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;lua&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;require&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;telegraph&amp;#39;&lt;/span&gt;.&lt;span class=&#34;nx&#34;&gt;telegraph&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;{&lt;span class=&#34;nx&#34;&gt;cmd&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;pipx run --spec git+https://github.com/waylonwalker/lookatme lookatme {filepath} --live-reload --style gruvbox-dark&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;how&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;tmux&amp;#39;&lt;/span&gt;}&lt;span class=&#34;p&#34;&gt;)&amp;lt;&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;CR&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Open Files with Nvim Remote</title>
    <id>https://go.waylonwalker.com/nvr-open-files/</id>
    <updated>2022-03-06T16:22:49Z</updated>
    <published>2022-03-06T16:22:49Z</published>
    <link href="https://go.waylonwalker.com/nvr-open-files/" rel="alternate" type="text/html"></link>
    <summary type="text">I recently found a really great plugin by mhinz to open files in neovim from a different tmux split, without touching neovim at all.</summary>
    <content type="html">&lt;p&gt;I recently found a really great &lt;a href=&#34;https://github.com/mhinz/neovim-remote&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;plugin&lt;/a&gt; by&#xA;&lt;a href=&#34;https://github.com/mhinz&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;mhinz&lt;/a&gt; to open files in neovim from a&#xA;different tmux split, without touching neovim at all.&lt;/p&gt;&#xA;&lt;h2 id=&#34;installation&#34;&gt;Installation &lt;a href=&#34;#installation&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://github.com/mhinz/neovim-remote&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;neovim-remote&lt;/a&gt; is not a neovim&#xA;plugin at all, it’s a python cli that you can install with pip.  Unlike&#xA;the repo suggests, I use pipx to install &lt;code&gt;nvr&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pipx install neovim-remote&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;how-i-use-it&#34;&gt;How I use it &lt;a href=&#34;#how-i-use-it&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I have this added to my &lt;code&gt;.envrc&lt;/code&gt; that is in every one of my projects.&#xA;This will tie a neovim session to that directory, and all directories&#xA;under it.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;export&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;NVIM_LISTEN_ADDRESS&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/tmp/nvim-&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;basename &lt;span class=&#34;nv&#34;&gt;$PWD&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;In my workflow I open a tmux session for each project, so this&#xA;essentially ties a neovim session to a tmux session.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;open-neovim&#34;&gt;Open neovim &lt;a href=&#34;#open-neovim&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;First open neovim, but with the &lt;code&gt;nvr&lt;/code&gt; command.  This will open neovim,&#xA;and look pretty much the same as always.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvr&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you try to run &lt;code&gt;nvr&lt;/code&gt; again in another shell nothing will happen as&#xA;its already runnin under that address, but if you give it a filename it&#xA;will open the file in the first instance of neovim that you opened.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nvr readme.md&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;links&#34;&gt;Links &lt;a href=&#34;#links&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/mhinz/neovim-remote&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;GitHub&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Textual Popup Hack</title>
    <id>https://go.waylonwalker.com/textual-popup-hack/</id>
    <updated>2022-02-26T15:41:12Z</updated>
    <published>2022-02-26T15:41:12Z</published>
    <link href="https://go.waylonwalker.com/textual-popup-hack/" rel="alternate" type="text/html"></link>
    <summary type="text">As I am toying around with textual, I am wanting some popup user input to take over. Textual is still pretty new and likely to change quite significantly, so...</summary>
    <content type="html">&lt;p&gt;As I am toying around with textual, I am wanting some popup user input&#xA;to take over.  Textual is still pretty new and likely to change quite&#xA;significantly, so I don’t want to overdo the work I put into it, So for&#xA;now on my personal tuis I am going to shell out to tmux.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problem&#34;&gt;The Problem &lt;a href=&#34;#the-problem&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The main issue is that when you are in a textual app, it kinda owns the&#xA;input.  So if you try to run another python function that calls for&#xA;&lt;code&gt;input&lt;/code&gt; it just cant get there.  There is a&#xA;&lt;a href=&#34;https://github.com/sirfuzzalot/textual-inputs&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;textual-inputs&lt;/a&gt; library&#xA;that covers this, and it might work really well for some use cases, but&#xA;many of my use cases have been for things that are pre-built like&#xA;copier, and I am trying to throw something together quick.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;textual is still very beta&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Part of this comes down to the fact that textual is still very beta and&#xA;likely to change a lot, so all of the work I have done with it is for&#xA;quick and dirty, or fun side projects.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-solution&#34;&gt;The Solution &lt;a href=&#34;#the-solution&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;So the solution that was easiest for me… shell out to a tmux popup.&#xA;The application I am working on wants to create new documents using&#xA;copier templates.  copier has a fantastic cli that walks throught he&#xA;template variables and asks the user to fill them in, so I just shell&#xA;out to that with &lt;code&gt;Popen&lt;/code&gt;.  Make sure that you wait for this process to&#xA;finish otherwise there will be bit of jank in your textual app.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;async&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;def&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;action_new_post&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;bp&#34;&gt;self&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&amp;gt;&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;None&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;proc&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;subprocess&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;Popen&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;s1&#34;&gt;&amp;#39;tmux popup &amp;#34;copier copy plugins/todo-template tasks&amp;#34;&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;shell&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;kc&#34;&gt;True&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;proc&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;wait&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;example&#34;&gt;example &lt;a href=&#34;#example&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Here is what the running todo application looks like with the copier&#xA;popup over it.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/textual-popup-hack.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/textual-popup-hack.png&#34; alt=&#34;example of the popup running over textual&#34;/ data-glightbox=&#34;description: example of the popup running over textual&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tmux-popups/&#34; class=&#34;wikilink&#34; data-title=&#34;tmux popups&#34; data-description=&#34;https://youtu.be/2I8fB28zfB4&#34; data-date=&#34;2021-07-14&#34; data-preview=&#34;https://youtu.be/2I8fB28zfB4&#34;&gt;tmux popups&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;a bit more on tmux-popus [here] &lt;a href=&#34;https://waylonwalker.com/tmux-popups/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://waylonwalker.com/tmux-popups/&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;links&#34;&gt;Links &lt;a href=&#34;#links&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/Textualize/textual/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;textual repo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/sirfuzzalot/textual-inputs&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;textual-inputs repo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://waylonwalker.com/tmux-popups/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;my article on tmux popups&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>A better copy-mode bind for Tmux</title>
    <id>https://go.waylonwalker.com/tmux-copy-mode-binding/</id>
    <updated>2022-02-13T17:05:23Z</updated>
    <published>2022-02-13T17:05:23Z</published>
    <link href="https://go.waylonwalker.com/tmux-copy-mode-binding/" rel="alternate" type="text/html"></link>
    <summary type="text">The default keybinding for copy-mode is one that is just so awkward for me to hit that I end up not using it at all. I was on a call with my buddy Nic this...</summary>
    <content type="html">&lt;p&gt;The default keybinding for copy-mode &lt;code&gt;&amp;lt;prefix&amp;gt;-[&lt;/code&gt; is one that is just so&#xA;awkward for me to hit that I end up not using it at all.  I was on a&#xA;call with my buddy Nic this week and saw him just fluidly jump into&#xA;&lt;code&gt;copy-mode&lt;/code&gt; in an effortless fashion, so I had to ask him for his&#xA;keybinding and it just made sense. Enter, that’s it.  So I have addedt&#xA;his to my &lt;code&gt;~/.tmux.conf&lt;/code&gt; along with one for &lt;code&gt;alt-enter&lt;/code&gt; and have found&#xA;myself using it way more so far.&lt;/p&gt;&#xA;&lt;h2 id=&#34;setting-copy-mode-to-enter&#34;&gt;Setting copy-mode to enter &lt;a href=&#34;#setting-copy-mode-to-enter&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;To do this I just popped open my &lt;code&gt;~/.tmux.conf&lt;/code&gt; and added the following.&#xA;Now I can get to &lt;code&gt;copy-mode&lt;/code&gt; with &lt;code&gt;&amp;lt;prefix&amp;gt;-Enter&lt;/code&gt; which is &lt;code&gt;control-b Enter&lt;/code&gt;, or &lt;code&gt;alt-enter&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; Enter copy-mode&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-Enter copy-mode&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;more-on-copy-mode&#34;&gt;More on copy-mode &lt;a href=&#34;#more-on-copy-mode&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I have a full video on copy-mode you can find here.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tmux-copy-mode/&#34; class=&#34;wikilink&#34; data-title=&#34;tmux copy-mode&#34; data-description=&#34;https://youtu.be/-ypY_-VmBKk&#34; data-date=&#34;2021-07-28&#34; data-preview=&#34;https://youtu.be/-ypY_-VmBKk&#34;&gt;tmux copy-mode&lt;/a&gt;&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Tmux and Vim Clipboard for Ubuntu</title>
    <id>https://go.waylonwalker.com/ubuntu-terminal-clipboard/</id>
    <updated>2022-01-26T02:50:56Z</updated>
    <published>2022-01-26T02:50:56Z</published>
    <link href="https://go.waylonwalker.com/ubuntu-terminal-clipboard/" rel="alternate" type="text/html"></link>
    <summary type="text">One of the first things I noticed broken in my terminal based workflow moving from Windows wsl to ubuntu was that my clipboard was all messed up and not...</summary>
    <content type="html">&lt;p&gt;One of the first things I noticed broken in my terminal based workflow moving&#xA;from Windows wsl to ubuntu was that my clipboard was all messed up and not&#xA;working with my terminal apps.  Luckily setting tmux and neovim to work with&#xA;the system clipboard was much easier than it was on windows.&lt;/p&gt;&#xA;&lt;p&gt;First off you need to get &lt;code&gt;xclip&lt;/code&gt; if you don’t already have it provided by your&#xA;distro.  I found it in the apt repositories.  I have used it between Ubuntu&#xA;18.04 and 21.10 and they all work flawlessly for me.&lt;/p&gt;&#xA;&lt;p&gt;I have tmux setup to automatically copy any selection I make to the clipboard&#xA;by setting the following in my &lt;code&gt;~/.tmux.conf&lt;/code&gt;. While I have neovim open I need&#xA;to be in insert mode for this to pick up.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ~/tmux.conf&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel &lt;span class=&#34;s2&#34;&gt;&amp;#34;xclip -i -f -selection primary | xclip -i -selection clipboard&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel &lt;span class=&#34;s2&#34;&gt;&amp;#34;xclip -selection clipboard -i&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;To get my yanks to go to the system clipboard in neovim, I just added&#xA;unnamedplus to my existing clipboard variable.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# &lt;span class=&#34;p&#34;&gt;~&lt;/span&gt;&lt;span class=&#34;sr&#34;&gt;/.config/&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;nvim&lt;/span&gt;/&lt;span class=&#34;nx&#34;&gt;init&lt;/span&gt;.&lt;span class=&#34;nx&#34;&gt;vim&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;clipboard&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;+=&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;unnamedplus&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you need to copy something right from the terminal you can use xclip&#xA;directly.  I do this semi-often to send someone a message in chat.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat file.txt &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; clip -sel copy&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I set up some alias’s for doing this a bit more efficiently, but don’t find&#xA;myself using them very often.  This helps me grab commands from history and&#xA;copy them.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;alias&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;hclip&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;history | tail -n1 | cut -c 8- | xclip -sel clip&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;alias&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;fclip&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;history -n 1000 | fzf | cut -c 8- | xclip -sel clip&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;alias&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;fclip&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;history -n 1000 | fzf | xclip -sel clip&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Tmux hotkey for copier templates</title>
    <id>https://go.waylonwalker.com/tmux-copier-templates/</id>
    <updated>2022-01-24T02:22:53Z</updated>
    <published>2022-01-24T02:22:53Z</published>
    <link href="https://go.waylonwalker.com/tmux-copier-templates/" rel="alternate" type="text/html"></link>
    <summary type="text">I have added a hotkey to my copier template setup to quickly access all my templates at any time from tmux. At any point I can hit , thats holding control...</summary>
    <content type="html">&lt;p&gt;I have added a hotkey to my copier template setup to quickly access all my&#xA;templates at any time from tmux.  At any point I can hit &lt;code&gt;&amp;lt;c-b&amp;gt;&amp;lt;c-b&amp;gt;&lt;/code&gt;, thats&#xA;holding control and hitting &lt;code&gt;bb&lt;/code&gt;, and I will get a popup list of all of my&#xA;templates directory names.  Its an fzf list, which means that I can fuzzy&#xA;search through it for the template I want, or arrow key to the one I want if I&#xA;am feeling insane.  I even setup it up so that the preview is a list of the&#xA;files that come with the template in tree view.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key c-b popup -E -w 80% -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;#{pane_current_path}&amp;#39;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    pipx run copier copy ~/.copier-templates/`ls ~/.copier-templates |\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    fzf --header &lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;pwd&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt; --preview=&amp;#39;tree ~/.copier-templates/{} |\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    lolcat&amp;#39;` . \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    &amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I’ve had this on my systems for a few weeks now and I am constantly using it&#xA;for my &lt;a href=&#34;https://waylonwalker.com/til/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;tils&lt;/a&gt;,&#xA;&lt;a href=&#34;https://waylonwalker.com/archive&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;blogs&lt;/a&gt;, and my .envrc file that goes into&#xA;all of my projects to make sure that I have a &lt;a href=&#34;/virtual-environment/&#34; class=&#34;glossary-term&#34; title=&#34;Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...&#34;&gt;virtual environment&lt;/a&gt; installed and&#xA;running any time I open it.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/copier-templates-tmux-popup.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/copier-templates-tmux-popup.png&#34; alt=&#34;this is what it looks like when I open my copier templates popup&#34;/ data-glightbox=&#34;description: this is what it looks like when I open my copier templates popup&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Tmux Pop size</title>
    <id>https://go.waylonwalker.com/tmux-pop-size/</id>
    <updated>2022-01-05T17:37:26Z</updated>
    <published>2022-01-05T17:37:26Z</published>
    <link href="https://go.waylonwalker.com/tmux-pop-size/" rel="alternate" type="text/html"></link>
    <summary type="text">tmux popups can be sized how you like based on the % width of the terminal on creation by using the flags (h, w, x, y) for height, width, and position.</summary>
    <content type="html">&lt;p&gt;tmux popups can be sized how you like based on the % width of the&#xA;terminal on creation by using the flags (h, w, x, y) for height, width,&#xA;and position.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# normal popup&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tmux popup figlet &lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# fullscreen popup&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tmux popup -h 100% -w 100% figlet &lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 75% centered popup&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tmux popup -h 100% -w 75% figlet &lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 75% popup on left side&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tmux popup -h 100% -w 75% -x 0% figlet &lt;span class=&#34;s2&#34;&gt;&amp;#34;Hello&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;video autoplay=&#34;&#34; controls=&#34;&#34; loop=&#34;true&#34; muted=&#34;&#34; playsinline=&#34;&#34; width=&#34;100%&#34; class=&#34;rounded-xl border-pink-900 border-2&#34;&gt;&#xA;     &lt;source src=&#34;https://dropper.waylonwalker.com/api/file/c0e80bc5-a03d-40ad-a431-20436b82cf3b.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;     Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;example running these commands&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Uses</title>
    <id>https://go.waylonwalker.com/uses/</id>
    <updated>2021-11-20T10:38:00Z</updated>
    <published>2021-11-20T10:38:00Z</published>
    <link href="https://go.waylonwalker.com/uses/" rel="alternate" type="text/html"></link>
    <summary type="text">This is a listing of all the things that I use on a daily basis to build data pipelines, lead my team, and build this website.</summary>
    <content type="html">&lt;p&gt;This is a listing of all the things that I use on a daily basis to build data&#xA;pipelines, lead my team, and build this website.&lt;/p&gt;&#xA;&lt;h2 id=&#34;older-editions&#34;&gt;older editions &lt;a href=&#34;#older-editions&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;[[ uses-2021 ]]&lt;/p&gt;&#xA;&lt;h2 id=&#34;installation&#34;&gt;Installation &lt;a href=&#34;#installation&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Everything installed on my machines is done through ansible-playbooks.  It’s&#xA;been a long transformation to get here, but its so satisfying to boot a brand&#xA;new system, run a single command a have every single thing cofigured exactly to&#xA;my liking.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# GET is available by default on Ubuntu&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;GET waylonwalker.com/bootstrap &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# For debian based systems without GET by default&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install curl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -F https://waylonwalker.com/bootstrap &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;os&#34;&gt;OS &lt;a href=&#34;#os&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I run Ubuntu, it works well for me without too much fuss.  For me the&#xA;distribution does not really matter too much, I’m more interested in what’s&#xA;inside.&lt;/p&gt;&#xA;&lt;h2 id=&#34;window-manager&#34;&gt;Window Manager &lt;a href=&#34;#window-manager&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I use awesome wm.  Awesome is a tiling window manager that alows me to navigate&#xA;through 9 workspaces (technically called tags in awesomewm). I can script out&#xA;certain applications to open in a certain tag, move it to different tags, and&#xA;join tags super easy.  I really dont see myself going back to a floating window&#xA;manager where you have to place all your windows with the mouse by hand.  This&#xA;is probably one of the biggest selling points for me to move to a Linux&#xA;desktop.&lt;/p&gt;&#xA;&lt;h2 id=&#34;terminal&#34;&gt;Terminal &lt;a href=&#34;#terminal&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;gnome-terminal&#34;&gt;gnome-terminal &lt;a href=&#34;#gnome-terminal&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;For the longest time I just used&#xA;&lt;a href=&#34;https://help.gnome.org/users/gnome-terminal/stable/&#34;&gt;gnome-terminal&lt;/a&gt;.  It&#xA;works, for the most part it gets out of the way and lets me do what I want.  I&#xA;just want a terminal that runs tmux properly, runs without titltbars or&#xA;scrollbars, and lets me theme it without much effort.&lt;/p&gt;&#xA;&lt;h3 id=&#34;kitty&#34;&gt;kitty &lt;a href=&#34;#kitty&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://sw.kovidgoyal.net/kitty/&#34;&gt;Kitty&lt;/a&gt; is my main terminal, these days, it’s&#xA;nice, its easy to configure how I want it, but most of its fancier features do&#xA;not work inside of tmux.  It does render incredibly fast, If I accidently cat&#xA;out a massive file, it typically just handles it, compared to other terminals&#xA;that will be printing for 30s or so.&lt;/p&gt;&#xA;&lt;h3 id=&#34;windows-terminal&#34;&gt;Windows Terminal &lt;a href=&#34;#windows-terminal&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;When I am on a windows terminal I use the &lt;em&gt;new&lt;/em&gt;&#xA;&lt;a href=&#34;https://github.com/microsoft/terminal&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;Terminal&lt;/a&gt;.  It’s a massive improvement&#xA;over any other terminal that I have ever tired on windows.  Text looks good,&#xA;the built in themese look good, I use the One-Half-Dark Theme, and the built in&#xA;Cascadia Code font.  Also things like system clipboards, copy, and paste just&#xA;seem to work better, and integrate well with wsl.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/Windows-Terminal-0522.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/Windows-Terminal-0522.webp&#34; alt=&#34;My Windows Terminal from may 2022&#34;/ data-glightbox=&#34;description: My Windows Terminal from may 2022&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;shell&#34;&gt;Shell &lt;a href=&#34;#shell&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;The shell is the interpreter that interprets the commands that you send to it&#xA;from the command line, unlike the terminal that displays the text.&lt;/p&gt;&#xA;&lt;h3 id=&#34;zsh&#34;&gt;zsh &lt;a href=&#34;#zsh&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;I use &lt;a href=&#34;https://www.zsh.org/&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.zsh.org.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.zsh.org.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;zsh&lt;/a&gt; as my shell of choice.  I don’t run&#xA;oh-my-zsh, I just need a few plugins for things like&#xA;&lt;a href=&#34;https://github.com/zsh-users/zsh-autosuggestions&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;autosuggestions&lt;/a&gt;&#xA;&lt;a href=&#34;https://github.com/zsh-users/zsh-syntax-highlighting&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;syntax-highlighting&lt;/a&gt;&#xA;&lt;a href=&#34;https://github.com/zsh-users/zsh-history-substring-search&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;history-substring-search&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;tmux&#34;&gt;Tmux &lt;a href=&#34;#tmux&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;text-editor&#34;&gt;Text Editor &lt;a href=&#34;#text-editor&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;presentation--slides&#34;&gt;Presentation / Slides &lt;a href=&#34;#presentation--slides&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;video-recording--streaming&#34;&gt;Video Recording / Streaming &lt;a href=&#34;#video-recording--streaming&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;video-editing&#34;&gt;Video Editing &lt;a href=&#34;#video-editing&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;pager&#34;&gt;pager &lt;a href=&#34;#pager&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;image-editor&#34;&gt;Image Editor &lt;a href=&#34;#image-editor&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;virtual-environments&#34;&gt;Virtual Environments &lt;a href=&#34;#virtual-environments&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;node&#34;&gt;node &lt;a href=&#34;#node&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;hr/&gt;&#xA;&lt;h2 id=&#34;desk&#34;&gt;Desk &lt;a href=&#34;#desk&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;monitor&#34;&gt;Monitor &lt;a href=&#34;#monitor&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;keyboard&#34;&gt;Keyboard &lt;a href=&#34;#keyboard&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;desktop-pc&#34;&gt;Desktop PC &lt;a href=&#34;#desktop-pc&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;keyboard-1&#34;&gt;Keyboard &lt;a href=&#34;#keyboard-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;microphone&#34;&gt;Microphone &lt;a href=&#34;#microphone&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;audio-interface&#34;&gt;Audio Interface &lt;a href=&#34;#audio-interface&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;headphones&#34;&gt;Headphones &lt;a href=&#34;#headphones&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;chair&#34;&gt;Chair &lt;a href=&#34;#chair&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux targeted session</title>
    <id>https://go.waylonwalker.com/tmux-targeted-session/</id>
    <updated>2021-08-02T23:51:21Z</updated>
    <published>2021-08-02T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-targeted-session/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/5KE7Il7SOEk</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/5KE7Il7SOEk&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/5KE7Il7SOEk&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is something that I made up but use every single day, this is what keeps&#xA;much of what is on my blog or my teams private work wiki going.  I have a few&#xA;very important directories that I have assigned directly to a hotkey for fast&#xA;session switching.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-i new-session -A -s waylonwalker_com &lt;span class=&#34;s2&#34;&gt;&amp;#34;cd ~/git/waylonwalker.com/ &amp;amp;&amp;amp; nvim&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; i popup -E -h 95% -w 95% -x 100% &lt;span class=&#34;s2&#34;&gt;&amp;#34;tmux new-session -A -s waylonwalker_com &amp;#39;cd ~/git/waylonwalker.com/ &amp;amp;&amp;amp; nvim&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-I popup -E &lt;span class=&#34;s2&#34;&gt;&amp;#34;tmux new-session -A -s waylonwalker_com &amp;#39;cd ~/git/waylonwalker.com/ &amp;amp;&amp;amp; nvim&amp;#39;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-new-session/&#34; class=&#34;wikilink&#34; data-title=&#34;tmux new-session&#34; data-description=&#34;https://youtu.be/LbQNdCAUogE&#34; data-date=&#34;2021-08-01&#34; data-preview=&#34;https://youtu.be/LbQNdCAUogE&#34;&gt;tmux new-session&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;This one is building off of yeserday’s new-session post, make sure you check that one out as well.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Also check out the full YouTube&#xA;&lt;a href=&#34;https://www.youtube.com/playlist?list=PLTRNG6WIHETB4reAxbWza3CZeP9KL6Bkr&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;tmux-playlist&lt;/a&gt;&#xA;to see all of the videos in this series.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux detach</title>
    <id>https://go.waylonwalker.com/tmux-detach/</id>
    <updated>2021-08-01T23:51:21Z</updated>
    <published>2021-08-01T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-detach/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/A1qx3tNKDdA</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/A1qx3tNKDdA&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/A1qx3tNKDdA&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;tmux detach is a handy tmux command that will quit your current session while&#xA;keeping it running. The full name of the comamnd is &lt;code&gt;detach-client&lt;/code&gt;, &lt;code&gt;detach&lt;/code&gt;&#xA;is a shorthand.&lt;/p&gt;&#xA;&lt;p&gt;default keybinding&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key          d detach-client&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I have mine bound to &lt;code&gt;mod+d&lt;/code&gt; where mod is alt.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-d detach-client&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;https://waylonwalker.com/tmux-nav-2021/&#34; class=&#34;hoverlink  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34;&gt;https://waylonwalker.com/tmux-nav-2021/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Also check out the full YouTube&#xA;&lt;a href=&#34;https://www.youtube.com/playlist?list=PLTRNG6WIHETB4reAxbWza3CZeP9KL6Bkr&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;tmux-playlist&lt;/a&gt;&#xA;to see all of the videos in this series.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux attach</title>
    <id>https://go.waylonwalker.com/tmux-attach/</id>
    <updated>2021-07-31T23:51:21Z</updated>
    <published>2021-07-31T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-attach/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/JQ0yDCVu44E</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/JQ0yDCVu44E&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://youtu.be/JQ0yDCVu44E&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;attach is one of the most useful features of tmux.  If you have no interest in&#xA;tmux for pane and window management, you should use tmux for this.  It can be a&#xA;life saver if you ever get disconnected from the host machine or accidently&#xA;close your terminal you can connect right back into the session you were just&#xA;in using attach.&lt;/p&gt;&#xA;&lt;h2 id=&#34;attach&#34;&gt;attach &lt;a href=&#34;#attach&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tmux attach&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;this command will simply attach back to tmux if you are ever disconnected&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;If you ever run long running tasks on a remote machine by sshing into this you&#xA;should be doing it inside tmux, or something like tmux so that you do not loose&#xA;your work.&lt;/p&gt;&#xA;&lt;h2 id=&#34;attach-to-a-specific-session&#34;&gt;attach to a specific session &lt;a href=&#34;#attach-to-a-specific-session&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If you have multiple sessions running you can select the session that you want&#xA;to attach to by passing &lt;code&gt;-t &amp;lt;name-of-session&amp;gt;&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tmux attach -t scratch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Also check out the full YouTube&#xA;&lt;a href=&#34;https://www.youtube.com/playlist?list=PLTRNG6WIHETB4reAxbWza3CZeP9KL6Bkr&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;tmux-playlist&lt;/a&gt;&#xA;to see all of the videos in this series.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux ls</title>
    <id>https://go.waylonwalker.com/tmux-ls/</id>
    <updated>2021-07-30T23:51:21Z</updated>
    <published>2021-07-30T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-ls/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/LY41GLn_DGg</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/LY41GLn_DGg&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/LY41GLn_DGg&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;tmux ls will list the sessions that you have running within the tmux server if&#xA;tmux is currently running.  This is handy to combine with commands such as &lt;code&gt;attach&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tmux ls&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-attach/&#34; class=&#34;wikilink&#34; data-title=&#34;tmux attach&#34; data-description=&#34;https://youtu.be/JQ0yDCVu44E&#34; data-date=&#34;2021-07-31&#34; data-preview=&#34;https://youtu.be/JQ0yDCVu44E&#34;&gt;tmux attach&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Also check out the full YouTube&#xA;&lt;a href=&#34;https://www.youtube.com/playlist?list=PLTRNG6WIHETB4reAxbWza3CZeP9KL6Bkr&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;tmux-playlist&lt;/a&gt;&#xA;to see all of the videos in this series.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux command line</title>
    <id>https://go.waylonwalker.com/tmux-command-line/</id>
    <updated>2021-07-29T23:51:21Z</updated>
    <published>2021-07-29T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-command-line/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/SNu-4IrkjAs</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/SNu-4IrkjAs&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/SNu-4IrkjAs&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;So far we have covered a lot of tmux commands and how they map to keybindings&#xA;but these same commands can be executed at the command line.&lt;/p&gt;&#xA;&lt;h2 id=&#34;from-the-command-line&#34;&gt;From the command line &lt;a href=&#34;#from-the-command-line&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Let’s make a popup that displays our &lt;a href=&#34;/glossary/git/&#34; class=&#34;glossary-term&#34; title=&#34;Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...&#34;&gt;git&lt;/a&gt; status for 5s or until we close it&#xA;manually.  We can run the following command at the command line, in a split.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;tmux display-popup -E -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;#{pane_current_path}&amp;#39;&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;git status &amp;amp;&amp;amp; sleep 5&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;from-the-tmux-command-line&#34;&gt;From the tmux command line &lt;a href=&#34;#from-the-tmux-command-line&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Or we can open the tmux command line and run it from tmux’s built in command&#xA;line, which is very similar to bim EX mode. By default the tmux command line&#xA;can be opened with &lt;code&gt;prefix+[&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;display-popup -E -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;#{pane_current_path}&amp;#39;&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;git status &amp;amp;&amp;amp; sleep 5&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;🗒️ note that the tmux command is called by default when inside of tmux.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;make-it-a-keybinding&#34;&gt;Make it a keybinding &lt;a href=&#34;#make-it-a-keybinding&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Finally we can make it a keybinding by adding a bind command ahead of our tmux&#xA;command, then we can execute this in the tmux command line or add it to our&#xA;&lt;code&gt;~/.tmux.conf&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; s display-popup -E -d &lt;span class=&#34;s1&#34;&gt;&amp;#39;#{pane_current_path}&amp;#39;&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;git status &amp;amp;&amp;amp; sleep 5&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Also check out the full YouTube&#xA;&lt;a href=&#34;https://www.youtube.com/playlist?list=PLTRNG6WIHETB4reAxbWza3CZeP9KL6Bkr&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;tmux-playlist&lt;/a&gt;&#xA;to see all of the videos in this series.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux copy-mode</title>
    <id>https://go.waylonwalker.com/tmux-copy-mode/</id>
    <updated>2021-07-28T23:51:21Z</updated>
    <published>2021-07-28T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-copy-mode/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/-ypY_-VmBKk</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/-ypY_-VmBKk&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/-ypY_-VmBKk&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;tmux copy-mode is a tmux mode that lets you scroll, search, copy, and jump your&#xA;way through a pane.  There are a ton of keybindings for copy-mode, the main&#xA;ones you will need to know are &lt;code&gt;/&lt;/code&gt; for searching down &lt;code&gt;?&lt;/code&gt; for searching up, &lt;code&gt;n&lt;/code&gt;&#xA;for next item, &lt;code&gt;space&lt;/code&gt; for starting a selection, and enter to copy the&#xA;selection.  Arrow keys will be used for navigation unless you have specified vi mode, then it will be &lt;code&gt;hjkl&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Default keybinding to get into copy mode is &lt;code&gt;prefix+[&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key          &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; copy-mode&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you are a vim user you will likely want to use vi style keys, add this to&#xA;your &lt;code&gt;~/.tmux.conf&lt;/code&gt; file to enable vi mode.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;setw -g mode-keys vi&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;full list of copy-mode keybindings from the man page.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  Command                                      vi              emacs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           append-selection&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           append-selection-and-cancel                  A&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           back-to-indentation                          ^               M-m&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           begin-selection                              Space           C-Space&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           bottom-line                                  L&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           cancel                                       q               Escape&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           clear-selection                              Escape          C-g&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           copy-end-of-line &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;prefix&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;                  D               C-k&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           copy-line &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;prefix&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           copy-pipe &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;command&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;prefix&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           copy-pipe-no-clear &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;command&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;prefix&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           copy-pipe-and-cancel &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;command&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;prefix&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           copy-selection &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;prefix&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           copy-selection-no-clear &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;prefix&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           copy-selection-and-cancel &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;prefix&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;         Enter           M-w&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           cursor-down                                  j               Down&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           cursor-down-and-cancel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           cursor-left                                  h               Left&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           cursor-right                                 l               Right&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           cursor-up                                    k               Up&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           end-of-line                                  $               C-e&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           goto-line &amp;lt;line&amp;gt;                             :               g&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           halfpage-down                                C-d             M-Down&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           halfpage-down-and-cancel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           halfpage-up                                  C-u             M-Up&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           history-bottom                               G               M-&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           history-top                                  g               M-&amp;lt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           jump-again                                   &lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;               &lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           jump-backward &amp;lt;to&amp;gt;                           F               F&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           jump-forward &amp;lt;to&amp;gt;                            f               f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           jump-reverse                                 ,               ,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           jump-to-backward &amp;lt;to&amp;gt;                        T&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           jump-to-forward &amp;lt;to&amp;gt;                         t&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           jump-to-mark                                 M-x             M-x&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           middle-line                                  M               M-r&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           next-matching-bracket                        %               M-C-f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           next-paragraph                               &lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;               M-&lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           next-space                                   W&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           next-space-end                               E&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           next-word                                    w&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           next-word-end                                e               M-f&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           other-end                                    o&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           page-down                                    C-f             PageDown&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           page-down-and-cancel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           page-up                                      C-b             PageUp&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           pipe &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;command&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;prefix&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           pipe-no-clear &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;command&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;prefix&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           pipe-and-cancel &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;command&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;&amp;lt;prefix&amp;gt;&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           previous-matching-bracket                                    M-C-b&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           previous-paragraph                           &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;               M-&lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           previous-space                               B&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           previous-word                                b               M-b&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           rectangle-on&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           rectangle-off&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           rectangle-toggle                             v               R&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           refresh-from-pane                            r               r&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           scroll-down                                  C-e             C-Down&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           scroll-down-and-cancel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           scroll-up                                    C-y             C-Up&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           search-again                                 n               n&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           search-backward &amp;lt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&amp;gt;                        ?&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           search-backward-incremental &amp;lt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&amp;gt;                            C-r&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           search-backward-text &amp;lt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           search-forward &amp;lt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&amp;gt;                         /&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           search-forward-incremental &amp;lt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&amp;gt;                             C-s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           search-forward-text &amp;lt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           search-reverse                               N               N&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-line                                  V&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-word&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           set-mark                                     X               X&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           start-of-line                                &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;               C-a&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           stop-selection&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;           top-line                                     H               M-R&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Also check out the full YouTube&#xA;&lt;a href=&#34;https://www.youtube.com/playlist?list=PLTRNG6WIHETB4reAxbWza3CZeP9KL6Bkr&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;tmux-playlist&lt;/a&gt;&#xA;to see all of the videos in this series.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux join-pane</title>
    <id>https://go.waylonwalker.com/tmux-join-pane/</id>
    <updated>2021-07-27T23:51:21Z</updated>
    <published>2021-07-27T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-join-pane/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/Vm5rRtcVXLw</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/Vm5rRtcVXLw&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/Vm5rRtcVXLw&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Join-pane allows you to join panes that you have broken away from your window,&#xA;or created in a different window to the window you want it in.  As far as I&#xA;know there is not a default keybinding for it.&lt;/p&gt;&#xA;&lt;p&gt;Before you can join a pane you must first have a pane marked to join.  Once you&#xA;mark a pane, go back to the window you want to join it to and join-pane.&lt;/p&gt;&#xA;&lt;p&gt;My keybindings, you must add this to your &lt;code&gt;~/.tmux.conf&lt;/code&gt; file to use them.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Mark and swap panes&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#――――――――――――――――――――――――――――――――――――――――――――&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;bind&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;M&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;select&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pane&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;m&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# mark&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;bind&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;M&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;M&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;select&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pane&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;M&lt;/span&gt; &lt;span class=&#34;c1&#34;&gt;# unmark&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;bind&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;n&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;M&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&amp;lt;&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;pane&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Also check out the full YouTube&#xA;&lt;a href=&#34;https://www.youtube.com/playlist?list=PLTRNG6WIHETB4reAxbWza3CZeP9KL6Bkr&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;tmux-playlist&lt;/a&gt;&#xA;to see all of the videos in this series.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux break-pane</title>
    <id>https://go.waylonwalker.com/break-pane/</id>
    <updated>2021-07-26T23:51:21Z</updated>
    <published>2021-07-26T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/break-pane/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/ICL609F2xnc</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/ICL609F2xnc&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/ICL609F2xnc&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Break-pane is a handy tmux command when your layout gets too cramped and you&#xA;want to just move a split into its own window.  Calling &lt;code&gt;break-pane&lt;/code&gt; does&#xA;exactly that, it creates a &lt;code&gt;new-window&lt;/code&gt; for you and moves your currently&#xA;selected split into that window&lt;/p&gt;&#xA;&lt;p&gt;Default key binding for &lt;code&gt;break-pane&lt;/code&gt;&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key          ! break-pane&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux zoom</title>
    <id>https://go.waylonwalker.com/tmux-zoom/</id>
    <updated>2021-07-25T23:51:21Z</updated>
    <published>2021-07-25T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-zoom/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/Rn6mOarCQ-Y</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/Rn6mOarCQ-Y&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/Rn6mOarCQ-Y&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Zooming into the current split in tmux is a valuable tool to give yourself some&#xA;screen real estate.  These days I am almost always presenting, streaming, or&#xA;pairing up with a co-worker over a video call.  Since I am always sharing my&#xA;screen I am generally zoomed in to a level that is just a bit uncomfortable, so&#xA;anytime I make a split it is really uncomfortable, being able to zoom into the&#xA;split I am focused on is a big help, and also help anyone watching follow where&#xA;I am currently working.&lt;/p&gt;&#xA;&lt;p&gt;Default key bindings for zooming the current split&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key          z resize-pane -Z&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I have rebound this to match the default binding with mod+z rather so that I&#xA;get that single keystroke experience.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-z resize-pane -Z&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux new-window</title>
    <id>https://go.waylonwalker.com/tmux-new-window/</id>
    <updated>2021-07-24T23:51:21Z</updated>
    <published>2021-07-24T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-new-window/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/YRPZBv-iYyE</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/YRPZBv-iYyE&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/YRPZBv-iYyE&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;New window as it sounds makes new windows in tmux.  Windows are kind of like&#xA;tabs.  They are another screen within your sessions that you can name and make&#xA;new panes in.&lt;/p&gt;&#xA;&lt;p&gt;Default key bindings for creating and navigating windows in tmux.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key          c new-window&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key          p previous-window&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key          n next-window&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;As always I have rebound these keys because I generally prefer a single&#xA;keystroke over the prefix plus keybinding approach that tmux gives by default.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#――windows――――――――――――――――――――――――――――――――――――――&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-c new-window -c &lt;span class=&#34;s1&#34;&gt;&amp;#39;#{pane_current_path}&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-p previous-window&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-n next-window&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;When I started using tmux I did almost everything in one giant session with&#xA;many panes and windows.  It became a nightmare to manage and quickly get&#xA;between two sets work efficiently.  This year I leaned in on sessions quite&#xA;heavily.  Checkout this 👇 post to see that workflow in depth.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux slect-pane</title>
    <id>https://go.waylonwalker.com/tmux-select-pane/</id>
    <updated>2021-07-23T23:51:21Z</updated>
    <published>2021-07-23T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-select-pane/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/CPZJZjN9YTY</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/CPZJZjN9YTY&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/CPZJZjN9YTY&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;These are my MOST often used keybindings that I use in tmux.  They allow me to&#xA;jump between splits with ease with a vim style layout.  I can hold mod and jump&#xA;between panes with a familiar arrow key.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-h &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-pane -L&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-l &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-pane -R&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-k &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-pane -U&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-j &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-pane -D&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux rotate-window</title>
    <id>https://go.waylonwalker.com/tmux-rotate-window/</id>
    <updated>2021-07-22T23:51:21Z</updated>
    <published>2021-07-22T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-rotate-window/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/06z5qf81ofo</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/06z5qf81ofo&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/06z5qf81ofo&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Rotate window is the main way that I navigated tmux before I learned&#xA;&lt;code&gt;select-pane&lt;/code&gt;.  It allows you to change your focused pane, or rotate the&#xA;position of the panes easily.&lt;/p&gt;&#xA;&lt;p&gt;Default keybindings&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key        C-o rotate-window&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key          o &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-pane -t :.+&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;My keybindings look just a bit different than the default ones, I do not like&#xA;needing to hit prefix for every command, especially for repeated commands.  I&#xA;set a similar keybinding to the default one that uses mod instead of prefix.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-o &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-pane -t :.+&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-O rotate-window&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux select-layout</title>
    <id>https://go.waylonwalker.com/tmux-select-layout/</id>
    <updated>2021-07-21T23:51:21Z</updated>
    <published>2021-07-21T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-select-layout/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/F0mHnwTrNNc</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/F0mHnwTrNNc&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/F0mHnwTrNNc&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;When you get many splits going in tmux sometimes its time for a new layout.&#xA;There are four layout strategies that I use, main-vertical, main-horizontal,&#xA;even-vertical, even-horizontal. Almost always I am useing the main ones with&#xA;mod plus a or mod plus shift a keybindings.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Select Layouts&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#―――――――――――――――――&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-a &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-layout main-vertical&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-A &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-layout main-horizontal&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-E &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-layout even-vertical&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-V &lt;span class=&#34;k&#34;&gt;select&lt;/span&gt;-layout even-horizontal&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux resize-panes</title>
    <id>https://go.waylonwalker.com/tmux-resize-panes/</id>
    <updated>2021-07-20T23:51:21Z</updated>
    <published>2021-07-20T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-resize-panes/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/hpFYE2LU7xc</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/hpFYE2LU7xc&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/hpFYE2LU7xc&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Resizing panes in tmux can be quite difficult in default tmux, I&#xA;use a set of keybingings to help resize panes in the rare occasions&#xA;that I do need just a bit more space.  I set the keybinding to the same as my&#xA;split navigation bindings but shifted. They are very vim like (h,j,k,l).&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# resize panes&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;#―――――――――――――――――――――――――――――&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-H resize-pane -L &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-L resize-pane -R &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-K resize-pane -U &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-J resize-pane -D &lt;span class=&#34;m&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Most often when I need to resize panes I just grab the edge of the pane with my&#xA;mouse.  Yes the mouse, its not that often that I actually need to change the&#xA;size of a pane.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Enable mouse control (clickable windows, panes, resizable panes)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; -g mouse on&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux choose-tree</title>
    <id>https://go.waylonwalker.com/tmux-choose-tree/</id>
    <updated>2021-07-19T23:51:21Z</updated>
    <published>2021-07-19T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-choose-tree/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/79Y-kqAiMpw</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/79Y-kqAiMpw&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/79Y-kqAiMpw&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Choose tree is a powerful tmux utility that provides a graphical interface to&#xA;preview all sessions, windows, and panes, move between them kill them, move&#xA;them and much more.&lt;/p&gt;&#xA;&lt;p&gt;The default keybinding&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key -T prefix s choose-tree -s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;my preferred keybinding to open sessions and windows collapsed and Zoomed in.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key j choose-tree -swZ&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;From the man page.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;choose-tree &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-GNrswZ&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-F format&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-f filter&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-K key-format&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-O sort-order&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;-t target-pane&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;template&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        Put a pane into tree mode, where a session, window or pane may be chosen interactively from a tree.  Each session, window or pane is shown on&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        one line.  A shortcut key is shown on the left in brackets allowing &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; immediate choice, or the tree may be navigated and an item chosen or&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        otherwise manipulated using the keys below.  -s starts with sessions collapsed and -w with windows collapsed.  -Z zooms the pane.  The follow‐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ing keys may be used in tree mode:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Key    Function&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Enter  Choose selected item&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Up     Select previous item&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            Down   Select next item&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            +      Expand selected item&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            -      Collapse selected item&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            M-+    Expand all items&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            M--    Collapse all items&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            x      Kill selected item&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            X      Kill tagged items&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &amp;lt;      Scroll list of previews left&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &amp;gt;      Scroll list of previews right&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            C-s    Search by name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            m      Set the marked pane&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            M      Clear the marked pane&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            n      Repeat last search&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            t      Toggle &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; item is tagged&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            T      Tag no items&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            C-t    Tag all items&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            :      Run a &lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; each tagged item&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            f      Enter a format to filter items&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            H      Jump to the starting pane&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            O      Change sort field&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            r      Reverse sort order&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            v      Toggle preview&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            q      Exit mode&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        After a session, window or pane is chosen, ‘%%’ is replaced by the target in template and the result executed as a command.  If template is&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        not given, &lt;span class=&#34;s2&#34;&gt;&amp;#34;switch-client -t &amp;#39;%%&amp;#39;&amp;#34;&lt;/span&gt; is used.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        -O specifies the initial sort field: one of ‘index’, ‘name’, or ‘time’.  -r reverses the sort order.  -f specifies an initial filter: the fil‐&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ter is a format - &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; it evaluates to zero, the item in the list is not shown, otherwise it is shown.  If a filter would lead to an empty list,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        it is ignored.  -F specifies the format &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; each item in the tree and -K a format &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; each shortcut key&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; both are evaluated once &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; each&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        line.  -N starts without the preview.  -G includes all sessions in any session groups in the tree rather than only the first.  This &lt;span class=&#34;nb&#34;&gt;command&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        works only &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; at least one client is attached.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;https://waylonwalker.com/tmux-nav-2021/&#34; class=&#34;hoverlink  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/waylonwalker.com.ico&#34;&gt;https://waylonwalker.com/tmux-nav-2021/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux prefix</title>
    <id>https://go.waylonwalker.com/tmux-prefix/</id>
    <updated>2021-07-18T23:51:21Z</updated>
    <published>2021-07-18T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-prefix/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/BMkpbfhbkKM</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/BMkpbfhbkKM&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/BMkpbfhbkKM&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The prefix key is an essential part of tmux, by default all of tmux’s&#xA;key-bindings sit behind a prefix.  This prefix is very similar to vim’s leader&#xA;key. It is common for folks to change the default &lt;code&gt;C-b&lt;/code&gt; (control b) to &lt;code&gt;C-a&lt;/code&gt; or&#xA;if they are a vim user something to match their vim leader key.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;set&lt;/span&gt; -g prefix C-Space&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; Space send-prefix&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A few of the essential default key-bindings.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;%      vertical split&#xA;&amp;#34;      horizontal split&#xA;d      detach&#xA;&#xA;up     select up one pane&#xA;down   select down one pane&#xA;right  select right one pane&#xA;left   select left one pane&#xA;&#xA;t      clock&#xA;o      swap panes&#xA;c      create window&#xA;n      next window&#xA;p      previous window&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;A more complete list of key-bindings can be found in this gist &lt;a href=&#34;https://gist.github.com/mzmonsour/8791835&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/gist.github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/gist.github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://gist.github.com/mzmonsour/8791835&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux splitting panes</title>
    <id>https://go.waylonwalker.com/tmux-splitting-panes/</id>
    <updated>2021-07-17T23:51:21Z</updated>
    <published>2021-07-17T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-splitting-panes/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/kzgyiHap1nQ</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/kzgyiHap1nQ&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/kzgyiHap1nQ&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;splitting panes is a core feature of tmux.  It allows us to split the terminal&#xA;vertically or horizontally into new panes.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-s split-window -c &lt;span class=&#34;s1&#34;&gt;&amp;#39;#{pane_current_path}&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-v split-window -h -c &lt;span class=&#34;s1&#34;&gt;&amp;#39;#{pane_current_path}&amp;#39;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-X kill-pane&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;🗒️ note that  ‘#{pane_current_path}‘will keep the split in the same directory&#xA;as it’s parent, without this it will default to your home directory.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux last session</title>
    <id>https://go.waylonwalker.com/tmux-last-session/</id>
    <updated>2021-07-16T23:51:21Z</updated>
    <published>2021-07-16T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-last-session/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/RB87EEnnMnU</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/RB87EEnnMnU&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/RB87EEnnMnU&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;An ultimate productivity key-binding in tmux is one to switch to the last session.  I use this to quickly get between sessions really quick.  Often I am working and need to lookup a quick note, or copy something into my notes, then get back to where I was quickly.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-b switch-client -l&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I think of this hub and spoke model, and use &lt;code&gt;last-session&lt;/code&gt; to quickly drive it.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/tmux-nav-hub-spoke.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/tmux-nav-hub-spoke.png&#34; alt=&#34;hub and spoke&#34;/ data-glightbox=&#34;description: hub and spoke&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux floating popups</title>
    <id>https://go.waylonwalker.com/tmux-floating-popups/</id>
    <updated>2021-07-15T23:51:21Z</updated>
    <published>2021-07-15T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-floating-popups/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/2ZqFDsJywt8</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/2ZqFDsJywt8&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/2ZqFDsJywt8&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Tmux popups are actually floating windows that you can drag around the screen.  They always open in the middle (by default) when you open them, no matter where you leave them.&lt;/p&gt;&#xA;&lt;p&gt;Here are a couple of keybindings I use to open up popup windows.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; C-g display-popup -E &lt;span class=&#34;s2&#34;&gt;&amp;#34;ta ~/git&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-g display-popup -E &lt;span class=&#34;s2&#34;&gt;&amp;#34;tmux new-session -A -s scratch&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>tmux popups</title>
    <id>https://go.waylonwalker.com/tmux-popups/</id>
    <updated>2021-07-14T23:51:21Z</updated>
    <published>2021-07-14T23:51:21Z</published>
    <link href="https://go.waylonwalker.com/tmux-popups/" rel="alternate" type="text/html"></link>
    <summary type="text">https://youtu.be/2I8fB28zfB4</summary>
    <content type="html">&lt;p&gt;&lt;a href=&#34;https://youtu.be/2I8fB28zfB4&#34; class=&#34;youtube-embed  has-avatar has-avatar-before&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/youtu.be.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/youtu.be.png&#34;&gt;https://youtu.be/2I8fB28zfB4&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Tmux-popups are a great feature that is relatively new to tmux, many repos such&#xA;as the standard ubuntu repos do not have it.   Popups came in 3.2a, if your&#xA;package manager does not have it, you can follow the &lt;a href=&#34;https://github.com/tmux/tmux#installation&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;tmux’s install&#xA;instructions&lt;/a&gt; to build from source.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# open a popup scratchpad&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-g display-popup -E &lt;span class=&#34;s2&#34;&gt;&amp;#34;tmux new-session -A -s scratch&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;for more information on how I navigate tmux, check out this full post&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;I use popups quite a bit in my workflow to ssh into another machine for a short&#xA;period, or make a new project with a template.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Copy and Paste on Linux</title>
    <id>https://go.waylonwalker.com/ubuntu/</id>
    <updated>2021-06-25T20:50:45Z</updated>
    <published>2021-06-25T20:50:45Z</published>
    <link href="https://go.waylonwalker.com/ubuntu/" rel="alternate" type="text/html"></link>
    <summary type="text">These are the notes that I used as I set up my first ever ubuntu desktop.</summary>
    <content type="html">&lt;p&gt;These are the notes that I used as I set up my first ever ubuntu desktop.&lt;/p&gt;&#xA;&lt;h2 id=&#34;gnome-tweaks&#34;&gt;gnome-tweaks &lt;a href=&#34;#gnome-tweaks&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install gnome-tweaks&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;nordix-gtk-theme&#34;&gt;nordix gtk theme &lt;a href=&#34;#nordix-gtk-theme&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I ran this, but have no idea if it had any effect as the theme did&#xA;not show up until I relogged.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;gsettings set org.gnome.desktop.wm.preferences theme Nordic&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;What I think actuagnome terminal showing scrollbar in tmuxlly worked was&lt;/p&gt;&#xA;&lt;h2 id=&#34;emoji-support&#34;&gt;emoji support &lt;a href=&#34;#emoji-support&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;One thing that I really missed quite early from windows was the emoji virtual&#xA;keyboard. I like being able to quickly toss in those emoji that give just a&#xA;bit of a visual cue 🔥, ⚠️,, 🎉, 🦄, 💜.&lt;/p&gt;&#xA;&lt;h3 id=&#34;installation&#34;&gt;installation &lt;a href=&#34;#installation&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;I found an application called emote. that seems to do everything I need it to&#xA;in the snap store. Installation is a typicall snap install.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;sudo snap install emote&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;default-keybinding&#34;&gt;default keybinding &lt;a href=&#34;#default-keybinding&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The application came with a default keybinding &lt;code&gt;ctrl+alt+e&lt;/code&gt;, but I could never remember it.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;ctrl+alt+e&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;windows-keybinding&#34;&gt;Windows keybinding &lt;a href=&#34;#windows-keybinding&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Old habits are hard to break, I opened up the gnome settings and set a hotkey&#xA;to &lt;code&gt;super+;&lt;/code&gt; to run the command emote.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;Super+;&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h3 id=&#34;how-it-works&#34;&gt;How it works &lt;a href=&#34;#how-it-works&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;h2 id=&#34;get-that-dock-outta-here&#34;&gt;Get that dock outta here &lt;a href=&#34;#get-that-dock-outta-here&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I tried to disable the dock and it didn’t immediately work for me,&#xA;likely because I needed to relog. I really have no use for the&#xA;dock though as I will always open applications with a hotkey or&#xA;super + search.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt remove gnome-shell-extension-ubuntu-dock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;terminal-one-dark-theme&#34;&gt;Terminal One Dark Theme &lt;a href=&#34;#terminal-one-dark-theme&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I don’t stress too hard on themes, I just want something halfway consistent and&#xA;just works. I typically have just used a semi-popular theme “one-dark”&#xA;everywhere. This was the default theme in GitHub’s Atom text editor that I&#xA;never used. I only care that it looks good and is popular enought that it just&#xA;exists everywhere.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bash -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;curl -fsSL https://raw.githubusercontent.com/denysdovhan/gnome-terminal-one/master/one-dark.sh&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;terminal-menu-and-scrollbar&#34;&gt;Terminal menu and scrollbar &lt;a href=&#34;#terminal-menu-and-scrollbar&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I found these to be ugly ans unnecessary so I turned them off. You can access&#xA;all the menu items by right clicking on the terminal anyways, so there is no&#xA;reason to let it take up any screen real estate.&lt;/p&gt;&#xA;&lt;h3 id=&#34;hiding-the-scrollbar&#34;&gt;Hiding the scrollbar &lt;a href=&#34;#hiding-the-scrollbar&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/gnome-terminal-hide-scrollbar.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/gnome-terminal-hide-scrollbar.png&#34; alt=&#34;hide the scrollbar&#34;/ data-glightbox=&#34;description: hide the scrollbar&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h3 id=&#34;hiding-the-menubar&#34;&gt;Hiding the menubar &lt;a href=&#34;#hiding-the-menubar&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/gnome-terminal-hide-menubar.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/gnome-terminal-hide-menubar.png&#34; alt=&#34;hide the menubar&#34;/ data-glightbox=&#34;description: hide the menubar&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;h2 id=&#34;vim-clipboard&#34;&gt;vim clipboard &lt;a href=&#34;#vim-clipboard&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install xsel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;set&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;clipboard&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;+=&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;unnamedplus&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;tmux-clipboard&#34;&gt;tmux clipboard &lt;a href=&#34;#tmux-clipboard&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Copy and Paste on Linux&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel &lt;span class=&#34;s2&#34;&gt;&amp;#34;xclip -i -f -selection primary | xclip -i -selection clipboard&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;set-option -s set-clipboard off&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel &lt;span class=&#34;s2&#34;&gt;&amp;#34;xclip -selection clipboard -i&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;hotkeys&#34;&gt;Hotkeys &lt;a href=&#34;#hotkeys&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;&lt;thead&gt;&#xA;&lt;tr&gt;&#xA;&lt;th&gt;Key&lt;/th&gt;&#xA;&lt;th&gt;Desc&lt;/th&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/thead&gt;&#xA;&lt;tbody&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;super+j&lt;/td&gt;&#xA;&lt;td&gt;move to workspace below&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;super+k&lt;/td&gt;&#xA;&lt;td&gt;move to workspace above&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;super+shift+j&lt;/td&gt;&#xA;&lt;td&gt;move window one workspace down&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;super+shift+k&lt;/td&gt;&#xA;&lt;td&gt;move window one workspace up&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;table&gt;&#xA;&lt;thead&gt;&#xA;&lt;tr&gt;&#xA;&lt;th&gt;Key&lt;/th&gt;&#xA;&lt;th&gt;Command&lt;/th&gt;&#xA;&lt;th&gt;Desc&lt;/th&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/thead&gt;&#xA;&lt;tbody&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;Super+e&lt;/td&gt;&#xA;&lt;td&gt;nautilus&lt;/td&gt;&#xA;&lt;td&gt;File Browser&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;Super+Shift+p&lt;/td&gt;&#xA;&lt;td&gt;Area Screenshot&lt;/td&gt;&#xA;&lt;td&gt;gnome-screenshot -a&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;Super+Alt+p&lt;/td&gt;&#xA;&lt;td&gt;Area Screenshot to clipboard&lt;/td&gt;&#xA;&lt;td&gt;gnome-screenshot -ac&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;Super+e&lt;/td&gt;&#xA;&lt;td&gt;nautilus&lt;/td&gt;&#xA;&lt;td&gt;File Browser&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;screenshots&#34;&gt;screenshots &lt;a href=&#34;#screenshots&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;I am constantly taking screenshots for my daily workflow, on Windows I had it&#xA;setup to both send to the clipboard and store in a screenshots directory.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# take a screenshot and Store it as a file.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gnome-screenshot -a&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# take a screenshot and send it to the clipboard&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gnome-screenshot -ac&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;obs&#34;&gt;obs &lt;a href=&#34;#obs&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;As od Jun 2021 the version of obs-studio installed using the instructions in&#xA;their wiki is out of date. I had success getting the latest version, which&#xA;supports virtual webcams, using snap.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo snap install obs-studio&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;virtual-webcam&#34;&gt;virtual webcam &lt;a href=&#34;#virtual-webcam&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;After getting the latest version of obs-studio whixh supports virtual webcam it&#xA;still did not start. After some searching I found that updating v4l2loopback&#xA;resolved the issue.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt purge v4l2loopback-dkms&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/umlaeute/v4l2loopback.git ~/git/v4l2loopback/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ~/git/v4l2loopback/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo make install&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo modprobe v4l2loopback &lt;span class=&#34;nv&#34;&gt;devices&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;exclusive_caps&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo depmod -a&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo modprobe v4l2loopback &lt;span class=&#34;nv&#34;&gt;video_nr&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;10&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;card_label&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;OBS Video Source&amp;#34;&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;exclusive_caps&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;i3&#34;&gt;i3 &lt;a href=&#34;#i3&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I decided to give i3 a try, simply apt install it, then it shows up under the&#xA;gear icon at the login screen after a reboot. At this point I don’t think I am&#xA;ready for i3. I have just changed a bunch of stuff in my workflow and honestly&#xA;I got a decent gnome config setup in like 10 minutes.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo apt install i3&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>How I navigate tmux in 2021</title>
    <id>https://go.waylonwalker.com/tmux-nav-2021/</id>
    <updated>2021-05-11T09:14:07Z</updated>
    <published>2021-05-11T09:14:07Z</published>
    <link href="https://go.waylonwalker.com/tmux-nav-2021/" rel="alternate" type="text/html"></link>
    <summary type="text">change_speed = (speed) =&gt; [...document.querySelectorAll(&#39;video&#39;)].map(v =&gt; v.playbackRate=v.playbackRate+speed)</summary>
    <content type="html">&lt;script&gt;&#xA;change_speed = (speed) =&gt; [...document.querySelectorAll(&#39;video&#39;)].map(v =&gt; v.playbackRate=v.playbackRate+speed)&#xA;&lt;/script&gt;&#xA;&lt;style&gt;&#xA;&lt;/style&gt;&#xA;&lt;p&gt;In 2021 I changed the way I navigate between tmux sessions big time.  Now I can&#xA;create, kill, switch with ease, and generally keep work separated into logical&#xA;groups.&lt;/p&gt;&#xA;&lt;h2 id=&#34;update&#34;&gt;Update &lt;a href=&#34;#update&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Since making this post, I have made ~20 other posts in short form that all have&#xA;a YouTube video to go along with them you can find them all on my&#xA;&lt;a href=&#34;https://www.youtube.com/playlist?list=PLTRNG6WIHETB4reAxbWza3CZeP9KL6Bkr&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/www.youtube.com.png&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/www.youtube.com.png&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;tmux-playlist&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;chris-toomeyshttpstwittercomchristoomey-tmux-course&#34;&gt;&lt;a href=&#34;https://twitter.com/christoomey&#34;&gt;Chris Toomey’s&lt;/a&gt; Tmux Course &lt;a href=&#34;#chris-toomeyshttpstwittercomchristoomey-tmux-course&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I took Chris’s &lt;a href=&#34;https://thoughtbot.com/upcase/tmux&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/thoughtbot.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/thoughtbot.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;tmux course&lt;/a&gt; in December&#xA;2020 and it was fantastic.  Even as a seasoned tmux user, I learned quite a bit.&#xA;Before the course, I was proficient in navigating within each of my tmux&#xA;sessions but rarely started more than one session.  A few months later, I have&#xA;adopted a lot of what I learned from Chris and made it my own.&lt;/p&gt;&#xA;&lt;p&gt;I am now keeping projects to their own session and can move between them&#xA;fluidly with just a few keystrokes.  For high-traffic projects, I have them&#xA;bound to a single keystroke for instant switching.  This change has been a&#xA;game-changer from the mess of windows I used to have and the nightmare it was&#xA;to find work I was doing and end up duplicating project work in two separate&#xA;windows.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;📝 &lt;strong&gt;NOTE:&lt;/strong&gt; Some of my config comes straight from the course, and some of it has&#xA;been extended to my liking.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Let’s take a quick look at how I am navigating through tmux on a day-to-day basis.&lt;/p&gt;&#xA;&lt;!-- ![overview of how I switch and manage tmux sessions](https://images.waylonwalker.com/tmux-navigation-2021.gif &#34;overview&#34;) --&gt;&#xA;&lt;video controls=&#34;&#34; muted=&#34;&#34; autoplay=&#34;&#34; playsinline=&#34;&#34; loop=&#34;true&#34; width=&#34;100%&#34;&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021.webm&#34; type=&#34;video/webm&#34;/&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;    Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;div class=&#34;speed-control&#34;&gt;&#xA;    &lt;button onclick=&#34;change_speed(.25)&#34;&gt;&#xA;        speed up&#xA;    &lt;/button&gt;&#xA;    &lt;button onclick=&#34;change_speed(-.25)&#34;&gt;&#xA;        slow down&#xA;    &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;👆 Overview of how I navigate tmux&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;tmux-ls&#34;&gt;tmux ls &lt;a href=&#34;#tmux-ls&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Throughout this article, I have several recordings showing how I use manage&#xA;sessions with my keybindings.  I will often run a &lt;code&gt;tmux ls&lt;/code&gt; command to&#xA;highlight running sessions at various points to help guide the viewer.&lt;/p&gt;&#xA;&lt;h2 id=&#34;ta&#34;&gt;ta &lt;a href=&#34;#ta&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;my attach/session switch script&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;At the heart of my tmux navigation is a highly customized version of Chris’s&#xA;tat script that I renamed &lt;code&gt;ta&lt;/code&gt;.  Many folks add this to their bashrc &lt;code&gt;alias ta=tmux attach&lt;/code&gt;.  Simply calling ta will do the same thing as shown below.  If&#xA;you’re in a tmux session, it does nothing, and if you’re not in one, it will&#xA;attach you to the first one.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;get the full &lt;a href=&#34;https://github.com/WaylonWalker/devtainer/blob/main/bin/.local/bin/ta&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;script&lt;/a&gt; from GitHub.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;!-- ![overview of how I switch and manage tmux sessions](https://images.waylonwalker.com/tmux-navigation-2021-ta.gif &#34;overview&#34;) --&gt;&#xA;&lt;video controls=&#34;&#34; muted=&#34;&#34; autoplay=&#34;&#34; playsinline=&#34;&#34; loop=&#34;true&#34; width=&#34;100%&#34;&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-ta.webm&#34; type=&#34;video/webm&#34;/&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-ta.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;    Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;div class=&#34;speed-control&#34;&gt;&#xA;    &lt;button onclick=&#34;change_speed(.25)&#34;&gt;&#xA;        speed up&#xA;    &lt;/button&gt;&#xA;    &lt;button onclick=&#34;change_speed(-.25)&#34;&gt;&#xA;        slow down&#xA;    &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;👆 attaching to a session by default&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;In my &lt;code&gt;~/.bashrc&lt;/code&gt; or &lt;code&gt;~/.zshrc&lt;/code&gt; I add the &lt;code&gt;ta&lt;/code&gt; command to keep myself in a tmux&#xA;session at all times.  Whenever I open my terminal, I am automatically dropped&#xA;into a tmux session, but if I am opening a split while in tmux it’s smart&#xA;enough to know not to nest tmux sessions.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ta&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Another article can dive into my &lt;code&gt;ta&lt;/code&gt; command. This one is more about the&#xA;methodology, workflow, and keybindings to get me there.  It’s available in my&#xA;&lt;a href=&#34;https://github.com/WaylonWalker/devtainer/blob/main/bin/.local/bin/ta&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;script&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;but-theres-more&#34;&gt;but there’s more &lt;a href=&#34;#but-theres-more&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;&lt;em&gt;gettin fuzzy&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Give it a directory, and a &lt;code&gt;fzy&lt;/code&gt; dropdown will let you choose a subdirectory to&#xA;start your session in, and name the session after that directory.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ta ~/git&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;🔥 Bonus, use direnv to automatically set settings, echo your &lt;a href=&#34;/glossary/git/&#34; class=&#34;glossary-term&#34; title=&#34;Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...&#34;&gt;git&lt;/a&gt; status,&#xA;activate your environment or whatever else you need.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;!-- ![overview of how I switch and manage tmux sessions](https://images.waylonwalker.com/tmux-navigation-2021-ta-directory.gif &#34;overview&#34;) --&gt;&#xA;&lt;video controls=&#34;&#34; muted=&#34;&#34; autoplay=&#34;&#34; playsinline=&#34;&#34; loop=&#34;true&#34; width=&#34;100%&#34;&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-ta-directory.webm&#34; type=&#34;video/webm&#34;/&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-ta-directory.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;    Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;div class=&#34;speed-control&#34;&gt;&#xA;    &lt;button onclick=&#34;change_speed(.25)&#34;&gt;&#xA;        speed up&#xA;    &lt;/button&gt;&#xA;    &lt;button onclick=&#34;change_speed(-.25)&#34;&gt;&#xA;        slow down&#xA;    &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;👆 give it a directory, it will ask for input to which project and start a new&#xA;named session in that directory.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Note that starting from outside currently does not start in a split layout like&#xA;it does when starting from within tmux.  I am still playing with this, but&#xA;generally, I want my terminal session to be plain when I first start my&#xA;terminal. I usually am starting work after the first default session.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;🤔 I still use both fzy and fzf. It probably doesn’t make sense to use both,&#xA;but I am currently giving fzy a try.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;prefixw&#34;&gt;prefix+w &lt;a href=&#34;#prefixw&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;tmux choose-tree&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;By default, tmux comes with a &lt;code&gt;tmux choose-tree&lt;/code&gt; command bound to &lt;code&gt;prefix+w&lt;/code&gt;,&#xA;which opens in full screen.  The upper section of the screen will show every&#xA;window opened.  While selected, you can show the splits in each window by&#xA;hitting l, or fold it with h. You can search for a session name by hitting /.&lt;/p&gt;&#xA;&lt;!-- ![jump to existing sessions with prefix+w](https://images.waylonwalker.com/tmux-navigation-2021-prefix+w.gif &#34;using prefix+w&#34;) --&gt;&#xA;&lt;video controls=&#34;&#34; muted=&#34;&#34; autoplay=&#34;&#34; playsinline=&#34;&#34; loop=&#34;true&#34; width=&#34;100%&#34;&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-prefix+w.webm&#34; type=&#34;video/webm&#34;/&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-prefix+w.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;    Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;div class=&#34;speed-control&#34;&gt;&#xA;    &lt;button onclick=&#34;change_speed(.25)&#34;&gt;&#xA;        speed up&#xA;    &lt;/button&gt;&#xA;    &lt;button onclick=&#34;change_speed(-.25)&#34;&gt;&#xA;        slow down&#xA;    &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ~/.tmux.conf&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# expanded to show all splits&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; s choose-tree&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# simpler window to show only sessions&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; S choose-session&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;keybindings-in-choose-treechoose-session&#34;&gt;Keybindings in choose-tree/choose-session &lt;a href=&#34;#keybindings-in-choose-treechoose-session&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;The default keybindings of the tmux &lt;code&gt;choose-tree&lt;/code&gt; and &lt;code&gt;choose-session&lt;/code&gt; that I&#xA;use are listed below.  J/K are very intuitive, but I just learned about h,l,/.&#xA;When I do use one of these, the / (search) can be super helpful to find&#xA;sessions/windows faster.&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&lt;thead&gt;&#xA;&lt;tr&gt;&#xA;&lt;th&gt;action&lt;/th&gt;&#xA;&lt;th&gt;key&lt;/th&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/thead&gt;&#xA;&lt;tbody&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;fold&lt;/td&gt;&#xA;&lt;td&gt;h&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;unfold&lt;/td&gt;&#xA;&lt;td&gt;l&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;up&lt;/td&gt;&#xA;&lt;td&gt;k&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;down&lt;/td&gt;&#xA;&lt;td&gt;j&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;tr&gt;&#xA;&lt;td&gt;search&lt;/td&gt;&#xA;&lt;td&gt;/&lt;/td&gt;&#xA;&lt;/tr&gt;&#xA;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;prefixc-w-prefixc-g&#34;&gt;prefix+c-w prefix+c-g &lt;a href=&#34;#prefixc-w-prefixc-g&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;open a project&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;I have set up to make it easy to open my non-work projects &lt;em&gt;(in my ~/git directory)&lt;/em&gt;&#xA;and my work projects &lt;em&gt;(in my ~/work directory)&lt;/em&gt;.  I bound &lt;code&gt;prefix+c-g&lt;/code&gt; and&#xA;&lt;code&gt;prefix+c-w&lt;/code&gt; to open a new session in their respective directories.  I like&#xA;mapping common prefix commands with control to keep my pinky mashed on&#xA;that control key.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# ~/.tmux.conf&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; C-w new-window -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;work-session-picker&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ta ~/work&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; C-g new-window -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;git-session-picker&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;ta ~/git&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;!-- ![create a new session from my ~/git directory](https://images.waylonwalker.com/tmux-navigation-2021-prefix+c-g.gif &#34;using prefix+c-g&#34;) --&gt;&#xA;&lt;video controls=&#34;&#34; muted=&#34;&#34; autoplay=&#34;&#34; playsinline=&#34;&#34; loop=&#34;true&#34; width=&#34;100%&#34;&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-prefix+c-g.webm&#34; type=&#34;video/webm&#34;/&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-prefix+c-g.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;    Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;div class=&#34;speed-control&#34;&gt;&#xA;    &lt;button onclick=&#34;change_speed(.25)&#34;&gt;&#xA;        speed up&#xA;    &lt;/button&gt;&#xA;    &lt;button onclick=&#34;change_speed(-.25)&#34;&gt;&#xA;        slow down&#xA;    &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;prefixc-j&#34;&gt;prefix+c-j &lt;a href=&#34;#prefixc-j&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;jump to session&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now that I have &lt;code&gt;ta&lt;/code&gt; rocking with a good create or attach setup, I am rarely&#xA;toggling through a list of running sessions, but I am doing it with&#xA;&lt;code&gt;prefix+c-j&lt;/code&gt; when I do it. Keeping my finger on control and pressing &lt;code&gt;&amp;lt;space&amp;gt;+j&lt;/code&gt;.&#xA;This keybinding uses fzf to fuzzy match to an existing session and attach.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; C-j new-window -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;session-switcher&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;tmux list-sessions | sed -E &amp;#39;s/:.*&lt;/span&gt;$&lt;span class=&#34;s2&#34;&gt;//&amp;#39; | grep -v \&amp;#34;^&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;$(&lt;/span&gt;tmux display-message -p &lt;span class=&#34;s1&#34;&gt;&amp;#39;#S&amp;#39;&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;\$\&amp;#34; | fzf --reverse | xargs tmux switch-client -t&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;!-- ![jump to existing sessions with prefix+c-j](https://images.waylonwalker.com/tmux-navigation-2021-prefix+c-j.gif &#34;using prefix+c-j&#34;) --&gt;&#xA;&lt;video controls=&#34;&#34; muted=&#34;&#34; autoplay=&#34;&#34; playsinline=&#34;&#34; loop=&#34;true&#34; width=&#34;100%&#34;&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-prefix+c-j.webm&#34; type=&#34;video/webm&#34;/&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-prefix+c-j.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;    Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;div class=&#34;speed-control&#34;&gt;&#xA;    &lt;button onclick=&#34;change_speed(.25)&#34;&gt;&#xA;        speed up&#xA;    &lt;/button&gt;&#xA;    &lt;button onclick=&#34;change_speed(-.25)&#34;&gt;&#xA;        slow down&#xA;    &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;m-n-m-p&#34;&gt;M-N M-P &lt;a href=&#34;#m-n-m-p&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;next/prev&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Next and Previous sessions.  This is super handy when working with under 3&#xA;sessions to be able to cycle through sessions holding &lt;code&gt;shift+alt&lt;/code&gt; and pressing&#xA;&lt;code&gt;n&lt;/code&gt; or &lt;code&gt;p&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;!-- ![jump to next or previous sessions with m-N or m-P](https://images.waylonwalker.com/tmux-navigation-2021-m-N-M-P.gif &#34;using m-N and m-P&#34;) --&gt;&#xA;&lt;video controls=&#34;&#34; muted=&#34;&#34; autoplay=&#34;&#34; playsinline=&#34;&#34; loop=&#34;true&#34; width=&#34;100%&#34;&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-m-N-M-P.webm&#34; type=&#34;video/webm&#34;/&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-m-N-M-P.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;    Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;div class=&#34;speed-control&#34;&gt;&#xA;    &lt;button onclick=&#34;change_speed(.25)&#34;&gt;&#xA;        speed up&#xA;    &lt;/button&gt;&#xA;    &lt;button onclick=&#34;change_speed(-.25)&#34;&gt;&#xA;        slow down&#xA;    &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;tkill&#34;&gt;tkill &lt;a href=&#34;#tkill&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;time to clean up&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;It’s easy to get a long crufty list of sessions running throughout the day.&#xA;Typically this is not too bad on system resources compared to running vscode in&#xA;every working project, but it does make it more challenging to manage and wade&#xA;through the sessions list.  I use a handy shell alias that’s been in my zshrc&#xA;for quite some time.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;alias&lt;/span&gt; &lt;span class=&#34;nv&#34;&gt;tkill&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;for s in \$(tmux list-sessions | awk &amp;#39;{print \$1}&amp;#39; | rg &amp;#39;:&amp;#39; -r &amp;#39;&amp;#39; | fzy); do tmux kill-session -t \$s; done;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I don’t have this one set up with a nice hotkey, but it works for my&#xA;fingers.  I often pop open a lower split(&lt;code&gt;M-s&lt;/code&gt;), run &lt;code&gt;tkill&lt;/code&gt;, and close (&lt;code&gt;M-x&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;!-- ![create a new session git-diff switch back to original session with prefix+c-g then use tkill to kill the git-diff session](https://images.waylonwalker.com/tmux-navigation-2021-tkill.gif &#34;tkill example&#34;) --&gt;&#xA;&lt;video controls=&#34;&#34; muted=&#34;&#34; autoplay=&#34;&#34; playsinline=&#34;&#34; loop=&#34;true&#34; width=&#34;100%&#34;&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-tkill.webm&#34; type=&#34;video/webm&#34;/&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-tkill.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;    Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;div class=&#34;speed-control&#34;&gt;&#xA;    &lt;button onclick=&#34;change_speed(.25)&#34;&gt;&#xA;        speed up&#xA;    &lt;/button&gt;&#xA;    &lt;button onclick=&#34;change_speed(-.25)&#34;&gt;&#xA;        slow down&#xA;    &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;last-session&#34;&gt;Last Session &lt;a href=&#34;#last-session&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;back&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;While &lt;code&gt;M-n&lt;/code&gt; and &lt;code&gt;M-p&lt;/code&gt; work well with a small, focused number of sessions, I often&#xA;end up with too many sessions open, and it’s not efficient to remember a double&#xA;&lt;code&gt;M-N&lt;/code&gt; followed by a triple &lt;code&gt;M-P&lt;/code&gt; to get back and forth.  Most often, I want to&#xA;get between two sessions quickly, no matter what the order is.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-B switch-client -l&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-b switch-client -l&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;video controls=&#34;&#34; muted=&#34;&#34; autoplay=&#34;&#34; playsinline=&#34;&#34; loop=&#34;true&#34; width=&#34;100%&#34;&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-m-b.webm&#34; type=&#34;video/webm&#34;/&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-m-b.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;    Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;div class=&#34;speed-control&#34;&gt;&#xA;    &lt;button onclick=&#34;change_speed(.25)&#34;&gt;&#xA;        speed up&#xA;    &lt;/button&gt;&#xA;    &lt;button onclick=&#34;change_speed(-.25)&#34;&gt;&#xA;        slow down&#xA;    &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Once I get two sessions back to back, I can switch between them with insane&#xA;speed and precision.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;more-precision&#34;&gt;More Precision &lt;a href=&#34;#more-precision&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;one keystroke&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;The final layer of precision is for my most current project. I need to get&#xA;to these with a single keystroke.  These are bound to a set of keybindings that were&#xA;readily available, just above the home row.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; C-t new-session -A -s todo &lt;span class=&#34;s2&#34;&gt;&amp;#34;cd ~/work/todo &amp;amp;&amp;amp; nvim -O backlog.md doing.md done.md&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-i new-session -A -s ww3 &lt;span class=&#34;s2&#34;&gt;&amp;#34;cd ~/git/ww3/ &amp;amp;&amp;amp; nvim&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;bind&lt;/span&gt; -n M-o new-session -A -s images_waylonwalker_com &lt;span class=&#34;s2&#34;&gt;&amp;#34;cd ~/git/images.waylonwalker.com/ &amp;amp;&amp;amp; nvim&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;video controls=&#34;&#34; muted=&#34;&#34; autoplay=&#34;&#34; playsinline=&#34;&#34; loop=&#34;true&#34; width=&#34;100%&#34;&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-m-i-m-o.webm&#34; type=&#34;video/webm&#34;/&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-m-i-m-o.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;    Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;div class=&#34;speed-control&#34;&gt;&#xA;    &lt;button onclick=&#34;change_speed(.25)&#34;&gt;&#xA;        speed up&#xA;    &lt;/button&gt;&#xA;    &lt;button onclick=&#34;change_speed(-.25)&#34;&gt;&#xA;        slow down&#xA;    &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;These few directories are always at my fingertips, encouraging me to keep better notes&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;And yes, I did steal this last one from &lt;a href=&#34;https://twitter.com/ThePrimeagen&#34;&gt;Harpoon-man&lt;/a&gt; By The Way.&lt;/p&gt;&#xA;&lt;h2 id=&#34;hub-and-spoke&#34;&gt;Hub and Spoke &lt;a href=&#34;#hub-and-spoke&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;M-i M-b&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;I have really been digging this hub and spoke workflow where I am rocking away&#xA;on a project hit &lt;code&gt;M-I&lt;/code&gt;, take some notes then hit &lt;code&gt;M-b&lt;/code&gt; to get back to where I&#xA;was.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/tmux-nav-hub-spoke.png&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/tmux-nav-hub-spoke.png&#34; alt=&#34;hub and spoke&#34;/ data-glightbox=&#34;description: hub and spoke&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Model of my current workflow&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;example&#34;&gt;Example &lt;a href=&#34;#example&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Here is an example of how I use the hub and spoke model to get to notes on my&#xA;blog and back to my project quickly.&lt;/p&gt;&#xA;&lt;video controls=&#34;&#34; muted=&#34;&#34; autoplay=&#34;&#34; playsinline=&#34;&#34; loop=&#34;true&#34; width=&#34;100%&#34;&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-quickly-access-notes.webm&#34; type=&#34;video/webm&#34;/&gt;&#xA;    &lt;source src=&#34;https://images.waylonwalker.com/tmux-navigation-2021-quickly-access-notes.mp4&#34; type=&#34;video/mp4&#34;/&gt;&#xA;    Sorry, your browser doesn&amp;#39;t support embedded videos.&#xA;&lt;/video&gt;&#xA;&lt;div class=&#34;speed-control&#34;&gt;&#xA;    &lt;button onclick=&#34;change_speed(.25)&#34;&gt;&#xA;        speed up&#xA;    &lt;/button&gt;&#xA;    &lt;button onclick=&#34;change_speed(-.25)&#34;&gt;&#xA;        slow down&#xA;    &lt;/button&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;example-workflow&#34;&gt;Example workflow &lt;a href=&#34;#example-workflow&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;open tmux session with ta&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;prefix+c-g&lt;/code&gt; start work in a project using a fuzzy matcher&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;M-t&lt;/code&gt; over to my todo list&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;M-b&lt;/code&gt; back to my project&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;M-i&lt;/code&gt; to my blog to look up notes/make notes&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;M-b&lt;/code&gt; back to my project&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;prefix+c-g&lt;/code&gt; start work in another project using a fuzzy matcher&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;M-t&lt;/code&gt; over to my todo list&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;M-b&lt;/code&gt; back to my project&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;prefix+c-j&lt;/code&gt; fuzzy back to the first project&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;M-b&lt;/code&gt; back to the second project&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr/&gt;&#xA;&lt;p&gt;Please let me know your thoughts.&#xA;&lt;a href=&#34;https://twitter.com/_WaylonWalker&#34;&gt;@waylonwalker&lt;/a&gt;, this one took me a bit&#xA;longer to put together with all of the animated gif’s, but I think it helps&#xA;visually show how I navigate tmux every day.&lt;/p&gt;&#xA;&lt;h2 id=&#34;please-give-it-a-share-if-you-liked-it&#34;&gt;Please give it a share if you liked it &lt;a href=&#34;#please-give-it-a-share-if-you-liked-it&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;If you liked it, give it a share and tag me on&#xA;&lt;a href=&#34;https://twitter.com/_WaylonWalker&#34;&gt;twitter&lt;/a&gt;.  I don’t often ask but this&#xA;article took a bit more to put together than my normal post.&lt;/p&gt;&#xA;&lt;hr/&gt;&#xA;&lt;h2 id=&#34;related-links&#34;&gt;Related Links &lt;a href=&#34;#related-links&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://twitter.com/christoomey&#34;&gt;Chris Toomey’s&lt;/a&gt; Tmux Course&lt;/li&gt;&#xA;&lt;li&gt;my &lt;a href=&#34;https://github.com/WaylonWalker/devtainer/blob/main/bin/.local/bin/ta&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;ta script&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;my &lt;a href=&#34;https://github.com/WaylonWalker/devtainer/blob/main/tmux/.tmux.conf&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/github.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/github.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;.tmux.conf&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>If Tmux</title>
    <id>https://go.waylonwalker.com/if-tmux/</id>
    <updated>2021-01-09T00:00:00Z</updated>
    <published>2021-01-09T00:00:00Z</published>
    <link href="https://go.waylonwalker.com/if-tmux/" rel="alternate" type="text/html"></link>
    <summary type="text">I do much of my work from tmux, I love it so much that I want to setup some functionality that puts me in tmux even if I didn&#39;t ask for it.</summary>
    <content type="html">&lt;p&gt;I do much of my work from tmux, I love it so much that I want to setup some&#xA;functionality that puts me in tmux even if I didn’t ask for it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;bash-function&#34;&gt;Bash Function &lt;a href=&#34;#bash-function&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Bash function to check if the shell is in a tmux session.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;in_tmux &lt;span class=&#34;o&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;if&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt; -n &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$TMUX&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;]&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;then&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;else&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;return&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;fi&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;using-the-bash-function&#34;&gt;Using the bash function &lt;a href=&#34;#using-the-bash-function&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I often open up vim to do some quite edits, but before I know it I have several&#xA;splits open and I need access to another shell utility, but I forgot to start&#xA;in tmux.  This function makes sure tht I start in tmux everytime.&lt;/p&gt;&#xA;&lt;p&gt;Using &lt;code&gt;if_tmux&lt;/code&gt; to ensure vim is opened in tmux.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vim &lt;span class=&#34;o&#34;&gt;()&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  in_tmux &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; nvim &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;se&#34;&gt;&lt;/span&gt;    &lt;span class=&#34;o&#34;&gt;||&lt;/span&gt; bash -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    tmux new-session -d;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    tmux send-keys nvim Space +GFiles C-m;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    tmux -2 attach-session -d;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    &amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;o&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;I am not quite sure if this is proper use of the &lt;code&gt;&amp;amp;&amp;amp;&lt;/code&gt; and &lt;code&gt;||&lt;/code&gt;, let me know if&#xA;you have a better way to do one thing if &lt;code&gt;in_tmux&lt;/code&gt; returns true and another if&#xA;it returns faslse.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Scripting Tmux Layouts</title>
    <id>https://go.waylonwalker.com/scripting-tmux-layouts/</id>
    <updated>2020-12-13T00:00:00Z</updated>
    <published>2020-12-13T00:00:00Z</published>
    <link href="https://go.waylonwalker.com/scripting-tmux-layouts/" rel="alternate" type="text/html"></link>
    <summary type="text">This is how I script a tmux layout</summary>
    <content type="html">&lt;p&gt;This is how I script a tmux layout&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; bash -c &lt;span class=&#34;s2&#34;&gt;&amp;#34;tmux new-session -t &amp;#39;editor&amp;#39; -d;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    tmux split-window -v &amp;#39;zsh&amp;#39;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    tmux send-keys nvim Space /src/ Space +GFiles C-m; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    tmux rotate-window; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    tmux select-pane -U; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    tmux -2 attach-session -d&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;    &amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>Keyboard Driven VSCode</title>
    <id>https://go.waylonwalker.com/keyboard-driven-vscode/</id>
    <updated>2019-07-07T05:00:00Z</updated>
    <published>2019-07-07T05:00:00Z</published>
    <link href="https://go.waylonwalker.com/keyboard-driven-vscode/" rel="alternate" type="text/html"></link>
    <summary type="text">Reimagining my tmux configuration inside of vscode.</summary>
    <content type="html">&lt;blockquote&gt;&#xA;&lt;p&gt;Throw that mouse Away its time to setup some keyboard shortcuts.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;These sortcuts were the baseline for switching from tmux/vim to vscode.  Most folks posts I was able to find gave great tips on replacing vim, but very few have focused on the hackability of tmux.  tmux allows me to rapidly fire up a workspace, create new windows and splits.  Then When I switch tasks I can leave that workspace open and and jump right back in later exactly where I left off.  There is nothing quite like it.  The shortcuts listed here make the transition a bit better. The worst thing I found when using vscode at first was no way to switch between the terminal and editor without the mouse.  This first set of keybindings solve that issue.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The worst thing I found when using vscode at first was no way to switch between the terminal and editor without the mouse.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;!!! see-also&#xA;I have an updated article in my tmux workflow &lt;a href=&#34;/tmux-nav-2021/&#34; class=&#34;wikilink&#34; data-title=&#34;How I navigate tmux in 2021&#34; data-description=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34; data-date=&#34;2021-05-11&#34; data-preview=&#34;change_speed = (speed) =&amp;gt; [...document.querySelectorAll(&amp;#39;video&amp;#39;)].map(v =&amp;gt; v.playbackRate=v.playbackRate+speed)&#34;&gt;How I navigate tmux in 2021&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;althjkl&#34;&gt;Alt+[hjkl] &lt;a href=&#34;#althjkl&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;navigation&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;⬅ jump to &lt;strong&gt;left&lt;/strong&gt; split &lt;strong&gt;alt+h&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;⬇ jump to &lt;strong&gt;terminal&lt;/strong&gt; from editor &lt;strong&gt;alt+j&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;⬆ jump to &lt;strong&gt;editor&lt;/strong&gt; from terminal &lt;strong&gt;alt+k&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;➡ jump to &lt;strong&gt;right&lt;/strong&gt; split &lt;strong&gt;alt+l&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is by var the most useful set of keybindings that I use in vscode and is directly replicated from my tmux configuration.  It allows me to quickly jump up, down, left, right.  Do note that if you use vertical splits it does not work as well as tmux 😢.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/alt%20%5Bhjkl%5D.gif&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/alt%20%5Bhjkl%5D.gif&#34; alt=&#34;navigating vscode with keyboard shortcuts&#34;/ data-glightbox=&#34;description: navigating vscode with keyboard shortcuts&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+j&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.terminal.focus&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+k&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.focusFirstEditorGroup&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;terminalFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+k&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.focusAboveGroup&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+l&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;-toggleFindInSelection&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+l&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.focusNextGroup&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+h&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.focusPreviousGroup&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+l&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.terminal.focusNextPane&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;terminalFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+h&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.terminal.focusPreviousPane&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;            &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;terminalFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;altb&#34;&gt;Alt+b &lt;a href=&#34;#altb&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;toggle bloat&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Since closing the sidebar is assigned to &lt;code&gt;ctrl+b&lt;/code&gt; I thought that it made most sense to simulate the activity bar with &lt;code&gt;alt+b&lt;/code&gt;.  There are many times when I just want to get as much out of the way as possible and this little bit does help.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/alt%20b.gif&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/alt%20b.gif&#34; alt=&#34;hiding the activity bar &#34;/ data-glightbox=&#34;description: hiding the activity bar&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+b&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.toggleActivityBarVisibility&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;altsvx&#34;&gt;Alt+[svx] &lt;a href=&#34;#altsvx&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;Split it up&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;🙌 Split hoizontally &lt;strong&gt;alt+s&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;🍌 Vertically &lt;strong&gt;alt+v&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;💥 Close &lt;strong&gt;alt+x&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;This is another one replicated from tmux for quickly creatiting horizontal (s) and vertical (v) splits.  Once I am done with them I can close them with alt+x.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/alt%20%5Bsvx%5D.gif&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/alt%20%5Bsvx%5D.gif&#34; alt=&#34;Make and destroy splits with ease in vscode.&#34;/ data-glightbox=&#34;description: Make and destroy splits with ease in vscode.&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+s&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.terminal.split&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;terminalFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+s&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.splitEditor&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+v&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.splitEditorOrthogonal&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+x&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.terminal.kill&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;terminalFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+x&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.closeActiveEditor&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editorFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;altcnp&#34;&gt;Alt+[cnp] &lt;a href=&#34;#altcnp&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;🤲 &lt;strong&gt;Create&lt;/strong&gt; new workspace &lt;strong&gt;alt+c&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;⏭ jump to &lt;strong&gt;next&lt;/strong&gt; workspace &lt;strong&gt;alt+n&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;⏮ jump to &lt;strong&gt;previous&lt;/strong&gt; workspace &lt;strong&gt;alt+p&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;Sometimes the terminal window gets a bit cramped inside of splits and you need to use different panes.  I replicated the cnp pattern from tmux here as well.  I can create (c) new panes, then go to the next (n), or previous (p) without leaving the comfort of my keyboard.&lt;/p&gt;&#xA;&lt;p&gt;I am often using this one when I have a process running that I watch like gatsby, and I need to quickly pop into a new pane to run a &lt;a href=&#34;/glossary/git/&#34; class=&#34;glossary-term&#34; title=&#34;Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...&#34;&gt;git&lt;/a&gt; command and back in to gatsby before jumping up to my editor.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://images.waylonwalker.com/alt%20%5Bcnp%5D.gif&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://images.waylonwalker.com/alt%20%5Bcnp%5D.gif&#34; alt=&#34;&#34;/ data-glightbox=&#34;description: &#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+c&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.terminal.new&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;terminalFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+n&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.terminal.focusNext&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;terminalFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+p&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.terminal.focusPrevious&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;when&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;terminalFocus&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;altz&#34;&gt;Alt+z &lt;a href=&#34;#altz&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;🗻 Zoom into terminal &lt;strong&gt;alt+z&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;This last one doesnt work as well as I would like but it sure does get the job done.  It Zooms (z) into the terminal from anywhere in vscode.  I can be in my editor and zoom out of the terminal to make more room, or zoom in to see what happened from my last edit.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;![](&lt;a href=&#34;https://images.waylonwalker.com/alt&#34; style=&#34;--favicon-url: url(&amp;#39;/assets/markata/link-avatars/images.waylonwalker.com.ico&amp;#39;);&#34; data-favicon=&#34;/assets/markata/link-avatars/images.waylonwalker.com.ico&#34; class=&#34;has-avatar  has-avatar-before&#34;&gt;https://images.waylonwalker.com/alt&lt;/a&gt; z.gif)&#xA;&lt;/figure&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+z&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;workbench.action.toggleMaximizedPanel&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;bonus&#34;&gt;Bonus &lt;a href=&#34;#bonus&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h2 id=&#34;altr&#34;&gt;Alt+r &lt;a href=&#34;#altr&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;🖱 right click in place&lt;/p&gt;&#xA;&lt;p&gt;I recently found this one, and find it quite useful to quickly do things like revert selected range, or extract variable without leaving the keyboard.&lt;/p&gt;&#xA;&lt;pre class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;[&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;key&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;alt+r&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;command&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;editor.action.showContextMenu&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
</feed>