Omarchy Competitive Programming Plugin
A native Omarchy Quattro bar-widget plugin designed for competitive programmers. It lets you create problem and contest workspaces instantly from your status bar and automatically opens the generated starter code directly in your Neovim terminal.
Features
-
One-Click Creation: Click the dartboard (🎯) icon in your bar to open the creation forms.
-
Left Click: New Problem Form <img width="381" height="346" alt="image" src="https://github.com/user-attachments/assets/08d18034-9bf1-4591-b8f1-a686687359d4" />
-
Right Click: New Contest Form <img width="359" height="316" alt="image" src="https://github.com/user-attachments/assets/f6e51821-1714-4c4d-854f-7eff1f61904a" />
-
-
Instant Neovim Launch: Immediately opens your newly generated
.cpp,.java, or.pyfiles in a terminal (Alacritty/Kitty). No manual directory navigation required. <img width="965" height="1053" alt="image" src="https://github.com/user-attachments/assets/a5bdf438-c833-4790-82bb-a260a946bcaf" /> -
Smart Pathing & Names: Automatically sanitizes problem names and generates directories (e.g.
~/Documents/data/Codeforces/Problems/0001_Two_Sum). -
Starter Templates: Pre-loads standard boilerplate for C++ (fast I/O), Java (Scanner), and Python (fast input).
-
Daily Stats: Hover over the dartboard icon to see your problems and contests created today.
Installation
You can clone this plugin directly into your Omarchy plugins directory:
git clone https://github.com/YOUR_USERNAME/YOUR_REPO_NAME.git ~/.config/omarchy/plugins/ujjawal.competitive
Then, enable it in Omarchy and assign it to a section of your bar:
omarchy plugin enable ujjawal.competitive --yes
omarchy-shell shell enablePlugin ujjawal.competitive '{"section":"right","index":0}'
(Alternatively, you can enable it through the Omarchy Settings UI under the Plugins tab).
Configuration
You can customize the plugin's defaults in your ~/.config/omarchy/shell.json configuration file, or via the Omarchy Settings UI:
{
"id": "ujjawal.competitive",
"dataRoot": "/home/youruser/Documents/data",
"defaultLanguage": "cpp",
"defaultPlatform": "codeforces"
}
dataRoot: Base directory where problems and contests will be created. (Defaults to~/Documents/data).defaultLanguage: Starter template language. Options:cpp,java,python.defaultPlatform: Platform folder organization. Options:codeforces,leetcode,other.
Requirements
- Omarchy Shell (Quattro / v4.0+)
bash(for directory/template generation)- A terminal emulator (
alacrittyorkittyfavored by default) nvim(Neovim)
License
This project is licensed under the MIT License - see the LICENSE file for details.