me like nix
0

Configure Feed

Select the types of activity you want to include in your feed.

1{ ... }: { 2 flake.modules.homeManager.editor = 3 { pkgs, config, ... }: 4 { 5 home.packages = with pkgs; [ 6 helix 7 diffnav 8 gh 9 forgejo-cli 10 gh-dash 11 nixfmt 12 nil 13 vscode-json-languageserver 14 ]; 15 16 programs.helix = { 17 enable = true; 18 settings = { 19 editor = { 20 bufferline = "multiple"; 21 file-picker = { 22 hidden = false; 23 git-ignore = true; 24 }; 25 cursor-shape = { 26 insert = "bar"; 27 normal = "block"; 28 select = "underline"; 29 }; 30 line-number = "relative"; 31 cursorline = true; 32 auto-format = true; 33 end-of-line-diagnostics = "hint"; 34 soft-wrap = { 35 enable = true; 36 }; 37 lsp = { 38 display-inlay-hints = true; 39 display-messages = true; 40 display-progress-messages = true; 41 }; 42 inline-diagnostics = { 43 cursor-line = "hint"; 44 }; 45 }; 46 keys = { 47 normal = { 48 esc = [ 49 "keep_primary_selection" 50 "collapse_selection" 51 ]; 52 }; 53 }; 54 }; 55 languages = { 56 language-server.rust-analyzer = { 57 config = { 58 check = { 59 command = "clippy"; 60 }; 61 checkOnSave = true; 62 cargo = { 63 allFeatures = true; 64 }; 65 }; 66 }; 67 language-server.deno-lsp = { 68 command = "deno"; 69 args = [ "lsp" ]; 70 config.deno.enable = true; 71 }; 72 73 language = [ 74 { 75 name = "html"; 76 formatter = { 77 command = "prettier"; 78 args = [ 79 "--parser" 80 "html" 81 ]; 82 }; 83 } 84 { 85 name = "nix"; 86 auto-format = true; 87 formatter = { 88 command = "${pkgs.nixfmt}/bin/nixfmt"; 89 }; 90 } 91 { 92 name = "kotlin"; 93 auto-format = true; 94 } 95 { 96 name = "rust"; 97 auto-format = true; 98 formatter = { 99 command = "rustfmt"; 100 args = [ 101 "--edition" 102 "2024" 103 ]; 104 }; 105 indent = { 106 tab-width = 4; 107 unit = "t"; 108 }; 109 } 110 { 111 name = "astro"; 112 auto-format = true; 113 formatter = { 114 command = "npx"; 115 args = [ 116 "prettier" 117 "--plugin" 118 "prettier-plugin-astro" 119 "--parser" 120 "astro" 121 ]; 122 }; 123 } 124 { 125 name = "json"; 126 auto-format = true; 127 } 128 { 129 name = "just"; 130 auto-format = true; 131 formatter = { 132 command = "just"; 133 args = [ 134 "--justfile" 135 "/dev/stdin" 136 "--dump" 137 ]; 138 }; 139 } 140 { 141 name = "toml"; 142 auto-format = true; 143 formatter = { 144 command = "taplo"; 145 args = [ 146 "format" 147 "-" 148 ]; 149 }; 150 } 151 ]; 152 }; 153 }; 154 155 programs.git = { 156 enable = true; 157 settings = { 158 user = { 159 name = "seanaye"; 160 email = "hello@seanaye.ca"; 161 }; 162 init.defaultBranch = "main"; 163 commit.gpgSign = true; 164 gpg.format = "ssh"; 165 user.signingKey = "sk-ssh-ed25519@openssh.com AAAAGnNrLXNzaC1lZDI1NTE5QG9wZW5zc2guY29tAAAAIOIgEteUEW06dnBHe2z8vNLwz2iMKe8bba6JgMmOUpcBAAAABHNzaDo= sean@framework16"; 166 gpg.ssh.allowedSignersFile = "${config.home.homeDirectory}/.ssh/allowed_signers"; 167 diff.tool = "diffnav"; 168 difftool.prompt = false; 169 "difftool \"diffnav\"".cmd = "diffnav \"$LOCAL\" \"$REMOTE\""; 170 }; 171 }; 172 173 programs.jujutsu = { 174 enable = true; 175 settings = { 176 user = { 177 email = "hello@seanaye.ca"; 178 name = "Sean Aye"; 179 }; 180 ui."diff-formatter" = ":git"; 181 signing = { 182 sign-all = true; 183 behavior = "own"; 184 backend = "ssh"; 185 key = "${config.home.homeDirectory}/.ssh/id_ed25519_sk_rk"; 186 backends.ssh.allowed-signers = "${config.home.homeDirectory}/.ssh/allowed_signers"; 187 }; 188 }; 189 }; 190 191 xdg.configFile."jj/conf.d/diffnav.toml".text = '' 192 [[--scope]] 193 --when.commands = ["diff", "show"] 194 [--scope.ui] 195 pager = "diffnav" 196 ''; 197 198 xdg.configFile."gh-dash/config.yml".text = '' 199 prSections: 200 - title: My Pull Requests 201 filters: is:open author:@me 202 - title: Review Requested 203 filters: is:open review-requested:@me 204 issuesSections: 205 - title: My Issues 206 filters: is:open author:@me 207 pager: 208 diff: diffnav 209 keybindings: 210 prs: 211 - key: T 212 name: enhance 213 command: >- 214 zellij run -- gh enhance -R {{.RepoName}} {{.PrNumber}} 215 ''; 216 }; 217}