-
💭 The Worst OS - YouTube
Here's my thought on 💭 The Worst OS - YouTube How is usability and it doing the thing I paid for it to do a selling point?? Any time I've touched a windows…
-
💭 The Worst OS - YouTube
Here's my thought on 💭 The Worst OS - YouTube How is usability and it doing the thing I paid for it to do a selling point?? Any time I've touched a windows…
-
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.
-
aptitude why
Today I ran into an interesting question, why am I being asked to configure tzdata while installing npm. Turns out that the cli has a why command that very handily nails down why you have something installed on a debian based system. Install aptitude Why tzdata Now we can query why we need tzdata and see the full chain with the root package being .
-
configure timezone
Today I ran into this interactive prompt on ubuntu while installing node and npm, and I do not want to manually configure this interactively every time I run an install, moreso in docker I do not have the interactive terminal to do so. Why tzdata Checking aptitude why tzdata it shows that the chain goes back through npm. The solution, configure tzdata !!! TIP DEBIAN_FRONTEND=noninteractive This is required, because apt installing tzdata will trigger the interactive prompt. You will manually con
-
bc
https://www.youtube.com/watch?v=03KsS09YS4E&t=610s Today I learned about the basic calculator, bc. At the very end of this video prime uses it to add numbers in vim. REPL You can start a calculator repl at the command line, by running bc. Vim Since bc supports standard unix pipes you can easily pipe data from vim into bc and back out using . All you need is a string of math on the line you want to calculate, go to normal mode and run to get the answer. Traditionally I will open my system ca
-
💭 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
-
💭 Why You Should Game on Linux (feat. GloriousEggr...
Here's my thought on 💭 Why You Should Game on Linux (feat. GloriousEggroll of Nobara)... This man is responsible for making gaming on linux what it is…
-
💭 curl with partial files | daniel.haxx.se
Here's my thought on 💭 curl with partial files | daniel.haxx.se This is a cool new feature coming to bash, I can't think of a use case I have out of the…
-
💭 Hybrid Cloud Show – Episode 20 - YouTube
Here's my thought on 💭 Hybrid Cloud Show – Episode 20 - YouTube Red Hat has donated the whole open alternative to docker to the CNCF, the hosts weigh in with…
-
setting up ucore-zfs
I just setup my oldest hardware on the newest hotest server distro ucore-zfs. This is a gateway FX6860 manufactured in 2010. Immutable is the future My current boot log shows that I first started daily driving bazzite back in August 2024. I've been hapily using it since my arch install was plaugued with a crippling display driver error, or something that would lock the display for minutes every 30s or so, it became unusable. I switched because this is what I put my son on and it was working gr
-
💭 Ubuntu Summit 2024 | UMU - A unified tool for ea...
Here's my thought on 💭 Ubuntu Summit 2024 | UMU - A unified tool for easily running y... Damn Glorious Eggrolls is still making gaming on linux better. Of…
-
💭 Dedicated Servers | Intel Servers | AMD Servers ...
Here's my thought on 💭 Dedicated Servers | Intel Servers | AMD Servers - Dedicated Ho... Dax talked about this in a recent How about tomorrow podcast…
-
💭 Talking with Typecraft - YouTube
Here's my thought on 💭 Talking with Typecraft - YouTube This is a pretty great episode talking shop with typecraft. They talk setups, cameras, content…
-
💭 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…
-
💭 linux - What is stored in /dev/pts files and can...
Here's my thought on 💭 linux - What is stored in /dev/pts files and can we open them?... today I learned that /dev/pts is a pseudo-tty. It amazes me how…
-
arch remove orphaned packages
-
💭 pacman/Tips and tricks - ArchWiki
Here's my thought on 💭 pacman/Tips and tricks - ArchWiki The arch wiki is always full of good content, and pacman tips and tricks does not disappoint. Today…
-
💭 Inside 22,734 Steam games | daniel.haxx.se
Here's my thought on 💭 Inside 22,734 Steam games | daniel.haxx.se Interesting to see that curl is used in so many places. I often think of things like games…
-
💭 wcurl is here | daniel.haxx.se
Here's my thought on 💭 wcurl is here | daniel.haxx.se interesting, seems like such a simple way to completely remove the need of a whole other cli. No…
-
playerctl fixes arch media keys
I've long had issues with my qmk keyboard media keys on my arch install, I always thought it was on the keyboard end. Today I learned that playerctl fixes this. Once it is installed all of my media keys started working right away. I played around with it a bit more and came up with a way to display the current playing title in my notifictations.
-
💭 podman requries qemu-system on ubuntu
Here's my thought on 💭 podman requries qemu-system on ubuntu podman requires qemu-system on The fix to this for me was to install qemu-system before podman…
-
💭 catppuccin/ulauncher: 🇺 Soothing pastel theme fo...
Here's my thought on 💭 catppuccin/ulauncher: 🇺 Soothing pastel theme for Ulauncher I am using this theme for Ulauncher in arch and it looks fantastic! One…
-
💭 Ulauncher — Application launcher for Linux 🐧
Here's my thought on 💭 Ulauncher — Application launcher for Linux 🐧 Just discovered this really cool launcher from the DHH distro omakub. github.com/omakub…
-
💭 basecamp/omakub: Opinionated Ubuntu Setup
Here's my thought on 💭 basecamp/omakub: Opinionated Ubuntu Setup This is DHH's linux startup script. Call it a distro if you want, but he doesn't. It's…
-
tailscale ssh
Tailscale allows you to ssh into all of your tailscale machines, it busts through firewalls and accross networks without complex setup. If you have used tailscale before this is an obvious no brainer. What is not obvious is that you can configure tailscale to allow ssh connections from devices within your tailnet without even a ssh daemon process running right through the tailscale daemon. I picked this up from the tailscale youtube channel. Tailscale {.youtube-embed}
-
💭 How to Force Dark Mode on Every Website in Googl...
Here's my thought on 💭 How to Force Dark Mode on Every Website in Google Chrome Sometimes I struggle to get my os to report dark mode to chrome, luckily…
-
💭 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…
-
💭 Are We Anti-Cheat Yet?
Here's my thought on 💭 Are We Anti-Cheat Yet? A comprehensive community built index of anti-cheat support for linux very similar to proton, but specific to…
-
💭 Install Pokemon TCG Live on Steam Deck - Install...
Here's my thought on 💭 Install Pokemon TCG Live on Steam Deck - Installation Guide - ... I had no idea that you could just drop an msi installer right in…
-
just picker
has been by go to tool for saving commands in a way that I can replay them and have team members replay them without relying on the shell history of any given machine. This is my go to default step, it lets you pick a just command to run with a fuzzy picker.
-
💭 Bug #2006590 “gdm3 crashes with SIGTRAP on start...
Here's my thought on 💭 Bug #2006590 “gdm3 crashes with SIGTRAP on startup” : Bugs : g... This Thread saved my son's ubuntu 24.04 install. His was failing to…
-
showmount-e
TIL how to display the list of nfs mounts on your network. You can even look for mounts of other machines on your network.
-
Redka Runs on SQLite
With the liscense changes to redis there are several new forks out there. One that I am particularly interested in is redka . We now have redis running on port 6379 that we can connect to with a redis client. And we have a sqlite database that we can inspect. We can look at the values in the vstring table.
-
Am I vulnerable to the xz backdoor?
The main system that I am concerned about is my arch BTW machine. I found a great article from the official archlinux site covering it. For my machine I am concerned with this line. The xz packages prior to version 5.6.1-2 (specifically 5.6.0-1 and 5.6.1-1) contain this backdoor. I checked my xz package with paru, and I am good.
-
arch dependencies
paru has some nice features that I rarely use, and hav to look up when I need them. Here are two commands to help with dependency management. You can check all the packages depended on by nodejs by running the following. This is everything from all of the repos you have configured, not what you have installed.
-
💭 Arch Linux - News: The xz package has been backd...
Here's my thought on 💭 Arch Linux - News: The xz package has been backdoored Check your system to see if you are vulnerable to the xz backdoor. I found this…
-
How to kill ollama server
I recently updated ollama , and it now installs a systemd service that I was not expecting. Seems like a great option, but I hadn't expeted this and I was able to kill it previously. It was using up gpu, and I do other things on my machine with a gpu. I tried pkill, kill, and everything, it was still coming back. No matter what it comes back You can confirm this with the following command. Next time you want to start you can do it as before with .
-
💭 How to kill process based on the port number in ...
Here's my thought on 💭 How to kill process based on the port number in Linux - Linux ... I've often struggled to find and kill a process using a certain port…
-
💭 How to run pods as systemd services with Podman ...
Here's my thought on 💭 How to run pods as systemd services with Podman | Enable Sysadmin podman comes with a nice command for generating systemd service…
-
💭 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,…
-
💭 Relocating the Docker root directory - IBM Docum...
Here's my thought on 💭 Relocating the Docker root directory - IBM Documentation A very straightforward guide to moving your docker data, such as container…
-
💭 containers/aardvark-dns: Authoritative dns serve...
Here's my thought on 💭 containers/aardvark-dns: Authoritative dns server for A/AAAA c... I ran into some dns issues while running podman on arch, aparantly I…
-
💭 Podman - ArchWiki
Here's my thought on 💭 Podman - ArchWiki I kept running into limits in the number of subuid and subgid's I had on my system by default. As always thank the…
-
💭 TestDisk Step By Step - CGSecurity
Here's my thought on 💭 TestDisk Step By Step - CGSecurity is an amazing command line utility (interactive tui) that just saved me a hard drive that was…
-
💭 How to Manage 'Systemd' Services and Units Using...
Here's my thought on 💭 How to Manage 'Systemd' Services and Units Using 'Systemctl' i... A fantastic overview of the systemd cli. !!! note This post is a…
-
💭 How to fix ZFS pool not importing at boot :: ./t...
Here's my thought on 💭 How to fix ZFS pool not importing at boot :: ./techtipsy — Her... Hacky solution to get to work on boot right away. This has been…
-
💭 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…
-
💭 How to pull from images from docker.io with podm...
Here's my thought on 💭 How to pull from images from docker.io with podman By default podman will not pull images from docker.io and will need setup. This…
-
💭 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…
-
setting up paru | installing from the AUR for the ...
paru is an aur helper that allows you to use a package manager to install packages from the aur. What's the Aur The Aur is a set of community managed packages that can be installed on arch based distros. Why a helper? paru just makes it easy, no clone and run makepkg. You can do everything paru can do using the built in pacman installer. Manual Install from the Aur You will need to manually instal pacman from the aur in order to get started. Installing packages with paru Once setup you are ready
-
useful btrfs tools
disk usage Looking at disk usage on any of these must be done using a tool built for it if you want an accurate measurement. General purpose tools like du will be inaccurate as they do not count things like duplicate copies in snapshots. -T for tabular format mounting the drive mounting a snapshot snapper btdu btrfs-assistant
-
Arch Linux Randomly Rejecting Passwords
Fix Arch Linux randomly rejecting passwords with one command. Try 'faillock --user $USER' to reset login counter and regain access. Quick solution for a smooth computing" an intertwined mess of wires If you're an Arch Linux user, you may have experienced a frustrating issue where your password is randomly not being accepted by the system. This can be a major inconvenience and can cause a lot of frustration, especially if it happens frequently. The good news is that there is a simple fix for this
-
ssh copy id
I recently setup some vm's on my main machine and got sick of signing in with passwords.
-
ssh key permissions
I just shared some ssh keys with myself and ran into this error telling me that I did not set the correct permissions on my key. I changed them with the following commands.
-
obs virtual camera on boot
For far too long I have had to fidget with v4l2oloopback after reboot. I've had this happen on ubuntu 18.04, 22.04, and arch. After a reboot the start virtual camera button won't work, It appears and is clickable, but never turns on. Until I run this command. "cell shaded, long, full body, shot of a cybernetic blue soldier with glowing pink eyes looking into a selfie camera with ring light, llustration, post grunge, 4 k, warm colors, cinematic dramatic atmosphere, sharp focus, pink glowing vol
-
Setting up snapper on Arch
https://www.youtube.com/watch?v=_97JOyC1o2o Note These are mostly my notes to remind myself, I'd Highly reccomend watching this-video or reading this arch wiki page /.snapshots already exists error When I started running I ran into the following error. snapshots-already-exists remove existing snapshots configure snapper btrfs subvolumes btrfs-subvolume-list You should now see in mountpoints. lsblk-snapshots Setting the default to @ so that you can boot into snapper snapshots btrfs-subvol-g
-
The one reason I switched to arch
The community, that's it, end of post, roll the credits. I'm a tinkerer I am a tinkerer, I am not going to run a stock desktop manager, mostly becuase that's just not how my brain works. I need to tweak everything to fit my needs. Grantid I have not spent much time in many full fledged linux desktop environments. They are far more customizable than windows ever will be, I absolutely love that about them. Inevitibly I end up in a situation where I hit a wall, it just won't do what I want it t
-
arch Fonts
https://gist.github.com/YoEight/d19112db56cd8f93835bf2d009d617f7
-
Manage your displays with xrandr manager
a stable diffusion done with a111 web ui xrandr is a great cli to manage your windows in a linux distro using x11, which is most of them. The issue is that I can never remember all the flags to the command, and if you are using it with something like a laptop using a dock the names of all the displays tend to change every time you redock. This makes it really hard to make scripts that work right every time. Homepage Check out the deresmos/xrandr-manager for more details on it. installation xran
-
qutebrowser clean up all status bars
I really like the super clean look of no status menus, no url bar, no bookmarks bar, nothing. Don't get me wrong these things are useful, but honestly they take up screen real estate and I RARELY look at them. What I really want is a toggle hotkey. I found this one from one of DT's youtube video's. I can now tap and both the status bar at the botton and the address bar at the top disappear.
-
A TTY Can Save Your Bacon
I recently was unable to boot into my home Linux Desktop, it got stuck at diskcheck . I found that I was able to get in to a tty through a hotkey. https://twitter.com/_WaylonWalker/status/1512281106120384519 What's a TTY? There's probably more to it, but to me its a full screen terminal with zero gui, not even your gui fonts. It does log into your default shell so if you have a comfy command line setup it will be here for you even though it looks much different without fonts and full colorspa
-
Dunk is my new diff pager
Dunk is a beautiful git diff tool built on top of rich . Browsing through twitter the other day I discovered it through this tweet by _darrenburns . https://twitter.com/_darrenburns/status/1510350016623394817 {.hoverlink} Dunk is beta Before I dive in deep, I do want to mention that Dunk is super new and beta at this point. I am making it my default pager, because I know what I am doing and can quickly shift back if I need to, no sweat. If you are a little less comfortable with the command
-
Unzip minecraft mods to their directory from the c...
This morning I was trying to install a modpack on my minecraft server after getting a zip file, and its quite painful when I unzip everything in the current directory rather than the directory it belongs in. I had the files on a Windows Machine So I've been struggling to get mods installed on linux lately and the easiest way to download the entire pack rather than each mod one by one seems to be to use the overwolf application on windows. Once I have the modpack I can start myself a small mod-s
-
Create a Swapfile on Your Linux Machine
If you ever end up on a linux machine that just does not have enough ram to suffice what you are doing and you just need to get the job done you can give it some more swap. You can look up reccomendations for how much swap you should have this is more about just trying to get your job done when you are almost there, but running out of memory on the hardware you have. make the /swap file You can put this where you wish, for this example I am going to pop it into make sure that your swap is on Yo
-
Install yq | A light weight yaml parser cli
is a command line utility for parsing and querying yaml, like does for json. This is for me I love that all of these modern tools built in go and rust, just give you a zipped up executable right from GitHub releases, but it's not necessarily straight forward how to install them. does one of the best jobs I have seen, giving you instructions on how to get a specific version and install it. I use a bunch of these tools, and for what its worth I trust the devs behind them to make sure they don
-
Git Worktrees are not so Scary
So worktrees, I always thought they were a big scary things. Turns out they are much simpler than I thought. Myth #1 no special setup I thought you had to be all in or worktrees or normal git, but not both. When I see folks go all in on worktrees they start with a bare repo, while its true this is the way you go all in, its not true that this is required. Lets make a worktree Making a worktree is as easy as making a branch. It's actually just a branch that lives in another place in your files
-
Setup SSH from chromebook to home desktop
I write many of these posts from a 10 year old desktop that sits in my office these days. It does a very fine job running all of the things I need it to for my side work, but sometimes I want a mobile setup. I don't really want to spend the $$ on a new laptop just for the few times I want to be somewhere else in the house. What I do have though is a chromebook. I've tried to get the chromebook into my workflow in the past, but have failed. Much because by the time I got all of my tools up an
-
Dedupe your shell paths
If you have ever ran and see duplicate entries it's likely that you have duplicate entries in your $PATH. You can clean this up with a one liner at the end of your bashrc or zshrc.
-
Bash mktemp
There is GNU coreutils command called that is super handy in shell scripts to make temporary landing spots for files so that they never clash with another instance, and will automatically get cleaned up when you restart, or whenever gets wiped. I'm not sure when that is, but I don't expect it to be long. Making temp directories Here are some examples of making temp directories in different places, my favorite is . Use Case Here is a sample script that shows how to capture the tempdir as a
-
Recover a lost git branch with checkout
Once you give a branch the big D ( ) its gone, its lost from your history. It's completely removed from your log. There will be no reference to these commits, or will there? TLDR Checkout is your savior, all you need is the commit hash. Immediate Regret your terminal is still open We have all done this, you give branch the big D only to realize it was the wrong one. Don't worry, not all is lost, this is the easiest to recover from. When you run the delete command you will see something like
-
Install obs flatpak
Big announcement recently that obs studio now builds out to a flatpak, hopefully making it easier for all of us to install, especially us near normies that don't regularly compile anything from source. install flatpak I did not have flatpak installed so the first thing I had to do was get the command installed, and add their default repo. Once I had flatpak, I was able to get obs installed with the following command. Once Installed it fired right up for me with the next command they suggested.
-
Vim remaps use cmd in place of :
Anyone just starting out their vim customization journey is bound to run into this error. I did not get it I'll admit, in hindsight it's very clear what this is trying to tell me, but for whatever reason I still did not understand it and I just used a : everywhere. From the docs If you run you will see a lot of reasons why you should do it, from performance, to hygene, to ergonomics. You will also see another clear statement about how to use . When to map with a : You still need to map your
-
Bluetooth at the command line on Ubuntu
One thing about moving to a tiling window manager like awesome wm or i3 is that they are so lightweight they are all missing things like bluetooth gui's out of the box, and you generally bring your own. Today I just needed to connet a new set of headphones, so I decided to just give the cli a try. It seems to come with Ubuntu, I don't think I did anything to get it. Running pops you into a repl/shell like bah, python, or ipython. From here you can execute commands. Here is what I had to
-
Simple Samba Share Setup
Samba is an implementation of the smb protocol that allows me to setup network shares on my linux machine that I can open on a variety of devices. I think the homelab is starting to intrigue me enought to dive into the path of experimenting with different things that I might want setup in my own home. One key piece of this is network storage. As I looked into nas, I realized that it takes a dedicated machine, or one virtualized at a lower level than I have capability for right now. Humble Begin
-
ag silver searcher look ahead and look behind
A super useful tool when doing PR's or checking your own work during a big refactor is the silver searcher. Its a super fast command line based searching tool. You just run to search for your search term. This will list out every line of every file in any directory under your current working directory that contains a match. Ahead/Behind It's often useful to need some extra context around the change. I recently reviewed a bunch of PR's that moved schema from to the root of the dataset in a
-
Installing Rust and Cargo on Ubuntu 21.10 using An...
Installing rust in your own ansible playbook will make sure that you can get consistent installs accross all the machines you may use, or replicate your development machine if it ever goes down. Personal philosophy I try to install everything that I will want to use for more than just a trial inside of my ansible playbook. This way I always get the same setup across my work and home machines, and anytime I might setup a throw away vm. reccommended install This is how rust reccomends that you in
-
Neovim Config for Git
Creating a minimal config specifically for git commits has made running much more pleasant. It starts up Much faster, and has all of the parts of my config that I use while making a git commit. The one thing that I often use is autocomplete, for things coming from elsewhere in the tmux session. For this specifically is super helpful. The other thing that is engrained into my muscle memory is for escape. For that I went agead and added my and with no noticable performance hit. Here is
-
How to Properly Simulate Stow
-
Tmux and Vim Clipboard for Ubuntu
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 working with my terminal apps. Luckily setting tmux and neovim to work with the system clipboard was much easier than it was on windows. First off you need to get if you don't already have it provided by your distro. I found it in the apt repositories. I have used it between Ubuntu 18.04 and 21.10 and they all work flawlessly for me. I have
-
Tmux hotkey for copier templates
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 and hitting , and I will get a popup list of all of my templates directory names. Its an fzf list, which means that I can fuzzy search through it for the template I want, or arrow key to the one I want if I am feeling insane. I even setup it up so that the preview is a list of the files that come with the template in tree view. I've had t
-
Copier Tasks | Python templating post run task
Copier allows you to run post render tasks, just like cookiecutter. These are defined as a list of in your . They are simply shell commands to run. The example I have below runs an bash script after the copier template has been rendered. I have put the script in so that I know it's always on my . It will reach back into the and update the default number.
-
fuzzy wallpaper with fzf
I really appreciate that in linux anything can be scripted, including setting the wallpaper. So everytime I disconnect a monitor I can just rerun my script and fix my wallpaper without digging deep into the ui and fussing through a bunch of settings. I set my default wallpaper with using the command above. Leaning in on feh, we can use fzf to pick a wallpaper from a directory full of wallpapers with very few keystrokes. I have mine alias'd to so that I can quickly run it from my terminal.
-
Converting markdown to pdf with pandoc on linux
Converting markdown posts to pdf on ubuntu takes a few packages from the standard repos. I had to go through a few stack overflow posts, and nothing seemed to have all the fonts and packages that I needed to convert markdown, but this is what ended up working for me. Installing all the packages Using pandoc to convert markdown to a pdf results of converting this post to a pdf Here is an image of what converting this article over to a pdf looks like. The raw markdown is here .
-
Installing Pipx on Ubuntu
I recently paired up with another dev running windows with Ubuntu running in wsl, and we had a bit of a stuggle to get our project off the ground because they were missing com system dependencies to get going. Straight in the terminal Open up a terminal and get your required system dependencies using the apt package manager and the standard ubuntu repos. Using an Ansible-Playbook I like running things like this through an ansible-playbook as it give me some extra control and repeatability next t
-
2 minutes to stow
Stow is an incredible way to manage your dotfiles. It works by managing symlinks between your dotfiles directory and the rest of the system. You can then make your dotfiles directory a git repo and have it version controlled. In my honest opinion, when I was trying to get started the docs straight into deep detail of things I frankly don't really care about and jumped right over how to use it. When using stow its easiest to keep your dotfiles directory (you may name it what you want) in your
-
Using Copier Answers to rerun templates quickly
The copier answers file is a key component to making your templates re-runnable. Let's look at the example for my setup.py. Inside of my file is this, a message not to muck around with it, and the ansers in yaml form. The first line is just a helper for the blog post. Inside my copier.yml I have setup my _answers_file to point to a special file. This is because this is not a whole projet template, but one just for a single file. Once I change the _answers_file I was incredibly stuck Run it
-
pipx examples
count lines of code
-
Remove Vim Tab Characters
I've been stuck many times looking at a vim buffer with little question marks at the beginning of each line and trying to get rid of them. for so long I didn't know what they were so trying to get rid of them was impossible. example of what the tab character renders as in my editor It turns out they are tabs, and you can get rid of the little leading question marks with this substitution command.
-
Tmux Pop size
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. example running these commands
-
Copier Templates
%%include til/copier_endops %%include til/copier-template-variables %%include til/copier-answers
-
List all the files containing a phrase
One of the most useful skills you can acquire to make you faster at almost any job that uses a computer is getting good at finding text in your current working diretory and identifying the files that its in. I often use the silver searcher or ripgrep to find files in large directories quickly. Both have a sane set of defaults that ignore hidden and gitignored files, but getting them to list only the filenames and not the matched was not trivial to me. I've searched throught he help/man pag
-
My first impressions with pyenv
pyenv provides an easy way to install almost any version of python from a large list of distributions. I have simply been using the version of python from the os package manager for awhile, but recently I bumped my home system to Ubuntu 21.10 impish, and it is only 3.9+ while the libraries I needed were only compatable with up to 3.8. I needed to install an older version of python on ubuntu I've been wanting to check out pyenv for awhile now, but without a burning need to do so. installing Based
-
Installing Homebrew on Linux
Installing brew on linux proved quite easy and got pyenv running for me within 4 commands. I had never used homebrew before, honestly I thought it was a mac only thing for years. Today I wanted to try out pyenv, and the reccommended way to install was using homebrew. I am not yet sure if I want either in my normal workflow, so for now I am just going to pop open a new terminal and install homebrew and see how it goes. That was it, now homebrew is working. Starting a new shell and running the c
-
Serve html from your command line
When I first moved to vim from and ide like vscode or sublime text one of my very first issues was trying to preview my website at . There had always just been a button there to do it in all of my other editors, not vim. There are not many buttons for anything in vim. While there is probably a plugin that can run a webserver for me in vim, it's not necessary, we just need the command line we are already in. running a separate process You will need a way to run another process alongside vim,
-
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
-
Update Alternatives in Linux
-
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
-
notify-send
-
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
-
Ubuntu
These are the notes that I used as I set up my first ever ubuntu desktop. gnome-tweaks nordix gtk theme I ran this, but have no idea if it had any effect as the theme did not show up until I relogged. What I think actuagnome terminal showing scrollbar in tmuxlly worked was emoji support One thing that I really missed quite early from windows was the emoji virtual keyboard. I like being able to quickly toss in those emoji that give just a bit of a visual cue 🔥, ⚠️,, 🎉, 🦄, 💜. installation I found
-
How I configure git
Git can be a bit tricky to get configured correctly. I often stumble into config issues weeks after setting up a new machine that I did not even notice. These are my notes to remind me how I configure git. Identity rebase editor default branch push to current bransh wihtout setting upstream Autostash
-
python lsp setup
Setting up python with the native nvim>0.5 lsp was mr lsp-config https://github.com/neovim/nvim-lspconfig pyls#190 https://github.com/palantir/python-language-server/issues/190 mypy Getting mypy working with lsp was tricky for me. I had some issues trying to run mypy in ci and pyright in my editor and I really wanted them to match.
-
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
-
How to compare two files in vim
-
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
-
📝 Docker Deep Dive - Notes
https://www.hanselminutes.com/784/doing-open-source-with-brian-douglas Play With Docker A handy way to try weird things in docker is using play-with-docker . You get a four hour session for free, after four hours everything will be deleted, but you can start a new session. Installing Docker on Linux Installing on Ubuntu. Running Docker commands without sudo In order to run docker commands without using sudo you need to add docker to your group. Architecture and Theory Container - Isolated are
-
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
-
New Machine for developing Tests with TestProject....
Today I setup a new machine on Digital Ocean to use with TestProject.io, Here are my installation notes. envsubst < .github/ci/docker-compose.yml > docker-compose.yml
-
Out of Space
This morning I logged into my machine and was nearly out of space 64GB miniconda3! 5GB conda cache 4GM pip cache 34GB docker Find it screenshot-2025-02-12T22-32-14-298Z.png {.more-cinematic} These are the commands that I often use to reclaim space. Its so easy to fill up small vm's in the cloud, or in my case today let your dev machine go way too long without a good cleanup. Show Remaining Space on Drives This shows us where to start and gives a baseline of how much space we have reclaimed. sho
-
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
-
📝 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