aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--aerc/dot-config/aerc/Notmuch-MIT.qmap4
-rw-r--r--aerc/dot-config/aerc/accounts.conf59
-rw-r--r--aerc/dot-config/aerc/aerc.conf10
-rw-r--r--aerc/dot-config/aerc/stylesets/default_nicer2
-rw-r--r--alacritty/dot-config/alacritty/alacritty.toml13
-rw-r--r--bash/dot-bashrc15
-rw-r--r--bash/dot-config/bash/notes.bash44
-rw-r--r--bash/dot-config/shellcheckrc4
-rw-r--r--bash/dot-config/shellshort/bm-dirs2
-rw-r--r--bash/dot-config/shellshort/shortcutenvrc5
-rw-r--r--bash/dot-config/shellshort/shortcutrc4
-rw-r--r--bash/dot-config/shellshort/zshnameddirs4
-rw-r--r--bash/dot-profile3
-rw-r--r--dms/dot-config/DankMaterialShell/settings.json209
-rw-r--r--dms/dot-config/DankMaterialShell/themes/moreka/theme.json46
-rw-r--r--email/dot-config/msmtp/config4
-rwxr-xr-xemail/dot-config/notmuch/default/hooks/post-new5
-rw-r--r--gtk/dot-config/Kvantum/kvantum.kvconfig2
-rw-r--r--gtk/dot-config/gtk-3.0/settings.ini17
-rw-r--r--gtk/dot-config/gtk-4.0/settings.ini7
-rw-r--r--latex/dot-config/latexmk/latexmkrc27
-rw-r--r--latex/dot-config/latexmkrc/latexmkrc26
-rw-r--r--lf/dot-config/lf/lfrc2
-rw-r--r--lf/dot-config/lf/shortcutrc2
-rw-r--r--niri/dot-config/niri/config.kdl70
-rw-r--r--niri/dot-config/niri/dms/alttab.kdl2
-rw-r--r--niri/dot-config/niri/dms/colors.kdl24
-rw-r--r--niri/dot-config/niri/dms/layout.kdl2
-rw-r--r--niri/dot-config/niri/dms/windowrules.kdl0
-rw-r--r--qt/dot-config/kdeglobals2
-rw-r--r--qt/dot-config/qt5ct/qt5ct.conf32
-rw-r--r--qt/dot-config/qt6ct/qt6ct.conf31
-rw-r--r--qute/dot-config/qutebrowser/config.py2
-rw-r--r--qute/dot-config/qutebrowser/quickmarks9
-rwxr-xr-xscripts/dot-local/bin/mail_html_view5
-rwxr-xr-xscripts/dot-local/bin/mailsync9
-rwxr-xr-xscripts/dot-local/bin/safe_extract1
-rwxr-xr-xscripts/dot-local/bin/shortcuts4
-rw-r--r--system-notes.md6
-rw-r--r--tmux/dot-config/tmux/tmux.conf49
-rw-r--r--uv/dot-config/uv/uv.toml1
-rw-r--r--w3m/dot-w3m/config173
-rw-r--r--w3m/dot-w3m/keymap17
l---------wayland-basics/dot-config/environment.d/10-home-manager.conf1
-rw-r--r--wayland-basics/dot-config/environment.d/90-dms.conf2
-rw-r--r--wayland-basics/dot-config/mako/config8
-rw-r--r--wayland-basics/dot-config/mimeapps.list2
-rw-r--r--wayland-basics/dot-config/systemd/user/swaybg.service2
-rw-r--r--wayland-basics/dot-local/share/applications/gf2.desktop7
-rwxr-xr-xwayland-basics/dot-local/share/applications/mail-viewer.desktop7
-rw-r--r--zsh/dot-zprofile3
-rw-r--r--zsh/dot-zshrc172
52 files changed, 973 insertions, 186 deletions
diff --git a/aerc/dot-config/aerc/Notmuch-MIT.qmap b/aerc/dot-config/aerc/Notmuch-MIT.qmap
new file mode 100644
index 0000000..8bb60ee
--- /dev/null
+++ b/aerc/dot-config/aerc/Notmuch-MIT.qmap
@@ -0,0 +1,4 @@
+INBOX = tag:inbox and folder:mit/INBOX and not tag:archived
+18650 = tag:18650 and folder:mit/INBOX and not tag:archived
+18650-org = tag:18650org and folder:mit/INBOX and not tag:archived
+18650-thr = thread:"{tag:18650 and not tag:archived and not tag:sent}"
diff --git a/aerc/dot-config/aerc/accounts.conf b/aerc/dot-config/aerc/accounts.conf
index d03e999..ccfca5b 100644
--- a/aerc/dot-config/aerc/accounts.conf
+++ b/aerc/dot-config/aerc/accounts.conf
@@ -1,31 +1,40 @@
[MIT]
-source = maildir://~/.local/share/mail/mit
-outgoing = msmtp -a mit
-default = INBOX
-from = Mohammad Reza Karimi <moreka@mit.edu>
-copy-to = Sent
-postpone = Drafts
-trash = Deleted
-archive = Archive
-aliases = moreka@MIT.EDU,MOREKA@MIT.EDU
-cache-headers = true
-
-check-mail-cmd = mbsync mit
+source = maildir://~/.local/share/mail/mit
+outgoing = msmtp -a mit
+default = INBOX
+from = Mohammad Reza Karimi <moreka@mit.edu>
+copy-to = Sent
+postpone = Drafts
+trash = Deleted
+archive = Archive
+aliases = moreka@MIT.EDU,MOREKA@MIT.EDU
+cache-headers = true
+check-mail-cmd = mbsync mit
check-mail-timeout = 20s
-
-folders-sort = INBOX,Sent,Drafts,Archive
-
+folders-sort = INBOX,Sent,Drafts,Archive
[Gmail]
-source = maildir://~/.local/share/mail/m.r.karimi.j@gmail.com
-outgoing = msmtp -a gmail
-default = INBOX
-from = Mohammad Reza Karimi <m.r.karimi.j@gmail.com>
-copy-to = Sent
-postpone = Drafts
-cache-headers = true
-
-check-mail-cmd = mbsync m.r.karimi.j@gmail.com
+source = maildir://~/.local/share/mail/m.r.karimi.j@gmail.com
+outgoing = msmtp -a gmail
+default = INBOX
+from = Mohammad Reza Karimi <m.r.karimi.j@gmail.com>
+copy-to = Sent
+postpone = Drafts
+cache-headers = true
+check-mail-cmd = mbsync m.r.karimi.j@gmail.com
check-mail-timeout = 60s
+folders-sort = INBOX,Sent
-folders-sort = INBOX,Sent
+[Notmuch-MIT]
+source = notmuch://~/.local/share/mail
+outgoing = msmtp -a mit
+default = 18650
+from = Mohammad Reza Karimi <moreka@mit.edu>
+copy-to = Sent
+maildir-store = ~/.local/share/mail
+maildir-account-path = mit
+query-map = ~/.config/aerc/Notmuch-MIT.qmap
+check-mail-cmd = mbsync mit && notmuch new
+check-mail-timeout = 20s
+folders = 18650,18650-thr,18650-org,Sent,Archive,INBOX
+folders-sort = 18650,18650-thr,18650-org,Sent,INBOX,Archive
diff --git a/aerc/dot-config/aerc/aerc.conf b/aerc/dot-config/aerc/aerc.conf
index 084d07e..f2ce995 100644
--- a/aerc/dot-config/aerc/aerc.conf
+++ b/aerc/dot-config/aerc/aerc.conf
@@ -103,6 +103,10 @@ index-columns=flags:5,name<20%,subject,date>=
column-name = {{if .To}}{{index (.To | names) 0}}{{else}} malformed email{{end}}
column-flags = {{.Flags | join " "}}
+[ui:folder~18650]
+threading-enabled=true
+threading-by-subject=true
+
[statusline]
status-columns = account<=,3973e022e932<=,folder<=,status<*,cbe5cfdf7c21>*,cwd>=,e3b0c44298fc>=,e3b0c44298fc>=,tray>=
column-cwd = {{cwd}}
@@ -129,20 +133,16 @@ editor=nvim
header-layout=To,From,Subject
edit-headers=false
focus-body=false
-
address-book-cmd=addr-book-combine \
-c "rg -F -i -- '%s' ~/.cache/maildir-rank-addr/addressbook.tsv" \
-c "khard email --remove-first-line --parsable '%s' | cut -f 1,2"
-
file-picker-cmd=lf -selection-path '%f'
-
reply-to-self=false
empty-subject-warning=true
no-attachment-warning=^[^>]*attach(ed|ment)
format-flowed=true
[multipart-converters]
-
text/html=pandoc -f markdown -t html --standalone
[filters]
@@ -184,7 +184,7 @@ text/calendar=calendar
message/delivery-status=colorize
message/rfc822=colorize
text/html=pandoc -f html -t plain | colorize
-# text/html=! html
+text/html=! html
#text/html=! w3m -T text/html -I UTF-8
text/*=bat -fP --file-name="$AERC_FILENAME"
application/pdf=pdftotext - -l 10 -nopgbrk -q - | fmt -w 100
diff --git a/aerc/dot-config/aerc/stylesets/default_nicer b/aerc/dot-config/aerc/stylesets/default_nicer
index 57d02b1..d68b43b 100644
--- a/aerc/dot-config/aerc/stylesets/default_nicer
+++ b/aerc/dot-config/aerc/stylesets/default_nicer
@@ -31,7 +31,7 @@ tab.bg = #444444
msglist.selected.bg = #87af87
msglist_unread.bold = true
-msglist*.fg = #aaaaaa
+msglist*.fg = #bbbbbb
msglist_unread.fg = #cccccc
msglist_deleted.dim = true
msglist_marked.bg = yellow
diff --git a/alacritty/dot-config/alacritty/alacritty.toml b/alacritty/dot-config/alacritty/alacritty.toml
index b2c8b9b..733dc4b 100644
--- a/alacritty/dot-config/alacritty/alacritty.toml
+++ b/alacritty/dot-config/alacritty/alacritty.toml
@@ -1,16 +1,15 @@
[general]
-import = [
- "~/.config/alacritty/dank-theme.toml"
-]
live_config_reload = true
[window]
-decorations = "None"
-padding = { x = 4, y = 4 }
-opacity = 0.95
+# decorations = "None"
+padding = { x = 6, y = 6 }
+# opacity = 0.95
[font]
-normal = { family = "Comic Code", style = "Regular" }
+# normal = { family = "Comic Code", style = "Regular" }
+# normal = { family = "SF Mono", style = "Regular" }
+normal = { family = "Hack", style = "Regular" }
size = 12
[scrolling]
diff --git a/bash/dot-bashrc b/bash/dot-bashrc
index 0c0c2a2..cc15ea0 100644
--- a/bash/dot-bashrc
+++ b/bash/dot-bashrc
@@ -1,5 +1,6 @@
# ~/.bashrc
# vim: ft=bash
+# shellcheck shell=bash
# If not running interactively, don't do anything
[[ $- != *i* ]] && return
@@ -10,15 +11,18 @@ export HISTSIZE=10000
shopt -s autocd
shopt -s checkwinsize
+shopt -u promptvars
-source "${XDG_CONFIG_HOME:-$HOME/.config}"/bash/gentoo-color.bash
+PS1='[\[\e[32m\]\u@\h\[\e[34m\] \W\[\e[00m\]]\$ '
function ls()
{
- command ls --color=auto --indicator-style=classify --human-readable --literal --group-directories-first -v "$@" # -v is for natural sort of numbers within text
+ command ls --color=auto --indicator-style=classify --human-readable --literal --group-directories-first -v "$@" # -v is for natural sort of numbers within text
}
# coreutils
+alias diff='diff --color=auto'
+alias grep='grep --color=auto'
alias cp='cp -riv'
alias ll='ls --all -l --human-readable' # -l = long listing format
alias l='ls -l'
@@ -34,21 +38,26 @@ alias p='sudo pacman'
alias SS='sudo systemctl'
alias Su='systemctl --user'
alias v='nvim'
+alias vn='NVIM_APPNAME=nvim-min nvim'
alias vv='uv run nvim'
-alias todo='nvim ~/notes.md'
alias neofetch='fastfetch -c examples/13'
alias cvim='nvim -c "cd ~/.config/nvim" -c "Ex"'
+alias hm='home-manager --flake ~/nix'
# source: https://wiki.archlinux.org/title/GnuPG#Configure_pinentry_to_use_the_correct_TTY
GPG_TTY="$(tty)"
export GPG_TTY
gpg-connect-agent updatestartuptty /bye >/dev/null
+# shellcheck source=functions.bash
source "${XDG_CONFIG_HOME:-$HOME/.config}"/bash/functions.bash
+
+# shellcheck source=notes.bash
source "${XDG_CONFIG_HOME:-$HOME/.config}"/bash/notes.bash
bind '"\C-o":"\C-ulf\C-m"'
+# shellcheck source=.config/shellshort/shortcutrc
source "${XDG_CONFIG_HOME:-$HOME/.config}"/shellshort/shortcutrc
export FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix --hidden --follow --exclude .git'
diff --git a/bash/dot-config/bash/notes.bash b/bash/dot-config/bash/notes.bash
index 82ed521..182f28b 100644
--- a/bash/dot-config/bash/notes.bash
+++ b/bash/dot-config/bash/notes.bash
@@ -1,4 +1,4 @@
-note() {
+oldnote() {
if (($# == 0)); then
tmpfile=$(mktemp --tmpdir --suffix=.md note.XXXXXXXXXXX)
echo "- [ ] $(date +'%m-%d-%Y %H:%M') " >> "$tmpfile"
@@ -9,10 +9,50 @@ note() {
fi
}
-todos() {
+orgnote() {
+ local curdate="$(date +'%Y-%m-%d %a %H:%M')"
+ if (($# == 0)); then
+ local tmpfile=$(mktemp --tmpdir --suffix=.org note.XXXXXXXXXXX)
+ printf "* TODO :REVISIT:\n[%s]\n" "$curdate" >> "$tmpfile"
+ nvim -c 'norm ggf:h' -c 'startinsert!' "$tmpfile"
+ cat "$tmpfile" >> ~/org/refile.org
+ else
+ printf "* TODO %s :REVISIT:\n[%s]\n" "$*" "$curdate" >> ~/org/refile.org
+ fi
+}
+
+nb() {
+ local curdate="$(date +'%Y-%m-%d %a %H:%M')"
+ if (($# == 0)); then
+ local tmpfile=$(mktemp --tmpdir --suffix=.notes note.XXXXXXXXXXX)
+ printf "[%s] " "$curdate" >> "$tmpfile"
+ local mtime_before=$(stat -c %Y "$tmpfile")
+ nvim -c 'norm gg$' -c 'startinsert!' "$tmpfile"
+ local mtime_after=$(stat -c %Y "$tmpfile")
+ if [ "$mtime_after" -ne "$mtime_before" ]; then
+ cat "$tmpfile" >> ~/refile.notes
+ fi
+ else
+ printf "[%s] %s" "$curdate" "$*" >> ~/refile.notes
+ fi
+}
+
+oldtodos() {
printf $'\e[01;33mINBOX\e[0m\n'
bat -P -p ~/pkm/0_inbox.md
echo
printf $'\e[01;33mALL\e[0m\n'
rg --color=always --no-line-number --no-heading --smart-case --glob "!.git" --glob "!0_inbox.md" --hyperlink-format='file://{path}' -- "-\\s\\[\\s\\]" ~/pkm/
}
+
+orgtodos() {
+ printf $'\e[01;33mINBOX\e[0m\n'
+ bat -P -p ~/org/refile.org
+ echo
+ printf $'\e[01;33mALL\e[0m\n'
+ rg --color=always --no-line-number --no-heading --smart-case --glob "!.git" --glob "!refile.org" --hyperlink-format='file://{path}' -- "\\*\\sTODO" ~/org/
+}
+
+todos() {
+ bat -P -p ~/refile.notes
+}
diff --git a/bash/dot-config/shellcheckrc b/bash/dot-config/shellcheckrc
new file mode 100644
index 0000000..bc6fdad
--- /dev/null
+++ b/bash/dot-config/shellcheckrc
@@ -0,0 +1,4 @@
+external-sources=true
+
+source-path=SCRIPTDIR
+source-path=/home/moreka/.config/bash
diff --git a/bash/dot-config/shellshort/bm-dirs b/bash/dot-config/shellshort/bm-dirs
index e69de29..4ecd6c0 100644
--- a/bash/dot-config/shellshort/bm-dirs
+++ b/bash/dot-config/shellshort/bm-dirs
@@ -0,0 +1,2 @@
+mit $HOME/mit/18.650-spring-26/
+linatt $HOME/mit/linear-attention/
diff --git a/bash/dot-config/shellshort/shortcutenvrc b/bash/dot-config/shellshort/shortcutenvrc
new file mode 100644
index 0000000..8f0b3fb
--- /dev/null
+++ b/bash/dot-config/shellshort/shortcutenvrc
@@ -0,0 +1,5 @@
+# vim: filetype=sh
+[ -n "mit" ] && export mit="/home/moreka/mit/18.650-spring-26/"
+[ -n "linatt" ] && export linatt="/home/moreka/mit/linear-attention/"
+[ -n "cala" ] && export cala="/home/moreka/.config/alacritty/alacritty.toml"
+[ -n "cnir" ] && export cnir="/home/moreka/.config/niri/config.kdl"
diff --git a/bash/dot-config/shellshort/shortcutrc b/bash/dot-config/shellshort/shortcutrc
index e701151..e8571c1 100644
--- a/bash/dot-config/shellshort/shortcutrc
+++ b/bash/dot-config/shellshort/shortcutrc
@@ -1,3 +1,5 @@
# vim: filetype=sh
-alias cala="$EDITOR /home/moreka/.config/alacritty/alacritty.toml" \
+alias mit="cd /home/moreka/mit/18.650-spring-26/ && ls -A" \
+linatt="cd /home/moreka/mit/linear-attention/ && ls -A" \
+cala="$EDITOR /home/moreka/.config/alacritty/alacritty.toml" \
cnir="$EDITOR /home/moreka/.config/niri/config.kdl" \
diff --git a/bash/dot-config/shellshort/zshnameddirs b/bash/dot-config/shellshort/zshnameddirs
new file mode 100644
index 0000000..d7453ec
--- /dev/null
+++ b/bash/dot-config/shellshort/zshnameddirs
@@ -0,0 +1,4 @@
+hash -d mit=/home/moreka/mit/18.650-spring-26/
+hash -d linatt=/home/moreka/mit/linear-attention/
+hash -d cala=/home/moreka/.config/alacritty/alacritty.toml
+hash -d cnir=/home/moreka/.config/niri/config.kdl
diff --git a/bash/dot-profile b/bash/dot-profile
index 4e9b17f..ca4932c 100644
--- a/bash/dot-profile
+++ b/bash/dot-profile
@@ -14,6 +14,9 @@ export XDG_BIN_HOME="$HOME"/.local/bin
PATH="${PATH}:${XDG_BIN_HOME}:$HOME/.nix-profile/bin"
export PATH
+XDG_DATA_DIRS="$HOME/.nix-profile/share:$XDG_DATA_DIRS"
+export XDG_DATA_DIRS
+
export LESSHISTFILE="$XDG_CACHE_HOME"/lesshst
export CARGO_HOME="$XDG_DATA_HOME"/cargo
export TEXMFHOME="$XDG_DATA_HOME"/texmf
diff --git a/dms/dot-config/DankMaterialShell/settings.json b/dms/dot-config/DankMaterialShell/settings.json
index a14e3ed..c51753d 100644
--- a/dms/dot-config/DankMaterialShell/settings.json
+++ b/dms/dot-config/DankMaterialShell/settings.json
@@ -1,8 +1,12 @@
{
"currentThemeName": "custom",
- "currentThemeCategory": "custom",
- "customThemeFile": "/home/moreka/.config/DankMaterialShell/themes/onedark/theme.json",
- "registryThemeVariants": {},
+ "currentThemeCategory": "registry",
+ "customThemeFile": "/home/moreka/.config/DankMaterialShell/themes/flexoki/theme.json",
+ "registryThemeVariants": {
+ "petrichor": "green",
+ "gruvboxMaterial": "hard",
+ "flexoki": "blue"
+ },
"matugenScheme": "scheme-tonal-spot",
"runUserMatugenTemplates": true,
"matugenTargetMonitor": "",
@@ -10,7 +14,9 @@
"dockTransparency": 1,
"widgetBackgroundColor": "sch",
"widgetColorMode": "default",
- "cornerRadius": 12,
+ "controlCenterTileColorMode": "primary",
+ "buttonColorMode": "primary",
+ "cornerRadius": 6,
"niriLayoutGapsOverride": -1,
"niriLayoutRadiusOverride": -1,
"niriLayoutBorderSize": -1,
@@ -22,10 +28,16 @@
"mangoLayoutBorderSize": -1,
"use24HourClock": true,
"showSeconds": false,
+ "padHours12Hour": false,
"useFahrenheit": false,
+ "windSpeedUnit": "kmh",
"nightModeEnabled": false,
- "animationSpeed": 4,
- "customAnimationDuration": 150,
+ "animationSpeed": 1,
+ "customAnimationDuration": 500,
+ "popoutAnimationSpeed": 1,
+ "popoutCustomAnimationDuration": 150,
+ "modalAnimationSpeed": 1,
+ "modalCustomAnimationDuration": 150,
"wallpaperFillMode": "Fill",
"blurredWallpaperLayer": false,
"blurWallpaperOnOverview": false,
@@ -80,11 +92,6 @@
"width": 50
},
{
- "id": "bluetooth",
- "enabled": true,
- "width": 50
- },
- {
"id": "audioOutput",
"enabled": true,
"width": 50
@@ -103,20 +110,28 @@
"id": "darkMode",
"enabled": true,
"width": 50
+ },
+ {
+ "id": "idleInhibitor",
+ "enabled": true,
+ "width": 50
}
],
"showWorkspaceIndex": false,
"showWorkspaceName": false,
"showWorkspacePadding": false,
"workspaceScrolling": false,
- "showWorkspaceApps": false,
+ "showWorkspaceApps": true,
+ "workspaceDragReorder": true,
"maxWorkspaceIcons": 3,
+ "workspaceAppIconSizeOffset": 0,
"groupWorkspaceApps": true,
"workspaceFollowFocus": false,
"showOccupiedWorkspacesOnly": false,
"reverseScrolling": false,
"dwlShowAllTags": false,
"workspaceColorMode": "default",
+ "workspaceOccupiedColorMode": "none",
"workspaceUnfocusedColorMode": "default",
"workspaceUrgentColorMode": "default",
"workspaceFocusedBorderEnabled": false,
@@ -130,24 +145,44 @@
"clockCompactMode": false,
"focusedWindowCompactMode": false,
"runningAppsCompactMode": true,
+ "barMaxVisibleApps": 0,
+ "barMaxVisibleRunningApps": 0,
+ "barShowOverflowBadge": true,
+ "appsDockHideIndicators": false,
+ "appsDockColorizeActive": false,
+ "appsDockActiveColorMode": "primary",
+ "appsDockEnlargeOnHover": false,
+ "appsDockEnlargePercentage": 125,
+ "appsDockIconSizePercentage": 100,
"keyboardLayoutNameCompactMode": false,
"runningAppsCurrentWorkspace": false,
"runningAppsGroupByApp": false,
+ "runningAppsCurrentMonitor": false,
"appIdSubstitutions": [],
"centeringMode": "index",
"clockDateFormat": "ddd d MMM",
"lockDateFormat": "",
"mediaSize": 1,
- "appLauncherViewMode": "list",
- "spotlightModalViewMode": "list",
+ "appLauncherViewMode": "grid",
+ "spotlightModalViewMode": "grid",
+ "browserPickerViewMode": "grid",
+ "browserUsageHistory": {},
+ "appPickerViewMode": "grid",
+ "filePickerUsageHistory": {},
"sortAppsAlphabetically": false,
- "appLauncherGridColumns": 4,
+ "appLauncherGridColumns": 5,
"spotlightCloseNiriOverview": true,
+ "spotlightSectionViewModes": {},
+ "appDrawerSectionViewModes": {},
"niriOverviewOverlayEnabled": true,
+ "dankLauncherV2Size": "compact",
+ "dankLauncherV2BorderEnabled": false,
+ "dankLauncherV2BorderThickness": 2,
+ "dankLauncherV2BorderColor": "primary",
+ "dankLauncherV2ShowFooter": true,
"useAutoLocation": false,
"weatherEnabled": true,
- "networkPreference": "auto",
- "vpnLastConnected": "",
+ "networkPreference": "wifi",
"iconTheme": "System Default",
"cursorSettings": {
"theme": "System Default",
@@ -172,10 +207,10 @@
"launcherLogoBrightness": 0.5,
"launcherLogoContrast": 1,
"launcherLogoSizeOffset": 0,
- "fontFamily": "Adwaita Sans",
+ "fontFamily": "Fira Sans Book",
"monoFontFamily": "Hack",
"fontWeight": 400,
- "fontScale": 1,
+ "fontScale": 1.1,
"notepadUseMonospace": true,
"notepadFontFamily": "",
"notepadFontSize": 14,
@@ -184,17 +219,17 @@
"notepadLastCustomTransparency": 0.7,
"soundsEnabled": true,
"useSystemSoundTheme": false,
- "soundNewNotification": true,
+ "soundNewNotification": false,
"soundVolumeChanged": true,
- "soundPluggedIn": true,
+ "soundPluggedIn": false,
"acMonitorTimeout": 600,
"acLockTimeout": 300,
- "acSuspendTimeout": 3600,
+ "acSuspendTimeout": 0,
"acSuspendBehavior": 0,
"acProfileName": "",
- "batteryMonitorTimeout": 0,
- "batteryLockTimeout": 0,
- "batterySuspendTimeout": 0,
+ "batteryMonitorTimeout": 600,
+ "batteryLockTimeout": 300,
+ "batterySuspendTimeout": 3600,
"batterySuspendBehavior": 0,
"batteryProfileName": "",
"batteryChargeLimit": 100,
@@ -204,7 +239,7 @@
"fadeToLockGracePeriod": 5,
"fadeToDpmsEnabled": true,
"fadeToDpmsGracePeriod": 5,
- "launchPrefix": "",
+ "launchPrefix": "runapp -o --",
"brightnessDevicePins": {},
"wifiNetworkPins": {},
"bluetoothDevicePins": {},
@@ -215,28 +250,30 @@
"syncModeWithPortal": true,
"terminalsAlwaysDark": false,
"runDmsMatugenTemplates": true,
- "matugenTemplateGtk": true,
+ "matugenTemplateGtk": false,
"matugenTemplateNiri": true,
- "matugenTemplateHyprland": true,
- "matugenTemplateMangowc": true,
- "matugenTemplateQt5ct": true,
- "matugenTemplateQt6ct": true,
- "matugenTemplateFirefox": true,
- "matugenTemplatePywalfox": true,
- "matugenTemplateZenBrowser": true,
- "matugenTemplateVesktop": true,
- "matugenTemplateEquibop": true,
- "matugenTemplateGhostty": true,
- "matugenTemplateKitty": true,
- "matugenTemplateFoot": true,
+ "matugenTemplateHyprland": false,
+ "matugenTemplateMangowc": false,
+ "matugenTemplateQt5ct": false,
+ "matugenTemplateQt6ct": false,
+ "matugenTemplateFirefox": false,
+ "matugenTemplatePywalfox": false,
+ "matugenTemplateZenBrowser": false,
+ "matugenTemplateVesktop": false,
+ "matugenTemplateEquibop": false,
+ "matugenTemplateGhostty": false,
+ "matugenTemplateKitty": false,
+ "matugenTemplateFoot": false,
"matugenTemplateAlacritty": true,
"matugenTemplateNeovim": true,
- "matugenTemplateWezterm": true,
+ "matugenTemplateWezterm": false,
"matugenTemplateDgop": true,
- "matugenTemplateKcolorscheme": true,
- "matugenTemplateVscode": true,
+ "matugenTemplateKcolorscheme": false,
+ "matugenTemplateVscode": false,
+ "matugenTemplateEmacs": true,
"showDock": false,
"dockAutoHide": false,
+ "dockSmartAutoHide": false,
"dockGroupByApp": false,
"dockOpenOnOverview": false,
"dockPosition": 1,
@@ -250,6 +287,16 @@
"dockBorderOpacity": 1,
"dockBorderThickness": 1,
"dockIsolateDisplays": false,
+ "dockLauncherEnabled": false,
+ "dockLauncherLogoMode": "apps",
+ "dockLauncherLogoCustomPath": "",
+ "dockLauncherLogoColorOverride": "",
+ "dockLauncherLogoSizeOffset": 0,
+ "dockLauncherLogoBrightness": 0.5,
+ "dockLauncherLogoContrast": 1,
+ "dockMaxVisibleApps": 0,
+ "dockMaxVisibleRunningApps": 0,
+ "dockShowOverflowBadge": true,
"notificationOverlayEnabled": false,
"modalDarkenBackground": true,
"lockScreenShowPowerActions": true,
@@ -258,6 +305,8 @@
"lockScreenShowDate": true,
"lockScreenShowProfileImage": true,
"lockScreenShowPasswordField": true,
+ "lockScreenShowMediaPlayer": true,
+ "lockScreenPowerOffMonitorsOnLock": false,
"enableFprint": true,
"maxFprintTries": 15,
"lockScreenActiveMonitor": "all",
@@ -275,10 +324,11 @@
"notificationHistorySaveLow": true,
"notificationHistorySaveNormal": true,
"notificationHistorySaveCritical": true,
- "osdAlwaysShowValue": false,
- "osdPosition": 5,
+ "osdAlwaysShowValue": true,
+ "osdPosition": 4,
"osdVolumeEnabled": true,
"osdMediaVolumeEnabled": true,
+ "osdMediaPlaybackEnabled": true,
"osdBrightnessEnabled": true,
"osdIdleInhibitorEnabled": true,
"osdMicMuteEnabled": true,
@@ -316,6 +366,11 @@
"showOnLastDisplay": {},
"niriOutputSettings": {},
"hyprlandOutputSettings": {},
+ "displayProfiles": {},
+ "activeDisplayProfile": {},
+ "displayProfileAutoSelect": false,
+ "displayShowDisconnected": false,
+ "displaySnapToEdge": true,
"barConfigs": [
{
"id": "default",
@@ -327,32 +382,74 @@
],
"showOnLastDisplay": true,
"leftWidgets": [
- "launcherButton",
- "workspaceSwitcher",
- "focusedWindow"
+ {
+ "id": "launcherButton",
+ "enabled": true
+ },
+ {
+ "id": "workspaceSwitcher",
+ "enabled": true
+ },
+ {
+ "id": "separator",
+ "enabled": true
+ },
+ {
+ "id": "focusedWindow",
+ "enabled": true
+ }
],
"centerWidgets": [
"clock",
- "weather"
+ "weather",
+ {
+ "id": "dankPomodoroTimer",
+ "enabled": true
+ }
],
"rightWidgets": [
- "systemTray",
- "clipboard",
- "cpuUsage",
- "memUsage",
- "notificationButton",
- "battery",
+ {
+ "id": "exampleEmojiPlugin",
+ "enabled": true
+ },
+ {
+ "id": "systemTray",
+ "enabled": true
+ },
+ {
+ "id": "notificationButton",
+ "enabled": true
+ },
+ {
+ "id": "keyboard_layout_name",
+ "enabled": true,
+ "keyboardLayoutNameCompactMode": true
+ },
+ {
+ "id": "battery",
+ "enabled": true
+ },
+ {
+ "id": "idleInhibitor",
+ "enabled": true
+ },
{
"id": "controlCenterButton",
"enabled": true,
"showBluetoothIcon": false,
+ "showAudioPercent": false,
"showVpnIcon": false,
"showBrightnessIcon": false,
+ "showBrightnessPercent": false,
"showMicPercent": false
+ },
+ {
+ "id": "notepadButton",
+ "enabled": true
}
],
"spacing": 4,
- "innerPadding": 4,
+ "innerPadding": 0,
"bottomGap": 0,
"transparency": 1,
"widgetTransparency": 1,
@@ -463,5 +560,7 @@
"trigger": "?"
}
},
+ "launcherPluginVisibility": {},
+ "launcherPluginOrder": [],
"configVersion": 5
} \ No newline at end of file
diff --git a/dms/dot-config/DankMaterialShell/themes/moreka/theme.json b/dms/dot-config/DankMaterialShell/themes/moreka/theme.json
new file mode 100644
index 0000000..fdadbd6
--- /dev/null
+++ b/dms/dot-config/DankMaterialShell/themes/moreka/theme.json
@@ -0,0 +1,46 @@
+{
+ "id": "moreka",
+ "name": "Moreka",
+ "version": "1.0.0",
+ "author": "Mohammad Reza Karimi",
+ "description": "Moreka color scheme.",
+ "dark": {
+ "primary": "#6a905d",
+ "primaryText": "#1d2021",
+ "primaryContainer": "#83a598",
+ "secondary": "#9e6474",
+ "surface": "#1d2021",
+ "surfaceText": "#d5c4a1",
+ "surfaceVariant": "#282c34",
+ "surfaceVariantText": "#cbccd1",
+ "surfaceTint": "#ffffff",
+ "background": "#1c1f24",
+ "backgroundText": "#d5d6db",
+ "outline": "#abb2bf",
+ "surfaceContainer": "#282c34",
+ "surfaceContainerHigh": "#171d26",
+ "error": "#ff6c6b",
+ "warning": "#ecbe7b",
+ "info": "#46d9ff"
+ },
+ "light": {
+ "primary": "#2e7de9",
+ "primaryText": "#d0d5e3",
+ "primaryContainer": "#007197",
+ "secondary": "#9854f1",
+ "surface": "#e1e2e7",
+ "surfaceText": "#387068",
+ "surfaceVariant": "#c4c8da",
+ "surfaceVariantText": "#1a1b26",
+ "surfaceTint": "#2e7de9",
+ "background": "#cbccd1",
+ "backgroundText": "#1a1b26",
+ "outline": "#4c505e",
+ "surfaceContainer": "#dfe0e5",
+ "surfaceContainerHigh": "#9699a3",
+ "error": "#f52a65",
+ "warning": "#b15c00",
+ "info": "#007197"
+ },
+ "sourceDir": "onedark"
+}
diff --git a/email/dot-config/msmtp/config b/email/dot-config/msmtp/config
index 02f21e4..19f6746 100644
--- a/email/dot-config/msmtp/config
+++ b/email/dot-config/msmtp/config
@@ -2,6 +2,7 @@ defaults
tls on
logfile ~/.cache/msmtp.log
+tls_trust_file /etc/ssl/certs/ca-certificates.crt
account mit
host outgoing.mit.edu
@@ -20,6 +21,7 @@ tls_starttls on
from m.r.karimi.j@gmail.com
user m.r.karimi.j@gmail.com
passwordeval oama access m.r.karimi.j@gmail.com
-tls_trust_file /etc/ssl/certs/ca-certificates.crt
account default : mit
+
+# vim: ft=msmtp commentstring=#\ %s
diff --git a/email/dot-config/notmuch/default/hooks/post-new b/email/dot-config/notmuch/default/hooks/post-new
index f03a5d1..5a02ff0 100755
--- a/email/dot-config/notmuch/default/hooks/post-new
+++ b/email/dot-config/notmuch/default/hooks/post-new
@@ -16,3 +16,8 @@ notmuch tag -unread -- tag:replied
# tag my replies as "sent"
notmuch tag -unread +sent -- '(from:"moreka@mit.edu*" not to:"moreka@mit.edu*" not to:"moreka@MIT.EDU*" not tag:archived)'
notmuch tag -unread +sent -- '(from:"m.r.karimi.j@gmail.com*" not to:"m.r.karimi.j@gmail.com*" not tag:archived)'
+
+# tag 18650 stuff for spring 26 correctly
+notmuch tag +18650 -- '(("18650" or "18.650" or body:"/18\.?650/" or subject:"/18\.?650/" or from:"18.650 on Piazza" or from:"MIT-Canvas") and date:2025-12-22..)'
+
+notmuch tag +18650 +18650org -- from:18650-spring26-org@mit.edu
diff --git a/gtk/dot-config/Kvantum/kvantum.kvconfig b/gtk/dot-config/Kvantum/kvantum.kvconfig
new file mode 100644
index 0000000..14c5b92
--- /dev/null
+++ b/gtk/dot-config/Kvantum/kvantum.kvconfig
@@ -0,0 +1,2 @@
+[General]
+theme=KvGnomeDark
diff --git a/gtk/dot-config/gtk-3.0/settings.ini b/gtk/dot-config/gtk-3.0/settings.ini
new file mode 100644
index 0000000..0ce71ef
--- /dev/null
+++ b/gtk/dot-config/gtk-3.0/settings.ini
@@ -0,0 +1,17 @@
+[Settings]
+gtk-theme-name=Adwaita-dark
+gtk-icon-theme-name=Yaru-dark
+gtk-font-name=Sans 10
+gtk-cursor-theme-name=Adwaita
+gtk-cursor-theme-size=24
+gtk-toolbar-style=GTK_TOOLBAR_ICONS
+gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
+gtk-button-images=0
+gtk-menu-images=0
+gtk-enable-event-sounds=0
+gtk-enable-input-feedback-sounds=0
+gtk-xft-antialias=1
+gtk-xft-hinting=1
+gtk-xft-hintstyle=hintmedium
+gtk-xft-rgba=rgb
+gtk-application-prefer-dark-theme=1
diff --git a/gtk/dot-config/gtk-4.0/settings.ini b/gtk/dot-config/gtk-4.0/settings.ini
new file mode 100644
index 0000000..e54cedf
--- /dev/null
+++ b/gtk/dot-config/gtk-4.0/settings.ini
@@ -0,0 +1,7 @@
+[Settings]
+gtk-theme-name=Adwaita-dark
+gtk-icon-theme-name=Yaru-dark
+gtk-font-name=Sans 10
+gtk-cursor-theme-name=Adwaita
+gtk-cursor-theme-size=24
+gtk-application-prefer-dark-theme=1
diff --git a/latex/dot-config/latexmk/latexmkrc b/latex/dot-config/latexmk/latexmkrc
new file mode 100644
index 0000000..e61b8ea
--- /dev/null
+++ b/latex/dot-config/latexmk/latexmkrc
@@ -0,0 +1,27 @@
+$pdf_mode = 1;
+$bibtex_use = 1.5;
+$latex = 'latex --src-specials %O %S';
+$show_time = 1;
+$postscript_mode = $dvi_mode = 0;
+set_tex_cmds('-synctex=1 -interaction=nonstopmode --shell-escape %O %S');
+
+# This ensures buffer flushing, which makes output better in vimtex
+STDOUT->autoflush;
+STDERR->autoflush;
+
+# push @generated_exts, "cb";
+# push @generated_exts, "cb2";
+# push @generated_exts, "spl";
+# push @generated_exts, "nav";
+# push @generated_exts, "snm";
+# push @generated_exts, "tdo";
+# push @generated_exts, "nmo";
+# push @generated_exts, "brf";
+# push @generated_exts, "nlg";
+# push @generated_exts, "nlo";
+# push @generated_exts, "nls";
+# push @generated_exts, "auxlock";
+# push @generated_exts, "synctex.gz";
+# push @generated_exts, "synctex(busy)";
+# push @generated_exts, "pgf-plot.*";
+# push @generated_exts, "run.xml";
diff --git a/latex/dot-config/latexmkrc/latexmkrc b/latex/dot-config/latexmkrc/latexmkrc
deleted file mode 100644
index 2d1ccff..0000000
--- a/latex/dot-config/latexmkrc/latexmkrc
+++ /dev/null
@@ -1,26 +0,0 @@
-$pdf_mode = 1;
-$bibtex_use = 1.5;
-$latex = 'latex --src-specials %O %S';
-$show_time = 1;
-set_tex_cmds('-synctex=1 -interaction=nonstopmode --shell-escape %O %S');
-
-# This ensures buffer flushing, which makes output better in vimtex
-STDOUT->autoflush;
-STDERR->autoflush;
-
-push @generated_exts, "cb";
-push @generated_exts, "cb2";
-push @generated_exts, "spl";
-push @generated_exts, "nav";
-push @generated_exts, "snm";
-push @generated_exts, "tdo";
-push @generated_exts, "nmo";
-push @generated_exts, "brf";
-push @generated_exts, "nlg";
-push @generated_exts, "nlo";
-push @generated_exts, "nls";
-push @generated_exts, "auxlock";
-push @generated_exts, "synctex.gz";
-push @generated_exts, "synctex(busy)";
-push @generated_exts, "pgf-plot.*";
-push @generated_exts, "run.xml";
diff --git a/lf/dot-config/lf/lfrc b/lf/dot-config/lf/lfrc
index 7c367f5..ee30df9 100644
--- a/lf/dot-config/lf/lfrc
+++ b/lf/dot-config/lf/lfrc
@@ -7,7 +7,7 @@ set autoquit true
set icons
set scrolloff 10
set period 1
-set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml"
+# set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml"
set previewer "~/.config/lf/previewer"
cmd open ${{
diff --git a/lf/dot-config/lf/shortcutrc b/lf/dot-config/lf/shortcutrc
index 89e85e3..09f9ae1 100644
--- a/lf/dot-config/lf/shortcutrc
+++ b/lf/dot-config/lf/shortcutrc
@@ -1,2 +1,4 @@
+map Cmit cd "/home/moreka/mit/18.650-spring-26/"
+map Clinatt cd "/home/moreka/mit/linear-attention/"
map Ecala $$EDITOR "/home/moreka/.config/alacritty/alacritty.toml"
map Ecnir $$EDITOR "/home/moreka/.config/niri/config.kdl"
diff --git a/niri/dot-config/niri/config.kdl b/niri/dot-config/niri/config.kdl
index 1c41ffd..23a15d6 100644
--- a/niri/dot-config/niri/config.kdl
+++ b/niri/dot-config/niri/config.kdl
@@ -9,7 +9,6 @@ output "eDP-1" {
position x=0 y=0
}
-
gestures {
hot-corners {
off
@@ -42,7 +41,7 @@ input {
}
layout {
- background-color "transparent"
+ // background-color "transparent"
center-focused-column "never"
preset-column-widths {
@@ -63,10 +62,10 @@ layout {
}
}
-layer-rule {
- match namespace="^quickshell$"
- place-within-backdrop true
-}
+// layer-rule {
+// match namespace="^quickshell$"
+// place-within-backdrop true
+// }
overview {
workspace-shadow {
@@ -87,9 +86,9 @@ prefer-no-csd
screenshot-path "~/Pictures/scrots/screenshot-%Y-%m-%d_%H-%M-%S.png"
animations {
- workspace-switch {
- spring damping-ratio=0.80 stiffness=523 epsilon=0.0001
- }
+ // workspace-switch {
+ // spring damping-ratio=0.80 stiffness=523 epsilon=0.0001
+ // }
window-open {
duration-ms 150
curve "ease-out-expo"
@@ -98,25 +97,25 @@ animations {
duration-ms 150
curve "ease-out-quad"
}
- horizontal-view-movement {
- spring damping-ratio=0.85 stiffness=423 epsilon=0.0001
- }
- window-movement {
- spring damping-ratio=0.75 stiffness=323 epsilon=0.0001
- }
- window-resize {
- spring damping-ratio=0.85 stiffness=423 epsilon=0.0001
- }
- config-notification-open-close {
- spring damping-ratio=0.65 stiffness=923 epsilon=0.001
- }
+ // horizontal-view-movement {
+ // spring damping-ratio=0.85 stiffness=423 epsilon=0.0001
+ // }
+ // window-movement {
+ // spring damping-ratio=0.75 stiffness=323 epsilon=0.0001
+ // }
+ // window-resize {
+ // spring damping-ratio=0.85 stiffness=423 epsilon=0.0001
+ // }
+ // config-notification-open-close {
+ // spring damping-ratio=0.65 stiffness=923 epsilon=0.001
+ // }
screenshot-ui-open {
duration-ms 200
curve "ease-out-quad"
}
- overview-open-close {
- spring damping-ratio=0.85 stiffness=800 epsilon=0.0001
- }
+ // overview-open-close {
+ // spring damping-ratio=0.85 stiffness=800 epsilon=0.0001
+ // }
}
window-rule {
@@ -229,15 +228,16 @@ binds {
Mod+7 { focus-workspace 7; }
Mod+8 { focus-workspace 8; }
Mod+9 { focus-workspace 9; }
- Mod+Shift+1 { move-column-to-workspace 1; }
- Mod+Shift+2 { move-column-to-workspace 2; }
- Mod+Shift+3 { move-column-to-workspace 3; }
- Mod+Shift+4 { move-column-to-workspace 4; }
- Mod+Shift+5 { move-column-to-workspace 5; }
- Mod+Shift+6 { move-column-to-workspace 6; }
- Mod+Shift+7 { move-column-to-workspace 7; }
- Mod+Shift+8 { move-column-to-workspace 8; }
- Mod+Shift+9 { move-column-to-workspace 9; }
+
+ Mod+Shift+1 { move-column-to-workspace 1 focus=false; }
+ Mod+Shift+2 { move-column-to-workspace 2 focus=false; }
+ Mod+Shift+3 { move-column-to-workspace 3 focus=false; }
+ Mod+Shift+4 { move-column-to-workspace 4 focus=false; }
+ Mod+Shift+5 { move-column-to-workspace 5 focus=false; }
+ Mod+Shift+6 { move-column-to-workspace 6 focus=false; }
+ Mod+Shift+7 { move-column-to-workspace 7 focus=false; }
+ Mod+Shift+8 { move-column-to-workspace 8 focus=false; }
+ Mod+Shift+9 { move-column-to-workspace 9 focus=false; }
Mod+BracketLeft { consume-or-expel-window-left; }
Mod+BracketRight { consume-or-expel-window-right; }
@@ -250,7 +250,7 @@ binds {
Mod+Ctrl+R { reset-window-height; }
Mod+F { maximize-column; }
Mod+Shift+F { fullscreen-window; }
- Mod+Ctrl+F { expand-column-to-available-width; }
+ Mod+Ctrl+F { maximize-window-to-edges; }
Mod+C { center-column; }
Mod+Ctrl+C { center-visible-columns; }
@@ -269,7 +269,7 @@ binds {
Print { screenshot; }
Ctrl+Print { screenshot-screen; }
Alt+Print { screenshot-window; }
- Mod+Print { spawn "colorpick"; }
+ Mod+Print { spawn-sh "dms color pick -a"; }
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
diff --git a/niri/dot-config/niri/dms/alttab.kdl b/niri/dot-config/niri/dms/alttab.kdl
index 091ea07..2d49f89 100644
--- a/niri/dot-config/niri/dms/alttab.kdl
+++ b/niri/dot-config/niri/dms/alttab.kdl
@@ -5,6 +5,6 @@
recent-windows {
highlight {
- corner-radius 12
+ corner-radius 6
}
}
diff --git a/niri/dot-config/niri/dms/colors.kdl b/niri/dot-config/niri/dms/colors.kdl
index 145a179..cde2c23 100644
--- a/niri/dot-config/niri/dms/colors.kdl
+++ b/niri/dot-config/niri/dms/colors.kdl
@@ -5,15 +5,15 @@ layout {
background-color "transparent"
focus-ring {
- active-color "#d0bcff"
- inactive-color "#948f99"
- urgent-color "#f2b8b5"
+ active-color "#80aa9e"
+ inactive-color "#a89984"
+ urgent-color "#e96962"
}
border {
- active-color "#d0bcff"
- inactive-color "#948f99"
- urgent-color "#f2b8b5"
+ active-color "#80aa9e"
+ inactive-color "#a89984"
+ urgent-color "#e96962"
}
shadow {
@@ -21,19 +21,19 @@ layout {
}
tab-indicator {
- active-color "#d0bcff"
- inactive-color "#948f99"
- urgent-color "#f2b8b5"
+ active-color "#80aa9e"
+ inactive-color "#a89984"
+ urgent-color "#e96962"
}
insert-hint {
- color "#d0bcff80"
+ color "#80aa9e80"
}
}
recent-windows {
highlight {
- active-color "#4f378b"
- urgent-color "#f2b8b5"
+ active-color "#0d3138"
+ urgent-color "#e96962"
}
}
diff --git a/niri/dot-config/niri/dms/layout.kdl b/niri/dot-config/niri/dms/layout.kdl
index 431afbf..ed234cf 100644
--- a/niri/dot-config/niri/dms/layout.kdl
+++ b/niri/dot-config/niri/dms/layout.kdl
@@ -15,7 +15,7 @@
}
}
window-rule {
- geometry-corner-radius 12
+ geometry-corner-radius 6
clip-to-geometry true
tiled-state true
draw-border-with-background false
diff --git a/niri/dot-config/niri/dms/windowrules.kdl b/niri/dot-config/niri/dms/windowrules.kdl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/niri/dot-config/niri/dms/windowrules.kdl
diff --git a/qt/dot-config/kdeglobals b/qt/dot-config/kdeglobals
new file mode 100644
index 0000000..6c80637
--- /dev/null
+++ b/qt/dot-config/kdeglobals
@@ -0,0 +1,2 @@
+[KDE]
+widgetStyle=qt6ct-style
diff --git a/qt/dot-config/qt5ct/qt5ct.conf b/qt/dot-config/qt5ct/qt5ct.conf
new file mode 100644
index 0000000..6c0a1da
--- /dev/null
+++ b/qt/dot-config/qt5ct/qt5ct.conf
@@ -0,0 +1,32 @@
+[Appearance]
+color_scheme_path=/usr/share/color-schemes/BreezeDark.colors
+custom_palette=true
+icon_theme=breeze-dark
+standard_dialogs=default
+style=Breeze
+
+[Fonts]
+fixed="Hack,10,-1,5,50,0,0,0,0,0,Regular"
+general="Open Sans,11,-1,5,50,0,0,0,0,0,Regular"
+
+[Interface]
+activate_item_on_single_click=1
+buttonbox_layout=3
+cursor_flash_time=1000
+dialog_buttons_have_icons=1
+double_click_interval=400
+gui_effects=@Invalid()
+keyboard_scheme=2
+menus_have_icons=true
+show_shortcuts_in_context_menus=true
+stylesheets=@Invalid()
+toolbutton_style=4
+underline_shortcut=1
+wheel_scroll_lines=3
+
+[SettingsWindow]
+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4\xf0\0\0\x5|\0\0\0\0\0\0\0\0\0\0\x4\xf0\0\0\x5|\0\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\x4\xf0\0\0\x5|)
+
+[Troubleshooting]
+force_raster_widgets=1
+ignored_applications=@Invalid()
diff --git a/qt/dot-config/qt6ct/qt6ct.conf b/qt/dot-config/qt6ct/qt6ct.conf
new file mode 100644
index 0000000..e760a8b
--- /dev/null
+++ b/qt/dot-config/qt6ct/qt6ct.conf
@@ -0,0 +1,31 @@
+[Appearance]
+color_scheme_path=/usr/share/color-schemes/BreezeDark.colors
+custom_palette=true
+standard_dialogs=default
+style=Breeze
+
+[Fonts]
+fixed="Hack,10,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
+general="Open Sans,11,-1,5,400,0,0,0,0,0,0,0,0,0,0,1"
+
+[Interface]
+activate_item_on_single_click=1
+buttonbox_layout=3
+cursor_flash_time=1000
+dialog_buttons_have_icons=1
+double_click_interval=400
+gui_effects=@Invalid()
+keyboard_scheme=2
+menus_have_icons=true
+show_shortcuts_in_context_menus=true
+stylesheets=@Invalid()
+toolbutton_style=4
+underline_shortcut=1
+wheel_scroll_lines=3
+
+[SettingsWindow]
+geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4\xf9\0\0\x5o\0\0\0\0\0\0\0\0\0\0\x4\xf9\0\0\x5o\0\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\x4\xf9\0\0\x5o)
+
+[Troubleshooting]
+force_raster_widgets=1
+ignored_applications=@Invalid()
diff --git a/qute/dot-config/qutebrowser/config.py b/qute/dot-config/qutebrowser/config.py
index 21cfdbf..b9a5e51 100644
--- a/qute/dot-config/qutebrowser/config.py
+++ b/qute/dot-config/qutebrowser/config.py
@@ -29,6 +29,8 @@ c.spellcheck.languages = ["en-US"]
config.load_autoconfig() # load settings done via the gui
+config.bind("co", "download-open")
+
config.bind(
"zl",
"spawn --userscript qute-pass --username-pattern='login: (.*)' --username-target=secret",
diff --git a/qute/dot-config/qutebrowser/quickmarks b/qute/dot-config/qutebrowser/quickmarks
index cce35b8..b7a9abf 100644
--- a/qute/dot-config/qutebrowser/quickmarks
+++ b/qute/dot-config/qutebrowser/quickmarks
@@ -19,3 +19,12 @@ bach and khayyam https://www.eventbrite.com/e/bach-khayyam-tickets-1977425791774
frederic church https://wallhaven.cc/search?q=id:40583
base16 https://dt.iki.fi/base16-previews#albino-bark-on-a-tree
whatsapp https://web.whatsapp.com/
+niri docs https://yalter.github.io/niri/
+18650 old https://canvas.mit.edu/courses/33114
+18650 new https://canvas.mit.edu/courses/36064
+1805 https://canvas.mit.edu/courses/30016
+aerc config https://github.com/ferdinandyb/dotfiles/tree/master/.config/aerc
+good aerc tutorial https://wilw.dev/notes/aerc
+good aerc tutorial 2 https://bence.ferdinandy.com/2023/07/20/email-in-the-terminal-a-complete-guide-to-the-unix-way-of-email/
+gradescope now https://www.gradescope.com/courses/1247846
+mit library https://mit.primo.exlibrisgroup.com/discovery/search?vid=01MIT_INST:MIT&lang=en
diff --git a/scripts/dot-local/bin/mail_html_view b/scripts/dot-local/bin/mail_html_view
new file mode 100755
index 0000000..9792b79
--- /dev/null
+++ b/scripts/dot-local/bin/mail_html_view
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+sed -i 's/&nbsp;/ /g' "$2"
+
+w3m -I "$1" -O utf-8 -dump -T text/html -cols 100 -s -graph -o fold_textarea=true -o fold_line=true -o decode_url=true -o display_link=true -o display_borders=true -o disable_center=true -o no_cache=true -o use_cookie=false "$2"
diff --git a/scripts/dot-local/bin/mailsync b/scripts/dot-local/bin/mailsync
index be2f93d..4b0df46 100755
--- a/scripts/dot-local/bin/mailsync
+++ b/scripts/dot-local/bin/mailsync
@@ -23,7 +23,12 @@ fi
notify()
{
- notify-send --app-name="Mail" -- "$1" "$2"
+ notify-send --app-name="Mail" --app-icon=/home/moreka/Pictures/read.png -- "$1" "$2"
+ # if [ $# -ge 3 ]; then
+ # dms notify "$1" "$2" --file "$3" --app "Mail" --icon /home/moreka/Pictures/read.png
+ # else
+ # dms notify "$1" "$2" --app "Mail" --icon /home/moreka/Pictures/read.png
+ # fi
}
MAILDIR="$XDG_DATA_HOME/mail"
@@ -75,7 +80,7 @@ sync_and_notify()
from="${from% *}"
from="${from%\"}"
from="${from#\"}"
- notify "$from:" "$subject"
+ notify "$from:" "$subject" "$file"
done
;;
*) echo "No new mail for $1." ;;
diff --git a/scripts/dot-local/bin/safe_extract b/scripts/dot-local/bin/safe_extract
index 0574816..3b7b88c 100755
--- a/scripts/dot-local/bin/safe_extract
+++ b/scripts/dot-local/bin/safe_extract
@@ -17,5 +17,6 @@ set -euo pipefail
--unshare-all \
--new-session \
--seccomp 10 \
+ 10< /home/moreka/probe/bwrap/seccomp_default_filter.bpf \
/usr/bin/ouch decompress "$@"
)
diff --git a/scripts/dot-local/bin/shortcuts b/scripts/dot-local/bin/shortcuts
index d5644c0..e2d59f6 100755
--- a/scripts/dot-local/bin/shortcuts
+++ b/scripts/dot-local/bin/shortcuts
@@ -7,8 +7,8 @@ bmfiles="$confdir/bm-files"
# Output locations. Unactivated progs should go to /dev/null.
shell_shortcuts="$confdir/shortcutrc"
-shell_env_shortcuts="/dev/null"
-zsh_named_dirs="/dev/null"
+shell_env_shortcuts="$confdir/shortcutenvrc"
+zsh_named_dirs="$confdir/zshnameddirs"
lf_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/lf/shortcutrc"
vim_shortcuts="/dev/null"
qute_shortcuts="/dev/null"
diff --git a/system-notes.md b/system-notes.md
index c2d30d2..6c3c39b 100644
--- a/system-notes.md
+++ b/system-notes.md
@@ -296,3 +296,9 @@ Here is the citation key:
```
authAuthEa('author',false,'_').lower + '_' + year + '_' + Title.lower.clean.nopunctordash.skipwords.select(1,4).condense('_')
```
+
+# Flash drive
+```
+cryptsetup open /dev/sda3 flashdrive
+mount -o compress_algorithm=zstd:6,compress_chksum,atgc,gc_merge,lazytime /dev/mapper/flashdrive /mnt
+```
diff --git a/tmux/dot-config/tmux/tmux.conf b/tmux/dot-config/tmux/tmux.conf
new file mode 100644
index 0000000..0897282
--- /dev/null
+++ b/tmux/dot-config/tmux/tmux.conf
@@ -0,0 +1,49 @@
+set -g default-terminal "tmux-256color"
+set -ag terminal-features '*:RGB'
+set -ag terminal-features '*:usstyle'
+
+set -g set-clipboard on
+set -g allow-passthrough on
+
+set -g focus-events on
+set -g escape-time 0
+
+set -g set-titles on
+set -g set-titles-string '#T #{session_alerts}'
+
+set -g renumber-windows on
+set -g history-limit 10000
+set -g status-keys emacs
+set -g mode-keys vi
+set -g base-index 1
+set -g detach-on-destroy off
+set -g mouse on
+
+set -g status-left ""
+set -g status-right "#[#{E:@prefix-style}]#{?client_prefix, ^A ,}#[default] #[#{E:status-right-style}]#h / #S "
+set -g window-status-format " #[#{E:@window-index-style}]#I#[#{E:window-status-style}] #W#F "
+set -g window-status-current-format " #[#{E:@window-index-current-style}]#I#[#{E:window-status-current-style}] #W#F "
+set -g window-status-separator ""
+
+set -g status-style bg=#393939
+set -g status-right-style fg=#a09f93
+
+set -g message-style fg=#f2777a,bg=#2d2d2d
+set -g message-command-style fg=#f2777a,bg=#2d2d2d
+
+set -gw @window-index-style fg=#f2777a
+set -gw @window-index-current-style fg=#f2777a
+set -gw window-status-style fg=#a09f93
+set -gw window-status-current-style fg=#d3d0c8,bg=#515151
+set -gw window-status-bell-style fg=#2d2d2d,bg=#f2777a
+
+set -g pane-border-style fg=#393939,bg=#2d2d2d
+set -g pane-active-border-style "#{?pane_in_mode,fg=#ffcc66,#{?pane_synchronized,fg=#f2777a,fg=#515151}},bg=#2d2d2d"
+
+set -g display-panes-active-colour "#f2f0ec"
+set -g display-panes-colour "#747369"
+
+set -g copy-mode-match-style fg=#393939,bg=#ffcc66
+set -g copy-mode-current-match-style fg=#393939,bg=#f99157
+
+set -g @prefix-style fg=#e8e6df,bg=#6699cc
diff --git a/uv/dot-config/uv/uv.toml b/uv/dot-config/uv/uv.toml
new file mode 100644
index 0000000..c3baf30
--- /dev/null
+++ b/uv/dot-config/uv/uv.toml
@@ -0,0 +1 @@
+python-preference = "system"
diff --git a/w3m/dot-w3m/config b/w3m/dot-w3m/config
new file mode 100644
index 0000000..1eec153
--- /dev/null
+++ b/w3m/dot-w3m/config
@@ -0,0 +1,173 @@
+tabstop 8
+indent_incr 4
+maxcols 0
+pixel_per_char 7
+pixel_per_line 14
+frame 0
+target_self 0
+open_tab_blank 0
+open_tab_dl_list 0
+display_link 0
+display_link_number 0
+decode_url 0
+display_lineinfo 0
+display_column_number 0
+ext_dirlist 1
+dirlist_cmd file:///$LIB/dirlist.cgi
+use_dictcommand 1
+dictcommand file:///$LIB/w3mdict.cgi
+dictprompt (dictionary)!
+multicol 0
+alt_entity 0
+graphic_char 0
+display_borders 0
+disable_center 0
+fold_textarea 0
+fold_pre 0
+display_ins_del 1
+ignore_null_img_alt 1
+view_unseenobject 0
+display_image 1
+pseudo_inlines 1
+auto_image 1
+max_load_image 4
+ext_image_viewer 1
+image_scale 100
+inline_img_protocol 0
+imgdisplay w3mimgdisplay
+image_map_list 1
+fold_line 0
+show_lnum 0
+show_srch_str 1
+message_delay 2
+label_topline 0
+nextpage_topline 0
+color 1
+high-intensity 0
+basic_color terminal
+anchor_color blue
+image_color green
+form_color red
+mark_color cyan
+bg_color terminal
+active_style 0
+active_color cyan
+visited_anchor 0
+visited_color magenta
+pagerline 10000
+use_history 1
+history 100
+save_hist 1
+confirm_qq 1
+exit_on_last 0
+close_tab_back 0
+mark 0
+emacs_like_lineedit 0
+space_autocomplete 0
+vi_prec_num 0
+mark_all_pages 0
+wrap_search 1
+ignorecase_search 1
+use_mouse 1
+reverse_mouse 0
+relative_wheel_scroll 0
+relative_wheel_scroll_ratio 30
+fixed_wheel_scroll_count 5
+clear_buffer 1
+decode_cte 0
+auto_uncompress 0
+preserve_timestamp 1
+keymap_file keymap
+document_root
+personal_document_root
+cgi_bin
+index_file
+tmp_dir
+dl_dir
+mime_types ~/.mime.types, /usr/etc/mime.types
+mailcap ~/.w3m/mailcap, /usr/etc/w3m/mailcap
+urimethodmap ~/.w3m/urimethodmap, /usr/etc/w3m/urimethodmap
+editor /usr/bin/vi
+mailto_options 1
+mailer /usr/bin/mail
+extbrowser /usr/bin/firefox
+extbrowser2
+extbrowser3
+extbrowser4
+extbrowser5
+extbrowser6
+extbrowser7
+extbrowser8
+extbrowser9
+bgextviewer 1
+use_lessopen 0
+passwd_file ~/.w3m/passwd
+disable_secret_security_check 0
+ftppasswd
+ftppass_hostnamegen 1
+pre_form_file ~/.w3m/pre_form
+siteconf_file ~/.w3m/siteconf
+user_agent
+no_referer 0
+cross_origin_referer 1
+accept_language en;q=1.0
+accept_encoding gzip, compress, bzip, bzip2, deflate, br
+accept_media text/html, text/*;q=0.5, image/*
+argv_is_url 1
+retry_http 1
+default_url 1
+follow_redirection 10
+meta_refresh 0
+localhost_only 0
+dns_order 0
+nntpserver
+nntpmode
+max_news 50
+use_proxy 1
+http_proxy
+https_proxy
+gopher_proxy
+ftp_proxy
+no_proxy
+noproxy_netaddr 1
+no_cache 1
+ssl_forbid_method 2, 3, t, 5
+ssl_min_version
+ssl_cipher
+ssl_verify_server 1
+ssl_cert_file
+ssl_key_file
+ssl_ca_path
+ssl_ca_file
+ssl_ca_default 1
+use_cookie 1
+show_cookie 0
+accept_cookie 1
+accept_bad_cookie 0
+cookie_reject_domains
+cookie_accept_domains
+cookie_avoid_wrong_number_of_dots
+display_charset UTF-8
+document_charset UTF-8
+auto_detect 2
+system_charset UTF-8
+follow_locale 1
+ext_halfdump 0
+use_wide 1
+use_combining 1
+east_asian_width 0
+use_language_tag 1
+ucs_conv 1
+pre_conv 0
+search_conv 1
+fix_width_conv 1
+use_gb12345_map 0
+use_jisx0201 0
+use_jisc6226 0
+use_jisx0201k 0
+use_jisx0212 0
+use_jisx0213 0
+strict_iso2022 1
+gb18030_as_ucs 0
+simple_preserve_space 0
+zero_based_link_no 0
diff --git a/w3m/dot-w3m/keymap b/w3m/dot-w3m/keymap
new file mode 100644
index 0000000..3475a35
--- /dev/null
+++ b/w3m/dot-w3m/keymap
@@ -0,0 +1,17 @@
+# source: https://gist.githubusercontent.com/Lovebird-Connoisseur/a11b9dbc5c056d705d1f0e1053de35af/raw/92b30d2ca4cf67b5816146f86f5d920b4bdfc492/keymap
+# New keybinds
+
+# Navigation
+keymap 0 LINE_BEGIN
+keymap g NULL
+keymap gg BEGIN
+keymap ESC-g GOTO_LINE
+keymap w NEXT_WORD
+keymap b PREV_WORD
+
+#keymap C-f NEXT_PAGE
+keymap C-f COMMAND "NEXT_PAGE"
+#keymap C-b PREV_PAGE
+keymap C-b COMMAND "PREV_PAGE"
+keymap C-u PREV_PAGE
+keymap C-d NEXT_PAGE
diff --git a/wayland-basics/dot-config/environment.d/10-home-manager.conf b/wayland-basics/dot-config/environment.d/10-home-manager.conf
new file mode 120000
index 0000000..72f9854
--- /dev/null
+++ b/wayland-basics/dot-config/environment.d/10-home-manager.conf
@@ -0,0 +1 @@
+/nix/store/g7vq71db7zyyg0hav0psmm4v7fda87sw-home-manager-files/.config/environment.d/10-home-manager.conf \ No newline at end of file
diff --git a/wayland-basics/dot-config/environment.d/90-dms.conf b/wayland-basics/dot-config/environment.d/90-dms.conf
new file mode 100644
index 0000000..747ba92
--- /dev/null
+++ b/wayland-basics/dot-config/environment.d/90-dms.conf
@@ -0,0 +1,2 @@
+DMS_DISABLE_MATUGEN=1
+DMS_DISABLE_POLKIT=1
diff --git a/wayland-basics/dot-config/mako/config b/wayland-basics/dot-config/mako/config
index fefbb02..17bc9be 100644
--- a/wayland-basics/dot-config/mako/config
+++ b/wayland-basics/dot-config/mako/config
@@ -1,10 +1,10 @@
# vim: ft=dosini
-include=~/.cache/wal/colors-mako
+# include=~/.cache/wal/colors-mako
-# text-color=#bbbbbb
-# border-color=#005577
-# background-color=#222222
+text-color=#bbbbbb
+border-color=#005577
+background-color=#222222
padding=10
border-size=2
max-icon-size=32
diff --git a/wayland-basics/dot-config/mimeapps.list b/wayland-basics/dot-config/mimeapps.list
index f1a1568..a9a0695 100644
--- a/wayland-basics/dot-config/mimeapps.list
+++ b/wayland-basics/dot-config/mimeapps.list
@@ -1,7 +1,7 @@
[Default Applications]
x-scheme-handler/mailto=mail.desktop;
-message/rfc822=mail.desktop;
x-scheme-handler/mid=mail.desktop;
+message/rfc822=mail-viewer.desktop;
text/x-shellscript=text.desktop;
text/plain=text.desktop;
diff --git a/wayland-basics/dot-config/systemd/user/swaybg.service b/wayland-basics/dot-config/systemd/user/swaybg.service
index 2dffb18..ba035a1 100644
--- a/wayland-basics/dot-config/systemd/user/swaybg.service
+++ b/wayland-basics/dot-config/systemd/user/swaybg.service
@@ -5,7 +5,7 @@ After=graphical-session.target
[Service]
Type=exec
-ExecStart=/usr/bin/swaybg -m fill -i /home/moreka/Pictures/wallpapers/frederic-church-1.jpg
+ExecStart=/usr/bin/swaybg -m fill -i /home/moreka/Pictures/wallpapers/galaxy.jpg
Restart=on-failure
[Install]
diff --git a/wayland-basics/dot-local/share/applications/gf2.desktop b/wayland-basics/dot-local/share/applications/gf2.desktop
new file mode 100644
index 0000000..70aba4e
--- /dev/null
+++ b/wayland-basics/dot-local/share/applications/gf2.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Name=GF
+Comment=A GDB Frontend
+Type=Application
+Icon=application-x-executable
+Exec=/home/moreka/opt/gf2/gf2
+Terminal=false
diff --git a/wayland-basics/dot-local/share/applications/mail-viewer.desktop b/wayland-basics/dot-local/share/applications/mail-viewer.desktop
new file mode 100755
index 0000000..725de38
--- /dev/null
+++ b/wayland-basics/dot-local/share/applications/mail-viewer.desktop
@@ -0,0 +1,7 @@
+[Desktop Entry]
+Type=Application
+Name=Mail Viewer (aerc)
+
+Exec=/usr/bin/alacritty -e aerc :eml %f
+Terminal=false
+MimeType=message/rfc822
diff --git a/zsh/dot-zprofile b/zsh/dot-zprofile
new file mode 100644
index 0000000..5f24667
--- /dev/null
+++ b/zsh/dot-zprofile
@@ -0,0 +1,3 @@
+#!/usr/bin/env zsh
+
+[ -f "$HOME"/.profile ] && . ~/.profile
diff --git a/zsh/dot-zshrc b/zsh/dot-zshrc
new file mode 100644
index 0000000..138c7b0
--- /dev/null
+++ b/zsh/dot-zshrc
@@ -0,0 +1,172 @@
+bindkey -e
+
+# history
+HISTFILE="$XDG_CACHE_HOME"/zsh/history
+HISTCONTROL=ignoreboth
+HISTSIZE=5000
+SAVEHIST=10000
+setopt inc_append_history
+
+setopt autocd
+setopt globdots extended_glob
+setopt interactive_comments
+
+unsetopt beep
+stty stop undef
+
+source "$XDG_CONFIG_HOME"/shellshort/shortcutrc
+source "$XDG_CONFIG_HOME"/shellshort/shortcutenvrc
+source "$XDG_CONFIG_HOME"/shellshort/zshnameddirs
+
+zstyle ':completion:*' menu select=1
+zstyle ':completion::complete:*' gain-privileges 1
+zstyle ':completion:*' special-dirs \
+ '[[ $PREFIX = (../)#(|.|..) ]] && reply=(..)'
+zstyle ':completion:*:default' list-colors ''
+zstyle ':completion:*:matches' group 'yes'
+zstyle ':completion:*' group-name ''
+zstyle ':completion:*' list-dirs-first true
+zstyle :compinstall filename '$HOME/.zshrc'
+
+autoload -Uz colors && colors
+autoload -Uz compinit
+zmodload zsh/complist
+compinit
+_comp_options+=(globdots)
+
+typeset -g -A key
+key[Home]="${terminfo[khome]}"
+key[End]="${terminfo[kend]}"
+key[Insert]="${terminfo[kich1]}"
+key[Backspace]="${terminfo[kbs]}"
+key[Delete]="${terminfo[kdch1]}"
+key[PageUp]="${terminfo[kpp]}"
+key[PageDown]="${terminfo[knp]}"
+key[Shift-Tab]="${terminfo[kcbt]}"
+key[Control-Left]="${terminfo[kLFT5]}"
+key[Control-Right]="${terminfo[kRIT5]}"
+
+# setup key accordingly
+[[ -n "${key[Home]}" ]] && bindkey -- "${key[Home]}" beginning-of-line
+[[ -n "${key[End]}" ]] && bindkey -- "${key[End]}" end-of-line
+[[ -n "${key[Insert]}" ]] && bindkey -- "${key[Insert]}" overwrite-mode
+[[ -n "${key[Backspace]}" ]] && bindkey -- "${key[Backspace]}" backward-delete-char
+[[ -n "${key[Delete]}" ]] && bindkey -- "${key[Delete]}" delete-char
+[[ -n "${key[PageUp]}" ]] && bindkey -- "${key[PageUp]}" beginning-of-buffer-or-history
+[[ -n "${key[PageDown]}" ]] && bindkey -- "${key[PageDown]}" end-of-buffer-or-history
+[[ -n "${key[Shift-Tab]}" ]] && bindkey -- "${key[Shift-Tab]}" reverse-menu-complete
+[[ -n "${key[Control-Left]}" ]] && bindkey -- "${key[Control-Left]}" backward-word
+[[ -n "${key[Control-Right]}" ]] && bindkey -- "${key[Control-Right]}" forward-word
+# Finally, make sure the terminal is in application mode, when zle is
+# active. Only then are the values from $terminfo valid.
+if (( ${+terminfo[smkx]} )) && (( ${+terminfo[rmkx]} )); then
+ function zle-line-init () {
+ echoti smkx
+ }
+ function zle-line-finish () {
+ echoti rmkx
+ }
+ zle -N zle-line-init
+ zle -N zle-line-finish
+fi
+
+# source /usr/share/gitstatus/gitstatus.prompt.zsh
+
+PROMPT='%F{green}%n@%m%f ' # green user@host
+# PROMPT+='%F{blue}%$((-GITSTATUS_PROMPT_LEN-1))<…<%~%<<%f' # blue current working directory
+PROMPT+='%F{blue}%~%<<%f' # blue current working directory
+# PROMPT+='${GITSTATUS_PROMPT:+ $GITSTATUS_PROMPT}' # git status
+# PROMPT+=$'\n' # new line
+PROMPT+=' %F{%(?.#888888.red)}%(!.#.$)%f ' # %/# (normal/root); green/red (ok/error)
+
+function ls()
+{
+ command ls --color=auto --indicator-style=classify --human-readable --literal --group-directories-first -v "$@" # -v is for natural sort of numbers within text
+}
+
+# coreutils
+alias diff='diff --color=auto'
+alias grep='grep --color=auto'
+alias cp='cp -riv'
+alias ll='ls --all -l --human-readable' # -l = long listing format
+alias l='ls -l'
+alias mkdir='mkdir -pv'
+alias mv='mv -iv'
+alias rm='rm -iv'
+alias ..='echo "cd .."; cd ..'
+alias ...='echo "cd ../.."; cd ../..'
+
+# program aliases
+alias m='aerc'
+alias p='sudo pacman'
+alias SS='sudo systemctl'
+alias Su='systemctl --user'
+alias v='nvim'
+alias vn='NVIM_APPNAME=nvim-min nvim'
+alias vv='uv run nvim'
+alias neofetch='fastfetch -c examples/13'
+alias cvim='nvim -c "cd ~/.config/nvim" -c "Oil"'
+alias hm='home-manager --flake ~/nix'
+
+# source: https://wiki.archlinux.org/title/GnuPG#Configure_pinentry_to_use_the_correct_TTY
+GPG_TTY="$(tty)"
+export GPG_TTY
+gpg-connect-agent updatestartuptty /bye >/dev/null
+
+export FZF_DEFAULT_COMMAND='fd --type f --strip-cwd-prefix --hidden --follow --exclude .git'
+export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
+source <(fzf --zsh)
+
+function lfcd()
+{
+ export LF_CD_FILE=/tmp/.lfcd-$$
+ command lf "$@"
+ if [ -s "$LF_CD_FILE" ]; then
+ local DIR
+ DIR="$(realpath "$(cat "$LF_CD_FILE")")"
+ if [ "$DIR" != "$PWD" ]; then
+ echo "cd to $DIR"
+ cd "$DIR" || exit
+ fi
+ command rm "$LF_CD_FILE"
+ fi
+ unset LF_CD_FILE
+}
+
+function se()
+{
+ choice="$(fd . ~/.local/bin -d1 -tx -tl --format '{/}' | fzf)"
+ [ -f "$HOME/.local/bin/$choice" ] && $EDITOR "$HOME/.local/bin/$choice"
+}
+
+function nb()
+{
+ local curdate="$(date +'%Y-%m-%d %a %H:%M')"
+ local tmpfile=$(mktemp --tmpdir --suffix=.notes note.XXXXXXXXXXX)
+ printf "[%s] " "$curdate" >> "$tmpfile"
+ local mtime_before=$(stat -c %Y "$tmpfile")
+ nvim -c 'norm gg$' -c 'startinsert!' "$tmpfile"
+ local mtime_after=$(stat -c %Y "$tmpfile")
+ if [ "$mtime_after" -ne "$mtime_before" ]; then
+ local note="$(cat "$tmpfile")"
+ echo "$note" >> ~/refile.notes
+ fi
+}
+
+bindkey -s '^o' '^ulfcd\n'
+bindkey -s '^[n' '^unb\n'
+
+autoload edit-command-line
+zle -N edit-command-line
+bindkey '^x^e' edit-command-line
+
+typeset -A ZSH_HIGHLIGHT_STYLES
+
+ZSH_HIGHLIGHT_STYLES[suffix-alias]='fg=green'
+ZSH_HIGHLIGHT_STYLES[precommand]='fg=green'
+ZSH_HIGHLIGHT_STYLES[autodirectory]='fg=green'
+ZSH_HIGHLIGHT_STYLES[path]='none'
+
+ZSH_HIGHLIGHT_HIGHLIGHTERS+=(brackets)
+
+source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh