Skip to content

leonlonsdale/dots-nixos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NixOS Configuration

Prelude

This repository acts as both my NixOS configuration repository and a log of my learning.

I made the decision to leave Windows behind and move to Linux at the end of January 2025 after becoming tired of Windows using so much memory and force feeding AI down my throat. I don't mind using AI when I need to, but I do not want it having access to my entire system. In fact, I code using Helix Editor specifically because it does not support AI.

I spent a day using CachyOS, which is great, but when everything is already set up for you, it removes the need to learn some things, and I wanted to learn. I read about the Nix declarative approach and it made a lot of sense to me, and so NixOS became my distro of choice.

Credits

The following folks have donated time to answer my questions. A big thanks to them:

  • A1RMAX - great youtube videos. These vids convinced me to try NixOS.

  • vimjoyer - videos Great videos on all things nix.

  • mightyiam - Author of the Full Time Nix podcast, initiator of the NixOS dendritic pattern.

  • emzy - configuration. Their configuration, although advanced, is very cleanly written and understandable. I've saved myself a lot of typing by reading this config and getting some ideas.

  • LuckShiba - from the DMS/Niri discord. Has answered a lot of questions where I'm sure most people would tell me to get lost.

  • Yui Tayuun for the help getting Icons working.

  • viena - from the unofficial nixos discord for pointing me in the right direction for the cursor fix.

NixOS Configuration

Known Issues

  • DMS cycles through my wallpapers. Every time the wallpaper changes, I get a "Reloaded the configuration" notification.

Resolved Issues

Dank Material Shell settings are 'read only'.

When setting up DMS via flake via home-manager, using any of the settings or system setting options causes the configuration to become read only. Removing these settings fixed this issue.

Dank Material Shell is unable to overwride Niri settings within the Niri Override area of the settings menu.

Unless programs.niri.settings is part of the configuration, the settings file is not created. The DMS overrides do not create this for you and so this must be included.

The PC wakes from suspend with a black screen.

Changing hardware.nvidia.powerManagement.enable = true; as suggested in the official wiki appears to have resolved the issue.

The system sometimes boots into TTY and not into the sddm greeter

I installed DMS Greeter, and so far the issue has not happened again. I still do not know what was causing the original issue.

DMS App launcher menu does not display icons.

This was a rookie error - I had to install an icon theme, such as:

pkgs.adwaita-icon-theme

Mouse cursor is not themed, and is pretty huge.

As above, I had to install a cursor theme.

I do not know how to install my personal wallpapers from my repo

After speaking with vimjoyer, he recommended hjem for this job. This worked great.

# flake.nix

# inputs
hjem.url = "github:feel-co/hjem"
hjem.inputs.nixpkgs.follows = "nixpkgs";
wallpapers.url = "github:<user>/<repo>"
wallpapers.flake = false;

# outputs
  # nixosConfigurations...
  modules = [
    # ...
    hjem.nixosModules.default
  ];

# modules/ui/wallpaper.nix (where I wrote it)

{ inputs, ... }:
{
  hjem.users."yourusername" = {
    enable = true;
    # store in /home/users/<username>/wallpapers
    files."wallpapers".source = inputs.wallpapers;
  };
}

NOTE: To get this to work nicely with home manager, I had to add the following line. Without it, the two of them conflicted and home-manager failed to load.

hjem.users.${username}.systemd.enable = false;

Todo

Common

  • Install NixOS
  • Modularise the default config
  • Switch to flakes
  • Set up nvidia drivers
  • How to install OpenLinkHub - I have a lot of Corsair iCUE Link hardware, on all PCs.
  • How to add Arkenfox Firefox Tweaks

Coder Profile

Terminal, Shell & CLI
  • Implement Shells
    • Zsh
      • zsh auto suggestions
      • zsh syntax highlighting
    • Fish
    • Integrate cli tools based on active shell
  • Install favorite CLI tools
    • starship
      • Configure with personal prompt design
    • bat
    • btop
    • eza
    • tealdeer
    • fd
    • jq
    • zoxide
    • zellij
    • ripgrep
    • lazygit
    • yazi
    • fzf
    • fastfetch
    • github cli
    • git
  • Imeplement Terminals
    • Ghostty
    • Kitty
    • Foot
Dev stuff
  • Install and configure Helix Editor from master
    • Make Helix configs apply to both User and Root
  • Install LSPs, Formatters, and Linters
Apperance
  • Install Niri
  • Install DankMaterialShell
  • Install DankMaterialShell Greeter
  • Install my personal wallpapers
  • Install favourite monospace nerd fonts

Todo (Gamer profile)

  • Install and configure Hyprland
  • Install Steam

Coding & Structure

  • Get a full understanding of nix code structure
  • Get a full understanding of flakes
  • Get a full understanding of home-manager
  • Get a full understanding of hjem
  • Get a full understanding of flake parts
  • Implement dendritic structure

Dendritic Pattern

I have begun figuring this out on my spare PC. While I do have it working on a basic configuration, I need to spend more time reading up about it and how I can mirror the granular control I have within my current configuration.

Resources

Literature

Tools

About

NixOS dotfiles

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages