Compare commits

..

596 Commits

Author SHA1 Message Date
Zynh Ludwig d9e667fe37 little-lightning: symlink yabai 2024-11-08 23:10:44 -08:00
Zynh Ludwig 6ece7dba5f little-lightning: yabai config 2024-11-08 23:08:59 -08:00
Zynh Ludwig 7f5a55ba72 little-lightning: no longer relying on fish 2024-11-07 16:30:57 -08:00
Zynh Ludwig 8aba0be0b4 umu: being spicy again? 2024-11-07 16:19:30 -08:00
Zynh Ludwig dc4a69b73a little-lightning: fish fishing ig 2024-11-07 16:19:23 -08:00
Zynh Ludwig 4e15d8da53 little-lightning: rebuild as a fish abbreviation 2024-11-07 16:17:22 -08:00
Zynh Ludwig ebf403819f flake: reorder systems 2024-11-07 16:17:22 -08:00
Zynh Ludwig b4fe279925 dwm: unclutter-xfixes option 2024-11-07 06:37:58 -08:00
Zynh Ludwig 2500589ae9 dwm: unclutter-xfixes 2024-11-07 06:37:58 -08:00
Zynh Ludwig e41b72eedf snowhawk: r2modman 2024-11-05 18:08:31 -08:00
Zynh Ludwig 074a47a2bd umu: being spicy 2024-11-05 18:08:07 -08:00
Zynh Ludwig 70a093ed7a builders: revamp compile step 2024-11-05 17:11:49 -08:00
Zynh Ludwig f95a2b8e0e snowhawk: removing some whitespace 2024-11-05 16:11:44 -08:00
Zynh Ludwig d802105171 snowhawk: remove configuration hostPlatform
I handle this at the flake level
2024-11-05 01:01:35 -08:00
Zynh Ludwig d35fbb68b8 snowhawk: nix-darwin time 2024-11-05 01:00:34 -08:00
Zynh Ludwig 227dddf2f7 tmux: always use fish 2024-11-04 03:49:29 -08:00
Zynh Ludwig 4a238f0a03 flake-lock: idk why it did this on my mac 2024-11-04 03:49:29 -08:00
Zynh Ludwig 8caa4f6d77 firefox: module init 2024-11-03 18:59:29 -08:00
Zynh Ludwig 8ab25ee76f snowhawk: no more os-prober 2024-11-03 18:03:01 -08:00
Zynh Ludwig c5d34f3735 snowhawk: nvk specs 2024-11-03 18:01:10 -08:00
Zynh Ludwig 39ddd06084 snowhawk: new /boot 2024-11-03 17:26:16 -08:00
Zynh Ludwig 58a46c793b pipewire-controller: trying to send sigusr1 to xrootdatetime 2024-11-03 17:26:16 -08:00
Zynh Ludwig 7c27f7d51f snowhawk: remove godot_4 2024-11-03 17:26:16 -08:00
Zynh Ludwig ba2d7312b4 flake: update 2024-10-31 01:16:09 -07:00
Zynh Ludwig adc11bc50a xrootdatetime: force update on SIGUSR1 2024-10-30 22:07:15 -07:00
Zynh Ludwig b0c18c7c15 xrootdatetime: fixing crash on initial boot
xrootdatetime: trying to fix crashes
xrootdatetime: allow errors
2024-10-30 20:51:38 -07:00
Zynh Ludwig 28573bd36d snowhawk: umu wine 2024-10-26 15:33:20 -07:00
Zynh Ludwig 3a79f2d53a snowhawk: gmail brave-app 2024-10-23 16:06:41 -07:00
Zynh Ludwig 0830c161d1 snowhawk: wine and lutris stuff 2024-10-23 16:05:55 -07:00
Zynh Ludwig 7cdec173d0 neovim: taplo 2024-10-20 04:26:39 -07:00
Zynh Ludwig 9f8858fe34 neovim: stylua 2024-10-20 04:20:05 -07:00
Zynh Ludwig 3e1199a700 filetypes: adjusting associations added 2024-10-19 22:34:04 -07:00
Zynh Ludwig ff98b2da60 snowhawk: add obsidian to sessionizer 2024-10-19 13:16:38 -07:00
Zynh Ludwig dc508175a7 xrootdatetime: after pipewire 2024-10-18 12:49:43 -07:00
Zynh Ludwig 88830fcb5d xrootdatetime: restart on failure 2024-10-18 11:55:38 -07:00
Zynh Ludwig 308ba6bff1 filetypes: DEFAULT_BROWSER change 2024-10-17 18:48:51 -07:00
Zynh Ludwig 5175e934a7 filetypes: firefox default browser 2024-10-16 17:33:24 -07:00
Zynh Ludwig 431992eff7 xrootdatetime: better error handling 2024-10-16 17:28:51 -07:00
Zynh Ludwig ac6de63ef2 snowhawk: dotnet stuff 2024-10-15 15:17:34 -07:00
Zynh Ludwig c20c63f6ea xrootdatetime: double dipping 2024-10-15 14:42:31 -07:00
Zynh Ludwig ee16a78d1b flake: update 2024-10-15 11:49:36 -07:00
Zynh Ludwig 3d4b905cd0 pipewire-controller: remove alt from keybinds 2024-10-11 20:09:24 -07:00
Zynh Ludwig 2bca2e2c41 dwm: mod 4 again! 2024-10-09 22:13:04 -07:00
Zynh Ludwig 26d6a1d116 dwm: systray config 2024-10-09 20:21:16 -07:00
Zynh Ludwig 4ed51b089e dwm: trying a patch 2024-10-09 20:21:07 -07:00
Zynh Ludwig 82c03e3055 dwm: getExe and inherit 2024-10-09 19:51:28 -07:00
Zynh Ludwig 4d08e896b7 dwm: super time 2024-10-09 10:26:50 -07:00
Zynh Ludwig 4fd0266d02 pkgs: rose-pine-grub copy all 2024-10-08 15:44:10 -07:00
Zynh Ludwig 5da3f62134 pkgs: rose-pine-grub init 2024-10-08 15:38:48 -07:00
Zynh Ludwig 58d6774e7f snowhawk: calendar app url 2024-10-08 14:15:00 -07:00
Zynh Ludwig 2b931beac3 snowhawk: add qdirstat 2024-10-07 23:41:18 -07:00
Zynh Ludwig 0e5ff42ed9 snowhawk: dedicated home drive 2024-10-07 23:16:56 -07:00
Zynh Ludwig f2756f4941 snowhawk: nvidia-open 2024-10-06 21:57:26 -07:00
Zynh Ludwig 152262659a dwl: NIXOS_OZONE_WL 2024-10-06 21:42:37 -07:00
Zynh Ludwig a59313e477 dwl: wmenu and foot 2024-10-06 21:25:18 -07:00
Zynh Ludwig d0af44785e dwl: wayland-session setup 2024-10-06 21:20:25 -07:00
Zynh Ludwig 28b5d14f1b snowhawk: make dwm default specialisation 2024-10-06 20:17:42 -07:00
Zynh Ludwig 2b5fba7e01 dwl: defaultSession 2024-10-06 20:09:00 -07:00
Zynh Ludwig 976e95c1ff dwl: module init 2024-10-06 10:01:03 -07:00
Zynh Ludwig e4d090e0dc snowhawk: dwm specialization 2024-10-06 08:59:38 -07:00
Zynh Ludwig 2553286233 snowhawk: useGlobalPkgs home-manager 2024-10-06 08:44:47 -07:00
Zynh Ludwig 81fe668442 snowhawk: rebuild command passthrough 2024-10-06 08:21:09 -07:00
Zynh Ludwig baac7cf543 dwm+niri: shorthands shorthands shorthands 2024-10-06 07:44:08 -07:00
Zynh Ludwig 1bed116085 dwm+niri: include enabling hm options by default 2024-10-06 07:34:46 -07:00
Zynh Ludwig 2824dea9e3 dwm: couple home settings to nixos module 2024-10-06 07:18:46 -07:00
Zynh Ludwig 95a157089d snowhawk: reorganize 2024-10-06 07:15:34 -07:00
Zynh Ludwig 0bef9c991f snowhawk: sort snowhawk settings 2024-10-06 07:13:07 -07:00
Zynh Ludwig 1d40aae689 filesystem: extract nixos module 2024-10-06 07:12:54 -07:00
Zynh Ludwig c8fdfc2f3a network: extract nixos module 2024-10-06 07:08:00 -07:00
Zynh Ludwig 7c8baf7f32 snowhawk: remove nomacs 2024-10-06 06:52:04 -07:00
Zynh Ludwig 2e74be8af1 snowhawk: pass shell alias arguments 2024-10-06 06:50:45 -07:00
Zynh Ludwig 17e5ad7053 snowhawk: refactoring brave-apps 2024-10-06 06:48:10 -07:00
Zynh Ludwig c5da0ace1c user: extract user setup into user module 2024-10-06 06:48:10 -07:00
Zynh Ludwig dd7c2ea7c2 polkit: extract polkit stuff to nixos module 2024-10-06 06:42:10 -07:00
Zynh Ludwig 9fcfd13663 snowhawk: godot_4-mono 2024-10-05 15:13:22 -07:00
Zynh Ludwig 1acd600476 flake: add chaotic nyx 2024-10-05 15:13:11 -07:00
Zynh Ludwig f62d41ba62 brave-apps: better error 2024-10-02 05:18:42 -07:00
Zynh Ludwig 9dbd5b0471 brave-apps: formatting 2024-10-01 23:08:15 -07:00
Zynh Ludwig bdcb2844c4 brave-apps: module init 2024-10-01 22:16:03 -07:00
Zynh Ludwig 42f3235010 snowhawk: nix-index 2024-10-01 19:16:19 -07:00
Zynh Ludwig 353660ade0 snowhawk: gqview is now geeqie 2024-09-30 23:49:15 -07:00
Zynh Ludwig 5046eb17f1 flake: update 2024-09-30 23:48:40 -07:00
Zynh Ludwig a94bad4adb snowhawk: use tmpfs 2024-09-30 23:08:35 -07:00
Zynh Ludwig d6fd828568 pipewire-controller: mpv volume 2024-09-28 22:42:24 -07:00
Zynh Ludwig 6df4a922ef dwm: vesktop rule 2024-09-28 19:03:24 -07:00
Zynh Ludwig 78fc679bcc little-lightning: nix settings 2024-09-28 01:06:49 -07:00
Zynh Ludwig 885a428878 pipewire-controller: fix expect text 2024-09-27 23:40:47 -07:00
Zynh Ludwig 29e15338ef snowhawk: goodbye discord 2024-09-27 23:39:09 -07:00
Zynh Ludwig e702e62296 pipewire-controller: sxhkd keybinds 2024-09-27 23:34:57 -07:00
Zynh Ludwig 4aa73643e7 pipewire-controller: trim mute status 2024-09-27 23:24:28 -07:00
Zynh Ludwig 269bda650d pipewire-controller: module init 2024-09-27 22:56:51 -07:00
Zynh Ludwig c06691c45f sxhkd: extract module from playerctld 2024-09-27 22:21:40 -07:00
Zynh Ludwig 962f1cf796 fish: fix rustup completions 2024-09-27 09:57:45 -07:00
Zynh Ludwig 18d39d134b niri: colocate nixos-required home module 2024-09-27 09:44:52 -07:00
Zynh Ludwig 3be52c3835 snowhawk: add vesktop 2024-09-27 09:17:41 -07:00
Zynh Ludwig 1b8a3eab9e redshift: include package on path 2024-09-24 08:01:30 -07:00
Zynh Ludwig ea634d7498 snowhawk: stop using nix-ld 2024-09-22 21:55:38 -07:00
Zynh Ludwig 0cc7b72237 snowhawk: remove zenbrowser 2024-09-22 21:55:27 -07:00
Zynh Ludwig 0907bce6f4 flake: update 2024-09-22 21:52:25 -07:00
Zynh Ludwig df2abeac3e glib-schemas-fix: module init 2024-09-20 11:58:48 -07:00
Zynh Ludwig a87f8feb1a snowhawk: move monitor config to hardware 2024-09-19 03:27:20 -07:00
Zynh Ludwig 217f09f7ef snowhawk: remove xrandrHeads comment 2024-09-19 03:24:37 -07:00
Zynh Ludwig 789c09e24a snowhawk: home cleanup 2024-09-19 03:20:33 -07:00
Zynh Ludwig 0131d3eaa3 flameshot: make my only config the default 2024-09-17 22:23:18 -07:00
Zynh Ludwig ce5bce2409 nixos: use lix 2024-09-17 22:16:08 -07:00
Zynh Ludwig 3bfe415ad0 power-button: fix rest 2024-09-17 03:54:43 -07:00
Zynh Ludwig 9aa9ce6dfe power-button: module init 2024-09-17 03:54:00 -07:00
Zynh Ludwig eb4e36de4f syncthing: include default folder sync 2024-09-15 01:43:22 -07:00
Zynh Ludwig ffbca576ff snowhawk: moving user packages to home packages 2024-09-13 21:18:43 -07:00
Zynh Ludwig 82759e7819 dwm: move x11 keymap to dwm config 2024-09-13 21:02:51 -07:00
Zynh Ludwig 0f4d2374bf wake-on-lan: move to module 2024-09-13 21:02:51 -07:00
Zynh Ludwig ce1d38f3f2 sudo-rules: formatting 2024-09-13 17:40:27 -07:00
Zynh Ludwig 43c67a6535 snowhawk: config prune 2024-09-13 17:31:39 -07:00
Zynh Ludwig 78254cbe5e niri: refactor nixos module 2024-09-13 17:27:15 -07:00
Zynh Ludwig fa8accf3a6 snowhawk: enable backup hm 2024-09-13 17:24:55 -07:00
Zynh Ludwig ddd17ae4af snowhawk: relocate sudo-rules to module 2024-09-13 17:12:13 -07:00
Zynh Ludwig c612a81db7 snowhawk: enable nix-ld 2024-09-13 16:53:10 -07:00
Zynh Ludwig 2b282ab842 nixos: nix-ld module init 2024-09-13 16:52:42 -07:00
Zynh Ludwig b7d22d3bbb wrapWine: fix yoink 2024-09-13 05:22:56 -07:00
Zynh Ludwig c457c763e6 snowhawk: return to dwm 2024-09-13 05:22:56 -07:00
Zynh Ludwig 0256eae39c snowhawk: enable niri settings 2024-09-11 19:45:33 -07:00
Zynh Ludwig 8b2effd885 niri: hmModule 2024-09-11 19:41:37 -07:00
Zynh Ludwig a4ebdc26a9 niri: displayManager config 2024-09-11 18:44:30 -07:00
Zynh Ludwig 8cae0adfb3 snowhawk: enable niri 2024-09-11 18:29:49 -07:00
Zynh Ludwig 2d490033f3 flake: add niri 2024-09-11 17:36:19 -07:00
Zynh Ludwig a803eb5b6d flake: update 2024-09-06 16:20:13 -07:00
Zynh Ludwig 9ffc2df383 fish: rustup completions 2024-09-06 16:20:13 -07:00
Zynh Ludwig 045bc68fe2 snowhawk: bluetooth audio 2024-09-06 16:20:06 -07:00
Zynh Ludwig 4eeee42a9d flake: update again 2024-08-30 17:12:56 -07:00
Zynh Ludwig f2f60d3cbd flake: update 2024-08-29 21:49:32 -07:00
Zynh Ludwig ea52afd5ad neovim: set repo-clone settings 2024-08-29 20:32:25 -07:00
Zynh Ludwig 8f7d7f9357 snowhawk: reorganize snowhawk settings 2024-08-29 20:29:06 -07:00
Zynh Ludwig 877eade585 neovim: enable repo-clone 2024-08-29 20:27:43 -07:00
Zynh Ludwig 779d9946b0 lib: zgitRepo 2024-08-29 20:27:10 -07:00
Zynh Ludwig d1217ef796 rust: enable snowhawk.direnv 2024-08-29 20:21:24 -07:00
Zynh Ludwig 90b396317f snowhawk: merge neovim in general snowhawk settings 2024-08-29 20:19:20 -07:00
Zynh Ludwig 7f24c3e3b1 snowhawk: remove neovim-package
this is handled by the neovim module now
2024-08-29 20:17:12 -07:00
Zynh Ludwig e2749932af snowhawk: remove chromium 2024-08-29 20:16:54 -07:00
Zynh Ludwig e24cde2733 snowhawk: alt-firefox 2024-08-29 20:16:51 -07:00
Zynh Ludwig 505eac929a rust: module init 2024-08-28 17:15:36 -07:00
Zynh Ludwig 624fa2f312 flake: update 2024-08-27 19:32:54 -07:00
Zynh Ludwig 201d08b6ac xivlauncher: add fflogs 2024-08-25 14:00:14 -07:00
Zynh Ludwig 868fe61afb neovim: formatting 2024-08-24 20:11:12 -07:00
Zynh Ludwig 51e682d66e neovim: better default package definition 2024-08-24 20:08:51 -07:00
Zynh Ludwig f4ec471ef5 lib: mkIfElse 2024-08-24 19:51:44 -07:00
Zynh Ludwig 2540156e17 little-lightning: remove unused imports 2024-08-24 19:17:05 -07:00
Zynh Ludwig 08f8c71880 neovim: clean up doc comment 2024-08-24 19:17:05 -07:00
Zynh Ludwig 78119f6aad neovim: nightly option 2024-08-24 19:17:05 -07:00
Zynh Ludwig 4d13192751 little-lightning: unstable neovim 2024-08-24 18:57:04 -07:00
Zynh Ludwig 0350f74f7b rbw: rbw-fzf x port 2024-08-24 15:17:04 -07:00
Zynh Ludwig b6fca59334 rbw: rbw-fzf 2024-08-24 15:13:20 -07:00
Zynh Ludwig e0a6ce3b64 rbw: pineentry-tty 2024-08-24 15:13:13 -07:00
Zynh Ludwig 8848f7df18 rbw: module init 2024-08-24 14:01:19 -07:00
Zynh Ludwig a44ce28a73 flake: update 2024-08-24 01:24:23 -07:00
Zynh Ludwig 6dfeec3a0e snowhawk: zenBrowser 2024-08-23 20:26:01 -07:00
Zynh Ludwig 7942736d8d flake: update 2024-08-23 11:04:36 -07:00
Zynh Ludwig 581d729b79 tmux-sessionizer: preview 2024-08-23 06:27:44 -07:00
Zynh Ludwig 9fee4f6f3d tmux-sessionizer: 2.0 2024-08-23 06:26:48 -07:00
Zynh Ludwig 7c2bf6601a snowhawk: unstable neovim 2024-08-22 14:26:52 -07:00
Zynh Ludwig feeadee1ea pkgs: zenBrowser 2024-08-22 05:18:12 -07:00
Zynh Ludwig f387d5a002 flake: update 2024-08-22 05:08:01 -07:00
Zynh Ludwig 8ffa090603 builders: new home in root 2024-08-22 00:18:10 -07:00
Zynh Ludwig a705681094 flake: formatting 2024-08-22 00:12:30 -07:00
Zynh Ludwig b0572534d9 builders: default system 2024-08-22 00:03:54 -07:00
Zynh Ludwig 19423844ad flake: reorder inputs 2024-08-21 23:58:57 -07:00
Zynh Ludwig 7dc7823cff home: remove unused import 2024-08-21 23:52:09 -07:00
Zynh Ludwig febc1dbc54 home: cleanup nixpkgs cfg 2024-08-21 23:48:56 -07:00
Zynh Ludwig fadffaebae builders: remove unused import 2024-08-21 23:48:39 -07:00
Zynh Ludwig 712fa9eacd nixos: remove nixpkgs module 2024-08-21 23:48:09 -07:00
Zynh Ludwig e0cd176d1e snowhawk: home-manager options formatting 2024-08-21 23:47:01 -07:00
Zynh Ludwig 24af078952 home-manager: flake level nixos module deps 2024-08-21 23:47:01 -07:00
Zynh Ludwig 62b1d553f2 builders: return of lib.right 2024-08-21 23:47:01 -07:00
Zynh Ludwig e81e16168a flake: overlay lib
fix lib overlay
2024-08-21 23:47:01 -07:00
Zynh Ludwig 4ff0914d1a home: nixpkgs disable nixpkgs config 2024-08-21 21:18:10 -07:00
Zynh Ludwig bbe280f608 snowhawk: disable nixpkgs config 2024-08-21 21:18:10 -07:00
Zynh Ludwig 11f9963090 builders: makePkgs 2024-08-21 21:18:10 -07:00
Zynh Ludwig 3872b51902 xivlauncher: junk testing 2024-08-21 21:18:10 -07:00
Zynh Ludwig 54d835c290 fish: lnmv script 2024-08-21 21:17:44 -07:00
Zynh Ludwig 21ae8bbbf2 little-lightning: enable projects module 2024-08-20 17:50:09 -07:00
Zynh Ludwig 44e592e9af tmux: use fish directly on nixos, zsh on macos 2024-08-20 17:42:28 -07:00
Zynh Ludwig 52ab8df3e7 tmux: use nix zsh, not fish 2024-08-20 17:23:09 -07:00
Zynh Ludwig 1c5295a007 flake: update 2024-08-20 13:56:53 -07:00
Zynh Ludwig 6587b49549 snowhawk: back to beta 2024-08-20 13:32:10 -07:00
Zynh Ludwig bef194d211 snowhawk: remove redundant setting 2024-08-20 02:26:21 -07:00
Zynh Ludwig 2df02b5ebb direnv: disable by default 2024-08-20 02:24:27 -07:00
Zynh Ludwig ac75980139 git: direnv gitignore 2024-08-20 01:46:57 -07:00
Zynh Ludwig b3624aacf4 direnv: module init 2024-08-20 01:46:57 -07:00
Zynh Ludwig 27a3ec825e tmux: terminal-features
from nvim checkhealth
2024-08-20 01:46:57 -07:00
Zynh Ludwig 0247eba923 snowhawk: lib.getExe for wakeonlan 2024-08-19 22:41:48 -07:00
Zynh Ludwig 53afc745e7 snowhawk: nvidia powerManagement 2024-08-19 22:29:35 -07:00
Zynh Ludwig 7a2bbca728 pkgs: fix borderlessBrowser 2024-08-19 07:22:28 -07:00
Zynh Ludwig 97bb4b6327 pkgs: borderlessBrowser 2024-08-19 06:02:43 -07:00
Zynh Ludwig de6a416958 flake: cleaning up vm hosts 2024-08-19 06:02:43 -07:00
Zynh Ludwig 21f82ed506 pkgs: refactor 2024-08-17 23:37:13 -07:00
Zynh Ludwig 6bdd69426c snowhawk: use helper script to generate randr layout 2024-08-17 23:37:13 -07:00
Zynh Ludwig 4f22744983 writeXrandrScriptBin: fix xrandr path 2024-08-17 23:37:13 -07:00
Zynh Ludwig 02fa077d37 writeXrandrScriptBin: inherit output 2024-08-17 08:15:36 -07:00
Zynh Ludwig c4b536f3cf writeXrandrScriptBin: config input 2024-08-17 06:57:31 -07:00
Zynh Ludwig 9b279a0b3c pkgs: callDefaultPackage alias 2024-08-17 05:46:00 -07:00
Zynh Ludwig a1903be803 pkgs: name passing 2024-08-17 05:45:52 -07:00
Zynh Ludwig b9ee61bc0c pkgs: writeXrandrScriptBin 2024-08-17 05:45:52 -07:00
Zynh Ludwig 353dc4fac3 pkgs: lib binding 2024-08-17 03:08:17 -07:00
Zynh Ludwig cc89a7a0c4 snowhawk: fix starting screen positions 2024-08-17 03:08:17 -07:00
Zynh Ludwig 1ebcfbba8b flake: update 2024-08-16 18:51:54 -07:00
Zynh Ludwig a1343b032e snowhawk: more image viewers 2024-08-14 21:53:32 -07:00
Zynh Ludwig 7785f6ee54 flake: update -- fix little-lightning 2024-08-13 03:05:22 -07:00
Zynh Ludwig 3b6338ff54 flake: update 2024-08-12 14:59:48 -07:00
Zynh Ludwig 81bb0de427 Revert "builders: remove redundant function"
This reverts commit c4e5b0141f.
2024-08-11 05:55:34 -07:00
Zynh Ludwig 764333541f builders: remove unused and broken overlay 2024-08-11 05:51:26 -07:00
Zynh Ludwig 5c3b923653 Revert "xivlauncher: iinact borderless"
This reverts commit 8039eacfb9.
2024-08-11 05:20:50 -07:00
Zynh Ludwig 8039eacfb9 xivlauncher: iinact borderless 2024-08-11 05:20:43 -07:00
Zynh Ludwig 6af247c6c6 xivlauncher: textools 2024-08-11 05:20:11 -07:00
Zynh Ludwig 89e5cb8679 builders: use pkgs overlay 2024-08-11 04:54:07 -07:00
Zynh Ludwig 2d2909e22e pkgs: wrapWine 2024-08-10 11:21:26 -07:00
Zynh Ludwig 73504959a2 flake: whitespace 2024-08-10 11:21:26 -07:00
Zynh Ludwig c4e5b0141f builders: remove redundant function 2024-08-10 10:19:28 -07:00
Zynh Ludwig 4673ef1590 Revert "snowhawk: lutris"
This reverts commit bed674c1ea.
2024-08-10 02:16:36 -07:00
Zynh Ludwig bed674c1ea snowhawk: lutris 2024-08-10 01:42:34 -07:00
Zynh Ludwig 1e64b50681 tmux-sessionizer: formatting 2024-08-09 15:34:42 -07:00
Zynh Ludwig f1ac919c82 little-lightning: fix sources 2024-08-09 03:29:16 -07:00
Zynh Ludwig eed13824b8 tmux-sessionizer: formatting 2024-08-09 00:59:51 -07:00
Zynh Ludwig ab7ae9e503 tmux-sessionizer: remove manual treesitter prompt 2024-08-09 00:58:26 -07:00
Zynh Ludwig b5d21b8bb6 tmux-sessionizer: writeShellApplication
tmux-sessionizer: runtimeInputs tmux

tmux-sessionizer: runtimeInputs fzf

tmux-sessionizer: runtimeInputs find

tmux-sessionizer: runtimeInputs coreutils

tmux-sessionizer: runtimeInputs procps

tmux-sessionizer: with pkgs runtimeInputs
2024-08-09 00:56:51 -07:00
Zynh Ludwig 858905ac30 tmux-sessionizer: use getExe 2024-08-08 21:34:33 -07:00
Zynh Ludwig da24f19a47 tmux: style 2024-08-08 20:09:09 -07:00
Zynh Ludwig b4bd291e76 tmux: lib.getExe 2024-08-08 19:58:25 -07:00
Zynh Ludwig 52542ddc8a tmux-sessionizer: whitespace unification 2024-08-08 17:42:40 -07:00
Zynh Ludwig a3695b3f48 tmux-sessionizer: cfg.pkg
I realized I was using the long name for something I already had in
scope
2024-08-08 17:40:18 -07:00
Zynh Ludwig f84c39616e snowhawk: tv-on 2024-08-08 04:16:31 -07:00
Zynh Ludwig ab10b106ff neovim: lua highlighting 2024-08-08 02:49:59 -07:00
Zynh Ludwig 80954f18fa flake: update 2024-08-08 02:07:10 -07:00
Zynh Ludwig 8ee7ab1113 flake: update 2024-08-07 05:34:13 -07:00
Zynh Ludwig 20521f77cc tmux-sessionizer: unescape shellArgs 2024-08-07 05:05:54 -07:00
Zynh Ludwig bc5ad30c8e all: use paths option 2024-08-07 04:57:06 -07:00
Zynh Ludwig 9ef497f991 sources: module init 2024-08-07 04:46:08 -07:00
Zynh Ludwig c85f5e013b tmux-sessionizer: paths option 2024-08-07 04:46:08 -07:00
Zynh Ludwig 20d33b0483 little-lightning: nix source 2024-08-05 22:03:41 -07:00
Zynh Ludwig 20f17a2247 tmux-sessionizer: follow links 2024-08-05 19:08:16 -07:00
Zynh Ludwig 44eb2bd078 tmux-sessionizer: fix paths 2024-08-05 18:48:08 -07:00
Zynh Ludwig 2a2b2e1373 Revert "tmux-sessionizer: writeShellApplication"
This reverts commit 7d1a5fa9d5.
2024-08-04 03:02:43 -07:00
Zynh Ludwig e103b92a8b tmux-sessionizer: writeShellApplication 2024-08-04 03:02:25 -07:00
Zynh Ludwig 60ba9d19d4 tmux: tmux a fish abbreviation 2024-08-04 03:01:50 -07:00
Zynh Ludwig f77616504a tmux-sessionizer: nix-store find + fzf 2024-08-04 03:01:50 -07:00
Zynh Ludwig 1e55be7fae tmux: optional sessionizer binding 2024-08-03 02:56:39 -07:00
Zynh Ludwig 8662c4df19 tmux-sessionizer: add self to home.packages 2024-08-03 02:48:46 -07:00
Zynh Ludwig 90896ca0b3 tmux-sessionizer: module init 2024-08-03 02:48:31 -07:00
Zynh Ludwig 061a7d8290 cleanup: Install.WantedBy 2024-08-03 02:46:35 -07:00
Zynh Ludwig 13c97347f8 hm-modules: extract getModules function 2024-08-02 02:09:19 -07:00
Zynh Ludwig 3df5994159 tldr: module init 2024-08-02 01:41:52 -07:00
Zynh Ludwig 9e982505a6 ssh: proxyjump snowhawk 2024-08-02 00:26:15 -07:00
Zynh Ludwig 5952138b85 repo-clone: sd-switch 2024-08-01 04:01:05 -07:00
Zynh Ludwig fb743989b4 repo-clone: basic config 2024-08-01 04:01:05 -07:00
Zynh Ludwig d8dae0b57d repo-clone: add module 2024-08-01 04:01:05 -07:00
Zynh Ludwig 5317efcc8d snowhawk: put nix src in src/ directory 2024-08-01 01:18:13 -07:00
Zynh Ludwig d7073b0472 builders: refactor 2024-08-01 00:46:06 -07:00
Zynh Ludwig 69607cc38a tmux: focus-events on 2024-07-31 22:01:28 -07:00
Zynh Ludwig ed2de97200 snowhawk: nixpkgs link 2024-07-31 22:01:28 -07:00
Zynh Ludwig 3e886667ce tmux: escapeTime 0 2024-07-31 01:45:16 -07:00
Zynh Ludwig cd3715f21a flameshot: text for configFile 2024-07-30 23:15:14 -07:00
Zynh Ludwig e10d94f984 flameshot: attrsOf attrs 2024-07-30 23:14:28 -07:00
Zynh Ludwig 43f82bdedb snowhawk: flameshot config 2024-07-30 23:12:14 -07:00
Zynh Ludwig a7ce699734 flameshot: module get 2024-07-30 23:09:02 -07:00
Zynh Ludwig 6e2ef44fd1 snowhawk: sops secret password hee hee hoo hoo 2024-07-30 21:52:01 -07:00
Zynh Ludwig 83f91a7016 sops: host level module 2024-07-30 21:52:01 -07:00
Zynh Ludwig c3b83a15d3 flake: update 2024-07-30 21:28:33 -07:00
Zynh Ludwig ff311d633d msiserver: enable sops 2024-07-31 03:28:13 +00:00
Zynh Ludwig f29b132c4d msiserver: wakeonlan 2024-07-31 03:23:48 +00:00
Zynh Ludwig aa61806fe1 filetypes: use genAttrs 2024-07-30 01:11:06 -07:00
Zynh Ludwig 2944546d0a snowhawk: vulkan_beta driver 2024-07-29 23:36:37 -07:00
Zynh Ludwig b72635d019 filetypes: new definition format 2024-07-28 23:45:06 -07:00
Zynh Ludwig 039fcb3d0e git: fix show-unchanged 2024-07-28 19:16:24 -07:00
Zynh Ludwig d2c8d62e88 git: not using sops anymore 2024-07-28 18:45:16 -07:00
Zynh Ludwig 1874ab5f29 git: sshifyPushUrl 2024-07-28 18:41:47 -07:00
Zynh Ludwig ab53ebc1db flake: update 2024-07-28 16:54:19 -07:00
Zynh Ludwig 602ef03b1b ssh: refactor 2: electric boogaloo 2024-07-28 15:05:27 -07:00
Zynh Ludwig d5f96ae6e5 ssh: refactor 2024-07-28 15:04:12 -07:00
Zynh Ludwig 08369e38e1 tmux: screen-256color -- fix HOME/END 2024-07-28 14:34:38 -07:00
Zynh Ludwig c1ad26246c tmux: formatting 2024-07-28 13:27:41 -07:00
Zynh Ludwig 5c455e88d5 macos: fix home directory 2024-07-28 13:27:41 -07:00
Zynh Ludwig 0d1be1643c secrets: snowhawk key 2024-07-28 13:27:30 -07:00
Zynh Ludwig fede1456d8 ssh: snowhawk ssh key 2024-07-28 07:12:39 -07:00
Zynh Ludwig 4201547e3e macos: sops enable 2024-07-28 07:09:11 -07:00
Zynh Ludwig 1ce0ee80c5 ssh: manage git ssh key 2024-07-28 06:53:41 -07:00
Zynh Ludwig 73427f47d4 secrets: remove identityfile from caveserver config 2024-07-28 06:51:25 -07:00
Zynh Ludwig a0befb35e7 ssh: use keyfiles directly, also only include if sops is enabled 2024-07-28 06:51:25 -07:00
Zynh Ludwig 6bb530e404 ssh: use ssh dir instead of homedir 2024-07-28 06:51:25 -07:00
Zynh Ludwig afdd0a22f3 ssh: refactoring 2024-07-28 06:51:25 -07:00
Zynh Ludwig e46de005fd nixos: use bulk module import 2024-07-28 06:51:25 -07:00
Zynh Ludwig f2af0dfd64 snowhawk: add image browser 2024-07-28 06:51:25 -07:00
Zynh Ludwig 231e0c511a snowhawk: add gvfs for trash:/// support 2024-07-28 06:51:25 -07:00
Zynh Ludwig 7106852a9a snowhawk: mount archive part 2024-07-26 03:31:00 -07:00
Zynh Ludwig 5c08a54f63 ssh: keys formatting 2024-07-26 03:28:09 -07:00
Zynh Ludwig 3a858e68dc snowhawk: formatting 2024-07-26 03:27:25 -07:00
Zynh Ludwig 3f6f73b74a flake: extend custom lib with home-manager lib for standalone home-manager builds 2024-07-25 15:19:37 -07:00
Zynh Ludwig 10542eae9d little-lightning: wakeonlan package 2024-07-25 05:33:16 -07:00
Zynh Ludwig 3894c3b40a Revert "wakeonlan: unicast activity"
This reverts commit 53064f8db6.
2024-07-25 05:26:03 -07:00
Zynh Ludwig 53064f8db6 wakeonlan: unicast activity 2024-07-25 05:16:30 -07:00
Zynh Ludwig d415e110e8 snowhawk: wakeOnLan 2024-07-25 05:10:03 -07:00
Zynh Ludwig 5c94d8d809 snowhawk: enable avahi 2024-07-25 04:42:04 -07:00
Zynh Ludwig 58cfd9ef4e snowhawk: enable ssh firewall holes 2024-07-25 04:24:53 -07:00
Zynh Ludwig a4c54ec50d xivlauncher: create module 2024-07-25 00:40:08 -07:00
Zynh Ludwig e22748e9f5 flake: update 2024-07-24 20:48:30 -07:00
Zynh Ludwig a46f194796 snowhawk: add pcmanfm 2024-07-24 20:48:30 -07:00
Zynh Ludwig c7283f4314 secrets: string latlon keys 2024-07-24 01:57:11 -07:00
Zynh Ludwig c534fe8fc6 redshift: bash wrapper 2024-07-24 01:57:11 -07:00
Zynh Ludwig 4e41b079e4 redshift: escape dollar sign 2024-07-24 01:52:43 -07:00
Zynh Ludwig 4f33cd310d redshift: only use secrets if sops is enabled 2024-07-24 01:17:05 -07:00
Zynh Ludwig 9d67cf3d60 redshift: wait for decryption 2024-07-24 01:16:17 -07:00
Zynh Ludwig c96fbbb91e secrets: update latlon 2024-07-24 01:16:17 -07:00
Zynh Ludwig 1b3ce49ffa snowhawk: enable redshift 2024-07-24 00:38:39 -07:00
Zynh Ludwig d48b81fbac secrets: add redshift secrets 2024-07-24 00:38:39 -07:00
Zynh Ludwig 9ce514aa6d redshift: create module 2024-07-24 00:38:39 -07:00
Zynh Ludwig f2699971d4 flake: extend lib globally in hm and nix modules 2024-07-24 00:24:19 -07:00
Zynh Ludwig 3fe55b566a sops: disable secrets if no sops 2024-07-24 00:24:19 -07:00
Zynh Ludwig dddd1a9ec6 sops: formatting 2024-07-23 23:57:41 -07:00
Zynh Ludwig d69d821cd3 sops: move secrets to relavent services 2024-07-23 23:41:00 -07:00
Zynh Ludwig c0a563278d git: ignore ds_store on macos 2024-07-23 21:55:44 -07:00
Zynh Ludwig bf13bdfded macos: remove copy abbr 2024-07-22 20:39:54 -07:00
Zynh Ludwig 94a4a9ff21 macos: clean up zsh init 2024-07-22 18:53:06 -07:00
Zynh Ludwig f8540d0e37 neovim: no longer mangle init 2024-07-22 01:09:21 -07:00
Zynh Ludwig fe7ea07235 assert hostname exists 2024-07-22 00:05:47 -07:00
Zynh Ludwig 4edd18ad6c flake: compileHomes 2024-07-21 14:19:02 -07:00
Zynh Ludwig e76608886c lib: lib extension is an overlay 2024-07-21 14:18:23 -07:00
Zynh Ludwig cb99b5cea8 flake: move system builders to lib/builders.nix 2024-07-21 13:34:50 -07:00
Zynh Ludwig 93f438a5d1 cleanup: removing unused module inputs 2024-07-21 13:19:45 -07:00
Zynh Ludwig bc08b83283 flake: finally use hostname for macbook 2024-07-21 12:53:43 -07:00
Zynh Ludwig 7b4e304299 macos: adjust rebuild command 2024-07-21 12:52:33 -07:00
Zynh Ludwig f4a42710b5 macos: cleaning up module options 2024-07-21 12:50:12 -07:00
Zynh Ludwig bf3ae9c4d0 macos: extract macos option globally 2024-07-21 12:48:26 -07:00
Zynh Ludwig 4dad83e4ae macos fish setup 2024-07-21 12:28:18 -07:00
Zynh Ludwig ac2c989dbb lazygit is default apparently 2024-07-21 12:28:18 -07:00
Zynh Ludwig c4724007d3 no more verbose hm 2024-07-21 12:28:18 -07:00
Zynh Ludwig 716cf3a006 little-lightning: alacritty overrides 2024-07-21 12:28:18 -07:00
Zynh Ludwig 123b5740c2 alacritty: macos tweaks 2024-07-21 12:28:18 -07:00
Zynh Ludwig f47a53c6b2 enabling things on laptop 2024-07-21 12:28:18 -07:00
Zynh Ludwig ca830c5379 add laptop hm configuration 2024-07-21 12:28:18 -07:00
Zynh Ludwig 1efb42d2f5 removing redundant .cargo config 2024-07-21 12:28:18 -07:00
Zynh Ludwig 98555351f3 defaultPrograms should *not* be default hm 2024-07-21 12:28:18 -07:00
Zynh Ludwig cfdb483ff5 flake: update 2024-07-19 00:25:25 -07:00
Zynh Ludwig 574753ff0b dwm: polkit-gnome-auth-agent 2024-07-18 22:45:04 -07:00
Zynh Ludwig bb62038052 snowhawk: enable polkit 2024-07-17 18:26:13 -07:00
Zynh Ludwig a3128c56ce override instead of define 2024-07-16 03:32:01 -07:00
Zynh Ludwig 6e10cdfed4 enable playerctl 2024-07-16 03:29:06 -07:00
Zynh Ludwig 6d9f543af8 custom playerctl service 2024-07-16 03:28:53 -07:00
Zynh Ludwig 63c2953b90 disable playerctl 2024-07-15 02:36:38 -07:00
Zynh Ludwig 83edf5666d cleaup: whitespace 2024-07-15 02:36:38 -07:00
Zynh Ludwig 6e3e2f134d remove useless variable 2024-07-15 02:36:38 -07:00
Zynh Ludwig 74054316b1 playerctl: shorten playerctl var 2024-07-12 17:44:50 -07:00
Zynh Ludwig c5ae0732e4 playerctl: manual config generation 2024-07-12 17:43:26 -07:00
Zynh Ludwig 5f311c05f3 caveserver: add fzf 2024-07-12 07:52:17 +00:00
Zynh Ludwig 58b4cd9815 cleanup: extracting a command for funsies :P 2024-07-12 00:03:48 -07:00
Zynh Ludwig 773852b310 playerctl: add rolled sxhkd service 2024-07-11 23:58:37 -07:00
Zynh Ludwig 011a1601f6 playerctl: disable sxhkd 2024-07-11 23:33:08 -07:00
Zynh Ludwig 80e33aba09 playerctl: giving up on xsession
keybinds broken
2024-07-11 23:24:28 -07:00
Zynh Ludwig 971420fd32 snowhawk: remove redundant sops package 2024-07-11 14:51:17 -07:00
Zynh Ludwig e59445a83c sops: include sops package 2024-07-11 21:49:11 +00:00
Zynh Ludwig d4f3391cac msiserver: enable ssh 2024-07-11 21:44:35 +00:00
Zynh Ludwig c945d00f61 msiserver: use user module 2024-07-11 21:40:59 +00:00
Zynh Ludwig 727b016567 user: username option 2024-07-11 21:39:37 +00:00
Zynh Ludwig 2954a57cf7 user: define default home directory using username 2024-07-11 21:24:11 +00:00
Zynh Ludwig 3c05f5e5a9 caveserver: enabling ssh 2024-07-11 21:15:43 +00:00
Zynh Ludwig ba2cec8473 cleanup: moving nom next to rebuild commands 2024-07-11 21:08:05 +00:00
Zynh Ludwig cb1a15d8d2 git: optional oauth 2024-07-11 21:07:52 +00:00
Zynh Ludwig 1c407de56d hm: rebuild command 2024-07-11 21:00:55 +00:00
Zynh Ludwig 23b93025c3 flake: caveserver 2024-07-11 21:00:55 +00:00
Zynh Ludwig 20d60fabdc ssh: caveserver key 2024-07-11 06:12:12 -07:00
Zynh Ludwig 1234f45107 sops: add caveserver host 2024-07-11 05:53:37 -07:00
Zynh Ludwig 14020f2cfa ssh: include config.d
this is to allow non-leaked hosts in my ssh config
2024-07-11 05:53:27 -07:00
Zynh Ludwig a70575069a snowhawk: enable homeNetwork 2024-07-11 05:53:24 -07:00
Zynh Ludwig 02067516a8 ssh: home network option for ssh 2024-07-11 05:53:24 -07:00
Zynh Ludwig 344f34c061 feat: playerctl module
enable playerctl

playerctl package

adding sxhkd

enabling xsession

media keybinds
2024-07-11 04:13:33 -07:00
Zynh Ludwig 4e495a907d suspend script 2024-07-10 01:34:15 -07:00
Zynh Ludwig 9480e94ab7 I decided I hate with; 2024-07-09 03:04:23 -07:00
Zynh Ludwig cddc4d6b1e dynamic module imports 2024-07-09 02:57:38 -07:00
Zynh Ludwig 448d806201 add msiserver private keys 2024-07-09 01:53:32 -07:00
Zynh Ludwig 88831b431c add msiserver config 2024-07-09 01:30:45 -07:00
Zynh Ludwig 521dc4a0ec add git.zynh.me to ssh hosts 2024-07-08 22:47:51 -07:00
Zynh Ludwig e07dce7874 sops-nix ssh key 2024-07-08 21:05:25 -07:00
Zynh Ludwig 231fe8a462 adding sops package 2024-07-08 20:49:45 -07:00
Zynh Ludwig 0e39cd4599 flake update 2024-07-08 20:12:48 -07:00
Zynh Ludwig 9a8bd5c3cf neovim follow nixpkgs? 2024-07-08 19:54:34 -07:00
Zynh Ludwig 6f3a5d2f60 sops-nix input added 2024-07-08 19:17:46 -07:00
Zynh Ludwig 2a1c3629aa cursor was switched to theme long ago 2024-07-08 17:53:07 -07:00
Zynh Ludwig ea469d1366 the extra default nix bothered me 2024-07-08 17:50:19 -07:00
Zynh Ludwig 0a0fb77cc0 make lib wrapper a single arg function 2024-07-08 17:07:15 -07:00
Zynh Ludwig e1de2cc440 formatting and hostname for hm module 2024-07-08 14:53:13 -07:00
Zynh Ludwig 14281d5615 tmux conf? 2024-07-08 02:13:14 -07:00
Zynh Ludwig 0a97c222ee enable lazygit by default 2024-07-08 07:54:45 +00:00
Zynh Ludwig 8976333483 disable defaultPrograms on msiserver 2024-07-08 07:54:40 +00:00
Zynh Ludwig 93766bcee5 making home packages declaration cleaner 2024-07-08 07:52:40 +00:00
Zynh Ludwig adee9b3cb6 remove manual packages from flake 2024-07-08 07:51:10 +00:00
Zynh Ludwig 27fa686c7f adding go to msiserver 2024-07-08 06:22:37 +00:00
Zynh Ludwig f6f40f4254 adding config to msiserver/home.nix 2024-07-08 06:08:14 +00:00
Zynh Ludwig 9e2727a559 fix: lib.mkDefault 5head 2024-07-08 06:01:27 +00:00
Zynh Ludwig 1de6d430ed trying to get a hm config 2024-07-08 05:44:00 +00:00
Zynh Ludwig 38f1e14b89 inputs 2024-07-08 04:38:26 +00:00
Zynh Ludwig d023a40fa2 test hm config? 2024-07-08 04:15:01 +00:00
Zynh Ludwig 07f0d1a465 rebase on pull 2024-07-07 15:49:28 -07:00
Zynh Ludwig 99c38b16fc lazygit binding? 2024-07-07 15:49:28 -07:00
Zynh Ludwig 17ee05fc04 refactor snowhawk settings 2024-07-07 15:41:49 -07:00
Zynh Ludwig 102f56e3b5 flake update 2024-07-07 15:40:56 -07:00
Zynh Ludwig f6b00722c6 Revert "instant bootloader"
This reverts commit 054838677c.
2024-07-07 15:40:56 -07:00
Zynh Ludwig cccd510fa3 browsers out of home 2024-07-07 15:40:56 -07:00
Zynh Ludwig ffbf533d77 using a neovim package 2024-07-07 15:40:56 -07:00
Zynh Ludwig 568dc2f4ab Revert "forcing video?"
This reverts commit 017cdeea1335ebfd0bf3eea2362a313444443a1c.
2024-07-06 05:26:47 -07:00
Zynh Ludwig 1511886bfd forcing video? 2024-07-06 05:26:46 -07:00
Zynh Ludwig 8be91d56ee trying to fix plymouth 2024-07-05 13:15:04 -07:00
Zynh Ludwig 054838677c instant bootloader 2024-07-05 13:14:29 -07:00
Zynh Ludwig 1ee990513d steam time ig 2024-07-05 10:29:24 -07:00
Zynh Ludwig 247fa4a93b cleaning comments 2024-07-02 19:23:26 -07:00
Zynh Ludwig f2b783011e trying prop drivers again 2024-07-02 13:11:43 -07:00
Zynh Ludwig 36e6907cfa override settings in dunst config 2024-07-01 23:51:23 -07:00
Zynh Ludwig f522285fac make module accurate 2024-07-01 23:44:13 -07:00
Zynh Ludwig ad2256f839 remove unused parameter 2024-07-01 23:42:45 -07:00
Zynh Ludwig 336a0f64cc adjust offset for dwm 2024-07-01 23:42:39 -07:00
Zynh Ludwig 39c7ffbe50 don't need no lib 2024-07-01 23:24:28 -07:00
Zynh Ludwig 647a8f2073 refactoring rose-pine-dunst.nix 2024-07-01 22:54:12 -07:00
Zynh Ludwig ecedb9774d collapsing some things for vertical space 2024-07-01 22:06:48 -07:00
Zynh Ludwig 7eb7f15b6d color fix 2024-07-01 22:02:54 -07:00
Zynh Ludwig 797f33bf5f dunst module 2024-07-01 20:36:32 -07:00
Zynh Ludwig 0e0b28fbb1 BROKEN: rose-pine dunst config 2024-07-01 13:51:33 -07:00
Zynh Ludwig 8c888b693a plymouth 2024-07-01 13:41:15 -07:00
Zynh Ludwig 1b4943b566 Revert "dconf enable and qt theme in theme.nix"
This reverts commit 17fea084aa.

oops, tried moving a config.nix to a home.nix
2024-07-01 13:08:01 -07:00
Zynh Ludwig 17fea084aa dconf enable and qt theme in theme.nix 2024-07-01 12:48:11 -07:00
Zynh Ludwig 9e9fc56b23 rename rose-pine-cursor.nix 2024-07-01 12:46:07 -07:00
Zynh Ludwig f57051cca7 extend cursor themeing to overall themeing 2024-07-01 12:46:07 -07:00
Zynh Ludwig a450a41293 fish shell abbrv for xclip pipe copy 2024-06-30 17:12:55 -07:00
Zynh Ludwig 18291b9c8c we call this the double yoinky sploinky 2024-06-30 17:10:27 -07:00
Zynh Ludwig ef69f11e2a push to commit lazygit 2024-06-30 17:06:06 -07:00
Zynh Ludwig 7a3bc48c57 beta nvidia driver 2024-06-30 16:26:16 -07:00
Zynh Ludwig f735a5a70d prefer dark 2024-06-30 14:29:26 -07:00
Zynh Ludwig 559a1b9543 rose-pine gtk 2024-06-30 14:26:31 -07:00
Zynh Ludwig 493dc96dad disable easyeffects package 2024-06-30 14:21:01 -07:00
Zynh Ludwig da7afab764 obsidian time 2024-06-30 14:17:38 -07:00
Zynh Ludwig 75a6dfa693 syncthing module 2024-06-30 14:17:38 -07:00
Zynh Ludwig e798c797b5 lazygit config 2024-06-30 09:59:19 -07:00
Zynh Ludwig 60ccf1a5fc moving env stuff to dedicated config 2024-06-30 02:11:01 -07:00
Zynh Ludwig 37bfc5f400 moving hardware config to hardware config 2024-06-30 02:04:12 -07:00
Zynh Ludwig d3ccccb5a4 moving stuff to home 2024-06-30 02:01:47 -07:00
Zynh Ludwig 0ddc4a61bb bleh 2024-06-30 01:55:03 -07:00
Zynh Ludwig cbdb8909c0 oops 2024-06-30 01:53:54 -07:00
Zynh Ludwig e3bacc7e2e enable audio :/ 2024-06-30 01:53:21 -07:00
Zynh Ludwig ae3b0eed25 audio group time 2024-06-30 01:48:55 -07:00
Zynh Ludwig f12a60c50e pulsemixer 2024-06-30 01:43:05 -07:00
Zynh Ludwig 1285337ae1 uhk is a home thing 2024-06-30 01:26:45 -07:00
Zynh Ludwig 54a7a82651 moving xclip to dwm setup 2024-06-30 01:24:09 -07:00
Zynh Ludwig 59b62ac042 audio nixosmodule 2024-06-30 01:07:09 -07:00
Zynh Ludwig 1701ade73f cleaning audio stuff 2024-06-30 01:05:38 -07:00
Zynh Ludwig 487d68de12 disabling extra rules 2024-06-30 01:04:15 -07:00
Zynh Ludwig d8c51cbb94 comments 2024-06-30 01:03:47 -07:00
Zynh Ludwig 7d437e6e0f pam no work (not using pam?) 2024-06-30 01:03:04 -07:00
Zynh Ludwig 9730670d2a mediakeys no work 2024-06-30 01:02:35 -07:00
Zynh Ludwig 9c71c28c16 forceFullCompositionPipeline 2024-06-29 23:49:03 -07:00
Zynh Ludwig 66eb499ad0 uhk-agent bb 2024-06-29 22:13:05 -07:00
Zynh Ludwig 52af30d67d mediakeys? 2024-06-29 22:13:01 -07:00
Zynh Ludwig aec4732e4c gnome theme maybe? 2024-06-28 20:58:08 -07:00
Zynh Ludwig 1da378b6c8 gnome keyring 2024-06-28 20:54:17 -07:00
Zynh Ludwig 78696ad16d disable easyeffects buggy audiop 2024-06-28 20:45:44 -07:00
Zynh Ludwig b831f9be33 easyeffects daemon 2024-06-28 20:35:43 -07:00
Zynh Ludwig 3184cb2e4a trying out backgrounds input 2024-06-28 20:27:15 -07:00
Zynh Ludwig ae54ad7e5d nixpkgs follow? 2024-06-28 20:20:52 -07:00
Zynh Ludwig c44aa23749 easyeffects 2024-06-28 20:18:20 -07:00
Zynh Ludwig 920a2d8886 resigned system service 2024-06-28 19:28:07 -07:00
Zynh Ludwig 5b015349c0 trying hm service 2024-06-28 19:25:15 -07:00
Zynh Ludwig 2c3c3cc854 moving nom package 2024-06-28 19:25:07 -07:00
Zynh Ludwig 0df91fa659 removing redundant i18n settings 2024-06-28 19:06:54 -07:00
Zynh Ludwig e01daac2fc no more sudo, no more teachers 2024-06-28 19:05:40 -07:00
Zynh Ludwig 6e07261ae1 nixos-rebuild sudoers 2024-06-28 19:04:10 -07:00
Zynh Ludwig 13c0a48a80 removing redundant package 2024-06-28 18:57:30 -07:00
Zynh Ludwig fede17c7b4 minor formatting 2024-06-28 18:38:54 -07:00
Zynh Ludwig 580e868f5a moving internationalization 2024-06-28 18:38:03 -07:00
Zynh Ludwig 4b72214967 enable xserver in dwm module 2024-06-28 18:35:31 -07:00
Zynh Ludwig 23e4691c6e giving up on xrandrHeads for now 2024-06-28 18:24:57 -07:00
Zynh Ludwig 3b9cd8ae5f moving randr to hardware 2024-06-28 17:57:08 -07:00
Zynh Ludwig 4118fd205a ordering randr 2024-06-28 08:31:47 -07:00
Zynh Ludwig 518127d717 removing example, I have one now 2024-06-28 08:30:35 -07:00
Zynh Ludwig 14fb55f58d cleaning up unused args 2024-06-28 08:28:31 -07:00
Zynh Ludwig 11e83097e6 movin stuff around 2024-06-28 08:27:44 -07:00
Zynh Ludwig 8d0d9f5320 another tiny default.nix! 2024-06-28 08:25:24 -07:00
Zynh Ludwig e89290dc18 removing comments 2024-06-28 08:20:31 -07:00
Zynh Ludwig 1ac2f73ee6 flake update bb 2024-06-28 08:12:19 -07:00
Zynh Ludwig fec907a117 more formatting 2024-06-28 08:06:07 -07:00
Zynh Ludwig 71f67f08ee more formatting? 2024-06-28 08:03:01 -07:00
Zynh Ludwig 7486f2409b formatting? 2024-06-28 07:55:01 -07:00
Zynh Ludwig 608982d8f2 more rework 2024-06-28 07:52:41 -07:00
Zynh Ludwig 4213303810 steamrun good actually
it just sets up a sick FHS for you
2024-06-28 07:35:21 -07:00
Zynh Ludwig 293770f4f8 sync vm configs 2024-06-28 07:34:26 -07:00
Zynh Ludwig b3dbcde44d sprite needs love too: mirror nixos home 2024-06-28 07:30:46 -07:00
Zynh Ludwig 6244f06b92 won't be using hyprland here 2024-06-28 07:30:46 -07:00
Zynh Ludwig 0b358f8b0a TODO: fix vm bootloader 2024-06-28 07:30:46 -07:00
Zynh Ludwig 059e31b9d3 cleanup comments 2024-06-28 07:30:46 -07:00
Zynh Ludwig f19ba4201d adjust nixos vm config 2024-06-28 07:30:46 -07:00
Zynh Ludwig eb1fcb8205 system specific stuff 2024-06-28 07:30:46 -07:00
Zynh Ludwig 48d80fc4b8 fix swank unicode 2024-06-28 07:30:22 -07:00
Zynh Ludwig aaab14ff8c the big move 2024-06-28 07:14:54 -07:00
Zynh Ludwig 0431b86525 generic nixosConfigurations 2024-06-28 07:14:54 -07:00
Zynh Ludwig d4b83fd5a4 unbackupfileextension 2024-06-28 00:12:26 -07:00
Zynh Ludwig bb150a1427 backupfileextension 2024-06-28 00:12:26 -07:00
Zynh Ludwig 76ee520d78 easyeffects module 2024-06-27 23:30:07 -07:00
Zynh Ludwig c7923e6ae6 filetypes 2024-06-27 23:30:07 -07:00
Zynh Ludwig e26d290125 switching to the daemon 2024-06-27 23:30:07 -07:00
Zynh Ludwig 381dfb4380 dconf 2024-06-27 23:30:07 -07:00
Zynh Ludwig d8a13c0b6b easyeffects 2024-06-27 23:30:07 -07:00
Zynh Ludwig 9101f09131 killall time bb 2024-06-27 22:34:25 -07:00
Zynh Ludwig 82fda2d900 move brave + filetypes 2024-06-27 22:31:45 -07:00
Zynh Ludwig fa52813d59 nixos smh 2024-06-27 20:59:01 -07:00
Zynh Ludwig a850312fc4 remove unneeded shebang 2024-06-27 20:29:26 -07:00
Zynh Ludwig 1652011473 Revert "DISPLAY or something?"
This reverts commit af4f7265e0.
2024-06-27 20:26:26 -07:00
Zynh Ludwig 998af79fb6 adding gcc 2024-06-27 20:19:32 -07:00
Zynh Ludwig af4f7265e0 DISPLAY or something? 2024-06-27 20:19:32 -07:00
Zynh Ludwig bfd130c879 cargo bin bb 2024-06-27 20:19:32 -07:00
Zynh Ludwig 9f3082ff5a dwm datetime 2024-06-27 19:23:33 -07:00
Zynh Ludwig 2b353ac1bd numlock 2024-06-27 19:23:33 -07:00
Zynh Ludwig 6c4d4263f7 remove shell config
it just works on its own
2024-06-27 16:22:47 -07:00
Zynh Ludwig 49d283b4d8 add imagemagick 2024-06-27 15:21:15 -07:00
Zynh Ludwig f900ad61f5 refactor 2024-06-27 15:11:33 -07:00
Zynh Ludwig fc389370f4 projects folder 2024-06-27 15:02:37 -07:00
Zynh Ludwig f85c28c4ce fish rebuild script?
good enough
2024-06-26 02:35:46 -07:00
Zynh Ludwig 68a191cacd feh in home packages (for now) 2024-06-26 02:35:11 -07:00
Zynh Ludwig 186964c1a7 nom 2024-06-26 02:35:11 -07:00
Zynh Ludwig f2ac717244 picom 2024-06-26 02:11:41 -07:00
Zynh Ludwig a5760ca511 envfs 2024-06-26 01:50:53 -07:00
Zynh Ludwig f8e2fa011b open source bb 2024-06-26 01:47:27 -07:00
Zynh Ludwig b66fcea3b8 updating 2024-06-26 01:37:59 -07:00
Zynh Ludwig 7a95aa76fa I need to move dwm to home 2024-06-06 20:58:35 -07:00
Zynh Ludwig 91adc5497b fix typo 2024-06-06 20:08:25 -07:00
Zynh Ludwig 6990913c6d cursor theme! 2024-06-06 20:04:16 -07:00
Zynh Ludwig 563a668e7b whitespace 2024-06-06 20:04:07 -07:00
Zynh Ludwig 037c5547a1 data drive 2024-06-06 19:51:59 -07:00
Zynh Ludwig 8ca6c49952 nvidia 2024-06-06 19:51:56 -07:00
Zynh Ludwig 03eb5eb0f8 cleanup hardware configs 2024-06-06 19:00:48 -07:00
Zynh Ludwig 79ce9a95cc dwm works bb 2024-06-06 18:42:54 -07:00
Zynh Ludwig a50937c59a upgrade season <3 2024-06-05 17:59:42 -07:00
Zynh Ludwig 8edf7fad7c remove hints enabled (I was using default anyway) 2024-06-03 02:50:55 -07:00
Zynh Ludwig 546cf7efca switch to default.nix for nixos modules 2024-06-02 21:32:15 -07:00
Zynh Ludwig e9508bcb09 readd color and add font size 2024-05-31 04:00:55 -07:00
Zynh Ludwig 950eaea9c4 arandr 2024-05-31 02:34:59 -07:00
Zynh Ludwig 4c73b0cf42 wHiTsPaCe 2024-05-31 02:29:49 -07:00
Zynh Ludwig 29ad0a929a budgie for safety 2024-05-31 02:05:21 -07:00
Zynh Ludwig 0f94e0cf1c FIXME: Alacritty config 2024-05-31 01:51:08 -07:00
Zynh Ludwig c399eb7b1a using dwm, no config yet 2024-05-31 01:50:59 -07:00
Zynh Ludwig fdf5ce79bf fix diff targets 2024-05-31 01:50:31 -07:00
Zynh Ludwig 4189203192 update diffs for both 6.4 and 6.5 2024-05-31 01:25:09 -07:00
Zynh Ludwig 9c73eeb315 dwm maybe? 2024-05-30 22:58:55 -07:00
Zynh0722 602d727052 match arch alacritty config 2024-05-30 22:10:32 -07:00
Zynh0722 ecc28a3d24 correct font styles in alacritty 2024-05-30 22:01:14 -07:00
Zynh Ludwig 1e1eb0a547 user module 2024-05-30 17:15:40 -07:00
Zynh Ludwig 84b7c70e27 neovim related home variables should be set with the neovim module 2024-05-30 17:10:06 -07:00
Zynh Ludwig 3e60e27695 tmux module 2024-05-30 14:01:29 -07:00
Zynh Ludwig 8c181b811e Whoops 2024-05-30 00:13:04 -07:00
Zynh Ludwig 2cc050cc13 assume unchanged aliases 2024-05-30 00:08:57 -07:00
Zynh Ludwig 1bf3b68f48 reorg 2024-05-29 23:57:51 -07:00
Zynh Ludwig 50286d4fb1 fzf native works now I think 2024-05-29 23:46:12 -07:00
Zynh Ludwig 5990c5d258 cleanup 2024-05-29 23:34:10 -07:00
Zynh Ludwig ab1f001742 remove unneeded parenthesis 2024-05-29 22:56:58 -07:00
Zynh Ludwig b70c840083 rust style consolidation 2024-05-29 22:42:45 -07:00
Zynh Ludwig 9addc8b4ca making nil happy 2024-05-29 22:40:57 -07:00
Zynh Ludwig 64d7c4f5f2 fixup ecc8ed4b 2024-05-29 22:39:56 -07:00
Zynh Ludwig ecc8ed4bd9 reorganizing and deduping packages 2024-05-29 22:37:28 -07:00
Zynh Ludwig 342ca6e2f6 cleanup on aisle home 2024-05-29 22:00:24 -07:00
Zynh Ludwig 6543588596 git is a proper module now 2024-05-29 21:59:06 -07:00
Zynh Ludwig 1e7079e54c fish module 2024-05-29 21:54:42 -07:00
Zynh Ludwig 1e87bd7221 alacritty is now a proper module 2024-05-29 20:50:00 -07:00
Zynh Ludwig cd936d590c better comment 2024-05-29 20:46:02 -07:00
Zynh Ludwig 6ee41f0135 description change 2024-05-29 20:43:48 -07:00
Zynh Ludwig 043b1668a2 default for lib modules 2024-05-29 20:42:31 -07:00
Zynh Ludwig f011d8c78d neovim.nix 2024-05-29 20:31:14 -07:00
Zynh Ludwig fc92f1a5b9 removing redundant comments 2024-05-29 20:07:25 -07:00
Zynh Ludwig 0f3a5ec38e cleaning nil warnings 2024-05-29 19:59:35 -07:00
Zynh Ludwig e4823110b1 alacritty 2024-05-29 19:58:14 -07:00
Zynh Ludwig ab61c51afe add nixpkgs-fmt 2024-05-29 19:58:11 -07:00
Zynh Ludwig 0a583090db packages and no coc 2024-05-29 19:35:01 -07:00
Zynh Ludwig 5f06e84522 globally ignore Session.vim 2024-05-29 19:25:53 -07:00
Zynh Ludwig 7ae9497f49 hm not nixos 2024-05-29 16:35:07 -07:00
Zynh Ludwig c84a021f97 remove swanky package 2024-05-29 16:27:19 -07:00
Zynh Ludwig a8c727b880 relocate bash config 2024-05-29 16:27:19 -07:00
Zynh Ludwig 818af704a1 with python and ruby 2024-05-29 15:59:32 -07:00
Zynh Ludwig bcbf30fd2e reorganize neovim hm 2024-05-29 15:58:08 -07:00
Zynh Ludwig c06618330b disable some chromium stuff by default 2024-05-29 15:55:03 -07:00
Zynh Ludwig c229218fac neovim nightly overlay 2024-05-29 15:23:56 -07:00
Zynh Ludwig 652f0a4c57 switch to allgrammers 2024-05-29 15:23:44 -07:00
Zynh Ludwig cf890bde0c packages in home 2024-05-29 14:38:34 -07:00
Zynh Ludwig 3ab3e29786 nvim in home 2024-05-29 14:36:57 -07:00
Zynh Ludwig edf807c9e0 adding nixosvm 2024-05-29 14:23:03 -07:00
Zynh Ludwig 88b5ca00e2 organizing some packages 2024-05-29 14:15:43 -07:00
Zynh Ludwig 1a23900ae5 auto optimize store 2024-05-29 14:14:44 -07:00
Zynh Ludwig 593610bba7 add tree-sitter and python3 2024-02-28 21:09:02 -08:00
Zynh Ludwig 717736993c fish.nix 2024-02-28 20:56:42 -08:00
Zynh Ludwig 51104c5387 shuffle around fish-config 2024-02-28 20:52:51 -08:00
Zynh Ludwig 1244a55fc8 relocate git config 2024-02-28 20:43:07 -08:00
Zynh Ludwig 9305e26252 remove old valcat import 2024-02-28 20:38:58 -08:00
Zynh Ludwig ce1d4e71ab proper git input 2024-02-28 20:37:01 -08:00
Zynh Ludwig 7b5c3b956c broken reading fish_prompt 2024-02-28 20:02:44 -08:00
Zynh Ludwig ca2b59c942 goodbye comments 2024-02-28 19:35:44 -08:00
Zynh Ludwig 524fafc36c use xdg config home 2024-02-28 19:35:23 -08:00
Zynh Ludwig 1fe6b38adf symlinking works for now 2024-02-28 19:33:40 -08:00
85 changed files with 4561 additions and 394 deletions

1
.gitignore vendored
View File

@ -1 +1,2 @@
result/
target/

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "fish/themes/val-cat"]
path = fish/themes/val-cat
url = https://git.zynh.me/Zynh0722/omf-theme.git

11
.sops.yaml Normal file
View File

@ -0,0 +1,11 @@
keys:
users:
- &ravenshade age1zgd7qpj7vc4gjtetttqgp32aw75fmnjrw6ax2x2meul2w4jclytszvutdd
hosts:
- &snowhawk age1s549sffdhu2yyfk9h06hhks7xc4mqq9a6k53dleurr7y3rmuudpqwz24gv
creation_rules:
- path_regex: secrets.yaml$
key_groups:
- age:
- *ravenshade
- *snowhawk

95
builders.nix Normal file
View File

@ -0,0 +1,95 @@
{ nixpkgs, nix-darwin, self, ... }@inputs:
let
makePkgs = system: (import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [
self.overlays.default
inputs.niri.overlays.niri
];
});
lib = nixpkgs.lib.extend (import ./lib);
inherit (inputs.home-manager.lib) homeManagerConfiguration;
inherit (lib) nixosSystem;
inherit (lib.strings) optionalString;
inherit (lib.attrsets) nameValuePair;
in
rec {
toPartialNixosConfig =
{ hostname, system ? "x86_64-linux" }:
nameValuePair
hostname
(nixosSystem rec {
pkgs = makePkgs system;
specialArgs = { inherit inputs self; };
modules = [
./hosts/${hostname}/hardware-configuration.nix
./hosts/${hostname}/configuration.nix
inputs.home-manager.nixosModules.default
inputs.chaotic.nixosModules.default
inputs.niri.nixosModules.niri
inputs.lix-module.nixosModules.default
{
home-manager.extraSpecialArgs = {
inherit inputs self pkgs;
lib = pkgs.lib.extend (_: _: inputs.home-manager.lib);
};
}
];
});
toPartialHomeManagerConfig =
{ user, system ? "x86_64-linux", hostname ? "", configHostname ? "" }:
let
configHost = if builtins.stringLength configHostname > 0 then configHostname else hostname;
hostStr = optionalString (builtins.stringLength hostname > 0) "@${hostname}";
in
assert lib.assertMsg (builtins.stringLength configHost > 0) "either configHostname or hostname need to exist";
nameValuePair
"${user}${hostStr}"
(homeManagerConfiguration {
pkgs = makePkgs system;
extraSpecialArgs = { inherit inputs self; };
modules = [
inputs.chaotic.homeManagerModules.default
./hosts/${configHost}/home.nix
];
});
toPartialDarwinConfig =
{ hostname, system ? "aarch64-darwin", }:
nameValuePair
hostname
(nix-darwin.lib.darwinSystem rec {
pkgs = makePkgs system;
specialArgs = { inherit inputs self; };
modules = [
inputs.home-manager.darwinModules.home-manager
./hosts/${hostname}/configuration.nix
{
home-manager.extraSpecialArgs = {
inherit inputs self pkgs;
lib = pkgs.lib.extend (_: _: inputs.home-manager.lib);
};
}
];
});
compileSystems =
toPartialConfiguration:
systems:
lib.right
builtins.listToAttrs
(map toPartialConfiguration)
systems;
compileNixosSystems = compileSystems toPartialNixosConfig;
compileDarwinSystems = compileSystems toPartialDarwinConfig;
compileHomes = compileSystems toPartialHomeManagerConfig;
}

View File

@ -1,180 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, inputs, ... }:
{
imports = [ inputs.home-manager.nixosModules.default ];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
fonts.packages = with pkgs; [
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
];
# Set your time zone.
time.timeZone = "America/Los_Angeles";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# Enable the X11 windowing system.
services.xserver.enable = true;
# Enable the XFCE Desktop Environment.
services.xserver.displayManager.lightdm.enable = true;
services.xserver.desktopManager.budgie.enable = true;
# services.xserver.windowManager.dwm.enable = true;
# Configure keymap in X11
services.xserver = {
xkb = {
layout = "us";
variant = "";
};
};
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
programs.nix-ld.enable = true;
# programs.nix-ld.libraries = with pkgs; [
#
# ];
# Define a user account. Don't forget to set a password with passwd.
users.users.ravenshade = {
isNormalUser = true;
description = "Zynh Ludwig";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [
rustup
neovim
gparted
fish
gnumake
zig
go
nil
xclip
wezterm
firefox
fzf
tree
lazygit
ripgrep
nodejs_21
dotnet-sdk_8
unzip
nixpkgs-fmt
lua-language-server
stylua
# steam
# spotify
# discord
git-credential-oauth
];
};
# Enable automatic login for the user.
services.xserver.displayManager.autoLogin = {
enable = true;
user = "ravenshade";
};
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = { "ravenshade" = import ./home.nix; };
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
programs.bash = {
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
# programs.hyprland.enable = true;
# environment.sessionVariables.NIXOS_OZONE_WL = "1";
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
neovim
curl
git
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment?
}

@ -1 +0,0 @@
Subproject commit 75549ce64044336ed14e502f1c1ab8bf98184990

View File

@ -1,17 +1,302 @@
{
"nodes": {
"home-manager": {
"backgrounds": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1708806879,
"narHash": "sha256-MSbxtF3RThI8ANs/G4o1zIqF5/XlShHvwjl9Ws0QAbI=",
"lastModified": 1719630871,
"narHash": "sha256-laSbApuWgBoDLJUzeJKSGiqP8wwxXXQ/XnIJKihezqk=",
"ref": "refs/heads/main",
"rev": "42d5fff03e9a8aa5ad8a1dac45be209ca12b66d5",
"revCount": 8,
"type": "git",
"url": "https://git.zynh.me/Zynh0722/backgrounds"
},
"original": {
"type": "git",
"url": "https://git.zynh.me/Zynh0722/backgrounds"
}
},
"chaotic": {
"inputs": {
"flake-schemas": "flake-schemas",
"home-manager": "home-manager",
"jovian": "jovian",
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1730321876,
"narHash": "sha256-hG8dCERfiM1yUDRWvEplr9kMgEe79xWaeF1On4H5gcs=",
"owner": "chaotic-cx",
"repo": "nyx",
"rev": "6d2d6b13f317bcc6ef0709974962b1d49dedb102",
"type": "github"
},
"original": {
"owner": "chaotic-cx",
"ref": "nyxpkgs-unstable",
"repo": "nyx",
"type": "github"
}
},
"dunst-theme": {
"flake": false,
"locked": {
"lastModified": 1715462588,
"narHash": "sha256-XoE+5kMVSjqGmpU71zsfcnZuwM9q1dXTUs//Y9nC7HQ=",
"owner": "d2718nis",
"repo": "rose-pine-dunst",
"rev": "496499eaed38a07ce4f79ec91baaf6e1e4c28bc5",
"type": "github"
},
"original": {
"owner": "d2718nis",
"repo": "rose-pine-dunst",
"type": "github"
}
},
"fish_theme": {
"flake": false,
"locked": {
"lastModified": 1702794161,
"narHash": "sha256-uGtLlPvjLfrngdByjCYp9mUuZasg3Z6mGfkD1mdRs1o=",
"ref": "refs/heads/main",
"rev": "75549ce64044336ed14e502f1c1ab8bf98184990",
"revCount": 24,
"type": "git",
"url": "https://git.zynh.me/Zynh0722/omf-theme"
},
"original": {
"type": "git",
"url": "https://git.zynh.me/Zynh0722/omf-theme"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"neovim-overlay",
"nixpkgs"
]
},
"locked": {
"lastModified": 1727826117,
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"neovim-overlay",
"hercules-ci-effects",
"nixpkgs"
]
},
"locked": {
"lastModified": 1712014858,
"narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "9126214d0a59633752a136528f5f3b9aa8565b7d",
"type": "github"
},
"original": {
"id": "flake-parts",
"type": "indirect"
}
},
"flake-parts_3": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1727826117,
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-schemas": {
"locked": {
"lastModified": 1721999734,
"narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=",
"rev": "0a5c42297d870156d9c57d8f99e476b738dcd982",
"revCount": 75,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%3D0.1.5.tar.gz"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flakey-profile": {
"locked": {
"lastModified": 1712898590,
"narHash": "sha256-FhGIEU93VHAChKEXx905TSiPZKga69bWl1VB37FK//I=",
"owner": "lf-",
"repo": "flakey-profile",
"rev": "243c903fd8eadc0f63d205665a92d4df91d42d9d",
"type": "github"
},
"original": {
"owner": "lf-",
"repo": "flakey-profile",
"type": "github"
}
},
"git-hooks": {
"inputs": {
"flake-compat": "flake-compat_2",
"gitignore": "gitignore",
"nixpkgs": [
"neovim-overlay",
"nixpkgs"
],
"nixpkgs-stable": [
"neovim-overlay",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729104314,
"narHash": "sha256-pZRZsq5oCdJt3upZIU4aslS9XwFJ+/nVtALHIciX/BI=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "3c3e88f0f544d6bb54329832616af7eb971b6be6",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"neovim-overlay",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"hercules-ci-effects": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"neovim-overlay",
"nixpkgs"
]
},
"locked": {
"lastModified": 1724947644,
"narHash": "sha256-MHHrHasTngp7EYQOObHJ1a/IsRF+wodHqOckhH6uZbk=",
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"rev": "dba4367b9a9d9615456c430a6d6af716f6e84cef",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "hercules-ci-effects",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"chaotic",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730016908,
"narHash": "sha256-bFCxJco7d8IgmjfNExNz9knP8wvwbXU4s/d53KOK6U0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "4ee704cb13a5a7645436f400b9acc89a67b9c08a",
"rev": "e83414058edd339148dc142a8437edb9450574c8",
"type": "github"
},
"original": {
@ -20,13 +305,293 @@
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1730016908,
"narHash": "sha256-bFCxJco7d8IgmjfNExNz9knP8wvwbXU4s/d53KOK6U0=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e83414058edd339148dc142a8437edb9450574c8",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"jovian": {
"inputs": {
"nix-github-actions": "nix-github-actions",
"nixpkgs": [
"chaotic",
"nixpkgs"
]
},
"locked": {
"lastModified": 1730248099,
"narHash": "sha256-Fl7BSdpLk0uTXF6ol/MR0q1EB4XQ8tn0ftig0pyYh5Y=",
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"rev": "c11bab124fc55a37cbd854ed28ea121ed609231f",
"type": "github"
},
"original": {
"owner": "Jovian-Experiments",
"repo": "Jovian-NixOS",
"type": "github"
}
},
"lix": {
"flake": false,
"locked": {
"lastModified": 1723503926,
"narHash": "sha256-Rosl9iA9MybF5Bud4BTAQ9adbY81aGmPfV8dDBGl34s=",
"rev": "bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2.tar.gz?rev=bcaeb6388b8916ac6d1736e3aa2b13313e6a6bd2"
},
"original": {
"type": "tarball",
"url": "https://git.lix.systems/lix-project/lix/archive/2.91.0.tar.gz"
}
},
"lix-module": {
"inputs": {
"flake-utils": "flake-utils",
"flakey-profile": "flakey-profile",
"lix": "lix",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1723510904,
"narHash": "sha256-zNW/rqNJwhq2lYmQf19wJerRuNimjhxHKmzrWWFJYts=",
"rev": "622a2253a071a1fb97a4d3c8103a91114acc1140",
"type": "tarball",
"url": "https://git.lix.systems/api/v1/repos/lix-project/nixos-module/archive/622a2253a071a1fb97a4d3c8103a91114acc1140.tar.gz?rev=622a2253a071a1fb97a4d3c8103a91114acc1140"
},
"original": {
"type": "tarball",
"url": "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz"
}
},
"neovim-overlay": {
"inputs": {
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"hercules-ci-effects": "hercules-ci-effects",
"neovim-src": "neovim-src",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1730088025,
"narHash": "sha256-FIdIaN7f6karwtDV65VXTV8VThNrR63nwykfgXpm4p4=",
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"rev": "f35afbe60a4ff71fd65fec3839fc38943f961951",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "neovim-nightly-overlay",
"type": "github"
}
},
"neovim-src": {
"flake": false,
"locked": {
"lastModified": 1729121305,
"narHash": "sha256-c94xkA/RuszC4PfmB+MWqOo2vbO66GTO6XKer0mbltA=",
"owner": "neovim",
"repo": "neovim",
"rev": "852954ff6d96adce0158f74ca494fdcef3aa1921",
"type": "github"
},
"original": {
"owner": "neovim",
"repo": "neovim",
"type": "github"
}
},
"niri": {
"inputs": {
"flake-parts": "flake-parts_3",
"niri-stable": "niri-stable",
"niri-unstable": "niri-unstable",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable",
"xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
},
"locked": {
"lastModified": 1730267238,
"narHash": "sha256-Qwr72PbHBmc88UeLtm7K6/PJ0cfJjq8p2R4lsHA4cWw=",
"owner": "sodiboo",
"repo": "niri-flake",
"rev": "92d467d0c2dc8aeade9d858c95104b6a678cd9c0",
"type": "github"
},
"original": {
"owner": "sodiboo",
"repo": "niri-flake",
"type": "github"
}
},
"niri-stable": {
"flake": false,
"locked": {
"lastModified": 1726304152,
"narHash": "sha256-4YDrKMwXGVOBkeaISbxqf24rLuHvO98TnqxWYfgiSeg=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "6a48728ffb1e638839b07f9ab2f06b2adb41dc61",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"ref": "v0.1.9",
"repo": "niri",
"type": "github"
}
},
"niri-unstable": {
"flake": false,
"locked": {
"lastModified": 1730263923,
"narHash": "sha256-HFOXeh+WNtAwuV/KNtOSKXGnOoy465a/dud2zvtsCt8=",
"owner": "YaLTeR",
"repo": "niri",
"rev": "d3e72245b003cbeed0810bf00c4a445b7c8a652a",
"type": "github"
},
"original": {
"owner": "YaLTeR",
"repo": "niri",
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1730765507,
"narHash": "sha256-u2KaQonCkHQbQvYrfZz7OJuyOrFelbfh5gS9L43c1WY=",
"owner": "LnL7",
"repo": "nix-darwin",
"rev": "5d891207854e792a33b5984e9bee56c8b57ef010",
"type": "github"
},
"original": {
"owner": "LnL7",
"repo": "nix-darwin",
"type": "github"
}
},
"nix-github-actions": {
"inputs": {
"nixpkgs": [
"chaotic",
"jovian",
"nixpkgs"
]
},
"locked": {
"lastModified": 1729697500,
"narHash": "sha256-VFTWrbzDlZyFHHb1AlKRiD/qqCJIripXKiCSFS8fAOY=",
"owner": "zhaofengli",
"repo": "nix-github-actions",
"rev": "e418aeb728b6aa5ca8c5c71974e7159c2df1d8cf",
"type": "github"
},
"original": {
"owner": "zhaofengli",
"ref": "matrix-name",
"repo": "nix-github-actions",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1708807242,
"narHash": "sha256-sRTRkhMD4delO/hPxxi+XwLqPn8BuUq6nnj4JqLwOu0=",
"lastModified": 1729880355,
"narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1727825735,
"narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1730137625,
"narHash": "sha256-9z8oOgFZiaguj+bbi3k4QhAD6JabWrnv7fscC/mt0KE=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "64b80bfb316b57cdb8919a9110ef63393d74382a",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1729973466,
"narHash": "sha256-knnVBGfTCZlQgxY1SgH0vn2OyehH9ykfF8geZgS95bk=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "cd3e8833d70618c4eea8df06f95b364b016d4950",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1729880355,
"narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "73de017ef2d18a04ac4bfd0c02650007ccb31c2a",
"rev": "18536bf04cd71abd345f9579158841376fdd0c5a",
"type": "github"
},
"original": {
@ -36,10 +601,129 @@
"type": "github"
}
},
"repo-clone": {
"locked": {
"lastModified": 1722509718,
"narHash": "sha256-VkdEMyhUl5RwyOsGsBzpA0WgDAWzEkngCrgiJAkQdr0=",
"ref": "refs/heads/main",
"rev": "b227fc74a6c24c8586ac0cee2e49400f3572957a",
"revCount": 43,
"type": "git",
"url": "https://git.zynh.me/Zynh0722/repo-clone"
},
"original": {
"type": "git",
"url": "https://git.zynh.me/Zynh0722/repo-clone"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
"backgrounds": "backgrounds",
"chaotic": "chaotic",
"dunst-theme": "dunst-theme",
"fish_theme": "fish_theme",
"home-manager": "home-manager_2",
"lix-module": "lix-module",
"neovim-overlay": "neovim-overlay",
"niri": "niri",
"nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs_2",
"repo-clone": "repo-clone",
"sops-nix": "sops-nix",
"umu": "umu"
}
},
"sops-nix": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": "nixpkgs-stable_2"
},
"locked": {
"lastModified": 1729999681,
"narHash": "sha256-qm0uCtM9bg97LeJTKQ8dqV/FvqRN+ompyW4GIJruLuw=",
"owner": "mic92",
"repo": "sops-nix",
"rev": "1666d16426abe79af5c47b7c0efa82fd31bf4c56",
"type": "github"
},
"original": {
"owner": "mic92",
"repo": "sops-nix",
"type": "github"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"umu": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"dir": "packaging/nix",
"lastModified": 1730836236,
"narHash": "sha256-8jrg1DQrgYVaO4hpPRxRTAVluo8cE1Lcuvyv2EXuXpA=",
"ref": "refs/heads/main",
"rev": "90352466d502c40e147cfd11a428dde6c2899ab3",
"revCount": 833,
"submodules": true,
"type": "git",
"url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"
},
"original": {
"dir": "packaging/nix",
"submodules": true,
"type": "git",
"url": "https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging/nix"
}
},
"xwayland-satellite-stable": {
"flake": false,
"locked": {
"lastModified": 1718165778,
"narHash": "sha256-dwF9nI54a6Fo9XU5s4qmvMXSgCid3YQVGxch00qEMvI=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "b6d281967cb0b7bf1dfdb8d0f597b517dc4aa5c5",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"ref": "v0.4",
"repo": "xwayland-satellite",
"type": "github"
}
},
"xwayland-satellite-unstable": {
"flake": false,
"locked": {
"lastModified": 1730258684,
"narHash": "sha256-E+69sdxUhPSNI8+JlTL6KKbNv5qVD3L1y8hdVO37A44=",
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"rev": "b0ee6db9fa9901c675b3c7e952c2a8ce987a0f58",
"type": "github"
},
"original": {
"owner": "Supreeeme",
"repo": "xwayland-satellite",
"type": "github"
}
}
},

View File

@ -1,36 +1,43 @@
{
description = "Nixos config flake";
description = "snowhawk: a nixos configuration flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
lix-module = { url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; };
neovim-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; };
home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; };
sops-nix = { url = "github:mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
dunst-theme = { url = "github:d2718nis/rose-pine-dunst"; flake = false; };
niri = { url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; };
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-darwin = { url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; };
repo-clone.url = "git+https://git.zynh.me/Zynh0722/repo-clone";
fish_theme = { url = "git+https://git.zynh.me/Zynh0722/omf-theme"; flake = false; };
backgrounds = { url = "git+https://git.zynh.me/Zynh0722/backgrounds"; inputs.nixpkgs.follows = "nixpkgs"; };
umu = { url = "git+https://github.com/Open-Wine-Components/umu-launcher/?dir=packaging\/nix&submodules=1"; inputs.nixpkgs.follows = "nixpkgs"; };
};
outputs = { self, nixpkgs, ... }@inputs:
outputs =
{ self, nixpkgs, ... }@inputs:
let
builders = import ./builders.nix inputs;
in
{
nixosConfigurations = {
snowhawk = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
system = "x86_64-linux";
modules = [
./hosts/snowhawk/hardware-configuration.nix
./configuration.nix
inputs.home-manager.nixosModules.default
nixosConfigurations = builders.compileNixosSystems [
{ hostname = "snowhawk"; }
];
};
sprite = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
system = "aarch64-linux";
modules = [
./hosts/sprite/hardware-configuration.nix
./configuration.nix
inputs.home-manager.nixosModules.default
darwinConfigurations = builders.compileDarwinSystems [
{ hostname = "little-lightning"; }
];
};
};
homeConfigurations = builders.compileHomes [
{ user = "zynh"; hostname = "msiserver"; }
{ user = "val"; hostname = "caveserver"; }
];
overlays.default = import ./pkgs;
};
}

131
home.nix
View File

@ -1,131 +0,0 @@
{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "ravenshade";
home.homeDirectory = "/home/ravenshade";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "23.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
".local/share/omf/themes/val-cat" = {
enable = true;
source = config.lib.file.mkOutOfStoreSymlink ./fish/themes/val-cat;
};
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
home.sessionVariables = {
EDITOR = "nvim";
MANPAGER = "nvim +Man!";
};
programs.fish = {
enable = true;
interactiveShellInit = ''
set -U fish_greeting
if status is-interactive
# Commands to run in interactive sessions can go here
end
function fish_user_key_bindings
# Execute this once per mode that emacs bindings should be used in
fish_default_key_bindings -M insert
# Then execute the vi-bindings so they take precedence when there's a conflict.
# Without --no-erase fish_vi_key_bindings will default to
# resetting all bindings.
# The argument specifies the initial mode (insert, "default" or visual).
fish_vi_key_bindings --no-erase insert
bind \cf 'fg 2>/dev/null; commandline -f repaint'
end
'';
};
programs.git = {
enable = true;
userName = "Zynh Ludwig";
userEmail = "zynh0722@gmail.com";
aliases = {
co = "checkout";
ci = "commit";
st = "status";
br = "branch";
hist = "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short";
type = "cat-file -t";
dump = "cat-file -p";
graph = "log --graph --decorate --pretty=oneline --abbrev-commit";
};
extraConfig = {
init.defaultBranch = "main";
core = {
editor = "nvim";
autocrlf = "input";
safecrlf = true;
};
credential = {
helper = [
"cache --timeout 7200"
"oauth"
];
"https://git.zynh.me" = {
oauthClientId = "13d5b95d-565d-4264-8961-c45cc38eaa8a";
oauthScopes = "read_repository write_repository";
oauthAuthURL = "/login/oauth/authorize";
oauthTokenURL = "/login/oauth/access_token";
};
};
};
};
# wayland.windowManager.hyprland = {
# enable = true;
# package = pkgs.hyprland;
# xwayland.enable = true;
# systemd.enable = true;
# };
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

BIN
home/audio/discord-mute.mp3 Normal file

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,213 @@
complete -c rustup -n "__fish_use_subcommand" -s v -l verbose -d 'Enable verbose output'
complete -c rustup -n "__fish_use_subcommand" -s q -l quiet -d 'Disable progress output'
complete -c rustup -n "__fish_use_subcommand" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_use_subcommand" -s V -l version -d 'Print version'
complete -c rustup -n "__fish_use_subcommand" -f -a "dump-testament" -d 'Dump information about the build'
complete -c rustup -n "__fish_use_subcommand" -f -a "show" -d 'Show the active and installed toolchains or profiles'
complete -c rustup -n "__fish_use_subcommand" -f -a "install" -d 'Update Rust toolchains'
complete -c rustup -n "__fish_use_subcommand" -f -a "uninstall" -d 'Uninstall Rust toolchains'
complete -c rustup -n "__fish_use_subcommand" -f -a "update" -d 'Update Rust toolchains and rustup'
complete -c rustup -n "__fish_use_subcommand" -f -a "check" -d 'Check for updates to Rust toolchains and rustup'
complete -c rustup -n "__fish_use_subcommand" -f -a "default" -d 'Set the default toolchain'
complete -c rustup -n "__fish_use_subcommand" -f -a "toolchain" -d 'Modify or query the installed toolchains'
complete -c rustup -n "__fish_use_subcommand" -f -a "target" -d 'Modify a toolchain\'s supported targets'
complete -c rustup -n "__fish_use_subcommand" -f -a "component" -d 'Modify a toolchain\'s installed components'
complete -c rustup -n "__fish_use_subcommand" -f -a "override" -d 'Modify toolchain overrides for directories'
complete -c rustup -n "__fish_use_subcommand" -f -a "run" -d 'Run a command with an environment configured for a given toolchain'
complete -c rustup -n "__fish_use_subcommand" -f -a "which" -d 'Display which binary will be run for a given command'
complete -c rustup -n "__fish_use_subcommand" -f -a "doc" -d 'Open the documentation for the current toolchain'
complete -c rustup -n "__fish_use_subcommand" -f -a "man" -d 'View the man page for a given command'
complete -c rustup -n "__fish_use_subcommand" -f -a "self" -d 'Modify the rustup installation'
complete -c rustup -n "__fish_use_subcommand" -f -a "set" -d 'Alter rustup settings'
complete -c rustup -n "__fish_use_subcommand" -f -a "completions" -d 'Generate tab-completion scripts for your shell'
complete -c rustup -n "__fish_use_subcommand" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from dump-testament" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -s v -l verbose -d 'Enable verbose output with rustc information for all installed toolchains'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "active-toolchain" -d 'Show the active toolchain'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "home" -d 'Display the computed value of RUSTUP_HOME'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "profile" -d 'Show the default profile used for the `rustup install` command'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from active-toolchain" -s v -l verbose -d 'Enable verbose output with rustc information'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from active-toolchain" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from home" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from profile" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "active-toolchain" -d 'Show the active toolchain'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "home" -d 'Display the computed value of RUSTUP_HOME'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "profile" -d 'Show the default profile used for the `rustup install` command'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from install" -l profile -r -f -a "{minimal '',default '',complete ''}"
complete -c rustup -n "__fish_seen_subcommand_from install" -l no-self-update -d 'Don\'t perform self-update when running the `rustup install` command'
complete -c rustup -n "__fish_seen_subcommand_from install" -l force -d 'Force an update, even if some components are missing'
complete -c rustup -n "__fish_seen_subcommand_from install" -l force-non-host -d 'Install toolchains that require an emulator. See https://github.com/rust-lang/rustup/wiki/Non-host-toolchains'
complete -c rustup -n "__fish_seen_subcommand_from install" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from update" -l no-self-update -d 'Don\'t perform self update when running the `rustup update` command'
complete -c rustup -n "__fish_seen_subcommand_from update" -l force -d 'Force an update, even if some components are missing'
complete -c rustup -n "__fish_seen_subcommand_from update" -l force-non-host -d 'Install toolchains that require an emulator. See https://github.com/rust-lang/rustup/wiki/Non-host-toolchains'
complete -c rustup -n "__fish_seen_subcommand_from update" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from check" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from default" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed toolchains'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "install" -d 'Install or update a given toolchain'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "uninstall" -d 'Uninstall a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "link" -d 'Create a custom toolchain by symlinking to a directory'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from list" -s v -l verbose -d 'Enable verbose output with toolchain information'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -l profile -r -f -a "{minimal '',default '',complete ''}"
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -s c -l component -d 'Add specific components on installation' -r
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -s t -l target -d 'Add specific targets on installation' -r
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -l no-self-update -d 'Don\'t perform self update when running the`rustup toolchain install` command'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -l force -d 'Force an update, even if some components are missing'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -l allow-downgrade -d 'Allow rustup to downgrade the toolchain to satisfy your component choice'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -l force-non-host -d 'Install toolchains that require an emulator. See https://github.com/rust-lang/rustup/wiki/Non-host-toolchains'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from uninstall" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from link" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed toolchains'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "install" -d 'Install or update a given toolchain'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "uninstall" -d 'Uninstall a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "link" -d 'Create a custom toolchain by symlinking to a directory'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed and available targets'
complete -c rustup -n "__fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "add" -d 'Add a target to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "remove" -d 'Remove a target from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from list" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from list" -l installed -d 'List only installed targets'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from add" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from add" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from remove" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from remove" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed and available targets'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "add" -d 'Add a target to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "remove" -d 'Remove a target from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed and available components'
complete -c rustup -n "__fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "add" -d 'Add a component to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "remove" -d 'Remove a component from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from list" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from list" -l installed -d 'List only installed components'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from add" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from add" -l target -r
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from add" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from remove" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from remove" -l target -r
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from remove" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed and available components'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "add" -d 'Add a component to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "remove" -d 'Remove a component from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List directory toolchain overrides'
complete -c rustup -n "__fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "set" -d 'Set the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "unset" -d 'Remove the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from set" -l path -d 'Path to the directory' -r
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from set" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from unset" -l path -d 'Path to the directory' -r
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from unset" -l nonexistent -d 'Remove override toolchain for all nonexistent directories'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from unset" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List directory toolchain overrides'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "set" -d 'Set the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "unset" -d 'Remove the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from run" -l install -d 'Install the requested toolchain if needed'
complete -c rustup -n "__fish_seen_subcommand_from run" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from which" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', \'1.8.0\', or a custom toolchain name. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from which" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from doc" -l path -d 'Only print the path to the documentation'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l alloc -d 'The Rust core allocation and collections library'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l book -d 'The Rust Programming Language book'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l cargo -d 'The Cargo Book'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l core -d 'The Rust Core Library'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l edition-guide -d 'The Rust Edition Guide'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l nomicon -d 'The Dark Arts of Advanced and Unsafe Rust Programming'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l proc_macro -d 'A support library for macro authors when defining new macros'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l reference -d 'The Rust Reference'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l rust-by-example -d 'A collection of runnable examples that illustrate various Rust concepts and standard libraries'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l rustc -d 'The compiler for the Rust programming language'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l rustdoc -d 'Documentation generator for Rust projects'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l std -d 'Standard library API documentation'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l test -d 'Support code for rustc\'s built in unit-test and micro-benchmarking framework'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l unstable-book -d 'The Unstable Book'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l embedded-book -d 'The Embedded Rust Book'
complete -c rustup -n "__fish_seen_subcommand_from doc" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from man" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from man" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "update" -d 'Download and install updates to rustup'
complete -c rustup -n "__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "uninstall" -d 'Uninstall rustup.'
complete -c rustup -n "__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "upgrade-data" -d 'Upgrade the internal data format.'
complete -c rustup -n "__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from update" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from uninstall" -s y
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from uninstall" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from upgrade-data" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "update" -d 'Download and install updates to rustup'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "uninstall" -d 'Uninstall rustup.'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "upgrade-data" -d 'Upgrade the internal data format.'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "default-host" -d 'The triple used to identify toolchains when not specified'
complete -c rustup -n "__fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "profile" -d 'The default components installed with a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "auto-self-update" -d 'The rustup auto self update mode'
complete -c rustup -n "__fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from default-host" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from profile" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from auto-self-update" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "default-host" -d 'The triple used to identify toolchains when not specified'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "profile" -d 'The default components installed with a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "auto-self-update" -d 'The rustup auto self update mode'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from completions" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "dump-testament" -d 'Dump information about the build'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "show" -d 'Show the active and installed toolchains or profiles'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "install" -d 'Update Rust toolchains'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "uninstall" -d 'Uninstall Rust toolchains'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "update" -d 'Update Rust toolchains and rustup'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "check" -d 'Check for updates to Rust toolchains and rustup'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "default" -d 'Set the default toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "toolchain" -d 'Modify or query the installed toolchains'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "target" -d 'Modify a toolchain\'s supported targets'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "component" -d 'Modify a toolchain\'s installed components'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "override" -d 'Modify toolchain overrides for directories'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "run" -d 'Run a command with an environment configured for a given toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "which" -d 'Display which binary will be run for a given command'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "doc" -d 'Open the documentation for the current toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "man" -d 'View the man page for a given command'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "self" -d 'Modify the rustup installation'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "set" -d 'Alter rustup settings'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "completions" -d 'Generate tab-completion scripts for your shell'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile" -f -a "active-toolchain" -d 'Show the active toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile" -f -a "home" -d 'Display the computed value of RUSTUP_HOME'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile" -f -a "profile" -d 'Show the default profile used for the `rustup install` command'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link" -f -a "list" -d 'List installed toolchains'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link" -f -a "install" -d 'Install or update a given toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link" -f -a "uninstall" -d 'Uninstall a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link" -f -a "link" -d 'Create a custom toolchain by symlinking to a directory'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "list" -d 'List installed and available targets'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "add" -d 'Add a target to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "remove" -d 'Remove a target from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "list" -d 'List installed and available components'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "add" -d 'Add a component to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "remove" -d 'Remove a component from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset" -f -a "list" -d 'List directory toolchain overrides'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset" -f -a "set" -d 'Set the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset" -f -a "unset" -d 'Remove the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data" -f -a "update" -d 'Download and install updates to rustup'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data" -f -a "uninstall" -d 'Uninstall rustup.'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data" -f -a "upgrade-data" -d 'Upgrade the internal data format.'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update" -f -a "default-host" -d 'The triple used to identify toolchains when not specified'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update" -f -a "profile" -d 'The default components installed with a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update" -f -a "auto-self-update" -d 'The rustup auto self update mode'

View File

@ -0,0 +1,92 @@
From 8f905b563e9dbc2d7b5f4e7c27a2614211c8953a Mon Sep 17 00:00:00 2001
From: Zynh Ludwig <zynh0722@gmail.com>
Date: Wed, 9 Oct 2024 20:12:27 -0700
Subject: [PATCH] dwm config
---
config.def.h | 34 ++++++++++++++++++++--------------
1 file changed, 20 insertions(+), 14 deletions(-)
diff --git a/config.def.h b/config.def.h
index fed4fb9..072f6bc 100644
--- a/config.def.h
+++ b/config.def.h
@@ -1,7 +1,7 @@
/* See LICENSE file for copyright and license details. */
/* appearance */
-static const unsigned int borderpx = 1; /* border pixel of windows */
+static const unsigned int borderpx = 0; /* border pixel of windows */
static const unsigned int snap = 32; /* snap pixel */
static const unsigned int systraypinning = 0; /* 0: sloppy systray follows selected monitor, >0: pin systray to monitor X */
static const unsigned int systrayonleft = 0; /* 0: systray in the right corner, >0: systray on left of status text */
@@ -10,17 +10,18 @@ static const int systraypinningfailfirst = 1; /* 1: if pinning fails, display
static const int showsystray = 1; /* 0 means no systray */
static const int showbar = 1; /* 0 means no bar */
static const int topbar = 1; /* 0 means bottom bar */
-static const char *fonts[] = { "monospace:size=10" };
-static const char dmenufont[] = "monospace:size=10";
-static const char col_gray1[] = "#222222";
-static const char col_gray2[] = "#444444";
-static const char col_gray3[] = "#bbbbbb";
-static const char col_gray4[] = "#eeeeee";
-static const char col_cyan[] = "#005577";
+static const char *fonts[] = { "JetBrainsMono Nerd Font:size=10" };
+static const char dmenufont[] = "JetBrainsMono Nerd Font:size=10";
+static const char col_text[] = "#e0def4";
+static const char col_subtle[] = "#908caa";
+static const char col_muted[] = "#6e6a86";
+static const char col_base[] = "#191724";
+static const char col_iris[] = "#c4a7e7";
+static const char col_h_low[] = "#21202e";
static const char *colors[][3] = {
/* fg bg border */
- [SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
- [SchemeSel] = { col_gray4, col_cyan, col_cyan },
+ [SchemeNorm] = { col_muted, col_h_low, col_base },
+ [SchemeSel] = { col_text, col_base, col_iris },
};
/* tagging */
@@ -33,7 +34,10 @@ static const Rule rules[] = {
*/
/* class instance title tags mask isfloating monitor */
{ "Gimp", NULL, NULL, 0, 1, -1 },
- { "Firefox", NULL, NULL, 1 << 8, 0, -1 },
+ { "discord", NULL, NULL, 1 << 1, 0, 1 },
+ { "calendar", NULL, NULL, 1 << 4, 0, 1 },
+ { "vesktop", NULL, NULL, 1 << 1, 0, 1 },
+ { "nannou", NULL, NULL, 0, 1, -1 },
};
/* layout(s) */
@@ -50,7 +54,7 @@ static const Layout layouts[] = {
};
/* key definitions */
-#define MODKEY Mod1Mask
+#define MODKEY Mod4Mask
#define TAGKEYS(KEY,TAG) \
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \
@@ -62,13 +66,15 @@ static const Layout layouts[] = {
/* commands */
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
-static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
-static const char *termcmd[] = { "st", NULL };
+static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_h_low, "-nf", col_muted, "-sb", col_base, "-sf", col_text, NULL };
+static const char *termcmd[] = { "alacritty", NULL };
+static const char *scrnshotcmd[] = { "flameshot", "gui", NULL };
static const Key keys[] = {
/* modifier key function argument */
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
{ MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
+ { ControlMask, XK_Print, spawn, {.v = scrnshotcmd } },
{ MODKEY, XK_b, togglebar, {0} },
{ MODKEY, XK_j, focusstack, {.i = +1 } },
{ MODKEY, XK_k, focusstack, {.i = -1 } },
--
2.46.0

20
home/fish/config.fish Normal file
View File

@ -0,0 +1,20 @@
set -U fish_greeting
if status is-interactive
# Commands to run in interactive sessions can go here
bind \cG lazygit
end
function fish_user_key_bindings
# Execute this once per mode that emacs bindings should be used in
fish_default_key_bindings -M insert
# Then execute the vi-bindings so they take precedence when there's a conflict.
# Without --no-erase fish_vi_key_bindings will default to
# resetting all bindings.
# The argument specifies the initial mode (insert, "default" or visual).
fish_vi_key_bindings --no-erase insert
bind \cf 'fg 2>/dev/null; commandline -f repaint'
end

View File

@ -0,0 +1,46 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.alacritty;
macos = config.snowhawk.macos.enable;
in
{
options.snowhawk.alacritty = {
enable = lib.mkEnableOption "alacritty home-manager module";
};
config = lib.mkIf cfg.enable {
programs.alacritty = {
enable = true;
settings = {
window = {
opacity = 0.98;
decorations = lib.mkIf macos "buttonless";
option_as_alt = lib.mkIf macos "Both";
};
colors = {
primary.background = "#050505";
};
font = {
size = 12.0;
normal = {
family = "JetBrainsMono Nerd Font";
style = "Regular";
};
bold = {
family = "JetBrainsMono Nerd Font";
style = "SemiBold";
};
italic = {
family = "JetBrainsMono Nerd Font";
style = "Italic";
};
bold_italic = {
family = "JetBrainsMono Nerd Font";
style = "SemiBold Italic";
};
};
};
};
};
}

View File

@ -0,0 +1,84 @@
{ pkgs, lib, config, ... }:
let
inherit (lib) mkEnableOption mkOption mkIf;
inherit (lib.attrsets) mapAttrsToList;
inherit (builtins) filter toString attrNames attrValues length;
inherit (pkgs) writeShellScript writeShellScriptBin coreutils;
cfg = config.snowhawk.brave-apps;
in
{
options.snowhawk.brave-apps = {
enable = mkEnableOption "brave-apps home-manager module";
chromium-package = mkOption {
description = ''
chromium package to use for the chromium apps
'';
type = with lib.types; package;
default = pkgs.brave;
};
apps = mkOption {
description = ''
chromium based desktop apps configuration
'';
type = with lib.types; attrsOf (submodule {
options = {
url = mkOption {
description = ''
the url to open as a chromium window
only one of `url` `urlEval` or `urlFile` may be set
'';
default = null;
type = with lib.types; nullOr str;
};
urlEval = mkOption {
description = ''
the bash script to evaluate to get url to open as chromium window. May be useful for secrets management
only one of `url` `urlEval` or `urlFile` may be set
'';
default = null;
type = with lib.types; nullOr str;
};
urlFile = mkOption {
description = ''
file to read which contains the url to open as a chromium window. May be useful for secrets management
only one of `url` `urlEval` or `urlFile` may be set
'';
default = null;
type = with lib.types; nullOr str;
};
};
});
};
};
config = mkIf cfg.enable {
home.packages =
let
evalString = s: "\$(${s})";
readFile = f: evalString "${coreutils}/bin/cat ${f}";
writeChromiumDesktopApp = name: app: writeShellScriptBin name ''
${lib.getExe cfg.chromium-package} --new-window --app=${app}
'';
in
mapAttrsToList
(n: v:
assert lib.assertMsg (length (filter (v: v != null) (attrValues v)) == 1)
"only one of `url` `urlEval` or `urlFile` may be set: ${toString n} has multiple urls set";
(writeChromiumDesktopApp n (
if v.url != null then v.url
else if v.urlEval != null then evalString v.urlEval
else if v.urlFile != null then readFile v.urlFile
else throw "grr >:( -- this should be unreachable"
)))
cfg.apps;
};
}

24
home/modules/default.nix Normal file
View File

@ -0,0 +1,24 @@
{ lib, ... }:
let
getModules = path:
let
dirEntries = builtins.removeAttrs (builtins.readDir path) [ "default.nix" ];
moduleEntries = lib.attrsets.filterAttrs (n: v: v == "regular") dirEntries;
moduleNames = builtins.attrNames moduleEntries;
modulePaths = builtins.map (name: path + /${name}) moduleNames;
in
modulePaths;
in
{
imports = getModules ./.;
snowhawk.user.enable = lib.mkDefault true;
snowhawk.tmux.enable = lib.mkDefault true;
snowhawk.tmux.sessionizer.enable = lib.mkDefault true;
snowhawk.fish.enable = lib.mkDefault true;
snowhawk.git.enable = lib.mkDefault true;
snowhawk.lazygit.enable = lib.mkDefault true;
}

17
home/modules/direnv.nix Normal file
View File

@ -0,0 +1,17 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.direnv;
in
{
options.snowhawk.direnv = {
enable = lib.mkEnableOption "direnv home-manager module";
};
config = lib.mkIf cfg.enable {
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
};
}

28
home/modules/dunst.nix Normal file
View File

@ -0,0 +1,28 @@
{ lib, pkgs, config, ... }:
let
cfg = config.snowhawk.dunst;
in
{
options.snowhawk.dunst = {
enable = lib.mkEnableOption "lazygit";
};
config = lib.mkIf cfg.enable {
services.dunst = {
enable = true;
iconTheme = {
name = "rose-pine";
package = pkgs.rose-pine-icon-theme;
};
settings = lib.mkMerge [
(import ./util/rose-pine-dunst.nix { theme = "default"; })
{
global = { offset = lib.mkForce "5x25"; };
}
];
};
# xdg.configFile."dunst/dunstrc.d/50-theme.conf".source = inputs.dunst-theme.outPath + "/rose-pine.conf";
};
}

View File

@ -0,0 +1,17 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.easyeffects;
in
{
options.snowhawk.easyeffects = {
enable = lib.mkEnableOption "easyeffects";
};
config = lib.mkIf cfg.enable {
# for easyeffects
dconf.enable = true;
services.easyeffects.enable = true;
};
}

View File

@ -0,0 +1,48 @@
{ config, lib, pkgs, ... }:
let cfg = config.snowhawk.defaultPrograms;
in {
options.snowhawk.defaultPrograms = {
enable = lib.mkEnableOption "default programs";
};
config = lib.mkIf cfg.enable {
xdg.mimeApps =
let
browser = "firefox.desktop";
browserApps = [
"application/pdf"
"application/x-extension-htm"
"application/x-extension-html"
"application/x-extension-shtml"
"application/x-extension-xht"
"application/x-extension-xhtml"
"application/xhtml+xml"
"text/html"
"x-scheme-handler/http"
"x-scheme-handler/https"
];
mimeAppsFor =
value: list:
lib.genAttrs list (name: value);
in
{
enable = true;
defaultApplications = lib.mkMerge [
(mimeAppsFor browser browserApps)
(mimeAppsFor "brave-browser.desktop" [
"x-scheme-handler/chrome"
])
];
associations.added = lib.mkMerge [
(mimeAppsFor browser browserApps)
];
};
home.sessionVariables = {
DEFAULT_BROWSER = lib.getExe pkgs.firefox;
};
};
}

44
home/modules/firefox.nix Normal file
View File

@ -0,0 +1,44 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.firefox;
in
{
options.snowhawk.firefox = {
enable = lib.mkEnableOption "firefox home-manager module";
};
config = lib.mkIf cfg.enable {
programs.firefox = {
enable = true;
package = pkgs.firefox;
profiles.default = {
isDefault = true;
path = "x56262ch.default";
userChrome = /* css */ ''
#main-window[tabsintitlebar="true"]:not([extradragspace="true"]) #TabsToolbar > .toolbar-items {
opacity: 0;
pointer-events: none;
}
#main-window:not([tabsintitlebar="true"]) #TabsToolbar {
visibility: collapse !important;
}
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
display: none;
}
#titlebar {display: none !important;}
#main-window {-moz-appearance:none !important;}
'';
};
profiles.alt = {
id = 1;
path = "05fb1no8.casualypurple";
};
};
};
}

69
home/modules/fish.nix Normal file
View File

@ -0,0 +1,69 @@
{ pkgs, inputs, config, lib, ... }:
let
cfg = config.snowhawk.fish;
macos = config.snowhawk.macos.enable;
rust = config.snowhawk.rust.enable;
in
{
options.snowhawk.fish = {
enable = lib.mkEnableOption "fish";
};
config = lib.mkIf cfg.enable {
xdg.configFile."fish/completions/rustup.fish" = {
enable = rust;
source = ../completions/rustup.fish;
};
programs.bash = lib.mkIf (!macos) {
enable = true;
initExtra = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
programs.zsh = lib.mkIf macos {
enable = true;
initExtra = ''
if [[ $(${pkgs.procps}/bin/ps $(${pkgs.procps}/bin/ps -p $$ -co "ppid=") -co "comm=") != "fish" && -z ''${ZSH_EXECUTION_STRING} ]]
then
exec ${pkgs.fish}/bin/fish
fi
'';
};
programs.fish = {
enable = true;
shellAbbrs = lib.mkIf (!macos) {
copy = "xclip -sel clip";
};
interactiveShellInit =
builtins.readFile "${inputs.fish_theme}/fish_prompt.fish" + "\n" +
builtins.readFile ../fish/config.fish;
};
home.packages = with pkgs; [
(writeShellApplication {
name = "lnmv";
runtimeInputs = [ coreutils ];
text = ''
# This is crude i know, more shell guards and stuff that I'm bad at
# Usage:
# lnmv <source> <target>
data=''${1%/}
target=''${2%/}
mv "$data" "$target"
ln -s "$target" "$data"
'';
})
];
};
}

View File

@ -0,0 +1,29 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.flameshot;
in
{
options.snowhawk.flameshot = {
enable = lib.mkEnableOption "flameshot home-manager module";
config = lib.mkOption {
type = with lib.types; attrsOf attrs;
description = "the flameshot config as an attrs of attrs";
default = {
General = {
contrastOpacity = 188;
contrastUiColor = "#8affc1";
drawColor = "#00ff00";
uiColor = "#007d96";
};
};
};
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [ flameshot ];
xdg.configFile."flameshot/flameshot.ini".text = lib.generators.toINI { } cfg.config;
};
}

94
home/modules/git.nix Normal file
View File

@ -0,0 +1,94 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.git;
macos = config.snowhawk.macos.enable;
direnv = config.snowhawk.direnv.enable;
sshifyPushUrl =
let
urlParser = "${pkgs.url-parser}/bin/url-parser";
git = "${pkgs.git}/bin/git";
cut = "${pkgs.coreutils}/bin/cut";
in
pkgs.writeShellScriptBin "sshify-push-url" ''
base=$(${urlParser} --url $(${git} remote get-url origin) host)
path=$(${urlParser} --url $(${git} remote get-url origin) path | ${cut} -b 2-)
echo "$base:$path"
'';
in
{
options.snowhawk.git = {
enable = lib.mkEnableOption "git";
oauth = lib.mkEnableOption "enable git-credential-oauth";
};
config = lib.mkIf cfg.enable {
home.packages = lib.mkIf cfg.oauth [
pkgs.git-credential-oauth
];
programs.git = {
enable = true;
userName = "Zynh Ludwig";
userEmail = "zynh0722@gmail.com";
ignores = [
"Session.vim"
(lib.mkIf macos ".DS_Store")
(lib.mkIf direnv ".direnv/")
(lib.mkIf direnv ".envrc")
];
aliases = {
co = "checkout";
ci = "commit";
st = "status";
br = "branch";
hist = "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short";
type = "cat-file -t";
dump = "cat-file -p";
graph = "log --graph --decorate --pretty=oneline --abbrev-commit";
# Convert pull url into ssh push url
sshify-push-url = ''
!${pkgs.bash}/bin/bash -c "git remote set-url --push origin $(${sshifyPushUrl}/bin/sshify-push-url)"
'';
# local patch-wise ignore workflow
unchanged = "update-index --assume-unchanged";
changed = "update-index --no-assume-unchanged";
show-unchanged = ''
!git ls-files -v | sed -e 's/^[a-z] //p; d'
'';
};
extraConfig = {
init.defaultBranch = "main";
core = {
editor = "nvim";
autocrlf = "input";
safecrlf = true;
};
pull.rebase = true;
credential = {
helper = [
"cache --timeout 7200"
(lib.mkIf cfg.oauth "oauth")
];
"https://git.zynh.me" = {
oauthClientId = "13d5b95d-565d-4264-8961-c45cc38eaa8a";
oauthScopes = "read_repository write_repository";
oauthAuthURL = "/login/oauth/authorize";
oauthTokenURL = "/login/oauth/access_token";
};
};
};
};
};
}

32
home/modules/lazygit.nix Normal file
View File

@ -0,0 +1,32 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.lazygit;
in
{
options.snowhawk.lazygit = {
enable = lib.mkEnableOption "lazygit";
};
config = lib.mkIf cfg.enable {
programs.lazygit = {
enable = true;
settings = {
customCommands = [{
# We call this the double yoinky sploinky
# https://github.com/jesseduffield/lazygit/wiki/Custom-Commands-Compendium#pushing-a-specific-commit
key = "P";
context = "commits";
loadingText = "Pushing commit";
description = "Push a specific commit (and any preceding)";
stream = "yes";
command = "git push {{.SelectedRemote.Name}} {{.SelectedLocalCommit.Sha}}:{{.SelectedLocalBranch.Name}}";
}];
services = {
"git.zynh.me" = "gitea:git.zynh.me";
"git.nullcube.net" = "gitea:git.nullcube.net";
};
};
};
};
}

7
home/modules/macos.nix Normal file
View File

@ -0,0 +1,7 @@
{ lib, ... }:
{
options.snowhawk.macos = {
enable = lib.mkEnableOption "macos";
};
}

69
home/modules/neovim.nix Normal file
View File

@ -0,0 +1,69 @@
{ pkgs, lib, config, inputs, ... }:
let
cfg = config.snowhawk.neovim;
nightlyNeovim = inputs.neovim-overlay.packages.${pkgs.system}.default;
in
{
options.snowhawk.neovim = {
enable = lib.mkEnableOption "neovim home-manager module";
nightly = lib.mkEnableOption "nightly build of neovim";
package = lib.mkOption {
type = with lib.types; package;
default = if cfg.nightly then nightlyNeovim else pkgs.neovim-unwrapped;
};
};
config =
let
nvim-treesitter = pkgs.vimPlugins.nvim-treesitter;
treesitterWithGrammars = nvim-treesitter.withPlugins (_: nvim-treesitter.allGrammars);
treesitter-parsers = pkgs.symlinkJoin {
name = "treesitter-parsers";
paths = treesitterWithGrammars.dependencies;
};
in
lib.mkIf cfg.enable {
snowhawk.repo-clone.enable = true;
repo-clone.repos = {
"${config.home.homeDirectory}/.config/nvim".url = lib.zgitRepo "nvim";
};
# Set nvim as manpager and default editor
home.sessionVariables = {
EDITOR = "nvim";
MANPAGER = "nvim +Man!";
};
xdg.configFile."nvim/lua/parsers.lua".text = /* lua */ ''
vim.opt.runtimepath:append ("${treesitter-parsers}")
'';
programs.neovim = {
enable = true;
coc.enable = false;
package = cfg.package;
withNodeJs = true;
withPython3 = true;
withRuby = true;
plugins = [
treesitterWithGrammars
];
extraPackages = with pkgs; [
nil
nixpkgs-fmt
rustup
lua-language-server
fzf
stylua
taplo
];
};
};
}

View File

@ -0,0 +1,84 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.pipewire-controller;
pipewire-controller =
let
mpv = lib.getExe pkgs.mpv;
pamixer = lib.getExe pkgs.pamixer;
in
pkgs.writers.writeRustBin "pipewire-controller" { } ''
use std::{process::Command, str};
const MUTE_AUDIO: &str = "${../audio/discord-mute.mp3}";
const UNMUTE_AUDIO: &str = "${../audio/discord-unmute.mp3}";
fn main() {
let mute_status = Command::new("${pamixer}")
.args(["--default-source", "--get-mute"])
.output()
.expect("Unable to get mute status from pamixer")
.stdout;
let mute_status = str::from_utf8(&mute_status[..]).expect("pamixer output wasn't a string").trim();
if mute_status == "false" {
Command::new("${pamixer}")
.args(["--default-source", "--mute"])
.output()
.expect("Unable to mute via pamixer");
Command::new("${mpv}")
.args(["--no-video", "--volume=80", MUTE_AUDIO])
.output()
.expect("Unable to play audio via mpv");
} else {
Command::new("${pamixer}")
.args(["--default-source", "--unmute"])
.output()
.expect("Unable to unmute via pamixer");
Command::new("${mpv}")
.args(["--no-video", "--volume=80", UNMUTE_AUDIO])
.output()
.expect("Unable to play audio via mpv");
}
let xrootdatetime_pid_raw =
Command::new("systemctl")
.args([
"--user",
"show",
"--property", "MainPID",
"--value", "xrootdatetime"
])
.output();
if let Ok(xrootdatetime_pid_raw) = xrootdatetime_pid_raw {
if let Ok(xrootdatetime_pid) = str::from_utf8(&xrootdatetime_pid_raw.stdout[..]) {
let _ = Command::new("kill")
.args([
"-s",
"SIGUSR1",
xrootdatetime_pid
])
.spawn();
}
}
}
'';
in
{
options.snowhawk.pipewire-controller = {
enable = lib.mkEnableOption "pipewire-controller home-manager module";
};
config = lib.mkIf cfg.enable {
snowhawk.sxhkd.enable = true;
services.sxhkd.keybindings = {
"XF86TouchpadOn" = "${lib.getExe pipewire-controller}";
};
};
}

View File

@ -0,0 +1,32 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.playerctl;
in
{
options.snowhawk.playerctl = {
enable = lib.mkEnableOption "playerctl";
};
config = lib.mkIf cfg.enable {
services.playerctld.enable = true;
systemd.user.services.playerctld = {
Unit.PartOf = lib.mkForce [ "graphical-session.target" ];
Install.WantedBy = lib.mkForce [ "graphical-session.target" ];
};
home.packages = with pkgs; [
playerctl
];
snowhawk.sxhkd.enable = lib.mkDefault true;
services.sxhkd.keybindings =
let playerctl = "${pkgs.playerctl}/bin/playerctl";
in {
"XF86AudioPlay" = "${playerctl} play-pause";
"XF86AudioPrev" = "${playerctl} previous";
"XF86AudioNext" = "${playerctl} next";
};
};
}

22
home/modules/projects.nix Normal file
View File

@ -0,0 +1,22 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.projects;
link = config.lib.file.mkOutOfStoreSymlink;
in
{
options.snowhawk.projects = {
enable = lib.mkEnableOption "projects";
};
config = lib.mkIf cfg.enable {
home.file.projects.source = link "${config.home.homeDirectory}/Documents/projects/";
snowhawk.tmux.sessionizer.paths =
let folder = config.home.file.projects.target;
in [
"~/${folder}"
];
};
}

42
home/modules/rbw.nix Normal file
View File

@ -0,0 +1,42 @@
{ config, lib, pkgs, ... }:
let
cfg = config.snowhawk.rbw;
rbw-fzf = pkgs.writeShellApplication {
name = "rbw-fzf";
runtimeInputs = with pkgs; [ rbw fzf perl findutils coreutils jq ];
text = /*bash*/ ''
rbw ls --fields name,user |
sort -bi |
perl -ple 's/^([^\t]*)\t([^\t]*)$/$1 ($2)/gm' |
fzf --tmux --no-sort --with-shell='bash -c' \
--preview="echo {} | perl -plE 's/^(.*) \((.*)?\)$/\"\$1\" \"\$2\"/' |
xargs rbw get --full --raw | \
jq --color-output 'if .data.password != \"\" then setpath([\"data\", \"password\"]; \"************\") else . end | del(.history) | del(.id) | walk(if type == \"object\" then map_values(. // empty) else . end)'" \
--preview-label="Vault Item" --preview-window=wrap |
perl -plE 's/^(.*) \((.*)?\)$/"$1" "$2"/' |
xargs -r rbw get |
xclip -sel copy
'';
};
inherit (lib) mkIf mkEnableOption;
in
{
options.snowhawk.rbw = {
enable = mkEnableOption "rbw home-manager module";
};
config = mkIf cfg.enable {
programs.rbw.enable = true;
home.packages =
with pkgs; [
rbw
pinentry-tty
rbw-fzf
];
};
}

47
home/modules/redshift.nix Normal file
View File

@ -0,0 +1,47 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.redshift;
cfgDir = config.xdg.configHome + "/redshift";
sops = config.snowhawk.sops.enable;
in
{
options.snowhawk.redshift = {
enable = lib.mkEnableOption "redshift home-manager module";
};
config = lib.mkIf cfg.enable {
systemd.user.services.redshift = {
Unit = {
Description = "redshift service";
PartOf = [ "graphical-session.target" ];
After = lib.mkIf sops [ "sops-nix.service" ];
};
Service = {
Type = "exec";
ExecStart =
let
catFile = file: "\$(${pkgs.coreutils}/bin/cat ${file})";
toPaths = deg: "${cfgDir}/${deg}";
fetchLatLon = lib.right
(lib.strings.concatStringsSep ":")
(map catFile)
(map toPaths)
[ "lat" "lon" ];
in
''${pkgs.bash}/bin/bash -c "${pkgs.redshift}/bin/redshift -l ${fetchLatLon}"'';
};
Install.WantedBy = [ "graphical-session.target" ];
};
sops.secrets = lib.mkIf sops {
"locations/snowhawk/lat".path = "${cfgDir}/lat";
"locations/snowhawk/lon".path = "${cfgDir}/lon";
};
home.packages = with pkgs; [
redshift
];
};
}

View File

@ -0,0 +1,25 @@
{ lib, config, inputs, ... }:
let
cfg = config.snowhawk.repo-clone;
in
{
imports = [
inputs.repo-clone.homeManagerModule
];
options.snowhawk.repo-clone = {
enable = lib.mkEnableOption "repo-clone home-manager module";
};
config = lib.mkIf cfg.enable {
systemd.user.startServices = "sd-switch";
repo-clone = {
enable = true;
repos = {
"${config.home.homeDirectory}/Pictures/backgrounds".url = lib.zgitRepo "backgrounds";
};
};
};
}

33
home/modules/rust.nix Normal file
View File

@ -0,0 +1,33 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.rust;
in
{
options.snowhawk.rust = {
enable = lib.mkEnableOption "rust home-manager module";
};
config = lib.mkIf cfg.enable {
snowhawk.direnv.enable = true;
home.packages = with pkgs; [
rustup
];
programs.bacon = {
enable = true;
settings = {
keybindings = {
esc = "back";
g = "scroll-to-top";
shift-g = "scroll-to-bottom";
k = "scroll-lines(-1)";
j = "scroll-lines(1)";
ctrl-u = "scroll-page(-1)";
ctrl-d = "scroll-page(1)";
};
};
};
};
}

28
home/modules/sops.nix Normal file
View File

@ -0,0 +1,28 @@
{ lib, config, inputs, pkgs, ... }:
let
cfg = config.snowhawk.sops;
home = config.home.homeDirectory;
in
{
imports = [
inputs.sops-nix.homeManagerModules.sops
];
options.snowhawk.sops = {
enable = lib.mkEnableOption "sops";
};
config = lib.mkIf cfg.enable {
home.packages = [
pkgs.sops
];
sops = {
age.keyFile = "${home}/.config/sops/age/keys.txt";
defaultSopsFile = ../../secrets.yaml;
validateSopsFiles = false;
};
};
}

21
home/modules/sources.nix Normal file
View File

@ -0,0 +1,21 @@
{ lib, inputs, config, ... }:
let
cfg = config.snowhawk.sources;
in
{
options.snowhawk.sources = {
enable = lib.mkEnableOption "nix sources home-manager module";
};
config = lib.mkIf cfg.enable {
home.file = {
"src/nixpkgs".source = inputs.nixpkgs;
"src/home-manager".source = inputs.home-manager;
};
snowhawk.tmux.sessionizer.paths = [
"~/src"
];
};
}

63
home/modules/ssh.nix Normal file
View File

@ -0,0 +1,63 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.ssh;
sops = config.snowhawk.sops.enable;
secrets = config.sops.secrets;
ifSops = lib.mkIf sops;
keyPathIfSops = key: ifSops secrets.${"private_keys/" + key}.path;
in
{
options.snowhawk.ssh = {
enable = lib.mkEnableOption "ssh";
homeNetwork = lib.mkEnableOption "include local hostnames for home network devices";
};
config =
let sshDir = config.home.homeDirectory + "/.ssh";
in lib.mkIf cfg.enable {
programs.ssh = {
enable = true;
includes = [ "conf.d/*" ];
matchBlocks = {
"git.zynh.me" = {
hostname = "git.zynh.me";
user = "git";
port = 2221;
identityFile = keyPathIfSops "personal_git";
};
snowhawk = {
hostname = "192.168.0.21";
user = "ravenshade";
proxyJump = "zynh@msiserver";
identityFile = keyPathIfSops "snowhawk";
};
msiserver = {
hostname = "scarlet.zynh.me";
user = "zynh";
identityFile = keyPathIfSops "msiserver";
};
"msiserver.local" = lib.mkIf cfg.homeNetwork {
hostname = "msiserver";
user = "zynh";
identityFile = keyPathIfSops "msiserver";
};
caveserver = {
identityFile = keyPathIfSops "caveserver";
};
};
};
sops.secrets = ifSops {
"private_keys/msiserver" = { };
"private_keys/caveserver" = { };
"private_keys/snowhawk" = { };
"private_keys/personal_git" = { };
"ssh_hosts/caveserver".path = "${sshDir}/conf.d/caveserver_config";
};
};
}

33
home/modules/sxhkd.nix Normal file
View File

@ -0,0 +1,33 @@
{ config, lib, pkgs, ... }:
let
cfg = config.snowhawk.sxhkd;
in
{
options.snowhawk.sxhkd = {
enable = lib.mkEnableOption "custom sxhkd home-manager module";
};
config = lib.mkIf cfg.enable {
systemd.user.services.sxhkd = {
Unit = {
Description = "sxhkd service";
PartOf = [ "graphical-session.target" ];
};
Service = {
Type = "exec";
ExecStart = "${pkgs.sxhkd}/bin/sxhkd";
};
Install.WantedBy = [ "graphical-session.target" ];
};
xdg.configFile."sxhkd/sxhkdrc".text =
lib.concatStringsSep "\n" (lib.mapAttrsToList
(hotkey: command:
lib.optionalString (command != null) ''
${hotkey}
${command}
'')
config.services.sxhkd.keybindings);
};
}

65
home/modules/theme.nix Normal file
View File

@ -0,0 +1,65 @@
{ pkgs, lib, config, ... }:
let
cfg = config.snowhawk.theme;
in
{
options.snowhawk.theme = {
enable = lib.mkEnableOption "theme";
cursor = lib.mkOption {
default = true;
example = false;
description = "enable home.pointerCursor theme";
type = lib.types.bool;
};
};
config = lib.mkIf cfg.enable {
gtk = {
enable = true;
theme = {
package = pkgs.rose-pine-gtk-theme;
name = "rose-pine";
};
iconTheme = {
package = pkgs.rose-pine-icon-theme;
name = "rose-pine-icons";
};
};
# Set system dark mode
dconf.settings = {
"org/freedesktop/appearance" = {
color-scheme = 1;
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
home.pointerCursor = lib.mkIf cfg.cursor
(
let
getFrom = url: hash: name: {
gtk.enable = true;
x11.enable = true;
name = name;
size = 16;
package =
pkgs.runCommand "moveUp" { } ''
mkdir -p $out/share/icons
ln -s ${pkgs.fetchzip {
url = url;
hash = hash;
}} $out/share/icons/${name}
'';
};
in
getFrom
"https://github.com/rose-pine/cursor/releases/download/v1.1.0/BreezeX-RosePine-Linux.tar.xz"
"sha256-t5xwAPGhuQUfGThedLsmtZEEp1Ljjo3Udhd5Ql3O67c="
"BreezeX-RosePine"
);
};
}

20
home/modules/tldr.nix Normal file
View File

@ -0,0 +1,20 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.tldr;
in
{
options.snowhawk.tldr = {
enable = lib.mkEnableOption "tldr";
};
config = lib.mkIf cfg.enable {
programs.tealdeer = {
enable = true;
settings = {
updates.auto_update = true;
};
};
};
}

View File

@ -0,0 +1,75 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) getExe;
cfg = config.snowhawk.tmux.sessionizer;
tmuxCfg = config.snowhawk.tmux;
enable = cfg.enable && tmuxCfg.enable;
tmux-sessionizer = pkgs.writeShellApplication {
name = "tmux-sessionizer";
runtimeInputs = with pkgs; [ tmux fzf findutils coreutils procps ];
text = ''
if [[ $# -eq 1 ]]; then
selected=$1
else
selected=$(find -L ${lib.concatStringsSep " " cfg.paths} -mindepth 1 -maxdepth 1 -type d \
| fzf --tmux center --preview="ls {} --color || true")
fi
if [[ -z $selected ]]; then
exit 0
fi
selected_name=$(basename "$selected" | tr . _)
tmux_running=$(pgrep tmux)
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
tmux new-session -s "$selected_name" -c "$selected"
exit 0
fi
if ! tmux has-session -t="$selected_name" 2>/dev/null; then
tmux new-session -ds "$selected_name" -c "$selected"
fi
tmux switch-client -t "$selected_name"
'';
};
in
{
options.snowhawk.tmux.sessionizer = {
enable = lib.mkEnableOption "tmux-sessionizer home-manager module";
paths = lib.mkOption {
type = with lib.types; listOf str;
description = ''
list of paths to select with tmux-sessionizer
'';
default = [ ];
example = [
"~"
"~/projects"
"~/src"
];
};
package = lib.mkOption {
type = lib.types.package;
default = tmux-sessionizer;
description = ''
tmux-sessionizer binary package
'';
};
};
config = lib.mkIf enable {
home.packages = [ cfg.package ];
programs.tmux.extraConfig = ''
bind-key -r f run-shell "tmux neww ${getExe cfg.package}"
'';
};
}

51
home/modules/tmux.nix Normal file
View File

@ -0,0 +1,51 @@
{ lib, config, pkgs, ... }:
let
inherit (lib) getExe;
cfg = config.snowhawk.tmux;
macos = config.snowhawk.macos.enable;
in
{
options.snowhawk.tmux = {
enable = lib.mkEnableOption "tmux";
};
config = lib.mkIf cfg.enable {
programs.tmux = {
enable = true;
# shell = getExe (if macos then pkgs.zsh else pkgs.fish);
shell = getExe pkgs.fish;
mouse = true;
baseIndex = 1;
terminal = "screen-256color";
newSession = true;
escapeTime = 0;
plugins = with pkgs; [
{
plugin = tmuxPlugins.rose-pine;
extraConfig = ''
set -g @rose_pine_variant 'main' # Options are 'main', 'moon' or 'dawn'
set -g @rose_pine_host 'on'
set -g @rose_pine_date_time '%c' # %c is a good value but
'';
}
{ plugin = tmuxPlugins.vim-tmux-navigator; }
];
extraConfig = ''
set-option -g renumber-windows on
set-option -g focus-events on
set-option -g terminal-features 'alacritty:RGB'
bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
'';
};
programs.fish.shellAbbrs = {
a = "tmux a";
};
};
}

32
home/modules/user.nix Normal file
View File

@ -0,0 +1,32 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.user;
in
{
options.snowhawk.user = {
enable = lib.mkEnableOption "user";
username = lib.mkOption {
default = "ravenshade";
example = "zynh";
description = "the username to use. also defines the default home folder as /home/\${username}";
type = lib.types.str;
};
};
config = lib.mkIf cfg.enable {
home.username = lib.mkDefault cfg.username;
home.homeDirectory = lib.mkDefault "/home/${cfg.username}";
home.sessionPath = [
"${config.home.homeDirectory}/.cargo/bin"
"${config.home.homeDirectory}/.dotnet/tools"
];
snowhawk.tmux.sessionizer.paths = [
"~"
"~/.config"
];
};
}

View File

@ -0,0 +1,73 @@
{ theme ? "default" }:
let
configs = {
default = {
global = { background = "#26233a"; foreground = "#e0def4"; };
urgency_low = { background = "#26273d"; highlight = "#31748f"; };
urgency_normal = { background = "#362e3c"; highlight = "#f6c177"; };
urgency_critical = { background = "#362e3c"; highlight = "#eb6f92"; };
};
moon = {
global = { background = "#393552"; foreground = "#e0def4"; };
urgency_low = { background = "#393955"; highlight = "#3e8fb0"; };
urgency_normal = { background = "#443c53"; highlight = "#f6c177"; };
urgency_critical = { background = "#433754"; highlight = "#eb6f92"; };
};
dawn = {
global = { background = "#f2e9e1"; foreground = "#393552"; };
urgency_low = { background = "#e7e0da"; highlight = "#286983"; };
urgency_normal = { background = "#3e8fb0"; highlight = "#ea9d34"; };
urgency_critical = { background = "#ede0d9"; highlight = "#b4637a"; };
};
};
formatWithColor = color: "<b><span foreground='${color}'>%s</span></b>\n%b";
getConfig = name:
if name == "moon" then configs.moon
else if name == "dawn" then configs.dawn
else configs.default;
selectedConfig = getConfig theme;
urgencyIcons = {
urgency_low = "dialog-information";
urgency_normal = "dialog-warning";
urgency_critical = "dialog-error";
};
urgencyColors =
builtins.listToAttrs (map
(urgency: {
name = urgency;
value = rec {
inherit (selectedConfig.${urgency}) background highlight;
frame_color = highlight;
default_icon = urgencyIcons.${urgency};
format = formatWithColor highlight;
};
})
[ "urgency_low" "urgency_normal" "urgency_critical" ]);
in
{
global = {
width = 400;
offset = "5x5";
progress_bar_min_width = 380;
progress_bar_max_width = 380;
progress_bar_corner_radius = 2;
padding = 10;
horizontal_padding = 10;
frame_width = 1;
gap_size = 3;
font = "Monospace 14";
icon_theme = "rose-pine-icons";
enable_recursive_icon_lookup = true;
corner_radius = 2;
} // selectedConfig.global;
} // urgencyColors

View File

@ -0,0 +1,31 @@
{ config, lib, pkgs, ... }:
let
cfg = config.snowhawk.xivlauncher;
in
{
options.snowhawk.xivlauncher = {
enable = lib.mkEnableOption "xivlauncher home-manager module";
textools.enable = lib.mkEnableOption "TexTools wine application";
};
config =
let launchffxiv = "${pkgs.xivlauncher}/bin/XIVLauncher.Core";
in lib.mkIf cfg.enable {
home.packages = with pkgs; [
xivlauncher
fflogs
(writeShellScriptBin "iinact" ''
${pkgs.brave}/bin/brave --new-window "http://proxy.iinact.com/overlay/skyline/?OVERLAY_WS=ws://127.0.0.1:10501/ws"
'')
# (lib.mkIf cfg.textools.enable pkgs.wrapWine {
# # https://gist.github.com/helpful-fox-senko-san/6238143f5c7352ab44e62c5a0f7f7642
# name = "textools";
# tricks = [ "dotnet48" "dxvk" ];
# })
] ++ map (name: (writeShellScriptBin name launchffxiv)) [ "ff14" "xivlauncher" ];
};
}

30
hosts/caveserver/home.nix Normal file
View File

@ -0,0 +1,30 @@
{ pkgs, inputs, ... }:
{
imports = [
../../home/modules
];
snowhawk.neovim = {
enable = true;
package = inputs.neovim-overlay.packages.${pkgs.system}.default;
};
snowhawk.ssh.enable = true;
snowhawk.user.username = "val";
home.packages = with pkgs; [
nix-output-monitor
(writeShellScriptBin "rebuild" ''
home-manager switch -v |& nom
'')
go
rustup
fzf
];
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "23.11";
}

View File

@ -0,0 +1,70 @@
{ pkgs, lib, self, ... }: {
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = [ ];
nix.settings = {
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
};
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
# Enable alternative shell support in nix-darwin.
# programs.fish.enable = true;
services.yabai =
let
gap = 10;
gapListParts = builtins.map
(x: lib.attrsets.nameValuePair (x + "_padding") gap)
[ "top" "bottom" "left" "right" ];
gapSettings = (builtins.listToAttrs gapListParts) // { window_gap = gap; };
in
{
enable = true;
enableScriptingAddition = true;
config = {
layout = "bsp";
window_shadow = "float";
mouse_modifier = "fn";
mouse_action1 = "move";
mouse_action2 = "resize";
focus_follows_mouse = "autoraise";
mouse_follows_focus = "off";
window_topmost = "off";
} // gapSettings;
extraConfig = ''
yabai -m rule --add app="^System Settings$" manage=off
yabai -m rule --add app="Python" manage=off
yabai -m rule --add app="macroquad_playground" manage=off
yabai -m rule --add app="^coreautha$" manage=off
'';
};
home-manager.sharedModules = [
{
home.file.".config/yabai/yabaiExe".source = lib.getExe pkgs.yabai;
home.packages = with pkgs; [ yabai ];
}
];
users.users.zynh = {
name = "zynh";
home = "/Users/zynh";
};
home-manager = {
users = { "zynh" = import ./home.nix; };
backupFileExtension = "backup";
};
# Set Git commit hash for darwin-version.
system.configurationRevision = self.rev or self.dirtyRev or null;
# $ darwin-rebuild changelog
system.stateVersion = 5;
}

View File

@ -0,0 +1,46 @@
{ pkgs, lib, ... }:
{
imports = [
../../home/modules
];
snowhawk = {
alacritty.enable = true;
macos.enable = true;
sources.enable = true;
projects.enable = true;
ssh = {
enable = true;
homeNetwork = true;
};
neovim.enable = true;
sops.enable = true;
};
programs.alacritty.settings = {
font.size = lib.mkForce 16.0;
window.opacity = lib.mkForce 0.94;
colors.primary.background = lib.mkForce "#171717";
};
home.username = "zynh";
home.homeDirectory = "/Users/zynh";
home.packages = with pkgs; [
nix-output-monitor
(writeShellScriptBin "rebuild" ''
darwin-rebuild switch --flake ~/nixos#little-lightning |& nom
'')
wakeonlan
go
rustup
fzf
];
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "23.11";
}

30
hosts/msiserver/home.nix Normal file
View File

@ -0,0 +1,30 @@
{ pkgs, inputs, ... }:
{
imports = [
../../home/modules
];
snowhawk.neovim = {
enable = true;
package = inputs.neovim-overlay.packages.${pkgs.system}.default;
};
snowhawk.ssh.enable = true;
snowhawk.sops.enable = true;
snowhawk.user.username = "zynh";
home.packages = with pkgs; [
nix-output-monitor
(writeShellScriptBin "rebuild" ''
home-manager switch -v |& nom
'')
go
wakeonlan
];
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "23.11";
}

View File

@ -0,0 +1,95 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running `nixos-help`).
{ pkgs, inputs, lib, config, ... }:
{
imports = [
inputs.home-manager.nixosModules.default
../../modules
# Default specialisation
({ lib, config, ... }: {
config = lib.mkIf (config.specialisation != { }) {
snowhawk.dwm.enable = true;
home-manager.sharedModules = [{ snowhawk.dunst.enable = lib.mkDefault true; }];
};
})
];
specialisation =
let
nvkConfig = {
system.nixos.tags = [ "nouveau-drivers" ];
boot.kernelParams = [ "nouveau.config=NvGspRm=1" ];
services.xserver.videoDrivers = (lib.lists.remove "nvidia" config.services.xserver.videoDrivers);
};
in
{
dwmNVK.configuration = {
snowhawk.dwm.enable = true;
home-manager.sharedModules = [{ snowhawk.dunst.enable = lib.mkDefault true; }];
} // nvkConfig;
dwl.configuration = {
snowhawk.dwl.enable = true;
home-manager.sharedModules = [{ snowhawk.dunst.enable = lib.mkDefault true; }];
};
dwlNVK.configuration = {
snowhawk.dwl.enable = true;
home-manager.sharedModules = [{ snowhawk.dunst.enable = lib.mkDefault true; }];
} // nvkConfig;
};
snowhawk = {
filesystem.enable = true;
plymouth.enable = true;
polkit.enable = true;
syncthing.enable = true;
user.enable = true;
wake-on-lan.enable = true;
};
# Enable automatic login for the user.
services.displayManager.autoLogin = {
enable = true;
user = "ravenshade";
};
home-manager = {
users = { "ravenshade" = import ./home.nix; };
backupFileExtension = "backup";
useGlobalPkgs = true;
};
environment.systemPackages = with pkgs; [
neovim
curl
git
killall
];
fonts.packages = with pkgs; [
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
];
# Enable CUPS to print documents.
services.printing.enable = true;
hardware.keyboard.uhk.enable = true;
# I think I need a gtk theme? gnome-keyring
qt.platformTheme = "gtk2";
# Set your time zone.
time.timeZone = "America/Los_Angeles";
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment?
}

View File

@ -1,5 +1,40 @@
{ config, lib, pkgs, modulesPath, ... }:
let
default-monitors = pkgs.writeXrandrScriptBin "default-monitors" {
DP-0 = {
primary = true;
mode = "1920x1080";
pos = "1920x0";
rotate = "normal";
};
HDMI-0 = {
mode = "1920x1080";
pos = "0x0";
rotate = "normal";
};
};
tv-on = pkgs.writeXrandrScriptBin "tv-on" {
DP-0 = {
primary = true;
mode = "1920x1080";
pos = "1920x1080";
rotate = "normal";
};
HDMI-0 = {
mode = "1920x1080";
pos = "0x1080";
rotate = "normal";
};
HDMI-1 = {
mode = "1920x1080";
pos = "1920x0";
rotate = "normal";
};
};
in
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
@ -8,20 +43,112 @@
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{
fileSystems."/" = {
device = "/dev/disk/by-uuid/8c377115-06bb-488e-a531-c668dac127f6";
fsType = "ext4";
};
fileSystems."/boot" =
{
device = "/dev/disk/by-uuid/1A0A-CEB2";
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/0499-9841";
fsType = "vfat";
};
fileSystems."/data" = {
device = "/dev/disk/by-uuid/00a7093a-49ee-41e4-baec-99d8a322a530";
fsType = "ext4";
};
fileSystems."/home/ravenshade" = {
device = "/dev/disk/by-uuid/9451621e-00ce-4ea3-99b7-8f2753e51665";
fsType = "ext4";
};
fileSystems."/archive" = {
device = "/dev/disk/by-uuid/d5a23b72-9982-49ab-a3a6-c297c0537cba";
fsType = "ext4";
};
# Enable OpenGL
hardware.graphics = {
enable = true;
enable32Bit = true;
};
# Load nvidia driver for Xorg and Wayland
services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ];
services.xserver.dpi = lib.mkDefault 96;
environment.systemPackages = [
default-monitors
tv-on
];
systemd.user.services.screenlayout = {
script = lib.getExe default-monitors;
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
};
hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = true;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
# Currently alpha-quality/buggy, so false is currently the recommended setting.
open = true;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
forceFullCompositionPipeline = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.beta;
};
hardware.bluetooth.enable = true;
swapDevices = [ ];
# Bootloader.
boot.loader.grub = {
enable = true;
efiSupport = true;
device = "nodev";
theme = pkgs.rose-pine-grub;
extraEntries = ''
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root 1A0A-CEB2
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
'';
};
boot.loader.efi.canTouchEfiVariables = true;
# Enable networking
networking.networkmanager.enable = true;
networking.hostName = "snowhawk";
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

142
hosts/snowhawk/home.nix Normal file
View File

@ -0,0 +1,142 @@
{ pkgs, config, inputs, ... }:
{
imports = [
../../home/modules
];
snowhawk = {
# Desktop
firefox.enable = true;
dunst.enable = true;
theme.enable = true;
redshift.enable = true;
flameshot.enable = true;
playerctl.enable = true;
alacritty.enable = true;
defaultPrograms.enable = true;
pipewire-controller.enable = true;
# Games
xivlauncher.enable = true;
# Term Tools
neovim.enable = true;
tldr.enable = true;
# Dev
rust.enable = true;
projects.enable = true;
sources.enable = true;
# Security
sops.enable = true;
rbw.enable = true;
};
sops.secrets."app_urls/nh_slack" = { };
snowhawk.brave-apps = {
enable = true;
apps = {
github.url = "https://github.com";
zgit.url = "https://git.zynh.me";
gmail.url = "https://mail.google.com/mail/u/0";
calendar.url = "https://calendar.google.com/calendar/u/0/r";
slack_nh.urlFile = config.sops.secrets."app_urls/nh_slack".path;
};
};
snowhawk.ssh = {
enable = true;
homeNetwork = true;
};
snowhawk.tmux.sessionizer.paths = [
"~/obsidian"
];
home.packages = with pkgs; let
umu = inputs.umu.packages.${pkgs.system}.umu.override { version = "${inputs.umu.shortRev}"; };
in
[
umu
lutris
(writeShellScriptBin "battlenet" ''
export WINEARCH=win64
export WINEPREFIX=$HOME/.wine-battlenet
wine64 ~/.wine-battlenet/drive_c/Program\ Files\ \(x86\)/Battle.net/Battle.net\ Launcher.exe
'')
(wineWowPackages.full.override {
wineRelease = "staging";
mingwSupport = true;
})
winetricks
r2modman
(writeShellScriptBin "fix-desktop" ''
systemctl --user restart xrootdatetime.service
systemctl --user restart fehbg.service
'')
ripgrep
unzip
fzf
tree
gparted
arandr
brave
spotify
vesktop
(writeShellScriptBin "discord" ''
${lib.getExe vesktop} $@
'')
steam-run
nix-output-monitor
(writeShellScriptBin "rebuild" ''
nixos-rebuild switch --log-format internal-json -v $@ |& nom --json
'')
(writeShellScriptBin "alt-firefox" ''
${lib.getExe pkgs.firefox} -P "alt"
'')
(writeShellScriptBin "suspend" ''
systemctl suspend
'')
feh
imagemagick
uhk-agent
pulsemixer
obsidian
steam
# Build Tools
gnumake
zig
gcc
go
python3
nodejs_22
dotnet-sdk_8
qdirstat
pcmanfm
geeqie
];
programs.nix-index.enable = true;
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "23.11";
}

View File

@ -1,34 +0,0 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
boot.initrd.availableKernelModules = [ "xhci_pci" "virtio_pci" "usbhid" "usb_storage" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{
device = "/dev/disk/by-uuid/fa4ed906-f26b-40ec-859c-81813151c33a";
fsType = "ext4";
};
fileSystems."/boot" =
{
device = "/dev/disk/by-uuid/31B8-8850";
fsType = "vfat";
};
swapDevices = [ ];
networking.hostName = "sprite";
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
}

25
lib/default.nix Normal file
View File

@ -0,0 +1,25 @@
final: prev:
let
inherit (prev) isFunction mkMerge mkIf;
in
rec {
# Ternary operator
# Exaample:
# tern false 1 2 => 2
# tern true 1 2 => 1
tern = pred: x: y: if pred then x else y;
# Right-associate and chain following single-operand functions
# Example:
# right f g h 1 => f(g(h(1)))
right = f: g: tern (isFunction g)
(right (x: f (g (x))))
(f (g));
mkIfElse = predicate: yes: no: mkMerge [
(mkIf predicate yes)
(mkIf (!predicate) no)
];
zgitRepo = name: "https://git.zynh.me/Zynh0722/${name}.git";
}

24
modules/audio.nix Normal file
View File

@ -0,0 +1,24 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.audio;
in
{
options.snowhawk.audio = {
enable = lib.mkEnableOption "audio";
};
config = lib.mkIf cfg.enable {
# Enable sound with pipewire.
hardware.pulseaudio.enable = false;
hardware.pulseaudio.extraModules = [ pkgs.pulseaudio-modules-bt ];
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
};
}

19
modules/default.nix Normal file
View File

@ -0,0 +1,19 @@
{ lib, ... }:
let
dirEntries = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
moduleEntries = lib.attrsets.filterAttrs (n: v: v == "regular") dirEntries;
moduleNames = builtins.attrNames moduleEntries;
modulePaths = builtins.map (name: ./${name}) moduleNames;
in
{
imports = modulePaths;
snowhawk.i18n.enable = lib.mkDefault true;
snowhawk.audio.enable = lib.mkDefault true;
snowhawk.env.enable = lib.mkDefault true;
snowhawk.network.enable = lib.mkDefault true;
snowhawk.sops.enable = lib.mkDefault true;
snowhawk.power-button.enable = lib.mkDefault true;
}

59
modules/dwl.nix Normal file
View File

@ -0,0 +1,59 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.dwl;
in
{
options.snowhawk.dwl = {
enable = lib.mkEnableOption "dwl";
package = lib.mkOption {
type = with lib.types; package;
default = pkgs.dwl;
apply = p: p.overrideAttrs {
postInstall = ''
mkdir -p $out/share/wayland-sessions
install $src/dwl.desktop -Dt $out/share/wayland-sessions
'';
passthru.providedSessions = [ "dwl" ];
};
};
};
config = lib.mkIf cfg.enable {
services.graphical-desktop.enable = lib.mkDefault true;
services.displayManager.sessionPackages = [ cfg.package ];
services.displayManager.defaultSession = "dwl";
security = {
polkit.enable = lib.mkDefault true;
# Uncomment to make swaylock work
# pam.services.swaylock = { };
};
environment.sessionVariables.NIXOS_OZONE_WL = "1";
programs = {
dconf.enable = lib.mkDefault true;
xwayland.enable = lib.mkDefault true;
};
xdg.portal.wlr.enable = lib.mkDefault true;
xdg.portal.extraPortals = [
pkgs.xdg-desktop-portal-gtk
];
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
xdg.portal.config.dwl.default = lib.mkDefault [ "wlr" "gtk" ];
services.xserver.desktopManager.runXdgAutostartIfNone = lib.mkDefault true;
environment.systemPackages = with pkgs; [
wl-clipboard
wmenu
foot
cfg.package
];
};
}

99
modules/dwm.nix Normal file
View File

@ -0,0 +1,99 @@
{ lib, config, pkgs, inputs, ... }:
let
inherit (pkgs) fetchpatch;
inherit (lib) getExe;
cfg = config.snowhawk.dwm;
in
{
options.snowhawk.dwm = {
enable = lib.mkEnableOption "dwm";
};
config = lib.mkIf cfg.enable {
# Enable the X11 windowing system.
services.xserver.enable = true;
# Configure keymap in X11
services.xserver = {
xkb = {
layout = "us";
variant = "";
};
};
services.xserver.windowManager.dwm = {
enable = true;
package = pkgs.dwm.overrideAttrs (oldAttrs: {
patches = [
# Systray patch
(fetchpatch {
url = "https://dwm.suckless.org/patches/systray/dwm-systray-20230922-9f88553.diff";
hash = "sha256-Kh1aP1xgZAREjTy7Xz48YBo3rhrJngspUYwBU2Gyw7k=";
})
../home/dwm/config.def.h-6.5.diff
];
});
};
services.picom = {
enable = true;
fade = false;
};
systemd.user.services.xrootdatetime = {
script =
let
pamixer = getExe pkgs.pamixer;
xsetroot = getExe pkgs.xorg.xsetroot;
in
/* bash */ ''
function update_x_root() {
set +e # allow errors
mute="$(${pamixer} --default-source --get-mute)"
set -e # disallow errors
if [[ "$mute" == "true" ]]; then
mutedString="Mic Muted "
else
mutedString=""
fi
dateTime=$(date +"<-- %A, %B %d -- %H:%M -->")
${xsetroot} -name "$mutedString$dateTime"
}
trap update_x_root SIGUSR1
while true; do
sleep 1 &
wait
update_x_root
done
'';
wantedBy = [ "graphical-session.target" ];
after = [ "pipewire.service" ];
serviceConfig.Restart = "on-failure";
};
systemd.user.services.fehbg = {
script = ''
${getExe pkgs.feh} --no-fehbg --bg-scale '${inputs.backgrounds}/bg-none-nord.webp'
'';
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
};
environment.systemPackages = with pkgs; [
dmenu
xclip
];
home-manager.sharedModules = [
./home/dwm.nix
{ snowhawk.dwm.enable = lib.mkDefault true; }
];
};
}

17
modules/env.nix Normal file
View File

@ -0,0 +1,17 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.env;
in
{
options.snowhawk.env = {
enable = lib.mkEnableOption "env";
};
config = lib.mkIf cfg.enable {
nix.settings = {
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
};
};
}

26
modules/filesystem.nix Normal file
View File

@ -0,0 +1,26 @@
{ config, lib, ... }:
# This module provides some filesystem functionality I expect to work out of the box
let
cfg = config.snowhawk.filesystem;
in
{
options.snowhawk.filesystem = {
enable = lib.mkEnableOption "filesystem nixos module";
};
config = lib.mkIf cfg.enable {
# Building nixos without this uses a ton of disk
# Needs to be disabled on low memory systems
boot.tmp.useTmpfs = true;
# This makes shebangs work
services.envfs.enable = true;
# So many things break without this
programs.dconf.enable = true;
# Enable trash:/// support
services.gvfs.enable = true;
};
}

View File

@ -0,0 +1,25 @@
# Yoink https://github.com/thomX75/nixos-modules/blob/56fd73011f022e7c85bd7a40812663c5933106f9/Glib-Schemas-Fix/glib-schemas-fix.nix
# Glib Schemas Fix
# https://github.com/thomX75/nixos-modules
{ config, pkgs, lib, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.glib-schemas-fix;
in
{
options.snowhawk.glib-schemas-fix = {
enable = mkEnableOption "glib-schemas-fix nixos module";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ gtk3 ];
environment.variables = {
GSETTINGS_SCHEMA_DIR = "${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}/glib-2.0/schemas";
};
};
}

33
modules/home/dwm.nix Normal file
View File

@ -0,0 +1,33 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.dwm;
in
{
options.snowhawk.dwm = {
enable = mkEnableOption "niri home-manager module";
useXFixes = mkEnableOption "using unclutter-xfixes instead of unclutter";
};
config = mkIf cfg.enable {
# WM Stuff
xsession.numlock.enable = true;
services.unclutter = {
enable = true;
package = if cfg.useXFixes then pkgs.unclutter-xfixes else pkgs.unclutter;
};
systemd.user.services.unclutter.Service.ExecStart =
let cfg = config.services.unclutter;
in lib.mkForce ''
${cfg.package}/bin/unclutter \
--timeout ${toString cfg.timeout} \
--jitter ${toString (cfg.threshold - 1)} \
${lib.concatStrings cfg.extraOptions}
'';
};
}

263
modules/home/niri.nix Normal file
View File

@ -0,0 +1,263 @@
{ config, lib, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.niri;
in
{
options.snowhawk.niri = {
enable = mkEnableOption "niri home-manager module";
};
config = mkIf cfg.enable {
programs.niri.settings = {
environment = {
DISPLAY = ":0";
};
binds = {
# Keys consist of modifiers separated by + signs, followed by an XKB key name
# in the end. To find an XKB name for a particular key, you may use a program
# like wev.
#
# "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
# when running as a winit window.
#
# Most actions that you can bind here can also be invoked programmatically with
# `niri msg action do-something`.
# Mod-Shift-/, which is usually the same as Mod-?,
# shows a list of important hotkeys.
"Mod+Shift+Slash".action.show-hotkey-overlay = { };
# Suggested binds for running programs: terminal, app launcher, screen locker.
"Mod+T".action.spawn = "alacritty";
"Mod+D".action.spawn = "fuzzel";
"Super+Alt+L".action.spawn = "swaylock";
# You can also use a shell. Do this if you need pipes, multiple commands, etc.
# Note: the entire command goes as a single argument in the end.
# Mod+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; }
# Example volume keys mappings for PipeWire & WirePlumber.
# The allow-when-locked=true property makes them work even when the session is locked.
"XF86AudioRaiseVolume" = {
allow-when-locked = true;
action.spawn = [ "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+" ];
};
"XF86AudioLowerVolume" = {
allow-when-locked = true;
action.spawn = [ "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-" ];
};
"XF86AudioMute" = {
allow-when-locked = true;
action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle" ];
};
"XF86AudioMicMute" = {
allow-when-locked = true;
action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle" ];
};
"Mod+Q".action.close-window = { };
"Mod+Left".action.focus-column-left = { };
"Mod+Down".action.focus-window-down = { };
"Mod+Up".action.focus-window-up = { };
"Mod+Right".action.focus-column-right = { };
"Mod+H".action.focus-column-left = { };
"Mod+J".action.focus-window-down = { };
"Mod+K".action.focus-window-up = { };
"Mod+L".action.focus-column-right = { };
"Mod+Ctrl+Left".action.move-column-left = { };
"Mod+Ctrl+Down".action.move-window-down = { };
"Mod+Ctrl+Up".action.move-window-up = { };
"Mod+Ctrl+Right".action.move-column-right = { };
"Mod+Ctrl+H".action.move-column-left = { };
"Mod+Ctrl+J".action.move-window-down = { };
"Mod+Ctrl+K".action.move-window-up = { };
"Mod+Ctrl+L".action.move-column-right = { };
# Alternative commands that move across workspaces when reaching
# the first or last window in a column.
# Mod+J { focus-window-or-workspace-down; }
# Mod+K { focus-window-or-workspace-up; }
# Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
# Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
"Mod+Home".action.focus-column-first = { };
"Mod+End".action.focus-column-last = { };
"Mod+Ctrl+Home".action.move-column-to-first = { };
"Mod+Ctrl+End".action.move-column-to-last = { };
"Mod+Shift+Left".action.focus-monitor-left = { };
"Mod+Shift+Down".action.focus-monitor-down = { };
"Mod+Shift+Up".action.focus-monitor-up = { };
"Mod+Shift+Right".action.focus-monitor-right = { };
"Mod+Shift+H".action.focus-monitor-left = { };
"Mod+Shift+J".action.focus-monitor-down = { };
"Mod+Shift+K".action.focus-monitor-up = { };
"Mod+Shift+L".action.focus-monitor-right = { };
"Mod+Shift+Ctrl+Left".action.move-column-to-monitor-left = { };
"Mod+Shift+Ctrl+Down".action.move-column-to-monitor-down = { };
"Mod+Shift+Ctrl+Up".action.move-column-to-monitor-up = { };
"Mod+Shift+Ctrl+Right".action.move-column-to-monitor-right = { };
"Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = { };
"Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = { };
"Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = { };
"Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = { };
# Alternatively, there are commands to move just a single window:
# Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
# ...
# And you can also move a whole workspace to another monitor:
# Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
# ...
"Mod+Page_Down".action.focus-workspace-down = { };
"Mod+Page_Up".action.focus-workspace-up = { };
"Mod+U".action.focus-workspace-down = { };
"Mod+I".action.focus-workspace-up = { };
"Mod+Ctrl+Page_Down".action.move-column-to-workspace-down = { };
"Mod+Ctrl+Page_Up".action.move-column-to-workspace-up = { };
"Mod+Ctrl+U".action.move-column-to-workspace-down = { };
"Mod+Ctrl+I".action.move-column-to-workspace-up = { };
# Alternatively, there are commands to move just a single window:
# Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
# ...
"Mod+Shift+Page_Down".action.move-workspace-down = { };
"Mod+Shift+Page_Up".action.move-workspace-up = { };
"Mod+Shift+U".action.move-workspace-down = { };
"Mod+Shift+I".action.move-workspace-up = { };
# You can bind mouse wheel scroll ticks using the following syntax.
# These binds will change direction based on the natural-scroll setting.
#
# To avoid scrolling through workspaces really fast, you can use
# the cooldown-ms property. The bind will be rate-limited to this value.
# You can set a cooldown on any bind, but it's most useful for the wheel.
"Mod+WheelScrollDown" = {
cooldown-ms = 150;
action.focus-workspace-down = { };
};
"Mod+WheelScrollUp" = {
cooldown-ms = 150;
action.focus-workspace-up = { };
};
"Mod+Ctrl+WheelScrollDown" = {
cooldown-ms = 150;
action.move-column-to-workspace-down = { };
};
"Mod+Ctrl+WheelScrollUp" = {
cooldown-ms = 150;
action.move-column-to-workspace-up = { };
};
"Mod+WheelScrollRight".action.focus-column-right = { };
"Mod+WheelScrollLeft".action.focus-column-left = { };
"Mod+Ctrl+WheelScrollRight".action.move-column-right = { };
"Mod+Ctrl+WheelScrollLeft".action.move-column-left = { };
# Usually scrolling up and down with Shift in applications results in
# horizontal scrolling; these binds replicate that.
"Mod+Shift+WheelScrollDown".action.focus-column-right = { };
"Mod+Shift+WheelScrollUp".action.focus-column-left = { };
"Mod+Ctrl+Shift+WheelScrollDown".action.move-column-right = { };
"Mod+Ctrl+Shift+WheelScrollUp".action.move-column-left = { };
# Similarly, you can bind touchpad scroll "ticks".
# Touchpad scrolling is continuous, so for these binds it is split into
# discrete intervals.
# These binds are also affected by touchpad's natural-scroll, so these
# example binds are "inverted", since we have natural-scroll enabled for
# touchpads by default.
# Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; }
# Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; }
# You can refer to workspaces by index. However, keep in mind that
# niri is a dynamic workspace system, so these commands are kind of
# "best effort". Trying to refer to a workspace index bigger than
# the current workspace count will instead refer to the bottommost
# (empty) workspace.
#
# For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
# will all refer to the 3rd workspace.
"Mod+1".action.focus-workspace = 1;
"Mod+2".action.focus-workspace = 2;
"Mod+3".action.focus-workspace = 3;
"Mod+4".action.focus-workspace = 4;
"Mod+5".action.focus-workspace = 5;
"Mod+6".action.focus-workspace = 6;
"Mod+7".action.focus-workspace = 7;
"Mod+8".action.focus-workspace = 8;
"Mod+9".action.focus-workspace = 9;
"Mod+Ctrl+1".action.move-column-to-workspace = 1;
"Mod+Ctrl+2".action.move-column-to-workspace = 2;
"Mod+Ctrl+3".action.move-column-to-workspace = 3;
"Mod+Ctrl+4".action.move-column-to-workspace = 4;
"Mod+Ctrl+5".action.move-column-to-workspace = 5;
"Mod+Ctrl+6".action.move-column-to-workspace = 6;
"Mod+Ctrl+7".action.move-column-to-workspace = 7;
"Mod+Ctrl+8".action.move-column-to-workspace = 8;
"Mod+Ctrl+9".action.move-column-to-workspace = 9;
# Alternatively, there are commands to move just a single window:
# Mod+Ctrl+1 { move-window-to-workspace 1; }
# Switches focus between the current and the previous workspace.
# Mod+Tab { focus-workspace-previous; }
"Mod+Comma".action.consume-window-into-column = { };
"Mod+Period".action.expel-window-from-column = { };
# There are also commands that consume or expel a single window to the side.
# Mod+BracketLeft { consume-or-expel-window-left; }
# Mod+BracketRight { consume-or-expel-window-right; }
"Mod+R".action.switch-preset-column-width = { };
"Mod+Shift+R".action.reset-window-height = { };
"Mod+F".action.maximize-column = { };
"Mod+Shift+F".action.fullscreen-window = { };
"Mod+C".action.center-column = { };
# Finer width adjustments.
# This command can also:
# * set width in pixels: "1000"
# * adjust width in pixels: "-5" or "+5"
# * set width as a percentage of screen width: "25%"
# * adjust width as a percentage of screen width: "-10%" or "+10%"
# Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
# set-column-width "100" will make the column occupy 200 physical screen pixels.
"Mod+Minus".action.set-column-width = "-10%";
"Mod+Equal".action.set-column-width = "+10%";
# Finer height adjustments when in column with other windows.
"Mod+Shift+Minus".action.set-window-height = "-10%";
"Mod+Shift+Equal".action.set-window-height = "+10%";
# Actions to switch layouts.
# Note: if you uncomment these, make sure you do NOT have
# a matching layout switch hotkey configured in xkb options above.
# Having both at once on the same hotkey will break the switching,
# since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
# Mod+Space { switch-layout "next"; }
# Mod+Shift+Space { switch-layout "prev"; }
"Print".action.screenshot = { };
"Ctrl+Print".action.screenshot-screen = { };
"Alt+Print".action.screenshot-window = { };
# The quit action will show a confirmation dialog to avoid accidental exits.
"Mod+Shift+E".action.quit = { };
# Powers off the monitors. To turn them back on, do any input like
# moving the mouse or pressing any other key.
"Mod+Shift+P".action.power-off-monitors = { };
};
};
};
}

27
modules/i18n.nix Normal file
View File

@ -0,0 +1,27 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.i18n;
in
{
options.snowhawk.i18n = {
enable = lib.mkEnableOption "i18n";
};
config = lib.mkIf cfg.enable {
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
};
}

23
modules/network.nix Normal file
View File

@ -0,0 +1,23 @@
{ config, lib, ... }:
let
cfg = config.snowhawk.network;
in
{
options.snowhawk.network = {
enable = lib.mkEnableOption "network nixos module";
};
config = lib.mkIf cfg.enable {
# Enable the OpenSSH daemon.
services.openssh.enable = true;
services.openssh.openFirewall = true;
services.avahi.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
};
}

30
modules/niri.nix Normal file
View File

@ -0,0 +1,30 @@
{ config, lib, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.niri;
in
{
options.snowhawk.niri = {
enable = mkEnableOption "niri nixos module";
};
config = mkIf cfg.enable {
programs.niri.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1";
services.displayManager = {
defaultSession = "niri";
enable = true;
sddm.enable = true;
sddm.wayland.enable = true;
};
home-manager.sharedModules = [
./home/niri.nix
{ snowhawk.niri.enable = lib.mkDefault true; }
];
};
}

42
modules/nix-ld.nix Normal file
View File

@ -0,0 +1,42 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.nix-ld;
in
{
options.snowhawk.nix-ld = {
enable = mkEnableOption "nix-ld nixos module";
};
config = mkIf cfg.enable {
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
glib
nss
nspr
atk
cups
dbus
libdrm
gtk3
pango
cairo
gdk-pixbuf
mesa
expat
alsa-lib
libxkbcommon
xorg.libX11
xorg.libXcomposite
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXrandr
xorg.libxcb
];
};
}

55
modules/plymouth.nix Normal file
View File

@ -0,0 +1,55 @@
# Yoinky Sploinky https://git.nullcube.net/nullcube/nixos/src/commit/d732b27507e70ed6f37e51ea2e5f8b7d7b3582dc/nixosModules/plymouth.nix
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.snowhawk.plymouth;
in
{
options.snowhawk.plymouth = {
enable = mkEnableOption "plymouth module";
theme = mkOption {
default = "spinner_alt";
example = "circle";
description = ''
The plymouth theme to download and activate
'';
};
loaderTimeout = mkOption {
default = 5;
example = 0;
description = ''
The timeout for the bootloader select screen
'';
};
};
config = mkIf cfg.enable {
boot = {
plymouth = {
enable = true;
theme = cfg.theme;
themePackages = mkDefault [
(pkgs.adi1090x-plymouth-themes.override {
selected_themes = [ cfg.theme ];
})
];
};
consoleLogLevel = 0;
initrd = {
verbose = false;
systemd.enable = true;
};
kernelParams = [
"quiet"
"splash"
"boot.shell_on_fail"
"loglevel=3"
"rd.systemd.show_status=false"
"rd.udev.log_level=3"
"udev.log_priority=3"
];
loader.timeout = cfg.loaderTimeout;
};
};
}

31
modules/polkit.nix Normal file
View File

@ -0,0 +1,31 @@
{ config, pkgs, lib, ... }:
let
cfg = config.snowhawk.polkit;
in
{
options.snowhawk.polkit = {
enable = lib.mkEnableOption "polkit nixos module";
};
config = lib.mkIf cfg.enable {
systemd.user.services.polkit-gnome-authentication-agent = {
description = "polkit-gnome-authentication-agent";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
security.polkit.enable = true;
# TODO: is this doing anything?
services.gnome.gnome-keyring.enable = true;
};
}

20
modules/power-button.nix Normal file
View File

@ -0,0 +1,20 @@
{ config, lib, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.power-button;
in
{
options.snowhawk.power-button = {
enable = mkEnableOption "power-button nixos module";
};
config = mkIf cfg.enable {
services.logind = {
powerKey = "suspend";
powerKeyLongPress = "poweroff";
};
};
}

25
modules/sops.nix Normal file
View File

@ -0,0 +1,25 @@
{ lib, config, inputs, ... }:
let
cfg = config.snowhawk.sops;
in
{
imports = [
inputs.sops-nix.nixosModules.sops
];
options.snowhawk.sops = {
enable = lib.mkEnableOption "sops";
};
config = lib.mkIf cfg.enable {
sops = {
defaultSopsFile = ../secrets.yaml;
age = {
sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
keyFile = "/var/lib/sops-nix/key.txt";
generateKey = true;
};
};
};
}

24
modules/sudo-rules.nix Normal file
View File

@ -0,0 +1,24 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.sudo-rules;
in
{
options.snowhawk.sudo-rules = {
enable = mkEnableOption "sudo-rules nixos module";
};
config = mkIf cfg.enable {
security.sudo.extraRules = lib.mkIf false [
{
users = [ "ravenshade" ];
commands = [{
command = "${pkgs.nixos-rebuild}/bin/nixos-rebuild";
options = [ "SETENV" "NOPASSWD" ];
}];
}
];
};
}

59
modules/syncthing.nix Normal file
View File

@ -0,0 +1,59 @@
{ config, lib, ... }:
with lib;
let
cfg = config.snowhawk.syncthing;
in
{
options.snowhawk.syncthing = {
enable = mkEnableOption "syncthing";
};
config = mkIf cfg.enable {
services.syncthing = {
enable = true;
user = "ravenshade";
group = "users";
dataDir = "/home/ravenshade/syncthing";
configDir = "/home/ravenshade/.config/syncthing";
overrideFolders = true;
overrideDevices = false;
settings = {
devices = {
msiserver = { id = "KVUA7S4-UHZHKHS-3NX2WSY-MWACTER-SNZBIN4-QMCT5KS-O4NQASP-65HFOAO"; };
macbook = { id = "O7EB4D6-AH4A53X-YM6UE7K-T3CJGIZ-MRJ6J7U-DXTEOKB-Z7LSV2M-LVUWFAO"; };
s22 = { id = "IS2F2X5-43F7B2Q-SVSNY4J-GOHU5XP-NSJ2MJS-GDDNNTR-BGPQHHE-TE4JDAX"; };
};
folders = {
"obsidian" = rec {
id = "obsidian";
label = id;
path = "/home/ravenshade/obsidian";
devices = [ "msiserver" "macbook" "s22" ];
};
"sync" = {
id = "default";
label = "sync";
path = "/home/ravenshade/sync";
devices = [ "macbook" ];
};
};
gui = {
theme = "dark";
};
options = {
urAccepted = -1;
localAnnounceEnabled = false;
relaysEnabled = true;
};
};
};
};
}

26
modules/user.nix Normal file
View File

@ -0,0 +1,26 @@
{ config, lib, ... }:
let
cfg = config.snowhawk.user;
in
{
options.snowhawk.user = {
enable = lib.mkEnableOption "user nixos module";
};
config = lib.mkIf cfg.enable {
snowhawk.sops.enable = lib.mkForce true;
# users sops setup
sops.secrets."passwords/ravenshade".neededForUsers = true;
users.mutableUsers = false;
# Define a user account. Don't forget to set a password with `passwd`.
users.users.ravenshade = {
isNormalUser = true;
description = "Zynh Ludwig";
hashedPasswordFile = config.sops.secrets."passwords/ravenshade".path;
extraGroups = [ "networkmanager" "wheel" "audio" ];
};
};
}

25
modules/wake-on-lan.nix Normal file
View File

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.wake-on-lan;
in
{
options.snowhawk.wake-on-lan = {
enable = mkEnableOption "wake-on-lan nixos module";
};
config = mkIf cfg.enable {
systemd.services.wakeonlan = {
description = "reenable wakeonlan every boot";
after = [ "network.target" ];
serviceConfig = {
Type = "simple";
RemainAfterExit = "true";
ExecStart = "${lib.getExe pkgs.ethtool} -s enp7s0 wol g";
};
wantedBy = [ "default.target" ];
};
};
}

View File

@ -0,0 +1,91 @@
#!/usr/bin/env bash
set -eu
function die {
supress_generic_error=1
if [ -v bin_ZENITY ] && [ ! -z "$bin_ZENITY" ]; then
"$bin_ZENITY" --error --text="$*"
else
echo "error: $*" 2>&2
fi
}
function absolute_binary {
bin="$(command -v "$@" 2>&-)"
if [ -z "$bin" ]; then
die "No such commands: $@"
fi
echo $bin | head -n 1
}
function cleanup {
if [ $? != 0 ] && [ ! -v supress_generic_error ]; then
die "Errors happened during runtime. See this script logs for details."
fi
}
trap cleanup EXIT
CHROME_BINARIES=(chromium)
if [ ! -v bin_ZENITY ]; then
bin_ZENITY="$(absolute_binary zenity)"
fi
if [ ! -v bin_CHROMIUM ]; then
bin_CHROMIUM="$(absolute_binary chromium)"
fi
if [ ! -v text_QUERY ]; then
text_QUERY="Link to be opened"
fi
if [ ! -v text_NOURL ]; then
text_NOURL="No URL specified"
fi
if [ $# -eq 0 ]; then
URL="$("$bin_ZENITY" --entry --text="$text_QUERY" || true)"
else
URL="$@"
fi
if [ -z "$URL" ]; then
die $text_NOURL
fi
if [[ "$URL" =~ ^~ ]]; then
URL=$(echo $URL | sed -E s:^~\/?::)
URL="file://$HOME/$URL"
fi
if [[ "$URL" =~ ^\/ ]]; then
URL="file://$URL"
fi
if [[ ! "$URL" =~ ^(file|https?)?:\/\/ ]]; then
URL="https://$URL"
fi
echo final url: $URL
chromeFlags=()
if [ ! -v CHROME_DONT_BORDERLESS ]; then
chromeFlags+=(--app="$URL")
else
chromeFlags+=("$URL")
fi
if [ ! -v profileToplevel ]; then
profileToplevel=~/.config/borderless-browser-profiles
fi
if [ -v CHROME_PROFILE ] && [[ "$CHROME_PROFILE" =~ ^[a-zA-Z_0-9-]*$ ]]; then
profileDir=$profileToplevel/$CHROME_PROFILE
chromeFlags+=(--user-data-dir="$profileDir")
fi
echo "${chromeFlags[@]}"
"$bin_CHROMIUM" "${chromeFlags[@]}"

View File

@ -0,0 +1,83 @@
{ lib
, stdenvNoCC
, chromium
, gnome3
, zenity ? gnome3.zenity
, makeDesktopItem
, copyDesktopItems
, makeWrapper
}:
let
mkWebapp =
{ name ? "webapp"
, desktopName ? "Web Application"
, browser ? lib.getExe chromium
, icon ? "applications-internet"
, url ? null
, queryText ? "Link to be opened"
, noURLSpecifiedText ? "No URL specified"
, profile ? null
, passthru ? { }
}:
let
makeWrapperArgs = [
"--set-default"
"text_QUERY"
queryText
"--set-default"
"text_NOURL"
noURLSpecifiedText
"--set"
"bin_CHROMIUM"
browser
"--set"
"bin_ZENITY"
(lib.getExe zenity)
]
++ (lib.optionals (profile != null) [ "--set" "CHROME_PROFILE" profile ])
++ (lib.optionals (url != null) [ "--add-flags" url ])
;
in
stdenvNoCC.mkDerivation (attrs: {
name = "webapp-${name}";
dontUnpack = true;
nativeBuildInputs = [ copyDesktopItems makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
makeWrapper ${./borderlessBrowser} $out/bin/$name ${lib.escapeShellArgs makeWrapperArgs}
runHook postInstall
'';
postFixup = ''
substituteInPlace $out/share/applications/$name.desktop --replace @bin@ $out/bin/$name
'';
desktopItems = [
(makeDesktopItem {
inherit (attrs) name;
inherit desktopName icon;
type = "Application";
exec = "@bin@";
})
];
passthru = passthru // { inherit makeWrapperArgs; };
});
in
mkWebapp {
passthru = {
wrap = mkWebapp;
};
}

13
pkgs/default.nix Normal file
View File

@ -0,0 +1,13 @@
final: prev:
let
callDefaultPackage = path: prev.callPackage path { };
in
{
lib = prev.lib.extend (import ../lib);
wrapWine = callDefaultPackage ./wrapWine;
writeXrandrScriptBin = callDefaultPackage ./writeXrandrScriptBin;
borderlessBrowser = callDefaultPackage ./borderlessBrowser;
zenBrowser = callDefaultPackage ./zenBrowser;
rose-pine-grub = callDefaultPackage ./rosePineGrub;
}

View File

@ -0,0 +1,30 @@
{ lib
, stdenvNoCC
, fetchFromGitHub
}:
stdenvNoCC.mkDerivation rec {
pname = "rose-pine-grub";
version = "1.0";
src = fetchFromGitHub {
owner = "rose-pine";
repo = "grub";
rev = "${version}";
hash = "sha256-fEWCydlgiDt1j21q0a3YKrYv+bWIJhAQd57LuDtRNwg=";
};
installPhase = ''
runHook preInstall
mkdir -p $out/
cp -r * "$out/"
runHook postInstall
'';
meta = {
description = "All natural pine, faux fur and a bit of soho vibes for GRUB";
homepage = "https://github.com/rose-pine/grub";
platforms = lib.platforms.linux;
};
}

89
pkgs/wrapWine/default.nix Normal file
View File

@ -0,0 +1,89 @@
# Yoink https://github.com/lucasew/nixcfg/blob/cb5a0d69e80d499df5a21166fb2d3f058b451125/pkgs/wrapWine.nix
{ pkgs }:
let
inherit (builtins) length concatStringsSep;
inherit (pkgs) lib cabextract writeShellScriptBin;
inherit (lib) makeBinPath;
in
{ is64bits ? false
, wine ? if is64bits then pkgs.wineWowPackages.stable else pkgs.wine
, wineFlags ? ""
, executable
, chdir ? null
, name
, tricks ? [ ]
, setupScript ? ""
, firstrunScript ? ""
, home ? ""
}:
let
wineBin = "${wine}/bin/wine${if is64bits then "64" else ""}";
requiredPackages = [
wine
cabextract
];
WINENIX_PROFILES = "$HOME/WINENIX_PROFILES";
PATH = makeBinPath requiredPackages;
NAME = name;
HOME =
if home == ""
then "${WINENIX_PROFILES}/${name}"
else home;
WINEARCH =
if is64bits
then "win64"
else "win32";
setupHook = ''
${wine}/bin/wineboot
'';
tricksHook =
if (length tricks) > 0 then
let
tricksStr = concatStringsSep " " tricks;
tricksCmd = ''
pushd $(mktemp -d)
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
chmod +x winetricks
./winetricks ${tricksStr}
popd
'';
in
tricksCmd
else "";
script = writeShellScriptBin name ''
export APP_NAME="${NAME}"
export WINEARCH=${WINEARCH}
export WINE_NIX="$HOME/.wine-nix" # define antes de definir $HOME senão ele vai gravar na nova $HOME a .wine-nix
export WINE_NIX_PROFILES="${WINENIX_PROFILES}"
export PATH=$PATH:${PATH}
export HOME="${HOME}"
mkdir -p "$HOME"
export WINEPREFIX="$WINE_NIX/${name}"
export EXECUTABLE="${executable}"
mkdir -p "$WINE_NIX" "$WINE_NIX_PROFILES"
${setupScript}
if [ ! -d "$WINEPREFIX" ] # if the prefix does not exist
then
${setupHook}
# ${wineBin} cmd /c dir > /dev/null 2> /dev/null # initialize prefix
wineserver -w
${tricksHook}
rm "$WINEPREFIX/drive_c/users/$USER" -rf
ln -s "$HOME" "$WINEPREFIX/drive_c/users/$USER"
${firstrunScript}
fi
${if chdir != null
then ''cd "${chdir}"''
else ""}
if [ ! "$REPL" == "" ]; # if $REPL is setup then start a shell in the context
then
bash
exit 0
fi
${wineBin} ${wineFlags} "$EXECUTABLE" "$@"
wineserver -w
'';
in
script

View File

@ -0,0 +1,27 @@
{ lib, writeShellScriptBin, xrandr }:
let
inherit (builtins) getAttr hasAttr isAttrs concatStringsSep;
inherit (lib) assertMsg lists escapeShellArgs getExe;
inherit (lib.attrsets) mapAttrsToList;
inherit (lib.cli) toGNUCommandLine;
in
name: config:
assert assertMsg (isAttrs config)
"config should be an attrs, found ${lib.typeOf config}";
let
isPrimary = config:
(hasAttr "primary" config) && (getAttr "primary" config);
getArgList = output: config:
(escapeShellArgs (lists.flatten [
(toGNUCommandLine { } { inherit output; })
(lists.optional (isPrimary config) "--primary")
(toGNUCommandLine { } config)
]));
args = mapAttrsToList getArgList config;
in
writeShellScriptBin name ''
${getExe xrandr} \
${concatStringsSep " \\\n " args}
''

View File

@ -0,0 +1,89 @@
# Adapted from: https://github.com/MarceColl/zen-browser-flake
{ lib
, stdenv
, makeWrapper
, copyDesktopItems
, libGL
, fontconfig
, libxkbcommon
, zlib
, freetype
, gtk3
, libxml2
, dbus
, xcb-util-cursor
, alsa-lib
, pango
, atk
, cairo
, gdk-pixbuf
, glib
, xorg
}:
stdenv.mkDerivation rec {
name = "zenBrowser";
version = "1.0.0-a.27";
src = builtins.fetchTarball {
url = "https://github.com/zen-browser/desktop/releases/download/${version}/zen.linux-specific.tar.bz2";
sha256 = "sha256:0vmn10qpr96b4i8j24sa6ipg3fcxiiigkjwclbr5fknkfj3r6ds7";
};
desktopSrc = ./.;
phases = [ "installPhase" "fixupPhase" ];
nativeBuildInputs = [ makeWrapper copyDesktopItems ];
installPhase = ''
mkdir -p $out/bin && cp -r $src/* $out/bin
install -D $desktopSrc/zen.desktop $out/share/applications/dev.zen.Zen.desktop
install -D $src/browser/chrome/icons/default/default128.png $out/share/icons/hicolor/128x128/apps/zen.png
'';
fixupPhase =
let
runtimeLibs = [
libGL
stdenv.cc.cc
fontconfig
libxkbcommon
zlib
freetype
gtk3
libxml2
dbus
xcb-util-cursor
alsa-lib
pango
atk
cairo
gdk-pixbuf
glib
] ++ (with xorg; [
libxcb
libX11
libXcursor
libXrandr
libXi
libXext
libXcomposite
libXdamage
libXfixes
]);
in
''
chmod 755 $out/bin/*
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/zen
wrapProgram $out/bin/zen --set LD_LIBRARY_PATH "${lib.makeLibraryPath runtimeLibs}"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/zen-bin
wrapProgram $out/bin/zen-bin --set LD_LIBRARY_PATH "${lib.makeLibraryPath runtimeLibs}"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/glxtest
wrapProgram $out/bin/glxtest --set LD_LIBRARY_PATH "${lib.makeLibraryPath runtimeLibs}"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/updater
wrapProgram $out/bin/updater --set LD_LIBRARY_PATH "${lib.makeLibraryPath runtimeLibs}"
patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/bin/vaapitest
wrapProgram $out/bin/vaapitest --set LD_LIBRARY_PATH "${lib.makeLibraryPath runtimeLibs}"
'';
}

View File

@ -0,0 +1,25 @@
[Desktop Entry]
Name=Zen Browser
Exec=zen %u
Icon=zen
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
StartupWMClass=zen-alpha
Categories=Network;WebBrowser;
StartupNotify=true
Terminal=false
X-MultipleArgs=false
Keywords=Internet;WWW;Browser;Web;Explorer;
Actions=new-window;new-private-window;profilemanager;
[Desktop Action new-window]
Name=Open a New Window
Exec=zen %u
[Desktop Action new-private-window]
Name=Open a New Private Window
Exec=zen --private-window %u
[Desktop Action profilemanager]
Name=Open the Profile Manager
Exec=zen --ProfileManager %u

44
secrets.yaml Normal file
View File

@ -0,0 +1,44 @@
private_keys:
personal_git: ENC[AES256_GCM,data:r5NXuhqltyaZpjMhz6Nh+2Nv1UI86nxtud5aPFkAfwOuBhtDLOx5dOZWZqJ/8Lf+hjyVsCRN77GNXIKmBA3UhguIzWdWSRMboDXYePxRar+i0rBQdKK24rzPLMAYRd5L1sLml1hS5eZxds+D+C5PCv4FXrkc+9xO08RPFgqJVfFbzIEM/5HAmgG1xLpK32+56/QdwW/bL2r2bheSuNXmcrciDeilVBS5/jVgIaa8mxDHQjVPi6SdL4MGt85+OpcOesqDGuTpc00H9kd/i6mOucYCw2UjHJpLYDJ202cE0pHiKenFbssiS+NqG7dWSLKD0HqhDoHLvJVaXlLT+GxEx1ec/vHAl7LgpRRpUfcEknFpsJgliPOfr1p3D2plx/ZcWqysFy3jZ5HZI3ZawRrsDdQlKpljcjCgOeCVoTlQdrjQruDV3QueLPn5ueFMx3Iks6e/PyENXp+JhdJID5dPjckSb2vp/VUP7n3PT3aNuPMluMpXFUhUwthTb/RsKBAqDUEaw0RAe1mvAaoD3ZUJtg5Q84UVuQxQHGtS,iv:fUwoEgHb2Bat/qjnedfHVzso0qfRPXuelO26CFxdud0=,tag:bqHeF1R4+IHQ/a0urVXhIA==,type:str]
msiserver: ENC[AES256_GCM,data:WPfERytAHOgvEpAs1neYMlV1tc6gJUPlYuW7iak9/UNEguNR3UlNB2OLHGYlpnPjH9hIOsUzxBNoE+kTI2atm1kZzIkzHCuJyn/CMaW61dPY+kvv/oiKSr/eqOLY7WLnniQysWih8zjtbb0DUoVfT9UujuWLaE92F9y7ZWyfz61Kf9BgyUF9xBkmwfOYnOs0ugnslm42jLh+qpw+2N2CqG5aqmBJzXp8fZfHmT5+wYTlKK4yb3vfXejcFQ37aLZwimJ9qn2Kfa4X6h1U9yerrNnOWhc0WC+1X3G1HKTlEF/yHTnIbSysxIYFdGPgzxFaw7Tyh2KhCJVOuPAJPmq7ms+lgpmS/Tr6ZdGF9XPGufT+UiiYFdK0zQYDz5A7qoDaOmztzFHhCtAmo6MvBUt2c4j03mT+KHkn9qFaQ1M/6EMp0KcL7Wt3bKLOC3kkbU9kMrahxhYTC7vTc33kZuvSsbTBnVJTAZM2vhIsOd2DtJzBdbTNXwpLqo5elQ8GuOBec84dAnYGs7etekn4GpuI0OayAlSoGdmGK6qmfBTZm62zuTadF/JBCKQU6sFyw1IfCO6fTSibQ/L7eqn8HF/pDG1+v+XHYYzv56gZHgIY78XB27phEbB+n7KFGHYw8RYDWHGsgZrR93ZRoVG5RXo/cx0+GqZHxEf+xHtrO6G4cKq8rIlvGcLMp6gWLrJRhZ4qObzpk5i/TRQH8qGeB5ZDzDkGmWwJV2xAmDuJnCSAmv1vVVDHPwAT5NfmJS4PXmTeDNBGLX/xf+tXFLI5fWhqAEynutVv5yavSxfOZ0a8+y7Ks0TbOaxwcCjWtJpmTmMLnROY1cEzre/tdxDA3TKJgLvqM05qN44MmS9ZDb3DDTiVAfDjjoKJt3XTTj3T3pbI4GIxapoKvLuQr/bWWwA2Ho5WXV8uCL0HBkuHSX5nTElnTWGbDznQOqnT4NlXRFTE17WYyoL1O8iv9s1QNHoBl89DrNfnAD5PeMU8zfXOHEH9UPSfniMvK0SxfaP6hZ2dx/VJyuby/ZMkbha9T0tXA3BQdqrB7D2qng8t62cywDhIIiXK1L2XIuVCewjEgmtFlG+MjDTW62y1cXjiAf8UzoxYIjvbsiDS0f75cAEpNnof8sbuGRFFnv8MF/8D16KWW1mUC6tH+nta260JgM4N2Coep8hzH5FE6BDrn/2pggycTWO7nkZQR+70p3F9POeokAiXee88z3yuddfP4ZBA4y7qLYfsImDkZBFHWinDD5BNKb9Ows/YbvtYJkykbR60hMPIVJdPIB2kFdOOAjHd5dDOtNiwLU3IEQCjAy+tFndnsTjQCqIq0zkm7O0bHedIWv3gequSaxvcG9pixtbCSCOLeqebzONb+MGQl7d/pgPCU3YL9dGh7YAfeT0X05tY9YOUqoBxFT5kCzz0pdkkYe2GMXxMAvTAdHfC1joqFvaO8hJ7FE38hCyDr+LWDDCjz8zI4nYP90BtiW16A/P1jmdXwkqaYdEmeNjOpIJAjvpzndRtW+t0M/ip1BJLL33h+Zk5Va23Th7BNfC/aGCyOv8PytteN4Cnvq1z8giY2vQ582uZz6Wi/oQKcTp6p7zNcy/cFQtgRWv1BSrZJGptvhQXobEO8VdHwKjgR0R1DYlIDYXb7fK3dvedttNjhwhyghfr8XfWoaDQKRYNwWBMC5eE4ikCUH+QXa4z7aqRDlUCum+sG8I6ZZ6xsEmTDH/GZ2lpgGDlHrC2yEQQBRRhJQ9VONnT/GMYxMUGg2NDDRcAuGxAcfXiN7mNbj0AmF0xBEIrxGQHjN64YTTDKltjad7GelzqRQNHV4DBl+5tzD3gTFovNPKzBhA73BLngK411DFi+fhr5nx7mWv2VtGz5mx01ShJhRQwZSR7dTG4Bb3vsFTljEDy9Qu6GrMXKBOzbJRtbGDZzx3KFiDNzHIPyd75/3Fn+CseBzHY3R1rOmfyCFlyP8yXpQBfsftTfPThrOXGQDu+lk8JtxR1dpVCJyl9bW0cFoZYoeUGbny4NpuUOeeDzfct1tf1WOhC4iRnGEorLpsAKiQTFekes6t/+iZJqZ8G7A2QtetO0o1MkYwJZR+4scr5PK5//ibbHY/bV6ubVOVbRLpqUChlPGcHP8e9MuRGxbH5hsFx8FlQDCNSGJetqtt0ygJtdvV3LCelDmhHqwM7t0LKVzrvpkw4l8wO4qhwUobRHgI6A0wEe8jgzpM4a5ZYas7aC46ie/sRBWBY33yrXTkL3kURD4pxmBs6b235A7JnHCDGxERBE/5yJ3IWmf7YNxACKBcRqxGtqgg6RDCcSC+spTG3rqMOQXYJP+JhSArv4yReGF6WgWtmFebXsI4TME42S8coomys0wcv9nB4+15GpSDtEN86YKT57XlcsTSI/tS8xdCnFMTAVuZOJ9Uyb9kMLP216lV5cp6RXj6IjAQ9GJjW2rCnBAJ4ejERW8ZJi3a4kBbrRoKY+Pp3F3kH/RrzJySFmsaIASWjujfRYqJzx2aY6pBpzjDsquv7QgsHWeSxKZGrJU9nU4puJeQzus9nmQPMrpmCyj+74Z/7015d7NZgh8zuqRPvIS8Hd2vQmE7zepMklFkhzT7H9kjIDmuitxvm4GDEYw+DQctfXe6m3LpOoiKnB1FN+AgH9AIxbz7Vs6ObyTDpK24u9IkfUuQAP2ImvyEpb0Sbh9eDLhN+tLdiY7rC7e0JaxoM0N6ARpxXylhLznuXNB03PfT0sa8XRwBqWpfhYIAJe7+su3NdBd6fmwpsNDbnNbDWwsWVUO33X4w5s3xZn6P+augAJA57stmX0xD/UZG+y84kkrF/YLtFJ9GJYzbrJD2AdJj1zbMpTeIuoE+aSnoB2xQzBQwWUp2qodAcIEisCRhD2UwdP6P+GhSyf43vW/eIeyfL+3aSXxQ2RkaHPZAXucxh8DCpT0vFF68XSuUf2iQnmX0thVUCSS4D063DPtBOQ9u2gC8ZnL9uyl27OI8Vr36L6nR+XnkV+/XkpgkVpj8ianjkM/IsqN9KQZUjgIkR7fenl0UalaJ9UcTspLfkNU67rTbhcJ9+G/QCguJ5I9ovJSS5k4u0t8SE0ZelRyC7j8xh5yT9l/GaoWuQryID145vR2Qf5jmR9H34mDhQigB713+7mjqoLGkorrhrZqLIDO94SRDJhUUn5nqCQmuwz9T22p9xqjpzwk9XGWsTN3+Mvku+OdpZWkVNwfWPJO2ShEcfQIBBykMO1gN1N8RbusFzCJfKCER7Rq2bnm31g+hby6Xms3pmW+Xg9jNj9HParuWewYx4nTLdGR+c5aufVp3xRpgSMD5w9uQIDebiuss8eFR64GcMlG90cC6ewHjS+68P/Rfnd24XawFNm4hu11TvA6zSjK6h6J4YehPzdnEUFFz5bh26AJkcnTN8svwcUW8etq8X9yN+W4UWFxtZNdNoLT2XD6v4C7TNhIugA4h9MIkxdA==,iv:QD0B2ymlqkSAV1wEAQyJAomxpIj+ydeikTJmVhxpxBo=,tag:zbXmhxabQwLgkPxavodHxQ==,type:str]
caveserver: ENC[AES256_GCM,data:bf3+bhbbX08NPk31Wy26ZsYzUIg2fv7SjWZ73CEOPTQZf8yLy32A63oJX71qtPIj6PcpbsHfrYGMKYHuMUYr5N9fYDhiXEbesAt1nX9HOsq0UwYSl7HWucRHkorkIq09r5oVB4CWoYEj6/2HmZhbYJgEZdMptActi3+eRobgjTdqtq4Q8K0tp9X3VeE2Ca/M17DEz9y93aMKunXbD38jS+zZs0SI1OtyC0V9MenAtiiadBznexq6IVwsp/4mcAiv0udFn7lwCYpPPsSKoCjFYfNIPu/0rCIEag3/bdJHPJA0fng37E4ZGA3ZCwy4PhaJ88kJBAqLJ8u1mQ+UGNFtZBaqww+RIAStkq958tYoyZaI4C+E+XpGRs6FsthN9lsJZ1skiT41vxsfb9+M2sELv+Jm9xDkHJr7+pjtGkN2xEvWS/DrzsKxl4qCw+ZkyE5VNS7vW+gfM+7XieooxXJlQEihlYWflRd1aikYfEizXXWaM6XlLsHtFYEmtQMvesB8XCeoCVT47XgGNqmaNFEEo6Pdl5ke6WO4Gi5K,iv:FZWDaT+ernolWiLZbE67g9JWNCgCwdUyglv8cwAeFO0=,tag:emCa72E1HIjU6+PAJvICcQ==,type:str]
snowhawk: ENC[AES256_GCM,data:I06s6rV8wURi5db2S+/QEHK2QtAn45PhP7vAvtTOwQUhECA/WD2Q6zPsn6nKxIt5Y7mlrSlN9+/cQ+zkEOqMvfkQIeGGoK5I/zi/196lLqTen6aDF7M0ZQVUJUIlXP3K4aO9b6ZI4BQSOTWAPq5CfMkCyT6BErhG4JnEl5Dxvdic94mrImmzGHJWdA2p9lfc/a+rPBwSqMTS7VAtez/aU/DyzexFYos0k2i2CMnMdLj+5FxAxSarlG6/PilumGj+xVN6msgGv6tN0kpb7RWbiv/ZwQNG+jkKukIduG+PAvhq5+X+ib2y+/JHhTTYZ5sAJrmdHJ0YGQqciu3VS9uLOn/NUksO2zLdvRZf1A0Y5MbE9nHrX2tpv77ivu5Hii7x9kBQXk/0PqvzYpV1thvEyxte18pN68NWm2BdSSU1KHiY6SlmrpqfmIZJqdW4yHn1otJRsDMfOLLSm2Eekjhs7qCrZVGj5bwk4TZALD00UeQsexLpNX+Gi8Njy2HJYtHtVPsMkq8oQ4RnQ/2cv7Pu82AZ98wdRPwFA05M,iv:bZ4fkol7BBjROx9J6cVYG1MQdfTbtgRR8/GiNjVWTcA=,tag:6r5+LCE5UcRjXIe1b0kYrw==,type:str]
ssh_hosts:
caveserver: ENC[AES256_GCM,data:EvgnXLZ7ZIcHB/VQj+hEK63DfKfPWGBBdKR1aXFTiN3OwAcfu5jxdSqctK2iAO88jJs=,iv:xEP3OpNNYHisnrtcsCCbjKx34e1DOvikjcRdDx6/WfQ=,tag:XpFBYxuaCMWCTHT09MFvrQ==,type:str]
locations:
snowhawk:
lat: ENC[AES256_GCM,data:N7CsvQ==,iv:BfSp2jXBZDEEyNHhpo3SAwEVIWI0timAT2S1l76ODn0=,tag:Mf99+rM/m3Wh8BmmITKjpg==,type:str]
lon: ENC[AES256_GCM,data:dITeYwVzSA==,iv:s+St+As7wgAaUf8/qnAdCM932WY5c9S0qUFhUlzx3W0=,tag:iqqPhmHZ+t+CRZPdZxYVxA==,type:str]
app_urls:
nh_slack: ENC[AES256_GCM,data:0QSoU9NLXNUWIwPSMAetHWQ6bnbJCALVWgMicl/e75JJ2JsMZhdbMKEGbgz6g9nGLwU=,iv:8emkdI3E67+xZ7BRMhvMKGxrSMvkfW3fYD7TUr78c8I=,tag:6OzhaCP/Qy8hO7tv0mdz7A==,type:str]
passwords:
ravenshade: ENC[AES256_GCM,data:U0s7qQ4+JI6uzrNygzvMvlBM/W+swtAu6V/iQ1Ggcqq+KJrfrwgVhew7i/E0i8Z5JqSlfeeFGpwptanM0NKKINXYk1h5wF30eA==,iv:KNgx4HfHNi8i8kHBtA9ITy8q+5C8QqAgR69CXB7WPWM=,tag:edRqEMuzNA7aTrCmUCuF3w==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age1zgd7qpj7vc4gjtetttqgp32aw75fmnjrw6ax2x2meul2w4jclytszvutdd
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqaUZNVnZaV3Z6WG9zVmw1
d0tXNlp0OWVHaHp4OFpNTG1GdStMdUlGakhFClg0TS9RZkFjSlFkUFlXOHRQbm1X
NlZDa0JrMDhQOGM2MWVPRjE2VDBDSDAKLS0tIGg3aWVLTm9DQ2Q0dkdoaFFibHlP
MGgveEdDb1laY3NhUkRyOVVuME9OVlkKUpTeucratE3vrdsHa/Sm0s0ygwD2UBZ7
5wNykjQUGUG+7OluUlWrwvnmgzyYKS0BM3BD0NjpzTS4OiSB6VYD5g==
-----END AGE ENCRYPTED FILE-----
- recipient: age1s549sffdhu2yyfk9h06hhks7xc4mqq9a6k53dleurr7y3rmuudpqwz24gv
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhRVphSzg4NEZWenBWSGY3
L3A5QTVuMFVBOVdrRHlRY3ViK2xjcFpTVkdnCnlCV0dHMmVlRTllbnRpQTdJaVQr
QjFXV1lPV1N4TEZxL05WaStDYmlRRTAKLS0tIFZSdkdTT3JyQmlqZVNEWDRwSFln
Nk1jNmhBV2hFcFVXaVl0TE02L290NDgKq0JV2vKnHUio0d6p8Wo29skOdq1uzjGh
ViIFNODIG8pPVsXQZqCXDWgZIVsAwbavS43d4wkg8iSZ4h6o6sC23Q==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-10-02T05:03:22Z"
mac: ENC[AES256_GCM,data:5uu8UWdvE28qmxi9WnmA/3PjUcnKuP+F78xmeiK8gyJjK0Pd88wt06TMk55ey8BadYkhGRa3+F28q4gu0QqPSau+6OeffOokZg1JkAWymWcVYyW1cMAha3YiUfO+iR9/8O59XdTB6QkfO5j94NYWZLOgtzy9AxxEFJ7VbYoUuEc=,iv:WXzDvJM5zu3jrQ4jfCl+iYzZAC5UCdHR0ZhW3WLmBZA=,tag:mpZ7qv813nBgvsIfquzDYA==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.0