diff options
Diffstat (limited to 'users')
| -rw-r--r-- | users/ryan/aerc/accounts.conf | 24 | ||||
| -rw-r--r-- | users/ryan/aerc/aerc.conf | 569 | ||||
| -rw-r--r-- | users/ryan/aerc/binds.conf | 150 | ||||
| -rw-r--r-- | users/ryan/aerc/signature_personal | 4 | ||||
| -rw-r--r-- | users/ryan/aerc/signature_rit_personal | 6 | ||||
| -rw-r--r-- | users/ryan/aerc/templates/quoted_reply | 7 | ||||
| -rw-r--r-- | users/ryan/home.nix | 126 | ||||
| -rw-r--r-- | users/ryan/zen/zenPolicies.nix | 125 | ||||
| -rw-r--r-- | users/ryan/zen/zenProfile.nix | 71 |
9 files changed, 1082 insertions, 0 deletions
diff --git a/users/ryan/aerc/accounts.conf b/users/ryan/aerc/accounts.conf new file mode 100644 index 0000000..b140dbd --- /dev/null +++ b/users/ryan/aerc/accounts.conf | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | [Personal] | ||
| 2 | source = jmap://ryan%40rschanz.org@mail.rschanz.org/jmap/session | ||
| 3 | source-cred-cmd = pass emails/personal 2>/dev/null | tr -d '\n' | ||
| 4 | outgoing = jmap:// | ||
| 5 | default = Inbox | ||
| 6 | from = Ryan Schanzenbacher <ryan@rschanz.org> | ||
| 7 | copy-to = Sent | ||
| 8 | signature-file = ~/.config/aerc/signature_personal | ||
| 9 | #check-mail = 5m | ||
| 10 | aliases = Ryan S <ryan+ritlugdemo@rschanz.org>, Ryan Schanzenbacher <ryan+guixdevel@rschanz.org> | ||
| 11 | pgp-self-encrypt = true | ||
| 12 | |||
| 13 | [School] | ||
| 14 | source = imaps+oauthbearer://rjs1877%40rit.edu@imap.gmail.com:993?token_endpoint=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Ftoken&client_id=667738788924-0rdfvaq9ijfo1vk4474eb3quf8206h2t.apps.googleusercontent.com&client_secret=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 | ||
| 15 | source-cred-cmd = pass emails/rit_personal 2>/dev/null | tr -d '\n' | ||
| 16 | outgoing = smtps+oauthbearer://rjs1877%40rit.edu@imap.gmail.com:465?token_endpoint=https%3A%2F%2Faccounts.google.com%2Fo%2Foauth2%2Ftoken&client_id=667738788924-0rdfvaq9ijfo1vk4474eb3quf8206h2t.apps.googleusercontent.com&client_secret=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 | ||
| 17 | outgoing-cred-cmd = pass emails/rit_personal 2>/dev/null | tr -d '\n' | ||
| 18 | from = Ryan Schanzenbacher <rjs1877@rit.edu> | ||
| 19 | signature-file = ~/.config/aerc/signature_rit_personal | ||
| 20 | check-mail = 5m | ||
| 21 | default = INBOX | ||
| 22 | copy-to = [Gmail]/Sent Mail | ||
| 23 | pgp-self-encrypt = true | ||
| 24 | |||
diff --git a/users/ryan/aerc/aerc.conf b/users/ryan/aerc/aerc.conf new file mode 100644 index 0000000..ad54cf7 --- /dev/null +++ b/users/ryan/aerc/aerc.conf | |||
| @@ -0,0 +1,569 @@ | |||
| 1 | # | ||
| 2 | # aerc main configuration | ||
| 3 | |||
| 4 | [general] | ||
| 5 | # | ||
| 6 | # Used as a default path for save operations if no other path is specified. | ||
| 7 | # ~ is expanded to the current user home dir. | ||
| 8 | # | ||
| 9 | default-save-path=~/Downloads/ | ||
| 10 | |||
| 11 | # If set to "gpg", aerc will use system gpg binary and keystore for all crypto | ||
| 12 | # operations. If set to "internal", the internal openpgp keyring will be used. | ||
| 13 | # If set to "auto", the system gpg will be preferred unless the internal | ||
| 14 | # keyring already exists, in which case the latter will be used. | ||
| 15 | # | ||
| 16 | # Default: auto | ||
| 17 | pgp-provider=gpg | ||
| 18 | |||
| 19 | # By default, the file permissions of accounts.conf must be restrictive and | ||
| 20 | # only allow reading by the file owner (0600). Set this option to true to | ||
| 21 | # ignore this permission check. Use this with care as it may expose your | ||
| 22 | # credentials. | ||
| 23 | # | ||
| 24 | # Default: false | ||
| 25 | unsafe-accounts-conf=true # I don't store my creds in this | ||
| 26 | |||
| 27 | # Output log messages to specified file. A path starting with ~/ is expanded to | ||
| 28 | # the user home dir. When redirecting aerc's output to a file using > shell | ||
| 29 | # redirection, this setting is ignored and log messages are printed to stdout. | ||
| 30 | # | ||
| 31 | #log-file=~/aerc_log | ||
| 32 | |||
| 33 | # Only log messages above the specified level to log-file. Supported levels | ||
| 34 | # are: trace, debug, info, warn and error. When redirecting aerc's output to | ||
| 35 | # a file using > shell redirection, this setting is ignored and the log level | ||
| 36 | # is forced to trace. | ||
| 37 | # | ||
| 38 | # Default: info | ||
| 39 | log-level=trace | ||
| 40 | |||
| 41 | # Set the $TERM environment variable used for the embedded terminal. | ||
| 42 | # | ||
| 43 | # Default: xterm-256color | ||
| 44 | #term=xterm-256color | ||
| 45 | |||
| 46 | # Display OSC8 strings in the embedded terminal | ||
| 47 | # | ||
| 48 | # Default: false | ||
| 49 | #enable-osc8=false | ||
| 50 | |||
| 51 | [ui] | ||
| 52 | # | ||
| 53 | # Describes the format for each row in a mailbox view. This is a comma | ||
| 54 | # separated list of column names with an optional align and width suffix. After | ||
| 55 | # the column name, one of the '<' (left), ':' (center) or '>' (right) alignment | ||
| 56 | # characters can be added (by default, left) followed by an optional width | ||
| 57 | # specifier. The width is either an integer representing a fixed number of | ||
| 58 | # characters, or a percentage between 1% and 99% representing a fraction of the | ||
| 59 | # terminal width. It can also be one of the '*' (auto) or '=' (fit) special | ||
| 60 | # width specifiers. Auto width columns will be equally attributed the remaining | ||
| 61 | # terminal width. Fit width columns take the width of their contents. If no | ||
| 62 | # width specifier is set, '*' is used by default. | ||
| 63 | # | ||
| 64 | # Default: date<20,name<17,flags>4,subject<* | ||
| 65 | #index-columns=date<20,name<17,flags>4,subject<* | ||
| 66 | |||
| 67 | spinner = '/,-,\,|' | ||
| 68 | |||
| 69 | # | ||
| 70 | # Each name in index-columns must have a corresponding column-$name setting. | ||
| 71 | # All column-$name settings accept golang text/template syntax. See | ||
| 72 | # aerc-templates(7) for available template attributes and functions. | ||
| 73 | # | ||
| 74 | # Default settings | ||
| 75 | #column-date={{.DateAutoFormat .Date.Local}} | ||
| 76 | #column-name={{index (.From | names) 0}} | ||
| 77 | #column-flags={{.Flags | join ""}} | ||
| 78 | #column-subject={{.ThreadPrefix}}{{.Subject}} | ||
| 79 | |||
| 80 | # | ||
| 81 | # String separator inserted between columns. When the column width specifier is | ||
| 82 | # an exact number of characters, the separator is added to it (i.e. the exact | ||
| 83 | # width will be fully available for the column contents). | ||
| 84 | # | ||
| 85 | # Default: " " | ||
| 86 | #column-separator=" " | ||
| 87 | |||
| 88 | # | ||
| 89 | # See time.Time#Format at https://godoc.org/time#Time.Format | ||
| 90 | # | ||
| 91 | # Default: 2006-01-02 03:04 PM (ISO 8601 + 12 hour time) | ||
| 92 | #timestamp-format=2006-01-02 03:04 PM | ||
| 93 | |||
| 94 | # | ||
| 95 | # Index-only time format for messages that were received/sent today. | ||
| 96 | # If this is not specified, timestamp-format is used instead. | ||
| 97 | # | ||
| 98 | #this-day-time-format= | ||
| 99 | |||
| 100 | # | ||
| 101 | # Index-only time format for messages that were received/sent within the last | ||
| 102 | # 7 days. If this is not specified, timestamp-format is used instead. | ||
| 103 | # | ||
| 104 | #this-week-time-format= | ||
| 105 | |||
| 106 | # | ||
| 107 | # Index-only time format for messages that were received/sent this year. | ||
| 108 | # If this is not specified, timestamp-format is used instead. | ||
| 109 | # | ||
| 110 | #this-year-time-format= | ||
| 111 | |||
| 112 | # | ||
| 113 | # Width of the sidebar, including the border. | ||
| 114 | # | ||
| 115 | # Default: 20 | ||
| 116 | #sidebar-width=20 | ||
| 117 | |||
| 118 | # | ||
| 119 | # Message to display when viewing an empty folder. | ||
| 120 | # | ||
| 121 | # Default: (no messages) | ||
| 122 | #empty-message=(no messages) | ||
| 123 | |||
| 124 | # Message to display when no folders exists or are all filtered | ||
| 125 | # | ||
| 126 | # Default: (no folders) | ||
| 127 | #empty-dirlist=(no folders) | ||
| 128 | |||
| 129 | # Enable mouse events in the ui, e.g. clicking and scrolling with the mousewheel | ||
| 130 | # | ||
| 131 | # Default: false | ||
| 132 | #mouse-enabled=false | ||
| 133 | |||
| 134 | # | ||
| 135 | # Ring the bell when new messages are received | ||
| 136 | # | ||
| 137 | # Default: true | ||
| 138 | #new-message-bell=true | ||
| 139 | |||
| 140 | # | ||
| 141 | # Template to use for Account tab titles | ||
| 142 | # | ||
| 143 | # Default: {{.Account}} | ||
| 144 | #tab-title-account={{.Account}} | ||
| 145 | |||
| 146 | # Marker to show before a pinned tab's name. | ||
| 147 | # | ||
| 148 | # Default: ` | ||
| 149 | #pinned-tab-marker='`' | ||
| 150 | |||
| 151 | # Template for the left side of the directory list. | ||
| 152 | # See aerc-templates(7) for all available fields and functions. | ||
| 153 | # | ||
| 154 | # Default: {{.Folder}} | ||
| 155 | #dirlist-left={{.Folder}} | ||
| 156 | |||
| 157 | # Template for the right side of the directory list. | ||
| 158 | # See aerc-templates(7) for all available fields and functions. | ||
| 159 | # | ||
| 160 | # Default: {{if .Unread}}{{humanReadable .Unread}}/{{end}}{{if .Exists}}{{humanReadable .Exists}}{{end}} | ||
| 161 | #dirlist-right={{if .Unread}}{{humanReadable .Unread}}/{{end}}{{if .Exists}}{{humanReadable .Exists}}{{end}} | ||
| 162 | |||
| 163 | # Delay after which the messages are actually listed when entering a directory. | ||
| 164 | # This avoids loading messages when skipping over folders and makes the UI more | ||
| 165 | # responsive. If you do not want that, set it to 0s. | ||
| 166 | # | ||
| 167 | # Default: 200ms | ||
| 168 | #dirlist-delay=200ms | ||
| 169 | |||
| 170 | # Display the directory list as a foldable tree that allows to collapse and | ||
| 171 | # expand the folders. | ||
| 172 | # | ||
| 173 | # Default: false | ||
| 174 | #dirlist-tree=false | ||
| 175 | |||
| 176 | # If dirlist-tree is enabled, set level at which folders are collapsed by | ||
| 177 | # default. Set to 0 to disable. | ||
| 178 | # | ||
| 179 | # Default: 0 | ||
| 180 | #dirlist-collapse=0 | ||
| 181 | |||
| 182 | # List of space-separated criteria to sort the messages by, see *sort* | ||
| 183 | # command in *aerc*(1) for reference. Prefixing a criterion with "-r " | ||
| 184 | # reverses that criterion. | ||
| 185 | # | ||
| 186 | # Example: "from -r date" | ||
| 187 | # | ||
| 188 | #sort= | ||
| 189 | |||
| 190 | # Moves to next message when the current message is deleted | ||
| 191 | # | ||
| 192 | # Default: true | ||
| 193 | #next-message-on-delete=true | ||
| 194 | |||
| 195 | # Automatically set the "seen" flag when a message is opened in the message | ||
| 196 | # viewer. | ||
| 197 | # | ||
| 198 | # Default: true | ||
| 199 | #auto-mark-read=true | ||
| 200 | |||
| 201 | # The directories where the stylesets are stored. It takes a colon-separated | ||
| 202 | # list of directories. If this is unset or if a styleset cannot be found, the | ||
| 203 | # following paths will be used as a fallback in that order: | ||
| 204 | # | ||
| 205 | # ${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets | ||
| 206 | # ${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets | ||
| 207 | # /usr/local/share/aerc/stylesets | ||
| 208 | # /usr/share/aerc/stylesets | ||
| 209 | # | ||
| 210 | #stylesets-dirs= | ||
| 211 | |||
| 212 | # Uncomment to use box-drawing characters for vertical and horizontal borders. | ||
| 213 | # | ||
| 214 | # Default: " " | ||
| 215 | #border-char-vertical=" " | ||
| 216 | #border-char-horizontal=" " | ||
| 217 | |||
| 218 | # Sets the styleset to use for the aerc ui elements. | ||
| 219 | # | ||
| 220 | # Default: default | ||
| 221 | #styleset-name=default | ||
| 222 | |||
| 223 | # Activates fuzzy search in commands and their arguments: the typed string is | ||
| 224 | # searched in the command or option in any position, and need not be | ||
| 225 | # consecutive characters in the command or option. | ||
| 226 | # | ||
| 227 | # Default: false | ||
| 228 | #fuzzy-complete=false | ||
| 229 | |||
| 230 | # How long to wait after the last input before auto-completion is triggered. | ||
| 231 | # | ||
| 232 | # Default: 250ms | ||
| 233 | #completion-delay=250ms | ||
| 234 | |||
| 235 | # The minimum required characters to allow auto-completion to be triggered after | ||
| 236 | # completion-delay. | ||
| 237 | # | ||
| 238 | # Default: 1 | ||
| 239 | #completion-min-chars=1 | ||
| 240 | |||
| 241 | # | ||
| 242 | # Global switch for completion popovers | ||
| 243 | # | ||
| 244 | # Default: true | ||
| 245 | #completion-popovers=true | ||
| 246 | |||
| 247 | # Uncomment to use UTF-8 symbols to indicate PGP status of messages | ||
| 248 | # | ||
| 249 | # Default: ASCII | ||
| 250 | #icon-unencrypted= | ||
| 251 | #icon-encrypted=✔ | ||
| 252 | #icon-signed=✔ | ||
| 253 | #icon-signed-encrypted=✔ | ||
| 254 | #icon-unknown=✘ | ||
| 255 | #icon-invalid=âš | ||
| 256 | |||
| 257 | # Reverses the order of the message list. By default, the message list is | ||
| 258 | # ordered with the newest (highest UID) message on top. Reversing the order | ||
| 259 | # will put the oldest (lowest UID) message on top. This can be useful in cases | ||
| 260 | # where the backend does not support sorting. | ||
| 261 | # | ||
| 262 | # Default: false | ||
| 263 | #reverse-msglist-order = false | ||
| 264 | |||
| 265 | # Reverse display of the mesage threads. Default order is the the intial | ||
| 266 | # message is on the top with all the replies being displayed below. The | ||
| 267 | # reverse option will put the initial message at the bottom with the | ||
| 268 | # replies on top. | ||
| 269 | # | ||
| 270 | # Default: false | ||
| 271 | #reverse-thread-order=false | ||
| 272 | |||
| 273 | # Sort the thread siblings according to the sort criteria for the messages. If | ||
| 274 | # sort-thread-siblings is false, the thread siblings will be sorted based on | ||
| 275 | # the message UID in ascending order. This option is only applicable for | ||
| 276 | # client-side threading with a backend that enables sorting. Note that there's | ||
| 277 | # a performance impact when sorting is activated. | ||
| 278 | # | ||
| 279 | # Default: false | ||
| 280 | #sort-thread-siblings=false | ||
| 281 | |||
| 282 | #[ui:account=Personal] | ||
| 283 | # | ||
| 284 | # Enable a threaded view of messages. If this is not supported by the backend | ||
| 285 | # (IMAP server or notmuch), threads will be built by the client. | ||
| 286 | # | ||
| 287 | # Default: false | ||
| 288 | threading-enabled=true | ||
| 289 | |||
| 290 | # Force client-side thread building | ||
| 291 | # | ||
| 292 | # Default: false | ||
| 293 | #force-client-threads=false | ||
| 294 | |||
| 295 | # Debounce client-side thread building | ||
| 296 | # | ||
| 297 | # Default: 50ms | ||
| 298 | #client-threads-delay=50ms | ||
| 299 | |||
| 300 | [statusline] | ||
| 301 | # | ||
| 302 | # Describes the format for the status line. This is a comma separated list of | ||
| 303 | # column names with an optional align and width suffix. See [ui].index-columns | ||
| 304 | # for more details. To completely mute the status line except for push | ||
| 305 | # notifications, explicitly set status-columns to an empty string. | ||
| 306 | # | ||
| 307 | # Default: left<*,center:=,right>* | ||
| 308 | #status-columns=left<*,center:=,right>* | ||
| 309 | |||
| 310 | # | ||
| 311 | # Each name in status-columns must have a corresponding column-$name setting. | ||
| 312 | # All column-$name settings accept golang text/template syntax. See | ||
| 313 | # aerc-templates(7) for available template attributes and functions. | ||
| 314 | # | ||
| 315 | # Default settings | ||
| 316 | #column-left=[{{.Account}}] {{.StatusInfo}} | ||
| 317 | #column-center={{.PendingKeys}} | ||
| 318 | #column-right={{.TrayInfo}} | ||
| 319 | |||
| 320 | # | ||
| 321 | # String separator inserted between columns. | ||
| 322 | # See [ui].column-separator for more details. | ||
| 323 | # | ||
| 324 | #column-separator=" " | ||
| 325 | |||
| 326 | # Specifies the separator between grouped statusline elements. | ||
| 327 | # | ||
| 328 | # Default: " | " | ||
| 329 | #separator=" | " | ||
| 330 | |||
| 331 | # Defines the mode for displaying the status elements. | ||
| 332 | # Options: text, icon | ||
| 333 | # | ||
| 334 | # Default: text | ||
| 335 | #display-mode=text | ||
| 336 | |||
| 337 | [viewer] | ||
| 338 | # | ||
| 339 | # Specifies the pager to use when displaying emails. Note that some filters | ||
| 340 | # may add ANSI codes to add color to rendered emails, so you may want to use a | ||
| 341 | # pager which supports ANSI codes. | ||
| 342 | # | ||
| 343 | # Default: less -R | ||
| 344 | #pager=less -R | ||
| 345 | |||
| 346 | # | ||
| 347 | # If an email offers several versions (multipart), you can configure which | ||
| 348 | # mimetype to prefer. For example, this can be used to prefer plaintext over | ||
| 349 | # html emails. | ||
| 350 | # | ||
| 351 | # Default: text/plain,text/html | ||
| 352 | #alternatives=text/plain,text/html | ||
| 353 | |||
| 354 | # | ||
| 355 | # Default setting to determine whether to show full headers or only parsed | ||
| 356 | # ones in message viewer. | ||
| 357 | # | ||
| 358 | # Default: false | ||
| 359 | #show-headers=false | ||
| 360 | |||
| 361 | # | ||
| 362 | # Layout of headers when viewing a message. To display multiple headers in the | ||
| 363 | # same row, separate them with a pipe, e.g. "From|To". Rows will be hidden if | ||
| 364 | # none of their specified headers are present in the message. | ||
| 365 | # | ||
| 366 | # Default: From|To,Cc|Bcc,Date,Subject | ||
| 367 | #header-layout=From|To,Cc|Bcc,Date,Subject | ||
| 368 | |||
| 369 | # Whether to always show the mimetype of an email, even when it is just a single part | ||
| 370 | # | ||
| 371 | # Default: false | ||
| 372 | #always-show-mime=false | ||
| 373 | |||
| 374 | # Parses and extracts http links when viewing a message. Links can then be | ||
| 375 | # accessed with the open-link command. | ||
| 376 | # | ||
| 377 | # Default: true | ||
| 378 | #parse-http-links=true | ||
| 379 | |||
| 380 | [compose] | ||
| 381 | # | ||
| 382 | # Specifies the command to run the editor with. It will be shown in an embedded | ||
| 383 | # terminal, though it may also launch a graphical window if the environment | ||
| 384 | # supports it. Defaults to $EDITOR, or vi. | ||
| 385 | #editor= | ||
| 386 | |||
| 387 | # Address book command | ||
| 388 | address-book-cmd = sh -c 'abook --mutt-query "%s" | tail -n +2' | ||
| 389 | |||
| 390 | # | ||
| 391 | # Default header fields to display when composing a message. To display | ||
| 392 | # multiple headers in the same row, separate them with a pipe, e.g. "To|From". | ||
| 393 | # | ||
| 394 | # Default: To|From,Subject | ||
| 395 | #header-layout=To|From,Subject | ||
| 396 | |||
| 397 | # | ||
| 398 | # Specifies the command to be used to tab-complete email addresses. Any | ||
| 399 | # occurrence of "%s" in the address-book-cmd will be replaced with what the | ||
| 400 | # user has typed so far. | ||
| 401 | # | ||
| 402 | # The command must output the completions to standard output, one completion | ||
| 403 | # per line. Each line must be tab-delimited, with an email address occurring as | ||
| 404 | # the first field. Only the email address field is required. The second field, | ||
| 405 | # if present, will be treated as the contact name. Additional fields are | ||
| 406 | # ignored. | ||
| 407 | # | ||
| 408 | # This parameter can also be set per account in accounts.conf. | ||
| 409 | #address-book-cmd= | ||
| 410 | |||
| 411 | # Specifies the command to be used to select attachments. Any occurence of '%s' | ||
| 412 | # in the file-picker-cmd will be replaced the argument <arg> to :attach -m | ||
| 413 | # <arg>. | ||
| 414 | # | ||
| 415 | # The command must output the selected files to standard output, one file per | ||
| 416 | # line. | ||
| 417 | file-picker-cmd=fzf --multi --query=%s | ||
| 418 | |||
| 419 | # | ||
| 420 | # Allow to address yourself when replying | ||
| 421 | # | ||
| 422 | # Default: true | ||
| 423 | #reply-to-self=true | ||
| 424 | |||
| 425 | # | ||
| 426 | # Warn before sending an email that matches the specified regexp but does not | ||
| 427 | # have any attachments. Leave empty to disable this feature. | ||
| 428 | # | ||
| 429 | # Uses Go's regexp syntax, documented at https://golang.org/s/re2syntax. The | ||
| 430 | # "(?im)" flags are set by default (case-insensitive and multi-line). | ||
| 431 | # | ||
| 432 | # Example: | ||
| 433 | # no-attachment-warning=^[^>]*attach(ed|ment) | ||
| 434 | # | ||
| 435 | #no-attachment-warning= | ||
| 436 | |||
| 437 | # | ||
| 438 | # When set, aerc will generate "format=flowed" bodies with a content type of | ||
| 439 | # "text/plain; format=flowed" as described in RFC3676. This format is easier to | ||
| 440 | # handle for some mailing software, and generally just looks like ordinary | ||
| 441 | # text. To actually make use of this format's features, you'll need support in | ||
| 442 | # your editor. | ||
| 443 | # | ||
| 444 | format-flowed=true | ||
| 445 | |||
| 446 | [multipart-converters] | ||
| 447 | # | ||
| 448 | # Converters allow to generate multipart/alternative messages by converting the | ||
| 449 | # main text/plain part into any other MIME type. Only exact MIME types are | ||
| 450 | # accepted. The commands are invoked with sh -c and are expected to output | ||
| 451 | # valid UTF-8 text. | ||
| 452 | # | ||
| 453 | # Example (obviously, this requires that you write your main text/plain body | ||
| 454 | # using the markdown syntax): | ||
| 455 | text/html=pandoc --wrap=preserve -f gfm+hard_line_breaks -t html --standalone | ||
| 456 | |||
| 457 | [filters] | ||
| 458 | # | ||
| 459 | # Filters allow you to pipe an email body through a shell command to render | ||
| 460 | # certain emails differently, e.g. highlighting them with ANSI escape codes. | ||
| 461 | # | ||
| 462 | # The commands are invoked with sh -c. The following folders are appended to | ||
| 463 | # the system $PATH to allow referencing filters from their name only: | ||
| 464 | # | ||
| 465 | # ${XDG_CONFIG_HOME:-~/.config}/aerc/filters | ||
| 466 | # ${XDG_DATA_HOME:-~/.local/share}/aerc/filters | ||
| 467 | # $PREFIX/share/aerc/filters | ||
| 468 | # /usr/share/aerc/filters | ||
| 469 | # | ||
| 470 | # The following variables are defined in the filter command environment: | ||
| 471 | # | ||
| 472 | # AERC_MIME_TYPE the part MIME type/subtype | ||
| 473 | # AERC_FORMAT the part content type format= parameter | ||
| 474 | # AERC_FILENAME the attachment filename (if any) | ||
| 475 | # AERC_SUBJECT the message Subject header value | ||
| 476 | # AERC_FROM the message From header value | ||
| 477 | # | ||
| 478 | # The first filter which matches the email's mimetype will be used, so order | ||
| 479 | # them from most to least specific. | ||
| 480 | # | ||
| 481 | # You can also match on non-mimetypes, by prefixing with the header to match | ||
| 482 | # against (non-case-sensitive) and a comma, e.g. subject,text will match a | ||
| 483 | # subject which contains "text". Use header,~regex to match against a regex. | ||
| 484 | # | ||
| 485 | #text/plain=colorize | ||
| 486 | #text/calendar=calendar | ||
| 487 | message/delivery-status=bat -fn | ||
| 488 | message/rfc822=bat -fn | ||
| 489 | text/html=pandoc -f html -t plain | bat -fn | ||
| 490 | #text/html=html | colorize | ||
| 491 | text/*=bat -fn | ||
| 492 | application/x-sh=bat -fn -l sh | ||
| 493 | #image/*=catimg -w $(tput cols) - | ||
| 494 | #subject,~Git(hub|lab)=lolcat -f | ||
| 495 | #from,thatguywhodoesnothardwraphismessages=wrap -w 100 | colorize | ||
| 496 | |||
| 497 | # This special filter is only used to post-process email headers when | ||
| 498 | # [viewer].show-headers=true | ||
| 499 | # By default, headers are piped directly into the pager. | ||
| 500 | # | ||
| 501 | #.headers=bat -fp | ||
| 502 | |||
| 503 | [openers] | ||
| 504 | # | ||
| 505 | # Openers allow you to specify the command to use for the :open and :open-link | ||
| 506 | # actions on a per-MIME-type basis. The :open-link URL scheme is used to | ||
| 507 | # determine the MIME type as follows: x-scheme-handler/<scheme>. | ||
| 508 | # | ||
| 509 | # {} is expanded as the temporary filename to be opened. If it is not | ||
| 510 | # encountered in the command, the temporary filename will be appened to the end | ||
| 511 | # of the command. | ||
| 512 | # | ||
| 513 | # Like [filters], openers support basic shell globbing. The first opener which | ||
| 514 | # matches the part's MIME type (or URL scheme handler MIME type) will be used, | ||
| 515 | # so order them from most to least specific. | ||
| 516 | # | ||
| 517 | # Examples: | ||
| 518 | # x-scheme-handler/irc=hexchat | ||
| 519 | # x-scheme-handler/http*=firefox | ||
| 520 | # text/html=surf -dfgms | ||
| 521 | # text/plain=gvim {} +125 | ||
| 522 | # message/rfc822=thunderbird | ||
| 523 | |||
| 524 | [hooks] | ||
| 525 | # | ||
| 526 | # Hooks are triggered whenever the associated event occurs. | ||
| 527 | |||
| 528 | # | ||
| 529 | # Executed when a new email arrives in the selected folder | ||
| 530 | mail-received=notify-send "$AERC_FROM_NAME" "$AERC_SUBJECT" | ||
| 531 | |||
| 532 | # | ||
| 533 | # Executed when aerc starts | ||
| 534 | #aerc-startup=aerc :terminal calcurse && aerc :next-tab | ||
| 535 | |||
| 536 | # | ||
| 537 | # Executed when aerc shuts down. | ||
| 538 | #aerc-shutdown= | ||
| 539 | |||
| 540 | [templates] | ||
| 541 | # Templates are used to populate email bodies automatically. | ||
| 542 | # | ||
| 543 | |||
| 544 | # The directories where the templates are stored. It takes a colon-separated | ||
| 545 | # list of directories. If this is unset or if a template cannot be found, the | ||
| 546 | # following paths will be used as a fallback in that order: | ||
| 547 | # | ||
| 548 | # ${XDG_CONFIG_HOME:-~/.config}/aerc/templates | ||
| 549 | # ${XDG_DATA_HOME:-~/.local/share}/aerc/templates | ||
| 550 | # /usr/local/share/aerc/templates | ||
| 551 | # /usr/share/aerc/templates | ||
| 552 | # | ||
| 553 | #template-dirs= | ||
| 554 | |||
| 555 | # The default template to be used for new messages. | ||
| 556 | # | ||
| 557 | # default: new_message | ||
| 558 | #new-message=new_message | ||
| 559 | |||
| 560 | # The default template to be used for quoted replies. | ||
| 561 | # | ||
| 562 | # default: quoted_reply | ||
| 563 | #quoted-reply=quoted_reply | ||
| 564 | |||
| 565 | # The default template to be used for forward as body. | ||
| 566 | # | ||
| 567 | # default: forward_as_body | ||
| 568 | #forwards=forward_as_body | ||
| 569 | |||
diff --git a/users/ryan/aerc/binds.conf b/users/ryan/aerc/binds.conf new file mode 100644 index 0000000..3c1e2d2 --- /dev/null +++ b/users/ryan/aerc/binds.conf | |||
| @@ -0,0 +1,150 @@ | |||
| 1 | # Binds are of the form <key sequence> = <command to run> | ||
| 2 | # To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>" | ||
| 3 | # If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit | ||
| 4 | <C-p> = :prev-tab<Enter> | ||
| 5 | <C-n> = :next-tab<Enter> | ||
| 6 | <C-t> = :term<Enter> | ||
| 7 | ? = :help keys<Enter> | ||
| 8 | |||
| 9 | [messages] | ||
| 10 | q = :quit<Enter> | ||
| 11 | |||
| 12 | j = :next<Enter> | ||
| 13 | <Down> = :next<Enter> | ||
| 14 | <C-d> = :next 50%<Enter> | ||
| 15 | <C-f> = :next 100%<Enter> | ||
| 16 | <PgDn> = :next 100%<Enter> | ||
| 17 | |||
| 18 | k = :prev<Enter> | ||
| 19 | <Up> = :prev<Enter> | ||
| 20 | <C-u> = :prev 50%<Enter> | ||
| 21 | <C-b> = :prev 100%<Enter> | ||
| 22 | <PgUp> = :prev 100%<Enter> | ||
| 23 | g = :select 0<Enter> | ||
| 24 | G = :select -1<Enter> | ||
| 25 | <C-r> = :read<Enter> | ||
| 26 | <C-u> = :unread<Enter> | ||
| 27 | |||
| 28 | J = :next-folder<Enter> | ||
| 29 | K = :prev-folder<Enter> | ||
| 30 | H = :collapse-folder<Enter> | ||
| 31 | L = :expand-folder<Enter> | ||
| 32 | |||
| 33 | v = :mark -t<Enter> | ||
| 34 | V = :mark -v<Enter> | ||
| 35 | |||
| 36 | T = :toggle-threads<Enter> | ||
| 37 | |||
| 38 | <Enter> = :view<Enter> | ||
| 39 | dd = :mv Trash<Enter> | ||
| 40 | dg = :mv [Gmail]/Trash<Enter> | ||
| 41 | D = :delete<Enter> | ||
| 42 | A = :archive year<Enter> | ||
| 43 | |||
| 44 | C = :compose<Enter> | ||
| 45 | |||
| 46 | rr = :reply -a<Enter> | ||
| 47 | rq = :reply -aq<Enter> | ||
| 48 | Rr = :reply<Enter> | ||
| 49 | Rq = :reply -q<Enter> | ||
| 50 | f = :forward -A<Enter> | ||
| 51 | |||
| 52 | # Git custom stuff ala Drew Devault | ||
| 53 | ga = :pipe -mb git am -3<Enter> | ||
| 54 | gp = :term git push<Enter> | ||
| 55 | rt = :reply -aTthanks<Enter> | ||
| 56 | |||
| 57 | c = :cf<space> | ||
| 58 | $ = :term<space> | ||
| 59 | ! = :term<space> | ||
| 60 | | = :pipe<space> | ||
| 61 | |||
| 62 | / = :search<space> | ||
| 63 | \ = :filter<space> | ||
| 64 | n = :next-result<Enter> | ||
| 65 | N = :prev-result<Enter> | ||
| 66 | <Esc> = :clear<Enter> | ||
| 67 | |||
| 68 | [messages:folder=Drafts] | ||
| 69 | <Enter> = :recall<Enter> | ||
| 70 | |||
| 71 | [view] | ||
| 72 | / = :toggle-key-passthrough<Enter>/ | ||
| 73 | q = :close<Enter> | ||
| 74 | O = :open<Enter> | ||
| 75 | S = :save<space> | ||
| 76 | | = :pipe<space> | ||
| 77 | D = :delete<Enter> | ||
| 78 | dd = :mv Trash<Enter> | ||
| 79 | dg = :mv [Gmail]/Trash<Enter> | ||
| 80 | A = :archive year<Enter> | ||
| 81 | |||
| 82 | <C-l> = :open-link <space> | ||
| 83 | |||
| 84 | f = :forward -A<Enter> | ||
| 85 | rr = :reply -a<Enter> | ||
| 86 | rq = :reply -aq<Enter> | ||
| 87 | Rr = :reply<Enter> | ||
| 88 | Rq = :reply -q<Enter> | ||
| 89 | |||
| 90 | H = :toggle-headers<Enter> | ||
| 91 | <C-k> = :prev-part<Enter> | ||
| 92 | <C-j> = :next-part<Enter> | ||
| 93 | J = :next<Enter> | ||
| 94 | K = :prev<Enter> | ||
| 95 | |||
| 96 | [view::passthrough] | ||
| 97 | $noinherit = true | ||
| 98 | $ex = <C-x> | ||
| 99 | <Esc> = :toggle-key-passthrough<Enter> | ||
| 100 | |||
| 101 | [compose] | ||
| 102 | # Keybindings used when the embedded terminal is not selected in the compose | ||
| 103 | # view | ||
| 104 | $noinherit = true | ||
| 105 | $ex = <C-x> | ||
| 106 | <C-k> = :prev-field<Enter> | ||
| 107 | <C-j> = :next-field<Enter> | ||
| 108 | <A-p> = :switch-account -p<Enter> | ||
| 109 | <A-n> = :switch-account -n<Enter> | ||
| 110 | <tab> = :next-field<Enter> | ||
| 111 | <backtab> = :prev-field<Enter> | ||
| 112 | <C-p> = :prev-tab<Enter> | ||
| 113 | <C-n> = :next-tab<Enter> | ||
| 114 | <C-c> = :cc<Enter> | ||
| 115 | <C-b> = :bcc<Enter> | ||
| 116 | <C-q> = :abort<Enter> | ||
| 117 | |||
| 118 | [compose::editor] | ||
| 119 | # Keybindings used when the embedded terminal is selected in the compose view | ||
| 120 | $noinherit = true | ||
| 121 | $ex = <C-x> | ||
| 122 | <C-k> = :prev-field<Enter> | ||
| 123 | <C-j> = :next-field<Enter> | ||
| 124 | <C-p> = :prev-tab<Enter> | ||
| 125 | <C-n> = :next-tab<Enter> | ||
| 126 | <C-q> = :abort<Enter> | ||
| 127 | |||
| 128 | [compose::review] | ||
| 129 | # Keybindings used when reviewing a message to be sent | ||
| 130 | y = :send<Enter> | ||
| 131 | n = :abort<Enter> | ||
| 132 | v = :preview<Enter> | ||
| 133 | p = :postpone<Enter> | ||
| 134 | q = :choose -o d discard abort -o p postpone postpone<Enter> | ||
| 135 | e = :edit<Enter> | ||
| 136 | a = :attach<space> | ||
| 137 | d = :detach<space> | ||
| 138 | S = :sign<Enter> | ||
| 139 | E = :encrypt<Enter> | ||
| 140 | A = :attach-key<Enter> | ||
| 141 | C = :multipart text/html<Enter> | ||
| 142 | |||
| 143 | [terminal] | ||
| 144 | $noinherit = true | ||
| 145 | $ex = <C-x> | ||
| 146 | <C-q> = :close<Enter> | ||
| 147 | |||
| 148 | <C-p> = :prev-tab<Enter> | ||
| 149 | <C-n> = :next-tab<Enter> | ||
| 150 | |||
diff --git a/users/ryan/aerc/signature_personal b/users/ryan/aerc/signature_personal new file mode 100644 index 0000000..d287d98 --- /dev/null +++ b/users/ryan/aerc/signature_personal | |||
| @@ -0,0 +1,4 @@ | |||
| 1 | -- | ||
| 2 | Best, | ||
| 3 | Ryan Schanzenbacher | ||
| 4 | |||
diff --git a/users/ryan/aerc/signature_rit_personal b/users/ryan/aerc/signature_rit_personal new file mode 100644 index 0000000..e5e0b0a --- /dev/null +++ b/users/ryan/aerc/signature_rit_personal | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | -- | ||
| 2 | Best, | ||
| 3 | Ryan Schanzenbacher | ||
| 4 | Rochester Institute of Technology | ||
| 5 | Cybersecurity BS/MS Student | ||
| 6 | |||
diff --git a/users/ryan/aerc/templates/quoted_reply b/users/ryan/aerc/templates/quoted_reply new file mode 100644 index 0000000..28f9ee8 --- /dev/null +++ b/users/ryan/aerc/templates/quoted_reply | |||
| @@ -0,0 +1,7 @@ | |||
| 1 | X-Mailer: aerc {{version}} | ||
| 2 | |||
| 3 | {{.Signature}} | ||
| 4 | |||
| 5 | On {{dateFormat (.OriginalDate | toLocal) "Mon Jan 2, 2006 at 3:04 PM MST"}}, {{(index .OriginalFrom 0).Name}} wrote: | ||
| 6 | {{trimSignature .OriginalText | quote}} | ||
| 7 | |||
diff --git a/users/ryan/home.nix b/users/ryan/home.nix new file mode 100644 index 0000000..9154066 --- /dev/null +++ b/users/ryan/home.nix | |||
| @@ -0,0 +1,126 @@ | |||
| 1 | { config, pkgs, ... }: | ||
| 2 | |||
| 3 | { | ||
| 4 | # This value determines the Home Manager release that your configuration is | ||
| 5 | # compatible with. This helps avoid breakage when a new Home Manager release | ||
| 6 | # introduces backwards incompatible changes. | ||
| 7 | # | ||
| 8 | # You should not change this value, even if you update Home Manager. If you do | ||
| 9 | # want to update the value, then make sure to first check the Home Manager | ||
| 10 | # release notes. | ||
| 11 | home.stateVersion = "26.05"; # Please read the comment before changing. | ||
| 12 | |||
| 13 | news.display = "silent"; | ||
| 14 | |||
| 15 | programs.starship = { | ||
| 16 | enable = true; | ||
| 17 | settings = { | ||
| 18 | add_newline = false; | ||
| 19 | character = { | ||
| 20 | success_symbol = "[➜](bold green)"; | ||
| 21 | error_symbol = "[➜](bold red)"; | ||
| 22 | }; | ||
| 23 | time = { | ||
| 24 | disabled = false; | ||
| 25 | format = "\[ $time \]($style)"; | ||
| 26 | time_format = "%T"; | ||
| 27 | }; | ||
| 28 | }; | ||
| 29 | }; | ||
| 30 | |||
| 31 | programs.zen-browser = { | ||
| 32 | enable = true; | ||
| 33 | package = null; # managed via homebrew | ||
| 34 | darwinDefaultsId = "app.zen-browser.zen"; | ||
| 35 | policies = import ./zen/zenPolicies.nix; | ||
| 36 | profiles.default = import ./zen/zenProfile.nix; | ||
| 37 | }; | ||
| 38 | |||
| 39 | programs.eza = { | ||
| 40 | enable = true; | ||
| 41 | enableZshIntegration = true; | ||
| 42 | }; | ||
| 43 | |||
| 44 | programs.gpg.enable = true; | ||
| 45 | |||
| 46 | programs.git = { | ||
| 47 | enable = true; | ||
| 48 | signing.signByDefault = true; | ||
| 49 | settings = { | ||
| 50 | user = { | ||
| 51 | name = "Ryan Schanzenbacher"; | ||
| 52 | email = "ryan@rschanz.org"; | ||
| 53 | }; | ||
| 54 | core.pager = "${pkgs.delta}/bin/delta"; | ||
| 55 | init.defaultBranch = "main"; | ||
| 56 | merge.conflictStyle = "zdiff3"; | ||
| 57 | interactive.diffFilter = "${pkgs.delta}/bin/delta --color-only"; | ||
| 58 | delta = { | ||
| 59 | navigate = true; | ||
| 60 | side-by-side = true; | ||
| 61 | }; | ||
| 62 | }; | ||
| 63 | }; | ||
| 64 | |||
| 65 | services.gpg-agent = { | ||
| 66 | enable = true; | ||
| 67 | enableSshSupport = true; | ||
| 68 | }; | ||
| 69 | |||
| 70 | programs.zsh = { | ||
| 71 | enable = true; | ||
| 72 | initContent = '' | ||
| 73 | export GPG_TTY="$(tty)" | ||
| 74 | export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" | ||
| 75 | gpgconf --launch gpg-agent | ||
| 76 | gpg-connect-agent updatestartuptty /bye > /dev/null | ||
| 77 | ''; | ||
| 78 | shellAliases = { | ||
| 79 | cat = "bat --paging=never"; | ||
| 80 | diff = "delta"; | ||
| 81 | }; | ||
| 82 | }; | ||
| 83 | |||
| 84 | # The home.packages option allows you to install Nix packages into your | ||
| 85 | # environment. | ||
| 86 | home.packages = with pkgs; [ | ||
| 87 | neovim | ||
| 88 | git | ||
| 89 | yt-dlp | ||
| 90 | aerc | ||
| 91 | gdu | ||
| 92 | mpv | ||
| 93 | taskwarrior3 | ||
| 94 | delta | ||
| 95 | bat | ||
| 96 | pass | ||
| 97 | pandoc | ||
| 98 | ]; | ||
| 99 | |||
| 100 | # Home Manager is pretty good at managing dotfiles. The primary way to manage | ||
| 101 | # plain files is through 'home.file'. | ||
| 102 | home.file = { | ||
| 103 | # # Building this configuration will create a copy of 'dotfiles/screenrc' in | ||
| 104 | # # the Nix store. Activating the configuration will then make '~/.screenrc' a | ||
| 105 | # # symlink to the Nix store copy. | ||
| 106 | # ".screenrc".source = dotfiles/screenrc; | ||
| 107 | |||
| 108 | # # You can also set the file content immediately. | ||
| 109 | # ".gradle/gradle.properties".text = '' | ||
| 110 | # org.gradle.console=verbose | ||
| 111 | # org.gradle.daemon.idletimeout=3600000 | ||
| 112 | # ''; | ||
| 113 | }; | ||
| 114 | |||
| 115 | xdg.configFile."aerc" = { | ||
| 116 | source = ./aerc; | ||
| 117 | recursive = true; | ||
| 118 | }; | ||
| 119 | |||
| 120 | home.sessionVariables = { | ||
| 121 | XDG_CONFIG_HOME = "${config.home.homeDirectory}/.config"; | ||
| 122 | }; | ||
| 123 | |||
| 124 | # Let Home Manager install and manage itself. | ||
| 125 | programs.home-manager.enable = true; | ||
| 126 | } | ||
diff --git a/users/ryan/zen/zenPolicies.nix b/users/ryan/zen/zenPolicies.nix new file mode 100644 index 0000000..edde27d --- /dev/null +++ b/users/ryan/zen/zenPolicies.nix | |||
| @@ -0,0 +1,125 @@ | |||
| 1 | let | ||
| 2 | lock-false = { | ||
| 3 | Value = false; | ||
| 4 | Status = "locked"; | ||
| 5 | }; | ||
| 6 | lock-true = { | ||
| 7 | Value = true; | ||
| 8 | Status = "locked"; | ||
| 9 | }; | ||
| 10 | in | ||
| 11 | { | ||
| 12 | EnableTrackingProtection = { | ||
| 13 | Value = true; | ||
| 14 | Locked = true; | ||
| 15 | Cryptomining = true; | ||
| 16 | Fingerprinting = true; | ||
| 17 | EmailTracking = true; | ||
| 18 | }; | ||
| 19 | UserMessaging = { | ||
| 20 | WhatsNew = false; | ||
| 21 | ExtensionRecommendations = false; | ||
| 22 | FeatureRecommendations = false; | ||
| 23 | UrlbarInterventions = false; | ||
| 24 | SkipOnboarding = true; | ||
| 25 | MoreFromMozilla = false; | ||
| 26 | Labs = false; | ||
| 27 | Locked = true; | ||
| 28 | }; | ||
| 29 | DisableAppUpdate = true; | ||
| 30 | DisableAccounts = true; | ||
| 31 | DisableFirefoxAccounts = true; | ||
| 32 | DisableFirefoxStudies = true; | ||
| 33 | DisablePocket = true; | ||
| 34 | DisableTelemetry = true; | ||
| 35 | AutofillAddressEnabled = false; | ||
| 36 | AutofillCreditCardEnabled = false; | ||
| 37 | DisableMasterPasswordCreation = true; | ||
| 38 | PasswordManagerEnabled = false; | ||
| 39 | PrimaryPassword = false; | ||
| 40 | OfferToSaveLogins = false; | ||
| 41 | NoDefaultBookmarks = true; | ||
| 42 | OverrideFirstRunPage = ""; | ||
| 43 | OverridePostUpdatePage = ""; | ||
| 44 | FirefoxHome = { | ||
| 45 | Search = true; | ||
| 46 | TopSites = true; | ||
| 47 | SponsoredTopSites = false; | ||
| 48 | Highlights = false; | ||
| 49 | Pocket = false; | ||
| 50 | SponsoredPocket = false; | ||
| 51 | Snippets = false; | ||
| 52 | Locked = true; | ||
| 53 | }; | ||
| 54 | SearchSuggestEnabled = true; | ||
| 55 | FirefoxSuggest = { | ||
| 56 | WebSuggestions = true; | ||
| 57 | SponsoredSuggestions = false; | ||
| 58 | ImproveSuggest = false; | ||
| 59 | Locked = true; | ||
| 60 | }; | ||
| 61 | PictureInPicture = lock-true; | ||
| 62 | HardwareAcceleration = true; | ||
| 63 | Certificates = { | ||
| 64 | ImportEnterpriseRoots = true; | ||
| 65 | }; | ||
| 66 | ExtensionSettings = { | ||
| 67 | #"*".installation_mode = "blocked"; | ||
| 68 | # uBlock Origin | ||
| 69 | "uBlock0@raymondhill.net" = { | ||
| 70 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; | ||
| 71 | installation_mode = "force_installed"; | ||
| 72 | }; | ||
| 73 | # Bitwarden | ||
| 74 | "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { | ||
| 75 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi"; | ||
| 76 | installation_mode = "normal_installed"; | ||
| 77 | }; | ||
| 78 | # SponsorBlock | ||
| 79 | "sponsorBlocker@ajay.app" = { | ||
| 80 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi"; | ||
| 81 | installation_mode = "force_installed"; | ||
| 82 | }; | ||
| 83 | # DeArrow | ||
| 84 | "deArrow@ajay.app" = { | ||
| 85 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/dearrow/latest.xpi"; | ||
| 86 | installation_mode = "force_installed"; | ||
| 87 | }; | ||
| 88 | # Return Youtube Dislike | ||
| 89 | "{762f9885-5a13-4abd-9c77-433dcd38b8fd}" = { | ||
| 90 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/return-youtube-dislikes/latest.xpi"; | ||
| 91 | installation_mode = "force_installed"; | ||
| 92 | }; | ||
| 93 | # Youtube Nonstop | ||
| 94 | "{0d7cafdd-501c-49ca-8ebb-e3341caaa55e}" = { | ||
| 95 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/youtube-nonstop/latest.xpi"; | ||
| 96 | installation_mode = "force_installed"; | ||
| 97 | }; | ||
| 98 | # TamperMonkey | ||
| 99 | "firefox@tampermonkey.net" = { | ||
| 100 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/tampermonkey/latest.xpi"; | ||
| 101 | installation_mode = "force_installed"; | ||
| 102 | }; | ||
| 103 | # Floccus | ||
| 104 | "floccus@handmadeideas.org" = { | ||
| 105 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/floccus/latest.xpi"; | ||
| 106 | installation_mode = "force_installed"; | ||
| 107 | }; | ||
| 108 | # Mailvelope | ||
| 109 | "jid1-AQqSMBYb0a8ADg@jetpack" = { | ||
| 110 | install_url = "https://addons.mozilla.org/firefox/downloads/latest/mailvelope/latest.xpi"; | ||
| 111 | installation_mode = "force_installed"; | ||
| 112 | }; | ||
| 113 | }; | ||
| 114 | Preferences = { | ||
| 115 | "xpinstall.whitelist.required" = lock-true; | ||
| 116 | "dom.webgpu.enabled" = lock-true; | ||
| 117 | "media.eme.enabled" = lock-true; | ||
| 118 | "general.autoScroll" = lock-true; | ||
| 119 | "general.smoothScroll" = lock-true; | ||
| 120 | "browser.crashReports.unsubmittedCheck.autoSubmit2" = lock-false; | ||
| 121 | "browser.aboutConfig.showWarning" = lock-false; | ||
| 122 | "media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled" = lock-true; | ||
| 123 | }; | ||
| 124 | } | ||
| 125 | |||
diff --git a/users/ryan/zen/zenProfile.nix b/users/ryan/zen/zenProfile.nix new file mode 100644 index 0000000..d77a906 --- /dev/null +++ b/users/ryan/zen/zenProfile.nix | |||
| @@ -0,0 +1,71 @@ | |||
| 1 | rec { | ||
| 2 | settings = { | ||
| 3 | "zen.welcome-screen.seen" = true; | ||
| 4 | "zen.urlbar.behavior" = "float"; | ||
| 5 | "zen.view.compact.enable-at-startup"= true; | ||
| 6 | "zen.view.use-single-toolbar"= false; | ||
| 7 | "zen.view.window.scheme"= 0; | ||
| 8 | }; | ||
| 9 | |||
| 10 | pinsForce = true; | ||
| 11 | pins = { | ||
| 12 | "Discord" = { | ||
| 13 | id = "59d28a80-d185-4dec-92cb-6da549cdfd27"; | ||
| 14 | workspace = spaces."Personal".id; | ||
| 15 | url = "https://discord.com/channels/@me"; | ||
| 16 | position = 101; | ||
| 17 | isEssential = true; | ||
| 18 | }; | ||
| 19 | "RSS" = { | ||
| 20 | id = "0fa25825-01f2-49ce-b8a2-80f1100e782c"; | ||
| 21 | workspace = spaces."Personal".id; | ||
| 22 | url = "https://rss.ryan77627.xyz"; | ||
| 23 | position = 102; | ||
| 24 | isEssential = true; | ||
| 25 | }; | ||
| 26 | }; | ||
| 27 | |||
| 28 | spacesForce = true; | ||
| 29 | spaces = { | ||
| 30 | "Personal" = { | ||
| 31 | id = "2392f396-2548-4a20-9fb8-a3e940be4a58"; | ||
| 32 | #icon = ""; | ||
| 33 | position = 1000; | ||
| 34 | theme = { | ||
| 35 | type = "gradient"; | ||
| 36 | colors = [ | ||
| 37 | { | ||
| 38 | red = 199; | ||
| 39 | green = 161; | ||
| 40 | blue = 247; | ||
| 41 | algorithm = "complementary"; | ||
| 42 | type = "explicit-lightness"; | ||
| 43 | lightness = 80; | ||
| 44 | #isPrimary = true; | ||
| 45 | } | ||
| 46 | # { | ||
| 47 | # red = 157; | ||
| 48 | # green = 251; | ||
| 49 | # blue = 194; | ||
| 50 | # algorithm = "splitComplimentary"; | ||
| 51 | # type = "explicit-lightness"; | ||
| 52 | # lightness = 80; | ||
| 53 | # isPrimary = false; | ||
| 54 | # } | ||
| 55 | # { | ||
| 56 | # red = 161; | ||
| 57 | # green = 243; | ||
| 58 | # blue = 247; | ||
| 59 | # algorithm = "splitComplimentary"; | ||
| 60 | # type = "explicit-lightness"; | ||
| 61 | # lightness = 80; | ||
| 62 | # isPrimary = false; | ||
| 63 | # } | ||
| 64 | ]; | ||
| 65 | opacity = 0.419; | ||
| 66 | texture = 0.3125; | ||
| 67 | }; | ||
| 68 | }; | ||
| 69 | }; | ||
| 70 | } | ||
| 71 | |||
