blob: 53ff4e633a609ed75283a967aa84f2ef1428e98c [file] [log] [blame]
Skyler Turnerf0e4f3e2022-01-09 13:46:00 +00001{ config, pkgs, nixpkgs, ... }:
Skyler Turner84ec77c2022-01-14 09:05:57 +00002let
3 username = "minion";
4 homedir = "/home/${username}";
Skyler Turner4ecd5812022-02-06 00:18:09 +00005
6 comma = import ( pkgs.fetchFromGitHub {
7 owner = "nix-community";
8 repo = "comma";
9 rev = "02e3e5545b0c62595a77f3d5de1223c536af0614";
Skyler Turnerf7995c52022-02-06 00:23:24 +000010 sha256 = "sha256-WBIQmwlkb/GMoOq+Dnyrk8YmgiM/wJnc5HYZP8Uw72E=";
Skyler Turner4ecd5812022-02-06 00:18:09 +000011 }) {};
12
Skyler Turner84ec77c2022-01-14 09:05:57 +000013in {
Skyler Turner205aff12021-12-20 11:22:57 +000014 # Home Manager needs a bit of information about you and the
15 # paths it should manage.
Skyler Turner84ec77c2022-01-14 09:05:57 +000016 home.username = username;
17 home.homeDirectory = homedir;
Skyler Turner205aff12021-12-20 11:22:57 +000018
19 programs.vscode.enable = true;
20 programs.vscode.package = pkgs.vscode-fhs;
21
22 programs.go.enable = true;
23
24 # programs.steam.enable = true;
25
26 programs.gpg.enable = true;
27 services.gpg-agent = {
28 enable = true;
29 pinentryFlavor = "qt";
30 };
31
Skyler Turner2a7e5742022-01-26 15:09:20 +000032 nixpkgs.overlays = [
33 (import ./overlays/anytype.nix)
Skyler Turnerbab24762022-02-08 18:33:27 +000034 (import ./overlays/mindustry.nix)
Skyler Turner2a7e5742022-01-26 15:09:20 +000035 (import ./overlays/nur.nix)
36 ];
Skyler Turnerf0e4f3e2022-01-09 13:46:00 +000037
Skyler Turner205aff12021-12-20 11:22:57 +000038 home.packages = with pkgs; [
39 steam-tui steam-run
40 minecraft
41 git-crypt gnupg pinentry_qt
Skyler Turner32dbfb42021-12-24 15:50:22 +000042 spotify
43 keepassxc
44 grim slurp
Skyler Turner2267c882022-01-12 10:02:54 +000045 neovim helix
Skyler Turner9bf37402021-12-29 15:51:21 +000046 qemu
Skyler Turner7c0c1812022-01-01 18:19:07 +000047 bind
Skyler Turnerf0e4f3e2022-01-09 13:46:00 +000048 file
49 nur.repos.kira-bruneau.rofi-wayland
50 rofimoji
Skyler Turner4870c2a2022-01-26 15:16:56 +000051 anytype-latest
Skyler Turner4f5f11b2022-01-14 23:36:39 +000052 htop
Skyler Turnera6cfb632022-01-16 23:03:43 +000053 hue-cli
Skyler Turner97060bc2022-02-06 00:18:33 +000054 comma
Skyler Turnerbab24762022-02-08 18:33:27 +000055 zip
Skyler Turnerd82363a2022-02-08 18:37:07 +000056 mindustry-alpha-wayland
Skyler Turner0f6b05a2022-02-17 20:06:44 +000057 nodejs-17_x
Skyler Turner12191742022-02-27 01:05:42 +000058 element
Skyler Turner66693742022-02-27 01:13:00 +000059 telegram-cli
Skyler Turner205aff12021-12-20 11:22:57 +000060 ];
61
Skyler Turnerb93743f2022-02-06 00:02:21 +000062 programs.zsh = {
63 enable = true;
64 oh-my-zsh = {
Skyler Turnere24f21c2022-02-06 16:02:53 +000065 enable = true;
66 plugins = [ "git" ];
Skyler Turnerb93743f2022-02-06 00:02:21 +000067 theme = "crunch";
68 };
69 history = {
70 size = 10000;
71 path = "${config.xdg.dataHome}/zsh/history";
72 expireDuplicatesFirst = true;
73 extended = true;
74 };
75 initExtra = ''
76 bindkey "\'\'$\{key[Up]}" up-line-or-search
Skyler Turnerf7995c52022-02-06 00:23:24 +000077
Skyler Turnera6e30e12022-02-06 00:24:34 +000078 command_not_found_handler ()
Skyler Turnerf7995c52022-02-06 00:23:24 +000079 {
Skyler Turner4438c192022-02-06 11:38:59 +000080 # echo "Command '$1' not found, searching for it in the Nix store..."
81 # , $@
82 local p='/nix/store/ycclzpk99snlrk8sg9n4j8pm1927gavw-command-not-found/bin/command-not-found';
83 if [ -x "$p" ] && [ -f '/nix/var/nix/profiles/per-user/root/channels/nixos/programs.sqlite' ]; then
84 "$p" "$@";
85 if [ $? = 126 ]; then
86 "$@";
87 else
88 return 127;
89 fi;
90 else
91 echo "$1: command not found" 1>&2;
92 return 127;
93 fi
Skyler Turnerf7995c52022-02-06 00:23:24 +000094 }
Skyler Turnerb93743f2022-02-06 00:02:21 +000095 '';
96 enableSyntaxHighlighting = true;
Skyler Turner041c1f72022-02-06 00:10:28 +000097 enableAutosuggestions = true;
Skyler Turnerb93743f2022-02-06 00:02:21 +000098 autocd = true;
Skyler Turner06d5d1c2022-02-06 00:05:04 +000099 dotDir = ".local/share/zsh";
Skyler Turnerb93743f2022-02-06 00:02:21 +0000100 };
101
Skyler Turner205aff12021-12-20 11:22:57 +0000102 programs.git = {
103 enable = true;
104
105 userName = "Skyler Turner";
106 userEmail = "skyler@clicksminuteper.net";
107
108 signing = {
109 key = "24D31D3B1B986F33";
110 signByDefault = true;
111 gpgPath = "gpg2";
112 };
113
114 lfs.enable = true;
115 delta.enable = true;
116
117 extraConfig = {
118 init.defaultBranch = "development";
119 color.ui = "auto";
120 core.autocrlf = "input";
Skyler Turnerab27a8d2022-02-19 12:26:02 +0000121 pull.rebase = false;
Skyler Turner205aff12021-12-20 11:22:57 +0000122 };
123 };
124
Skyler Turner205aff12021-12-20 11:22:57 +0000125 # This value determines the Home Manager release that your
126 # configuration is compatible with. This helps avoid breakage
127 # when a new Home Manager release introduces backwards
128 # incompatible changes.
129 #
130 # You can update Home Manager without changing this value. See
131 # the Home Manager release notes for a list of state version
132 # changes in each release.
133 home.stateVersion = "21.11";
134
135 # Let Home Manager install and manage itself.
136 programs.home-manager.enable = true;
137}