ncmpcpp

Ncmpcpp is an mpd client (compatible with mopidy) with a UI very similar to ncmpc, but it provides new useful features such as support for regular expressions for library searches, extended song format, items filtering, the ability to sort playlists, and a local filesystem browser. To use it, a functional mpd must be present on the system since ncmpcpp/mpd work together in a client/server relationship.

August 1, 2025 · 1 min · Kristian Alexander P

neovim

Neovim is a fork of Vim aiming to improve the codebase, allowing for easier implementation of APIs, improved user experience and plugin implementation. Neovim inspired editors like Helix.

August 1, 2025 · 1 min · Kristian Alexander P

ripgrep

ripgrep is a line-oriented search tool written in Rust, that recursively searches the current directory for a regex pattern. By default, ripgrep will respect gitignore rules and automatically skip hidden files/directories and binary files. (To disable all automatic filtering by default, use rg -uuu.) ripgrep has first class support on Windows, macOS and Linux, with binary downloads available for every release. ripgrep is similar to other popular search tools like The Silver Searcher, ack and grep. ...

August 1, 2025 · 1 min · Kristian Alexander P

rofi

Rofi is a window switcher, run dialog, ssh-launcher and dmenu replacement. Rofi is mainly used on Xorg, but a patch has been made available so it can also be used in wayland.

August 1, 2025 · 1 min · Kristian Alexander P

thunderbird

Thunderbird is an open source email, news, and chat client previously developed by the Mozilla Foundation.

August 1, 2025 · 1 min · Kristian Alexander P

vdirsyncer

vdirsyncer Vdirsyncer is a command-line tool for synchronizing calendars and addressbooks between a variety of servers and the local filesystem. The most popular usecase is to synchronize a server with a local folder and use a set of other programs to change the local events and contacts. Vdirsyncer can then synchronize those changes back to the server. config # An example configuration for vdirsyncer. # # Move it to ~/.vdirsyncer/config or ~/.config/vdirsyncer/config and edit it. # Run `vdirsyncer --help` for CLI usage. # # Optional parameters are commented out. # This file doesn't document all available parameters, see # http://vdirsyncer.pimutils.org/ for the rest of them. [general] # A folder where vdirsyncer can store some metadata about each pair. status_path = "~/.local/share/vdirsyncer/status/" # CARDDAV [pair alexarians_contacts] # A `[pair <name>]` block defines two storages `a` and `b` that should be # synchronized. The definition of these storages follows in `[storage <name>]` # blocks. This is similar to accounts in OfflineIMAP. a = "alexarians_contacts_local" b = "alexarians_contacts_remote" # Synchronize all collections that can be found. # You need to run `vdirsyncer discover` if new calendars/addressbooks are added # on the server. collections = ["from a", "from b"] # Synchronize the "display name" property into a local file (~/.contacts/displayname). metadata = ["displayname", "description"] # To resolve a conflict the following values are possible: # `null` - abort when collisions occur (default) # `"a wins"` - assume a's items to be more up-to-date # `"b wins"` - assume b's items to be more up-to-date #conflict_resolution = null [storage alexarians_contacts_local] # A storage references actual data on a remote server or on the local disk. # Similar to repositories in OfflineIMAP. type = "filesystem" path = "~/.contacts/" fileext = ".vcf" [storage alexarians_contacts_remote] type = "google_contacts" token_file = "~/.local/share/vdirsyncer/google_contacts_token" client_id = "<Client ID from Google developer console>" client_secret = "<Client secret from Google developer console>" #username = # The password can also be fetched from the system password storage, netrc or a # custom command. See http://vdirsyncer.pimutils.org/en/stable/keyring.html #password = # CALDAV [pair alexarians_calendar] a = "alexarians_calendar_local" b = "alexarians_calendar_remote" collections = ["from a", "from b"] # Calendars also have a color property metadata = ["displayname", "color"] [storage alexarians_calendar_local] type = "filesystem" path = "~/.calendars/" fileext = ".ics" [storage alexarians_calendar_remote] type = "google_calendar" token_file = "~/.local/share/vdirsyncer/google_calendar_token" client_id = "<Client ID from Google developer console>" client_secret = "<Client secret from Google developer console>" #url = "https://owncloud.example.com/remote.php/caldav/" #username = #password = Code Snippet 1: vdirsyncer configuration Backlinks khal

August 1, 2025 · 2 min · Kristian Alexander P

vim

Vim is a terminal text editor. It is an extended version of vi with additional features, including syntax highlighting, a comprehensive help system, native scripting (Vim script), a visual mode for text selection, comparison of files (vimdiff), and tools with restricted capabilities such as rview and rvim. Backlinks neovim

August 1, 2025 · 1 min · Kristian Alexander P

i3wm

i3 is a tiling window manager, completely written from scratch. The target platforms are GNU/Linux and BSD operating systems, our code is Free and Open Source Software (FOSS) under the BSD license. i3 is primarily targeted at advanced users and developers. Based upon the experiences we made when wanting to hack/fix wmii, we agreed upon the following goals for i3: Backlinks i3 website

July 31, 2025 · 1 min · Kristian Alexander P

libvirt

Libvirt Libvirt is a virtualization API that provides a consistent and unified way to manage different virtualization technologies like KVM, Xen, and QEMU. It offers a stable API, a daemon (libvirtd), and command-line tools (like virsh) for managing virtual machines and other virtualization features such as storage and networking. virsh Backlinks virt-manager virsh

July 31, 2025 · 1 min · Kristian Alexander P

org-roam

Org-roam is a knowledge management system, or personal wiki, built on top of Emacs’ Org-mode. It implements a networked thought system, similar to Roam Research, allowing users to create interconnected notes in a non-hierarchical way. This facilitates effortless linking and discovery of connections between ideas, effectively creating a “second brain” for managing information. Setting up Org-roam Since I’m also publishing the notes using hugo, some properties are needed. (setq org-roam-capture-templates '(("d" "default" plain "#+author: %n\n#+date: %t\n#+description: \n#+hugo_base_dir: ..\n#+hugo_section: posts\n#+hugo_categories: other\n#+property: header-args :exports both\n#+hugo_tags: \n%?" :if-new (file+head "%<%Y-%m-%d_%H-%M-%S>-${slug}.org" "#+title: ${title}\n") :unnarrowed t) ("p" "programming" plain "#+author: %n\n#+date: %t\n#+description: \n#+hugo_base_dir: ..\n#+hugo_section: posts\n#+hugo_categories: programming\n#+property: header-args :exports both\n#+hugo_tags: \n%?" :if-new (file+head "%<%Y-%m-%d_%H-%M-%S>-${slug}.org" "#+title: ${title}\n") :unnarrowed t) ("t" "tech" plain "#+author: %n\n#+date: %t\n#+description: \n#+hugo_base_dir: ..\n#+hugo_section: posts\n#+hugo_categories: tech\n#+property: header-args :exports both\n#+hugo_tags: \n%?" :if-new (file+head "%<%Y-%m-%d_%H-%M-%S>-${slug}.org" "#+title: ${title}\n") :unnarrowed t))) Code Snippet 1: org-roam-capture-templates for quick note capturing. d default plain #+author: %n These will separate each templates into its own category. Other category is still needed as default, for when I’m using a less used category. ...

July 31, 2025 · 2 min · Kristian Alexander P