Skip to content

admiralakber/nix-config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aqeel’s NixOS Configuration

tl;dr

  • sway
  • emacs
  • oh-my-zsh
  • brave
  • qutebrowser
  • spotify

Acknowledgments

This configuration is a modification of ryan4yin’s i3 kickstarter. The structure is identical, but the configuration is different.

tl;dr once more

  1. Software: I like my systems basic, close to defaults, predictable, and with the tried and tested tools that are everywhere. This way I keep my skills transferrable across systems.
  2. Hardware: I have only tested this on my Framework 13 Ryzen 7040. Unsponsored, I highly recommend a Framework for your next laptop (or even desktop if you just buy the mobo).
  3. Suggestions: I love collaboration. I love Linux. Have a tool that I think I should know about? Have an idea on how to improve this configuration? lmk as an issue!
  4. Forking: MIT. Don’t hestitate. See section Making it yours.
  5. Making it yours: My nix-foo is not good enough to know how to separate what you would need to edit to make the configuration your own. The next section is a checklist of what you’d likely want to change.
  6. Future: (a) Make a matching/familiar configuration for servers, single board computers, and support ARM and RISC V.
  7. Example Usage: Clone the repo. Link it to /etc/nixos. Run sudo nixos-rebuild switch.

Making it yours

One day, I’d like to make this is all configurable in one file. If you can help with that, please reach out.

I’m basically ready to have a bash script that could work, but I don’t know if that’s “nix idomatic”.

For now, use the checklist below of the least of things you need to edit.

  • [ ] Identity
    • Username
      • [ ] mv users/brat users/$(myusername)
      • [ ] sed -i "s/brat/$(myusername)/g" flake.nix
    • Computer/Hostname
      • [ ] mv hosts/discipline hosts/$(myhostname)
      • [ ] sed -i "s/discipline/$(myhostname)/g flake.nix
    • Human name
      • [ ] sed -i "s/Aqeel Akber/$(myname)/g" flake.nix
    • Human email
    • Crypto
      • [ ] sed -iE "s/ssh-[^\"]+/$(mysshkey)/g" users/$(myusername)/nixos.nix
  • [ ] Localisation
    • Keyboard layout
      • [ ] sed -i "s/colemak/$(mykeymap)/g" modules/system.nix
    • Timezone
      • [ ] sed -i "s/Australia\/Sydney/$(mytimezone)/g" modules/system.nix
    • i8n
      • [ ] sed -i "s/en_AU.UTF-8/$(mylocale)/g" modules/system.nix
  • [ ] Hardware
    • Auto configuration
      • [ ] nixos-generate-config --show-hardware-config | tee hosts/$(myhostname)/hardware-configuration.nix
  • [ ] Dotfiles

You might also need to edit file:flake.nix::discipline = let to your hostname of your current configuration. There is probably a better way of doing this.

Licence

Copyright 2024 Aqeel Akber <[email protected]>

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published