Skip to content

shootie22/dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dotfiles

nixOS and user configuration for my machines

layout

hosts/
  nixpad/
    configuration.nix          # laptop-only bits: LTE, TLP, LUKS, locale
    hardware-configuration.nix
    xmm7360/                   # LTE helper scripts
  desktop/
    configuration.nix          # desktop-only bits: docker, no LTE
    hardware-configuration.nix # placeholder until generated on the machine

modules/
  nixos/
    common.nix                 # shared base packages, fonts, nix settings
    desktop-hyprland.nix       # Hyprland/UWSM, greetd, graphics, keyring
    gaming.nix                 # Steam/gamemode, behind modules.gaming.enable

home/
  bro/
    home.nix                   # shared Home Manager config
    hosts/
      nixpad.nix                # thin per-host overlay -> imports ../home.nix
      desktop.nix                # thin per-host overlay -> imports ../home.nix
    hypr/                       # Hyprland; hyprland.conf sources the *.conf below
      look.conf                  # general/decoration/animations
      input.conf                  # keyboard/touchpad/gestures
      keybinds.conf                # all binds — the file to edit for a new shortcut
      windowrules.conf
    iamb/
    kitty/
    meli/
    scripts/
      media/
      screengrab/
    wallpapers/

pkgs/
  xmm7360-pci/                 # local kernel module package

Both hosts import the same modules/nixos/* files and set only what differs (host packages, modules.gaming.enable, LTE, locale). Adding a third machine means a new hosts/<name>/ + home/bro/hosts/<name>.nix that import the existing modules and home.nix, picking which shared pieces to enable.

On nixpad, /etc/nixos points at:

/home/bro/gitrepos/github/dotfiles/hosts/nixpad

commands

rebuild

sudo nixos-rebuild switch

explicit config path:

sudo nixos-rebuild switch -I nixos-config=/home/bro/gitrepos/github/dotfiles/hosts/nixpad/configuration.nix
sudo nixos-rebuild switch -I nixos-config=/home/bro/gitrepos/github/dotfiles/hosts/desktop/configuration.nix

media

preview FILE               # images in swayimg, videos in mpv
kitten icat IMAGE          # show an image in kitty

screengrabs

record-region              # select/start/stop recording
Print                      region screenshot with Noctalia
Ctrl+Print                 start/stop region recording

files go under:

~/Media/Screengrabs/Screenshots/
~/Media/Screengrabs/Recordings/

clipboard

Super                      launcher
Super+V                    Noctalia clipboard history
Super+Z                    toggle floating

LTE

lte-on                     # switch internet to LTE
lte-on --verbose
lte-off                    # return to Wi-Fi
lte-off --verbose
xmm7360-status             # modem/service/routes/DNS status
xmm7360-reset              # normal modem reset
xmm7360-hard-reset         # ACPI/PCI recovery path
xmm7360-use-lte            # lower-level LTE routing/DNS
xmm7360-use-wifi           # lower-level Wi-Fi restore
xmm7360-use-dns            # install LTE DNS only

config notes

host

each hosts/<name>/configuration.nix sets machine basics (hostname, locale, bootloader, users) and imports the shared modules under modules/nixos/: common.nix (base packages/fonts), desktop-hyprland.nix (Hyprland/UWSM, greetd, graphics, keyring — both hosts use this), and gaming.nix (Steam, opt-in per host via modules.gaming.enable = true;).

nixpad additionally owns the LTE modem stack, TLP, and LUKS — all laptop-specific, so they stay in hosts/nixpad/configuration.nix rather than a shared module. desktop additionally enables virtualisation.docker for container/dev work.

<nixos-unstable> and the pinned Noctalia flake package are each imported in a host's let block, then exposed to every imported NixOS module via _module.args (so modules/nixos/*.nix can just take unstable/noctalia as ordinary module arguments) and to Home Manager via home-manager.extraSpecialArgs.

setting up a new host: copy hosts/nixpad/configuration.nix's let block for the unstable/noctalia pins, run sudo nixos-generate-config --dir hosts/<name> on the machine for a real hardware-configuration.nix, and pick which modules/nixos/* to import.

home manager

home/bro/home.nix owns user packages, shell-wrapped helper commands, user services, and tracked config files under ~/.config — shared by every host.

home/bro/hosts/<name>.nix is a thin per-host overlay that imports ../home.nix and adds only what that machine needs (see desktop.nix for where dev/container tooling goes). Each NixOS host's home-manager.users.bro points at its own overlay file.

desktop

tracked desktop config:

home/bro/hypr/
home/bro/kitty/

current desktop pieces include Hyprland, Noctalia, Kitty, Hackneyed cursors, recording, and media previews.

home/bro/hypr/hyprland.conf only sets monitors/programs/autostart/env, then sources look.conf, input.conf, keybinds.conf, and windowrules.conf. Each of those is symlinked individually via xdg.configFile in home.nix (matching the pattern used for iamb/kitty/meli). To change a shortcut, edit keybinds.conf — no other file needs touching. Adding a brand-new partial still needs one line added to home.nix's xdg.configFile.

apps

user-side apps are in Home Manager. currently notable ones:

iamb      matrix client, using unstable package for newer media support
meli      mail client
gitui     terminal git UI, installed system-wide
wiremix   audio mixer
runelite

iamb config enables kitty image previews.

wallpapers

the wallpaper library lives in:

home/bro/wallpapers/

Noctalia owns wallpaper selection and rotation.

LTE modem

nixpad has a Fibocom L850-GL / Intel XMM7360 modem.

ModemManager does not manage this card in RPC mode:

Intel XMM7360 in RPC mode not supported

so this repo uses:

pkgs/xmm7360-pci/
hosts/nixpad/xmm7360/

the host config disables ModemManager for this machine, blacklists iosm, builds the local xmm7360 module, enables acpi_call, and installs the LTE wrapper commands.

APN config lives outside git:

sudo cp /etc/xmm7360.example /etc/xmm7360
sudoedit /etc/xmm7360

for Digi Mobil Romania:

apn=internet

this is internet-only experimental support. SMS and calls are not handled here.

About

dotfiles for my machines

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors