How I Created My Own Little Notes App for My New Linux System ✍️🐧

VivekVivek
3 min read

Recently, I made the switch from macOS to Linux—Ubuntu to be specific—and it’s been a fun ride so far. One thing I love about Linux is the freedom to customize everything to fit my workflow. So, instead of searching for the perfect notes app, I thought, why not build my own?

Armed with VSCode, the GitDoc extension, and a little bit of creativity, I created my own custom Notes App that automatically syncs to a private GitHub repository. Here’s how I did it. 🚀


The Goal: A Simple, Auto-Syncing Notes App 📒

I wanted an app that:

  • Works offline and syncs automatically with my GitHub repository.

  • Supports Markdown and plain text for quick note-taking.

  • Has a preview mode for Markdown when needed.

  • Is easily accessible from my system with a single click.

VSCode combined with GitDoc turned out to be the perfect solution!


Setting Up My Notes App 📋

Step 1: Create a GitHub Repository for Notes

I started by creating a GitHub repository named notes to store all my notes. This would act as the central hub for syncing all my Markdown and text files.

Step 2: Install and Configure GitDoc in VSCode

The GitDoc extension in VSCode made syncing notes effortless. It automatically commits and pushes changes to my GitHub repo as I edit. Here’s how I set it up:

  • GitDoc: File Pattern → I restricted it to work only for my Notes folder:

      /home/vivek/Documents/Notes/**/*
    
  • GitDoc > AI: Model → Enabled this setting so the extension can generate meaningful commit messages using AI. (Yes, it’s as cool as it sounds!) 😎

Step 3: Auto-Save for Instant Syncing

To avoid manually saving files, I enabled Auto-Save in VSCode. This ensures that every edit is automatically committed and pushed by GitDoc.


Creating a Shortcut for My Notes App 📂

I created a custom Notes.desktop file that acts as a shortcut to open my Notes folder in VSCode with a single click. Here’s the content of my Notes.desktop file:

[Desktop Entry]
Version=1.0
Name=Notes
Comment=Notes
Exec=code --new-window /home/vivek/Documents/Notes --name=Notes --class=Notes
Terminal=false
Type=Application
Icon=/home/vivek/.local/share/custom/applications/icons/Notes.png
Categories=GTK;Utility;
MimeType=text/html;text/xml;application/xhtml_xml;
StartupNotify=true
StartupWMClass=Notes

Now, I have a dedicated Notes app icon on my system. One click, and my VSCode opens directly in the Notes folder. 💻


Using Markdown for Note-Taking 📝

I primarily use Markdown (.md) and plain text (.txt) for taking notes. VSCode’s built-in Markdown support makes it super convenient:

  • Ctrl + Shift + V → Preview the rendered Markdown content when needed.

This way, I can enjoy a clean writing experience and switch to preview mode whenever I want to see the final result.

I also set up a new VSCode shortcut, Ctrl + Alt + N, to create a new file or folder from the file tree. With this shortcut, you can immediately start typing the file name, like todo.md, and press enter to begin writing your note in the newly created file.


My Experience So Far 🤩

The setup has been working flawlessly for my use case. Every note is automatically synced to GitHub, and I never have to worry about losing anything.

Why I love this setup:

  • Offline-first and GitHub backup—I can take notes without worrying about an internet connection.

  • AI-powered commit messages—The GitDoc extension generates relevant commit messages, saving me from writing them manually.

  • Total control over my workflow—Linux allows me to tweak every little thing to match my needs perfectly.


Final Thoughts 🔮

Switching from macOS to Linux has been a breath of fresh air. With full control over my environment, I built a Notes app that’s custom, simple, and perfectly tailored to my needs. If you’re looking for a similar setup, give VSCode + GitDoc a shot—you might never go back to traditional note-taking apps again.

Happy note-taking! ✍️🐧📚

20
Subscribe to my newsletter

Read articles from Vivek directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Vivek
Vivek

Curious Full Stack Developer wanting to try hands on ⌨️ new technologies and frameworks. More leaning towards React these days - Next, Blitz, Remix 👨🏻‍💻