Fixing monitor layout. - dotfiles - These are my dotfiles. There are many like it, but these are mine.
 (HTM) git clone git://jay.scot/dotfiles
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
       ---
 (DIR) commit b4f15da7233f538384b6987014779998300e6c50
 (DIR) parent 38522989aa40a65ccd5ce9d8635ec097f20a61d8
 (HTM) Author: Jay Scott <me@jay.scot>
       Date:   Sun,  1 Jun 2025 11:29:00 +0100
       
       Fixing monitor layout.
       
       Diffstat:
         M README                              |       6 +++---
         M ashrc                               |      19 +++++++------------
         M bootstrap.sh                        |       2 +-
         A isync/mbsyncrc                      |      24 ++++++++++++++++++++++++
         M lynx/bookmarks.html                 |      21 +++++++++++++--------
         A mutt/gruvbox                        |     121 +++++++++++++++++++++++++++++++
         M mutt/muttrc                         |     122 +++++++++++++++----------------
         M sway/config                         |      15 +++++++++++++--
       
       8 files changed, 239 insertions(+), 91 deletions(-)
       ---
 (DIR) diff --git a/README b/README
       @@ -17,9 +17,9 @@ my main desktop OS and are forever evolving.
          terminal       : foot
          launcher       : bemenu
          email          : neomutt
       -  browser        : qutebrowser / librewolf
       -  media          : mpv
       -  password mgmt  : pass
       +  browser        : firefox / lynx
       +  media          : kew / mpv
       +  password mgmt  : gopass
          vpn            : mullvad
          news           : newsraft
        
 (DIR) diff --git a/ashrc b/ashrc
       @@ -5,7 +5,6 @@ export XDG_STATE_HOME="$HOME/.local/state"
        
        # cleanup ~/
        export PASSWORD_STORE_DIR="$XDG_CONFIG_HOME"/pass
       -export CARGO_HOME="$XDG_DATA_HOME"/cargo
        
        # common exports
        GPG_TTY=$(tty)
       @@ -45,23 +44,19 @@ alias mpv="mpv --autofit=30% --really-quiet --no-terminal"
        alias w="w3m -B"
        
        # vpn
       +alias von='mullvad ~/.config/mullvad/se-mma-wg-111.conf'
       +alias vcheck='curl https://am.i.mullvad.net/connected'
       +
       +# vpn
        alias von='doas wg-quick up mullvad'
        alias voff='doas wg-quick down mullvad'
        alias vcheck='curl https://am.i.mullvad.net/connected'
        
       +# pass
       +export PASSWORD_STORE_DIR=$HOME/src/pass
       +
        # ash
        export LANG=en_US.UTF-8
        export LC_CTYPE="en_US.UTF-8"
        export LC_ALL=en_US.UTF-8
        export PS1="\[\e[00;34m\]▶▶▶ \W \[\e[0m\]"
       -
       -mirror_repo() {
       -    if [ -d .git ] || git rev-parse --git-dir > /dev/null 2>&1; then
       -        remote_url="git@jay.scot:$(basename $(pwd))"
       -        git remote add mirror "$remote_url" 2>/dev/null || true
       -        git push --mirror mirror
       -        echo "Mirrored to $remote_url"
       -    else
       -        echo "Not a git repository"
       -    fi
       -}
 (DIR) diff --git a/bootstrap.sh b/bootstrap.sh
       @@ -4,7 +4,7 @@ DOTFILES=$(pwd)
        
        FILES='ashrc profile'
        ROOT='bin'
       -CONFIG='foot git lynx mutt newsraft nvim qutebrowser sway waybar'
       +CONFIG='foot git isync lynx mutt newsraft nvim qutebrowser sway waybar'
        
        link() {
                for f in $FILES; do ln -sfn "$DOTFILES/$f" "$HOME/.$f"; done
 (DIR) diff --git a/isync/mbsyncrc b/isync/mbsyncrc
       @@ -0,0 +1,24 @@
       +Create Both
       +Expunge Both
       +Remove Both
       +Sync All
       +SyncState *
       +
       +IMAPAccount jay
       +Host imap.mailbox.org
       +User me@jay.scot
       +PassCmd "gopass show -o tech/mailbox.org"
       +TLSType IMAPS
       +
       +IMAPStore jay-remote
       +Account jay
       +
       +MaildirStore jay-local
       +SubFolders Verbatim
       +Path ~/.mail/jay/
       +Inbox ~/.mail/jay/Inbox
       +
       +Channel jay
       +Far :jay-remote:
       +Near :jay-local:
       +Patterns *
 (DIR) diff --git a/lynx/bookmarks.html b/lynx/bookmarks.html
       @@ -12,13 +12,18 @@
        <ol>
        <h2>Gopher</h2>
        <li><a href="gopher://jay.scot/">jay.scot</a></li>
       -<li><a href="gopher://gopher.icu/">Ian J</a>
       -<li><a href="gopher://hngopher.com">Hacker News</a>
       -<LI><a href="gopher://gopherpedia.com/">gopherpedia</a>
       -<LI><a href="gopher://bitreich.org/1/lawn">The Gopher Lawn</a>
       -<LI><a href="gopher://gopher.black/1/moku-pona">Aggregator of phlog</a>
       -<LI><a href="gopher://i-logout.cz/1/bongusta/">Bongusta</a>
       -<LI><a href="gopher://floodgap.com/">Floodgap</a>
       +<li><a href="gopher://1436.ninja/1/Port70News">Port 70 News</a></li>
       +<li><a href="gopher://gopher.metafilter.com/1/MetaFilter">Metafilter</a></li>
       +<li><a href="gopher://hngopher.com">Hacker News</a></li>
       +<li><a href="gopher://gopherpedia.com/">gopherpedia</a></li>
       +<li><a href="gopher://bitreich.org/1/lawn">The Gopher Lawn</a></li>
       +<li><a href="gopher://gopher.black/1/moku-pona">Aggregator of phlog</a></li>
       +<li><a href="gopher://i-logout.cz/1/bongusta/">Bongusta</a></li>
       +<li><a href="gopher://gopher.icu/">Ian J</a></li>
       +<li><a href="gopher://floodgap.com/">Floodgap</a></li>
        <hr>
        <h2>Web</h2>
       -<LI><a href="https://text.npr.org/">NPR</a>
       +<li><a href="https://text.npr.org/">NPR</a></li>
       +<li><a href="https://neuters.de/">Reuters</a></li>
       +<li><a href="http://lite.cnn.com/">CNN</a></li>
       +</ol>
 (DIR) diff --git a/mutt/gruvbox b/mutt/gruvbox
       @@ -0,0 +1,121 @@
       +# gruvbox dark (contrast dark):
       +
       +# bg0    = 234
       +# bg1    = 237
       +# bg2    = 239
       +# bg3    = 241
       +# bg4    = 243
       +# 
       +# gray   = 245
       +# 
       +# fg0    = 229
       +# fg1    = 223
       +# fg2    = 250
       +# fg3    = 248
       +# fg4    = 246
       +# 
       +# red    = 167
       +# green  = 142
       +# yellow = 214
       +# blue   = 109
       +# purple = 175
       +# aqua   = 108
       +# orange = 208
       +
       +
       +# See http://www.mutt.org/doc/manual/#color
       +
       +color attachment  color109 color234
       +color bold        color229 color234
       +color error       color167 color234
       +color hdrdefault  color246 color234
       +color indicator   color223 color237
       +color markers     color243 color234
       +color normal      color223 color234
       +color quoted      color250 color234
       +color quoted1     color108 color234
       +color quoted2     color250 color234
       +color quoted3     color108 color234
       +color quoted4     color250 color234
       +color quoted5     color108 color234
       +color search      color234 color208
       +color signature   color108 color234
       +color status      color234 color250
       +color tilde       color243 color234
       +color tree        color142 color234
       +color underline   color223 color239
       +
       +color sidebar_divider    color250 color234
       +color sidebar_new        color142 color234
       +
       +color index color142 color234 ~N
       +color index color108 color234 ~O
       +color index color109 color234 ~P
       +color index color214 color234 ~F
       +color index color175 color234 ~Q
       +color index color167 color234 ~=
       +color index color234 color223 ~T
       +color index color234 color167 ~D
       +
       +color header color214 color234 "^(To:|From:)"
       +color header color142 color234 "^Subject:"
       +color header color108 color234 "^X-Spam-Status:"
       +color header color108 color234 "^Received:"
       +
       +# Regex magic for URLs and hostnames
       +#
       +# Attention: BSD's regex has RE_DUP_MAX set to 255.
       +#
       +# Examples:
       +#   http://some-service.example.com
       +#   example.com
       +#   a.example.com
       +#   some-service.example.com
       +#   example.com/
       +#   example.com/datenschutz
       +#   file:///tmp/foo
       +#
       +# Non-examples:
       +#   1.1.1900
       +#   14.02.2022/24:00
       +#   23.59
       +#   w.l.o.g
       +#   team.its
       +color body color142 color234 "[a-z]{3,255}://[[:graph:]]*"
       +color body color142 color234 "([-[:alnum:]]+\\.)+([0-9]{1,3}|[-[:alpha:]]+)/[[:graph:]]*"
       +color body color142 color234 "([-[:alnum:]]+\\.){2,255}[-[:alpha:]]{2,10}"
       +
       +# IPv4 and IPv6 stolen from https://stackoverflow.com/questions/53497/regular-expression-that-matches-valid-ipv6-addresses
       +color body color142 color234 "((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])"
       +color body color142 color234 "(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))"
       +
       +# Mail addresses and mailto URLs
       +color body color208 color234 "[-a-z_0-9.%$]+@[-a-z_0-9.]+\\.[-a-z][-a-z]+"
       +color body color208 color234 "mailto:[-a-z_0-9.]+@[-a-z_0-9.]+"
       +
       +# some simleys and stuff
       +color body color234 color214 "[;:]-*[)>(<lt;|]"
       +color body color229 color234 "\\*[- A-Za-z]+\\*"
       +
       +color body color214 color234 "^-.*PGP.*-*"
       +color body color142 color234 "^gpg: Good signature from"
       +color body color167 color234 "^gpg: Can't.*$"
       +color body color214 color234 "^gpg: WARNING:.*$"
       +color body color167 color234 "^gpg: BAD signature from"
       +color body color167 color234 "^gpg: Note: This key has expired!"
       +color body color214 color234 "^gpg: There is no indication that the signature belongs to the owner."
       +color body color214 color234 "^gpg: can't handle these multiple signatures"
       +color body color214 color234 "^gpg: signature verification suppressed"
       +color body color214 color234 "^gpg: invalid node with packet of type"
       +
       +color body color142 color234 "^Good signature from:"
       +color body color167 color234 "^.?BAD.? signature from:"
       +color body color142 color234 "^Verification successful"
       +color body color167 color234 "^Verification [^s][^[:space:]]*$"
       +
       +color compose header            color223 color234
       +color compose security_encrypt  color175 color234
       +color compose security_sign     color109 color234
       +color compose security_both     color142 color234
       +color compose security_none     color208 color234
       +
 (DIR) diff --git a/mutt/muttrc b/mutt/muttrc
       @@ -1,44 +1,30 @@
       -# info
       -set imap_user = 'me@jay.scot'
       -set imap_pass = `pass tech/mailbox.org | head -n1`
       -set realname = 'Jay Scott'
       -set from = 'me@jay.scot'
       -
       -# smtp settings
       -set smtp_pass = $imap_pass
       -set smtp_url = smtps://$imap_user@smtp.mailbox.org
       -set ssl_force_tls = yes
       +source ~/.config/mutt/gruvbox
        
       -# imap settings
       -set spoolfile ="imaps://imap.mailbox.org/"
       -set folder = $spoolfile
       -set postponed = "+Drafts"
       -set record = "+Sent"
       -set trash = "+Trash"
       -set folder=imaps://imap.mailbox.org/
       -set imap_check_subscribed
       +# info
       +set realname        = 'Jay Scott'
       +set from                = 'me@jay.scot'
        
        # general
       -set envelope_from = yes
       -set use_from = yes
       -set editor = "nvim"
       -set markers = no
       -set mark_old = no
       -set delete = yes
       -set forward_format = "Fwd: %s"
       -set fcc_attach = no
       -set edit_headers = yes
       -set fast_reply = yes
       -set include = yes
       +set envelope_from        = yes
       +set use_from                = yes
       +set editor                        = "nvim"
       +set markers                 = no
       +set mark_old                 = no
       +set delete                        = yes
       +set forward_format        = "Fwd: %s"
       +set fcc_attach                 = no
       +set edit_headers        = yes
       +set fast_reply                = yes
       +set include                        = yes
        
        # gpg encryption
        source ~/.config/mutt/gpg.rc
        bind compose p pgp-menu
       -set pgp_use_gpg_agent = yes
       -set pgp_sign_as = 0726AF07C73389E1E4475B7EC88BBC696A39CCB0
       -set pgp_timeout = 3600
       -set crypt_autosign = no
       -set crypt_replyencrypt = yes
       +set pgp_use_gpg_agent         = yes
       +set pgp_sign_as                 = 0726AF07C73389E1E4475B7EC88BBC696A39CCB0
       +set pgp_timeout                 = 3600
       +set crypt_autosign                 = no
       +set crypt_replyencrypt         = yes
        
        # html emails
        auto_view text/html
       @@ -49,48 +35,54 @@ unset wait_key
        unset allow_8bit
        
        # paths
       -set header_cache = ~/.cache/mutt/headers
       -set message_cachedir = ~/.cache/mutt/bodies
       -set mailcap_path = ~/.config/mutt/mailcap
       -set alias_file = ~/.config/mutt/aliases
       -set tmpdir = ~/.cache/
       -set sort_alias = alias
       -set reverse_alias = yes
       -source $alias_file
       +set folder           = ~/.mail
       +set header_cache     = ~/.config/mutt/cache/headers
       +set message_cachedir = ~/.config/mutt/cache/bodies
       +set mailcap_path     = ~/.config/mutt/mailcap
       +set tmpdir           = ~/.cache/
       +
       +set spoolfile        = "+jay/Inbox"
       +set postponed   = "+jay/Drafts"
       +set record      = "+jay/Sent"
       +
       +# inbox
       +mailboxes ! `echo ~/.mail/jay/*`
       +
       +# aliases
       +set alias_file                = ~/.config/mutt/aliases
       +set sort_alias                = alias
       +set reverse_alias         = yes
       +source                                 $alias_file
        
        # macros
        bind index g noop
        bind index gg first-entry
        bind index G last-entry
        bind index <space> collapse-thread
       -macro index A "<save-message>=Keep<enter><enter><sync-mailbox><enter>" "save to archive"
       +macro index \Cr "T~U<enter><tag-prefix><clear-flag>N<untag-pattern>.<enter>" "mark all messages as read"
       +macro index o "<shell-escape>mbsync -a -c \"$XDG_CONFIG_HOME\"/isync/mbsyncrc<enter>" "run isync to sync all mail"
       +macro index C "<copy-message>?<toggle-mailboxes>" "copy a message to a mailbox"
       +macro index A "<save-message>=jay/archive<enter><enter><sync-mailbox><enter>" "save to archive"
       +macro index M "<save-message>?<toggle-mailboxes>" "move a message to a mailbox"
       +macro index,pager O "<pipe-message>urlscan -c<Enter>" "call urlscan to extract URLs out of a message"
        
        # sorting
       -set sort = threads
       -set sort_aux = reverse-date
       -set pager_index_lines = 15
       -set pager_context = 1
       -set index_format = '%Z | %{%b %d %Y} | %-15.15F | %s'
       -
       -# sidebar
       -set mail_check_stats = yes
       -set sidebar_visible = yes
       -set sidebar_width = 25
       -set sidebar_short_path = yes
       -set sidebar_folder_indent = yes
       -set sidebar_format = "%B%* %?N?%N?"
       -set sidebar_divider_char = │
       -bind index,pager \Ck sidebar-prev
       -bind index,pager <tab> sidebar-next
       -bind index,pager <backtab> sidebar-prev
       -bind index,pager \Cl sidebar-open
       +set sort                                = threads
       +set sort_aux                        = reverse-date
       +set pager_index_lines        = 15
       +set pager_context                = 1
       +set index_format                = '%Z | %{%b %d %Y} | %-15.15F | %s'
        
        # disable help menu
       -set help = no
       +set help                 = yes
        
        # status bar
        set sidebar_delim_chars = "/"
       -set status_chars = " *%A"
       -set status_format = "───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───"
       +set status_chars          = " *%A"
       +set status_format         = "───[ Folder: %f ]───[%r%m messages%?n? (%n new)?%?d? (%d to delete)?%?t? (%t tagged)? ]───%>─%?p?( %p postponed )?───"
        
       -source ~/.config/mutt/theme
       +ignore *
       +unignore from date subject to cc
       +unignore x-mailer
       +unignore x-spam-status
       +unignore x-spam-report
 (DIR) diff --git a/sway/config b/sway/config
       @@ -27,10 +27,21 @@ input * {
            xkb_variant "extd"
        }
        
       +# monitors
       +output DP-1 {
       +        pos 1080 0 res 2560x1440
       +}
       +
       +output DP-2 {
       +        transform 270 pos 0 0 res 1920x1080
       +}
       +
       +focus output DP-1
       +
        # keybinds
        bindsym $mod+Space exec footclient
        bindsym $mod+p exec $menu
       -bindsym $mod+f exec qutebrowser
       +bindsym $mod+f exec firefox
        bindsym $mod+m exec /home/jay/bin/music
        
        bindsym XF86AudioRaiseVolume exec pamixer -i 5
       @@ -46,7 +57,7 @@ bindsym $mod+j focus down
        bindsym $mod+k focus up
        bindsym $mod+l focus right
        
       -bindsym $mod+Left focus left
       +
        bindsym $mod+Down focus down
        bindsym $mod+Up focus up
        bindsym $mod+Right focus right