aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammad Reza Karimi <m.r.karimi.j@gmail.com>2026-02-23 15:03:10 -0500
committerMohammad Reza Karimi <m.r.karimi.j@gmail.com>2026-02-23 15:03:10 -0500
commit36a274dbc066068ff25b839e21ce3b82ec292c88 (patch)
tree7e3de8bafab79cfa86c93f467413b8f43273a8a5
parentb29aab34dff6b76fd8eb067d51d2fe41be594616 (diff)
big updatesHEADmain
-rw-r--r--aerc/dot-config/aerc/accounts.conf50
-rw-r--r--aerc/dot-config/aerc/aerc.conf4
-rw-r--r--alacritty/dot-config/alacritty/alacritty.toml6
-rw-r--r--applications/dot-config/autostart/at-spi-dbus-bus.desktop (renamed from wayland-basics/dot-config/autostart/at-spi-dbus-bus.desktop)0
-rw-r--r--applications/dot-config/mimeapps.list (renamed from wayland-basics/dot-config/mimeapps.list)0
-rwxr-xr-xapplications/dot-local/share/applications/file.desktop (renamed from wayland-basics/dot-local/share/applications/file.desktop)0
l---------applications/dot-local/share/applications/img.desktop (renamed from wayland-basics/dot-local/share/applications/img.desktop)0
-rwxr-xr-xapplications/dot-local/share/applications/imv.desktop (renamed from wayland-basics/dot-local/share/applications/imv.desktop)0
-rwxr-xr-xapplications/dot-local/share/applications/mail-viewer.desktop (renamed from wayland-basics/dot-local/share/applications/mail-viewer.desktop)0
-rwxr-xr-xapplications/dot-local/share/applications/mail.desktop (renamed from wayland-basics/dot-local/share/applications/mail.desktop)0
l---------applications/dot-local/share/applications/mimeapps.list1
-rwxr-xr-xapplications/dot-local/share/applications/mpv.desktop (renamed from wayland-basics/dot-local/share/applications/mpv.desktop)0
-rw-r--r--applications/dot-local/share/applications/nvim.desktop2
-rwxr-xr-xapplications/dot-local/share/applications/pdf.desktop (renamed from wayland-basics/dot-local/share/applications/pdf.desktop)0
-rwxr-xr-xapplications/dot-local/share/applications/text.desktop (renamed from wayland-basics/dot-local/share/applications/nvim.desktop)5
l---------applications/dot-local/share/applications/video.desktop (renamed from wayland-basics/dot-local/share/applications/video.desktop)0
-rw-r--r--astroid/dot-config/astroid/config141
-rwxr-xr-xastroid/dot-config/astroid/poll.sh8
-rw-r--r--bash/dot-bashrc15
-rw-r--r--bash/dot-config/dir_colors274
-rw-r--r--bash/dot-config/shellshort/bm-dirs4
-rw-r--r--bash/dot-config/shellshort/shortcutenvrc5
-rw-r--r--bash/dot-config/shellshort/shortcutrc5
-rw-r--r--bash/dot-config/shellshort/zshnameddirs4
-rw-r--r--bash/dot-profile11
-rw-r--r--email/.stow-local-ignore4
-rw-r--r--email/dot-config/isyncrc84
-rw-r--r--email/dot-config/msmtp/config16
-rwxr-xr-xemail/dot-config/notmuch/default/hooks/post-new2
-rw-r--r--env/dot-config/environment.d/wayland.conf (renamed from wayland-basics/dot-config/environment.d/wayland.conf)0
-rw-r--r--fonts/dot-config/fontconfig/conf.d/52-default-fonts.conf14
-rw-r--r--fonts/dot-config/fontconfig/conf.d/66-emoji.conf4
-rw-r--r--fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-Heavy.ttfbin7254864 -> 0 bytes
-rw-r--r--fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-HeavyOblique.ttfbin7538712 -> 0 bytes
-rw-r--r--fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-W360.ttfbin7239104 -> 0 bytes
-rw-r--r--fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-W360Oblique.ttfbin7478388 -> 0 bytes
-rw-r--r--fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-build-plans.toml208
-rw-r--r--fonts/dot-local/share/fonts/lambda/Lambda-Bold.ttfbin411428 -> 0 bytes
-rw-r--r--fonts/dot-local/share/fonts/lambda/Lambda-BoldItalic.ttfbin106564 -> 0 bytes
-rw-r--r--fonts/dot-local/share/fonts/lambda/Lambda-Italic.ttfbin100448 -> 0 bytes
-rw-r--r--fonts/dot-local/share/fonts/lambda/Lambda.ttfbin425288 -> 0 bytes
-rw-r--r--fuzzel/dot-config/fuzzel/fuzzel.ini (renamed from wayland-basics/dot-config/fuzzel/fuzzel.ini)4
-rw-r--r--git/dot-config/git/config17
-rw-r--r--gtk/dot-config/Kvantum/kvantum.kvconfig2
-rw-r--r--gtk/dot-config/gtk-3.0/settings.ini4
-rw-r--r--gtk/dot-config/gtk-4.0/settings.ini2
-rw-r--r--lf/dot-config/lf/lfrc12
-rwxr-xr-xlf/dot-config/lf/scripts/previewer (renamed from lf/dot-config/lf/previewer)0
-rwxr-xr-xlf/dot-config/lf/scripts/safe_extract (renamed from scripts/dot-local/bin/safe_extract)5
-rw-r--r--lf/dot-config/lf/scripts/seccomp_default_filter.bpfbin0 -> 504 bytes
-rw-r--r--lf/dot-config/lf/shortcutrc4
-rw-r--r--mako/dot-config/mako/config (renamed from wayland-basics/dot-config/mako/config)2
-rw-r--r--mpv/dot-config/mpv/mpv.conf (renamed from wayland-basics/dot-config/mpv/mpv.conf)0
-rw-r--r--niri-dms/dot-config/niri/config.kdl305
-rw-r--r--niri-dms/dot-config/niri/dms/alttab.kdl10
-rw-r--r--niri-dms/dot-config/niri/dms/binds.kdl3
-rw-r--r--niri-dms/dot-config/niri/dms/colors.kdl39
-rw-r--r--niri-dms/dot-config/niri/dms/cursor.kdl0
-rw-r--r--niri-dms/dot-config/niri/dms/layout.kdl22
-rw-r--r--niri-dms/dot-config/niri/dms/outputs.kdl0
-rw-r--r--niri-dms/dot-config/niri/dms/windowrules.kdl0
-rw-r--r--niri-dms/dot-config/niri/dms/wpblur.kdl9
-rw-r--r--niri-dms/dot-config/systemd/user/app-graphical.slice (renamed from niri/dot-config/systemd/user/app-graphical.slice)0
-rw-r--r--niri/dot-config/niri/animations.kdl2
-rw-r--r--niri/dot-config/niri/binds.kdl107
-rw-r--r--niri/dot-config/niri/config.kdl316
-rw-r--r--niri/dot-config/niri/decorations.kdl16
-rw-r--r--niri/dot-config/niri/input.kdl21
-rw-r--r--niri/dot-config/niri/layout.kdl39
-rw-r--r--niri/dot-config/niri/misc.kdl29
-rw-r--r--niri/dot-config/niri/outputs.kdl6
-rw-r--r--niri/dot-config/niri/rules.kdl5
-rw-r--r--niri/dot-config/niri/workspaces.kdl5
-rw-r--r--psd/dot-config/psd/.psd.conf10
-rw-r--r--psd/dot-config/psd/psd.conf2
-rw-r--r--qute/dot-config/qutebrowser/config.py14
-rw-r--r--qute/dot-config/qutebrowser/quickmarks2
-rw-r--r--qute/dot-config/qutebrowser/themes/doomone.py305
-rw-r--r--scripts/.stow-local-ignore6
-rwxr-xr-xscripts/dot-local/bin/fontpreview215
-rwxr-xr-xscripts/dot-local/bin/shortcuts4
-rw-r--r--services/dot-config/systemd/user/kanshi.service (renamed from wayland-basics/dot-config/systemd/user/kanshi.service)0
-rw-r--r--services/dot-config/systemd/user/soteria.service (renamed from wayland-basics/dot-config/systemd/user/soteria.service)0
-rw-r--r--services/dot-config/systemd/user/swaybg.service (renamed from wayland-basics/dot-config/systemd/user/swaybg.service)2
-rw-r--r--services/dot-config/systemd/user/swayidle.service (renamed from wayland-basics/dot-config/systemd/user/swayidle.service)0
-rw-r--r--services/dot-config/systemd/user/swayosd-server.service (renamed from wayland-basics/dot-config/systemd/user/swayosd-server.service)0
-rw-r--r--services/dot-config/systemd/user/wl-clip-persist.service (renamed from wayland-basics/dot-config/systemd/user/wl-clip-persist.service)0
-rw-r--r--services/dot-config/systemd/user/wlsunset.service (renamed from wayland-basics/dot-config/systemd/user/wlsunset.service)2
-rw-r--r--swaylock/dot-config/swaylock/config (renamed from wayland-basics/dot-config/swaylock/config)0
-rw-r--r--waybar-vert/dot-config/waybar/config.jsonc136
-rw-r--r--waybar-vert/dot-config/waybar/style.css161
-rw-r--r--waybar/dot-config/waybar/config.jsonc167
-rw-r--r--waybar/dot-config/waybar/style.css205
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/systemd/user/minibar.service13
-rw-r--r--wayland-basics/dot-config/systemd/user/polkit-kde.service12
-rw-r--r--wayland-basics/dot-local/share/applications/chromium.desktop21
-rw-r--r--wayland-basics/dot-local/share/applications/gf2.desktop7
l---------wayland-basics/dot-local/share/applications/text.desktop1
-rw-r--r--wireplumber/dot-config/wireplumber/wireplumber.conf.d/disable-bluetooth.conf (renamed from wayland-basics/dot-config/wireplumber/wireplumber.conf.d/disable-bluetooth.conf)0
-rw-r--r--zathura/dot-config/zathura/zathurarc (renamed from wayland-basics/dot-config/zathura/zathurarc)0
102 files changed, 2249 insertions, 892 deletions
diff --git a/aerc/dot-config/aerc/accounts.conf b/aerc/dot-config/aerc/accounts.conf
index ccfca5b..1c5a524 100644
--- a/aerc/dot-config/aerc/accounts.conf
+++ b/aerc/dot-config/aerc/accounts.conf
@@ -13,28 +13,28 @@ check-mail-cmd = mbsync mit
check-mail-timeout = 20s
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
-check-mail-timeout = 60s
-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
+# [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
+# check-mail-timeout = 60s
+# 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 f2ce995..aeca242 100644
--- a/aerc/dot-config/aerc/aerc.conf
+++ b/aerc/dot-config/aerc/aerc.conf
@@ -192,8 +192,8 @@ application/pdf=pdftotext - -l 10 -nopgbrk -q - | fmt -w 100
[openers]
# x-scheme-handler/http*=printf '%s' {} | wl-copy
-text/html=runapp -o -- qutebrowser
-text/plain=runapp -o -- alacritty -e nvim {} +125
+text/html=qutebrowser
+text/plain=st -e nvim {} +125
[hooks]
#
diff --git a/alacritty/dot-config/alacritty/alacritty.toml b/alacritty/dot-config/alacritty/alacritty.toml
index 733dc4b..99abd74 100644
--- a/alacritty/dot-config/alacritty/alacritty.toml
+++ b/alacritty/dot-config/alacritty/alacritty.toml
@@ -8,8 +8,12 @@ padding = { x = 6, y = 6 }
[font]
# normal = { family = "Comic Code", style = "Regular" }
+normal = { family = "Cascadia Code", style = "SemiLight" }
+italic = { family = "Cascadia Code", style = "SemiLight Italic" }
+bold = { family = "Cascadia Code", style = "SemiBold" }
+bold_italic = { family = "Cascadia Code", style = "SemiBold Italic" }
# normal = { family = "SF Mono", style = "Regular" }
-normal = { family = "Hack", style = "Regular" }
+# normal = { family = "Hack", style = "Regular" }
size = 12
[scrolling]
diff --git a/wayland-basics/dot-config/autostart/at-spi-dbus-bus.desktop b/applications/dot-config/autostart/at-spi-dbus-bus.desktop
index 9baab50..9baab50 100644
--- a/wayland-basics/dot-config/autostart/at-spi-dbus-bus.desktop
+++ b/applications/dot-config/autostart/at-spi-dbus-bus.desktop
diff --git a/wayland-basics/dot-config/mimeapps.list b/applications/dot-config/mimeapps.list
index a9a0695..a9a0695 100644
--- a/wayland-basics/dot-config/mimeapps.list
+++ b/applications/dot-config/mimeapps.list
diff --git a/wayland-basics/dot-local/share/applications/file.desktop b/applications/dot-local/share/applications/file.desktop
index a7e84c3..a7e84c3 100755
--- a/wayland-basics/dot-local/share/applications/file.desktop
+++ b/applications/dot-local/share/applications/file.desktop
diff --git a/wayland-basics/dot-local/share/applications/img.desktop b/applications/dot-local/share/applications/img.desktop
index 6dacb85..6dacb85 120000
--- a/wayland-basics/dot-local/share/applications/img.desktop
+++ b/applications/dot-local/share/applications/img.desktop
diff --git a/wayland-basics/dot-local/share/applications/imv.desktop b/applications/dot-local/share/applications/imv.desktop
index d41f33d..d41f33d 100755
--- a/wayland-basics/dot-local/share/applications/imv.desktop
+++ b/applications/dot-local/share/applications/imv.desktop
diff --git a/wayland-basics/dot-local/share/applications/mail-viewer.desktop b/applications/dot-local/share/applications/mail-viewer.desktop
index 725de38..725de38 100755
--- a/wayland-basics/dot-local/share/applications/mail-viewer.desktop
+++ b/applications/dot-local/share/applications/mail-viewer.desktop
diff --git a/wayland-basics/dot-local/share/applications/mail.desktop b/applications/dot-local/share/applications/mail.desktop
index 6942566..6942566 100755
--- a/wayland-basics/dot-local/share/applications/mail.desktop
+++ b/applications/dot-local/share/applications/mail.desktop
diff --git a/applications/dot-local/share/applications/mimeapps.list b/applications/dot-local/share/applications/mimeapps.list
new file mode 120000
index 0000000..488cfb8
--- /dev/null
+++ b/applications/dot-local/share/applications/mimeapps.list
@@ -0,0 +1 @@
+../../../dot-config/mimeapps.list \ No newline at end of file
diff --git a/wayland-basics/dot-local/share/applications/mpv.desktop b/applications/dot-local/share/applications/mpv.desktop
index 282ae48..282ae48 100755
--- a/wayland-basics/dot-local/share/applications/mpv.desktop
+++ b/applications/dot-local/share/applications/mpv.desktop
diff --git a/applications/dot-local/share/applications/nvim.desktop b/applications/dot-local/share/applications/nvim.desktop
new file mode 100644
index 0000000..e1e3e17
--- /dev/null
+++ b/applications/dot-local/share/applications/nvim.desktop
@@ -0,0 +1,2 @@
+[Desktop Entry]
+Hidden=true
diff --git a/wayland-basics/dot-local/share/applications/pdf.desktop b/applications/dot-local/share/applications/pdf.desktop
index 8c38677..8c38677 100755
--- a/wayland-basics/dot-local/share/applications/pdf.desktop
+++ b/applications/dot-local/share/applications/pdf.desktop
diff --git a/wayland-basics/dot-local/share/applications/nvim.desktop b/applications/dot-local/share/applications/text.desktop
index 5da6b49..8d5ba0c 100755
--- a/wayland-basics/dot-local/share/applications/nvim.desktop
+++ b/applications/dot-local/share/applications/text.desktop
@@ -2,11 +2,12 @@
Name=Neovim
GenericName=Text Editor
Comment=Edit text files
-Exec=sh -c "alacritty -e nvim %F"
+TryExec=nvim
+Exec=/usr/bin/alacritty -e nvim %F
Terminal=false
Type=Application
Keywords=Text;editor;
Icon=nvim
-Categories=Utility;TextEditor;
+Categories=Utility;TextEditor;Development;
StartupNotify=false
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
diff --git a/wayland-basics/dot-local/share/applications/video.desktop b/applications/dot-local/share/applications/video.desktop
index 0da0c22..0da0c22 120000
--- a/wayland-basics/dot-local/share/applications/video.desktop
+++ b/applications/dot-local/share/applications/video.desktop
diff --git a/astroid/dot-config/astroid/config b/astroid/dot-config/astroid/config
new file mode 100644
index 0000000..4d7a818
--- /dev/null
+++ b/astroid/dot-config/astroid/config
@@ -0,0 +1,141 @@
+{
+ "astroid": {
+ "config": {
+ "version": "11"
+ },
+ "notmuch_config": "\/home\/moreka\/.config\/notmuch\/default\/config",
+ "debug": {
+ "dryrun_sending": "false"
+ },
+ "hints": {
+ "level": "0"
+ },
+ "log": {
+ "syslog": "false",
+ "stdout": "true",
+ "level": "info"
+ }
+ },
+ "accounts": {
+ "mit": {
+ "name": "Mohammad Reza Karimi",
+ "email": "moreka@mit.edu",
+ "gpgkey": "",
+ "always_gpg_sign": "false",
+ "sendmail": "msmtp -i -t",
+ "default": "true",
+ "save_sent": "true",
+ "save_sent_to": "\/home\/moreka\/.local\/share\/mail\/mit\/Sent\/cur\/",
+ "additional_sent_tags": "sent",
+ "save_drafts_to":"\/home\/moreka\/.local\/share\/mail\/mit\/Drafts\/cur\/",
+ "signature_separate": "false",
+ "signature_file": "",
+ "signature_file_markdown": "",
+ "signature_default_on": "true",
+ "signature_attach": "false",
+ "select_query": ""
+ }
+ },
+ "startup": {
+ "queries": {
+ "inbox": "tag:inbox and not tag:18650",
+ "18650": "tag:18650"
+ }
+ },
+ "terminal": {
+ "height": "10",
+ "font_description": "monospace 10"
+ },
+ "thread_index": {
+ "page_jump_rows": "6",
+ "sort_order": "newest",
+ "cell": {
+ "font_description": "monospace 10",
+ "line_spacing": "2",
+ "date_length": "10",
+ "message_count_length": "4",
+ "authors_length": "20",
+ "show_left_icons": "true",
+ "subject_color": "#807d74",
+ "subject_color_selected": "#000000",
+ "background_color_selected": "",
+ "background_color_marked": "#fff584",
+ "background_color_marked_selected": "#bcb559",
+ "tags_length": "80",
+ "tags_upper_color": "#e5e5e5",
+ "tags_lower_color": "#333333",
+ "tags_alpha": "0.5",
+ "hidden_tags": "attachment,flagged,unread"
+ }
+ },
+ "general": {
+ "time": {
+ "clock_format": "24h",
+ "same_year": "%b %-e",
+ "diff_year": "%d-%m-%Y"
+ },
+ "tagbar_move": "tag"
+ },
+ "editor": {
+ "cmd": "alacritty -e nvim -c 'set ft=mail' %1",
+ "external_editor": "true",
+ "charset": "utf-8",
+ "save_draft_on_force_quit": "true",
+ "attachment_words": "attach",
+ "attachment_directory": "~",
+ "markdown_processor": "cmark",
+ "markdown_on": "false"
+ },
+ "mail": {
+ "reply": {
+ "quote_processor": "w3m -dump -T text\/html",
+ "quote_line": "On %2, %1 wrote:",
+ "mailinglist_reply_to_sender": "true"
+ },
+ "forward": {
+ "quote_line": "Forwarded message from %1 on %2:",
+ "disposition": "inline"
+ },
+ "sent_tags": "sent",
+ "message_id_fqdn": "",
+ "message_id_user": "",
+ "user_agent": "",
+ "send_delay": "0",
+ "close_on_success": "false",
+ "format_flowed": "true"
+ },
+ "poll": {
+ "interval": "60",
+ "always_full_refresh": "true"
+ },
+ "attachment": {
+ "external_open_cmd": "xdg-open"
+ },
+ "thread_view": {
+ "open_html_part_external": "false",
+ "preferred_type": "plain",
+ "preferred_html_only": "false",
+ "allow_remote_when_encrypted": "false",
+ "open_external_link": "xdg-open",
+ "default_save_directory": "~",
+ "indent_messages": "false",
+ "gravatar": {
+ "enable": "true"
+ },
+ "mark_unread_delay": "0.5",
+ "expand_flagged": "true"
+ },
+ "crypto": {
+ "gpg": {
+ "path": "gpg2",
+ "always_trust": "true",
+ "enabled": "true"
+ }
+ },
+ "saved_searches": {
+ "show_on_startup": "false",
+ "save_history": "true",
+ "history_lines_to_show": "15",
+ "history_lines": "1000"
+ }
+}
diff --git a/astroid/dot-config/astroid/poll.sh b/astroid/dot-config/astroid/poll.sh
new file mode 100755
index 0000000..e0bf94e
--- /dev/null
+++ b/astroid/dot-config/astroid/poll.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env bash
+set -e
+
+# Fetch new mail.
+mbsync mit
+
+notmuch new
+# https://github.com/astroidmail/astroid/wiki/Advanced-Polling-and-Processing-mail#automatic-tagging
diff --git a/bash/dot-bashrc b/bash/dot-bashrc
index cc15ea0..8159104 100644
--- a/bash/dot-bashrc
+++ b/bash/dot-bashrc
@@ -9,6 +9,7 @@ export HISTCONTROL='ignoredups'
export HISTFILESIZE=100000
export HISTSIZE=10000
+shopt -s histappend
shopt -s autocd
shopt -s checkwinsize
shopt -u promptvars
@@ -38,11 +39,17 @@ 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 "Ex"'
-alias hm='home-manager --flake ~/nix'
+alias cvim='nvim -c "cd ~/.config/nvim" -c "Oil"'
+
+if [[ -f ~/.config/dir_colors ]]; then
+ eval "$(COLORTERM=1 dircolors -b -- ~/.config/dir_colors)"
+else
+ eval "$(COLORTERM=1 dircolors -b)"
+fi
+export MANPAGER="sh -c 'bat --paging always --theme ansi -p -l man'"
+# export MANPAGER="sh -c 'sed -u -e \"s/\\x1B\[[0-9;]*m//g; s/.\\x08//g\" | bat --paging always --theme ansi -p -l man'"
# source: https://wiki.archlinux.org/title/GnuPG#Configure_pinentry_to_use_the_correct_TTY
GPG_TTY="$(tty)"
@@ -53,7 +60,7 @@ gpg-connect-agent updatestartuptty /bye >/dev/null
source "${XDG_CONFIG_HOME:-$HOME/.config}"/bash/functions.bash
# shellcheck source=notes.bash
-source "${XDG_CONFIG_HOME:-$HOME/.config}"/bash/notes.bash
+# source "${XDG_CONFIG_HOME:-$HOME/.config}"/bash/notes.bash
bind '"\C-o":"\C-ulf\C-m"'
diff --git a/bash/dot-config/dir_colors b/bash/dot-config/dir_colors
new file mode 100644
index 0000000..e9e01be
--- /dev/null
+++ b/bash/dot-config/dir_colors
@@ -0,0 +1,274 @@
+# vim: ft=conf
+# Configuration file for dircolors, a utility to help you set the
+# LS_COLORS environment variable used by GNU ls with the --color option.
+
+# Copyright (C) 1996-2025 Free Software Foundation, Inc.
+# Copying and distribution of this file, with or without modification,
+# are permitted provided the copyright notice and this notice are preserved.
+
+#
+# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
+# slackware version of dircolors) are recognized but ignored.
+
+# You can copy this file to .dir_colors in your $HOME directory to override
+# the system defaults.
+
+# Global config options can be specified before TERM or COLORTERM entries
+
+# ===================================================================
+# Terminal filters
+# ===================================================================
+# Below are TERM or COLORTERM entries, which can be glob patterns, which
+# restrict following config to systems with matching environment variables.
+COLORTERM ?*
+TERM Eterm
+TERM ansi
+TERM *color*
+TERM con[0-9]*x[0-9]*
+TERM cons25
+TERM console
+TERM cygwin
+TERM *direct*
+TERM dtterm
+TERM gnome
+TERM hurd
+TERM jfbterm
+TERM konsole
+TERM kterm
+TERM linux
+TERM linux-c
+TERM mlterm
+TERM putty
+TERM rxvt*
+TERM screen*
+TERM st
+TERM terminator
+TERM tmux*
+TERM vt100
+TERM vt220
+TERM xterm*
+
+# ===================================================================
+# Basic file attributes
+# ===================================================================
+# Below are the color init strings for the basic file types.
+# One can use codes for 256 or more colors supported by modern terminals.
+# The default color codes use the capabilities of an 8 color terminal
+# with some additional attributes as per the following codes:
+# Attribute codes:
+# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
+# Text color codes:
+# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
+# Background color codes:
+# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
+#NORMAL 00 # no color code at all
+#FILE 00 # regular file: use no color at all
+RESET 0 # reset to "normal" color
+DIR 01;34 # directory
+LINK 01;36 # symbolic link. (If you set this to 'target' instead of a
+ # numerical value, the color is as for the file pointed to.)
+MULTIHARDLINK 00 # regular file with more than one link
+FIFO 40;33 # pipe
+SOCK 01;35 # socket
+DOOR 01;35 # door
+BLK 40;33;01 # block device driver
+CHR 40;33;01 # character device driver
+ORPHAN 01;37;41 # symlink to nonexistent file, or non-stat'able file ...
+MISSING 0 # ... and the files they point to
+SETUID 37;41 # regular file that is setuid (u+s)
+SETGID 30;43 # regular file that is setgid (g+s)
+CAPABILITY 00 # regular file with capability (very expensive to lookup)
+STICKY_OTHER_WRITABLE 30;42 # dir that is sticky and other-writable (+t,o+w)
+OTHER_WRITABLE 34;42 # dir that is other-writable (o+w) and not sticky
+STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
+
+# This is for regular files with execute permission:
+EXEC 01;32
+
+# ===================================================================
+# File extension attributes
+# ===================================================================
+# List any file extensions like '.gz' or '.tar' that you would like ls
+# to color below. Put the suffix, a space, and the color init string.
+# (and any comments you want to add after a '#').
+# Suffixes are matched case insensitively, but if you define different
+# init strings for separate cases, those will be honored.
+#
+
+# If you use DOS-style suffixes, you may want to uncomment the following:
+#.cmd 01;32 # executables (bright green)
+#.exe 01;32
+#.com 01;32
+#.btm 01;32
+#.bat 01;32
+# Or if you want to color scripts even if they do not have the
+# executable bit actually set.
+#.sh 01;32
+#.csh 01;32
+
+# archives or compressed (bright red)
+.7z 01;31
+.ace 01;31
+.alz 01;31
+.apk 01;31
+.arc 01;31
+.arj 01;31
+.bz 01;31
+.bz2 01;31
+.cab 01;31
+.cpio 01;31
+.crate 01;31
+.deb 01;31
+.drpm 01;31
+.dwm 01;31
+.dz 01;31
+.ear 01;31
+.egg 01;31
+.esd 01;31
+.gz 01;31
+.jar 01;31
+.lha 01;31
+.lrz 01;31
+.lz 01;31
+.lz4 01;31
+.lzh 01;31
+.lzma 01;31
+.lzo 01;31
+.pyz 01;31
+.rar 01;31
+.rpm 01;31
+.rz 01;31
+.sar 01;31
+.swm 01;31
+.t7z 01;31
+.tar 01;31
+.taz 01;31
+.tbz 01;31
+.tbz2 01;31
+.tgz 01;31
+.tlz 01;31
+.txz 01;31
+.tz 01;31
+.tzo 01;31
+.tzst 01;31
+.udeb 01;31
+.war 01;31
+.whl 01;31
+.wim 01;31
+.xz 01;31
+.z 01;31
+.zip 01;31
+.zoo 01;31
+.zst 01;31
+
+# image formats
+.avif 01;35
+.jpg 01;35
+.jpeg 01;35
+.jxl 01;35
+.mjpg 01;35
+.mjpeg 01;35
+.gif 01;35
+.bmp 01;35
+.pbm 01;35
+.pgm 01;35
+.ppm 01;35
+.tga 01;35
+.xbm 01;35
+.xpm 01;35
+.tif 01;35
+.tiff 01;35
+.png 01;35
+.svg 01;35
+.svgz 01;35
+.mng 01;35
+.pcx 01;35
+.mov 01;35
+.mpg 01;35
+.mpeg 01;35
+.m2v 01;35
+.mkv 01;35
+.webm 01;35
+.webp 01;35
+.ogm 01;35
+.mp4 01;35
+.m4v 01;35
+.mp4v 01;35
+.vob 01;35
+.qt 01;35
+.nuv 01;35
+.wmv 01;35
+.asf 01;35
+.rm 01;35
+.rmvb 01;35
+.flc 01;35
+.avi 01;35
+.fli 01;35
+.flv 01;35
+.gl 01;35
+.dl 01;35
+.xcf 01;35
+.xwd 01;35
+.yuv 01;35
+.cgm 01;35
+.emf 01;35
+
+# https://wiki.xiph.org/MIME_Types_and_File_Extensions
+.ogv 01;35
+.ogx 01;35
+
+# Text/document files
+.cfg 00;32
+.conf 00;32
+.diff 00;32
+.doc 00;32
+.ini 00;32
+.log 00;32
+.patch 00;32
+.pdf 00;32
+.ps 00;32
+.tex 00;32
+.txt 00;32
+
+# audio formats
+.aac 00;36
+.au 00;36
+.flac 00;36
+.m4a 00;36
+.mid 00;36
+.midi 00;36
+.mka 00;36
+.mp3 00;36
+.mpc 00;36
+.ogg 00;36
+.ra 00;36
+.wav 00;36
+
+# https://wiki.xiph.org/MIME_Types_and_File_Extensions
+.oga 00;36
+.opus 00;36
+.spx 00;36
+.xspf 00;36
+
+# backup files
+*~ 00;90
+*# 00;90
+.bak 00;90
+.crdownload 00;90
+.dpkg-dist 00;90
+.dpkg-new 00;90
+.dpkg-old 00;90
+.dpkg-tmp 00;90
+.old 00;90
+.orig 00;90
+.part 00;90
+.rej 00;90
+.rpmnew 00;90
+.rpmorig 00;90
+.rpmsave 00;90
+.swp 00;90
+.tmp 00;90
+.ucf-dist 00;90
+.ucf-new 00;90
+.ucf-old 00;90
+
diff --git a/bash/dot-config/shellshort/bm-dirs b/bash/dot-config/shellshort/bm-dirs
index 4ecd6c0..1b26d16 100644
--- a/bash/dot-config/shellshort/bm-dirs
+++ b/bash/dot-config/shellshort/bm-dirs
@@ -1,2 +1,2 @@
-mit $HOME/mit/18.650-spring-26/
-linatt $HOME/mit/linear-attention/
+mit $HOME/teaching/18.650-spring-26/
+linatt $HOME/research/linear-attention/
diff --git a/bash/dot-config/shellshort/shortcutenvrc b/bash/dot-config/shellshort/shortcutenvrc
deleted file mode 100644
index 8f0b3fb..0000000
--- a/bash/dot-config/shellshort/shortcutenvrc
+++ /dev/null
@@ -1,5 +0,0 @@
-# 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
deleted file mode 100644
index e8571c1..0000000
--- a/bash/dot-config/shellshort/shortcutrc
+++ /dev/null
@@ -1,5 +0,0 @@
-# vim: filetype=sh
-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
deleted file mode 100644
index d7453ec..0000000
--- a/bash/dot-config/shellshort/zshnameddirs
+++ /dev/null
@@ -1,4 +0,0 @@
-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 ca4932c..ee18485 100644
--- a/bash/dot-profile
+++ b/bash/dot-profile
@@ -3,7 +3,7 @@
export EDITOR=nvim
export SUDO_EDITOR=$EDITOR
-export MANPAGER="sh -c 'sed -u -e \"s/\\x1B\[[0-9;]*m//g; s/.\\x08//g\" | bat --paging always -p -lman'"
+
export XDG_CONFIG_HOME="$HOME"/.config
export XDG_CACHE_HOME="$HOME"/.cache
@@ -11,13 +11,16 @@ export XDG_DATA_HOME="$HOME"/.local/share
export XDG_STATE_HOME="$HOME"/.local/state
export XDG_BIN_HOME="$HOME"/.local/bin
-PATH="${PATH}:${XDG_BIN_HOME}:$HOME/.nix-profile/bin"
+PATH="${PATH}:${XDG_BIN_HOME}"
+# PATH="${PATH}:$HOME/.nix-profile/bin"
export PATH
-XDG_DATA_DIRS="$HOME/.nix-profile/share:$XDG_DATA_DIRS"
-export XDG_DATA_DIRS
+# XDG_DATA_DIRS="$HOME/.nix-profile/share:$XDG_DATA_DIRS"
+# export XDG_DATA_DIRS
export LESSHISTFILE="$XDG_CACHE_HOME"/lesshst
+export LESS="-R -M --shift 5"
+
export CARGO_HOME="$XDG_DATA_HOME"/cargo
export TEXMFHOME="$XDG_DATA_HOME"/texmf
export TEXMFVAR="$XDG_CACHE_HOME"/texlive/texmf-var
diff --git a/email/.stow-local-ignore b/email/.stow-local-ignore
new file mode 100644
index 0000000..0162589
--- /dev/null
+++ b/email/.stow-local-ignore
@@ -0,0 +1,4 @@
+systemd
+imapnotify
+maildir\-rank\-addr
+oama
diff --git a/email/dot-config/isyncrc b/email/dot-config/isyncrc
index b785916..00bc368 100644
--- a/email/dot-config/isyncrc
+++ b/email/dot-config/isyncrc
@@ -1,7 +1,7 @@
IMAPAccount mit
Host outlook.office365.com
User moreka@mit.edu
-PassCmd "oama access moreka@mit.edu"
+PassCmd "mutt_oauth2.py ~/.local/state/mit-oauth-token"
Port 993
AuthMechs XOAUTH2
TLSType IMAPS
@@ -48,44 +48,44 @@ Channel sync-mit-sent
Channel sync-mit-deleted
Channel sync-mit-junk
-IMAPAccount gmail-mrkarimij
-Host imap.gmail.com
-User m.r.karimi.j@gmail.com
-PassCmd "oama access m.r.karimi.j@gmail.com"
-TLSType IMAPS
-CertificateFile /etc/ssl/certs/ca-certificates.crt
-Timeout 360
-
-IMAPStore gmail-mrkarimij-remote
-Account gmail-mrkarimij
-
-MaildirStore gmail-mrkarimij-local
-SubFolders Verbatim
-Path /home/moreka/.local/share/mail/m.r.karimi.j@gmail.com/
-Inbox /home/moreka/.local/share/mail/m.r.karimi.j@gmail.com/INBOX
-
-Channel gmail-mrkarimij-inbox
-Far :gmail-mrkarimij-remote:INBOX
-Near :gmail-mrkarimij-local:INBOX
-Create Near
-Expunge Both
-SyncState *
-
-Channel gmail-mrkarimij-sent
-Far :gmail-mrkarimij-remote:"[Gmail]/Sent Mail"
-Near :gmail-mrkarimij-local:Sent
-Create Near
-Expunge Both
-SyncState *
-
-Channel gmail-mrkarimij-drafts
-Far :gmail-mrkarimij-remote:"[Gmail]/Drafts"
-Near :gmail-mrkarimij-local:Drafts
-Create Near
-Expunge Both
-SyncState *
-
-Group m.r.karimi.j@gmail.com
-Channel gmail-mrkarimij-inbox
-Channel gmail-mrkarimij-sent
-Channel gmail-mrkarimij-drafts
+# IMAPAccount gmail-mrkarimij
+# Host imap.gmail.com
+# User m.r.karimi.j@gmail.com
+# PassCmd "oama access m.r.karimi.j@gmail.com"
+# TLSType IMAPS
+# CertificateFile /etc/ssl/certs/ca-certificates.crt
+# Timeout 360
+#
+# IMAPStore gmail-mrkarimij-remote
+# Account gmail-mrkarimij
+#
+# MaildirStore gmail-mrkarimij-local
+# SubFolders Verbatim
+# Path /home/moreka/.local/share/mail/m.r.karimi.j@gmail.com/
+# Inbox /home/moreka/.local/share/mail/m.r.karimi.j@gmail.com/INBOX
+#
+# Channel gmail-mrkarimij-inbox
+# Far :gmail-mrkarimij-remote:INBOX
+# Near :gmail-mrkarimij-local:INBOX
+# Create Near
+# Expunge Both
+# SyncState *
+#
+# Channel gmail-mrkarimij-sent
+# Far :gmail-mrkarimij-remote:"[Gmail]/Sent Mail"
+# Near :gmail-mrkarimij-local:Sent
+# Create Near
+# Expunge Both
+# SyncState *
+#
+# Channel gmail-mrkarimij-drafts
+# Far :gmail-mrkarimij-remote:"[Gmail]/Drafts"
+# Near :gmail-mrkarimij-local:Drafts
+# Create Near
+# Expunge Both
+# SyncState *
+#
+# Group m.r.karimi.j@gmail.com
+# Channel gmail-mrkarimij-inbox
+# Channel gmail-mrkarimij-sent
+# Channel gmail-mrkarimij-drafts
diff --git a/email/dot-config/msmtp/config b/email/dot-config/msmtp/config
index 19f6746..bc0da9e 100644
--- a/email/dot-config/msmtp/config
+++ b/email/dot-config/msmtp/config
@@ -13,14 +13,14 @@ from moreka@mit.edu
user moreka
passwordeval pass show mail/smtp
-account gmail
-host smtp.gmail.com
-port 587
-auth oauthbearer
-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
+# account gmail
+# host smtp.gmail.com
+# port 587
+# auth oauthbearer
+# 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
account default : mit
diff --git a/email/dot-config/notmuch/default/hooks/post-new b/email/dot-config/notmuch/default/hooks/post-new
index 5a02ff0..f94c08e 100755
--- a/email/dot-config/notmuch/default/hooks/post-new
+++ b/email/dot-config/notmuch/default/hooks/post-new
@@ -8,14 +8,12 @@ notmuch tag +archived -unread -inbox -- folder:mit/Archive
# tag emails in the Deleted folder as deleted
notmuch tag +sent -unread -inbox -- folder:mit/Sent
-notmuch tag +sent -unread -inbox -- folder:m.r.karimi.j@gmail.com/Sent
# remove "unread" from "replied"
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..)'
diff --git a/wayland-basics/dot-config/environment.d/wayland.conf b/env/dot-config/environment.d/wayland.conf
index 016d8a8..016d8a8 100644
--- a/wayland-basics/dot-config/environment.d/wayland.conf
+++ b/env/dot-config/environment.d/wayland.conf
diff --git a/fonts/dot-config/fontconfig/conf.d/52-default-fonts.conf b/fonts/dot-config/fontconfig/conf.d/52-default-fonts.conf
index 51e40b5..4f28d21 100644
--- a/fonts/dot-config/fontconfig/conf.d/52-default-fonts.conf
+++ b/fonts/dot-config/fontconfig/conf.d/52-default-fonts.conf
@@ -2,23 +2,23 @@
<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
<fontconfig>
<alias>
- <family>serif</family>
+ <family>monospace</family>
<prefer>
- <family>Libertinus Serif</family>
+ <family>Hack</family>
<family>Noto Color Emoji</family>
<family>Symbols Nerd Font</family>
</prefer>
</alias>
<alias>
- <family>sans-serif</family>
+ <family>serif</family>
<prefer>
- <family>Open Sans</family>
+ <family>Liberation Serif</family>
<family>Noto Color Emoji</family>
<family>Symbols Nerd Font</family>
</prefer>
</alias>
<alias>
- <family>sans</family>
+ <family>sans-serif</family>
<prefer>
<family>Open Sans</family>
<family>Noto Color Emoji</family>
@@ -26,9 +26,9 @@
</prefer>
</alias>
<alias>
- <family>monospace</family>
+ <family>sans</family>
<prefer>
- <family>Dejavu Sans Mono</family>
+ <family>Open Sans</family>
<family>Noto Color Emoji</family>
<family>Symbols Nerd Font</family>
</prefer>
diff --git a/fonts/dot-config/fontconfig/conf.d/66-emoji.conf b/fonts/dot-config/fontconfig/conf.d/66-emoji.conf
index 139d78a..2348c05 100644
--- a/fonts/dot-config/fontconfig/conf.d/66-emoji.conf
+++ b/fonts/dot-config/fontconfig/conf.d/66-emoji.conf
@@ -21,10 +21,10 @@
<string>Comic Code</string>
</test>
<test name="family" compare="contains">
- <string>IosevkaInput</string>
+ <string>Dejavu Sans Mono</string>
</test>
<test name="family" compare="contains">
- <string>Dejavu Sans Mono</string>
+ <string>Liberation Mono</string>
</test>
<edit name="charset" mode="assign" binding="same">
<minus>
diff --git a/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-Heavy.ttf b/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-Heavy.ttf
deleted file mode 100644
index 60f7c1f..0000000
--- a/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-Heavy.ttf
+++ /dev/null
Binary files differ
diff --git a/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-HeavyOblique.ttf b/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-HeavyOblique.ttf
deleted file mode 100644
index 2a2a36c..0000000
--- a/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-HeavyOblique.ttf
+++ /dev/null
Binary files differ
diff --git a/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-W360.ttf b/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-W360.ttf
deleted file mode 100644
index e5ad0e5..0000000
--- a/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-W360.ttf
+++ /dev/null
Binary files differ
diff --git a/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-W360Oblique.ttf b/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-W360Oblique.ttf
deleted file mode 100644
index 3c0f160..0000000
--- a/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-W360Oblique.ttf
+++ /dev/null
Binary files differ
diff --git a/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-build-plans.toml b/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-build-plans.toml
deleted file mode 100644
index c273c74..0000000
--- a/fonts/dot-local/share/fonts/IosevkaInput/IosevkaInput-build-plans.toml
+++ /dev/null
@@ -1,208 +0,0 @@
-# Custom build with intention to have similar proportions and most symbols as
-# Input Mono (line height 1, Light+Bold).
-#
-# Build instructions:
-# - `git clone --depth=1 https://github.com/be5invis/Iosevka`
-# This build plan is tested for v33.2.1 version.
-# - `cd Iosevka`
-# - `npm install`
-# - Copy this file into project's root as 'private-build-plans.toml'.
-# - `npm run build -- --jCmd=4 ttf::IosevkaInput`.
-# !!! This will probably take a lot of time (at least 4 minutes) with 100%
-# CPU usage on 4 cores and significant amount of RAM used !!!
-# - Move files from 'dist/IosevkaInput/TTF' to 'fonts' dotfiles directory and
-# follow its README.
-
-[buildPlans.IosevkaInput]
-family = "IosevkaInput"
-spacing = "fixed"
-serifs = "sans"
-exportGlyphNames = false
-noLigation = true
-
-# Define all available major characters for completeness.
-# Overall approach for choosing a character is to *usually* prefer:
-# "serifless", "straight", "toothless", "earless", "corner", "flat-top",
-# "flat-hook". With some exceptions for readability:
-# - Serifed `Iij`.
-# - Serifed or curly captial letter if similar to lowercase. Like `CSVXYZ`.
-[buildPlans.IosevkaInput.variants.design]
-one = "base"
-two = "curly-neck-serifless"
-three = "flat-top-serifless"
-four = "closed-serifless"
-five = "upright-flat-serifless"
-six = "closed-contour"
-seven = "straight-serifless"
-eight = "two-circles"
-nine = "closed-contour"
-zero = "oval-long-dotted"
-capital-a = "straight-serifless"
-capital-b = "standard-serifless"
-capital-c = "bilateral-inward-serifed"
-capital-d = "standard-serifless"
-capital-e = "serifless"
-capital-f = "serifless"
-capital-g = "toothless-corner-serifless-hooked"
-capital-h = "serifless"
-capital-i = "serifed"
-capital-j = "serifless"
-capital-k = "symmetric-connected-serifless"
-capital-l = "serifless"
-capital-m = "hanging-serifless"
-capital-n = "standard-serifless"
-capital-p = "closed-serifless"
-capital-q = "crossing-curly-tailed"
-capital-r = "straight-serifless"
-capital-s = "bilateral-inward-serifed"
-capital-t = "serifless"
-capital-u = "toothless-rounded-serifless"
-capital-v = "curly-serifless"
-capital-w = "straight-vertical-sides-serifless"
-capital-x = "curly-serifless"
-capital-y = "curly-serifless"
-capital-z = "straight-serifed"
-a = "double-storey-toothless-corner"
-b = "toothless-corner-serifless"
-c = "serifless"
-d = "toothless-corner-serifless"
-e = "flat-crossbar"
-f = "flat-hook-serifless-crossbar-at-x-height"
-g = "double-storey"
-h = "straight-serifless"
-i = "zshaped"
-j = "flat-hook-serifed"
-k = "straight-serifless"
-l = "zshaped"
-m = "earless-rounded-double-arch-short-leg-serifless"
-n = "earless-corner-straight-serifless"
-p = "earless-corner-serifless"
-q = "earless-corner-straight-serifless"
-r = "earless-corner-serifless"
-s = "serifless"
-t = "flat-hook"
-u = "toothless-corner-serifless"
-v = "straight-serifless"
-w = "rounded-vertical-sides-serifless"
-x = "straight-serifless"
-y = "straight-turn-serifless"
-z = "straight-serifless"
-capital-eszet = "corner-serifless"
-long-s = "bent-hook-serifless"
-eszet = "sulzbacher-serifless"
-lower-eth = "straight-bar"
-capital-thorn = "serifless"
-lower-thorn = "serifless"
-lower-alpha = "crossing"
-lower-beta = "standard"
-capital-gamma = "serifless"
-lower-gamma = "casual"
-capital-delta = "straight"
-lower-delta = "flat-top"
-lower-eta = "earless-corner-serifless"
-lower-theta = "capsule"
-lower-iota = "serifed-semi-tailed"
-lower-kappa = "straight-serifless"
-capital-lambda = "straight-serifless"
-lower-lambda = "straight"
-lower-mu = "toothless-corner-serifless"
-lower-nu = "casual"
-lower-xi = "flat-top"
-lower-pi = "tailless"
-lower-tau = "semi-tailed"
-lower-upsilon = "casual-serifless"
-lower-phi = "cursive"
-lower-chi = "semi-chancery-straight-serifless"
-lower-psi = "flat-top-serifless"
-partial-derivative = "straight-bar"
-cyrl-a = "single-storey-earless-corner-tailed"
-cyrl-ve = "standard-serifless"
-cyrl-capital-zhe = "symmetric-connected"
-cyrl-zhe = "symmetric-connected"
-cyrl-capital-ze = "bilateral-inward-serifed"
-cyrl-ze = "serifless"
-cyrl-capital-ka = "symmetric-connected-bottom-right-serifed"
-cyrl-ka = "symmetric-connected-serifless"
-cyrl-el = "straight"
-cyrl-em = "flat-bottom-serifless"
-cyrl-capital-en = "serifed"
-cyrl-en = "serifless"
-cyrl-capital-er = "closed-serifed"
-cyrl-er = "eared-serifed"
-cyrl-capital-u = "cursive-serifless"
-cyrl-u = "cursive-serifless"
-cyrl-ef = "serifless"
-cyrl-che = "standard"
-cyrl-yeri = "corner"
-cyrl-yery = "corner"
-cyrl-capital-e = "bilateral-inward-serifed"
-cyrl-e = "serifless"
-cyrl-capital-ya = "standing-serifless"
-cyrl-ya = "standing-serifless"
-tittle = "round"
-diacritic-dot = "round"
-punctuation-dot = "round"
-braille-dot = "square"
-tilde = "low"
-asterisk = "hex-low"
-underscore = "above-baseline"
-caret = "medium"
-ascii-grave = "straight"
-ascii-single-quote = "straight"
-paren = "normal"
-brace = "curly-flat-boundary"
-guillemet = "straight"
-number-sign = "upright"
-ampersand = "closed"
-at = "fourfold"
-dollar = "through"
-cent = "through"
-percent = "rings-continuous-slash"
-bar = "force-upright"
-question = "corner"
-pilcrow = "high"
-micro-sign = "tailed-serifless"
-decorative-angle-brackets = "middle"
-
-# Use two weights with more visible bolds
-[buildPlans.IosevkaInput.weights.W360]
-shape = 360
-menu = 360
-css = 360
-
-[buildPlans.IosevkaInput.weights.Heavy]
-shape = 900
-menu = 900
-css = 900
-
-# Make upright upright and obligue with maximum angle for visibility
-[buildPlans.IosevkaInput.slopes.Upright]
-angle = 0
-shape = "upright"
-menu = "upright"
-css = "normal"
-
-[buildPlans.IosevkaInput.slopes.Oblique]
-angle = 15
-shape = "oblique"
-menu = "oblique"
-css = "oblique"
-
-# Make font more square-ish with about 1:2 ratio
-# Notes:
-# - Adjusting sidebearings (`sb`) seems to lead to slightly worse results.
-# Instead opt-in for adjusting overall dimensions, increasing various glyph
-# height (capital, ascending, x), and using smaller size.
-[buildPlans.IosevkaInput.widths.Normal]
-shape = 575
-menu = 5
-css = "normal"
-
-[buildPlans.IosevkaInput.metricOverride]
-leading = 1100 # Overall "cell" height
-parenSize = 950 # Height of parenthesis
-cap = 800 # Height of capital (`H`)
-ascender = 800 # Height of ascending (`b`)
-xHeight = 600 # Height of lowercase (`x`)
-dotSize = "blend(weight, [100, 50], [360, 140], [900, 190])" # Size of dots in diacritic marks (!?ij)
-periodSize = "blend(weight, [100, 55], [360, 160], [900, 215])" # Size of dots in period (.,;:)
diff --git a/fonts/dot-local/share/fonts/lambda/Lambda-Bold.ttf b/fonts/dot-local/share/fonts/lambda/Lambda-Bold.ttf
deleted file mode 100644
index 34761b2..0000000
--- a/fonts/dot-local/share/fonts/lambda/Lambda-Bold.ttf
+++ /dev/null
Binary files differ
diff --git a/fonts/dot-local/share/fonts/lambda/Lambda-BoldItalic.ttf b/fonts/dot-local/share/fonts/lambda/Lambda-BoldItalic.ttf
deleted file mode 100644
index 8a26ef9..0000000
--- a/fonts/dot-local/share/fonts/lambda/Lambda-BoldItalic.ttf
+++ /dev/null
Binary files differ
diff --git a/fonts/dot-local/share/fonts/lambda/Lambda-Italic.ttf b/fonts/dot-local/share/fonts/lambda/Lambda-Italic.ttf
deleted file mode 100644
index 1e34287..0000000
--- a/fonts/dot-local/share/fonts/lambda/Lambda-Italic.ttf
+++ /dev/null
Binary files differ
diff --git a/fonts/dot-local/share/fonts/lambda/Lambda.ttf b/fonts/dot-local/share/fonts/lambda/Lambda.ttf
deleted file mode 100644
index b055282..0000000
--- a/fonts/dot-local/share/fonts/lambda/Lambda.ttf
+++ /dev/null
Binary files differ
diff --git a/wayland-basics/dot-config/fuzzel/fuzzel.ini b/fuzzel/dot-config/fuzzel/fuzzel.ini
index 4659b80..0c5ae6a 100644
--- a/wayland-basics/dot-config/fuzzel/fuzzel.ini
+++ b/fuzzel/dot-config/fuzzel/fuzzel.ini
@@ -16,8 +16,8 @@
# delayed-filter-ms=300
# delayed-filter-limit=20000
# show-actions=no
-terminal=runapp -o -- alacritty -e
-launch-prefix=runapp -o
+terminal=alacritty -e
+# launch-prefix=runapp -o
# list-executables-in-path=no
# anchor=center
diff --git a/git/dot-config/git/config b/git/dot-config/git/config
index 3a89c6f..4e4c1b8 100644
--- a/git/dot-config/git/config
+++ b/git/dot-config/git/config
@@ -11,7 +11,7 @@
[user]
name = Mohammad Reza Karimi
email = m.r.karimi.j@gmail.com
- signingkey = 802D310CAC1F1CE6EDD55DF10A777EAC5BCAEB1B
+ signingkey = 802BD02B4E3FE968B8AA2E974EC3BC726F3E7C5F
[commit]
verbose = true
gpgsign = true
@@ -22,26 +22,25 @@
[difftool "difftastic"]
cmd = difft "$LOCAL" "$REMOTE"
[difftool]
- prompt = false
+ prompt = false
[diff]
algorithm = histogram
- tool = difftastic
+ tool = nvim_difftool
[mergetool "fugitive"]
- cmd = nvim -c \"Gvdiffsplit!\" \"$MERGED\"
+ cmd = nvim -c \"Gvdiffsplit!\" \"$MERGED\"
[merge]
- tool = fugitive
+ tool = fugitive
conflictstyle = zdiff3
[grep]
lineNumber = true
column = true
patternType = extended
[pager]
- difftool = true
+ difftool = true
[rerere]
- enabled = true
+ enabled = true
[fetch]
- prune = true
-
+ prune = true
[credential "https://git.overleaf.com"]
helper = !pass git/overleaf@mit
[url "https://github.com/"]
diff --git a/gtk/dot-config/Kvantum/kvantum.kvconfig b/gtk/dot-config/Kvantum/kvantum.kvconfig
deleted file mode 100644
index 14c5b92..0000000
--- a/gtk/dot-config/Kvantum/kvantum.kvconfig
+++ /dev/null
@@ -1,2 +0,0 @@
-[General]
-theme=KvGnomeDark
diff --git a/gtk/dot-config/gtk-3.0/settings.ini b/gtk/dot-config/gtk-3.0/settings.ini
index 0ce71ef..ec44b30 100644
--- a/gtk/dot-config/gtk-3.0/settings.ini
+++ b/gtk/dot-config/gtk-3.0/settings.ini
@@ -1,14 +1,14 @@
[Settings]
gtk-theme-name=Adwaita-dark
gtk-icon-theme-name=Yaru-dark
-gtk-font-name=Sans 10
+gtk-font-name=SF Pro Text 11
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-event-sounds=1
gtk-enable-input-feedback-sounds=0
gtk-xft-antialias=1
gtk-xft-hinting=1
diff --git a/gtk/dot-config/gtk-4.0/settings.ini b/gtk/dot-config/gtk-4.0/settings.ini
index e54cedf..3d069ae 100644
--- a/gtk/dot-config/gtk-4.0/settings.ini
+++ b/gtk/dot-config/gtk-4.0/settings.ini
@@ -1,7 +1,7 @@
[Settings]
gtk-theme-name=Adwaita-dark
gtk-icon-theme-name=Yaru-dark
-gtk-font-name=Sans 10
+gtk-font-name=SF Pro Text 11
gtk-cursor-theme-name=Adwaita
gtk-cursor-theme-size=24
gtk-application-prefer-dark-theme=1
diff --git a/lf/dot-config/lf/lfrc b/lf/dot-config/lf/lfrc
index ee30df9..137c3ce 100644
--- a/lf/dot-config/lf/lfrc
+++ b/lf/dot-config/lf/lfrc
@@ -8,17 +8,17 @@ set icons
set scrolloff 10
set period 1
# set hiddenfiles ".*:*.aux:*.log:*.bbl:*.bcf:*.blg:*.run.xml"
-set previewer "~/.config/lf/previewer"
+set previewer "~/.config/lf/scripts/previewer"
cmd open ${{
case $(file --mime-type "$(readlink -f "$f")" -b) in
text/* | application/json | inode/x-empty | application/x-subrip) $EDITOR "$fx" ;;
- image/*) setsid -f runapp -o -- imv -d $(rotdir "$f" | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|avif\|tif\|ico\)\(_large\)*$") 2>/dev/null | while read -r file; do
+ image/*) setsid -f imv -d $(rotdir "$f" | grep -i "\.\(png\|jpg\|jpeg\|gif\|webp\|avif\|tif\|ico\)\(_large\)*$") 2>/dev/null | while read -r file; do
[ -z "$file" ] && continue
lf -remote "send select \"$file\""
done & ;;
- audio/* | video/x-ms-asf) setsid -f runapp -o -- mpv --audio-display=no "$f" ;;
- video/*) setsid -f runapp -o -- mpv "$f" -quiet >/dev/null 2>&1 ;;
+ audio/* | video/x-ms-asf) setsid -f mpv --audio-display=no "$f" ;;
+ video/*) setsid -f mpv "$f" -quiet >/dev/null 2>&1 ;;
application/pgp-encrypted) $EDITOR "$fx" ;;
*) for f in $fx; do setsid -f xdg-open "$f" >/dev/null 2>&1; done ;;
esac
@@ -32,7 +32,7 @@ cmd extract ${{
while IFS= read -r filename; do
filelist+=" $(basename "$filename")"
done <<< "$fx"
- if safe_extract "$fx"; then
+ if ~/.config/lf/scripts/safe_extract "$fx"; then
lf -remote "send $id echomsg \"Extracted"$filelist" with ouch.\""
else
lf -remote "send $id echoerr \"Cannot extract"$filelist" with ouch.\""
@@ -58,7 +58,7 @@ cmd fzf_jump ${{
}}
cmd dragon ${{
- IFS="$(printf '\n\t')"; setsid -f runapp -o -- dragon-drop $fx
+ IFS="$(printf '\n\t')"; setsid -f dragon-drop $fx
}}
cmd git_branch ${{
diff --git a/lf/dot-config/lf/previewer b/lf/dot-config/lf/scripts/previewer
index 1ce24f3..1ce24f3 100755
--- a/lf/dot-config/lf/previewer
+++ b/lf/dot-config/lf/scripts/previewer
diff --git a/scripts/dot-local/bin/safe_extract b/lf/dot-config/lf/scripts/safe_extract
index 3b7b88c..619690a 100755
--- a/scripts/dot-local/bin/safe_extract
+++ b/lf/dot-config/lf/scripts/safe_extract
@@ -1,6 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
+
+SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
+
(
exec bwrap \
--ro-bind /usr/bin /usr/bin/ \
@@ -17,6 +20,6 @@ set -euo pipefail
--unshare-all \
--new-session \
--seccomp 10 \
- 10< /home/moreka/probe/bwrap/seccomp_default_filter.bpf \
+ 10< "$SCRIPT_DIR"/seccomp_default_filter.bpf \
/usr/bin/ouch decompress "$@"
)
diff --git a/lf/dot-config/lf/scripts/seccomp_default_filter.bpf b/lf/dot-config/lf/scripts/seccomp_default_filter.bpf
new file mode 100644
index 0000000..8b23eca
--- /dev/null
+++ b/lf/dot-config/lf/scripts/seccomp_default_filter.bpf
Binary files differ
diff --git a/lf/dot-config/lf/shortcutrc b/lf/dot-config/lf/shortcutrc
deleted file mode 100644
index 09f9ae1..0000000
--- a/lf/dot-config/lf/shortcutrc
+++ /dev/null
@@ -1,4 +0,0 @@
-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/wayland-basics/dot-config/mako/config b/mako/dot-config/mako/config
index 17bc9be..55bd1cd 100644
--- a/wayland-basics/dot-config/mako/config
+++ b/mako/dot-config/mako/config
@@ -10,7 +10,7 @@ border-size=2
max-icon-size=32
outer-margin=20
-font=monospace 11
+font=Caskaydia Code 11
width=420
height=110
diff --git a/wayland-basics/dot-config/mpv/mpv.conf b/mpv/dot-config/mpv/mpv.conf
index 14c6e81..14c6e81 100644
--- a/wayland-basics/dot-config/mpv/mpv.conf
+++ b/mpv/dot-config/mpv/mpv.conf
diff --git a/niri-dms/dot-config/niri/config.kdl b/niri-dms/dot-config/niri/config.kdl
new file mode 100644
index 0000000..ec3663d
--- /dev/null
+++ b/niri-dms/dot-config/niri/config.kdl
@@ -0,0 +1,305 @@
+output "eDP-1" {
+ mode "2880x1800@120.000"
+ scale 1.75
+ transform "normal"
+ position x=0 y=0
+}
+
+gestures {
+ hot-corners {
+ off
+ }
+}
+
+input {
+ keyboard {
+ xkb {
+ layout "us,ir"
+ variant ",pes_keypad"
+ options "grp:shifts_toggle"
+ }
+ repeat-delay 300
+ repeat-rate 50
+ }
+
+ touchpad {
+ tap
+ }
+
+ mouse {
+ }
+
+ trackpoint {
+ }
+
+ // warp-mouse-to-focus
+ // focus-follows-mouse max-scroll-amount="0%"
+}
+
+layout {
+ background-color "transparent"
+ gaps 4
+
+ focus-ring {
+ width 2
+ active-color "#80aa9e"
+ inactive-color "#a89984"
+ urgent-color "#e96962"
+ }
+
+ border {
+ width 2
+ active-color "#80aa9e"
+ inactive-color "#a89984"
+ urgent-color "#e96962"
+ }
+
+ shadow {
+ off
+ }
+
+ tab-indicator {
+ active-color "#80aa9e"
+ inactive-color "#a89984"
+ urgent-color "#e96962"
+ }
+
+ insert-hint {
+ color "#80aa9e80"
+ }
+
+ center-focused-column "never"
+
+ preset-column-widths {
+ proportion 0.33333
+ proportion 0.5
+ proportion 0.66667
+ }
+
+ default-column-width { proportion 0.5; }
+
+ struts {
+ }
+}
+
+overview {
+ workspace-shadow {
+ off
+ }
+}
+
+environment {
+ XDG_CURRENT_DESKTOP "niri"
+}
+
+hotkey-overlay {
+ skip-at-startup
+}
+
+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
+ // }
+ window-open {
+ duration-ms 150
+ curve "ease-out-expo"
+ }
+ window-close {
+ 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
+ // }
+ screenshot-ui-open {
+ duration-ms 200
+ curve "ease-out-quad"
+ }
+ // overview-open-close {
+ // spring damping-ratio=0.85 stiffness=800 epsilon=0.0001
+ // }
+}
+
+window-rule {
+ match app-id=r#"^org\.gnome\."#
+ draw-border-with-background false
+ geometry-corner-radius 12
+ clip-to-geometry true
+}
+
+window-rule {
+ match app-id=r#"^pavucontrol$"#
+ default-column-width { proportion 0.5; }
+ open-floating false
+}
+
+window-rule {
+ match app-id=r#"^org\.gnome\.Nautilus$"#
+ match app-id=r#"^xdg-desktop-portal$"#
+ open-floating true
+}
+
+window-rule {
+ match app-id="gay.vaskel.soteria"
+ match app-id="Pinentry-gtk"
+ open-floating true
+ open-focused true
+}
+
+window-rule {
+ match app-id="Alacritty"
+ match app-id="com.mitchellh.ghostty"
+ draw-border-with-background false
+}
+
+// Open dms windows as floating by default
+window-rule {
+ match app-id=r#"org.quickshell$"#
+ open-floating true
+}
+
+window-rule {
+ geometry-corner-radius 6
+ clip-to-geometry true
+ tiled-state true
+ draw-border-with-background false
+}
+
+debug {
+ honor-xdg-activation-with-invalid-serial
+}
+
+// Override to disable super+tab
+recent-windows {
+ highlight {
+ active-color "#0d3138"
+ urgent-color "#e96962"
+ }
+ binds {
+ Alt+Tab { next-window scope="output"; }
+ Alt+Shift+Tab { previous-window scope="output"; }
+ Alt+grave { next-window filter="app-id"; }
+ Alt+Shift+grave { previous-window filter="app-id"; }
+ }
+}
+
+binds {
+ Mod+Shift+Slash { show-hotkey-overlay; }
+
+ Mod+Return hotkey-overlay-title="Open a Terminal: alacritty" { spawn-sh "runapp -o alacritty"; }
+ Mod+P hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
+ Mod+X hotkey-overlay-title="Lock the Screen: swaylock" { spawn "swaylock"; }
+ Mod+B hotkey-overlay-title="Open browser" { spawn-sh "runapp -o qutebrowser"; }
+ Mod+M hotkey-overlay-title="Open mail" { spawn-sh "runapp -o -- alacritty -e aerc"; }
+ Mod+S hotkey-overlay-title="Open schedule" { spawn-sh "runapp -o -- alacritty -e ikhal"; }
+
+ Mod+Shift+B { spawn "toggle-waybar"; }
+
+ XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+ -l 1.0"; }
+ XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"; }
+ XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && update-led-mute sink"; }
+ XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle && update-led-mute source"; }
+
+ XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
+ XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
+
+ Mod+O repeat=false { toggle-overview; }
+
+ Mod+Shift+C repeat=false { close-window; }
+
+ Mod+H { focus-column-left; }
+ Mod+J { focus-window-or-workspace-down; }
+ Mod+K { focus-window-or-workspace-up; }
+ Mod+L { focus-column-right; }
+
+ Mod+Shift+H { move-column-left-or-to-monitor-left; }
+ Mod+Shift+J { move-window-down-or-to-workspace-down; }
+ Mod+Shift+K { move-window-up-or-to-workspace-up; }
+ Mod+Shift+L { move-column-right-or-to-monitor-right; }
+
+ Mod+Home { focus-column-first; }
+ Mod+End { focus-column-last; }
+ Mod+Shift+Home { move-column-to-first; }
+ Mod+Shift+End { move-column-to-last; }
+
+ Mod+Ctrl+Left { focus-monitor-left; }
+ Mod+Ctrl+Down { focus-monitor-down; }
+ Mod+Ctrl+Up { focus-monitor-up; }
+ Mod+Ctrl+Right { focus-monitor-right; }
+
+ Mod+Shift+Left { move-column-to-monitor-left; }
+ Mod+Shift+Down { move-column-to-monitor-down; }
+ Mod+Shift+Up { move-column-to-monitor-up; }
+ Mod+Shift+Right { move-column-to-monitor-right; }
+
+ Mod+1 { focus-workspace 1; }
+ Mod+2 { focus-workspace 2; }
+ Mod+3 { focus-workspace 3; }
+ Mod+4 { focus-workspace 4; }
+ Mod+5 { focus-workspace 5; }
+ Mod+6 { focus-workspace 6; }
+ Mod+7 { focus-workspace 7; }
+ Mod+8 { focus-workspace 8; }
+ Mod+9 { focus-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; }
+
+ Mod+Comma { consume-window-into-column; }
+ Mod+Period { expel-window-from-column; }
+
+ Mod+R { switch-preset-column-width-back; }
+ Mod+Shift+R { switch-preset-window-height; }
+ Mod+Ctrl+R { reset-window-height; }
+ Mod+F { maximize-column; }
+ Mod+Shift+F { fullscreen-window; }
+ Mod+Ctrl+F { maximize-window-to-edges; }
+
+ Mod+C { center-column; }
+ Mod+Ctrl+C { center-visible-columns; }
+
+ Mod+Minus { set-column-width "-10%"; }
+ Mod+Equal { set-column-width "+10%"; }
+
+ Mod+Shift+Minus { set-window-height "-10%"; }
+ Mod+Shift+Equal { set-window-height "+10%"; }
+
+ Mod+Shift+Space { toggle-window-floating; }
+ Mod+Space { switch-focus-between-floating-and-tiling; }
+
+ Mod+W { toggle-column-tabbed-display; }
+
+ Print { screenshot; }
+ Ctrl+Print { screenshot-screen; }
+ Alt+Print { screenshot-window; }
+ Mod+Print { spawn-sh "dms color pick -a"; }
+
+ Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
+
+ Mod+Shift+E { quit; }
+
+ Mod+Shift+P { power-off-monitors; }
+}
diff --git a/niri-dms/dot-config/niri/dms/alttab.kdl b/niri-dms/dot-config/niri/dms/alttab.kdl
new file mode 100644
index 0000000..2d49f89
--- /dev/null
+++ b/niri-dms/dot-config/niri/dms/alttab.kdl
@@ -0,0 +1,10 @@
+// ! DO NOT EDIT !
+ // ! AUTO-GENERATED BY DMS !
+ // ! CHANGES WILL BE OVERWRITTEN !
+ // ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
+
+ recent-windows {
+ highlight {
+ corner-radius 6
+ }
+ }
diff --git a/niri-dms/dot-config/niri/dms/binds.kdl b/niri-dms/dot-config/niri/dms/binds.kdl
new file mode 100644
index 0000000..e34bd8a
--- /dev/null
+++ b/niri-dms/dot-config/niri/dms/binds.kdl
@@ -0,0 +1,3 @@
+binds {
+ Mod+X { spawn "dms" "ipc" "lock" "lock"; }
+}
diff --git a/niri-dms/dot-config/niri/dms/colors.kdl b/niri-dms/dot-config/niri/dms/colors.kdl
new file mode 100644
index 0000000..cde2c23
--- /dev/null
+++ b/niri-dms/dot-config/niri/dms/colors.kdl
@@ -0,0 +1,39 @@
+// ! Auto-generated file. Do not edit directly.
+// Remove `include "dms/colors.kdl"` from your config to override.
+
+layout {
+ background-color "transparent"
+
+ focus-ring {
+ active-color "#80aa9e"
+ inactive-color "#a89984"
+ urgent-color "#e96962"
+ }
+
+ border {
+ active-color "#80aa9e"
+ inactive-color "#a89984"
+ urgent-color "#e96962"
+ }
+
+ shadow {
+ color "#00000070"
+ }
+
+ tab-indicator {
+ active-color "#80aa9e"
+ inactive-color "#a89984"
+ urgent-color "#e96962"
+ }
+
+ insert-hint {
+ color "#80aa9e80"
+ }
+}
+
+recent-windows {
+ highlight {
+ active-color "#0d3138"
+ urgent-color "#e96962"
+ }
+}
diff --git a/niri-dms/dot-config/niri/dms/cursor.kdl b/niri-dms/dot-config/niri/dms/cursor.kdl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/niri-dms/dot-config/niri/dms/cursor.kdl
diff --git a/niri-dms/dot-config/niri/dms/layout.kdl b/niri-dms/dot-config/niri/dms/layout.kdl
new file mode 100644
index 0000000..ed234cf
--- /dev/null
+++ b/niri-dms/dot-config/niri/dms/layout.kdl
@@ -0,0 +1,22 @@
+// ! DO NOT EDIT !
+ // ! AUTO-GENERATED BY DMS !
+ // ! CHANGES WILL BE OVERWRITTEN !
+ // ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
+
+ layout {
+ gaps 4
+
+ border {
+ width 2
+ }
+
+ focus-ring {
+ width 2
+ }
+ }
+ window-rule {
+ geometry-corner-radius 6
+ clip-to-geometry true
+ tiled-state true
+ draw-border-with-background false
+ }
diff --git a/niri-dms/dot-config/niri/dms/outputs.kdl b/niri-dms/dot-config/niri/dms/outputs.kdl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/niri-dms/dot-config/niri/dms/outputs.kdl
diff --git a/niri-dms/dot-config/niri/dms/windowrules.kdl b/niri-dms/dot-config/niri/dms/windowrules.kdl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/niri-dms/dot-config/niri/dms/windowrules.kdl
diff --git a/niri-dms/dot-config/niri/dms/wpblur.kdl b/niri-dms/dot-config/niri/dms/wpblur.kdl
new file mode 100644
index 0000000..3d58802
--- /dev/null
+++ b/niri-dms/dot-config/niri/dms/wpblur.kdl
@@ -0,0 +1,9 @@
+// ! DO NOT EDIT !
+// ! AUTO-GENERATED BY DMS !
+// ! CHANGES WILL BE OVERWRITTEN !
+// ! PLACE YOUR CUSTOM CONFIGURATION ELSEWHERE !
+
+layer-rule {
+ match namespace="dms:blurwallpaper"
+ place-within-backdrop true
+}
diff --git a/niri/dot-config/systemd/user/app-graphical.slice b/niri-dms/dot-config/systemd/user/app-graphical.slice
index bc5ea6d..bc5ea6d 100644
--- a/niri/dot-config/systemd/user/app-graphical.slice
+++ b/niri-dms/dot-config/systemd/user/app-graphical.slice
diff --git a/niri/dot-config/niri/animations.kdl b/niri/dot-config/niri/animations.kdl
new file mode 100644
index 0000000..946e7ae
--- /dev/null
+++ b/niri/dot-config/niri/animations.kdl
@@ -0,0 +1,2 @@
+animations {
+}
diff --git a/niri/dot-config/niri/binds.kdl b/niri/dot-config/niri/binds.kdl
new file mode 100644
index 0000000..b8b34ad
--- /dev/null
+++ b/niri/dot-config/niri/binds.kdl
@@ -0,0 +1,107 @@
+binds {
+ Mod+Shift+Slash { show-hotkey-overlay; }
+
+ Mod+Return hotkey-overlay-title="Open a Terminal: alacritty" { spawn "alacritty"; }
+ Mod+P hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
+ Mod+X hotkey-overlay-title="Lock the Screen: swaylock" { spawn-sh "swaylock -c 000000"; }
+ Mod+B hotkey-overlay-title="Launch browser: qutebrowser" { spawn "qutebrowser"; }
+
+ // Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
+ // Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
+ // For example, this is a standard bind to toggle the screen reader (orca).
+ Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
+
+ // Example volume keys mappings for PipeWire & WirePlumber.
+ // The allow-when-locked=true property makes them work even when the session is locked.
+ // Using spawn-sh allows to pass multiple arguments together with the command.
+ // "-l 1.0" limits the volume to 100%.
+ XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+ -l 1.0"; }
+ XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"; }
+ XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && update-led-mute sink"; }
+ XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle && update-led-mute source"; }
+
+ XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+5%"; }
+ XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "5%-"; }
+
+ Mod+O repeat=false { toggle-overview; }
+
+ Mod+Shift+C repeat=false { close-window; }
+
+ Mod+H { focus-column-left; }
+ Mod+L { focus-column-right; }
+ Mod+J { focus-window-or-workspace-down; }
+ Mod+K { focus-window-or-workspace-up; }
+
+ Mod+Shift+H { move-column-left-or-to-monitor-left; }
+ Mod+Shift+L { move-column-right-or-to-monitor-right; }
+ Mod+Shift+J { move-window-down-or-to-workspace-down; }
+ Mod+Shift+K { move-window-up-or-to-workspace-up; }
+
+ Mod+Home { focus-column-first; }
+ Mod+End { focus-column-last; }
+
+ Mod+Shift+Home { move-column-to-first; }
+ Mod+Shift+End { move-column-to-last; }
+
+ Mod+Ctrl+H { focus-monitor-left; }
+ Mod+Ctrl+J { focus-monitor-down; }
+ Mod+Ctrl+K { focus-monitor-up; }
+ Mod+Ctrl+L { focus-monitor-right; }
+
+ Mod+1 { focus-workspace 1; }
+ Mod+2 { focus-workspace 2; }
+ Mod+3 { focus-workspace 3; }
+ Mod+4 { focus-workspace 4; }
+ Mod+5 { focus-workspace 5; }
+ Mod+6 { focus-workspace 6; }
+ 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+BracketLeft { consume-or-expel-window-left; }
+ Mod+BracketRight { consume-or-expel-window-right; }
+
+ Mod+Comma { consume-window-into-column; }
+ Mod+Period { expel-window-from-column; }
+
+ Mod+R { switch-preset-column-width; }
+ Mod+Shift+R { switch-preset-window-height; }
+ Mod+Ctrl+R { reset-window-height; }
+
+ Mod+F { maximize-column; }
+ Mod+Shift+F { fullscreen-window; }
+ Mod+Ctrl+F { maximize-window-to-edges; }
+
+ Mod+C { center-column; }
+ Mod+Ctrl+C { center-visible-columns; }
+
+ Mod+Minus { set-column-width "-10%"; }
+ Mod+Equal { set-column-width "+10%"; }
+
+ Mod+Shift+Minus { set-window-height "-10%"; }
+ Mod+Shift+Equal { set-window-height "+10%"; }
+
+ Mod+Shift+Space { toggle-window-floating; }
+ Mod+Space { switch-focus-between-floating-and-tiling; }
+
+ Mod+W { toggle-column-tabbed-display; }
+
+ Print { screenshot; }
+ Ctrl+Print { screenshot-screen; }
+ Alt+Print { screenshot-window; }
+ Mod+Print { spawn "colorpick"; }
+
+ Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
+
+ Mod+Shift+E { quit; }
+ Mod+Shift+P { power-off-monitors; }
+}
diff --git a/niri/dot-config/niri/config.kdl b/niri/dot-config/niri/config.kdl
index ec3663d..e30839b 100644
--- a/niri/dot-config/niri/config.kdl
+++ b/niri/dot-config/niri/config.kdl
@@ -1,305 +1,11 @@
-output "eDP-1" {
- mode "2880x1800@120.000"
- scale 1.75
- transform "normal"
- position x=0 y=0
-}
-
-gestures {
- hot-corners {
- off
- }
-}
-
-input {
- keyboard {
- xkb {
- layout "us,ir"
- variant ",pes_keypad"
- options "grp:shifts_toggle"
- }
- repeat-delay 300
- repeat-rate 50
- }
-
- touchpad {
- tap
- }
-
- mouse {
- }
-
- trackpoint {
- }
-
- // warp-mouse-to-focus
- // focus-follows-mouse max-scroll-amount="0%"
-}
-
-layout {
- background-color "transparent"
- gaps 4
-
- focus-ring {
- width 2
- active-color "#80aa9e"
- inactive-color "#a89984"
- urgent-color "#e96962"
- }
-
- border {
- width 2
- active-color "#80aa9e"
- inactive-color "#a89984"
- urgent-color "#e96962"
- }
-
- shadow {
- off
- }
-
- tab-indicator {
- active-color "#80aa9e"
- inactive-color "#a89984"
- urgent-color "#e96962"
- }
-
- insert-hint {
- color "#80aa9e80"
- }
-
- center-focused-column "never"
-
- preset-column-widths {
- proportion 0.33333
- proportion 0.5
- proportion 0.66667
- }
-
- default-column-width { proportion 0.5; }
-
- struts {
- }
-}
-
-overview {
- workspace-shadow {
- off
- }
-}
-
-environment {
- XDG_CURRENT_DESKTOP "niri"
-}
-
-hotkey-overlay {
- skip-at-startup
-}
-
-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
- // }
- window-open {
- duration-ms 150
- curve "ease-out-expo"
- }
- window-close {
- 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
- // }
- screenshot-ui-open {
- duration-ms 200
- curve "ease-out-quad"
- }
- // overview-open-close {
- // spring damping-ratio=0.85 stiffness=800 epsilon=0.0001
- // }
-}
-
-window-rule {
- match app-id=r#"^org\.gnome\."#
- draw-border-with-background false
- geometry-corner-radius 12
- clip-to-geometry true
-}
-
-window-rule {
- match app-id=r#"^pavucontrol$"#
- default-column-width { proportion 0.5; }
- open-floating false
-}
-
-window-rule {
- match app-id=r#"^org\.gnome\.Nautilus$"#
- match app-id=r#"^xdg-desktop-portal$"#
- open-floating true
-}
-
-window-rule {
- match app-id="gay.vaskel.soteria"
- match app-id="Pinentry-gtk"
- open-floating true
- open-focused true
-}
-
-window-rule {
- match app-id="Alacritty"
- match app-id="com.mitchellh.ghostty"
- draw-border-with-background false
-}
-
-// Open dms windows as floating by default
-window-rule {
- match app-id=r#"org.quickshell$"#
- open-floating true
-}
-
-window-rule {
- geometry-corner-radius 6
- clip-to-geometry true
- tiled-state true
- draw-border-with-background false
-}
-
-debug {
- honor-xdg-activation-with-invalid-serial
-}
-
-// Override to disable super+tab
-recent-windows {
- highlight {
- active-color "#0d3138"
- urgent-color "#e96962"
- }
- binds {
- Alt+Tab { next-window scope="output"; }
- Alt+Shift+Tab { previous-window scope="output"; }
- Alt+grave { next-window filter="app-id"; }
- Alt+Shift+grave { previous-window filter="app-id"; }
- }
-}
-
-binds {
- Mod+Shift+Slash { show-hotkey-overlay; }
-
- Mod+Return hotkey-overlay-title="Open a Terminal: alacritty" { spawn-sh "runapp -o alacritty"; }
- Mod+P hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
- Mod+X hotkey-overlay-title="Lock the Screen: swaylock" { spawn "swaylock"; }
- Mod+B hotkey-overlay-title="Open browser" { spawn-sh "runapp -o qutebrowser"; }
- Mod+M hotkey-overlay-title="Open mail" { spawn-sh "runapp -o -- alacritty -e aerc"; }
- Mod+S hotkey-overlay-title="Open schedule" { spawn-sh "runapp -o -- alacritty -e ikhal"; }
-
- Mod+Shift+B { spawn "toggle-waybar"; }
-
- XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+ -l 1.0"; }
- XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-"; }
- XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && update-led-mute sink"; }
- XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle && update-led-mute source"; }
-
- XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
- XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
-
- Mod+O repeat=false { toggle-overview; }
-
- Mod+Shift+C repeat=false { close-window; }
-
- Mod+H { focus-column-left; }
- Mod+J { focus-window-or-workspace-down; }
- Mod+K { focus-window-or-workspace-up; }
- Mod+L { focus-column-right; }
-
- Mod+Shift+H { move-column-left-or-to-monitor-left; }
- Mod+Shift+J { move-window-down-or-to-workspace-down; }
- Mod+Shift+K { move-window-up-or-to-workspace-up; }
- Mod+Shift+L { move-column-right-or-to-monitor-right; }
-
- Mod+Home { focus-column-first; }
- Mod+End { focus-column-last; }
- Mod+Shift+Home { move-column-to-first; }
- Mod+Shift+End { move-column-to-last; }
-
- Mod+Ctrl+Left { focus-monitor-left; }
- Mod+Ctrl+Down { focus-monitor-down; }
- Mod+Ctrl+Up { focus-monitor-up; }
- Mod+Ctrl+Right { focus-monitor-right; }
-
- Mod+Shift+Left { move-column-to-monitor-left; }
- Mod+Shift+Down { move-column-to-monitor-down; }
- Mod+Shift+Up { move-column-to-monitor-up; }
- Mod+Shift+Right { move-column-to-monitor-right; }
-
- Mod+1 { focus-workspace 1; }
- Mod+2 { focus-workspace 2; }
- Mod+3 { focus-workspace 3; }
- Mod+4 { focus-workspace 4; }
- Mod+5 { focus-workspace 5; }
- Mod+6 { focus-workspace 6; }
- Mod+7 { focus-workspace 7; }
- Mod+8 { focus-workspace 8; }
- Mod+9 { focus-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; }
-
- Mod+Comma { consume-window-into-column; }
- Mod+Period { expel-window-from-column; }
-
- Mod+R { switch-preset-column-width-back; }
- Mod+Shift+R { switch-preset-window-height; }
- Mod+Ctrl+R { reset-window-height; }
- Mod+F { maximize-column; }
- Mod+Shift+F { fullscreen-window; }
- Mod+Ctrl+F { maximize-window-to-edges; }
-
- Mod+C { center-column; }
- Mod+Ctrl+C { center-visible-columns; }
-
- Mod+Minus { set-column-width "-10%"; }
- Mod+Equal { set-column-width "+10%"; }
-
- Mod+Shift+Minus { set-window-height "-10%"; }
- Mod+Shift+Equal { set-window-height "+10%"; }
-
- Mod+Shift+Space { toggle-window-floating; }
- Mod+Space { switch-focus-between-floating-and-tiling; }
-
- Mod+W { toggle-column-tabbed-display; }
-
- Print { screenshot; }
- Ctrl+Print { screenshot-screen; }
- Alt+Print { screenshot-window; }
- Mod+Print { spawn-sh "dms color pick -a"; }
-
- Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
-
- Mod+Shift+E { quit; }
-
- Mod+Shift+P { power-off-monitors; }
-}
+include "input.kdl"
+include "outputs.kdl"
+include "workspaces.kdl"
+include "layout.kdl"
+include "animations.kdl"
+include "misc.kdl"
+include "binds.kdl"
+include "decorations.kdl"
+include "rules.kdl"
+
+spawn-at-startup "/usr/lib/soteria-polkit/soteria"
diff --git a/niri/dot-config/niri/decorations.kdl b/niri/dot-config/niri/decorations.kdl
new file mode 100644
index 0000000..736bd27
--- /dev/null
+++ b/niri/dot-config/niri/decorations.kdl
@@ -0,0 +1,16 @@
+prefer-no-csd
+
+layout {
+ background-color "#1f666c"
+}
+
+window-rule {
+ match app-id="^Alacritty$"
+ match app-id="^Alacritty-floating$"
+
+ clip-to-geometry true
+ tiled-state true
+ draw-border-with-background false
+
+ shadow { on; }
+}
diff --git a/niri/dot-config/niri/input.kdl b/niri/dot-config/niri/input.kdl
new file mode 100644
index 0000000..692b99f
--- /dev/null
+++ b/niri/dot-config/niri/input.kdl
@@ -0,0 +1,21 @@
+input {
+ keyboard {
+ xkb {
+ layout "us,ir"
+ variant ",pes_keypad"
+ options "grp:shifts_toggle"
+ }
+ repeat-delay 300
+ repeat-rate 50
+ }
+
+ touchpad {
+ tap
+ }
+
+ mouse {
+ }
+
+ trackpoint {
+ }
+}
diff --git a/niri/dot-config/niri/layout.kdl b/niri/dot-config/niri/layout.kdl
new file mode 100644
index 0000000..1d4f811
--- /dev/null
+++ b/niri/dot-config/niri/layout.kdl
@@ -0,0 +1,39 @@
+layout {
+ gaps 8
+ center-focused-column "never"
+ preset-column-widths {
+ proportion 0.333333333333
+ proportion 0.5
+ proportion 0.66667
+ }
+ default-column-width { proportion 0.5; }
+
+ focus-ring {
+ width 2
+ active-color "#7fc8ff"
+ inactive-color "transparent"
+ active-gradient from="#E5989B" to="#FFB4A2" angle=45 relative-to="workspace-view" in="oklch longer hue"
+ }
+
+ border {
+ off
+ width 2
+ active-color "#6c7086"
+ inactive-color "#6c7086"
+ urgent-color "#9b0000"
+
+ active-gradient from="#E5989B" to="#FFB4A2" angle=45 relative-to="workspace-view" in="oklch longer hue"
+ }
+
+ insert-hint {
+ color "#ffc87f80"
+ gradient from="#f38ba880" to="#f9e2af80" angle=0 relative-to="workspace-view"
+ }
+
+ shadow {
+ off
+ }
+
+ struts {
+ }
+}
diff --git a/niri/dot-config/niri/misc.kdl b/niri/dot-config/niri/misc.kdl
new file mode 100644
index 0000000..4fcf644
--- /dev/null
+++ b/niri/dot-config/niri/misc.kdl
@@ -0,0 +1,29 @@
+recent-windows {
+ highlight {
+ corner-radius 14
+ }
+ previews {
+ max-height 320
+ }
+}
+
+environment {
+ _JAVA_AWT_WM_NONREPARENTING "1"
+ ANV_DEBUG "video-decode,video-encode"
+}
+
+gestures {
+ hot-corners {
+ off
+ }
+}
+
+clipboard {
+ disable-primary
+}
+
+hotkey-overlay {
+ skip-at-startup
+}
+
+screenshot-path "~/Pictures/scrots/screenshot-%Y-%m-%d_%H-%M-%S.png"
diff --git a/niri/dot-config/niri/outputs.kdl b/niri/dot-config/niri/outputs.kdl
new file mode 100644
index 0000000..adbde2f
--- /dev/null
+++ b/niri/dot-config/niri/outputs.kdl
@@ -0,0 +1,6 @@
+output "eDP-1" {
+ mode "2880x1800@120.000"
+ scale 1.75
+ transform "normal"
+ position x=0 y=0
+}
diff --git a/niri/dot-config/niri/rules.kdl b/niri/dot-config/niri/rules.kdl
new file mode 100644
index 0000000..03cd555
--- /dev/null
+++ b/niri/dot-config/niri/rules.kdl
@@ -0,0 +1,5 @@
+window-rule {
+ match app-id="imv-preview"
+ open-focused false
+ open-floating true
+}
diff --git a/niri/dot-config/niri/workspaces.kdl b/niri/dot-config/niri/workspaces.kdl
new file mode 100644
index 0000000..ee7e1c7
--- /dev/null
+++ b/niri/dot-config/niri/workspaces.kdl
@@ -0,0 +1,5 @@
+/-workspace "notes" {
+}
+
+/-workspace "browser" {
+}
diff --git a/psd/dot-config/psd/.psd.conf b/psd/dot-config/psd/.psd.conf
new file mode 100644
index 0000000..826129b
--- /dev/null
+++ b/psd/dot-config/psd/.psd.conf
@@ -0,0 +1,10 @@
+# Automatically generated file; DO NOT EDIT!
+# The purpose is to snapshot the settings used when psd was activated.
+# Any edits to the live config: /home/moreka/.config/psd/psd.conf
+# will be applied the _next_ time psd is activated.
+#
+USE_OVERLAYFS="yes"
+USE_SUSPSYNC=""
+BROWSERS="firefox chromium qutebrowser"
+USE_BACKUPS="yes"
+BACKUP_LIMIT="5"
diff --git a/psd/dot-config/psd/psd.conf b/psd/dot-config/psd/psd.conf
index efdb163..95967f8 100644
--- a/psd/dot-config/psd/psd.conf
+++ b/psd/dot-config/psd/psd.conf
@@ -58,7 +58,7 @@ USE_OVERLAYFS="yes"
# vivaldi
# vivaldi-snapshot
#
-BROWSERS=(chromium qutebrowser)
+BROWSERS=(firefox chromium qutebrowser)
# Uncomment and set to "no" to completely disable the crash recovery feature.
#
diff --git a/qute/dot-config/qutebrowser/config.py b/qute/dot-config/qutebrowser/config.py
index b9a5e51..df8048a 100644
--- a/qute/dot-config/qutebrowser/config.py
+++ b/qute/dot-config/qutebrowser/config.py
@@ -5,6 +5,8 @@ c.url.searchengines = {
"!aur": "https://aur.archlinux.org/packages?O=0&SeB=nd&K={}&outdated=&SB=p&SO=d&PP=50&submit=Go",
"!gh": "https://github.com/search?o=desc&q={}&s=stars",
"!yt": "https://www.youtube.com/results?search_query={}",
+ "!gw": "https://wiki.gentoo.org/index.php?title=Special%3ASearch&search={}&fulltext=Search",
+ "!gp": "https://packages.gentoo.org/packages/search?q={}",
}
c.url.default_page = "file:///home/moreka/.config/qutebrowser/startpage.html"
@@ -50,12 +52,12 @@ config.bind(
config.bind(
",m",
- "spawn setsid runapp -o -- mpv {url}",
+ "spawn setsid mpv {url}",
)
config.bind(
",M",
- "hint links spawn setsid runapp -o -- mpv {hint-url}",
+ "hint links spawn mpv {hint-url}",
)
config.bind(
@@ -72,7 +74,7 @@ c.editor.command = ["alacritty", "-e", "nvim", "{file}", "-c", "normal {line}G{c
# }
# )
-c.colors.statusbar.private.bg = "#CF87E8"
+config.source("themes/doomone.py")
c.colors.webpage.preferred_color_scheme = "dark"
c.colors.webpage.darkmode.algorithm = "lightness-cielab"
@@ -89,13 +91,15 @@ with config.pattern("*://*.slack.com/*") as p:
with config.pattern("*://accounts.google.com/*") as p:
p.content.headers.user_agent = (
- "Mozilla/5.0 (X11; Linux x86_64; rv:147.0) Gecko/20100101 Firefox/147.0"
+ "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36"
)
c.content.blocking.enabled = True
c.content.blocking.method = "both"
-# c.content.blocking.adblock.lists = [
+c.content.blocking.adblock.lists.extend([
+ "https://raw.githubusercontent.com/i5heu/ublock-hide-yt-shorts/master/list.txt",
+])
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/legacy.txt",
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters.txt",
# "https://github.com/uBlockOrigin/uAssets/raw/master/filters/filters-2020.txt",
diff --git a/qute/dot-config/qutebrowser/quickmarks b/qute/dot-config/qutebrowser/quickmarks
index b7a9abf..54d8b1d 100644
--- a/qute/dot-config/qutebrowser/quickmarks
+++ b/qute/dot-config/qutebrowser/quickmarks
@@ -28,3 +28,5 @@ 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
+github folder downloader http://danielcregg.is-a.dev/github-folder-downloader/
+seandewar neovim config https://github.com/seandewar/dotfiles/tree/master/neovim/dot-config/nvim
diff --git a/qute/dot-config/qutebrowser/themes/doomone.py b/qute/dot-config/qutebrowser/themes/doomone.py
new file mode 100644
index 0000000..742f16e
--- /dev/null
+++ b/qute/dot-config/qutebrowser/themes/doomone.py
@@ -0,0 +1,305 @@
+palette = {
+ "background": "#282c34", # gray
+ "foreground": "#dfdfdf", # white
+ "black": "#181920",
+ "dark-gray": "#21242b",
+ "gray": "#282c34",
+ "cool-gray": "#3b404d",
+ "medium-gray": "#3f444a",
+ "light-gray": "#5b6268",
+ "lighter-gray": "#73797e",
+ "pale-gray": "#9ca0a4",
+ "white": "#dfdfdf",
+ "bright-white": "#fefefe",
+ "pure-white": "#ffffff",
+ "darker-purple": "#724f9b",
+ "dark-purple": "#8c68b7",
+ "purple": "#AD89DB",
+ "dark-pink": "#945aa6",
+ "pink": "#c678dd",
+ "dark-blue": "#2257a0",
+ "blue": "#51afef",
+ "light-blue": "#7bb6e2",
+ "cyan": "#46d9ff",
+ "dark-green": "#668044",
+ "green": "#98be65",
+ "teal": "#4db5bd",
+ "red": "#ff6c6b",
+ "orange": "#da8548",
+ "yellow": "#ecbe7b",
+ "manjaro": "#006a6a",
+}
+
+# Background color of the completion widget category headers.
+c.colors.completion.category.bg = f"qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 {palette["manjaro"]}, stop:0.5 #1e7979 stop:1 {palette["manjaro"]})"
+
+# Bottom border color of the completion widget category headers.
+c.colors.completion.category.border.bottom = palette["dark-gray"]
+
+# Top border color of the completion widget category headers.
+c.colors.completion.category.border.top = palette["manjaro"]
+
+# Foreground color of completion widget category headers.
+c.colors.completion.category.fg = palette["white"]
+
+# Background color of the completion widget for even rows.
+c.colors.completion.even.bg = palette["background"]
+
+# Background color of the completion widget for odd rows.
+c.colors.completion.odd.bg = palette["dark-gray"]
+
+# Text color of the completion widget.
+c.colors.completion.fg = palette["foreground"]
+
+# Background color of the selected completion item.
+c.colors.completion.item.selected.bg = palette["medium-gray"]
+
+# Bottom border color of the selected completion item.
+c.colors.completion.item.selected.border.bottom = palette["medium-gray"]
+
+# Top border color of the completion widget category headers.
+c.colors.completion.item.selected.border.top = palette["medium-gray"]
+
+# Foreground color of the selected completion item.
+c.colors.completion.item.selected.fg = palette["foreground"]
+
+# Foreground color of the matched text in the completion.
+c.colors.completion.match.fg = palette["purple"]
+
+# Foreground color of the selected matched text in the completion.
+c.colors.completion.item.selected.match.fg = palette["light-blue"]
+
+# Color of the scrollbar in completion view
+c.colors.completion.scrollbar.bg = palette["medium-gray"]
+
+# Color of the scrollbar handle in completion view.
+c.colors.completion.scrollbar.fg = palette["light-gray"]
+
+# Background color for the download bar.
+c.colors.downloads.bar.bg = palette["dark-gray"]
+
+# Background color for downloads with errors.
+c.colors.downloads.error.bg = palette["red"]
+
+# Foreground color for downloads with errors.
+c.colors.downloads.error.fg = palette["pure-white"]
+
+# Color gradient start for download grays.
+c.colors.downloads.start.bg = palette["blue"]
+
+# Color gradient stop for download grays.
+c.colors.downloads.stop.bg = palette["dark-green"]
+
+# Color gradient start for download foregrounds.
+c.colors.downloads.start.fg = palette["pure-white"]
+
+# Color gradient stop for download foregrounds.
+c.colors.downloads.stop.fg = palette["pure-white"]
+
+# Color gradient interpolation system for download backgrounds.
+# Valid values:
+# - rgb: Interpolate in the RGB color system.
+# - hsv: Interpolate in the HSV color system.
+# - hsl: Interpolate in the HSL color system.
+# - none: Don't show a gradient.
+c.colors.downloads.system.bg = "hsl"
+
+# Color gradient interpolation system for download foregrounds.
+c.colors.downloads.system.fg = "hsl"
+
+# Background color for hints. Note that you can use a `rgba(...)` value
+# for transparency.
+c.colors.hints.bg = palette["yellow"]
+
+# Font color for hints.
+c.colors.hints.fg = palette["gray"]
+
+c.hints.border = "1px solid " + palette["dark-gray"]
+
+# Font color for the matched part of hints.
+c.colors.hints.match.fg = palette["dark-green"]
+
+# Background color of the keyhint widget.
+c.colors.keyhint.bg = palette["dark-gray"]
+
+# Text color for the keyhint widget.
+c.colors.keyhint.fg = palette["blue"]
+
+# Highlight color for keys to complete the current keychain.
+c.colors.keyhint.suffix.fg = palette["green"]
+
+# Background color of an error message.
+c.colors.messages.error.bg = palette["dark-gray"]
+
+# Border color of an error message.
+c.colors.messages.error.border = palette["light-gray"]
+
+# Foreground color of an error message.
+c.colors.messages.error.fg = palette["red"]
+
+# Background color of an info message.
+c.colors.messages.info.bg = palette["background"]
+
+# Border color of an info message.
+c.colors.messages.info.border = palette["light-gray"]
+
+# Foreground color an info message.
+c.colors.messages.info.fg = palette["foreground"]
+
+# Background color of a warning message.
+c.colors.messages.warning.bg = palette["background"]
+
+# Border color of a warning message.
+c.colors.messages.warning.border = palette["light-gray"]
+
+# Foreground color a warning message.
+c.colors.messages.warning.fg = palette["red"]
+
+# Background color for prompts.
+c.colors.prompts.bg = palette["background"]
+
+# Border used around UI elements in prompts.
+c.colors.prompts.border = "1px solid " + palette["light-gray"]
+
+# Foreground color for prompts.
+c.colors.prompts.fg = palette["foreground"]
+
+# Background color for the selected item in filename prompts.
+c.colors.prompts.selected.bg = palette["light-gray"]
+
+# Background color of the statusbar in caret mode.
+c.colors.statusbar.caret.bg = palette["dark-purple"]
+
+# Foreground color of the statusbar in caret mode.
+c.colors.statusbar.caret.fg = palette["foreground"]
+
+# Background color of the statusbar in caret mode with a selection.
+c.colors.statusbar.caret.selection.bg = palette["dark-pink"]
+
+# Foreground color of the statusbar in caret mode with a selection.
+c.colors.statusbar.caret.selection.fg = palette["foreground"]
+
+# Background color of the statusbar in command mode.
+c.colors.statusbar.command.bg = palette["cool-gray"]
+
+# Foreground color of the statusbar in command mode.
+c.colors.statusbar.command.fg = palette["foreground"]
+
+# Background color of the statusbar in private browsing + command mode.
+c.colors.statusbar.command.private.bg = palette["background"]
+
+# Foreground color of the statusbar in private browsing + command mode.
+c.colors.statusbar.command.private.fg = palette["foreground"]
+
+# Background color of the statusbar in insert mode.
+c.colors.statusbar.insert.bg = palette["dark-blue"]
+
+# Foreground color of the statusbar in insert mode.
+c.colors.statusbar.insert.fg = palette["foreground"]
+
+# Background color of the statusbar.
+c.colors.statusbar.normal.bg = palette["background"]
+
+# Foreground color of the statusbar.
+c.colors.statusbar.normal.fg = palette["foreground"]
+
+# Background color of the statusbar in passthrough mode.
+c.colors.statusbar.passthrough.bg = palette["darker-purple"]
+
+# Foreground color of the statusbar in passthrough mode.
+c.colors.statusbar.passthrough.fg = palette["foreground"]
+
+# Background color of the statusbar in private browsing mode.
+c.colors.statusbar.private.bg = palette["light-gray"]
+
+# Foreground color of the statusbar in private browsing mode.
+c.colors.statusbar.private.fg = palette["foreground"]
+
+# Background color of the progress bar.
+c.colors.statusbar.progress.bg = palette["background"]
+
+# Foreground color of the URL in the statusbar on error.
+c.colors.statusbar.url.error.fg = palette["red"]
+
+# Default foreground color of the URL in the statusbar.
+c.colors.statusbar.url.fg = palette["foreground"]
+
+# Foreground color of the URL in the statusbar for hovered links.
+c.colors.statusbar.url.hover.fg = palette["cyan"]
+
+# Foreground color of the URL in the statusbar on successful load
+c.colors.statusbar.url.success.http.fg = palette["green"]
+c.colors.statusbar.url.success.https.fg = palette["green"]
+
+# Foreground color of the URL in the statusbar when there's a warning.
+c.colors.statusbar.url.warn.fg = palette["yellow"]
+
+# Background color of the tab bar.
+c.colors.tabs.bar.bg = palette["light-gray"]
+
+# Background color of unselected even tabs.
+c.colors.tabs.even.bg = palette["pale-gray"]
+
+# Foreground color of unselected even tabs.
+c.colors.tabs.even.fg = palette["bright-white"]
+
+# Color for the tab indicator on errors.
+c.colors.tabs.indicator.error = palette["red"]
+
+# Color gradient start for the tab indicator.
+c.colors.tabs.indicator.start = palette["blue"]
+
+# Color gradient end for the tab indicator.
+c.colors.tabs.indicator.stop = palette["green"]
+
+# Color gradient interpolation system for the tab indicator.
+# Valid values:
+# - rgb: Interpolate in the RGB color system.
+# - hsv: Interpolate in the HSV color system.
+# - hsl: Interpolate in the HSL color system.
+# - none: Don't show a gradient.
+c.colors.tabs.indicator.system = "rgb"
+
+# Background color of unselected odd tabs.
+c.colors.tabs.odd.bg = palette["lighter-gray"]
+
+# Foreground color of unselected odd tabs.
+c.colors.tabs.odd.fg = palette["bright-white"]
+
+# Background color of pinned unselected even tabs.
+c.colors.tabs.pinned.even.bg = palette["pale-gray"]
+
+# Foreground color of pinned unselected even tabs.
+c.colors.tabs.pinned.even.fg = palette["bright-white"]
+
+# Background color of pinned unselected odd tabs.
+c.colors.tabs.pinned.odd.bg = palette["lighter-gray"]
+
+# Foreground color of pinned unselected odd tabs.
+c.colors.tabs.pinned.odd.fg = palette["bright-white"]
+
+# Background color of pinned selected even tabs.
+c.colors.tabs.pinned.selected.even.bg = palette["background"]
+
+# Foreground color of pinned selected even tabs.
+c.colors.tabs.pinned.selected.even.fg = palette["bright-white"]
+
+# Background color of pinned selected odd tabs.
+c.colors.tabs.pinned.selected.odd.bg = palette["background"]
+
+# Foreground color of pinned selected odd tabs.
+c.colors.tabs.pinned.selected.odd.fg = palette["bright-white"]
+
+# Background color of selected even tabs.
+# c.colors.tabs.selected.even.bg = palette["background"]
+c.colors.tabs.selected.even.bg = palette["manjaro"]
+
+# Foreground color of selected even tabs.
+c.colors.tabs.selected.even.fg = palette["bright-white"]
+
+# Background color of selected odd tabs.
+# c.colors.tabs.selected.odd.bg = palette["background"]
+c.colors.tabs.selected.odd.bg = palette["manjaro"]
+
+# Foreground color of selected odd tabs.
+c.colors.tabs.selected.odd.fg = palette["bright-white"]
diff --git a/scripts/.stow-local-ignore b/scripts/.stow-local-ignore
index 8b7b2fa..7151b83 100644
--- a/scripts/.stow-local-ignore
+++ b/scripts/.stow-local-ignore
@@ -1,2 +1,8 @@
aconfmgr\-patcher
screenshot\-hypr
+mail_html_view
+mailsync
+pywal
+toggle-waybar
+viml
+void-vm
diff --git a/scripts/dot-local/bin/fontpreview b/scripts/dot-local/bin/fontpreview
new file mode 100755
index 0000000..831bc16
--- /dev/null
+++ b/scripts/dot-local/bin/fontpreview
@@ -0,0 +1,215 @@
+#!/usr/bin/env bash
+# License: GPLv3
+# Credits: Felipe Facundes
+
+SCRIPT="${0##*/}"
+TMPDIR="${TMPDIR:-/tmp}"
+FONTPREVIEWTEMPDIR="${TMPDIR}/${SCRIPT%.*}"
+TEMP_FILE="$FONTPREVIEWTEMPDIR/temp_prev.jpg"
+
+[[ -d "${FONTPREVIEWTEMPDIR}" ]] && rm -rf "${FONTPREVIEWTEMPDIR}"
+[[ ! -d "${FONTPREVIEWTEMPDIR}" ]] && mkdir -p "${FONTPREVIEWTEMPDIR}"
+
+
+VERSION=1.0
+FONT_SIZE="${FONT_SIZE:-24}"
+SIZE="${SIZE:-1000x700}"
+
+BG_COLOR=${BG_COLOR:-"#ffffff"}
+FG_COLOR=${FG_COLOR:-"#000000"}
+PREVIEW_TEXT="${PREVIEW_TEXT:-$(
+ cat <<-EOF
+ {}
+
+ ABCDEFGHIJKLMNOPQRSTUVWXYZ
+
+ abcdefghijklmnopqrstuvwxyz
+
+ 1234567890
+
+ '$\!/\%|&*@+=#?()[]'
+
+ A white sheep peacefully
+ grazes on the green pasture.
+ EOF
+)}"
+
+# Check if fzf and ImageMagick are installed
+if ! command -v fzf magick &> /dev/null; then
+ echo "Error: This script requires 'fzf' and 'ImageMagick' to be installed."
+ exit 1
+fi
+
+imv -s none -i imv-preview 1>&2 2>/dev/null &
+IMV_PID=$!
+
+cleanup() { [[ -d "${FONTPREVIEWTEMPDIR}" ]] && rm -rf "${FONTPREVIEWTEMPDIR}" && kill -9 "$IMV_PID"; }
+trap cleanup INT EXIT
+
+MODE="$TEMP_FILE && (imv-msg $IMV_PID close all && imv-msg $IMV_PID open $TEMP_FILE)"
+
+read -ra cmd <<< "$MODE"
+
+clipboard_copy() {
+ echo "$1" | wl-copy
+ echo "Font copied to clipboard!"
+}
+
+show_requirements() {
+printf "%s" "\
+usage: $SCRIPT [--requirements]
+
+Essential dependencies and their purposes:
+
+Core requirements:
+ fzf Fuzzy finder for interactive font selection
+ ImageMagick Font preview generation and display (magick command)
+
+Optional dependencies:
+ wl-copy (Wayland) Copy fonts to clipboard
+ xclip (X11) Copy fonts to clipboard
+ termux-clipboard-set (Termux) Copy fonts to clipboard
+ feh Fallback image viewer for terminals without Sixel support
+ xdg-open Fallback image viewer for Desktops without feh
+"
+}
+
+show_help() {
+printf "%s" "\
+usage: $SCRIPT [-h] [--size \"px\"] [--font-size \"FONT_SIZE\"] [--bg-color \"BG_COLOR\"]
+ [--fg-color \"FG_COLOR\"] [--preview-text \"PREVIEW_TEXT\"] [-i font.otf]
+ [-o fontpreview.png] [--dark] [--version]
+
+┌─┐┌─┐┌┐┌┌┬┐┌─┐┬─┐┌─┐┬ ┬┬┌─┐┬ ┬
+├┤ │ ││││ │ ├─┘├┬┘├┤ └┐┌┘│├┤ │││
+└ └─┘┘└┘ ┴ ┴ ┴└─└─┘ └┘ ┴└─┘└┴┘
+Very customizable and minimal font previewer written in bash
+
+optional arguments:
+ -h, --help show this help message and exit
+ -r, --requirements show dependencies and their purposes
+ -i, --input filename of the input font (.otf, .ttf, .woff are supported)
+ -o, --output filename of the output preview image (input.png if not set)
+ -s, --size size of the font preview window (default: $SIZE)
+ -fs, --font-size font size (default: $FONT_SIZE)
+ -bg, --bg-color background color of the font preview window (default: $BG_COLOR)
+ -fg, --fg-color foreground color of the font preview window (default: $FG_COLOR)
+ -t, --text preview text that should be displayed in the font preview window
+ -v, --version show the version of fontpreview you are using
+ -d, --dark switch to dark mode
+
+Environment Variables:
+ FONT_SIZE Set default font size (currently: $FONT_SIZE)
+ SIZE Set default preview size (currently: $SIZE)
+ BG_COLOR Set default background color (currently: $BG_COLOR)
+ FG_COLOR Set default foreground color (currently: $FG_COLOR)
+ PREVIEW_TEXT Set default preview text
+"
+echo
+show_requirements
+}
+
+while [[ $# -gt 0 ]]; do
+ case "$1" in
+ -s|--size)
+ shift
+ SIZE="$1"
+ ;;
+ -mr|--margin-right)
+ shift
+ FZF_MARGIN_R="$1"
+ ;;
+ -mh|--margin-height)
+ shift
+ FZF_MARGIN_H="$1"
+ ;;
+ -h|--help)
+ show_help
+ exit
+ ;;
+ -r|--requirements)
+ show_requirements
+ exit
+ ;;
+ -v|--version)
+ echo "$VERSION"
+ exit
+ ;;
+ -i|--input)
+ shift
+ input_font="$1"
+ ;;
+ -in|--install)
+ shift
+ install_font
+ ;;
+ -o|--output)
+ shift
+ output_file="$1"
+ ;;
+ -fs|--font-size)
+ shift
+ FONT_SIZE="$1"
+ ;;
+ -bg|--bg-color)
+ shift
+ BG_COLOR="$1"
+ ;;
+ -fg|--fg-color)
+ shift
+ FG_COLOR="$1"
+ ;;
+ -t|--text)
+ shift
+ PREVIEW_TEXT="$1"
+ ;;
+ -d|--dark)
+ shift
+ DARK=1
+ ;;
+ --)
+ shift
+ break
+ ;;
+ *)
+ shift
+ break
+ ;;
+ esac
+ shift
+done
+
+if [[ -n "$DARK" ]]; then
+ _tmpcolor="$BG_COLOR"
+ BG_COLOR="$FG_COLOR"
+ FG_COLOR="$_TMPCOL"
+ unset _tmpcolor
+fi
+
+# If an input file was specified, use only that
+if [[ -f "$input_font" ]]; then
+ font_list="$input_font"
+else
+ # Generate font list only if no input file was specified
+ font_list=$(magick -list font | grep "Font:" | awk '{print $2}' | sort -u)
+fi
+
+if [[ -n "$output_file" ]]; then
+ [[ ! -f "$font_list" ]] && echo "Use -i to specify the font file and -o to extract the image" && exit 1
+ magick -size "$SIZE" -background "$BG_COLOR" -fill "$FG_COLOR" -font "$font_list" \
+ -pointsize "$FONT_SIZE" label:"$PREVIEW_TEXT" -geometry "$SIZE" "$output_file"
+ exit 0
+elif [[ -z "$output_file" ]]; then
+ # Use fzf for interactive selection with Sixel preview
+ selected_font=$(echo "$font_list" | fzf \
+ --prompt="Select a font: " \
+ --preview="magick -size \"$SIZE\" -background \"$BG_COLOR\" -fill \"$FG_COLOR\" -font '{}' \
+ -pointsize \"$FONT_SIZE\" label:\"$PREVIEW_TEXT\" -geometry \"$SIZE\" ${cmd[*]}")
+ # If a font was selected, show confirmation
+ if [[ -n "$selected_font" ]]; then
+ echo "Selected font: $selected_font"
+ clipboard_copy "$selected_font"
+ else
+ echo "No font selected."
+ fi
+fi
diff --git a/scripts/dot-local/bin/shortcuts b/scripts/dot-local/bin/shortcuts
index e2d59f6..cfeb53f 100755
--- a/scripts/dot-local/bin/shortcuts
+++ b/scripts/dot-local/bin/shortcuts
@@ -8,8 +8,8 @@ bmfiles="$confdir/bm-files"
# Output locations. Unactivated progs should go to /dev/null.
shell_shortcuts="$confdir/shortcutrc"
shell_env_shortcuts="$confdir/shortcutenvrc"
-zsh_named_dirs="$confdir/zshnameddirs"
-lf_shortcuts="${XDG_CONFIG_HOME:-$HOME/.config}/lf/shortcutrc"
+zsh_named_dirs="/dev/null"
+lf_shortcuts="/dev/null"
vim_shortcuts="/dev/null"
qute_shortcuts="/dev/null"
fish_shortcuts="/dev/null"
diff --git a/wayland-basics/dot-config/systemd/user/kanshi.service b/services/dot-config/systemd/user/kanshi.service
index 4554384..4554384 100644
--- a/wayland-basics/dot-config/systemd/user/kanshi.service
+++ b/services/dot-config/systemd/user/kanshi.service
diff --git a/wayland-basics/dot-config/systemd/user/soteria.service b/services/dot-config/systemd/user/soteria.service
index 61961ef..61961ef 100644
--- a/wayland-basics/dot-config/systemd/user/soteria.service
+++ b/services/dot-config/systemd/user/soteria.service
diff --git a/wayland-basics/dot-config/systemd/user/swaybg.service b/services/dot-config/systemd/user/swaybg.service
index ba035a1..9fd3e56 100644
--- a/wayland-basics/dot-config/systemd/user/swaybg.service
+++ b/services/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/galaxy.jpg
+ExecStart=/usr/bin/swaybg -m fill -i %h/Pictures/wallpapers/galaxy.jpg
Restart=on-failure
[Install]
diff --git a/wayland-basics/dot-config/systemd/user/swayidle.service b/services/dot-config/systemd/user/swayidle.service
index 9160750..9160750 100644
--- a/wayland-basics/dot-config/systemd/user/swayidle.service
+++ b/services/dot-config/systemd/user/swayidle.service
diff --git a/wayland-basics/dot-config/systemd/user/swayosd-server.service b/services/dot-config/systemd/user/swayosd-server.service
index a43dd08..a43dd08 100644
--- a/wayland-basics/dot-config/systemd/user/swayosd-server.service
+++ b/services/dot-config/systemd/user/swayosd-server.service
diff --git a/wayland-basics/dot-config/systemd/user/wl-clip-persist.service b/services/dot-config/systemd/user/wl-clip-persist.service
index 57c6a6c..57c6a6c 100644
--- a/wayland-basics/dot-config/systemd/user/wl-clip-persist.service
+++ b/services/dot-config/systemd/user/wl-clip-persist.service
diff --git a/wayland-basics/dot-config/systemd/user/wlsunset.service b/services/dot-config/systemd/user/wlsunset.service
index 7b2683b..53751c1 100644
--- a/wayland-basics/dot-config/systemd/user/wlsunset.service
+++ b/services/dot-config/systemd/user/wlsunset.service
@@ -3,14 +3,12 @@ PartOf=graphical-session.target
Description=WLSunset for better screen colors
Documentation=man:wlsunset(1)
After=graphical-session.target
-After=kanshi.service
Requisite=graphical-session.target
[Service]
Type=exec
ExecStart=/usr/bin/wlsunset -l 42.3 -L '-71.0' -t 4000 -T 6500
Restart=on-failure
-Slice=background-graphical.slice
[Install]
WantedBy=graphical-session.target
diff --git a/wayland-basics/dot-config/swaylock/config b/swaylock/dot-config/swaylock/config
index 3be82fa..3be82fa 100644
--- a/wayland-basics/dot-config/swaylock/config
+++ b/swaylock/dot-config/swaylock/config
diff --git a/waybar-vert/dot-config/waybar/config.jsonc b/waybar-vert/dot-config/waybar/config.jsonc
new file mode 100644
index 0000000..8788765
--- /dev/null
+++ b/waybar-vert/dot-config/waybar/config.jsonc
@@ -0,0 +1,136 @@
+{
+ "position": "right",
+ "exclusive": false,
+ "layer": "top",
+ "margin": "5 2 5 0",
+ // "height": 18,
+ "spacing": 5,
+ "reload_style_on_change": true,
+ "modules-left": [
+ ],
+ "modules-right": [
+ ],
+ "modules-center": [
+ "niri/workspaces",
+ "custom/weather",
+ "idle_inhibitor",
+ "wireplumber",
+ "network",
+ "power-profiles-daemon",
+ "backlight",
+ "niri/language",
+ "battery",
+ "tray",
+ "clock"
+ ],
+ "idle_inhibitor": {
+ "format": "{icon}",
+ "format-icons": {
+ "activated": "󰒳",
+ "deactivated": "󰒲"
+ }
+ },
+ "tray": {
+ "icon-size": 12,
+ "spacing": 5
+ },
+ "clock": {
+ "interval": 60,
+ "format": "{:%a\n%d\n%b\n\n%H\n%M}",
+ "tooltip-format": "<big>{:%Y %B}</big>\n<tt>{calendar}</tt>",
+ "justify": "center"
+ },
+ "backlight": {
+ "format": "{icon}",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ "tooltip-format": "{percent}%"
+ },
+ "battery": {
+ "states": {
+ "warning": 30,
+ "critical": 10
+ },
+ "format": "{icon}\n{capacity}",
+ "format-full": "{icon}",
+ "format-charging": "󰢝\n{capacity}%",
+ "format-plugged": "",
+ "format-icons": [
+ "",
+ "",
+ "",
+ "",
+ ""
+ ],
+ "justify": "center",
+ "tooltip-format": "{capacity}% {power}W ({time})"
+ },
+ "power-profiles-daemon": {
+ "format": "{icon}",
+ "tooltip-format": "Power profile: {profile}\nDriver: {driver}",
+ "tooltip": true,
+ "format-icons": {
+ "performance": "",
+ "balanced": "󰞍",
+ "power-saver": ""
+ }
+ },
+ "network": {
+ "format-wifi": "",
+ "format-ethernet": "",
+ "format-disconnected": "󰲛",
+ "tooltip-format-ethernet": "{ipaddr}/{cidr}",
+ "tooltip-format-wifi": "{essid} ({signalStrength}%) {gwaddr}",
+ "tooltip-format-disconnected": "Disconnected",
+ "format-linked": "-",
+ "justify": "center",
+ "on-click": "runapp -o -- alacritty -e impala"
+ },
+ "wireplumber": {
+ "format": "{icon}",
+ "format-muted": "",
+ "on-click": "runapp -o -- alacritty -e bash -c 'wpctl status | less'",
+ "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && update-led-mute sink",
+ "max-volume": 100,
+ "scroll-step": 5,
+ "format-icons": {
+ "headphone": "",
+ "hands-free": "",
+ "headset": "",
+ "phone": "",
+ "portable": "",
+ "car": "",
+ "default": [
+ "",
+ "",
+ ""
+ ]
+ },
+ "justify": "center"
+ },
+ "niri/language": {
+ "format": "{}",
+ "format-en": "en",
+ "format-fa": "فا"
+ },
+ "niri/window": {
+ "icon": true,
+ "icon-size": 13
+ },
+ "custom/weather": {
+ "format": "{}°",
+ "tooltip": true,
+ "interval": 3600,
+ "exec": "wttrbar",
+ "return-type": "json"
+ }
+}
diff --git a/waybar-vert/dot-config/waybar/style.css b/waybar-vert/dot-config/waybar/style.css
new file mode 100644
index 0000000..357f320
--- /dev/null
+++ b/waybar-vert/dot-config/waybar/style.css
@@ -0,0 +1,161 @@
+@import url("file:///home/moreka/.cache/wal/colors-waybar.css");
+@define-color transp alpha(@background, 0);
+@define-color effort2 alpha(@background, 0.8);
+@define-color border lighter(@background);
+@define-color shadow darker(@background);
+/* @define-color foreground #eeeeee; */
+
+* {
+ font-family: Dejavu Sans Mono, Vazirmatn UI;
+ font-size: 12px;
+ min-width: 0;
+}
+
+window#waybar {
+ background-color: @transp;
+ background-blend-mode: screen;
+ color: @foreground;
+}
+
+.modules-center {
+ background: @effort2;
+ background-blend-mode: overlay;
+ padding: 4px 2px;
+ margin: 0px 5px;
+ border-radius: 20px;
+ border: 2px solid @border;
+ box-shadow: 0px 0px 3px 4px @shadow;
+}
+
+tooltip {
+ background: #000000;
+ padding: 4px;
+}
+
+tooltip label {
+ color: white;
+ padding: 0;
+ margin: 0;
+}
+
+/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
+#workspaces button:hover {
+ background: inherit;
+}
+
+#workspaces button {
+ padding: 0px;
+ border: none;
+ border-radius: 40px;
+ background-color: transparent;
+ margin-bottom: 4px;
+}
+
+#workspaces:last-child {
+ margin-bottom: 0px;
+}
+
+#workspaces button label {
+ color: #bbbbbb;
+ font-size: 10px;
+ padding: 0px;
+ margin: 0px;
+}
+
+#workspaces button:hover {
+ background-color: rgba(0, 0, 0, 0.2);
+}
+
+
+#workspaces button.active.empty {
+ background-color: #005577;
+}
+
+#workspaces button.active:not(.empty) {
+ background-color: #005577;
+ /* border: 1px solid #0088aa; */
+}
+
+#workspaces button.active label {
+ font-weight: 900;
+ color: #eeeeee;
+}
+
+#workspaces button:not(.active):not(.empty) {
+ /* border: 1px solid #444444; */
+}
+
+
+#workspaces button.urgent {
+ background-color: #eb4d4b;
+}
+
+
+#clock,
+#battery,
+#cpu,
+#memory,
+#disk,
+#temperature,
+#backlight,
+#network,
+#pulseaudio,
+#wireplumber,
+#custom-media,
+#tray,
+#mode,
+#idle_inhibitor,
+#scratchpad,
+#power-profiles-daemon,
+#mpd {
+ padding: 5px 0px;
+}
+
+#clock {
+ font-weight: bold;
+ border-top: 1px solid #777777;
+ padding-top: 10px;
+}
+
+#window,
+#workspaces {
+ margin: 4px 0px;
+}
+
+@keyframes blink {
+ to {
+ background-color: #ffffff;
+ color: #000000;
+ }
+}
+
+#battery.critical:not(.charging) {
+ background-color: #f53c3c;
+ color: #ffffff;
+ animation-name: blink;
+ animation-duration: 0.5s;
+ animation-timing-function: steps(12);
+ animation-iteration-count: infinite;
+ animation-direction: alternate;
+}
+
+#power-profiles-daemon.performance {
+ color: #f53c3c;
+}
+
+label:focus {
+ background-color: #000000;
+}
+
+#tray > .passive {
+ -gtk-icon-effect: dim;
+}
+
+#tray > .needs-attention {
+ -gtk-icon-effect: highlight;
+ background-color: #eb4d4b;
+}
+
+#idle_inhibitor.activated {
+ color: #f53c3c;
+}
diff --git a/waybar/dot-config/waybar/config.jsonc b/waybar/dot-config/waybar/config.jsonc
index 8788765..d6859b2 100644
--- a/waybar/dot-config/waybar/config.jsonc
+++ b/waybar/dot-config/waybar/config.jsonc
@@ -1,136 +1,111 @@
+// vim: ft=jsonc
{
- "position": "right",
- "exclusive": false,
"layer": "top",
- "margin": "5 2 5 0",
- // "height": 18,
- "spacing": 5,
+ "position": "bottom",
+ "height": 20,
+ "spacing": 0,
"reload_style_on_change": true,
"modules-left": [
- ],
- "modules-right": [
+ "niri/workspaces",
+ "niri/window"
],
"modules-center": [
- "niri/workspaces",
- "custom/weather",
+ ],
+ "modules-right": [
"idle_inhibitor",
- "wireplumber",
+ "wireplumber#sink",
"network",
"power-profiles-daemon",
+ "cpu",
+ "memory",
+ "temperature",
"backlight",
"niri/language",
"battery",
- "tray",
- "clock"
+ "clock",
+ "tray"
],
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
- "activated": "󰒳",
- "deactivated": "󰒲"
+ "activated": "",
+ "deactivated": ""
}
},
"tray": {
"icon-size": 12,
- "spacing": 5
+ "spacing": 10
},
"clock": {
- "interval": 60,
- "format": "{:%a\n%d\n%b\n\n%H\n%M}",
- "tooltip-format": "<big>{:%Y %B}</big>\n<tt>{calendar}</tt>",
- "justify": "center"
+ "format": "{:%a %d %b %H:%M}",
+ "tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
+ "interval": 60
+ },
+ "cpu": {
+ "format": "{usage}% ",
+ "tooltip": false
+ },
+ "memory": {
+ "format": "{}% "
+ },
+ "temperature": {
+ // "thermal-zone": 2,
+ // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
+ // "format-critical": "{temperatureC}°C {icon}",
+ "critical-threshold": 80,
+ "format": "{temperatureC}°C {icon}",
+ "format-icons": ["", "", ""]
},
"backlight": {
- "format": "{icon}",
- "format-icons": [
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- "",
- ""
- ],
- "tooltip-format": "{percent}%"
+ // "device": "acpi_video1",
+ "format": "{percent}% {icon}",
+ "format-icons": ["", "", "", "", "", "", "", "", ""]
},
"battery": {
"states": {
+ // "good": 95,
"warning": 30,
- "critical": 10
+ "critical": 15
},
- "format": "{icon}\n{capacity}",
- "format-full": "{icon}",
- "format-charging": "󰢝\n{capacity}%",
- "format-plugged": "",
- "format-icons": [
- "",
- "",
- "",
- "",
- ""
- ],
- "justify": "center",
- "tooltip-format": "{capacity}% {power}W ({time})"
+ "format": "{capacity}% {icon}",
+ "format-full": "{capacity}% {icon}",
+ "format-charging": "{capacity}% ",
+ "format-plugged": "{capacity}% ",
+ "format-alt": "{time} {icon}",
+ // "format-good": "", // An empty format will hide the module
+ // "format-full": "",
+ "format-icons": ["", "", "", "", ""]
},
"power-profiles-daemon": {
- "format": "{icon}",
- "tooltip-format": "Power profile: {profile}\nDriver: {driver}",
- "tooltip": true,
- "format-icons": {
- "performance": "",
- "balanced": "󰞍",
- "power-saver": ""
- }
+ "format": "{icon}",
+ "tooltip-format": "Power profile: {profile}\nDriver: {driver}",
+ "tooltip": true,
+ "format-icons": {
+ "default": "",
+ "performance": "",
+ "balanced": "",
+ "power-saver": ""
+ }
},
"network": {
- "format-wifi": "",
- "format-ethernet": "",
- "format-disconnected": "󰲛",
- "tooltip-format-ethernet": "{ipaddr}/{cidr}",
- "tooltip-format-wifi": "{essid} ({signalStrength}%) {gwaddr}",
- "tooltip-format-disconnected": "Disconnected",
- "format-linked": "-",
- "justify": "center",
- "on-click": "runapp -o -- alacritty -e impala"
+ // "interface": "wlp2*", // (Optional) To force the use of this interface
+ "format-wifi": "{essid} ({signalStrength}%) ",
+ "format-ethernet": "{ipaddr}/{cidr} ",
+ "tooltip-format": "{ifname} via {gwaddr} ",
+ "format-linked": "{ifname} (No IP) ",
+ "format-disconnected": "Disconnected ⚠",
+ "format-alt": "{ifname}: {ipaddr}/{cidr}"
},
- "wireplumber": {
- "format": "{icon}",
+ "wireplumber#sink": {
+ "node-type": "Audio/Sink",
+ "format": "{volume}% ",
"format-muted": "",
- "on-click": "runapp -o -- alacritty -e bash -c 'wpctl status | less'",
- "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle && update-led-mute sink",
- "max-volume": 100,
- "scroll-step": 5,
- "format-icons": {
- "headphone": "",
- "hands-free": "",
- "headset": "",
- "phone": "",
- "portable": "",
- "car": "",
- "default": [
- "",
- "",
- ""
- ]
- },
- "justify": "center"
+ "on-click-right": "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle",
+ "scroll-step": 4
},
"niri/language": {
"format": "{}",
- "format-en": "en",
- "format-fa": "فا"
- },
- "niri/window": {
- "icon": true,
- "icon-size": 13
- },
- "custom/weather": {
- "format": "{}°",
- "tooltip": true,
- "interval": 3600,
- "exec": "wttrbar",
- "return-type": "json"
+ "format-en": "en",
+ "format-fa": "فا"
}
}
diff --git a/waybar/dot-config/waybar/style.css b/waybar/dot-config/waybar/style.css
index 357f320..d6f56ec 100644
--- a/waybar/dot-config/waybar/style.css
+++ b/waybar/dot-config/waybar/style.css
@@ -1,95 +1,65 @@
-@import url("file:///home/moreka/.cache/wal/colors-waybar.css");
-@define-color transp alpha(@background, 0);
-@define-color effort2 alpha(@background, 0.8);
-@define-color border lighter(@background);
-@define-color shadow darker(@background);
-/* @define-color foreground #eeeeee; */
-
* {
- font-family: Dejavu Sans Mono, Vazirmatn UI;
+ font-family: monospace, "Nerd Font Symbols";
font-size: 12px;
- min-width: 0;
+ min-height: 0;
}
window#waybar {
- background-color: @transp;
- background-blend-mode: screen;
- color: @foreground;
+ background-color: rgba(43, 48, 59, 1.0);
+ color: #ffffff;
+ transition-property: background-color;
+ transition-duration: .2s;
}
-.modules-center {
- background: @effort2;
- background-blend-mode: overlay;
- padding: 4px 2px;
- margin: 0px 5px;
- border-radius: 20px;
- border: 2px solid @border;
- box-shadow: 0px 0px 3px 4px @shadow;
+window#waybar.hidden {
+ opacity: 0.2;
}
-tooltip {
- background: #000000;
- padding: 4px;
+window#waybar.termite {
+ background-color: #3F3F3F;
}
-tooltip label {
- color: white;
- padding: 0;
- margin: 0;
+window#waybar.chromium {
+ background-color: #000000;
+ border: none;
+}
+
+button {
+ /* Use box-shadow instead of border so the text isn't offset */
+ box-shadow: inset 0 -1px transparent;
+ /* Avoid rounded borders under each button name */
+ border: none;
+ border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
-#workspaces button:hover {
+button:hover {
background: inherit;
+ box-shadow: inset 0 -1px #ffffff;
}
#workspaces button {
- padding: 0px;
- border: none;
- border-radius: 40px;
+ padding: 0 5px;
background-color: transparent;
- margin-bottom: 4px;
-}
-
-#workspaces:last-child {
- margin-bottom: 0px;
-}
-
-#workspaces button label {
- color: #bbbbbb;
- font-size: 10px;
- padding: 0px;
- margin: 0px;
+ color: #ffffff;
}
#workspaces button:hover {
- background-color: rgba(0, 0, 0, 0.2);
-}
-
-
-#workspaces button.active.empty {
- background-color: #005577;
-}
-
-#workspaces button.active:not(.empty) {
- background-color: #005577;
- /* border: 1px solid #0088aa; */
-}
-
-#workspaces button.active label {
- font-weight: 900;
- color: #eeeeee;
+ background: rgba(0, 0, 0, 0.2);
}
-#workspaces button:not(.active):not(.empty) {
- /* border: 1px solid #444444; */
+#workspaces button.focused, #workspaces button.active {
+ background-color: #64727D;
+ box-shadow: inset 0 -1px #ebebeb;
}
-
#workspaces button.urgent {
background-color: #eb4d4b;
}
+#window {
+ padding-left: 5px;
+}
#clock,
#battery,
@@ -108,27 +78,47 @@ tooltip label {
#scratchpad,
#power-profiles-daemon,
#mpd {
- padding: 5px 0px;
+ padding: 0 10px;
+ color: #ffffff;
+}
+
+#window,
+#workspaces {
+ margin: 0 4px;
+}
+
+/* If workspaces is the leftmost module, omit left margin */
+.modules-left > widget:first-child > #workspaces {
+ margin-left: 0;
+}
+
+/* If workspaces is the rightmost module, omit right margin */
+.modules-right > widget:last-child > #workspaces {
+ margin-right: 0;
}
#clock {
font-weight: bold;
- border-top: 1px solid #777777;
- padding-top: 10px;
}
-#window,
-#workspaces {
- margin: 4px 0px;
+#battery {
+ /* background-color: #ffffff; */
+ /* color: #000000; */
+}
+
+#battery.charging, #battery.plugged {
+ /* color: #ffffff; */
+ /* background-color: #26A65B; */
}
@keyframes blink {
to {
- background-color: #ffffff;
- color: #000000;
+ background-color: #000000;
+ color: #ffffff;
}
}
+/* Using steps() instead of linear as a timing function to limit cpu usage */
#battery.critical:not(.charging) {
background-color: #f53c3c;
color: #ffffff;
@@ -139,14 +129,73 @@ tooltip label {
animation-direction: alternate;
}
+#power-profiles-daemon {
+ padding: 0 5px;
+ min-width: 16px;
+ /* padding-right: 15px; */
+}
+
#power-profiles-daemon.performance {
- color: #f53c3c;
+ background-color: #f53c3c;
+ color: #ffffff;
+}
+
+#power-profiles-daemon.balanced {
+ /* background-color: #2980b9; */
+ /* color: #ffffff; */
+}
+
+#power-profiles-daemon.power-saver {
+ /* background-color: #2ecc71; */
+ /* color: #000000; */
}
label:focus {
background-color: #000000;
}
+#cpu {
+ /* background-color: #2ecc71; */
+ /* color: #000000; */
+}
+
+#memory {
+ /* background-color: #9b59b6; */
+}
+
+#backlight {
+ /* background-color: #90b1b1; */
+}
+
+#network {
+ /* background-color: #2980b9; */
+}
+
+#network.disconnected {
+ background-color: #f53c3c;
+}
+
+#wireplumber {
+ /* background-color: #f1c40f; */
+ /* color: #000000; */
+}
+
+#wireplumber.muted {
+ background-color: #f53c3c;
+}
+
+#temperature {
+ /* background-color: #f0932b; */
+}
+
+#temperature.critical {
+ background-color: #eb4d4b;
+}
+
+#tray {
+ /* background-color: #2980b9; */
+}
+
#tray > .passive {
-gtk-icon-effect: dim;
}
@@ -156,6 +205,18 @@ label:focus {
background-color: #eb4d4b;
}
+#idle_inhibitor {
+ /* background-color: #2d3436; */
+}
+
#idle_inhibitor.activated {
- color: #f53c3c;
+ background-color: #ecf0f1;
+ color: #2d3436;
+}
+
+#language {
+ /* background: #00b093; */
+ /* color: #740864; */
+ padding: 0 5px;
+ min-width: 16px;
}
diff --git a/wayland-basics/dot-config/environment.d/10-home-manager.conf b/wayland-basics/dot-config/environment.d/10-home-manager.conf
deleted file mode 120000
index 72f9854..0000000
--- a/wayland-basics/dot-config/environment.d/10-home-manager.conf
+++ /dev/null
@@ -1 +0,0 @@
-/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
deleted file mode 100644
index 747ba92..0000000
--- a/wayland-basics/dot-config/environment.d/90-dms.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-DMS_DISABLE_MATUGEN=1
-DMS_DISABLE_POLKIT=1
diff --git a/wayland-basics/dot-config/systemd/user/minibar.service b/wayland-basics/dot-config/systemd/user/minibar.service
deleted file mode 100644
index 2d00d3a..0000000
--- a/wayland-basics/dot-config/systemd/user/minibar.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=My minimal bar made with GTK4-rs
-PartOf=graphical-session.target
-After=graphical-session.target
-Requisite=graphical-session.target
-
-[Service]
-ExecStart=/home/moreka/.local/bin/minibar
-Restart=on-failure
-Slice=app-graphical.slice
-
-[Install]
-WantedBy=graphical-session.target
diff --git a/wayland-basics/dot-config/systemd/user/polkit-kde.service b/wayland-basics/dot-config/systemd/user/polkit-kde.service
deleted file mode 100644
index 8b39695..0000000
--- a/wayland-basics/dot-config/systemd/user/polkit-kde.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=KDE polkit authentication agent
-PartOf=graphical-session.target
-After=graphical-session.target
-
-[Service]
-Type=exec
-ExecStart=/usr/lib/polkit-kde-authentication-agent-1
-Restart=on-failure
-
-[Install]
-WantedBy=graphical-session.target
diff --git a/wayland-basics/dot-local/share/applications/chromium.desktop b/wayland-basics/dot-local/share/applications/chromium.desktop
deleted file mode 100644
index cb36f62..0000000
--- a/wayland-basics/dot-local/share/applications/chromium.desktop
+++ /dev/null
@@ -1,21 +0,0 @@
-[Desktop Entry]
-Version=1.0
-Name=Chromium
-GenericName=Web Browser
-Comment=Access the Internet
-Exec=launch-chromium %U
-StartupNotify=true
-Terminal=false
-Icon=chromium
-Type=Application
-Categories=Network;WebBrowser;
-MimeType=application/xhtml+xml;application/xhtml_xml;application/xml;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/chromium;
-Actions=new-window;new-private-window;
-
-[Desktop Action new-window]
-Name=New Window
-Exec=launch-chromium
-
-[Desktop Action new-private-window]
-Name=New Incognito Window
-Exec=launch-chromium --incognito
diff --git a/wayland-basics/dot-local/share/applications/gf2.desktop b/wayland-basics/dot-local/share/applications/gf2.desktop
deleted file mode 100644
index 70aba4e..0000000
--- a/wayland-basics/dot-local/share/applications/gf2.desktop
+++ /dev/null
@@ -1,7 +0,0 @@
-[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/text.desktop b/wayland-basics/dot-local/share/applications/text.desktop
deleted file mode 120000
index 15e1f2a..0000000
--- a/wayland-basics/dot-local/share/applications/text.desktop
+++ /dev/null
@@ -1 +0,0 @@
-nvim.desktop \ No newline at end of file
diff --git a/wayland-basics/dot-config/wireplumber/wireplumber.conf.d/disable-bluetooth.conf b/wireplumber/dot-config/wireplumber/wireplumber.conf.d/disable-bluetooth.conf
index 9c4be34..9c4be34 100644
--- a/wayland-basics/dot-config/wireplumber/wireplumber.conf.d/disable-bluetooth.conf
+++ b/wireplumber/dot-config/wireplumber/wireplumber.conf.d/disable-bluetooth.conf
diff --git a/wayland-basics/dot-config/zathura/zathurarc b/zathura/dot-config/zathura/zathurarc
index 8322b0e..8322b0e 100644
--- a/wayland-basics/dot-config/zathura/zathurarc
+++ b/zathura/dot-config/zathura/zathurarc