Activity

Voxi0

feat

  • rewrote everything in modern c++. classes and structs in c++ are really nice and convenient honestly but anyways im also making use of deconstructors and all to make sure resources are properly cleaned up automatically no matter what without requiring manual intervention among other things
  • cleaned up makefile and stuff and using clang instead of gcc. for some reason clang feels slightly faster at compiling? but anyways i also noticed the error messages are way nicer looking and less terrifying compared to gcc so uh yeah using clang now
  • rotate the bird so it looks up when flapping and smoothly looks down as it falls
  • added pipes. still very incomplete as im not handling collisions and scoring just yet but the basics are there. im currently in the middle of trying to figure out how to generate the pipes using object pooling instead of destroying and creating pipes continuously

extra yap

i nearly finished the project in c but i felt like my code was too unclean and messy and just, trash in general to the point that refactoring felt like one messy chore that just hurts your soul. so i may or may not have deleted everything and rewrote everything in c++ lmao

but honestly it did help. the structure and everything is way cleaner now with classes and structs. c++ is just nice to work with unless you get into really low-level advanced stuff i guess.

and uh, from the last image you can tell that pipe generation is still a heavy work in progress… i feel so stupid i’m somewhat lost. but anyways i’ll focus a lot today and hopefully get it working. after that it’s genuinely smooth sailing and just polishing a bit and making a web build with emscripten before shipping.

Attachment
Attachment
Attachment
Attachment
Attachment
0
Voxi0

init

  • set up a basic flappy bird project using c23 and raylib. the development environment is composed of a simple nix devshell and a makefile. not really much to it.
  • added a bird struct which is just the player. i already did stuff so it can flap and move left and right cause why not?
  • made a crappy main menu using raygui. ignore the two test buttons at the bottom gang. there’s a simple enum to track the game state and in the main loop i just have a switch statement to check the state of the game. i should be able to easily implement a pause menu later on.
  • as you can see in the actual game uh, there’s a random rectangle. im just testing collision right now before starting to make pipes using rectangles and stuff. its just a placeholder for now which i’ll later replace with proper textures and stuff later.
Attachment
Attachment
0
Voxi0

damn it’s 3am already and i have an assignment due in like, 6 days…. oh and if you’re wondering what’s with the 25 hours logged in a single devlog with not really that many changes, it seems that this project was only tracking the old project name weirdly enough. i thought i added in my new hackatime project. yes this was previously called yay i suck with names okay?

feat

  • added lze plugin manager back in. it’s just super convenient over plain ol manual vim.pack adding stuff. plugin management is way nicer now and i think im lazy loading stuff more properly as well.
  • updated the docs with a new theme and updated with fresh content. i tried summarizing a bunch of text to make it shorter and more readable. i still think i can do even better.
  • realized that i was adding a bunch of plugins to the startup spec in which all plugins are loaded at startup by neovim while also managing said plugins with lze so i was actually loading the same plugins TWICE. i fixed that by making sure that only lze itself was loaded on startup by nvim. everything else is loaded by lze.
  • added noice.nvim for ui and replaced mini.files with fyler and just polished the ui in general by customizing the theme and snacks.picker and all.
  • replaced mini.picker with snacks.picker and made a bunch of keybinds for fun stuff like picking themes. i made sure that all of neovim’s builtin colorschemes weren’t included in the picker search results though since they honestly kinda suck.
  • removed conform.nvim so now it’s up to the user to install and configure it
  • two new autocmds to toggle relative numbers everytime you enter/leave insert mode. no relative nums in insert mode yes. also ensured that treesitter would be started even if the lsp didn’t kick in.
  • fixed nvim-ts-autotag which i probably broke in a previous update.
  • added an autocmd to make help pages open in a vertical split while man pages opened in a new buffer.
Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
Attachment
0
Voxi0

a whole boatload of changes. again. yes. and i mean a lot lot. also im using iosevka font now instead of jetbrains. i like it.

feat

  • replaced nixCats with nix-wrapper-modules which is the successor to nixCats and exporting nvdots as a wrapped neovim package (an overlay is available)
  • wrote a docs site using astrojs and the starlight template. still incomplete
  • added nix binary cache to use neovim nightly without having to manually compile everything
  • properly configuring nvim-treesitter. i also install all treesitter grammars to make life easier though it does take a bit of space
  • added nvim-treesitter-textobjects which uses treesitter for smarter and more code-aware motions e.g. selecting everything inside a function
  • added nvim-lspconfig so a simple vim.lsp.enable is enough to get whatever lsp working right away without any manual configuration. no lsp’s are enabled by default so the user has to enable it themselves which is documented in the docs
  • added conform-nvim to use external formatters instead of the built in formatter that some lsp’s might have
  • added live-preview-nvim which allows you to preview markdown and a bunch of other types of files in the browser with live reloading or whatever
  • added nvim-ts-autotag which uses treesitter to basically auto-pair and auto-rename html tags. it works with a lot of things e.g. astro, react, vue etc etc.
  • a whole lot of ui changes - different theme, lualine configuration, mini.animate plugin to animate common neovim actions and bufferline-nvim to for a nice looking bufferline. i dunno if i’ll keep it or not though.

extra yapping

complete black backgrounds look so friggin nice man. i just took the catppuccin colorscheme and did an override on the colours to change the base colour to all zeroes pretty much.

Attachment
Attachment
Attachment
0
Voxi0

the configuration is more or less complete and is usable now. however there’s always room to improve of course, i just haven’t found any way to improve just yet but i am scouring other configurations, documentation and whatnot to find something interesting.

also, since i finally switched over to nvdots it’s time i showcase it or whatever yes? not entirely sure what exactly to show off since there’s a bunch of things.

i’ll just showcase the desktop, fastfetch, my nvdots (my neovim config) dashboard and yazi tui file manager.

desc

  • lotsa cleaning and fixing and polishing and whatnot
  • added my neovim configuration, nvdots, as a home-manager module. btw nvdots is also another project i have on flavortown.
  • added a config folder to hold config files that i don’t wanna let home-manager handle or whatever for reasons i’ll talk about in the yapping section.

yapping

some configurations like the window manager’s or compositor’s configuration is something people will change often to test something different to see how it looks.

i do that sometimes too because it’s always good to experiment. but having to rebuild the entire system or home manager or whatever every single time just one tiny change is made to the configuration is incredibly frustrating.

of course another thing you could do is just take the contents of a config file, put it into a new file, remove the symlink file and rename the config file to whatever the symlink was and then make changes to it and test different values before putting it into your nix configuration and rebuilding it. but obviously that’s just super tedious.

again, i’m still not sure how i’ll handle these dotfiles just yet. if not home manager then it’d have to be either manual copy-pasting or something else. probably copy-pasting for simplicity and it should serve it’s purpose just fine tbh. but i dunno, i’ll think about it more sooner or later.

Attachment
Attachment
Attachment
Attachment
0
Voxi0

i made a lotta changes, i think i did atleast

changes

  • this is one of the biggest changes, i got rid of the lze plugin manager and migrated all my plugin configuration over to use the latest native plugin manager offered by neovim, packadd. it’s super simple to work with and didn’t take me long to figure out that i can combine packadd with autocmds to get lazy-loading too.
  • exporting two packages in my flake. one is “stable” the other is “unstable” which uses neovim nightly binary which is currently 0.12 dev.
  • configured the lua_ls lsp a bit to ensure it can get access to all the neovim api library stuff or whatever so that i can get autocompletion and documentation and everything for nvim api functions so now i have no warnings and i get some sweet autocompletion from the lsp
  • added lualine plugin for a cool ahh statusline. for a while i had an issue where opening up mini picker to search for files/buffers would actually get rid of lualine, replacing it with the default statusline which really sucked. but i managed to figure out that setting globalstatus in lualine’s config fixes it all.
  • added snacks.nvim plugin which gave me a plethora of cool features like being able to use lazygit inside of neovim and having even fancier indentation guides and also a dashboard cause why not? might use other stuff from snacks later
  • added wakatime plugin since i personally need it for hackatime and all anyways. i’ll be switching over to nvdots very soon right after im sure its complete and ready
  • two new autocmds to highlight yanked text for a second or two and the other to show lsp loading progress.

some extra yapping

i also wrote a bunch of keybinds or keymaps or whatever for blink.cmp which im using for autocompletion and slightly changed treesitter configuration to handle loading an lsp better than before (the last version is error-prone and just super, risque yk, and i really would rather avoid that)

Attachment
Attachment
Attachment
0
Voxi0

changes

  • added nvim-treesitter for syntax highlighting
  • added nvim-ufo for code folding
  • stopped neovim from creating auto-comments or whatever. you know how after you type a comment and go to a newline that neovim like, creates a comment for you or whatever? it’s really annoying so yeah say sayonara.

extra yapping

nvim-treesitter appears to have had a massive rewrite not too long ago and therefore the way it’s configured and all has changed. so it took my goofy ahh a while to figure it out cause im stupid and it’s 2:15am…

Attachment
Attachment
0
Voxi0

i should’ve done a devlog as soon as i decided to start on this but anyways… yes i’m using markdown this time round, i love markdown and how i can easily make beautiful text with it.

init

  • initialized a new project using the fresh template flake for nixCats and cleaned up the flake file
  • created a basic neovim configuration to test everything was working before adding plugins
  • installed lze which is a dead-simple lazy-loading library along with a bunch of plugins and configured them. i didn’t install a whole lotta plugins, just a theme, icon pack, blink.cmp for autocompletion and some plugins from mini.nvim and finally cord.nvim for discord rich presence because uh, it’s cool yes i totally need it.

extra yapping

yes i love bullet points a lot. unordered lists are cool and i always use them in my notes and all for whatever reason. i cant live without them.

while the configuration is mostly complete and this project is ready to be used, im sure there’s a couple more things i can do to polish this more and make it slightly better but so far so good. (edit: there were SO many more things to improve and im still not done).

if im not wrong, neovim 0.12 introduces a bunch of really cool things. mainly the packadd plugin manager which is the built-in native plugin manager for neovim. i’m super interested in that so i’m planning on trying that out later when i tweak my flake to use the nightly version of neovim. obviously 0.12 is still a nightly release as of now.

Attachment
Attachment
0
Voxi0

feat: added docs (well just made sure to set up the foundation, there isn’t really any content in the docs just yet), added a bunch of useful cli utilities and apps that i find myself using fairly often and added configuration for a wayland compositor called niri

i haven’t been able to work on my project too much because i had some exams and other things and my dad took away all my devices except my laptop since he believes i wasn’t studying hard enough or whatever so im really glad to be able to make a comeback.

with all of this done and especially the niri configuration complete, i’m nearly ready to go ahead and switch over to vodots on my system and start ricing it and making it look cooler and more polished. we finally have something graphical!

before i switch over to vodots to start testing everything though i want to focus on cleaning up and reorganizing a bunch of things and that’s exactly what i’ve been doing for a while. as soon as im done ill make the switch and in the next devlog ill showcase what it looks like. there’s still a lot to do, like ricing the system and figuring out how i want my dotfiles managed and all.

i’d like to avoid using home manager to manage all my dotfiles, especially for things that i’ll configure often like niri because if i do use home manager, i’ll have to edit vodots for every little change i want to make in my niri configuration which is very annoying honestly and since i wanna make this more friendly for other people wanting to use my configs, it wouldn’t be very nice i guess.

below is just a snippet of the configuration i wrote for niri.

Attachment
0
Voxi0

feat: added apps e.g. firefox, discord (vencord with a bunch of plugins), spotify (spicetify for customizing it with plugins and all), obs-studio and i also made sure to use nix-flatpak with home manager instead of nixos since it’s best to use home manager whenever possible because home manager dotfiles can actually be used on other distros and operating systems with nix and home manager set up and all. also fixed some minor bugs and updated the flake as well of course.

all apps are preconfigured but can be further customized imperatively by the user which is convenient imo.

Attachment
0
Voxi0

feat: changed design structure or whatever. still dunno what image to attach other than code.

i changed how users create and configure their nixos/home-manager hosts. in each folder under hosts, there must be a default.nix file that sets up nixosConfigurations and/or homeConfigurations with the help of the self.lib.mkNixosHost and self.lib.mkHomeConfig
functions.

i made some other changes too like not creating any nixosConfigurations and homeConfigurations by default while making sure that homeModules is exporting every single one of our custom home-manager modules.

and ofc i made other general minor fixes and changes that aren’t really worth talking about, not that i even remember those changes anyways.

Attachment
0
Voxi0

feat: added a makefile that allows users to easily install nixos along with vodots on their
system. it only supports nixos as of now and won’t work on
other distros even with nix installed on them which means the user would have to manually set it up themselves. and again, there’s nothing specifically visual or whatever that this makefile is adding so i dunno what image/video to attach other than the makefile code.

the makefile also allows a user to just generate a hardware
configuration or format their drive instead of installing nixos with
vodots right away though i dunno why anyone would be interested in that
really.

Attachment
0
Voxi0

init: did the basics and got what’s pretty much a skeleton set up. i really don’t know what image/video to attach to this devlog since right now all the code i have doesn’t actually produce anything visual or whatever just yet since no desktop environments or anything graphical has been configured just yet. i’ll start uploading images/videos of what everything looks like when i finally have configured some actually graphical stuff.

i have a basic nix flake set up using flake-parts and the dendritic nix design pattern to keep everything nice, clean and modular.

i also wrote some super basic default configuration. all checks run by nix flake check are now passing which makes me confident that everything is set up correctly.

i spent a long while trying to figure out how to configure pkgs in the perSystem block provided by flake-parts and then use it to replace the pkgs instance that nixos uses by default and also pass this pkgs to home-manager.

i also spent a while dealing with some other issues which were caused mainly because i was too dumb to understand the difference between self: and {self, ...}: in modules. in short those problems were mainly with accessing stuff in self.

Attachment
Attachment
0
Voxi0

I’m working on my first project! This is so exciting. I can’t wait to share more updates as I build.

Attachment
0