mirror of
https://github.com/nmasur/dotfiles
synced 2024-11-14 03:42:56 +00:00
100 lines
5.2 KiB
Markdown
100 lines
5.2 KiB
Markdown
# System Configurations
|
|
|
|
This repository contains configuration files for my NixOS, macOS, and WSL
|
|
hosts.
|
|
|
|
They are organized and managed by [Nix](https://nixos.org), so some of the
|
|
configuration may be difficult to translate to a non-Nix system.
|
|
|
|
## System Features
|
|
|
|
| Feature | Program | Configuration |
|
|
| --- | --- | --- |
|
|
| OS | [NixOS](https://nixos.org) | [Link](./modules/nixos) |
|
|
| Display Server | [X11](https://www.x.org/wiki/) | [Link](./modules/nixos/graphical/xorg.nix) |
|
|
| Compositor | [Picom](https://github.com/yshui/picom) | [Link](./modules/nixos/graphical/picom.nix) |
|
|
| Window Manager | [i3](https://i3wm.org/) | [Link](./modules/nixos/graphical/i3.nix) |
|
|
| Panel | [Polybar](https://polybar.github.io/) | [Link](./modules/nixos/graphical/polybar.nix) |
|
|
| Font | [Victor Mono](https://rubjo.github.io/victor-mono/) | [Link](./modules/nixos/graphical/fonts.nix) |
|
|
| Launcher | [Rofi](https://github.com/davatorium/rofi) | [Link](./modules/nixos/graphical/rofi.nix) |
|
|
|
|
## User Features
|
|
|
|
| Feature | Program | Configuration |
|
|
| --- | --- | --- |
|
|
| Dotfiles | [Home-Manager](https://github.com/nix-community/home-manager) | [Link](./modules/common) |
|
|
| Terminal | [Kitty](https://sw.kovidgoyal.net/kitty/) | [Link](./modules/common/applications/kitty.nix) |
|
|
| Shell | [Fish](https://fishshell.com/) | [Link](./modules/common/shell/fish) |
|
|
| Shell Prompt | [Starship](https://starship.rs/) | [Link](./modules/common/shell/starship.nix) |
|
|
| Colorscheme | [Gruvbox](https://github.com/morhetz/gruvbox) | [Link](./colorscheme/gruvbox/default.nix) |
|
|
| Wallpaper | [Road](https://gitlab.com/exorcist365/wallpapers/-/blob/master/gruvbox/road.jpg) | [Link](./hosts/tempest/default.nix) |
|
|
| Text Editor | [Neovim](https://neovim.io/) | [Link](./modules/common/neovim/config) |
|
|
| Browser | [Firefox](https://www.mozilla.org/en-US/firefox/new/) | [Link](./modules/common/applications/firefox.nix) |
|
|
| E-Mail | [Aerc](https://aerc-mail.org/) | [Link](./modules/common/mail/aerc.nix) |
|
|
| File Manager | [Nautilus](https://wiki.gnome.org/action/show/Apps/Files) | [Link](./modules/common/applications/nautilus.nix) |
|
|
| PDF Reader | [Zathura](https://pwmt.org/projects/zathura/) | [Link](./modules/common/applications/media.nix) |
|
|
| Video Player | [mpv](https://mpv.io/) | [Link](./modules/common/applications/media.nix) |
|
|
|
|
## macOS Features
|
|
|
|
| Feature | Program | Configuration |
|
|
| --- | --- | --- |
|
|
| Keybinds | [Hammerspoon](https://www.hammerspoon.org/) | [Link](./modules/darwin/hammerspoon) |
|
|
|
|
# Diagram
|
|
|
|
![Diagram](https://github.com/nmasur/dotfiles/assets/7386960/ed3e7202-09c4-4a9c-9b14-0272c01647f6)
|
|
|
|
- [flake.nix](./flake.nix)
|
|
- [hosts](./hosts/)
|
|
- [modules](./modules/)
|
|
|
|
---
|
|
|
|
# Unique Configurations
|
|
|
|
This repo contains a few more elaborate elements of configuration.
|
|
|
|
- [Neovim config](./modules/common/neovim/default.nix) generated with Nix2Vim
|
|
and source-controlled plugins, differing based on installed LSPs, for example.
|
|
- [Caddy JSON](./modules/nixos/services/caddy.nix) file (routes, etc.) based
|
|
dynamically on enabled services rendered with Nix.
|
|
- [Grafana config](./modules/nixos/services/grafana.nix) rendered with Nix.
|
|
- Custom [secrets deployment](./modules/nixos/services/secrets.nix) similar to
|
|
agenix.
|
|
- Base16 [colorschemes](./colorscheme/) applied to multiple applications,
|
|
including Firefox userChrome.
|
|
|
|
---
|
|
|
|
# Installation
|
|
|
|
Click [here](./docs/installation.md) for detailed installation instructions.
|
|
|
|
# Neovim
|
|
|
|
Try out my Neovim config with nix:
|
|
|
|
```bash
|
|
nix run github:nmasur/dotfiles#neovim
|
|
```
|
|
|
|
Or build it as a package:
|
|
|
|
```bash
|
|
nix build github:nmasur/dotfiles#neovim
|
|
```
|
|
|
|
If you already have a Neovim configuration, you may need to move it out of
|
|
`~/.config/nvim` or set `XDG_CONFIG_HOME` to another value; otherwise both
|
|
configs might conflict with each other.
|
|
|
|
# Flake Templates
|
|
|
|
You can also use the [templates](./templates/) as flakes for starting new
|
|
projects:
|
|
|
|
```bash
|
|
nix flake init --template github:nmasur/dotfiles#poetry
|
|
```
|