diff options
| author | Mohammad Reza Karimi <m.r.karimi.j@gmail.com> | 2026-02-10 09:56:03 -0500 |
|---|---|---|
| committer | Mohammad Reza Karimi <m.r.karimi.j@gmail.com> | 2026-02-10 09:56:03 -0500 |
| commit | 8d416aa3cc6a562cb4d676eafb92d52b1ef3d334 (patch) | |
| tree | 05db378117b6b67d3350b56b8702d6faac1fa545 | |
| parent | ab7303e1d893f33e09dbc8493f9a9179a7a40a4a (diff) | |
updates
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/ / /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 |
