-
backup distrobox image
Today I'm upgrading my distrobox, but don't want to end up in a situation where I can't get anything done becauase I work out of my distrobox.
-
💭 adrianlopezroche/fdupes: FDUPES is a program for...
Here's my thought on 💭 adrianlopezroche/fdupes: FDUPES is a program for identifying o... keeping this in my back pocket for now. I just moved a few TB's of…
-
💭 python-build-standalone/.github/workflows/releas...
Here's my thought on 💭 python-build-standalone/.github/workflows/release.yml at main ... Astral uses just in CI, kinda cool to stumble into this setup in the…
-
fixed long standing nvim startup error
Here's the diff, this is it. The error On first install of my dotfiles I'm presenting with this flashbang of an error filling the screen with red background. Its kinda hard to read, I'm not deep into lua and reading their tracebacks. It pops up in this pager that if I scroll too far it quits and the error is gone before I know what it is or how it got there. image For the longest time it just felt like it randomly showed up without much warning. I sent ai at the issue I tried some chatgpt and
-
testing nvim installs
Testing fresh nvim installs can be a pain, and hard to di without borking your known good install. I've been using to run a test nvim in a sandbox that wont bork my main install. This usually runs for me in under a minute, can be down under 15s if I remove some of the TreeSitter installs at the end. This beats a full docker build of my full devtainer to test out nvim packaging woes. I've started to use this as a recipe to run before deploying a new version of my dotfiles. So far its pairi
-
vim date
When I want to put a date in a document like a blog post from vim I use !!date from insert mode. Note that entering from normal mode puts you in command mode with filled out. This runs a shell command, i.e. for this example. It outputs the following Fri Jan 31 08:46:11 PM CST 2025 You can also pass in a date such as tommorrow by pasdding in the -d . It outputs the following Sat Feb 1 08:53:20 PM CST 2025 codeium just taught me this one with autocomplete This outputs the following 2025-
-
💭 Releases · bootandy/dust
Here's my thought on 💭 Releases · bootandy/dust dust is one of my favorite rust rewrite tools. Its so useful for narrowing down file system bloat and…
-
nvim-manager
I recently built a cli application as a nearly-one-shot-app called nvim-manager . It manages your nvim dotfiles install. screenshot-2025-01-31T21-21-40-707Z.png {.more-cinematic} Why {.chat-left} Don't we have stow? {.chat-right} Ya, thats not enough. {.chat-left} Why not?? {.chat-right} Inevitably shit goes sideways and I break my vim install. How is nvim manager any better nvim-manager allows you to install pinned versions of your dotfiles, your friends dotfiles, and distros in ~/.config. Thi
-
💭 bic | Static blog generator, in bash
Here's my thought on 💭 bic | Static blog generator, in bash Intereresting someone built a blog generator in bash. it comes with normal markdown to html,…
-
💭 Ellie Huxtable: "Atuin v18.4 is out now! Includi...
Here's my thought on 💭 Ellie Huxtable: "Atuin v18.4 is out now! Including `atuin wrap... Atuin v18.4 is out with an atuin wrapped command. Here's Ellie's…
-
urllink
Today I discovered the function in bash from the ujust tool from ublue.it . Seems like a cool trick, but might not work everywhere.
-
💭 casey/just: 🤖 Just a command runner
Here's my thought on 💭 casey/just: 🤖 Just a command runner new versions of just now come with color variables already set. !!! note This post is a thought…
-
💭 pipedream/justfile at main · thechangelog/pipedr...
Here's my thought on 💭 pipedream/justfile at main · thechangelog/pipedream I found this nugget in thechangelogs justfile, it lets you add color to your…
-
💭 hostnamectl to easily change hostname | Pype.dev
Here's my thought on 💭 hostnamectl to easily change hostname | Pype.dev For some reason the ublue ecosystem does not prompt you to set your hostname on…
-
💭 Document how to provide a negative number as an ...
Here's my thought on 💭 Document how to provide a negative number as an argument · fas... Today I learned that you cannot pass negative integers as values to…
-
💭 Will McGugan on X: "New Version of #Textual rele...
Here's my thought on 💭 Will McGugan on X: "New Version of #Textual released! 😎🤓🦾 The ... This new demo of textual is wildly awesome, so many widgets and…
-
💭 add helix · WaylonWalker/devtainer@71b9b29
Here's my thought on 💭 add helix · WaylonWalker/devtainer@71b9b29 Helix officially made it in my devtainer. I am installing the binary right out of the…
-
💭 helix-vim/config.toml at master · LGUG2Z/helix-v...
Here's my thought on 💭 helix-vim/config.toml at master · LGUG2Z/helix-vim Here are some really great keybinds to make helix vim-like. It feels very…
-
💭 Support regex substitution command · Issue #2232...
Here's my thought on 💭 Support regex substitution command · Issue #2232 · helix-edito... helix multicursor has the ability to do what vims does by using…
-
💭 Support regex substitution command · Issue #2232...
Here's my thought on 💭 Support regex substitution command · Issue #2232 · helix-edito... Here is a really good vim substitute with regex capture groups,…
-
💭 Support regex substitution command · Issue #2232...
Here's my thought on 💭 Support regex substitution command · Issue #2232 · helix-edito... Interesting take on refactoring the whole codebase from your…
-
💭 Support regex substitution command · Issue #2232...
Here's my thought on 💭 Support regex substitution command · Issue #2232 · helix-edito... I am a heavy user off substitutions in vim, helix does not…
-
💭 Background Image | Wallpaper · Issue #3059 · hel...
Here's my thought on 💭 Background Image | Wallpaper · Issue #3059 · helix-editor/helix How to make helix themes transparent. You can make any built-in theme…
-
💭 help on setting up ruff formatter + ruff + pyrig...
Here's my thought on 💭 help on setting up ruff formatter + ruff + pyright please : r/... This post shows how to set up multiple LSP's in helix, the example…
-
💭 configuring pylsp · helix-editor/helix · Discuss...
Here's my thought on 💭 configuring pylsp · helix-editor/helix · Discussion #6623 How to set your python formatter to black with helix. The following snippet…
-
💭 distrobox/docs/usage/distrobox-assemble.md at ma...
Here's my thought on 💭 distrobox/docs/usage/distrobox-assemble.md at main · 89luca89/... This page is gold. It lays out all of the distrobox assemble api…
-
💭 add init hooks and exported bins · WaylonWalker/...
Here's my thought on 💭 add init hooks and exported bins · WaylonWalker/devtainer@2e4c6da Today I learned that you can use init_hooks to access host machine…
-
Vim-gq
Vim has a handy feature to format text with . You can use it in visual mode, give it a motion, or if you give it it will format the current line. I use this quite often while writing in markdown, I do not use softwraps in vim, so quickly formats my current line into a paragraph. Once I have done this for a single line one time I typically switch to the motion for around paragraph to format the whole paragraph and not just the current line. before formatting vim-gq-20240805122634078.we
-
convert mp4 for twitter with ffmpeg
I've had a couple of uploads to twitter fail recently and has been a pain. I tried some online converters for convenience, but none of them worked. I reached out to chatgpt and found succeess with this ffmpeg command.
-
💭 There’s a TUI for that with Nick Janetakis (Chan...
Here's my thought on 💭 There’s a TUI for that with Nick Janetakis (Changelog & Friend... 50 minutes into this episode they start a discussion on seo, and…
-
💭 Command Line Interface Guidelines
Here's my thought on 💭 Command Line Interface Guidelines This is a pretty sick set of guidelines to help you write better cli programs, I'm definitely coming…
-
💭 Find And Replace one eyed kirby
Here's my thought on 💭 Find And Replace one eyed kirby another great use and demo of the one eyed fighting kirby !!! note This post is a thought . It's a…
-
💭 Darren Burns 🌱 on X: "Here's an early clip of my...
Here's my thought on 💭 Darren Burns 🌱 on X: "Here's an early clip of my new (work in ... This looks like a sweet tui postman clone. Darren is really rolling…
-
Refactoring one line links into wikilinks
Previously I had setup a feature of my website to expand one line links into a card. This was not a standard, even to the point that some formatters wrap the links with , thus breaking my custom plugin. Moving to the wikilink standard will allow my markdown posts to work accross more site builders without custom integrations. [[ expand-one-line-links ]] What is a wikilink Wikilinks are standard to a lot of wikis written in markdown. markdown-it-wikilinks {.hoverlink} The wikilink syntax is a
-
💭 Distrobox
Here's my thought on 💭 Distrobox distrobox gives you to run commands on the host. This is handy to get access to host level clis that you probably wouldn't…
-
💭 Safer Bash Shebang Recipes - Just Programmer's M...
Here's my thought on 💭 Safer Bash Shebang Recipes - Just Programmer's Manual When using justfiles each line is ran separately from the last, unless you…
-
💭 rich.panel — Rich 13.6.0 documentation
Here's my thought on 💭 rich.panel — Rich 13.6.0 documentation This is my go to rich response container for clis written in python. It creates a nice box…
-
💭 Creating SSH Apps with Charm Wish and Laravel Pr...
Here's my thought on 💭 Creating SSH Apps with Charm Wish and Laravel Prompts | Joe Ta... Joe has a sick cli.labs site for deploying tui applications. !!!…
-
💭 My harpoon config
Here's my thought on 💭 My harpoon config Install it harpoon config !!! note This post is a thought . It's a short note that I make about someone else's…
-
💭 From Vim To Zed - YouTube
Here's my thought on 💭 From Vim To Zed - YouTube I found this statement quite intriguing. multi-cursors are just macros. This is quite a philisophical video…
-
💭 The One Eyed Fighting Kirby
Here's my thought on 💭 The One Eyed Fighting Kirby I've heard prime say just give it the one eyed fighting kirby so many times, and execute it few times, and…
-
nvim stupid gf bind
So after months of fighting with gf not going to template files, I finally decided to put in some effort to make it work. This was the dumbest keybind in my config, that I copied from someone else without understanding it. What I am trying to do I have jinja templates in a directory called . I want to bind gf to open a template file, but it is trying to open a new file What did not work I tried all sorts of changes to my path, but it still didn't work. What I found after digging into my keyma
-
cli auth
Authentication from cli tools can be a bit of a bear, and I have to look it up every time. This is my reference guide for future me to remember how to easily do it. I set up a fastapi server running on port 8000, it uses a basic auth with as the username and as the password. The server follows along with what comes out of the docs. I have it setup to take basic auth, form username and password, or a bearer token for authentication. curl The og of command line url tools. wget My go to if I wan
-
💭 ImageMagick – Color Names
Here's my thought on 💭 ImageMagick – Color Names Full list of imagemagick color names. !!! note This post is a thought . It's a short note that I make…
-
💭 Will McGugan on X: "Just a wee thing that came u...
Here's my thought on 💭 Will McGugan on X: "Just a wee thing that came up today. I thi... Textual is so sick, Will just made a live markdown editor in the…
-
💭 kv - Command | Vault | HashiCorp Developer
Here's my thought on 💭 kv - Command | Vault | HashiCorp Developer hashi vault lets you manage secrets right from your cli. !!! note This post is a thought…
-
💭 Diagnostic - Neovim docs
Here's my thought on 💭 Diagnostic - Neovim docs Clear out lsp diagnostics in nvim. !!! note This post is a thought . It's a short note that I make about…
-
💭 casey/just: 🤖 Just a command runner
Here's my thought on 💭 casey/just: 🤖 Just a command runner I think just, might just be the thing I have been looking for. I've been looking for some ci/cd…
-
💭 wincent/aspects/dotfiles/files/.zshrc at 85fc42d...
Here's my thought on 💭 wincent/aspects/dotfiles/files/.zshrc at 85fc42d9e96d408a5b367... Wincent (Greg Hurrel) has a pretty solid and fast zshrc. I recently…
-
💭 Bob Belderbos on X: "Forget Python for a sec, he...
Here's my thought on 💭 Bob Belderbos on X: "Forget Python for a sec, here's how Vim h... I need to learn regex capture groups better. This is so dang…
-
jpillora-installer
jpillora/installer is the install script generator I have been looking for. It downloads binaries for your machine from GitHub releases and unzips them for you. It grabs the latest release, so you can easily update them. I have tried scripting these installs in the past and struggled to consistently get the latest version for every package and unpack it correctly. Also these pre-compiled binaries install rediculously fast compared to building them from source. Check out some example links. openi
-
💭 jpillora/installer: One-liner for installing bin...
Here's my thought on 💭 jpillora/installer: One-liner for installing binaries from Git... This is a sick looking bash script generator for installing binaries…
-
💭 Formatter
Here's my thought on 💭 Formatter Tried out biome today and it worked better than prettier on jinja templates, I might adopt this over prettier. !!! note This…
-
💭 cURL Command Without Using Cache | Baeldung on L...
Here's my thought on 💭 cURL Command Without Using Cache | Baeldung on Linux Busting cache with curl. I'm not sure how much gets cached by curl, but I have…
-
💭 sharkdp/bat: A cat clone with wings.
Here's my thought on 💭 sharkdp/bat: A cat clone with wings. Bat is my favorite pager, its the one for me that seems to just work more than the rest. colors,…
-
💭 How to Format All Files in a Directory with Pret...
Here's my thought on 💭 How to Format All Files in a Directory with Prettier | by Dr. ... Use prettier to format all files in a directory. By default…
-
💭 Formatting on save · jose-elias-alvarez/null-ls....
Here's my thought on 💭 Formatting on save · jose-elias-alvarez/null-ls.nvim Wiki neovim stopped formatting on save for me awhile ago and I have just been…
-
💭 Center things - Textual
Here's my thought on 💭 Center things - Textual How to center things in textual. Textual has a very unique way of styling text user interfaces for the…
-
💭 Using Rich Inspect to interrogate Python objects...
Here's my thought on 💭 Using Rich Inspect to interrogate Python objects - Textual I love rich inspect. It's one of my most often used features of rich. It…
-
💭 1j01/textual-paint: :art: MS Paint... in your te...
Here's my thought on 💭 1j01/textual-paint: :art: MS Paint... in your terminal. 1j01 created a complete working clone of ms paint in the terminal using the…
-
💭 Harlequin SQL IDE - DuckDB
Here's my thought on 💭 Harlequin SQL IDE - DuckDB Harlequin is a pretty sweet example of what textual can be used to create. Its a terminal based sql ide…
-
💭 doyensec/wsrepl: WebSocket REPL for pentesters
Here's my thought on 💭 doyensec/wsrepl: WebSocket REPL for pentesters Very inspiring textual project to check out how they set up the ui. Their intro video…
-
💭 Doyensec on Twitter: "Announcing wsrepl, the Web...
Here's my thought on 💭 Doyensec on Twitter: "Announcing wsrepl, the WebSocket testing... wsrepl is an epic websocket repl built in python on the textual…
-
💭 Deleting Specific Lines in a File with sed or yq
Here's my thought on 💭 Deleting Specific Lines in a File with sed or yq sed can be a tricky beast, I often stumble when trying to pipe into it. Next time I…
-
💭 LazyVim Installation
Here's my thought on 💭 LazyVim Installation Lately in 2023 I have been leaning on lazyvim for my new setups where I am not necessarily ready to drop my full…
-
Releasing a New Version of Your Python Package Jus...
Quickly and easily create new versions of your Python package with the command. Get the version number, changelog, and Releasing a new version of your Python package can be a daunting task. You need to make sure that all the necessary files are included, and that the version number is correct. But now, with the help of the command, you can make the process much smoother. The command allows you to quickly and easily create a new version of your Python package. All you need to do is provide t
-
dash e your github docker actions
Give github actions the -e flag in the shebang so they fail on any one command failure. Otherwise each line will set the exit status, but only the last one will be passed to ci. What is -e The -e flag to the bash command allows your script to exit immediately if any command within the script returns a non-zero exit status. This can be useful for ensuring that your script exits with an error if any of the commands it runs fail, which can help you identify and debug issues in your script. For ex
-
nvim navic
With the latest release of version of nvim 0.8.0 we get access to a new winbar feature. One thing I have long wanted somewhere in my nvim is navigation for pairing partners or anyone watching can keep track of where I am. As the driver it's easy to keep track of the file/function you are in. But when you make big jumps in a few keystrokes it can be quite disorienting to anyone watching, and having this feedback to look at is very helpful. "cybernetic soldier working on a rusting tape machine
-
GitHub Actions Delete all Workflow Runs
Today I ran a bunch of actions, but I wanted to clean up all the runs that I used to get it setup so that I had a good clean history to refer back to later. I found this post
-
vimgrep open buffers
How to vimgrep over hidden files. I needed to delete all build pipeline steps that were named . I currently have about 60 projects running from the same template all running very similar builds. In the past I've scripted out migrations for large changes like this, they involved writing a python script that would load the yaml file into a dictionary, find the corresponding steps make the change and write it back out. Today's job was much simplar, just delete the step, were all steps are surrou
-
You must use augroup with autocmd in vim | Here's ...
If you are running vim autocmd's without a group, you're killing your performance. Granted your probably not sourcing your vimscript files with autocmd's too often, but every time you source that vimscript you are adding another command that needs to run redundantly. https://youtu.be/2ITTn4Dl0lc This is what I had Not silky smooth For WAAY too long I have had something like this in my vimrc or init.vim. It formats my python for me on every save, works great except if I source my dotfiles mor
-
Code Review from the comfort of vim | Diffurcate
I often review Pull requests from the browser as it just makes it so easy to see the diffs and navigate through them, but there comes a time when the diffs get really big and hard to follow. That's when its time to bring in the comforts of vim. https://youtu.be/5NKaZFavM0E Plugins needed This all stems from the great plugin by AndrewRadev . It breaks a down into a project. So rather than poping into a pager from git diff, you can pipe to diffurcate and it will setup a project in a tmp directo
-
Setup a yaml schema | yamlls for a silky smooth se...
I've gone far too long without a good setup for editing yaml files, I am missing out on autocomplete and proper diagnostics. This ends today as I setup yaml-language-server in neovim. https://youtu.be/xo4HrFoKF4c {.youtube-embed} The video for this one is part of a challenge-playlist I put out for myself to constantly improve my dotfiles for all of December. init.vim I have my setup to only source other modules, if you want everything in a single config, feel free to do as you wish. I broke mi
-
Open files FAST from zsh | or bash if thats your t...
https://youtu.be/PQw_is7rQSw I am often in a set of tmux splits flying back and forth, accidentally close my editor, so when I come back to that split and hit my keybinds to edit files I enter them into zsh rather than into nvim like I intended. Today I am going to sand off that rough edge and get as similar behavior to nvim as I can with a couple of aliases. Make sure you check out the YouTube video to see all of my improvements. what's an alias If you have never heard of an alias before it's
-
How linux users install a text editor
In honor of the neovim 0.6.0 release, I decided to do a funny skit installing neovim, and fix up my install script in the process as part of my challenge to fix up my dotfiles. I ran into one snag where I was not updating the repo that I cloned. I moved it to the directory I now keep third-party git repos and set it to update with ansible. https://youtu.be/64oKLphhBuo The thing that took me the longest to realize was.... I had a path issue pointing me to an old install of the appimage over the
-
30 days dotfile ricing
https://youtu.be/Jq1Y48F_rOU {.youtube-embed} I am challenging myself to 30 days of dotfile ricing. I have been on linux desktop for a few months now and have a pretty good workflow going, I have the coarse edits done to my workflow, but it has some rough edges that need sanded down. It's time to squash some of those little annoyances that still exist in my setup. This is primarily going to be focused on productivity, but may have a few things to just look better. This will comprise heavily of a
-
JUT | Read Notebooks in the Terminal
Trying to read a .ipynb file without starting a jupyter server? jut has you covered. https://youtu.be/t8AvImnwor0 watch the video version of this post on YouTube install is packaged and available on pypi so installing is as easy as pip installing it. installing jut with pip ! This is my first time including snippets of the video in the article like this, let me know what you think! examples running jut examples what are all the commands available for jut? Take a look at the help of the cli
-
I made a neovim plugin
I've slowly adding more and more lua functions into my neovim configuration, and recently I noticed a pattern for a class of functions that reach out to run shell commands that can be abstracted away. https://youtu.be/8m5ipBuopPU {.youtube-embed} Telegraph.nvim Check out the project readme for the most up to date details on the plugin itself. Motivation I want a simple way to make remaps into shell commands that can open new tmux windows, popups, or just run a command with context from the edit
-
tmux targeted session
https://youtu.be/5KE7Il7SOEk {.youtube-embed} This is something that I made up but use every single day, this is what keeps much of what is on my blog or my teams private work wiki going. I have a few very important directories that I have assigned directly to a hotkey for fast session switching. [[ tmux-new-session ]] This one is building off of yeserday's new-session post, make sure you check that one out as well. [[ tmux-nav-2021 ]] for more information on how I navigate tmux, check out this
-
tmux detach
https://youtu.be/A1qx3tNKDdA {.youtube-embed} tmux detach is a handy tmux command that will quit your current session while keeping it running. The full name of the comamnd is , is a shorthand. default keybinding I have mine bound to where mod is alt. https://waylonwalker.com/tmux-nav-2021/ {.hoverlink} for more information on how I navigate tmux, check out this full post Also check out the full YouTube tmux-playlist to see all of the videos in this series.
-
tmux attach
https://youtu.be/JQ0yDCVu44E attach is one of the most useful features of tmux. If you have no interest in tmux for pane and window management, you should use tmux for this. It can be a life saver if you ever get disconnected from the host machine or accidently close your terminal you can connect right back into the session you were just in using attach. attach this command will simply attach back to tmux if you are ever disconnected If you ever run long running tasks on a remote machine by ss
-
tmux ls
https://youtu.be/LY41GLn_DGg {.youtube-embed} tmux ls will list the sessions that you have running within the tmux server if tmux is currently running. This is handy to combine with commands such as . [[ tmux-attach ]] [[ tmux-nav-2021 ]] for more information on how I navigate tmux, check out this full post Also check out the full YouTube tmux-playlist to see all of the videos in this series.
-
tmux command line
https://youtu.be/SNu-4IrkjAs {.youtube-embed} So far we have covered a lot of tmux commands and how they map to keybindings but these same commands can be executed at the command line. From the command line Let's make a popup that displays our git status for 5s or until we close it manually. We can run the following command at the command line, in a split. From the tmux command line Or we can open the tmux command line and run it from tmux's built in command line, which is very similar to bim E
-
tmux copy-mode
https://youtu.be/-ypY_-VmBKk {.youtube-embed} tmux copy-mode is a tmux mode that lets you scroll, search, copy, and jump your way through a pane. There are a ton of keybindings for copy-mode, the main ones you will need to know are for searching down for searching up, for next item, for starting a selection, and enter to copy the selection. Arrow keys will be used for navigation unless you have specified vi mode, then it will be . Default keybinding to get into copy mode is . If you a
-
tmux join-pane
https://youtu.be/Vm5rRtcVXLw {.youtube-embed} Join-pane allows you to join panes that you have broken away from your window, or created in a different window to the window you want it in. As far as I know there is not a default keybinding for it. Before you can join a pane you must first have a pane marked to join. Once you mark a pane, go back to the window you want to join it to and join-pane. My keybindings, you must add this to your file to use them. [[ tmux-nav-2021 ]] for more informat
-
tmux break-pane
https://youtu.be/ICL609F2xnc {.youtube-embed} Break-pane is a handy tmux command when your layout gets too cramped and you want to just move a split into its own window. Calling does exactly that, it creates a for you and moves your currently selected split into that window Default key binding for [[ tmux-nav-2021 ]] for more information on how I navigate tmux, check out this full post
-
tmux zoom
https://youtu.be/Rn6mOarCQ-Y {.youtube-embed} Zooming into the current split in tmux is a valuable tool to give yourself some screen real estate. These days I am almost always presenting, streaming, or pairing up with a co-worker over a video call. Since I am always sharing my screen I am generally zoomed in to a level that is just a bit uncomfortable, so anytime I make a split it is really uncomfortable, being able to zoom into the split I am focused on is a big help, and also help anyone wat
-
tmux new-window
https://youtu.be/YRPZBv-iYyE {.youtube-embed} New window as it sounds makes new windows in tmux. Windows are kind of like tabs. They are another screen within your sessions that you can name and make new panes in. Default key bindings for creating and navigating windows in tmux. As always I have rebound these keys because I generally prefer a single keystroke over the prefix plus keybinding approach that tmux gives by default. When I started using tmux I did almost everything in one giant sess
-
tmux slect-pane
https://youtu.be/CPZJZjN9YTY {.youtube-embed} These are my MOST often used keybindings that I use in tmux. They allow me to jump between splits with ease with a vim style layout. I can hold mod and jump between panes with a familiar arrow key. [[ tmux-nav-2021 ]] for more information on how I navigate tmux, check out this full post
-
tmux rotate-window
https://youtu.be/06z5qf81ofo {.youtube-embed} Rotate window is the main way that I navigated tmux before I learned . It allows you to change your focused pane, or rotate the position of the panes easily. Default keybindings My keybindings look just a bit different than the default ones, I do not like needing to hit prefix for every command, especially for repeated commands. I set a similar keybinding to the default one that uses mod instead of prefix. [[ tmux-nav-2021 ]] for more information o
-
tmux select-layout
https://youtu.be/F0mHnwTrNNc {.youtube-embed} When you get many splits going in tmux sometimes its time for a new layout. There are four layout strategies that I use, main-vertical, main-horizontal, even-vertical, even-horizontal. Almost always I am useing the main ones with mod plus a or mod plus shift a keybindings. [[ tmux-nav-2021 ]] for more information on how I navigate tmux, check out this full post
-
tmux resize-panes
https://youtu.be/hpFYE2LU7xc {.youtube-embed} Resizing panes in tmux can be quite difficult in default tmux, I use a set of keybingings to help resize panes in the rare occasions that I do need just a bit more space. I set the keybinding to the same as my split navigation bindings but shifted. They are very vim like (h,j,k,l). Most often when I need to resize panes I just grab the edge of the pane with my mouse. Yes the mouse, its not that often that I actually need to change the size of a pan
-
tmux choose-tree
https://youtu.be/79Y-kqAiMpw {.youtube-embed} Choose tree is a powerful tmux utility that provides a graphical interface to preview all sessions, windows, and panes, move between them kill them, move them and much more. The default keybinding my preferred keybinding to open sessions and windows collapsed and Zoomed in. From the man page. https://waylonwalker.com/tmux-nav-2021/ {.hoverlink} for more information on how I navigate tmux, check out this full post
-
tmux prefix
https://youtu.be/BMkpbfhbkKM {.youtube-embed} The prefix key is an essential part of tmux, by default all of tmux's key-bindings sit behind a prefix. This prefix is very similar to vim's leader key. It is common for folks to change the default (control b) to or if they are a vim user something to match their vim leader key. A few of the essential default key-bindings. A more complete list of key-bindings can be found in this gist https://gist.github.com/mzmonsour/8791835 . [[ tmux-nav-2021
-
tmux splitting panes
https://youtu.be/kzgyiHap1nQ {.youtube-embed} splitting panes is a core feature of tmux. It allows us to split the terminal vertically or horizontally into new panes. 🗒️ note that '#{pane_current_path}'will keep the split in the same directory as it's parent, without this it will default to your home directory. [[ tmux-nav-2021 ]] for more information on how I navigate tmux, check out this full post
-
tmux last session
https://youtu.be/RB87EEnnMnU {.youtube-embed} 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. I think of this hub and spoke model, and use to quickly drive it. hub and spoke [[ tmux-nav-2021 ]] for more information on how I navigate tmux, check out this full post
-
tmux floating popups
https://youtu.be/2ZqFDsJywt8 {.youtube-embed} 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. Here are a couple of keybindings I use to open up popup windows. [[ tmux-nav-2021 ]] for more information on how I navigate tmux, check out this full post
-
tmux popups
https://youtu.be/2I8fB28zfB4 {.youtube-embed} Tmux-popups are a great feature that is relatively new to tmux, many repos such as the standard ubuntu repos do not have it. Popups came in 3.2a, if your package manager does not have it, you can follow the tmux's install instructions to build from source. [[ tmux-nav-2021 ]] for more information on how I navigate tmux, check out this full post I use popups quite a bit in my workflow to ssh into another machine for a short period, or make a new p
-
How I navigate tmux in 2021
In 2021 I changed the way I navigate between tmux sessions big time. Now I can create, kill, switch with ease, and generally keep work separated into logical groups. Update Since making this post, I have made ~20 other posts in short form that all have a YouTube video to go along with them you can find them all on my tmux-playlist . Chris Toomey's Tmux Course I took Chris's tmux course in December 2020 and it was fantastic. Even as a seasoned tmux user, I learned quite a bit. Before the cou
-
Trim unused git branches
Trim branches no longer on origin Find branches already merged
-
Create a Virtual File Gallery with Symlinks
Creating a directory that is a union of several directories can be achieved with a few symlinks at the command line. Creating a Virtual File Gallery Here is how I am creating a virtual directory of all my projects that is a combination of both work and not-work projects. I am creating symlinks for every directory under and . ⚠ Notice that first I am recreating the directory each time. This will ensure that any project that is deleted from their actual directory is removed from the virtual ga
-
How to Install micromamba on linux (from the comam...
I really like using conda ( ) as my python virtual environment manager of choice. It's simple and it includes its own python interpreter using the version that I specify at creation. Mamba from their readme Mamba is a reimplementation of the conda package manager in C++. parallel downloading of repository data and package files using multi-threading libsolv for much faster dependency solving, a state of the art library used in the RPM package manager of Red Hat, Fedora and OpenSUSE core parts
-
Vim Wsl Clipboard
I've long used neovim from within windows wsl, and for far too long, I went without a proper way to get text out of it and into windows. wsl has access to cmd applications wsl can access clip.exe. You can do some cool things with it, such as cat a file into the clipboard, sending output from a command to the clipboard, or set an autocmd group in vim to send yank to the windows clipboard. using clip.exe Let's say you want to send a teammate the tail of a log file over chat. You can tail the file
-
Quickly Edit Posts
Recently I automated starting new posts with a python script. Today I want to work on the next part that is editing those posts quickly. [[ automating-my-post-starter ]] Check out this post about setting up my posts with python 🐍 Enter Bash For the process of editing a post I just need to open the file in vim quickly. I dont need much in the way of parsing and setting up the frontmatter. I think this is a simple job for a bash script and fzf. change to the root of my blog fuzzy find the post
-
Vim Replace Visual Star
Replacing text based on whats in the current search register is a quite handy tool that I use often. I believe I picked this tip up from Nick Janetakis, check out his YouTube channel for some amazing vim tips. https://www.youtube.com/watch?v=fP_ckZ30gbs {.hoverlink} If there is one thing that I Like most about vim it's the ability to hack on it and make it work well for you. Replacing text in vim Vim can often be a bit verbose, but that's ok because we can hack on it, and make our own shortcuts
-
If Tmux
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't ask for it. Bash Function Bash function to check if the shell is in a tmux session. Using the bash function I often open up vim to do some quite edits, but before I know it I have several splits open and I need access to another shell utility, but I forgot to start in tmux. This function makes sure tht I start in tmux everytime. Using to ensure vim is opened in tmux.
-
Save Vim Macro
If you are like me, you have created a macro or two that is pure glory, and you forget how you made it after a day or so, or you immediately want to store it away as a custom keybinding. As with most things with vim, it's easy to do once you understand it. Creating a Macro One of the earliest things we all learn to do in vim is to create macros, custom sets of functionality stored in a register that can be replayed later. To create a macro, get into normal mode, then type followed by a letter
-
Live Substitution In Neovim
Replacing text in vim can be quite frustrating especially since it doesn't have live feedback to what is changing. Today I was watching Josh Branchaud's Vim-Unalphabet series on Youtuve and realized that his vim was doing this and I had to have it. https://twitter.com/_WaylonWalker/status/1346081617199198210 How to do it I had to do a bit of searching and found a great post from vimcasts that shows exactly how to get the live search and replace highlighting using :h inccommand Add this to you
-
Newsboat
Web browsers are a black hole of productivity. I try to use them as little as possible when it is time to focus. I try to use , , or with ipython, or --help at the command line as much as possible. What about that time I am trying to see what my online friends are posting on their sites? I used to used google reader quite heavily before that was taken down. Newsboat I am going to give a terminal rss reader a try for a bit and see how that goes for me. I have really struggled to get into
-
Find and Replace in the Terminal.
grepr grepd CocSearch
-
Creating Reusable Bash Scripts
Bash is a language that is quite useful for automation no matter what language you write in. Bash can do so many powerful system-level tasks. Even if you are on windows these days you are likely to come across bash inside a cloud VM, Continuous Integration, or even inside of docker. I have three techniques that help me write more composable bash scripts. functions Arguments positional arguments All Arguments Error Handling main script Functions Break scripts down into reusable components Functio
-
How to Install miniconda on linux (from the comman...
miniconda is a python distribution from continuum. It's a slimmed-down version of their very popular anaconda distribution. It comes with its own environment manager and has eased the install process for many that do not have a way to compile c-extensions. It made it much easier to install the data science stack on windows a few years ago. These days windows are much better than it was back then at compiling c-extensions. I still like its environment manager, which installs to a global directory
-
git push without setting upstream
Finally after years of hand typing out a full I found there is a setting to automatcally push to the current branch. More realisitically I just did a let git yell at me, and copying the suggestion. git config This one setting will now to the current branch without yelling at you that your upstream does not match your current branch. This helps me ship chnages faster as I am constantly chnaging projects and branches.
-
simple click
cli tools are super handy and easy to add to your python libraries to supercharge them. Even if your library is not a cli tool there are a number of things that a cli can do to your library. Example Ideas Things a cli can do to enhance your library. 🆚 print version 🕶 print readme 📝 print changelog 📃 print config ✏ change config 👩🎓 run a tutorial 🏗 scaffold a project with cookiecutter 🖱 Click Click is the most popular python cli tool framework for python. There are others, some old, some new c
-
cmd.exe tips
I spend a lot of my time at the terminal for my daily work, mostly in Linux or wsl. One big reason for using wsl over cmd.exe is the ease of walking through history that fzf provides. This week we had a windows bug in a cli and I was stuck in vanilla cmd.exe 😭 > Cmder First off if you are stuck using cmd.exe, do yourself a favor and get cmder. It makes life just a bit easier. It is super confugurable and comes with several power ups that make it a bit more enjoyable than cmd.exe. History F
-
Supercharge Zsh Startup
I have been using oh-my-zsh successfully for about 2 years now. But lately my startup time has been really bothersome. It has grown to the point where it was taking about 5.5s to startup a shell! This is ok if I am going to spend some time in here for awhile and do some work that benefits from all of the autocompletions, plugins, and shortcuts that oh-my-zsh brings. But to only jump in to run a handful of commands is infuriating. 📑 My Setup I believe the real issue is io speed on wsl. I hav
-
Keep Location List Closed
Vim's (neovim in my case) location list can provide some very useful information while developing. Mine gives me information about linting and type checking errors with fairly little config. Generally, it sits nicely at the bottom of the screen and barely affects me. Other times, especially while zoomed way in during a presentation, it just gets in the way. location list eats the screen Location List eating up the screen while I am zoomed in and trying to live code Toggling the location list
-
📝 Bash Notes
Bash is super powerful. File System Full Show Remaining Space on Drives show largest files in current directory Move files then symlink them Fuzzy One Liners edit in vim cat a file bash execute git add git reset Kill a process Finding things Files fd-find is amazing for finding files, it even respects your file 😲. Install with . ++Vanilla Bonus Content ** show matching text ** ++Vanilla Bonus ** show file names only ** ++Vanilla Bonus Recursively Replace text ++Vanilla Bon
-
Keyboard Driven VSCode
Throw that mouse Away its time to setup some keyboard shortcuts. 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 shor
-
Vim Notes
vim notes nvim lua norcalli/neovim-plugin nvim lsp python-lsp/python-lsp-server Using c to change text I have gone quite awhile without using and instead using . The reason that I started using is because it automatically places you into insert mode. This not only saves me one keystroke for commands such as is now , but it also works with the repeat command!!! This is huge. When refactoring a document I had been creating a macro to change one word to another, using instead of a