RSSAmplifier

Blog

Blog | Surya Teja K

This blog contains the dev journey of Surya Teja K. I talk about Angular, Python, NodeJS, Rust, developing desktop applications and many more!

blog.suryatejak.inRSS feed ↗20 posts

Latest posts

GitRaven: April 2026 updates

Hey folks! It's been a while since I've written about GitRaven. This post will cover the new features I have introduced and talk about bug fixes. AI Usage I used ChatGPT or Google Gemini to help me fo

sleep-stopper: A simple GTK4 app to stop Linux from sleeping.

Hello, I came up with a simple GUI for stopping Linux from sleeping when idle using Python for fun. This project came to be because of my comment: https://social.linux.pizza/@shanmukhateja/115843701361619857 You can find GitHub link for this project ...

GitRaven: How to setup Monaco Editor for QWebEngine

Hello, This blog post will talk about integrating Monaco Editor into a Qt + C++ app using QWebEngine. Background GitRaven is being built to serve as a near-identical replacement to VSCode’s source control management. It aims to offer a similar, yet o...

GitRaven: How to draw custom widgets on QTreeView rows

Hello, In this blog post, we will be looking at customizing QTreeView to render custom widgets on each relevant rows. We will be adding the ability to stage/unstage an file/folder from tree and also show a label for the file’s git status - Modified, ...

GitRaven: How to use QTreeView with a custom model class

Hi, This blog post will cover how to create a custom model class based on QAbstractItemModel to render custom data with QTreeView in C++. Theory General idea: Create a new class RavenTreeModel based on QAbstractTreeModel. We need to override few me...

GitRaven: My next toy project

Hi It’s been a while since I built something for fun. I will be covering my journey on GitRaven. It’s a VCS GUI similar to GitHub Desktop or SourceTree without the code reviews, PR merge or other advanced capabilities. The idea is to try to build thi...

How to use Ctrl+Shift+F keybinding in Neovim?

Hello, This post is a reference on how to generate `Ctrl+Shift+ ` keybindings for Neovim. As you know, Vim (apparently) doesn’t support this since some terminal emulators do not pass key combinations. Theory What we’ll be doing instead is asking...

KDE Dolphin Plugin for viewing Windows PE version info

Hello In this blog post, I will be sharing how to create a plugin for KDE Dolphin to view “File version” info off a Windows EXE & DLL file. Background This project was born out of necessity to install mods for Skyrim on Linux. I needed to know the ve...

How to install open-webui the easy way on Linux

Hello, I will show you how to quickly and easily setup open-webui in your Linux distro. This will allow using Ollama models (which you have already installed locally) from a web user interface (similar to ChatGPT). Prerequisites Python 3.11 is recomm...

GhostLLM: Add text rewrite functionality to GtkTextView

Hello, This is final part of the GhostLLM project. The goal was to introduce “Rewrite Text” functionality to GTK3 TextView using Ollama. If you haven’t been following this project, you can find the links below:Part 1Part 2Part 3 In this part, I have ...

GhostLLM : RewriteText now works on GtkEntry!

Hello, This is part three of my GhostLLM project. This project is about integrating “Rewrite Text” functionality natively into GTK3 widgets. Check the part one and part two in case you missed it. Theory We will be working with gtkentry.c for this par...

GhostLLM: Creating the DBus server with Ollama integration

Hello, This is part two of my GhostLLM project. This project is about integrating “Rewrite Text” functionality natively into GTK3 widgets. Check the part one post if you missed it. In this part, I will going over the DBus server code (written in Pyth...

GhostLLM: Add LLM magic directly into GTK3 GtkEntry

Hello, This is part one of my series of fun project that felt challenging for me. Read on to know more :) Background I’ve been using Ollama for running LLM models locally on my Linux machine for more than a year. It allows us to use many LLM models f...

fedimg: Shutting down the project

Hello, It is with a heavy heart that I have decided to shut down the fedIMG project. This project started out of my curiosity towards the ActivityPub protocol. It began as a silly, fun and a “toy” server for educational purposes but as the developmen...

fedimg: ActivityPub server written in NodeJS

Background I started the project just because I wanted to build something again. After looking at some projects which I use daily, I realized I wanted to build an ActivityPub server. I go into detail in the article but this spec has been a fascinatin...

Let's talk about Moment.js

Moment.js has been my go-to for many years. When I started learning and building websites, jQuery and moment.js were a god-send but over the years moment.js has gotten difficult to ship in my newer projects. Now, don't get me wrong. It's a great libr...

How to export HTML table to PDF in Angular

Hello, In this post, I will explain how to convert an HTML table to PDF. This applies to other HTML widgets but I will be focusing on table which has a large dataset and vertical scrolling to not clutter the page. Prerequisites We are going to use 2 ...

MyStudio IDE: Sunsetting the project

Hello, I wanted to make a quick blog post regarding my decision to archive the MyStudio IDE project. This project has been a huge learning opportunity for me in terms of developing GUI applications, GTK toolkit, and Rust programming language. The IDE...

A quick start guide on dynamic JSON based HTML forms in Angular

Hello, In this post, I am going to show you an easier way to generate Angular forms (with validations!) using a simple JSON object. TL;DR For example, to generate a form for user login, we would provide the following JSON payload. fields = [ { ke...

auto-dark-theme: Let's build a CLI tool for convenience

Hello, In my previous posts here and here, I talked about creating a Python app that switches my KDE Plasma's theme to light or dark according to the system time. This app uses a config file that lives in $HOME/.config/auto-dark-theme as per XDG user...