diff options
| -rw-r--r-- | home.nix | 241 |
1 files changed, 124 insertions, 117 deletions
| @@ -2,6 +2,30 @@ | |||
| 2 | 2 | ||
| 3 | let | 3 | let |
| 4 | colors = import ./colors.nix; | 4 | colors = import ./colors.nix; |
| 5 | |||
| 6 | isync-oauth2 = with pkgs; buildEnv { | ||
| 7 | # takens from: | ||
| 8 | # https://github.com/wentasah/nix-conf/raw/master/modules/mail.nix | ||
| 9 | # https://github.com/NixOS/nixpkgs/issues/108480#issuecomment-1115108802 | ||
| 10 | name = "isync"; | ||
| 11 | paths = [ pkgs.isync ]; | ||
| 12 | pathsToLink = ["/bin"]; | ||
| 13 | nativeBuildInputs = [ makeWrapper ]; | ||
| 14 | postBuild = '' | ||
| 15 | wrapProgram "$out/bin/mbsync" \ | ||
| 16 | --prefix SASL_PATH : "${cyrus_sasl}/lib/sasl2:${cyrus-sasl-xoauth2}/lib/sasl2" | ||
| 17 | ''; | ||
| 18 | }; | ||
| 19 | |||
| 20 | uvtools = with pkgs; appimageTools.wrapType2 rec { | ||
| 21 | pname = "UVtools"; | ||
| 22 | version = "5.0.6"; | ||
| 23 | src = fetchurl { | ||
| 24 | url = "https://github.com/sn4k3/${pname}/releases/download/v${version}/${pname}_linux-x64_v${version}.AppImage"; | ||
| 25 | hash = "sha256-T1E2+7YocWbspRrpWoexfLmm7LZSb4Nkw8WSBD6zTHs"; | ||
| 26 | }; | ||
| 27 | extraPkgs = pkgs: [ pkgs.icu ]; | ||
| 28 | }; | ||
| 5 | in { | 29 | in { |
| 6 | home = { | 30 | home = { |
| 7 | username = "vin"; | 31 | username = "vin"; |
| @@ -29,6 +53,10 @@ in { | |||
| 29 | profanity | 53 | profanity |
| 30 | vesktop | 54 | vesktop |
| 31 | 55 | ||
| 56 | |||
| 57 | notmuch | ||
| 58 | oauth2ms | ||
| 59 | |||
| 32 | # hardware | 60 | # hardware |
| 33 | acpi | 61 | acpi |
| 34 | acpilight | 62 | acpilight |
| @@ -60,20 +88,7 @@ in { | |||
| 60 | 88 | ||
| 61 | # 3d printing | 89 | # 3d printing |
| 62 | prusa-slicer | 90 | prusa-slicer |
| 63 | (let | 91 | uvtools |
| 64 | pname = "UVtools"; | ||
| 65 | version = "5.0.6"; | ||
| 66 | |||
| 67 | src = fetchurl { | ||
| 68 | url = | ||
| 69 | "https://github.com/sn4k3/${pname}/releases/download/v${version}/${pname}_linux-x64_v${version}.AppImage"; | ||
| 70 | hash = "sha256-T1E2+7YocWbspRrpWoexfLmm7LZSb4Nkw8WSBD6zTHs"; | ||
| 71 | }; | ||
| 72 | |||
| 73 | in appimageTools.wrapType2 { | ||
| 74 | inherit pname version src; | ||
| 75 | extraPkgs = pkgs: [ pkgs.icu ]; | ||
| 76 | }) | ||
| 77 | ]; | 92 | ]; |
| 78 | 93 | ||
| 79 | preferXdgDirectories = true; | 94 | preferXdgDirectories = true; |
| @@ -168,111 +183,96 @@ in { | |||
| 168 | theme.package = inputs.everblush-gtk.packages.x86_64-linux.default; | 183 | theme.package = inputs.everblush-gtk.packages.x86_64-linux.default; |
| 169 | }; | 184 | }; |
| 170 | 185 | ||
| 171 | programs = { | 186 | dconf.settings = { |
| 172 | home-manager.enable = true; | 187 | "org/virt-manager/virt-manager/connections" = { |
| 188 | autoconnect = [ "qemu:///system" ]; | ||
| 189 | uris = [ "qemu:///system" ]; | ||
| 190 | }; | ||
| 191 | }; | ||
| 173 | 192 | ||
| 174 | aerc = { | 193 | accounts.email = { |
| 175 | enable = true; | 194 | maildirBasePath = "mail"; |
| 176 | extraAccounts = { | 195 | |
| 177 | "vineetk" = { | 196 | accounts = { |
| 178 | source = "imaps://vineet%40vineetk.net@mail.vineetk.net"; | 197 | university = { |
| 179 | outgoing = "smtps://vineet%40vineetk.net@mail.vineetk.net"; | 198 | address = "***REDACTED_EMAIL***"; |
| 180 | outgoing-cred-cmd = "kasi pass email/vineetk"; | 199 | realName = "Vineet Kumar"; |
| 181 | source-cred-cmd = "kasi pass email/vineetk"; | 200 | userName = "***REDACTED_EMAIL***"; |
| 182 | default = "INBOX"; | 201 | passwordCommand = "oauth2ms"; |
| 183 | from = "\"Vineet Kumar\" <vineet@vineetk.net>"; | 202 | |
| 184 | copy-to = "Sent"; | 203 | imap.host = "outlook.office365.com"; |
| 185 | cache-headers = true; | 204 | smtp = { |
| 186 | }; | 205 | host = "smtp-mail.outlook.com"; |
| 187 | "13f0" = { | 206 | port = 587; |
| 188 | source = "imaps://kar%4013f0.net@mail.vineetk.net"; | 207 | tls.useStartTls = true; |
| 189 | outgoing = "smtps://kar%4013f0.net@mail.vineetk.net"; | 208 | }; |
| 190 | outgoing-cred-cmd = "kasi pass email/13f0"; | ||
| 191 | source-cred-cmd = "kasi pass email/13f0"; | ||
| 192 | default = "INBOX"; | ||
| 193 | from = "kar <kar@13f0.net>"; | ||
| 194 | copy-to = "Sent"; | ||
| 195 | cache-headers = true; | ||
| 196 | }; | ||
| 197 | }; | ||
| 198 | extraConfig = { | ||
| 199 | general = { | ||
| 200 | unsafe-accounts-conf = true; | ||
| 201 | }; | ||
| 202 | ui = { | ||
| 203 | fuzzy-complete = true; | ||
| 204 | styleset-name = "monochrome"; | ||
| 205 | threading-enabled = true; | ||
| 206 | }; | ||
| 207 | filters = { | ||
| 208 | "message/delivery-status" = "colorize"; | ||
| 209 | "message/rfc822" = "colorize"; | ||
| 210 | 209 | ||
| 211 | "text/calendar" = "calendar"; | 210 | mbsync = { |
| 212 | "text/html" = "html-unsafe | colorize"; | 211 | enable = true; |
| 213 | "text/plain" = "colorize"; | 212 | create = "both"; |
| 214 | }; | 213 | expunge = "both"; |
| 215 | openers = { | 214 | remove = "both"; |
| 216 | "application/pdf" = "mupdf"; | 215 | patterns = [ |
| 217 | "text/html" = "qutebrowser"; | 216 | "*" "!Calendar*" "!Contacts*" "!Conversation*" |
| 218 | "text/plain" = "emacs"; | 217 | "!Notes*" "!Journal*" "!Tasks*" |
| 219 | }; | 218 | ]; |
| 220 | templates = { | 219 | }; |
| 221 | "new-message" = "new_message"; | 220 | |
| 222 | "quoted-reply" = "quoted_reply"; | 221 | msmtp = { |
| 223 | "forwards" = "forward_as_body"; | 222 | enable = true; |
| 224 | }; | 223 | extraConfig.auth = "xoauth2"; |
| 225 | }; | 224 | }; |
| 226 | stylesets = { | 225 | |
| 227 | monochrome = '' | 226 | notmuch.enable = true; |
| 228 | # aerc monochrome styleset | 227 | }; |
| 229 | # | 228 | |
| 230 | 229 | vineetk = { | |
| 231 | *.default = true | 230 | address = "me@vineetk.net"; |
| 232 | *.normal = true | 231 | realName = "Vineet Kumar"; |
| 233 | 232 | userName = "vineet@vineetk.net"; | |
| 234 | *.selected.reverse = toggle | 233 | passwordCommand = "kasi pass email/vineetk"; |
| 235 | *_pill.reverse = true | 234 | primary = true; |
| 236 | 235 | ||
| 237 | title.reverse = true | 236 | imap.host = "mail.vineetk.net"; |
| 238 | title.bold = true | 237 | smtp.host = "mail.vineetk.net"; |
| 239 | header.bold = true | 238 | |
| 240 | tab.selected.bold = true | 239 | mbsync = { |
| 241 | dirlist*.selected.bold = true | 240 | enable = true; |
| 242 | 241 | create = "both"; | |
| 243 | statusline_default.reverse = true | 242 | expunge = "both"; |
| 244 | *error.bold = true | 243 | remove = "both"; |
| 245 | *error.fg = 1 | 244 | patterns = [ "*" ]; |
| 246 | *warning.fg = 3 | 245 | }; |
| 247 | 246 | ||
| 248 | msglist_unread.bold = true | 247 | msmtp.enable = true; |
| 249 | msglist_deleted.dim = true | 248 | notmuch.enable = true; |
| 250 | msglist_result.underline = true | 249 | }; |
| 251 | 250 | ||
| 252 | part_mimetype.dim = true | 251 | thirteen = { |
| 253 | part_mimetype.selected.dim = false | 252 | address = "kar@13f0.net"; |
| 254 | part_filename.selected.bold = true | 253 | realName = "Kar"; |
| 255 | 254 | userName = "kar@13f0.net"; | |
| 256 | selector_focused.reverse = true | 255 | passwordCommand = "kasi pass email/13f0"; |
| 257 | selector_chooser.bold = true | 256 | |
| 258 | 257 | imap.host = "mail.vineetk.net"; | |
| 259 | [viewer] | 258 | smtp.host = "mail.vineetk.net"; |
| 260 | *.default = true | 259 | |
| 261 | *.normal = true | 260 | mbsync = { |
| 262 | url.underline = true | 261 | enable = true; |
| 263 | header.bold = true | 262 | create = "both"; |
| 264 | signature.dim = true | 263 | expunge = "both"; |
| 265 | diff_meta.bold = true | 264 | remove = "both"; |
| 266 | diff_chunk*.dim = true | 265 | patterns = [ "*" ]; |
| 267 | diff_add.fg = 2 | 266 | }; |
| 268 | diff_del.fg = 1 | 267 | |
| 269 | quote_*.fg = 6 | 268 | msmtp.enable = true; |
| 270 | quote_*.dim = true | 269 | notmuch.enable = true; |
| 271 | quote_1.dim = false | 270 | }; |
| 272 | '' | 271 | }; |
| 273 | ; | 272 | }; |
| 274 | }; | 273 | |
| 275 | }; | 274 | programs = { |
| 275 | home-manager.enable = true; | ||
| 276 | 276 | ||
| 277 | alacritty = { | 277 | alacritty = { |
| 278 | enable = true; | 278 | enable = true; |
| @@ -367,6 +367,13 @@ in { | |||
| 367 | ]; | 367 | ]; |
| 368 | }; | 368 | }; |
| 369 | 369 | ||
| 370 | mbsync = { | ||
| 371 | enable = true; | ||
| 372 | package = isync-oauth2; | ||
| 373 | }; | ||
| 374 | |||
| 375 | msmtp.enable = true; | ||
| 376 | |||
| 370 | mpv = { | 377 | mpv = { |
| 371 | enable = true; | 378 | enable = true; |
| 372 | 379 | ||
