Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
26012fd
initial den commit, very basic
chpxu Apr 5, 2026
911d141
nvidia and graphics packages
chpxu Apr 5, 2026
79a3c36
move from namespace to scoped aspect for nvidia
chpxu Apr 6, 2026
6602550
starship aspect
chpxu Apr 6, 2026
0d4cb67
make vm autogenerate per host
chpxu Apr 7, 2026
d025f3a
add boot and kernels
chpxu Apr 7, 2026
3a1e9aa
migrate more system aspects
chpxu Apr 7, 2026
e89d066
vm passthrough and includes
chpxu Apr 7, 2026
2b64830
minor changes
chpxu Apr 9, 2026
b749eaa
update deps
chpxu Apr 18, 2026
5fd9217
Port a lot more config into aspects
chpxu Apr 19, 2026
eb75d83
Update den deps, move more into den
chpxu Apr 19, 2026
2f59c1a
Move more into den
chpxu Apr 19, 2026
402deb2
Add back materials dep
chpxu Apr 19, 2026
126492d
correct sub aspects
chpxu Apr 20, 2026
f368135
correct sub aspects
chpxu Apr 20, 2026
170ee52
temporarily disable mullvad
chpxu Apr 25, 2026
9776fa8
update deps
chpxu Apr 25, 2026
e361f0d
Remove old files
chpxu Apr 25, 2026
1d0168a
Add formatter and checks
chpxu Apr 25, 2026
47afdf8
Add auto flake update PR again but weekly
chpxu Apr 25, 2026
e992f14
Migrate to VSCodium
chpxu Apr 25, 2026
aeafaa6
Add tablet
chpxu Apr 25, 2026
8192a97
Add new wsl host
Apr 26, 2026
a256cef
Update wally
chpxu Apr 26, 2026
b6984c4
Yoga config
chpxu Apr 26, 2026
ac9e53e
fix: Correct Yoga config
Apr 26, 2026
3d42b5e
Re-enable LACT remove SDL envvar
chpxu Apr 27, 2026
8cf4064
steam
chpxu Apr 29, 2026
e4c2e66
Update deps and add nordic to helix
chpxu Apr 29, 2026
fffff70
Update deps, dev, nvidia
chpxu May 4, 2026
c8147f2
Update deps
chpxu May 11, 2026
a8a5401
Update deps and den
chpxu May 24, 2026
ae55268
Update hyprland to 0.55.2 (still hyprlang)
chpxu May 24, 2026
50928e0
Update kernel
chpxu May 24, 2026
6101f8a
Theme vesktop and format
chpxu May 30, 2026
84a2c12
Remove macos from workflow
chpxu May 30, 2026
1883ebc
Update deps
chpxu Jun 6, 2026
0b34840
Switch to NotAShelf/tuigreet
chpxu Jun 8, 2026
82aaf83
Update greeter settings and nvidia driver
chpxu Jun 13, 2026
611b2a9
greeter and gaming
chpxu Jun 16, 2026
8b10cbd
update games and home
chpxu Jun 24, 2026
e5aa116
Update deps
chpxu Jun 27, 2026
ec53f72
Update deps
chpxu Jun 28, 2026
c866b09
wpaperd -> awww; update deps
chpxu Jul 17, 2026
96ed89a
waybar auto hide
chpxu Jul 17, 2026
1f06d9e
Add CJK fonts
chpxu Jul 18, 2026
2da832d
Format, cleanup, update README
chpxu Jul 18, 2026
d2c9943
Add base textfox and greeter changes
chpxu Jul 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
31 changes: 0 additions & 31 deletions .github/workflows/nix-github-actions.yml

This file was deleted.

19 changes: 19 additions & 0 deletions .github/workflows/update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: update-flake-lock
on:
workflow_dispatch: # allows manual triggering
pull_request: # triggers on every Pull Request
#push: # Triggers on every push
schedule:
- cron: '0 0 * * SAT' # runs weekly on Saturdays at midnight

jobs:
lockfile:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Determinate Nix
uses: DeterminateSystems/determinate-nix-action@v3
- name: Update flake.lock
if: ${{ github.event_name != 'pull_request' }}
uses: DeterminateSystems/update-flake-lock@main
43 changes: 25 additions & 18 deletions .github/workflows/workflow.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,28 @@
name: update-flake-lock
on:
workflow_dispatch: # allows manual triggering
pull_request: # triggers on every Pull Request
#push: # Triggers on every push
schedule:
- cron: '0 0 * * *' # runs daily at 00:00

pull_request:
push:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lockfile:
runs-on: ubuntu-latest
flake-check:
strategy:
matrix:
os: [ubuntu-latest]
name: Nix flake check ${{matrix.os}}
runs-on: ${{matrix.os}}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Determinate Nix
uses: DeterminateSystems/determinate-nix-action@v3
- name: Update flake.lock
if: ${{ github.event_name != 'pull_request' }}
uses: DeterminateSystems/update-flake-lock@main

# Credits: https://github.com/DeterminateSystems/update-flake-lock
- uses: wimpysworld/nothing-but-nix@main
if: matrix.os == 'ubuntu-latest'
- uses: DeterminateSystems/nix-installer-action@main
- uses: DeterminateSystems/magic-nix-cache-action@main
- uses: actions/checkout@v5
- run: nix flake metadata
- run: |
cat <<-EOF > modules/ci-runtime.nix
{
_module.args.CI = true;
}
EOF
- run: nix fmt
- run: nix flake check
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,6 @@ system/modified
**/*.env
**/wpa_*
secrets/keys.txt
**/obsolete
**/obsolete
*qcow*
*result*
113 changes: 23 additions & 90 deletions README.md
100755 → 100644
Original file line number Diff line number Diff line change
@@ -1,105 +1,47 @@
# dotfiles

This repository hosts my dotfiles and configs for various applications on NixOS. Heavily WIP and continually evolving.
My dotfiles for NixOS, with a focus on simplicity. Based on [`denful/den`](https://github.com/denful/den). Personalised for gaming, software and scientific development.

I will try to remember to give credits and links where possible but I'll probably forget.
## Hosts


## Screenshots

TBD

## How the repository is structured

This structure was heavily inspired, and was based on [Misterio77's nix-starter-configs](https://github.com/Misterio77/nix-starter-configs). This was extremely helpful in getting me to have a refactored and cleaner NixOS setup.

```
.
├── hm/
│ ├── common/
│ │ ├── packages/
│ │ │ └── # A set of common packages I share across my users where no configuration is required
│ │ └── modules/
│ │ └── # A set of common configurations for programs I share across my users
│ ├── chunix/
│ ├── home.nix
│ └── ...
├── overlays # a set of overlays
├── system/
│ ├── common/
│ │ └── # A set of common packages/configurations I share across my systems
│ ├── yoga # configuration for my Yoga C940
│ └── legion # Configuration for my Legion 5 Pro Gen 7 (WIP)
├── docs/
│ └── ... # website for dotfiles
├── Pictures/
│ └── ...
├── flake.nix
├── flake.lock
└── install.sh # OBSOLETE
```


## Installation Instructions

This NixOS setup integrates `home-manager` into the system configuration so that all users can simply be updated with `sudo nixos-rebuild switch .#<hostname>`.

1. Whether you're booting from scratch or not, you need `git` (or just have the repo locally). If you don't have git, you can temporarily invoke it with `nix-shell -p git --run "git clone https://github.com/chpxu/dotfiles"` and it will clone the repo into a folder called `dotfiles` in your present working directory.
2. Make any necessary changes to the configuration. For example:

- Secrets and networking. These will be invalid since they depend on SSH keys, so you will want to remove it and the configuration in `system/common/modules/networking.nix`.
- Hostnames and usernames.
- Installed programs and their settings.

3. Make sure everything is saved. If you are intending to push to a git repo, make sure to `git add .` first. Then you can run `sudo nixos-rebuild switch .#<hostname>` or some variation to build.

You will be successful if everything you wanted installed, installs and is configured appropriately. The home-manager configuration will also be successfully built if you see `home-manager.<user>.service` was successfully (re)started. You can check its status with `systemctl status home-manager.<user>.service`.

## Themes, Icons and Colour Palette

These dotfiles uses the Nord theme.

1. The [Nord colour palette](https://nordtheme.com).
2. The GTK theme [Nordic](https://www.gnome-look.org/p/1267246/) by @EliverLara.
Follow the instructions on the page to use the GTK3/4 theme.
3. I use the [Fira Code Retina Nerd](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/FiraCode) and [Source Code Pro](https://github.com/adobe-fonts/source-code-pro) fonts. Both are TTFs.
4. I use the [Nordzy](https://github.com/alvatip/Nordzy-icon) icon theme.
5. I use [Nordzy-cursors](https://www.gnome-look.org/p/1571937) as my cursor theme.
- `saitama`: AMD Ryzen 5600X + RTX 5070
- `jingliu`: Intel i7-12700H + Nvidia RTX 3070 Ti "Advanced Optimus" laptop
- `yoga`: Lenovo Yoga C940 (i7-1065G7)
- `walworth`: work device (WSL)

## Programs and Applications

These are the main applications and programs I use. Everything has been
installed from `nixos-unstable` by default unless mentioned otherwise. WIP.
These are the main applications and programs I use. Everything has been installed from `nixos-unstable` by default unless mentioned otherwise.

### Applications

- [firefox-dev-edition](https://www.mozilla.org/en-GB/firefox/developer/)
- [gimp 3.x](https://gimp.org)
- [inkscape](https://inkscape.org)
- [vscode-fhs](https://code.visualstudio.com)
- [discord-canary](https://discord.com)
- [nix4nvchad](https://nix-community.github.io/nix4nvchad/introduction.html)
- [vscodium-fhs](https://github.com/VSCodium/vscodium)
- [vesktop](https://vesktop.dev/) with [system24 nord theme](https://github.com/refact0r/system24)
- [mpv](https://mpv.io)
- [imv](https://sr.ht/~exec64/imv/)
- [rnote](https://github.com/flxzt/rnote)
- [zathura](https://pwmt.org/projects/zathura/)
- [libreoffice-fresh](https://libreoffice.org)
- [zotero](https://zotero.org)
- [logseq](https://logseq.com)
- [pdfarranger](https://github.com/pdfarranger/pdfarranger)
- [thunderbird](https://www.thunderbird.net)
- [bitwarden](https://bitwarden.com/)
- [yazi](https://yazi-rs.github.io/)
- [steam](https://store.steampowered.com/)
- [Mullvad](https://mullvad.net)

### Environment programs

Applications or programs which affect my workspace

- [Hyprland](https://hyprland.org)
- Plugins: [hyprsplit](https://github.com/shezdy/hyprsplit). [hyprexpo](https://github.com/hyprwm/hyprland-plugins/tree/main/hyprexpo)
- [wpaperd](https://github.com/danyspin97/wpaperd)
- Plugins: [hyprsplit](https://github.com/shezdy/hyprsplit).
- [awww](https://codeberg.org/LGFae/awww)
- [waybar](https://github.com/Alexays/Waybar) (built with `-Dexperimental=true`)
- [yazi](https://yazi-rs.github.io/)
- [swayidle](https://github.com/swaywm/swayidle)
- [swaylock-effects](https://github.com/jirutka/swaylock-effects) (jirutka fork)
- [mako](https://github.com/emersion/mako)
Expand All @@ -108,27 +50,18 @@ Applications or programs which affect my workspace
- [kitty](https://sw.kovidgoyal.net/kitty/)
- [zsh](https://zsh.org) + [starship](https://starship.rs)
- [wvkbd](https://github.com/jjsullivan5196/wvkbd) (custom derivation to add theming. See my [repo](https://github.com/chpxu/wvkbd))
- [nano](https://nano-editor.org)
- [direnv](https://direnv.net)
- [dragon-drop](https://github.com/mwh/dragon)
- [tuigreet](https://github.com/NotAShelf/tuigreet)

<!-- ## Configuration Deep Dive

This section is more information about the configuration, mainly for those who want to extend/use this configuration (though you're probably better off using @Misterio77's boilerplate).

### `flake.nix` structure
### Other things I use

1. Description. Self-explanatory. Edit it to whatever `string` you want.
2. `inputs` attribute set contain the flake inputs. Where possible, I have tried to use flake inputs or overlays for as many (environment) programs as possible.
3. A bunch of `let` bindings. Namely:
- `system`, `user`, `pkgs` for some easy reusable keywords
- `colour-palette` which is the file containing the RGB hex codes for the Nord theme.
- `mkSystemConfiguration` a function which creates a NixOS system with given hostname and users.
4. `outputs`. What the flake returns and allows you to access.
- [devflake](https://github.com/chpxu/development-flake)
- [materials-flake](https://github.com/chpxu/materials-flake)
- [fufexan/nix-gaming](https://github.com/fufexan/nix-gaming)
- [CachyOS Kernels](https://github.com/xddxdd/nix-cachyos-kernel)

### `system` folder

- `common` folder contains configuration for hardware and shared system packages across all devices. It contains conditional config for Intel CPU and NVIDIA GPU packages as well as set some environment vairables
- Each other folder is config for specific hosts (namely a default `configuration.nix` and `hardware-configuration.nix`) as well as any other specific config (e.g. power for my laptops).
## Screenshots

Rest TBD, may upload onto actual website instead. -->
![Dev screenshot](docs/img/dev.png)
![alt text](docs/img/waybar2.png)
Binary file added docs/img/dev.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/waybar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/img/waybar2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 6 additions & 5 deletions docs/index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html>
<head>
<title>dotfiles</title>
Expand Down Expand Up @@ -29,7 +29,9 @@ <h2>README</h2>
are clickable and will open a section at the bottom of the page with
files to download and save.
</p>
<p>There is a further set of instructions for each program below the links.</p>
<p>
There is a further set of instructions for each program below the links.
</p>
</section>
<!-- Files section -->
<section class="category">
Expand Down Expand Up @@ -221,10 +223,9 @@ <h2><i id="fa-solid fa-folder"></i> .config</h2>
</section>
<div id="file-download" class="show">
<h3 class="dl-header">Download files</h3>
Files will appear here when clicking any of the links in
boxes.
Files will appear here when clicking any of the links in boxes.
<!-- We add all the divs containing links and stuff via javascript-->
</div>
</div>
<script src="./js/main.js"></script>
</body>
</html>
13 changes: 5 additions & 8 deletions docs/js/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,12 @@ function generateContent(id, voidPaths, nixPaths, voidFilenames, nixFilenames) {
generateOSContent(divNix, nixPaths, nixFilenames);
}


// Alacritty
const alacrittyURLs = [
[
"https://raw.githubusercontent.com/chpxu/dotfiles/void/.config/alacritty/alacritty.yml"
"https://raw.githubusercontent.com/chpxu/dotfiles/void/.config/alacritty/alacritty.yml",
],
[""]
[""],
// [
// "https://raw.githubusercontent.com/chpxu/dotfiles/void/.config/alacritty/alacritty.yml"
// ]
Expand All @@ -55,7 +54,7 @@ generateContent(
alacrittyURLs[0],
alacrittyURLs[1],
["alacritty.yml"],
[""]
[""],
);

// Waybar, since it has 3 items
Expand All @@ -68,14 +67,12 @@ const waybarURLs = [
"https://raw.githubusercontent.com/chpxu/dotfiles/nixfiles/.config/waybar/config.jsonc",
"https://raw.githubusercontent.com/chpxu/dotfiles/nixfiles/.config/waybar/style.css",
"https://raw.githubusercontent.com/chpxu/dotfiles/nixfiles/.config/waybar/ydotool.sh",
]
],
];
generateContent(
"waybar",
waybarURLs[0],
waybarURLs[1],
["void-config.jsonc", "void-style.css"],
["nixos-config.jsonc", "nixos-style.css", "nixos-ydotool.sh"]
["nixos-config.jsonc", "nixos-style.css", "nixos-ydotool.sh"],
);


6,934 changes: 6,933 additions & 1 deletion docs/styles/all.min.css

Large diffs are not rendered by default.

Loading
Loading