Giter VIP home page Giter VIP logo

dotfiles's Introduction

Nice to Meet You! ๐Ÿ‘‹

My name is Ali Rizvi. I'm a 21 year old university student studying Computer Science at Toronto Metropolitan University (formerly Ryerson).

[alirizvi@github ~]$ myfetch
OS: NixOS
Uptime: 21 years
Editor: Neovim, VSCode
Locale: en_US.UTF-8, ur_PK.UTF-8
Timezone: America/Toronto (EST, -0500)
Programming Languages: *-Shell, C/C++, Java/Kotlin, Python
Goals (2024): Graphics, Kernel-development, Assembly, Cross-platform apps

Some more depth into my 2024 goals:

  • Graphics, including the development of a trivial graphics engine
  • Kernel-level programming, low level development between OS and hardware
  • Assembly, strictly for understanding the lower-level architecture
  • Global device deployment, using Qt for cross-platform development, Flutter for PC/Mobile development

Here is a more comprehensive list of all the programming languages I've developed in:

  • AutoHotkey
  • Bash (strictly sh compatible)
  • Batch
  • C
  • C++
  • C#
  • Common Lisp
  • GLSL
  • Java
  • JavaScript
  • JQ
  • Kotlin
  • Makefile
  • Nix
  • Python
  • Rust
  • TeX (LaTeX)
  • Zig

dotfiles's People

Contributors

frontear avatar

Stargazers

 avatar

Watchers

 avatar  avatar

dotfiles's Issues

Restructuring and re-envisioning

For the longest time, I've had a strange mental block where no code I wrote ever felt enough. It never felt right, it never felt good. I was plagued with these feelings, always desiring to do better, but never defining what better looked like, just this abstract idea created solely to diminish the value of my own code.

This project has felt much of the same, and always, my first reaction was to rm -rf it all. "Begin anew!" I thought, this time I'll write it different. spoiler: I would eventually feel the same.

I want to grow past this mindset, and it starts here. Instead of erasing the repo, I will meticulously pick out the things I want, the things I need, compare them to my old dotfiles especially, the archlinux ones, and create them in a way that I am proud of, that I won't diminish.

Make no mistake, this will not be easy, but I will try my best. Throughout, I will lay down some ideas that I have for how I'd like to shape this repo, and how I'd like to have it be.

Better alternative to modules/nixos/main-user

Having a wrapper that then needs to be referenced directly through config.main-user.name is a digusting hack and I'd rather not need it at all. Honestly a complete waste of the module system and accomplish nothing more than holding the information of another module, like a variable + function callback.

I have 2 ideas that I could attempt, both arguably more "nix-y" and a lot better.

The first idea is to have a meta attribute set, perhaps either as an import, a flake output, or simply a specialAttr input passed in for every module. This will contain information about hostnames, timezones, locale, usernames, stateVersion, and possibly more.

The second idea is to leverage the NixOS attribute of users.users and create a users.users.main-user with all the properties set. Problem with this is that it introduces repetition because the nixpkgs issue still stands with infinite recursion, so I would need to manually set home-manager and environment.persistence. Not ideal.

No idea which way I want to go but it's a good consideration.

Create module that emulates home-manager

For one, I manage home-manager through system configurations anyways, so creating a nixos module is probably the best approach.

Secondly, my main concern, is that the way I'm managing home-manager is a bit.. unfortunate. Having to do home-manager.users.frontear = { ... }; is not my ideal way to do it. If anything, I'd prefer to simply have a wrapped module that accomplishes the same thing.

How do I plan to go about this? Probably use systemd.tmpfiles to create and link files from the store into the various home locations.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.