projects.md (9029B)
1 +++ 2 title = "Project Ideas" 3 +++ 4 5 My list of project ideas. If you are reading this and think one of these projects would genuinely be useful, or you have a similar problem, feel free to let me know! 6 7 ## Coding 8 9 I have a *lot* of coding project ideas. No guarantees that any given project here will actually happen 10 11 ### Simple eBook Reader 12 13 Simple terminal program that just reads EPUB files and has nice output. Would need an html parser and possibly use ueberzug for images 14 15 - Possible Language: Go 16 17 ### Simple Viewer 18 19 X11 program for viewing basic text and images. Basically somewhere between a web-browser, pdf viewer and terminal pager. Would support images, and could read from standard input like a pager (either using HTML or preferably markdown). Advantage over a terminal would be easier image support and non-monospace font options. Advantage over pdf viewer would be speed and flexibility. 20 21 - Possible Language: Go, Zig, C 22 23 ### Suckless Spell-Check 24 25 Both of the major spell check libraries (hunspell and aspell) are rather large projects. I'm sure they are well written, and they serve a purpose, but a more minimalist alternative should be possible. 26 This project would just have basic functionality; reading in a file, outputting incorrectly spelt words along with suggestions. Perhaps also a TUI interface allowing the user to choose between options, or add the existing word to the dictionary. 27 28 - Possible Language: Zig, Go 29 30 ### Ultra-Minimal dmenu Alternative 31 32 dmenu is suckless software and is fairly lightweight (~1300 SLOC) compared to say Rofi (~25000 SLOC). I'd like to have go making an even more lightweight version, with only the most basic features. 33 34 - Possible Language: Zig (good C support to use XLib headers) 35 36 ### Basic Photo-Site Creator 37 38 A simple program that takes a bunch of photos, descriptions and other metadata, and outputs a HTML grid of said images. No JS, customisation left to CSS. 39 40 - Possible Language: Go 41 42 ### Pro Cycling Stats CLI 43 44 CLI/TUI tool for displaying live race data from procyclingstats, built in such a way to minimise traffic to their servers 45 46 - Possible Language: Go, Zig 47 48 ### UK Weather Terminal Interface 49 50 A TUI interface that pulls data from the Met Office and BBC Weather, to allow comparing the forecasts 51 52 - Possible Language: Go, Python 53 54 ### Weather Station Symbol Generator 55 56 Been fascinated with [these symbols][ws] ever since Nat 5 Geography, would be good to programatically generate them. Could be used as a weather widget on your computer, or even for educational purposes. 57 58 [ws]: https://www.bbc.co.uk/bitesize/guides/zbp82hv/revision/4 "BBC Bitesize - Weather Circles" 59 60 ### GoTube 61 62 I previously had a project named GoTube, a TUI YouTube client with thumbnail support via ueberzug, and account integration via the innertube browser API. My plan is to split this project up into a backend, and a frontend video viewer, as the frontend video viewer could be used for more than just YouTube, and the backend tools could be useful by themselves. Maintaining this was a bit of a chore as YouTube are always changing their website JSON format. I'm generally anti-AI for programming but this could be a genuine use case, more experimentation is needed. 63 64 ### Markdown to Groff Converter 65 66 A few of these exist on the internet but I can't find any that handle images. Admittedly images with Groff seems like a pain so that might be why... Born out of a desire to build documents in plaintext without installing all of LaTeX 67 68 ### DekuDeals API 69 70 Another project I previously made but never finished. I do want to bring this back at some point, I lost my motivation to work on it because I stopped religiously buying Switch games, but it's still a neat idea. 71 72 ### Minimalist Game Library Manager 73 74 I use Playnite on my desktop gaming PC to organise all my games, which works well but a more lightweight alternative, that works on Linux, would be nice. There is Lutris, but I don't need any of the features it has. Doesn't even need to be a game *launcher*, just a way to visually organise the games I want to play. 75 76 - Possible Language: Go, Zig, C# 77 78 ### CLI Address Book 79 80 Previously I wrote a CLI address book, in the style of pass, I'd like to re-make it, especially since I still have all the entries from it and need a way to view them. 81 82 - Possible Language: Go 83 84 ### Minimalist bat Clone 85 86 `bat` is an alternative to `cat`, with syntax highlighting and line numbers, but it has a lot of features that I don't use and pulls around 200 rust dependencies. 87 88 - Possible Language: Zig, Go, Rust 89 90 ### Command Colourizer 91 92 A program that takes a command, and a set of colour definitions and placements, and outputs that command with the relevant text colourized. For example `lsblk`, it could colour different fstypes in different colours (e.g. red for `vfat`, yellow for `ext4`, blue for `ntfs` etc) 93 94 - Possible Language: Zig, C, Rust 95 96 ### Games 97 98 Grouping all of my video game ideas into one section 99 100 #### Idle Fish Game 101 102 I used to play [Abyssrium][aby] on my phone but it's a bit too much of a "mobile game". It would be neat to make a game like this without ads or microtransactions etc. Not sure if it would be for mobile or desktop. 103 104 [aby]: https://www.abyssrium.com/ "Abyssrium Homepage" 105 106 #### Top-Down Planet Crafter Clone 107 108 Game in the style of [Planet Crafter][pc] but top-down or isometric. Possibly good as a first game project 109 110 [pc]: https://store.steampowered.com/app/1284190/The_Planet_Crafter/ "Planet Crafter Steam" 111 112 #### Incremental/Multiplayer/Browser Game 113 114 A combination between old school MUDs, modern incremental browser games, and resource management games 115 116 ### Mini Projects/Other 117 118 Projects that can be done in an afternoon: 119 120 * An `ls` clone in Zig - mainly as a learning exercise 121 * Simple cli file management tools (batch renaming, numbering etc) 122 * A fun terminal program that simulates a junction with traffic lights 123 * [asciiquarium][asq] rewrite in C or Zig 124 * cli tool for word pronunciation 125 * Simple RSS feed generator. Takes markdown files and outputs RSS feed 126 127 [asq]: https://github.com/cmatsuoka/asciiquarium "asciiquarium - GitHub" 128 129 Vague ideas: 130 131 * Something with the [Nuklear][nuk] minimal C UI library 132 133 [nuk]: https://github.com/Immediate-Mode-UI/Nuklear "Nuklear GitHub" 134 135 ## Linux 136 137 ### Low Powered Computers 138 139 The [Pi 3B+ desktop setup][pi] is the first in a series I hope to make of usable Linux setups on underpowered/old hardware. Other ideas I have are: 140 * Old mini PC 141 * Portable Pi cyberdeck 142 * Old Thinkpad 143 * Old laptop converted to desktop or all in one (similar to [this DIY Perks video][diy]) 144 145 [pi]: /linux/pi3-b-setup-pt1 "Part 1 of my Pi 3B+ setup series" 146 [diy]: https://www.youtube.com/watch?v=8jeLCQ62vFk "DIY Perks all in one" 147 148 ### Minimalist Software 149 150 Minimalist software comprises a lot of my workflow already, but there are areas I would like to improve on. Inspired somewhat by [this guide][alt] 151 152 [alt]: https://github.com/mayfrost/guides/blob/master/ALTERNATIVES.md "Alternatives to bloatware" 153 154 ## Hardware 155 156 ### Thinkpad Keyboard -> USB Keyboard 157 158 I really want [one of these][tpk] but I can't find any in a UK layout, and they are all quite expensive. It should be possible to make one using a Thinkpad keyboard extracted from an old laptop, and a Pi Pico or Arduino in HID mode. 159 160 [tpk]: https://support.lenovo.com/gb/en/solutions/pd026745-thinkpad-compact-usb-keyboard-with-trackpoint-overview-and-service-parts "Thinkpad USB keyboard" 161 162 ### Mod an XBox 360 163 164 The XBox 360 was my mid-childhood console. Don't currently own one but I would like to, and modding it doesn't seem *too* hard. 165 166 ### GaMeR CoNsOlE 167 168 Taking a Ryzen mini PC or laptop, extracting the motherboard and mounting in an old game console shell (OG XBox, PS2 etc). Batocera or similar would be used to emulate any console up to the 6th gen 169 170 ### DIY Bike Computer 171 172 Using either an old Android phone, or a round display [like this][rd]. Recording ride data for Strava, and displaying basic maps using OpenStreetMap data. 173 174 [rd]: https://thepihut.com/products/seeed-studio-round-display-for-xiao-1-28-round-touch-screen "Example round display" 175 176 ### Arcade Stick 177 178 DIY arcade stick/controller (with buttons), made using Pi Pico. Would be usable on Switch, PC etc 179 180 ## Other 181 182 ### Website 183 184 * Gopher or Gemini plaintext site 185 * Webrings stuff 186 * Style my [git website][mygit] 187 - Also get `git clone` working properly 188 * Photo sub-website 189 - Need to build the photo site generator first 190 * Wiki sub-website 191 - Just a wiki for random computer knowledge I have gathered 192 * Single info page/linktree page 193 194 [mygit]: https://git.regexghost.com "git.regexghost.com" 195 196 ## Defunct Ideas 197 198 * Performant Obsidian clone - a program like Obsidian but built in a native UI library like XLib, prioritising performance 199 - Defunct as I use terminal text editors now and don't see myself going back to GUI ones 200 * DIY arcade cabinet - a proper full/nearly-full size arcade cabinet 201 - I don't have the room for this at the moment unfortunately 202 * Digital pinball machine 203 - Same as above, not enough room