94 lines
4.8 KiB
Markdown
94 lines
4.8 KiB
Markdown
# dots
|
|
## overview
|
|
<img width="60%" align="right" src="assets/desktop.jpg">
|
|
|
|
my dotfiles for NixOS, macOS or POSIX systems. primarily for systems that support [Nix](https://nixos.org) since they have declarative configuration.
|
|
- OS: [NixOS](https://nixos.org) and MacOS
|
|
- Shell: [fish](https://fishshell.com/)
|
|
- Terminal: [Ghostty](https://ghostty.org/)
|
|
- Browser: Firefox
|
|
|
|
linux specific:
|
|
- Desktop: [Hyprland](https://hyprland.org/) and [Niri](https://github.com/YaLTeR/niri). [Plasma](https://kde.org/plasma-desktop/) if I feel like it.
|
|
- Status Bar: [Waybar](https://github.com/Alexays/Waybar)
|
|
- Run Launcher: [Walker](https://github.com/abenz1267/walker)
|
|
|
|
## installation
|
|
### NixOS
|
|
boot up a NixOS live installation image and clone the flake. run the following if reinstalling on a host:
|
|
```sh
|
|
sudo nano /tmp/secret.key # set password used to unlock LUKS encryption
|
|
sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount /path/to/disko-config.nix # partition drives w/ disko
|
|
sudo nixos-install --flake .#HOSTNAME # install base NixOS system
|
|
```
|
|
|
|
during installation set a root password when prompted and reboot as soon as the installation finishes. on first boot switch to a new TTY using `ctrl+alt+f1,f2,f3,etc`, login as root and set a password for your user. then login as your normal user, connect to the wifi with `nmtui`, apply the dotfiles with `stow` and set a wallpaper with `matugen` to ensure anything that depends on a configuration file generated from it works. if you cannot get a wallpaper you can use `matugen color hex FFFFFF` to generate matugen themes from a colour.
|
|
|
|
#### setting up a new system
|
|
if setting up a new system, first boot up a NixOS live installation image and run:
|
|
|
|
```sh
|
|
nixos-generate-config --dir hosts/HOSTNAME # change to hostname of new system
|
|
nano flake.nix # add new host in flake.nix
|
|
```
|
|
|
|
then, commit changes to the repository and continue with the steps to reinstall a NixOS system above.
|
|
|
|
#### secure boot
|
|
If you want to setup secure boot for you system, you need to first complete an installation without the secureboot module enabled. after that is done continue with the below
|
|
```sh
|
|
sudo nix run nixpkgs#sbctl create-keys # create signing keys for boot images
|
|
nano flake.nix && sudo nixos-rebuild switch # add the secureboot module to the host
|
|
sudo sbctl verify # check to see if some files are signed, it is normal for some files not to be signed.
|
|
```
|
|
then reboot your system and enter UEFI setup. try to find an option to enroll secureboot keys, after that is done boot up your NixOS system again. run `sudo nix run nixpkgs#sbctl -- enroll-keys --microsoft` when your back in your system. after enrolling your secure boot keys, you must enter UEFI setup again and enable UEFI secureboot.
|
|
|
|
|
|
### macOS
|
|
after going through the MacOS setup wizard, do the following:
|
|
```sh
|
|
xcode-select --install # install xcode developer tools
|
|
curl -fsSL https://install.determinate.systems/nix | sh -s -- install --determinate # install determinate nix
|
|
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # install brew package manager
|
|
git clone REPO_URL # clone nix flake to system
|
|
nix run nix-darwin/master#darwin-rebuild -- switch # switch to nix flake configuration
|
|
```
|
|
|
|
after switching to the nix flake you will need to do the following manually:
|
|
- set display scaling to spacious
|
|
- disable spotlight's keyboard shortcut and setup raycast
|
|
- setup rectangle, lulu, easy move+resize, linearmouse, battery and alttab
|
|
- enable the keybinds to switch workspaces in settings
|
|
- enable firewall
|
|
### POSIX/linux system
|
|
you will need to first install `stow` and `git` using your distro's package manager. after that you can link the dotfiles with `stow stow`.
|
|
|
|
you probably also may need to install various CLI apps like:
|
|
- zsh
|
|
- bat
|
|
- zoxide
|
|
- neovim
|
|
- tlrc
|
|
- file
|
|
- ripgrep
|
|
- wget
|
|
- unzip
|
|
- fastfetch
|
|
- trash-cli
|
|
|
|
a full list of CLI apps needed is in `modules/shell.nix`
|
|
|
|
# misc
|
|
all content in this repository is licensed under the BSD0 license aka 0-Clause BSD license.
|
|
```
|
|
Permission to use, copy, modify, and/or distribute this software for
|
|
any purpose with or without fee is hereby granted.
|
|
|
|
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
|
|
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
|
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
|
|
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
|
|
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
|
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
|
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
```
|