488 lines
23 KiB
Markdown
488 lines
23 KiB
Markdown
|
---
|
||
|
# date: 2017-02-22T14:43:02-06:00
|
||
|
# image: /img/space.jpg
|
||
|
# imageOverlayColor: "#000"
|
||
|
# imageOverlayOpacity: 0.6
|
||
|
# heroBackgroundColor: "#0af"
|
||
|
title: Uses
|
||
|
description: "About my tools, workflow, and other things I use as a software developer."
|
||
|
---
|
||
|
|
||
|
This page lists the tools (both physical and otherwise) that I use to do my job
|
||
|
as a software developer along with some thoughts on them.
|
||
|
|
||
|
For other pages like this from other folks, check out this repository: https://github.com/wesbos/awesome-uses
|
||
|
|
||
|
I'll go through a theoretical "day in the life" of myself working. Mostly to
|
||
|
help me remember all the stuff involved, but also as a means of storytelling and
|
||
|
being imformative. I normally don't drop brand names, but since that's kind of
|
||
|
the point here, I will be doing a _lot_ of name dropping. No links to products
|
||
|
for simplicity, but everything listed here should be searchable. If not, let
|
||
|
me know! I'll try to link to anything free, though, such as software.
|
||
|
|
||
|
I'll break stuff up by topic as things come up so you can skip things that are
|
||
|
not interesting to you.
|
||
|
|
||
|
I also think that in general sharing this much information about yourself isn't
|
||
|
the _best_ idea. However, since I'm confident the bots can't know much more
|
||
|
about me that they already do and this will really only mostly be useful to my
|
||
|
fellow human beings, I think it's worth sharing. I hope you discover some cool
|
||
|
new stuff! Better yet, I hope you recommend me better stuff! I'm always wanting
|
||
|
to try new tools and discover something new that's good at something.
|
||
|
|
||
|
# Good morning!
|
||
|
|
||
|
I wake up when my kids do out of a Purple mattress.
|
||
|
|
||
|
I slip on my PineTime wrist watch, grab my Android smartphone, put on my
|
||
|
prescription glasses, and usually make some tea.
|
||
|
|
||
|
## Mattress: Purple King Size
|
||
|
|
||
|
Sleep is real important, so get a good mattress! Of course, "good" here is
|
||
|
highly subjective, so you will want to do your own research. We usually have a
|
||
|
kid or two join my wife and I in the mattress, so we went with a king size to
|
||
|
account for this. Fantastic decision!
|
||
|
|
||
|
## Smart Watch: PineTime
|
||
|
|
||
|
I love my PineTime! It serves as a good flashlight in the pitch black of a
|
||
|
baby's room and can tell the time. That alone is good enough. However, it can
|
||
|
also vibrate when I get notifications on my phone if I want, which I do use
|
||
|
on occasion. The price is also unbeatable at 25USD and the InfiniTime firmware
|
||
|
keeps improving! I get about two weeks of battery with light use and bluetooth
|
||
|
off. I get about 5 days if I've got notifications on full blast, but they
|
||
|
recently improved the firmware and claim this may now be more than double!
|
||
|
|
||
|
## Smart Phone: ASUS ROG Phone 5S
|
||
|
|
||
|
I bought the phone that I can get root access to with the biggest battery,
|
||
|
nicest display, and a headphone jack. That's pretty much all I want in a phone.
|
||
|
The speakers are a great bonus. The two USB-C ports is actually a super nice
|
||
|
feature since I can connect peripherals while charging without a dock or crazy
|
||
|
dongle. I've also used the video mirroring on the side port to good effect a few
|
||
|
times in a pinch. I love this device so much I've bought it twice. I'm not sure
|
||
|
I've done that for anything else...
|
||
|
|
||
|
### Android-Specific Softeware & Applications
|
||
|
|
||
|
Since I'm discussing my phone, I'll go over phone-specific apps (and some common
|
||
|
with my laptops/desktops) now in no particular order. I have no idea if any of
|
||
|
these have iOS equivalents, but here ya go.
|
||
|
|
||
|
- [Firefox](https://github.com/mozilla-mobile/fenix) as my web browser
|
||
|
- [F-Droid](https://f-droid.org) as an awesome resource for applications
|
||
|
- [Termux](https://github.com/termux/termux-app) for doing Linux-y and terminal-y things on my phone
|
||
|
- [OpenKeychain](https://github.com/open-keychain/open-keychain) for mobile GPG key management
|
||
|
- [Password Store](https://github.com/android-password-store/Android-Password-Store) for interacting with my password manager database
|
||
|
- [Bitwarden](https://github.com/bitwarden/mobile) for interacting with shared password databases
|
||
|
- [Magisk](https://github.com/topjohnwu/Magisk) for managing Android root access
|
||
|
- [NewPipe](https://github.com/TeamNewPipe/NewPipe) for YouTube access without dealing with ads
|
||
|
- [Smart AudioBook Player](https://play.google.com/store/apps/details?id=ak.alizandro.smartaudiobookplayer) for listening to audiobooks
|
||
|
- [Gadgetbridge](https://github.com/Freeyourgadget/Gadgetbridge) for interfacing with my smart watch
|
||
|
- [Obsidian](https://play.google.com/store/apps/details?id=md.obsidian) for reading and writing my notes (sync'd via `git`)
|
||
|
- [Fedilab](https://codeberg.org/tom79/Fedilab) as my mobile fediverse client
|
||
|
- [Weechat-Android](https://github.com/ubergeek42/weechat-android) as my mobile IRC relay interface
|
||
|
- [Tailscale](https://github.com/tailscale/tailscale-android) for accessing my VPN
|
||
|
- Google Wallet for NFC payments (tap-to-pay or contactless) because getting cards out of a wallet is _so_ pre-COVID
|
||
|
- Google Messages for SMS, MMS, and RCS
|
||
|
- Google Maps for meatspace navigation
|
||
|
- Pocket Casts for listening to podcasts
|
||
|
- Spotify for listening to music
|
||
|
|
||
|
# Server Room
|
||
|
|
||
|
Once the day has started and I've said my goodbyes to the fam, I head downstairs
|
||
|
to my basement where my home office is located. I walk past a super overkill
|
||
|
server rack I got on Craigslist. It holds a few things, but the most important
|
||
|
things are my home router/gateway. It's connected to a Google Fiber jack where
|
||
|
I get 500 Mb/sec speeds for about 55USD/month. It's hooked up to a Netgear
|
||
|
16-port gigabit switch which in turn is hooked up to a bunch of little devices,
|
||
|
the most important of which are my home server, WiFi access point, and a really
|
||
|
long cable that goes to my desk where there is another tp-link 8-port gigabit
|
||
|
switch.
|
||
|
|
||
|
The rack also has a bunch of loose cables, peripherals, and other random gear,
|
||
|
like a big knife. I think I was using it to strip some wires. I should get some
|
||
|
easy-mode wire strippers.
|
||
|
|
||
|
## Router & Gateway: Any decent dual-NIC machine
|
||
|
|
||
|
For a long time, I used a Raspberry Pi 4 with a USB3 ethernet adapter. It did
|
||
|
great, too! But then I wanted it (and my ethernet adapter) for another project
|
||
|
and I scored a Datto Alto 2 with 2 NICs built right in on Ebay for like $30.
|
||
|
_Ebay is awesome_.
|
||
|
|
||
|
The Datto Alto 2 is great, but not because of what it is. Any little dual-NIC
|
||
|
box will do nicely. It's running Arch Linux and is configured via the contents
|
||
|
of [this repo](https://git.lyte.dev/lytedev/router) (please be nice to my
|
||
|
network). Having a router I'm in full control of has helped with networking
|
||
|
problems immensely and makes port forwarding stuff a breeze. I'm roughly
|
||
|
familiar with its workings, which makes troubleshooting network problems that
|
||
|
much easier for me.
|
||
|
|
||
|
## WiFi Access Point: Unifi AP-Pro
|
||
|
|
||
|
Fantastic access point that plays nicely with my very DIY home router. Not
|
||
|
really much else to say. I set it up a long time ago and update it with some
|
||
|
regularity, but it just works.
|
||
|
|
||
|
## Ethernet Switches: Anything with enough speed and ports
|
||
|
|
||
|
Seriously I just bought the cheapest switches at Micro Center with enough ports
|
||
|
for me. They're getting hilariously cheap, which is great! Having extra ports
|
||
|
for ad-hoc stuff, like LAN parties, is a must-have for me, even in the age of
|
||
|
WiFi.
|
||
|
|
||
|
_Share the load_.
|
||
|
|
||
|
## Server(s)
|
||
|
|
||
|
I have a lot of servers, but the main server is just an ASUS Chromebox 3 that I
|
||
|
flashed Arch Linux to. It pretty much just runs a big ol' Docker Compose setup
|
||
|
with a sprinkling of other non-Docker'd services. It can do the hardware
|
||
|
transcoding for Jellyfin, my home media server, and just generally does not
|
||
|
break a sweat.
|
||
|
|
||
|
I recently was given a Dell R720xd with 20 hyperthreaded CPU cores (40 threads),
|
||
|
256GB RAM, and 44TB of raw disk space, which I am _very_ excited about, so I'll
|
||
|
probably be moving most stuff to that bad boy, though I expect the power bill to
|
||
|
go up _just a tad_.
|
||
|
|
||
|
I have a few other cheap machines with larger disks at friends and family's
|
||
|
houses for off-site, encrypted backups of important data. I should
|
||
|
_really_ take the time to validate and automate my backup setup, because right
|
||
|
now, I do a completely garbage job of it.
|
||
|
|
||
|
Any paid client workloads are served via redundant mechanisms via cloud
|
||
|
services, generally Digital Ocean, and backed up with whatever the relevant
|
||
|
cloud offering is.
|
||
|
|
||
|
I run the following applications for my home:
|
||
|
|
||
|
- Traefik to reverse proxy all the things
|
||
|
- A homemade chat bot for various things
|
||
|
- Various game servers
|
||
|
- A small service the multiplexes audio and video feeds
|
||
|
- Gitea for https://git.lyte.dev
|
||
|
- Nginx to serve static files for https://files.lyte.dev
|
||
|
- Jellyfin
|
||
|
- Plausible for web analytics
|
||
|
- PostgreSQL as the great database for anything that needs one
|
||
|
- MariaDB for anything too lame to use Postgres
|
||
|
|
||
|
I run a few services from the cloud as well:
|
||
|
|
||
|
- A small DDNS application that machines report to so I have relatively up-to-
|
||
|
date public IP information on most of my devices (this can't run from home for
|
||
|
fairly obvious reasons 😉)
|
||
|
- Various monitoring scripts for specific things
|
||
|
|
||
|
# Starting Work
|
||
|
|
||
|
I sit in a way-too-expensive computer chair at a homemade desk and wiggle my
|
||
|
mouse or slap my keyboard until my workstation wakes up. I punch in my password
|
||
|
and a script fires off to make sure I am ready to work. It does stuff like have
|
||
|
me log in to various work services that need daily (or hourly) authentication
|
||
|
and making sure I remember to review certain reminders and things of that
|
||
|
nature.
|
||
|
|
||
|
I usually spend my work mornings reviewing neat things I read about the night
|
||
|
before on my various feeds -- assuming nothing urgent is happening with work,
|
||
|
which there usually is not. Tinkering with things is super important for
|
||
|
learning. This is usually done by pulling down my notes as sync'd from my phone,
|
||
|
where I do most of my reading.
|
||
|
|
||
|
I may also spend some time playing games or working with electronics in the
|
||
|
workshop area.
|
||
|
|
||
|
Then the standup meeting notification pops up and I spend about 10 minutes
|
||
|
reviewing work stuff so I'm ready for the day. I make sure any audio/visual
|
||
|
settings are reset for the workday from any tinkering I may have done the
|
||
|
previous evening, usually with musical instruments or just general goofing
|
||
|
around with Pipewire.
|
||
|
|
||
|
## Chair: Steelcase Gesture with Headreset
|
||
|
|
||
|
Like a mattress, very subjective. Get your chairs secondhand for way cheap and
|
||
|
you can get some heckin' nice chairs. I spend about 8 hours a day in my chair,
|
||
|
so having a good chair is well worth it, even if the price tag is 1,500USD. 😬
|
||
|
|
||
|
## Desk: Custom
|
||
|
|
||
|
It's a huge slab of butcher's block I got from Home Depot for about 200USD and
|
||
|
I made some _really_ crappy legs to try and hold it up. It's huge and awesome
|
||
|
and by the time I can't move it around by myself anymore is probably a good
|
||
|
indicator for retirement.
|
||
|
|
||
|
You can see an old but decent picture of it here:
|
||
|
https://files.lyte.dev/images/battle-station-2020.jpg
|
||
|
|
||
|
## Mouse: Logitech MX Master 3 and Mionix Avior Pro
|
||
|
|
||
|
The MX Master 3 is my default, go-to mouse. It's great. I don't use any of
|
||
|
the fancy features, really, but the mousewheel on it is _real_ special. Can't
|
||
|
go back.
|
||
|
|
||
|
The Avior Pro I got a long time ago after my last mouse bit the dust. I really
|
||
|
only pull out for gaming on the more competitive side, such as _Counter Strike_.
|
||
|
For pretty much everything else, the MX Master 3 is not noticeably bad -- even
|
||
|
for _Doom Eternal_.
|
||
|
|
||
|
## Keyboard: Sofle Choc RGB
|
||
|
|
||
|
Another very subjective thing! Building and programming your own keyboard is
|
||
|
something that is super fun for heavy keyboard users, which I think is most
|
||
|
people these days. This one is focused on being good for my hands and wrists to
|
||
|
use for long programming sessions. It's split into two wireless pieces so each
|
||
|
hand can move them independently and the keys are laid out in a sensible manner
|
||
|
that fits the human hand. There are other features that are nice, but that I
|
||
|
rarely use.
|
||
|
|
||
|
Here's a picture if you like: https://files.lyte.dev/keyboards/zofle.jpg
|
||
|
|
||
|
## Monitors: Aorus FO48U and 2 Dell U2720Q
|
||
|
|
||
|
I stumbled into having a huge 4K display when COVID had Postmates send our
|
||
|
little Kansas City satellite office packing and I took the meeting hardware
|
||
|
home. At some point, I plugged it in to see what _World of Warcraft_ would look
|
||
|
like in 4K on a big screen and realized it was actually amazing for programming
|
||
|
as well.
|
||
|
|
||
|
Here's roughly my monitor layout, though I usually have two of the secondary
|
||
|
monitors -- one on either side:
|
||
|
https://files.lyte.dev/images/battle-station-2022-10-13.3.jpg
|
||
|
|
||
|
## Laptop: Lenovo T480 and MacBooks
|
||
|
|
||
|
A recent acquisition. It was pretty busted up when I got it, but I bought the
|
||
|
high capacity external battery and some phat sticks of RAM and replaced the
|
||
|
trackpad. A little bit of superglue and a good cleaning later and I've just
|
||
|
fallen in love with this laptop. Sometimes I use it even though I have a really
|
||
|
beefy workstation with what I consider to be a pretty high-end setup -- it just
|
||
|
feels so cozy! All my machines run Arch Linux configured as specified in my
|
||
|
dotfiles repo.
|
||
|
|
||
|
Work provides MacBooks. I'm able to use them as proxies and simply SSH into them
|
||
|
for work-related tasks. They otherwise run Linux virtual machines or serve as
|
||
|
dumb terminals to Linux environments in _the cloud_ where I do the majority of
|
||
|
my work. In general, I'm not a big of macOS and its interface, but I fully
|
||
|
recognize that I'm used to a very bespoke and unique way of interacting with
|
||
|
my computer.
|
||
|
|
||
|
That said, before work really cracked down, the M1 Max MacBook Pro they got
|
||
|
me was one of my favorite machines ever. Insane battery life, performance,
|
||
|
speakers, display, _**and** the ability to run Linux natively on it_ is going to
|
||
|
be really hard to beat. I miss being able to use that thing to its fullest!
|
||
|
|
||
|
## Desktop: Custom Rig
|
||
|
|
||
|
Probably easiest to list the parts. I wanted something quiet, small, and cute.
|
||
|
In hindsight, I think it would have been more practical to just get a bigger and
|
||
|
more expandable system. I'm somehow always out of USB ports.
|
||
|
|
||
|
- **CPU**: AMD Ryzen 9 5950X
|
||
|
- I wanted as many performant cores as possible for as cheaply as possible
|
||
|
and reasonable. I did some math and realized that with the time spend
|
||
|
running unit tests and compiling code, this thing would pay for itself in a
|
||
|
month or two. It did. Love it and looking forward to the next upgrade!
|
||
|
- **GPU**: AMD Radeon RX 6700 XT
|
||
|
- Bought this at the worst possible time, but it's been a great card. It can't
|
||
|
quite keep up with 4K@120Hz for some titles like _Doom Eternal_ on the highest
|
||
|
settings, but it's good enough for my current usage.
|
||
|
- **RAM**: Some 64GB kit that's more than enough for me
|
||
|
- **PSU**: Some small form factor 750W fully modular power supply - it's very
|
||
|
cute because it's so little!
|
||
|
- **CPU Cooler**: Can't remember what it is exactly, but I bought the biggest,
|
||
|
baddest air cooler that would fit with my setup
|
||
|
- **Case**: Cooler Master NR200P
|
||
|
- **Linux SSD**: Sabrent Rocket 1TB PCIe 4.0 NVMe
|
||
|
- I went with PCIe 4.0 since I make pretty heavy use of my disk what with
|
||
|
a great internet connection and all - those Docker images ain't gonna sling
|
||
|
themselves, y'know!
|
||
|
- What is it with "enterprise" Docker images being absolutely gargantuan?!
|
||
|
Why must things suck?! Not that I put anything proprietary to work on my
|
||
|
personal machine(s) of course!
|
||
|
- **Windows SSD**: TeamGroup MP34 2TB PCIe 3.0 NVMe
|
||
|
- Occasionally, I boot to Windows for some games that run better or at all,
|
||
|
like Valorant or Destiny 2
|
||
|
|
||
|
## Other Neat Computing Devices
|
||
|
|
||
|
I also have a PinePhone and a Steam Deck.
|
||
|
|
||
|
The PinePhone was unfortunately a dud for me personally since MMS is still
|
||
|
pretty prevalent in my life in a way that I can't overlook in addition to the
|
||
|
notification setup not quite being up to snuff. I am _very_ excited for the
|
||
|
time when a Linux (you know what I mean) phone is feasible, though! I got the
|
||
|
keyboard addon, though, and since my phone has some radio issues in the US, I
|
||
|
sometimes use it when I need better radio performance, like when camping.
|
||
|
|
||
|
The Steam Deck is absolutely wonderful. Anything I would play with a controller,
|
||
|
I usually just play it on the Steam deck. I haven't touched my Switch since!
|
||
|
Plus, it's Linux, so the tinker factor is there too. Highly recommend one if
|
||
|
you're considering it.
|
||
|
|
||
|
## Headphones: Sony WH-1000XM4
|
||
|
|
||
|
Bought the XM3s on a Black Friday special and fell in love. _Nice_ noise
|
||
|
cancelling head are absolutely wonderful. They made my mom cry.
|
||
|
|
||
|
Work got almost all their engineers the XM4s not long after so I kind of have
|
||
|
2 pair. The XM4s are _much_ nicer with multiple device pairing and the firmware
|
||
|
voice feedback fading out your audio instead of cutting it completely when it
|
||
|
says anything. The XM4s also automatically shut down if they can detect they
|
||
|
aren't on your head for a little bit, which makes the main issue I had with the
|
||
|
XM3s of setting them on my desk without turning them off a non-issue.
|
||
|
|
||
|
## Microphone: Blue Yeti USB
|
||
|
|
||
|
Sounds good enough, but I've got a fancy audio interface now, so I'm wanting to
|
||
|
upgrade at some point. Super low priority, though.
|
||
|
|
||
|
## Audio Interface: MOTU M4
|
||
|
|
||
|
A recent gift. I'm hoping to do more with music and mixing in the future,
|
||
|
though, so it will be welcome at that point! I play drums and would love to
|
||
|
put together a decent electric guitar setup. I also have an Arturia MicroFreak
|
||
|
digital synthesizer which is a lot of fun to play with. I'd love to put some
|
||
|
cool tracks together!
|
||
|
|
||
|
## Keys: Some twist-lock cable keyring
|
||
|
|
||
|
It's nicer than those metal rings you have to snap your thumbnail to get keys
|
||
|
off of. I had one fail after about 10 years and my keys went everywhere, so if
|
||
|
you're gonna use these, I guess you should replace them occasionally or check
|
||
|
them in rather rough ways with some regularity after a certain amount of time.
|
||
|
|
||
|
These are usually karabiner'd to my backpack or a belt loop.
|
||
|
|
||
|
When I'm driving with the family, we take the van, which has one of those
|
||
|
wireless keys, so I can just throw my whole bag in and we can drive. If I'm
|
||
|
driving solo, it's still a good, old insert-and-turn key, so the keys un-
|
||
|
karabiner from the bag or loop and go back on when disembarking.
|
||
|
|
||
|
My keyring is also attached to my wallet. Speaking of which...
|
||
|
|
||
|
## Wallet: Chums Surfshorts Wallet
|
||
|
|
||
|
Cheap, has a zipper to hold keyfobs and cards, and easily attaches to my
|
||
|
keys. Having them all together means I just gotta grab two things, one for each
|
||
|
pocket: phone and wallet-keys.
|
||
|
|
||
|
I haven't tried tap-to-paying through the wallet, which is probably a big
|
||
|
security hazard. 🤷
|
||
|
|
||
|
# Software
|
||
|
|
||
|
When my machine boots up, I'm greeted by the standard Linux login at the
|
||
|
console. No display manager or graphical login or anything. Once I'm logged in,
|
||
|
I usually run `wm` which fires up my window manager, Sway.
|
||
|
|
||
|
When Sway starts, it runs Kitty, my terminal emulator of choice, and Firefox, my
|
||
|
web browser of choice.
|
||
|
|
||
|
## Web Applications
|
||
|
|
||
|
Firefox usually has the following web applications opened:
|
||
|
|
||
|
- Shortwave for email
|
||
|
- Linear.app for personal task management
|
||
|
- Google Calendar for scheduling, planning, event management, etc. for both work
|
||
|
and personal life
|
||
|
- Hacker News for mostly-relevant and -interesting articles to me
|
||
|
- Lobste.rs for reasons similar to Hacker News
|
||
|
- Lemmy.world since Reddit killed API access
|
||
|
- GitHub for open-source and similar work
|
||
|
- Band.us for communicating with friends, family, and church folks
|
||
|
- Discord for communicating with friends, family, "more-hip" church folks, various communities, and other acquaintences
|
||
|
- Element for communicating with friends, coworkers, various communities, and other acquaintencas
|
||
|
- Slack for communicating with friends, coworkers, and various communities
|
||
|
- Spotify for music
|
||
|
- Various applications specific to work, such as Okta, Jira, GitLab, etc.
|
||
|
|
||
|
Ugh, modern messaging is a mess, isn't it?
|
||
|
|
||
|
Tailscale connects all my machines to the same VPN. It's great!
|
||
|
|
||
|
I also frequent these:
|
||
|
|
||
|
- git.lyte.dev for personal code management
|
||
|
- a.lyte.dev for personal online analytics
|
||
|
- bw.lyte.dev for shared password database management
|
||
|
- Shopping:
|
||
|
- ebay.com
|
||
|
- facebook.com/marketplace
|
||
|
- craigslist.com
|
||
|
- amazon.com
|
||
|
- aliexpress.us
|
||
|
|
||
|
I'm sure I'm forgetting a ton here.
|
||
|
|
||
|
## Terminal
|
||
|
|
||
|
Beyond the web stuff, I pretty much live in the terminal. Interacting with my
|
||
|
machine is mostly done via hotkeys as configured for Sway. Otherwise, everything
|
||
|
happens in the terminal. Here are my most popular commands in no particular
|
||
|
order:
|
||
|
|
||
|
- `fish` as my interactive shell (and sometimes for scripts, too!)
|
||
|
- `helix` for text editing
|
||
|
- `git` for code version management (source control)
|
||
|
- I use `git-delta` for viewing diffs
|
||
|
- `pass` for passwords and secrets management
|
||
|
- `ssh` and `mosh` for accessing other machines
|
||
|
- `tmux` and `zellij` for multiplexing terminals
|
||
|
- `htop` and `btm` (or `bottom`) for process management and resource monitoring
|
||
|
- `rtx` for managing various runtimes' and applications' versions
|
||
|
- `sk` (or `skim`) for fuzzy searching for stuff
|
||
|
- `rg` (or `ripgrep`) for specific searching for stuff
|
||
|
- `sd` for most things I used to use `sed` for
|
||
|
- `nnn` for filesystem browsing and navigation
|
||
|
- `bat` for viewing files as a `cat` replacement
|
||
|
- `exa` as an `ls` replacement
|
||
|
- `man` for reading documentation
|
||
|
- `xh` and `curl` for interacting with HTTP endpoints (I want to check out `hurl`, too!)
|
||
|
- `jq`, `gron`, and `jql` for interacting with JSON data
|
||
|
- `rsync` for moving files amongst machines
|
||
|
- `watchexec` for doing stuff as I edit files (like running unit tests anytime code is changed)
|
||
|
- `age` and `sops` for secrets management
|
||
|
- `dua` for disk usage analysis
|
||
|
- `sc-im` for managing two-dimensional, relational data (spreadsheets)
|
||
|
- `pulsemixer` for adjusting audio levels and volumes
|
||
|
- `bluetoothctl` for managing bluetooth devices (also `bluetuith` for a TUI!)
|
||
|
- `weechat` as my IRC client
|
||
|
- This is usually running in a persistent `tmux` or `zellij` session on a
|
||
|
server that I remote into
|
||
|
- I occasionally use the relay functionality that `weechat` offers as well
|
||
|
- `docker` and `podman` for container management
|
||
|
- `hexyl` when I need to look at binary data
|
||
|
- `make` for doing things describe in `Makefile`s
|
||
|
|
||
|
## GUI
|
||
|
|
||
|
From Sway, the only utilities I use are `waybar`, `mako`, and `gammastep`.
|
||
|
|
||
|
`waybar` shows the time, a HUD for my virtual desktops, various volume
|
||
|
information, and a high level overview of system resource usage.
|
||
|
|
||
|
`mako` shows me notifications and let's me interact with them.
|
||
|
|
||
|
`gammastep` makes my displays orange-y at night time.
|
||
|
|
||
|
I use `wofi` for launching applications occasionally. It lists the following
|
||
|
often-used applications:
|
||
|
|
||
|
- Steam for installing and running games
|
||
|
- Slippi for playing Super Smash Brother Melee online!
|
||
|
- Lutris for running World of Warcraft
|
||
|
- `qpwgraph` for routing audio via `wireplumber`
|
||
|
- Inkscape for editing vector graphics (like SVGs) and image files
|
||
|
- Audacity for recording audio
|
||
|
- Krita and GIMP for editing non-vector (bitmap?) graphics and image files
|
||
|
- KDE Connect for when I want phone notifications to be mirrored to my desktop
|
||
|
- Usually only when expecting a specific call or message
|
||
|
- VS Code for pairing with other VS Code folks or troubleshooting a VS Code user's setup
|
||
|
- Thunar for managing files in a GUI
|
||
|
- PulseAudio Volume Control `pavucontrol`
|