<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Patrik Barsi</title>
    <description>The latest articles on Forem by Patrik Barsi (@pxtrik).</description>
    <link>https://forem.com/pxtrik</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3600927%2Fce1d2ff0-dbcc-4d77-a232-bdadc9598854.jpg</url>
      <title>Forem: Patrik Barsi</title>
      <link>https://forem.com/pxtrik</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pxtrik"/>
    <language>en</language>
    <item>
      <title>My new thesis - Go Linter in Rust</title>
      <dc:creator>Patrik Barsi</dc:creator>
      <pubDate>Tue, 25 Nov 2025 23:55:49 +0000</pubDate>
      <link>https://forem.com/pxtrik/my-new-thesis-go-linter-in-rust-1hp9</link>
      <guid>https://forem.com/pxtrik/my-new-thesis-go-linter-in-rust-1hp9</guid>
      <description>&lt;h1&gt;
  
  
  Thesis Project Idea
&lt;/h1&gt;

&lt;p&gt;Hello everyone, I am in the last year of my Bachelor's Degree in Software Engineering, which means I need to complete a thesis to officially finish.  &lt;/p&gt;

&lt;p&gt;I wanted to do something challenging and outstanding. My initial idea was to implement a text/code editor in Rust. While that idea had potential—it’s easy to layer a text editor and add new features—I wanted to create something genuinely useful. Let's be real: no one would use my editor, which would essentially be a low-budget copy of Zed.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Final Idea
&lt;/h2&gt;

&lt;p&gt;I decided to switch to creating a &lt;strong&gt;Go Linter implemented in Rust&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;I know the Go community is strict, so implementing my own rules from scratch would make little sense. Then the perfect idea came to me:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Base the linting rules on the popular book &lt;strong&gt;"100 Go Mistakes and How to Avoid Them" by Teiva Harsanyi&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;This book is widely accepted in the Go community as a reference for writing good Go code.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The linter can be &lt;strong&gt;layered&lt;/strong&gt;.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I could write my own parser or use an existing one.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;I might implement a &lt;strong&gt;domain-specific language (DSL)&lt;/strong&gt; for defining linting rules, as my mentor is well-versed in DSLs.  &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These aspects are still open questions, but I’m really excited about this project. It could potentially be used by others—who knows, maybe it will become the Go equivalent of Ruff for Python.  &lt;/p&gt;

&lt;p&gt;Thanks for reading. Cya.&lt;/p&gt;

</description>
      <category>go</category>
      <category>rust</category>
      <category>books</category>
      <category>thesis</category>
    </item>
    <item>
      <title>College student sets up NEOVIM!!!!</title>
      <dc:creator>Patrik Barsi</dc:creator>
      <pubDate>Tue, 25 Nov 2025 23:44:36 +0000</pubDate>
      <link>https://forem.com/pxtrik/college-student-sets-up-neovim-3dn7</link>
      <guid>https://forem.com/pxtrik/college-student-sets-up-neovim-3dn7</guid>
      <description>&lt;h1&gt;
  
  
  Neovim Setup Update
&lt;/h1&gt;

&lt;p&gt;It's been a while since I last wrote, hehe, my bad. Don't think anyone waits for my posts though.  &lt;/p&gt;

&lt;p&gt;After setting up my system to my liking (check previous posts), I hopped into my Neovim configuration. I set up almost everything: LSPs, Treesitter, Telescope, formatters, linters, and some QoL plugins. Let's dive into these configs.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Core Setup
&lt;/h2&gt;

&lt;p&gt;Setting up Treesitter, LSPs, and Telescope was pretty easy. I use &lt;code&gt;lazy.nvim&lt;/code&gt; for plugin management.  &lt;/p&gt;

&lt;p&gt;After adding it, I experimented with different languages, downloading a few LSPs and popular linters:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;pyright (LSP for Python)
&lt;/li&gt;
&lt;li&gt;ruff (gigafast Python linter)
&lt;/li&gt;
&lt;li&gt;vtsls (modern TypeScript LSP)
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Telescope is really nice as a fuzzy finder for navigation. I heard fzf-lua is much better, but for now Telescope gets the job done.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Additional Plugins
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Neotree&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
I use this in case I forget a file name (rare occasion, I'm still young).  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Autocompletions&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Surprisingly, autocompletion requires 4-5 plugins. I was expecting an all-in-one plugin but didn’t find one. Currently, I accept suggestions via &lt;code&gt;&amp;lt;Enter&amp;gt;&lt;/code&gt;, but this sometimes interferes when I want to break a line in Insert Mode. I might switch it to &lt;code&gt;&amp;lt;C-y&amp;gt;&lt;/code&gt;.  &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Theme&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The most important part of any editor is the theme. I use Nord, which blends nicely into my defrosted system theme.  &lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quality of Life Plugins
&lt;/h2&gt;

&lt;p&gt;All QoL plugins are from &lt;code&gt;mini.nvim&lt;/code&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;indentscope&lt;/strong&gt;: Helps keep track of indentation
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;pairs&lt;/strong&gt;: Auto-bracketing
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;move&lt;/strong&gt;: Allows moving blocks of code via Alt+h/j/k/l
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These additions make editing smoother without much bloat. My setup is much less bloated than LazyVim, for example.  &lt;/p&gt;

&lt;h2&gt;
  
  
  Future Plans
&lt;/h2&gt;

&lt;p&gt;I am thinking about adding &lt;code&gt;bufferline.nvim&lt;/code&gt; to have a VSCode-like experience. For now, I want to try out &lt;code&gt;harpoon2&lt;/code&gt; for secondary navigation, while Neotree remains tertiary.  &lt;/p&gt;

&lt;p&gt;Thanks for reading. Cya.&lt;/p&gt;

</description>
      <category>neovim</category>
      <category>linux</category>
      <category>archlinux</category>
      <category>productivity</category>
    </item>
    <item>
      <title>College student starts getting good at ricing (kinda)</title>
      <dc:creator>Patrik Barsi</dc:creator>
      <pubDate>Thu, 13 Nov 2025 18:58:41 +0000</pubDate>
      <link>https://forem.com/pxtrik/college-student-starts-getting-good-at-ricing-kinda-4pah</link>
      <guid>https://forem.com/pxtrik/college-student-starts-getting-good-at-ricing-kinda-4pah</guid>
      <description>&lt;h1&gt;
  
  
  Customizing My Omarchy Setup — Progress Update
&lt;/h1&gt;

&lt;p&gt;In my last post, I dove into the world of &lt;strong&gt;Omarchy (Arch)&lt;/strong&gt; with the goal of creating an aesthetic, productive, and minimalistic system that I fully control. The aesthetic part is coming along nicely.  &lt;/p&gt;

&lt;p&gt;I’m currently working on my own theme called &lt;strong&gt;Defrosted&lt;/strong&gt;, heavily inspired by &lt;a href="https://github.com/bjarneo/omarchy-frost-theme" rel="noopener noreferrer"&gt;bjarneo’s Omarchy Frost theme&lt;/a&gt;. My plan is to make it a bit more colorful while keeping the focus on blue variants.&lt;/p&gt;




&lt;h2&gt;
  
  
  Visual Setup Progress
&lt;/h2&gt;

&lt;p&gt;Since my last post, I’ve modified my &lt;strong&gt;background&lt;/strong&gt;, &lt;strong&gt;Waybar&lt;/strong&gt;, &lt;strong&gt;shell prompt&lt;/strong&gt;, and &lt;strong&gt;Walker app launcher&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Background
&lt;/h3&gt;

&lt;p&gt;For the background, I wanted something snowy, cloudy, and cold, with a darker tone for better contrast. Following DHH’s advice, I browsed through &lt;a href="https://github.com/dharmx/walls" rel="noopener noreferrer"&gt;dharmx’s wallpaper collection&lt;/a&gt; for a while and eventually landed on this one:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flrnvz6pbdccy9h8uloka.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flrnvz6pbdccy9h8uloka.jpg" alt="Background" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Waybar
&lt;/h3&gt;

&lt;p&gt;I spent quite some time tweaking my Waybar. My goal was to have each section (left, center, right) clearly separated, with each showing only the essential information.  &lt;/p&gt;

&lt;p&gt;After reading the documentation and experimenting with CSS IDs and class names (which wasn’t exactly smooth), I finally arrived at this result:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feofcn4jlz5drzdb3nnk3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feofcn4jlz5drzdb3nnk3.png" alt="Waybar" width="800" height="27"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;left module&lt;/strong&gt; contains only the workspaces.&lt;br&gt;&lt;br&gt;
The &lt;strong&gt;center module&lt;/strong&gt; shows the day of the month (e.g., 13th) and the time in 24-hour format.&lt;/p&gt;

&lt;p&gt;At first, when I heard &lt;em&gt;ThePrimeagen&lt;/em&gt; talk about this format, I thought it was a bad idea — why not include the month or the day of the week? But after thinking it through, he’s right. These two pieces of information tell me everything I need: I already know what month it is, and I don’t need to be reminded of the weekday. Thanks, ThePrimeagen.&lt;/p&gt;




&lt;h3&gt;
  
  
  Shell Prompt
&lt;/h3&gt;

&lt;p&gt;As I plan to use the terminal a lot, I wanted my shell prompt to feel special. Omarchy ships with &lt;strong&gt;Starship&lt;/strong&gt;, and my first idea was to use the &lt;em&gt;Tokyo Night&lt;/em&gt; style:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flieabqc6sybc3znn4xh3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flieabqc6sybc3znn4xh3.png" alt="Tokyo Night Prompt" width="800" height="126"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While it looks great, it’s a bit too much for me. Even though I could adjust what’s displayed, it didn’t align with my minimalistic goals.&lt;br&gt;&lt;br&gt;
So, I ended up with this cleaner version:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuv11rrjk5gt2w6ppx93q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuv11rrjk5gt2w6ppx93q.png" alt="Minimal Prompt" width="372" height="117"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It shows the last three directories (in a stylish way), and when I’m inside a Git repository, it displays the current branch:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxk02ey5ullo6y4z0j6uf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxk02ey5ullo6y4z0j6uf.png" alt="Git Prompt" width="336" height="40"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this screenshot, I’m in the base folder of the repository, so only that directory name is visible.&lt;/p&gt;




&lt;h3&gt;
  
  
  Walker App Launcher
&lt;/h3&gt;

&lt;p&gt;Lastly, I tweaked my &lt;strong&gt;Walker&lt;/strong&gt; launcher — mainly color adjustments and rounded corners. Unfortunately, I can’t screenshot it for some reason, so you’ll have to take my word that it looks good.&lt;/p&gt;




&lt;p&gt;Thanks for reading!&lt;br&gt;&lt;br&gt;
See you next time.&lt;/p&gt;

</description>
      <category>archlinux</category>
      <category>ricing</category>
      <category>productivity</category>
      <category>linux</category>
    </item>
    <item>
      <title>CS College Students Tries Real OS (Omarchy btw)</title>
      <dc:creator>Patrik Barsi</dc:creator>
      <pubDate>Sat, 08 Nov 2025 16:16:46 +0000</pubDate>
      <link>https://forem.com/pxtrik/cs-college-students-tries-real-os-omarchy-btw-5816</link>
      <guid>https://forem.com/pxtrik/cs-college-students-tries-real-os-omarchy-btw-5816</guid>
      <description>&lt;h1&gt;
  
  
  My Experience Switching to Omarchy
&lt;/h1&gt;

&lt;p&gt;I hate nothing more than using Windows' built-in search functionality. It can't find anything and is slower than me finding memory bugs. I would rather learn combinatorics again than use Windows search.  &lt;/p&gt;

&lt;p&gt;And that is one of the reasons I wanted to try out a Linux distro. As a young, manipulative, and inexperienced college student, I chose the most hyped distro — Omarchy.&lt;/p&gt;




&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;

&lt;p&gt;So, I built in another SSD in my laptop, downloaded the ISO, and installed Omarchy. I already had a Linux Mint install before with i3 and a really nice Neovim config, and I wiped the whole thing for this new OS.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First impressions:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
WOW, this is so much better than i3 — the animations, the colors, everything looked perfect.&lt;/p&gt;




&lt;h2&gt;
  
  
  Realizations and Customizations
&lt;/h2&gt;

&lt;p&gt;After a few days, I realized something was missing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;I don’t want to use Chromium — I want Firefox.
&lt;/li&gt;
&lt;li&gt;But I don’t want vanilla Firefox — I want custom Firefox.
&lt;/li&gt;
&lt;li&gt;I don’t want these Hyprland keybindings — I want i3-style keybindings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Slowly, I realized I would need to change a lot of things, so I got to work.&lt;/p&gt;




&lt;h3&gt;
  
  
  Firefox Tweaks
&lt;/h3&gt;

&lt;p&gt;Firstly, I riced my Firefox with &lt;a href="https://github.com/soulhotel/FF-ULTIMA" rel="noopener noreferrer"&gt;FF Ultima&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;Then I wanted to add custom keybindings to it (I like to use &lt;code&gt;Ctrl + 1&lt;/code&gt; to move right in my tabs and &lt;code&gt;Ctrl + 2&lt;/code&gt; to move left in my tabs) and realized it's not supported natively.  &lt;/p&gt;

&lt;p&gt;Everyone on the internet said I should upvote a post on Mozilla Connect and wait for the dev team to add the functionality. The post is more than 3 years old 😅.&lt;/p&gt;




&lt;h3&gt;
  
  
  Hyprland Keybindings
&lt;/h3&gt;

&lt;p&gt;Then I changed my Hyprland keybindings.&lt;br&gt;&lt;br&gt;
&lt;code&gt;SUPER + W&lt;/code&gt; closes windows — do you know what's close to &lt;code&gt;SUPER + W&lt;/code&gt;? &lt;code&gt;Ctrl + W&lt;/code&gt;.  &lt;/p&gt;

&lt;p&gt;Do you know what that means?&lt;br&gt;&lt;br&gt;
I want to close a browser tab and I accidentally close the whole window 😭.  &lt;/p&gt;

&lt;p&gt;Fortunately, Firefox allows reopening recently closed tabs with &lt;code&gt;Ctrl + Shift + T&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;I also realized there was no way (or at least I didn’t find any) to resize windows, so I added keybindings to resize active windows in any direction.&lt;/p&gt;




&lt;h2&gt;
  
  
  What’s Next
&lt;/h2&gt;

&lt;p&gt;I still have a long way to go in my ricing journey.  &lt;/p&gt;

&lt;p&gt;Omarchy comes with LazyVim, but for some reason I don’t like it. So, I’ll probably make my own config with kickstart.nvim**.  &lt;/p&gt;

&lt;p&gt;Also, the default Waybar looks kinda empty. These two configs are my main focus for the future.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Cya.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>archlinux</category>
      <category>ricing</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
