My dotfiles collection.
| Category | Tool |
|---|---|
| Distro | NixOS |
| Desktop | Gnome |
| Terminal | Ghostty |
| Shell | Fish |
| Shell Prompt | Starship |
| Terminal Multiplexer | Tmux |
| Editor/IDE | Neovim |
| Browser | Firefox |
| Fonts | Display: Adwaita, VarizMatn, Monospace: CodeNewRoman Nerd Font, Noto Color Emoji |
| Wallpaper | Ashim D’Silva |
Boot the NixOS installer, then run (replace PROFILE with lenovo, dell, or work):
sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko -- --mode disko --flake "github:mortymacs/dotfiles#PROFILE"
sudo nixos-install --flake "github:mortymacs/dotfiles#PROFILE"
sudo rebootNo git clone needed — flakes fetch directly from GitHub.
Overlays live in overlays/ and are applied automatically to every profile.
Edit overlays/custom.nix. The new attribute becomes available as a regular
pkgs.myPackageName anywhere in the config.
To get the hash, run: nurl https://github.com/owner/repo vTAG
Go project:
my-go-tool = final.buildGoModule rec {
pname = "my-go-tool";
version = "1.2.3";
src = final.fetchFromGitHub {
owner = "some-owner";
repo = "my-go-tool";
rev = "v${version}";
hash = "sha256-AAAA...";
};
vendorHash = "sha256-BBBB...";
};C/C++ project with cmake:
my-c-tool = final.stdenv.mkDerivation rec {
pname = "my-c-tool";
version = "0.5.0";
src = final.fetchFromGitHub {
owner = "some-owner";
repo = "my-c-tool";
rev = "v${version}";
hash = "sha256-AAAA...";
};
nativeBuildInputs = [ final.cmake final.pkg-config ];
buildInputs = [ final.openssl ];
};Edit overlays/overrides.nix. The package keeps its original name.
Change feature flags the package already exposes (.override):
somePackage = prev.somePackage.override {
withFeatureX = true;
enableFoo = false;
};Full control over the derivation (.overrideAttrs):
somePackage = prev.somePackage.overrideAttrs (old: {
configureFlags = (old.configureFlags or []) ++ [
"--enable-foo"
"--disable-bar"
];
buildInputs = old.buildInputs ++ [ final.someLib ];
patches = (old.patches or []) ++ [ ./patches/somePackage-fix.patch ];
});Some good resources that I used in my config:
- https://github.com/atkrad/nixie
- https://github.com/Misterio77/nix-config
- https://github.com/alizdavoodi/nix-config/
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.
Please read the LICENSE file for more information.
