Hi there 👋

This is my blog, where I occasionally write about things I find interesting. These are mostly technical topics related to programming, DevOps and debugging. I hope you find something useful here.

Common snippets for developing Zellij plugins

This page describes some common tasks and snippets that can be used for the plugin development. Snippets are written in Rust, but the concepts should be transferable to other languages as well. All examples are based on the rust-plugin-example. Non selectable plugins with permissions If a plugin (like a statusbar) should be non selectable, zellij-tile provides the function set_selectable(). When this function is directly called on plugin initialization, a user won’t be able to grant plugin permissions since the plugin cannot be selected....

2024-05-10

Getting started with developing Zellij plugins

This guide will help you get started with developing a plugin for Zellij in Rust. It will guide you through setting up your development environment, creating a new plugin, and playing around to understand how Zellij plugins work. Requirements Make sure you have the following programs installed on your system: Rust with the wasm32-wasi target or rustup Zellij If you have installed rustup, you can install the wasm32-wasi target by running:...

2024-05-10

Learnings from developing a zellij plugin

Zellij is a terminal multiplexer written in Rust, that aims to provide an intuitive and easy to extend working environment. With version 0.37.0 Zellij introduced a plugin system, that allows users to write plugins with WebAssembly. Additionally the plugin system provides a rust crate with an API to interact with the Zellij core. Since zellij to the date of writing this article has not provided customizations for the status bar, I decided to write one that is easily customizable by writing KDL configuration into layout files - zjstatus....

2024-01-01

State of SameSite cookies in Firefox and Chromium

SameSite cookies are commonly used to harden websites against CSRF attacks. These attacks can be mitigated in certain scenarios with SameSite cookies, since a cookie with the SameSite attribute set to strict should not be send to the destination site, if the request passed a foreign site. However, handling of the SameSite attribute differs between Firefox and Chromium. What is the SameSite attribute in theory? The SameSite attribute was specified in the RFC draft rfc6265bis....

2023-03-12

Debugging another SIGABRT in neovim

In the last blog article I described a way how to debug SIGABRT crashes in neovim with the help of a nix shell. It helped me to find out the cause of the crashes in neovim 0.5.0 and an already existing issue in the github project, which already provided a solution. Unfortunately, since a few weeks, I experience crashes in neovim again. Most of the time when using telescope with the preview, neovim randomly crashes....

2022-05-22

Debugging neovim with nix shell

Since the introduction of the new lua api in neovim 0.5.0 there are plenty new vim plugins based on this api. While testing some of the new plugins, my neovim exited with a SIGSEGV and sometime with a SIGABRT in specific workflows. As these crashes are reproducible, it should be easy to debug the problem. However, we need a debug build of neovim and, since I’m using macOS, the stack trace of neovim....

2021-10-09