From: Amin Bandali Date: Sun, 14 Mar 2021 04:44:05 +0000 (-0500) Subject: Many uncommitted changes X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/commitdiff_plain/9867e4bbee2bcfe7050b0c9d98cbf72653f658ac?hp=be78d2d531eb16d8c72499cb7396354c9d2b16b4 Many uncommitted changes --- diff --git a/.Xresources.d/emacs b/.Xresources.d/emacs index e415330..a431a86 100644 --- a/.Xresources.d/emacs +++ b/.Xresources.d/emacs @@ -20,3 +20,5 @@ Emacs.font: Source Code Pro Medium:size=14 !Emacs.font: Vazir:size=14 ! Emacs.font: Ubuntu Mono:size=16 ! Emacs.font: Iosevka:size=16 + +!emacs.background: white diff --git a/.bashrc b/.bashrc index 397aa80..321c1de 100644 --- a/.bashrc +++ b/.bashrc @@ -39,7 +39,7 @@ PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: $(b_prompt)\007"' # i-beam cursor # echo -e "\033[5 q" # blinking -echo -e "\033[6 q" # non-blinking +# echo -e "\033[6 q" # non-blinking # various bash tweaks # disallow overwriting existing file using redirection @@ -84,6 +84,9 @@ alias e="$EDITOR" alias se="SUDO_EDITOR=\"emacsclient\" sudo -e" alias s="startx" +alias dquilt="quilt --quiltrc=${HOME}/.quiltrc-dpkg" +complete -F _quilt_completion -o filenames dquilt + aur() { cd ~/s [ -d ${1} ] || git clone https://aur.archlinux.org/${1}.git diff --git a/.config/gtk-3.0/settings.ini b/.config/gtk-3.0/settings.ini index bb12559..c35f779 100644 --- a/.config/gtk-3.0/settings.ini +++ b/.config/gtk-3.0/settings.ini @@ -1,11 +1,11 @@ [Settings] -gtk-icon-theme-name = Adwaita +gtk-icon-theme-name = Trisquel # gtk-theme-name = Adwaita -gtk-theme-name = Xfce +gtk-theme-name = trisquel # gtk-theme-name = Arc-Darker # gtk-theme-name = Numix-ArchBlue -gtk-font-name = Roboto 10 +gtk-font-name = Roboto 9 # gtk-font-name = Source Code Variable Medium 10 # gtk-key-theme-name = Emacs diff --git a/.config/isync/mbsyncrc b/.config/isync/mbsyncrc index 1cd2e3a..81c0191 100644 --- a/.config/isync/mbsyncrc +++ b/.config/isync/mbsyncrc @@ -34,7 +34,7 @@ Host mail.shemshak.org User gnu@bndl.org PassCmd "gpg -q --for-your-eyes-only --no-tty -d ~/.passwd/gnub.gpg" SSLType IMAPS -Timeout 30 +Timeout 60 IMAPStore gnub-remote Account gnub diff --git a/.config/msmtp/config b/.config/msmtp/config index 13e9d88..7d8f8da 100644 --- a/.config/msmtp/config +++ b/.config/msmtp/config @@ -9,7 +9,7 @@ logfile ~/.msmtp.log account shemshak host mail.shemshak.org # use `msmtp -a shemshak --serverinfo --tls --tls-certcheck=off --tls-fingerprint=` to get the current fingerprint -tls_fingerprint 3C:DA:93:CD:5A:B7:04:2D:08:7F:E4:DF:59:07:A4:75:43:3E:5A:A6:54:D8:AA:94:FE:F2:BC:C4:2B:B5:97:A6 +tls_fingerprint A3:A3:B6:B3:05:5E:A2:86:17:2C:80:9E:33:1F:0A:58:8E:26:F9:A0:6E:7B:B4:9A:C6:3B:E3:8E:EA:0E:36:99 tls_starttls on from amin@shemshak.org user bandali@shemshak.org @@ -25,7 +25,7 @@ from a@bndl.org account gnu host fencepost.gnu.org # use `msmtp -a gnu --serverinfo --tls --tls-certcheck=off --tls-fingerprint=` to get the current fingerprint -tls_fingerprint 0D:7B:DE:AD:1F:C2:4F:2E:5A:C8:32:68:D0:D3:72:8D:6B:79:29:61:26:05:12:97:8E:5D:A9:1B:7E:6E:30:FC +tls_fingerprint 04:34:F8:F1:AF:1D:F8:FA:8A:E9:FD:A7:C1:77:A1:AD:99:75:48:4F:C1:31:F1:A7:9E:25:C2:96:7A:28:53:05 tls_starttls on from bandali@gnu.org user bandali diff --git a/.config/picom/picom.conf b/.config/picom/picom.conf index 097fed5..b3ad0e5 100644 --- a/.config/picom/picom.conf +++ b/.config/picom/picom.conf @@ -16,6 +16,7 @@ shadow-radius = 7; # The opacity of shadows. (0.0 - 1.0, defaults to 0.75) # shadow-opacity = .75 +shadow-opacity = 0.83 # The left offset for shadows, in pixels. (defaults to -15) # shadow-offset-x = -15 @@ -44,10 +45,12 @@ shadow-offset-y = -7; # # shadow-exclude = [] shadow-exclude = [ + "! name ~= ''", "name = 'Notification'", "class_g = 'Conky'", "class_g ?= 'Notify-osd'", "class_g = 'Cairo-clock'", + "argb && ! window_type *= 'menu'", "_GTK_FRAME_EXTENTS@:c" ]; @@ -75,13 +78,17 @@ fading = true; # Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028) # fade-in-step = 0.028 fade-in-step = 0.03; +#fade-in-step = 0.1; # Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03) # fade-out-step = 0.03 fade-out-step = 0.03; +#fade-out-step = 0.1; # The time between steps in fade step, in milliseconds. (> 0, defaults to 10) # fade-delta = 10 +fade-delta = 2 +#fade-delta = 9 # Specify a list of conditions of windows that should not be faded. # fade-exclude = [] @@ -107,11 +114,12 @@ inactive-opacity = 0.8; frame-opacity = 0.7; # Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows. -# inactive-opacity-override = true -inactive-opacity-override = false; +inactive-opacity-override = true +# inactive-opacity-override = false; # Default opacity for active windows. (0.0 - 1.0, defaults to 1.0) # active-opacity = 1.0 +#active-opacity = 0.95 # Dim inactive windows. (0.0 - 1.0, defaults to 0.0) # inactive-dim = 0.0 @@ -206,8 +214,8 @@ blur-background-exclude = [ # Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. # `xrender` is the default one. # -# backend = "glx" -backend = "xrender"; +backend = "glx" +# backend = "xrender"; # Enable/disable VSync. # vsync = false @@ -249,6 +257,7 @@ refresh-rate = 0; # provided that the WM supports it. # # use-ewmh-active-win = false +use-ewmh-active-win = true # Unredirect all windows if a full-screen opaque window is detected, # to maximize performance for full-screen windows. Known to cause flickering @@ -407,6 +416,6 @@ wintypes: tooltip = { fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; }; dock = { shadow = false; } dnd = { shadow = false; } - popup_menu = { opacity = 0.8; } - dropdown_menu = { opacity = 0.8; } + popup_menu = { opacity = 0.9; } + dropdown_menu = { opacity = 0.9; } }; diff --git a/.emacs.d/etc/abbrev.el b/.emacs.d/etc/abbrev.el deleted file mode 100644 index 76f19d8..0000000 --- a/.emacs.d/etc/abbrev.el +++ /dev/null @@ -1,5 +0,0 @@ -;;-*-coding: utf-8;-*- -(define-abbrev-table 'message-mode-abbrev-table - '( - ("linux" "GNU/Linux" nil :count 4) - )) diff --git a/.emacs.d/etc/yasnippet/snippets/log-edit-mode/thankgnu b/.emacs.d/etc/yasnippet/snippets/log-edit-mode/thankgnu index bf29b63..eafcbd7 100644 --- a/.emacs.d/etc/yasnippet/snippets/log-edit-mode/thankgnu +++ b/.emacs.d/etc/yasnippet/snippets/log-edit-mode/thankgnu @@ -2,4 +2,4 @@ # name: thankgnu # key: th # -- -[RT#$1] Add ${2:$$(yas-choose-value '("Contributor" "Sustaining Contributor" "Patron"))} $3 to the 20${4:20} ThankGNUs list$0 \ No newline at end of file +[RT#$1] Add ${2:$$(yas-choose-value '("Contributor" "Sustaining Contributor" "Patron"))} $3 to the 20${4:21} ThankGNUs list$0 \ No newline at end of file diff --git a/.emacs.d/etc/yasnippet/snippets/message-mode/thankgnu b/.emacs.d/etc/yasnippet/snippets/message-mode/thankgnu index 0d10448..35c233a 100644 --- a/.emacs.d/etc/yasnippet/snippets/message-mode/thankgnu +++ b/.emacs.d/etc/yasnippet/snippets/message-mode/thankgnu @@ -2,6 +2,6 @@ # name: thankgnu # key: th # -- -Added ${2:$$(yas-choose-value '("Contributor" "Sustaining Contributor" "Patron"))} $3 to 20${4:20}supporters.html. +Added ${2:$$(yas-choose-value '("Contributor" "Sustaining Contributor" "Patron"))} $3 to 20${4:21}supporters.html. Moving to campaigns.$0 diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 631ce8c..5594987 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -17,9 +17,8 @@ ;;; Commentary: -;; GNU Emacs configuration of Amin Bandali, computer scientist, -;; Free Software activist, and GNU maintainer & webmaster. Packages -;; are installed through using Borg for a fully reproducible setup. +;; GNU Emacs configuration of bandali, free software activist, +;; computing scientist, and GNU maintainer and volunteer. ;; Over the years, I've taken inspiration from configurations of many ;; great people. Some that I can remember off the top of my head are: @@ -76,28 +75,27 @@ (format "[%s]" (number-to-string exwm-workspace-current-index)))))))) - - ;; make some mode-line spaces smaller - (setq-default - mode-line-format - (mapcar - (lambda (x) - (if (and (stringp x) (or (string= x " ") (string= x " "))) - " " - x)) - mode-line-format) - mode-line-buffer-identification - (propertized-buffer-identification "%10b"))) + (when (version< emacs-version "28") + ;; manually make some mode-line spaces smaller + ;; (version<= "28" emacs-version) can do an awesome job at this + ;; out of the box if `mode-line-compact' is set to t (see below) + (setq-default + mode-line-format + (mapcar + (lambda (x) + (if (and (stringp x) + (or (string= x " ") + (string= x " "))) + " " + x)) + mode-line-format) + mode-line-buffer-identification + (propertized-buffer-identification "%10b")))) (add-hook 'after-init-hook #'b/post-init) ;; increase number of lines kept in *Messages* log (setq message-log-max 20000) -;; optionally, uncomment to supress some byte-compiler warnings -;; (see C-h v byte-compile-warnings RET for more info) -;; (setq byte-compile-warnings -;; '(not free-vars unresolved noruntime lexical make-local)) - ;;; whoami @@ -147,7 +145,7 @@ This sets each user option VAR's value to the corresponding VALUE. '(;; GNU ELPA (debbugs "0.26") (delight "1.7") - (ebdb "0.6.20") + (ebdb "0.6.21") (orgalist "1.13") (rt-liberation "1.31") (yasnippet "0.14.0") @@ -223,96 +221,71 @@ This sets each user option VAR's value to the corresponding VALUE. ;;;; C-level customizations (csetq + ;; completion case sensitivity + completion-ignore-case t ;; minibuffer enable-recursive-minibuffers t resize-mini-windows t - ;; more useful frame titles - ;; frame-title-format '("" invocation-name " - " - ;; (:eval - ;; (if (buffer-file-name) - ;; (abbreviate-file-name (buffer-file-name)) - ;; "%b"))) - ;; i don't feel like jumping out of my chair every now and again; so - ;; don't BEEP! at me, emacs + ;; mode-line + mode-line-compact t + ;; i don't feel like jumping out of my chair every now and again; + ;; so...don't *BEEP* at me, emacs =) ring-bell-function 'ignore ;; better scrolling - ;; scroll-margin 1 - ;; scroll-conservatively 10000 - scroll-step 1 - scroll-conservatively 101 - scroll-preserve-screen-position 1 + ;; scroll-conservatively 101 + scroll-conservatively 15 + ;; scroll-preserve-screen-position 1 ;; focus follows mouse - mouse-autoselect-window t) + ;; mouse-autoselect-window t + ) (setq-default - ;; always use space for indentation - indent-tabs-mode nil - tab-width 4 ;; case-sensitive search (and `dabbrev-expand') ;; case-fold-search nil - ;; cursor shape - cursor-type t) + ;; always use space for indentation + indent-tabs-mode nil + tab-width 4) (set-fontset-font t 'arabic "Vazir") -;; unicode support -;; (dolist (ft (fontset-list)) -;; (set-fontset-font -;; ft -;; 'unicode -;; (font-spec :name "Source Code Pro" :size 14)) -;; (set-fontset-font -;; ft -;; 'unicode -;; (font-spec :name "DejaVu Sans Mono") -;; nil -;; 'append) -;; ;; (set-fontset-font -;; ;; ft -;; ;; 'unicode -;; ;; (font-spec -;; ;; :name "Symbola monospacified for DejaVu Sans Mono") -;; ;; nil -;; ;; 'append) -;; ;; (set-fontset-font -;; ;; ft -;; ;; #x2115 ; ℕ -;; ;; (font-spec :name "DejaVu Sans Mono") -;; ;; nil -;; ;; 'append) -;; (set-fontset-font -;; ft -;; (cons ?Α ?ω) -;; (font-spec :name "DejaVu Sans Mono" :size 14) -;; nil -;; 'prepend)) - ;;;; Elisp-level customizations ;; (define-key minibuffer-local-completion-map ;; "\t" #'minibuffer-force-complete) -(with-eval-after-load 'icomplete +;; (with-eval-after-load 'icomplete -(setq icomplete-on-del-error-function #'abort-recursive-edit) +;; (setq icomplete-on-del-error-function #'abort-recursive-edit) -(defun b/icomplete-fido-backward-updir () - "Delete char before or go up directory, like `ido-mode'." - (interactive) - (if (and (eq (char-before) ?/) - (eq (icomplete--category) 'file)) - (save-excursion - (goto-char (1- (point))) - (when (search-backward "/" (point-min) t) - (delete-region (1+ (point)) (point-max)))) - (condition-case nil - (call-interactively #'delete-backward-char) - (error - (when icomplete-on-del-error-function - (funcall icomplete-on-del-error-function)))))) - -(define-key icomplete-fido-mode-map - (kbd "DEL") #'b/icomplete-fido-backward-updir)) +;; (defun b/icomplete-fido-backward-updir () +;; "Delete char before or go up directory, like `ido-mode'." +;; (interactive) +;; (if (and (eq (char-before) ?/) +;; (eq (icomplete--category) 'file)) +;; (save-excursion +;; (goto-char (1- (point))) +;; (when (search-backward "/" (point-min) t) +;; (delete-region (1+ (point)) (point-max)))) +;; (condition-case nil +;; (call-interactively #'delete-backward-char) +;; (error +;; (when icomplete-on-del-error-function +;; (funcall icomplete-on-del-error-function)))))) + +;; (define-key icomplete-fido-mode-map +;; (kbd "DEL") #'b/icomplete-fido-backward-updir)) + +;; (with-eval-after-load 'subr +;; (keyboard-translate ?\( ?\[) +;; (keyboard-translate ?\) ?\]) +;; (keyboard-translate ?\[ ?\() +;; (keyboard-translate ?\] ?\)) + +;; ;; (keyboard-translate ?\( ?\() +;; ;; (keyboard-translate ?\) ?\)) +;; ;; (keyboard-translate ?\[ ?\[) +;; ;; (keyboard-translate ?\] ?\]) +;; ) ;; startup ;; don't need to see the startup echo area message @@ -340,7 +313,7 @@ This sets each user option VAR's value to the corresponding VALUE. ;; auto-save auto-save-file-name-transforms `((".*" ,(b/var "auto-save/") t)) ;; insert newline at the end of files - require-final-newline t + ;; require-final-newline t ;; open read-only file buffers in view-mode ;; (enables niceties like `q' for quit) view-read-only t) @@ -359,27 +332,28 @@ This sets each user option VAR's value to the corresponding VALUE. (global-auto-revert-mode 1) ;; time and battery in mode-line -(csetq - display-time-default-load-average nil - display-time-format " %a %b %-e %-l:%M%P" - display-time-mail-icon '(image :type xpm - :file "gnus/gnus-pointer.xpm" - :ascent center) - display-time-use-mail-icon t) -(require 'time) -(display-time-mode) - -(csetq battery-mode-line-format " %p%% %t") -(require 'battery) -(display-battery-mode) - -(require 'fringe) -;; smaller fringe -;; (fringe-mode '(3 . 1)) -(fringe-mode nil) +(run-with-idle-timer 0.1 nil #'require 'time) +(with-eval-after-load 'time + (csetq + display-time-default-load-average nil + display-time-format " %a %b %-e %-l:%M%P" + display-time-mail-icon '(image :type xpm + :file "gnus/gnus-pointer.xpm" + :ascent center) + display-time-use-mail-icon t) + (display-time-mode)) + +(run-with-idle-timer 0.1 nil #'require 'battery) +(with-eval-after-load 'battery + (csetq battery-mode-line-format " %p%% %t") + (display-battery-mode)) + +;; (with-eval-after-load 'fringe +;; ;; smaller fringe +;; (fringe-mode '(3 . 1))) -(require 'winner) ;; enable winner-mode (C-h f winner-mode RET) +(require 'winner) (winner-mode 1) (with-eval-after-load 'compile @@ -408,6 +382,7 @@ This sets each user option VAR's value to the corresponding VALUE. (csetq ;; allow scrolling in Isearch isearch-allow-scroll t + isearch-lazy-count t ;; search for non-ASCII characters: i’d like non-ASCII characters such ;; as ‘’“”«»‹›áⓐ𝒶 to be selected when i search for their ASCII ;; counterpart. shoutout to @@ -461,6 +436,24 @@ This sets each user option VAR's value to the corresponding VALUE. auth-sources '("~/.authinfo.gpg") authinfo-hidden (regexp-opt '("password" "client-secret" "token"))) +;; info +(with-eval-after-load 'info + (add-to-list + 'Info-directory-list + (expand-file-name + (convert-standard-filename "info/") source-directory))) + +;; faces +(with-eval-after-load 'faces + (let* ((grey "#e7e7e7") + (darker-grey "#d9d9d9") + (box ;; `(:line-width -1 :style released-button) + 'unspecified)) + (set-face-attribute 'mode-line nil + :background grey :box box) + (set-face-attribute 'mode-line-inactive nil + :background darker-grey :box box))) + ;;; Useful utilities @@ -550,7 +543,7 @@ Make N (default: 1) copies of the current line or region." ;; evaling and macro-expanding (global-set-key (kbd "C-c e b") #'eval-buffer) (global-set-key (kbd "C-c e e") #'eval-last-sexp) -(global-set-key (kbd "C-c e p") #'pp-macroexpand-last-sexp) +(global-set-key (kbd "C-c e m") #'pp-macroexpand-last-sexp) (global-set-key (kbd "C-c e r") #'eval-region) ;; emacs things @@ -568,15 +561,12 @@ Make N (default: 1) copies of the current line or region." (global-set-key (kbd "C-c F d") #'delete-frame) ;; help/describe -(global-set-key (kbd "C-S-h C") #'describe-char) (global-set-key (kbd "C-S-h F") #'describe-face) ;; (global-set-key (kbd "C-x k") #'b/kill-current-buffer) ;; (global-set-key (kbd "C-x K") #'kill-buffer) -;; (global-set-key (kbd "C-x s") #'save-buffer) -;; (global-set-key (kbd "C-x S") #'save-some-buffers) -(define-key emacs-lisp-mode-map (kbd "") #'b/add-elisp-section) +(define-key emacs-lisp-mode-map (kbd "C-") #'b/add-elisp-section) (when (display-graphic-p) (global-unset-key (kbd "C-z"))) @@ -589,12 +579,11 @@ Make N (default: 1) copies of the current line or region." (expand-file-name (convert-standard-filename "lisp") user-emacs-directory)) -(when (featurep 'exwm) - (require 'bandali-exwm)) +;; (require 'bandali-exwm) (require 'bandali-org) -(require 'bandali-theme) +;; (require 'bandali-theme) ;; recently opened files (csetq recentf-max-saved-items 2000 @@ -602,9 +591,25 @@ Make N (default: 1) copies of the current line or region." (run-with-idle-timer 0.2 nil #'require 'recentf) (with-eval-after-load 'recentf ;; (add-to-list 'recentf-keep #'file-remote-p) - (recentf-mode)) + (recentf-mode) + + (defun b/recentf-open () + "Use `completing-read' to \\[find-file] a recent file." + (interactive) + (find-file + (completing-read "Find recent file: " recentf-list))) + (global-set-key (kbd "C-c f r") #'b/recentf-open)) (fido-mode 1) +(defun b/icomplete--fido-mode-setup () + "Customizations to `fido-mode''s minibuffer." + (when (and icomplete-mode (icomplete-simple-completing-p)) + (setq-local + ;; icomplete-compute-delay 0.1 + ;; icomplete-hide-common-prefix t + icomplete-separator " · " + completion-styles '(basic substring partial-completion flex)))) +(add-hook 'minibuffer-setup-hook #'b/icomplete--fido-mode-setup 1) (require 'bandali-eshell) @@ -710,7 +715,8 @@ Make N (default: 1) copies of the current line or region." ;; yanking (pasting) what I'd originally intended to. save-interprogram-paste-before-kill t) (with-eval-after-load 'simple - (column-number-mode 1)) + (column-number-mode 1) + (line-number-mode 1)) ;; save minibuffer history (require 'savehist) @@ -897,12 +903,6 @@ Make N (default: 1) copies of the current line or region." ;; highlight TODOs in buffers (global-hl-todo-mode)) -(add-to-list 'load-path (b/lisp "page-break-lines")) -(run-with-idle-timer 0.5 nil #'require 'page-break-lines) -(with-eval-after-load 'page-break-lines - (csetq page-break-lines-max-width fill-column) - (global-page-break-lines-mode)) - ;; expand-region (global-set-key (kbd "C-=") #'er/expand-region) @@ -946,18 +946,6 @@ Make N (default: 1) copies of the current line or region." (setq debbugs-gnu-current-suppress t) (debbugs-gnu debbugs-gnu-default-severities '("gnuzilla")))) -(global-set-key (kbd "C-c D G b") ; bug-guix - (lambda () - (interactive) - (setq debbugs-gnu-current-suppress t) - (debbugs-gnu debbugs-gnu-default-severities - '("guix")))) -(global-set-key (kbd "C-c D G p") ; guix-patches - (lambda () - (interactive) - (setq debbugs-gnu-current-suppress t) - (debbugs-gnu debbugs-gnu-default-severities - '("guix-patches")))) ;; url and url-cache (csetq @@ -1023,7 +1011,6 @@ Make N (default: 1) copies of the current line or region." (with-eval-after-load 'delight (delight 'auto-fill-function " f" "simple") (delight 'abbrev-mode "" "abbrev") - (delight 'page-break-lines-mode "" "page-break-lines") (delight 'mml-mode " mml" "mml") (delight 'yas-minor-mode "" "yasnippet")) diff --git a/.emacs.d/lisp/bandali-ebdb.el b/.emacs.d/lisp/bandali-ebdb.el index 4d21978..3d959c4 100644 --- a/.emacs.d/lisp/bandali-ebdb.el +++ b/.emacs.d/lisp/bandali-ebdb.el @@ -35,6 +35,7 @@ (with-eval-after-load 'ebdb (with-eval-after-load 'ebdb-complete ;; (csetq ebdb-complete-mail 'capf) + (csetq ebdb-completion-display-record nil) ; <87pn2kk2ig.fsf@ericabrahamsen.net> (ebdb-complete-enable)) (require 'ebdb-message) @@ -43,7 +44,7 @@ (csetq ebdb-gnus-window-size 0.3) (require 'ebdb-mua) - (csetq ebdb-mua-pop-up t)) + (csetq ebdb-mua-pop-up nil)) ;; (with-eval-after-load 'company-ebdb ;; (defun company-ebdb--post-complete (_) nil)) diff --git a/.emacs.d/lisp/bandali-erc.el b/.emacs.d/lisp/bandali-erc.el index ed27df3..bc0657a 100644 --- a/.emacs.d/lisp/bandali-erc.el +++ b/.emacs.d/lisp/bandali-erc.el @@ -40,6 +40,7 @@ erc-nick "bandali" erc-prompt "erc>" erc-prompt-for-password nil + erc-query-display 'buffer erc-rename-buffers t erc-server-reconnect-attempts 5 erc-server-reconnect-timeout 3) @@ -67,14 +68,14 @@ (declare-function erc-update-modules "erc") (erc-update-modules) - (set-face-attribute - 'erc-nick-default-face nil - ;; :weight 'semibold - ;; :background "#f2f2f2" - ;; :foreground "#222222" - :weight 'bold - :background "#f8f8f8" - :foreground "#6a6a6a") + ;; (set-face-attribute + ;; 'erc-nick-default-face nil + ;; ;; :weight 'semibold + ;; ;; :background "#f2f2f2" + ;; ;; :foreground "#222222" + ;; :weight 'bold + ;; :background "#f8f8f8" + ;; :foreground "#6a6a6a") ;; (set-face-attribute ;; 'erc-notice-face nil @@ -96,16 +97,16 @@ (csetq erc-pal-highlight-type 'nick erc-pals - '("aindilis" "blackbeard" "bremner" "~brettgilio?@*" "civodul" - "dto" "ggoes" "iank" "jrasata" "mplsCorwin" "quidam" "rwp" - "sachac" "sudoman" "technomancy")) + '("bremner" "^gopar" "^iank" "quidam" "^rwp" "sudoman" + "technomancy" "thomzane")) (with-eval-after-load 'erc-match (set-face-attribute 'erc-pal-face nil :foreground 'unspecified :weight 'unspecified :inherit 'erc-nick-default-face - :background (face-attribute 'font-lock-string-face :background))) + ;; :background (face-attribute 'font-lock-string-face :background) + :background "#ffffdf")) ;; erc-pcomplete (csetq erc-pcomplete-nick-postfix ",") diff --git a/.emacs.d/lisp/bandali-exwm.el b/.emacs.d/lisp/bandali-exwm.el index f94757d..99a186b 100644 --- a/.emacs.d/lisp/bandali-exwm.el +++ b/.emacs.d/lisp/bandali-exwm.el @@ -27,6 +27,8 @@ (add-to-list 'load-path (b/lisp "xelb")) (add-to-list 'load-path (b/lisp "exwm")) (require 'exwm) +(csetq ;; exwm-replace t + exwm-workspace-show-all-buffers t) ;; make class name the buffer name, truncating beyond 60 characters (defun b/exwm-rename-buffer () (interactive) @@ -58,15 +60,43 @@ around if needed." 0 (1+ exwm-workspace-current-index))) +(defun b/exwm-ws-prev () + "Switch to previous EXWM workspace, wrapping around if needed." + (interactive) + (exwm-workspace-switch-create + (b/exwm-ws-prev-index))) + +(defun b/exwm-ws-next () + "Switch to next EXWM workspace, wrapping around if needed." + (interactive) + (exwm-workspace-switch-create + (b/exwm-ws-next-index))) + ;; shorten 'C-c C-q' to 'C-q' (define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key) +;; scroll up/down/left/right on the echo area +(define-key minibuffer-inactive-mode-map [mouse-4] #'b/exwm-ws-prev) +(define-key minibuffer-inactive-mode-map [mouse-5] #'b/exwm-ws-next) +(define-key minibuffer-inactive-mode-map [mouse-6] #'b/exwm-ws-prev) +(define-key minibuffer-inactive-mode-map [mouse-7] #'b/exwm-ws-next) + +(defvar b/shifted-ws-names + '(0 \) 1 \! 2 \@ 3 \# 4 \$ + 5 \% 6 \^ 7 \& 8 \* 9 \() + "Mapping of shifted numbers on my keyboard.") + (csetq exwm-workspace-number 10 exwm-input-global-keys `(([?\s-R] . exwm-reset) + ([?\s-b] . exwm-workspace-switch-to-buffer) ([?\s-\\] . exwm-workspace-switch) ([?\s-\s] . dmenu) - ([?\S-\s-\s] . (lambda (command) + ;; ([?\s-\s] . (lambda () + ;; (interactive) + ;; (start-process-shell-command + ;; "rofi" nil "rofi -show run"))) + ([?\S-\s-\s] . (lambda (command) ; doesn't work in X windows (interactive (list (read-shell-command "➜ "))) (start-process-shell-command @@ -74,6 +104,10 @@ around if needed." ([s-return] . (lambda () (interactive) (start-process "" nil "urxvt"))) + ([S-s-return] . (lambda () + (interactive) + (start-process "" nil "urxvt" + "-name" "floating"))) ([?\C-\s-\s] . counsel-linux-app) ([?\M-\s-\s] . (lambda () (interactive) @@ -87,18 +121,32 @@ around if needed." ([?\s-J] . windmove-swap-states-down) ([?\s-K] . windmove-swap-states-up) ([?\s-L] . windmove-swap-states-right) + ([?\s-N ?d] . (lambda () + (interactive) + (start-process + "" nil "dunstctl" "close"))) + ([?\s-N ?D] . (lambda () + (interactive) + (start-process + "" nil "dunstctl" "close-all"))) + ([?\s-N ?h] . (lambda () + (interactive) + (start-process + "" nil "dunstctl" "history-pop"))) + ([?\s-N return] . (lambda () + (interactive) + (start-process + "" nil "dunstctl" "context"))) ([?\M-\s-h] . shrink-window-horizontally) ([?\M-\s-l] . enlarge-window-horizontally) ([?\M-\s-k] . shrink-window) ([?\M-\s-j] . enlarge-window) - ([?\s-\[] . (lambda () - (interactive) - (exwm-workspace-switch-create - (b/exwm-ws-prev-index)))) - ([?\s-\]] . (lambda () - (interactive) - (exwm-workspace-switch-create - (b/exwm-ws-next-index)))) + ([?\s-\[] . b/exwm-ws-prev) + ([?\s-\]] . b/exwm-ws-next) + ([mode-line mouse-4] . b/exwm-ws-prev) ; up + ([mode-line mouse-5] . b/exwm-ws-next) ; down + ([mode-line mouse-6] . b/exwm-ws-prev) ; left + ([mode-line mouse-7] . b/exwm-ws-next) ; right ([?\s-{] . (lambda () (interactive) (exwm-workspace-move-window @@ -113,7 +161,16 @@ around if needed." (interactive) (exwm-workspace-switch-create ,i)))) (number-sequence 0 (1- exwm-workspace-number))) - ([?\s-t] . exwm-floating-toggle-floating) + ,@(mapcar + (lambda (i) + `(,(kbd (format "s-%s" + (plist-get b/shifted-ws-names i))) + . + (lambda () + (interactive) + (exwm-workspace-move-window ,i)))) + (number-sequence 0 (1- exwm-workspace-number))) + ([?\s-F] . exwm-floating-toggle-floating) ([?\s-f] . exwm-layout-toggle-fullscreen) ([?\s-W] . (lambda () (interactive) @@ -160,6 +217,14 @@ around if needed." (lambda () (interactive) (start-process "" nil "mpc" "next"))) + ([XF86MonBrightnessDown] . + (lambda () + (interactive) + (start-process "" nil "light" "-U" "5"))) + ([XF86MonBrightnessUp] . + (lambda () + (interactive) + (start-process "" nil "light" "-A" "5"))) ([XF86ScreenSaver] . (lambda () (interactive) @@ -199,15 +264,20 @@ around if needed." ([?\C-g] . [escape]))) (require 'exwm-manage) +(csetq + exwm-manage-configurations + '(((equal exwm-instance-name "floating") + floating t + floating-mode-line nil))) (add-hook 'exwm-manage-finish-hook (lambda () (when exwm-class-name (cond - ((member exwm-class-name '("IceCat" "Iceweasel")) + ((member exwm-class-name '("Abrowser" "IceCat" "Iceweasel")) (exwm-input-set-local-simulation-keys `(,@exwm-input-simulation-keys ([?\C-\S-d] . [?\C-d])))) - ((string= exwm-class-name "URxvt") + ((member exwm-class-name '("URxvt" "Mate-terminal")) (exwm-input-set-local-simulation-keys '(([?\C-c ?\C-c] . [?\C-c]) ([?\C-c ?\C-u] . [?\C-u])))) @@ -217,8 +287,19 @@ around if needed." ([?\C-n] . [C-down])))))))) (require 'exwm-randr) +(csetq + exwm-randr-workspace-monitor-plist + '(0 "eDP-1" + 1 "eDP-1" 2 "eDP-1" 3 "eDP-1" + 4 "eDP-1" 5 "eDP-1" 6 "eDP-1" + 7 "HDMI-1" 8 "HDMI-1" 9 "HDMI-1")) +;; (add-hook +;; 'exwm-randr-screen-change-hook +;; (lambda () +;; (start-process-shell-command +;; "xrandr" nil +;; "xrandr --output HDMI-1 --mode 1280x720 --above eDP-1 --auto"))) (exwm-randr-enable) -(csetq exwm-randr-workspace-monitor-plist '(1 "VGA-1")) (require 'exwm-systemtray) (exwm-systemtray-enable) diff --git a/.emacs.d/lisp/bandali-gnus.el b/.emacs.d/lisp/bandali-gnus.el index 671a1cb..fdb1e7a 100644 --- a/.emacs.d/lisp/bandali-gnus.el +++ b/.emacs.d/lisp/bandali-gnus.el @@ -75,8 +75,6 @@ (list ".*<\\(.*\\)\\.libreplanet\\.org>.*" "l.\\1") ;; iana (e.g. tz-announce) (list ".*<\\(.*\\)\\.iana\\.org>.*" "l.\\1") - ;; orbitalfox (e.g. gemini) - (list ".*<\\(.*\\)\\.lists\\.orbitalfox\\.eu>.*" "l.\\1") ;; haskell (list ".*<\\(.*\\)\\.haskell\\.org>.*" "l.\\1") ;; *.lists.sr.ht, omitting one dot if present @@ -85,6 +83,7 @@ ;; webmasters (from "webmasters\\(-comment\\)?@gnu\\.org" "webmasters") ;; other + ("subject" "nagios-fsf:.*" "nagios-fsf") (list ".*atreus.freelists.org" "l.atreus") (list ".*deepspec.lists.cs.princeton.edu" "l.deepspec") ;; (list ".*haskell-art.we.lurk.org" "l.haskell.art") ;d @@ -133,146 +132,22 @@ (nnimap-user "amin.bandali"))) gnus-message-archive-group "nnimap+gnu:INBOX" gnus-parameters - '(("l\\.atreus" - (to-address . "atreus@freelists.org") - (to-list . "atreus@freelists.org")) - ("l\\.deepspec" + '(("l\\.deepspec" (to-address . "deepspec@lists.cs.princeton.edu") (to-list . "deepspec@lists.cs.princeton.edu") (list-identifier . "\\[deepspec\\]")) - ("l\\.emacs-devel" - (to-address . "emacs-devel@gnu.org") - (to-list . "emacs-devel@gnu.org")) - ("l\\.help-gnu-emacs" - (to-address . "help-gnu-emacs@gnu.org") - (to-list . "help-gnu-emacs@gnu.org")) - ("l\\.info-gnu-emacs" - (to-address . "info-gnu-emacs@gnu.org") - (to-list . "info-gnu-emacs@gnu.org")) - ("l\\.emacs-orgmode" - (to-address . "emacs-orgmode@gnu.org") - (to-list . "emacs-orgmode@gnu.org") - (list-identifier . "\\[O\\]")) - ("l\\.emacs-tangents" - (to-address . "emacs-tangents@gnu.org") - (to-list . "emacs-tangents@gnu.org")) - ("l\\.emacsconf-committee" - (to-address . "emacsconf-committee@gnu.org") - (to-list . "emacsconf-committee@gnu.org")) - ("l\\.emacsconf-discuss" - (to-address . "emacsconf-discuss@gnu.org") - (to-list . "emacsconf-discuss@gnu.org")) - ("l\\.emacsconf-org" - (to-address . "emacsconf-org@gnu.org") - (to-list . "emacsconf-org@gnu.org")) - ("l\\.emacsconf-org-private" - (to-address . "emacsconf-org-private@gnu.org") - (to-list . "emacsconf-org-private@gnu.org")) - ("l\\.emacsconf-register" - (to-address . "emacsconf-register@gnu.org") - (to-list . "emacsconf-register@gnu.org")) - ("l\\.emacsconf-submit" - (to-address . "emacsconf-submit@gnu.org") - (to-list . "emacsconf-submit@gnu.org")) ("l\\.fencepost-users" (to-address . "fencepost-users@gnu.org") (to-list . "fencepost-users@gnu.org") (list-identifier . "\\[Fencepost-users\\]")) - ("l\\.gnewsense-art" - (to-address . "gnewsense-art@nongnu.org") - (to-list . "gnewsense-art@nongnu.org") - (list-identifier . "\\[gNewSense-art\\]")) - ("l\\.gnewsense-dev" - (to-address . "gnewsense-dev@nongnu.org") - (to-list . "gnewsense-dev@nongnu.org") - (list-identifier . "\\[Gnewsense-dev\\]")) - ("l\\.gnewsense-users" - (to-address . "gnewsense-users@nongnu.org") - (to-list . "gnewsense-users@nongnu.org") - (list-identifier . "\\[gNewSense-users\\]")) - ("l\\.gnunet-developers" - (to-address . "gnunet-developers@gnu.org") - (to-list . "gnunet-developers@gnu.org") - (list-identifier . "\\[GNUnet-developers\\]")) - ("l\\.help-gnunet" - (to-address . "help-gnunet@gnu.org") - (to-list . "help-gnunet@gnu.org") - (list-identifier . "\\[Help-gnunet\\]")) - ("l\\.bug-gnuzilla" - (to-address . "bug-gnuzilla@gnu.org") - (to-list . "bug-gnuzilla@gnu.org") - (list-identifier . "\\[Bug-gnuzilla\\]")) - ("l\\.gnuzilla-dev" - (to-address . "gnuzilla-dev@gnu.org") - (to-list . "gnuzilla-dev@gnu.org") - (list-identifier . "\\[Gnuzilla-dev\\]")) - ("l\\.guile-devel" - (to-address . "guile-devel@gnu.org") - (to-list . "guile-devel@gnu.org")) - ("l\\.guile-user" - (to-address . "guile-user@gnu.org") - (to-list . "guile-user@gnu.org")) - ("l\\.guix-devel" - (to-address . "guix-devel@gnu.org") - (to-list . "guix-devel@gnu.org")) - ("l\\.help-guix" - (to-address . "help-guix@gnu.org") - (to-list . "help-guix@gnu.org")) - ("l\\.info-guix" - (to-address . "info-guix@gnu.org") - (to-list . "info-guix@gnu.org")) - ("l\\.savannah-hackers-public" - (to-address . "savannah-hackers-public@gnu.org") - (to-list . "savannah-hackers-public@gnu.org")) - ("l\\.savannah-users" - (to-address . "savannah-users@gnu.org") - (to-list . "savannah-users@gnu.org")) - ("l\\.www-commits" - (to-address . "www-commits@gnu.org") - (to-list . "www-commits@gnu.org")) - ("l\\.www-discuss" - (to-address . "www-discuss@gnu.org") - (to-list . "www-discuss@gnu.org")) - ("l\\.haskell-art" - (to-address . "haskell-art@we.lurk.org") - (to-list . "haskell-art@we.lurk.org") - (list-identifier . "\\[haskell-art\\]")) ("l\\.haskell-cafe" (to-address . "haskell-cafe@haskell.org") (to-list . "haskell-cafe@haskell.org") (list-identifier . "\\[Haskell-cafe\\]")) - ("l\\.notmuch" - (to-address . "notmuch@notmuchmail.org") - (to-list . "notmuch@notmuchmail.org")) - ("l\\.parabola-dev" - (to-address . "dev@lists.parabola.nu") - (to-list . "dev@lists.parabola.nu") - (list-identifier . "\\[Dev\\]")) - ("l\\.~bandali\\.public-inbox" - (to-address . "~bandali/public-inbox@lists.sr.ht") - (to-list . "~bandali/public-inbox@lists.sr.ht")) - ("l\\.~sircmpwn\\.free-writers-club" - (to-address . "~sircmpwn/free-writers-club@lists.sr.ht") - (to-list . "~sircmpwn/free-writers-club@lists.sr.ht")) - ("l\\.~sircmpwn\\.srht-admins" - (to-address . "~sircmpwn/sr.ht-admins@lists.sr.ht") - (to-list . "~sircmpwn/sr.ht-admins@lists.sr.ht")) - ("l\\.~sircmpwn\\.srht-announce" - (to-address . "~sircmpwn/sr.ht-announce@lists.sr.ht") - (to-list . "~sircmpwn/sr.ht-announce@lists.sr.ht")) - ("l\\.~sircmpwn\\.srht-dev" - (to-address . "~sircmpwn/sr.ht-dev@lists.sr.ht") - (to-list . "~sircmpwn/sr.ht-dev@lists.sr.ht")) - ("l\\.~sircmpwn\\.srht-discuss" - (to-address . "~sircmpwn/sr.ht-discuss@lists.sr.ht") - (to-list . "~sircmpwn/sr.ht-discuss@lists.sr.ht")) - ("webmasters" - (to-address . "webmasters@gnu.org") - (to-list . "webmasters@gnu.org")) ("gnu.*" (gcc-self . t)) - ("l\\." - (subscribed . t)) + ;; ("l\\." + ;; (subscribed . t)) ("nnimap\\+uwaterloo:.*" (gcc-self . t))) ;; nnimap-record-commands t @@ -310,8 +185,6 @@ (add-hook 'gnus-group-mode-hook #'gnus-topic-mode) (add-hook 'gnus-group-mode-hook #'gnus-agent-mode)) ;; global key bindings -(global-set-key (kbd "s-m") #'gnus-plugged) -(global-set-key (kbd "s-M") #'gnus-unplugged) (global-set-key (kbd "C-c m") #'gnus-plugged) (global-set-key (kbd "C-c M") #'gnus-unplugged) @@ -388,14 +261,14 @@ (defvar b/shemshak-signature "Amin Bandali https://shemshak.org/~bandali") (defvar b/uwaterloo-signature "Amin Bandali, MMath -https://bndl.org") - (defvar b/csc-signature "Amin Bandali (https://bndl.org) +https://shemshak.org/~bandali") + (defvar b/csc-signature "Amin Bandali (https://shemshak.org/~bandali) Systems Committee Computer Science Club of the University of Waterloo") (defvar b/sfl-signature "Amin Bandali Free Software Consultant Savoir-faire Linux -GNU Jami: bandali") +jami:bandali") (csetq gnus-message-replysign t gnus-posting-styles @@ -403,8 +276,6 @@ GNU Jami: bandali") (address "bandali@gnu.org")) ("nnimap\\+gnu:l\\..*" (signature nil)) - ("nnimap\\+gnu:.*" - (organization "GNU")) ((header "subject" "ThankCRM") (to "webmasters-comment@gnu.org") (body "") @@ -429,14 +300,15 @@ GNU Jami: bandali") (address "amin.bandali@savoirfairelinux.com") (signature b/sfl-signature) (gcc "nnimap+sfl:Sent") - (eval (setq-local b/sfl-p t)))))) + ;; (eval (setq-local b/sfl-p t)) + )))) ;; hooks -(with-eval-after-load 'gnus - (add-hook 'gnus-message-setup-hook - (lambda () - (unless (or (mml-secure-is-encrypted-p) - b/sfl-p) - (mml-secure-message-sign))))) +;; (with-eval-after-load 'gnus +;; (add-hook 'gnus-message-setup-hook +;; (lambda () +;; (unless (or (mml-secure-is-encrypted-p) +;; b/sfl-p) +;; (mml-secure-message-sign))))) (with-eval-after-load 'gnus-topic (csetq gnus-topic-line-format "%i[ %A: %(%{%n%}%) ]%v\n")) diff --git a/.emacs.d/lisp/page-break-lines b/.emacs.d/lisp/page-break-lines deleted file mode 160000 index f8c4cd7..0000000 --- a/.emacs.d/lisp/page-break-lines +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f8c4cd7fc67638ae4113551dcffdf87fcd252d9b diff --git a/.emacs.d/lisp/refinery-theme b/.emacs.d/lisp/refinery-theme deleted file mode 160000 index 761ecca..0000000 --- a/.emacs.d/lisp/refinery-theme +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 761ecca31d91cf55addab93d44aae1066ea77b02 diff --git a/.gitmodules b/.gitmodules index b8a9ee5..fb61c97 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,15 +7,9 @@ [submodule "hl-todo"] path = .emacs.d/lisp/hl-todo url = https://github.com/tarsius/hl-todo.git -[submodule "page-break-lines"] - path = .emacs.d/lisp/page-break-lines - url = https://github.com/purcell/page-break-lines.git [submodule "scpaste"] path = .emacs.d/lisp/scpaste url = https://git.sr.ht/~technomancy/scpaste -[submodule "refinery-theme"] - path = .emacs.d/lisp/refinery-theme - url = https://git.emacsconf.org/bandali/refinery-theme [submodule "xelb"] path = .emacs.d/lisp/xelb url = https://github.com/ch11ng/xelb diff --git a/.gnupg/gpg-agent.conf b/.gnupg/gpg-agent.conf index 5263551..ac7ad2c 100644 --- a/.gnupg/gpg-agent.conf +++ b/.gnupg/gpg-agent.conf @@ -1,9 +1,10 @@ -default-cache-ttl 43200 -max-cache-ttl 86400 +default-cache-ttl 10000000 +max-cache-ttl 10000000 default-cache-ttl-ssh 43200 max-cache-ttl-ssh 86400 # pinentry-program /home/bandali/.guix-profile/bin/pinentry-emacs -# allow-emacs-pinentry -# allow-loopback-pinentry +# pinentry-program /usr/bin/pinentry-gtk-2 +allow-emacs-pinentry +allow-loopback-pinentry diff --git a/.gtkrc-2.0 b/.gtkrc-2.0 index 09aee9e..4568345 100644 --- a/.gtkrc-2.0 +++ b/.gtkrc-2.0 @@ -1,6 +1,7 @@ -gtk-theme-name="Xfce" +gtk-theme-name="Trisquel" +gtk-icon-theme-name="trisquel" # gtk-icon-theme-name="elementary Xfce darker" -gtk-font-name="Roboto 10" +gtk-font-name="Roboto 9" # gtk-font-name="Source Code Variable 10" gtk-menu-images=0 # gtk-key-theme-name = "Emacs" diff --git a/.profile b/.profile index 5e70783..8ef91c9 100644 --- a/.profile +++ b/.profile @@ -42,6 +42,10 @@ if [ -x "$(command -v go)" ]; then export PATH="$GOPATH/bin:$PATH" fi +export _JAVA_AWT_WM_NONREPARENTING=1 +export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true' +#export MOZ_USE_XINPUT2=1 # precise scrolling in firefox + # if running bash if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists diff --git a/.signature b/.signature index c349ea0..af31032 100644 --- a/.signature +++ b/.signature @@ -1,3 +1,3 @@ -https://bndl.org -Free Software activist | GNU maintainer & webmaster +https://shemshak.org/~bandali +Free Software activist | GNU maintainer and volunteer GPG: BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103 diff --git a/.xinitrc b/.xinitrc index c7083e3..26dd0d0 100644 --- a/.xinitrc +++ b/.xinitrc @@ -1,12 +1,22 @@ [ -f ~/.Xresources ] && xrdb -merge ~/.Xresources +export VISUAL=emacsclient +export EDITOR="$VISUAL" + if [ -x "$(command -v xinput)" ]; then - xinput --set-prop "TPPS/2 IBM TrackPoint" 'libinput Accel Speed' -0.4 + xinput set-prop 'TPPS/2 IBM TrackPoint' 'libinput Accel Speed' -0.4 + xinput set-prop 'DLL07BE:01 06CB:7A13 Touchpad' 'libinput Natural Scrolling Enabled' 1 + xinput set-prop 'DLL07BE:01 06CB:7A13 Touchpad' 'libinput Click Method Enabled' 0 1 fi +# setxkbmap \ +# -layout us,ir \ +# -option ctrl:nocaps \ +# -option grp:shifts_toggle + setxkbmap \ -layout us,ir \ - -option ctrl:nocaps \ + -option ctrl:swap_rwin_rctl \ -option grp:shifts_toggle xmodmap -e "keysym Menu = Super_R" @@ -19,4 +29,4 @@ xset b off [ -x "$(command -v nm-applet)" ] && nm-applet & [ -x "$(command -v picom)" ] && picom & [ -x "$(command -v dunst)" ] && dunst & -EDITOR=nano exec emacs -ib 0 +exec dbus-launch --exit-with-session -- emacs -ib 0