khal

Khal Khal is a standards based CLI and terminal calendar program, able to synchronize with CalDAV servers through vdirsyncer. configuration [calendars] [[personal]] path = /home/alexforsale/.calendars/* type = discover color = auto [locale] timeformat = %H:%M dateformat = %Y-%m-%d longdateformat = %Y-%m-%d %a datetimeformat = %Y-%m-%d %H:%M longdatetimeformat = %Y-%m-%d %H:%M [default] default_calendar = alexarians@gmail.com Code Snippet 1: khal configuration

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

hyprland

A wayland compositor.

February 25, 2024 · 1 min · Kristian Alexander P

davmail

The answer for microsoft exchange in linux. Configuration davmail.server=true davmail.mode=Auto davmail.url=https://mail.domain.com/EWS/Exchange.asmx davmail.defaultDomain=DOMAIN davmail.ssl.nosecurecaldav=false davmail.ssl.nosecureimap=false davmail.ssl.nosecureldap=false davmail.ssl.nosecurepop=false davmail.ssl.nosecuresmtp=false davmail.caldavPort=1081 davmail.imapPort=1144 davmail.ldapPort=1390 davmail.popPort=1111 davmail.smtpPort=1026 davmail.imapAutoExpunge=true davmail.allowRemote=false davmail.logFilePath=/tmp/davmail-mkn.log davmail.logFileSize=1MB davmail.disableGuiNotifications=true davmail.disableTrayActivitySwitch=true davmail.showStartupBanner=false davmail.enableKerberos=false Systemd user unit most linux distro uses systemd anyway. # /usr/lib/systemd/user/davmail@.service [Unit] Description=DavMail for %i [Service] ExecStart=/usr/bin/davmail %h/.config/davmail/%i.properties Restart=on-failure [Install] WantedBy=default.target DefaultInstance=davmail

February 23, 2024 · 1 min · Kristian Alexander P

systemd

linux init system. emacs systemd user unit Description=Emacs text editor Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/ [Service] Type=notify ExecStart=/usr/bin/emacs --fg-daemon # Emacs will exit with status 15 after having received SIGTERM, which # is the default "KillSignal" value systemd uses to stop services. SuccessExitStatus=15 # The location of the SSH auth socket varies by distribution, and some # set it from PAM, so don't override by default. # Environment=SSH_AUTH_SOCK=%t/keyring/ssh Restart=on-failure [Install] WantedBy=default.target Backlinks davmail

February 23, 2024 · 1 min · Kristian Alexander P

pass

Password Manager for linux. Backlinks msmtp

February 23, 2024 · 1 min · Kristian Alexander P

linux

a family of open-source Unix-like operating systems based on the Linux kernel, Backlinks pass xorg i3wm davmail davmail archlinux ffmpeg ripgrep wayland rustup systemd

February 22, 2024 · 1 min · Kristian Alexander P

wayland

It is aimed to become the successor of the X Window System. I use this on linux. Backlinks libinput rofi hyprland

February 22, 2024 · 1 min · Kristian Alexander P

libinput

provides device detection, device handling, input device event processing and abstraction to minimize the amount of custom input code compositors need to provide the common set of functionality that users expect. Configuration file Create a /etc/X11/xorg.conf.d/30-touchpad.conf for xorg. Section "InputClass" Identifier "touchpad" Driver "libinput" MatchIsTouchpad "on" Option "Tapping" "on" Option "NaturalScrolling" "true" EndSection Not needed for wayland

February 22, 2024 · 1 min · Kristian Alexander P

xorg

Display manager for linux. Backlinks libinput archlinux rofi dmenu window-manager

February 20, 2024 · 1 min · Kristian Alexander P