X-Git-Url: https://git.armaanb.net/?a=blobdiff_plain;f=config.org;h=bcb26095f160968aa10b54df0f2fedc0607ebb73;hb=5abc7f47baa9635ac452277f61cc74e52c9318a8;hp=a6b75b32a28061ba237b8a7840c13fa23fb702bd;hpb=a30adcbc6c393f630765543f084e30598e0cbb1d;p=config.org.git diff --git a/config.org b/config.org index a6b75b3..bcb2609 100644 --- a/config.org +++ b/config.org @@ -6,7 +6,7 @@ * Welcome Welcome to my system configuration! This file contains my Emacs configuration, but also my config files for many of the other programs on my system! ** Compatability -I am currently using Emacs 28 with native compilation, so some settings and packages may not be available for older versions of Emacs. This is a purely personal configuration, so while I can guarantee that it works on my setup, it might not work for you. +I am currently using Emacs 27.2 on Linux, so some settings and packages may not be available for older versions of Emacs. This is a purely personal configuration, so while I can guarantee that it works on my setup, it might not work for you. ** Choices I chose to create a powerful, yet not overly heavy Emacs configuration. Things like a fancy modeline, icons, or LSP mode do not increase my productivity, and create visual clutter, and thus have been excluded. @@ -42,12 +42,14 @@ straight.el is really nice for managing package, and it integrates nicely with u ** Theme Use the Modus Operandi theme by Protesilaos Stavrou. Its the best theme for Emacs by far, because how clear and readable it is. It is highly customizable, but I just set a few options here. #+begin_src emacs-lisp - (setq modus-themes-slanted-constructs t - modus-themes-bold-constructs t - modus-themes-mode-line '3d - modus-themes-scale-headings t - modus-themes-diffs 'desaturated) - (load-theme 'modus-vivendi t) + (use-package modus-themes + :custom + (modus-themes-slanted-constructs t) + (modus-themes-bold-constructs t) + (modus-themes-mode-line '3d) + (modus-themes-scale-headings t) + (modus-themes-diffs 'desaturated) + :config (load-theme 'modus-vivendi t)) #+end_src ** Typography *** Font @@ -111,14 +113,16 @@ Show current column and file size. (use-package minions :config (minions-mode)) #+end_src -** Ruler -Show a ruler at a certain number of chars depending on mode. +** Whitespace mode +Highlight whitespace and other bad text practices. #+begin_src emacs-lisp - (setq display-fill-column-indicator-column 80) - (global-display-fill-column-indicator-mode) + (use-package whitespace + :custom (whitespace-style '(face lines-tail))) + (dolist (hook '(prog-mode-hook)) + (add-hook hook (lambda () (whitespace-mode 1)))) #+end_src ** Highlight todo items in comments -#+begin_src emacs-lisp ++begin_src emacs-lisp (use-package hl-todo :straight (hl-todo :type git :host github :repo "tarsius/hl-todo") :config (global-hl-todo-mode 1)) @@ -197,7 +201,11 @@ Makes commenting super easy ** Undo redo Fix the oopsies! #+begin_src emacs-lisp - (evil-set-undo-system 'undo-redo) + (use-package undo-fu + :config (evil-set-undo-system 'undo-fu)) + + (use-package undo-fu-session + :config (global-undo-fu-session-mode)) #+end_src ** Number incrementing Add back C-a/C-x bindings. @@ -230,7 +238,7 @@ Add back C-a/C-x bindings. :custom (org-ellipsis " ▾") (org-agenda-start-with-log-mode t) - (org-agenda-files (quote ("~/Org/tasks.org" "~/Org/break.org"))) + (org-agenda-files (quote ("~/org/tasks.org"))) (org-log-done 'time) (org-log-into-drawer t) (org-src-tab-acts-natively t) @@ -256,14 +264,12 @@ Define templates for lots of common structure elements. Mostly just used within ("ash" . "src shell :tangle ~/.config/ash/ashrc") ("pi" . "src conf :tangle ~/.config/picom/picom.conf") ("git" . "src conf :tangle ~/.gitconfig") - ("du" . "src conf :tangle ~/.config/dunst/dunstrc") ("za" . "src conf :tangle ~/.config/zathura/zathurarc") - ("ff1" . "src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userChrome.css") - ("ff2" . "src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userContent.css") ("xr" . "src conf :tangle ~/.Xresources") ("tm" . "src conf :tangle ~/.tmux.conf") ("gp" . "src conf :tangle ~/.gnupg/gpg.conf") - ("ag" . "src conf :tangle ~/.gnupg/gpg-agent.conf"))) + ("ag" . "src conf :tangle ~/.gnupg/gpg-agent.conf") + ("xm" . "src conf :tangle ~/.config/xmodmap"))) (add-to-list 'org-structure-template-alist addition))) #+end_src * Autocompletion @@ -335,7 +341,7 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m mu4e-confirm-quit nil mu4e-view-use-gnus t mail-user-agent 'mu4e-user-agent - mail-context-policy 'pick-first + mu4e-context-policy 'pick-first mu4e-contexts `( ,(make-mu4e-context :name "school" @@ -554,8 +560,8 @@ I never use this, but apparently its very powerful. Another item on my todo list :bind-keymap ("C-c p" . projectile-command-map) :init - (when (file-directory-p "~/Code") - (setq projectile-project-search-path '("~/Code"))) + (when (file-directory-p "~/src") + (setq projectile-project-search-path '("~/src"))) (setq projectile-switch-project-action #'projectile-dired)) (use-package counsel-projectile @@ -674,7 +680,7 @@ Abbreviate things! I just use this for things like my email address and copyrigh ** scdoc mode Get it for yourself at https://git.armaanb.net/scdoc #+begin_src emacs-lisp - (add-to-list 'load-path "~/Code/scdoc-mode") + (add-to-list 'load-path "~/src/scdoc-mode") (autoload 'scdoc-mode "scdoc-mode" "Major mode for editing scdoc files" t) (add-to-list 'auto-mode-alist '("\\.scd\\'" . scdoc-mode)) #+end_src @@ -759,7 +765,7 @@ Spectrwm is a really awesome window manager! Would highly recommend. workspace_limit = 5 warp_pointer = 1 modkey = Mod4 - autorun = ws[1]:/home/armaa/Code/scripts/autostart + autorun = ws[1]:/home/armaa/src/bin/autostart #+end_src *** Bar Disable the bar by default (it can still be brought back up with MOD+b). The font just needs to be set to something that you have installed, otherwise spectrwm won't launch. @@ -772,32 +778,26 @@ I'm not a huge fan of how spectrwm handles keybindings, probably my biggest grip **** WM actions #+begin_src conf :tangle ~/.spectrwm.conf program[term] = st -e tmux - program[screenshot_all] = flameshot gui - program[notif] = /home/armaa/Code/scripts/setter status - program[pass] = /home/armaa/Code/scripts/passmenu + program[notif] = /home/armaa/src/bin/setter status + program[pass] = /home/armaa/src/bin/passmenu + program[lock] = slock bind[notif] = MOD+n bind[pass] = MOD+Shift+p #+end_src **** Media keys #+begin_src conf :tangle ~/.spectrwm.conf - program[paup] = /home/armaa/Code/scripts/setter audio +5 - program[padown] = /home/armaa/Code/scripts/setter audio -5 - program[pamute] = /home/armaa/Code/scripts/setter audio - program[brigup] = /home/armaa/Code/scripts/setter brightness +10% - program[brigdown] = /home/armaa/Code/scripts/setter brightness 10%- - program[next] = playerctl next - program[prev] = playerctl previous - program[pause] = playerctl play-pause + program[paup] = /home/armaa/src/bin/setter audio +5 + program[padown] = /home/armaa/src/bin/setter audio -5 + program[pamute] = /home/armaa/src/bin/setter audio + program[brigup] = /home/armaa/src/bin/setter brightness +10% + program[brigdown] = /home/armaa/src/bin/setter brightness 10%- bind[padown] = XF86AudioLowerVolume bind[paup] = XF86AudioRaiseVolume bind[pamute] = XF86AudioMute bind[brigdown] = XF86MonBrightnessDown bind[brigup] = XF86MonBrightnessUp - bind[pause] = XF86AudioPlay - bind[next] = XF86AudioNext - bind[prev] = XF86AudioPrev #+end_src **** HJKL #+begin_src conf :tangle ~/.spectrwm.conf @@ -818,7 +818,6 @@ I'm not a huge fan of how spectrwm handles keybindings, probably my biggest grip program[rss] = emacsclient -ce '(elfeed)' program[calendar] = emacsclient -ce '(acheam-calendar)' program[calc] = emacsclient -ce '(progn (calc) (windmove-up) (delete-window))' - program[firefox] = firefox program[emacs] = emacsclient -c bind[email] = MOD+Control+1 @@ -826,7 +825,6 @@ I'm not a huge fan of how spectrwm handles keybindings, probably my biggest grip bind[rss] = MOD+Control+3 bind[calendar] = MOD+Control+4 bind[calc] = MOD+Control+5 - bind[firefox] = MOD+Control+0 bind[emacs] = MOD+Control+Return #+end_src *** Quirks @@ -834,6 +832,7 @@ Float some specific programs by default. #+begin_src conf :tangle ~/.spectrwm.conf quirk[Castle Menu] = FLOAT quirk[momen] = FLOAT + quirk[pinentry-fltk] = FLOAT #+end_src ** Ash *** Options @@ -883,30 +882,39 @@ Use the vi editing mode. I still haven't found a good way to show visual feedbac export GPG_TTY="$(tty)" export MANPAGER='nvim +Man!' export PAGER='less' - export GTK_USE_PORTAL=1 + export CDPATH=:~ export PATH="/home/armaa/.local/bin:$PATH" # prioritize .local/bin - export PATH="/home/armaa/Code/scripts:$PATH" # prioritize my scripts - export PATH="/home/armaa/Code/scripts/bin:$PATH" # prioritize my bins - export PATH="$PATH:/home/armaa/.cargo/bin" - export PATH="$PATH:/home/armaa/.local/share/gem/ruby/2.7.0/bin" + export PATH="/home/armaa/src/bin:$PATH" # prioritize my bin + export PATH="//home/armaa/src/bin/bin:$PATH" # prioritize my bins export PATH="$PATH:/usr/sbin" - export PATH="$PATH:/opt/FreeTube/freetube" export LC_ALL="en_US.UTF-8" export LC_CTYPE="en_US.UTF-8" export LANGUAGE="en_US.UTF-8" + export TZ="America/New_York" - export CDPATH=:~ + export KISS_PATH="" + export KISS_PATH="$KISS_PATH:$HOME/repos/personal" + export KISS_PATH="$KISS_PATH:$HOME/repos/bin/bin" + export KISS_PATH="$KISS_PATH:$HOME/repos/main/core" + export KISS_PATH="$KISS_PATH:$HOME/repos/main/extra" + export KISS_PATH="$KISS_PATH:$HOME/repos/main/xorg" + export KISS_PATH="$KISS_PATH:$HOME/repos/community/community" + export KISS_PATH="$KISS_PATH:$HOME/repos/mid/ports" - export KISS_PATH="/home/armaa/Virtual/kiss/home/armaa/kiss-repo" - export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/core" - export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/extra" - export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/xorg" - export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-main/testing" - export KISS_PATH="$KISS_PATH:/home/armaa/Clone/repo-community/community" + export CFLAGS="-O3 -pipe -march=native" + export CXXFLAGS="$CFLAGS" + export MAKEFLAGS="-j$(nproc)" export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig" + + export XDG_DESKTOP_DIR="/dev/null" + export XDG_DOCUMENTS_DIR="$HOME/documents" + export XDG_DOWNLOAD_DIR="$HOME/downloads" + export XDG_MUSIC_DIR="$HOME/music" + export XDG_PICTURES_DIR="$HOME/pictures" + export XDG_VIDEOS_DIR="$HOME/videos" #+end_src *** Aliases **** SSH @@ -1057,62 +1065,10 @@ This file is used for any GNU Readline programs. I use Emacs editing mode mostly gpgsign = true verbose = true #+end_src -** Dunst -Lightweight notification daemon. Eventually I'd like to replace this with something dbus-less. -*** General -#+begin_src conf :tangle ~/.config/dunst/dunstrc - [global] - font = "JetBrains Mono Medium Nerd Font 11" - allow_markup = yes - format = "%s\n%b" - sort = no - indicate_hidden = yes - alignment = center - bounce_freq = 0 - show_age_threshold = 60 - word_wrap = yes - ignore_newline = no - geometry = "400x5-10+10" - transparency = 0 - idle_threshold = 120 - monitor = 0 - sticky_history = yes - line_height = 0 - separator_height = 1 - padding = 8 - horizontal_padding = 8 - max_icon_size = 32 - separator_color = "#ffffff" - startup_notification = false -#+end_src -*** Modes -#+begin_src conf :tangle ~/.config/dunst/dunstrc - [frame] - width = 1 - color = "#ffffff" - - [shortcuts] - close = mod4+c - close_all = mod4+shift+c - history = mod4+ctrl+c - - [urgency_low] - background = "#222222" - foreground = "#ffffff" - highlight = "#ffffff" - timeout = 5 - - [urgency_normal] - background = "#222222" - foreground = "#ffffff" - highlight = "#ffffff" - timeout = 15 - - [urgency_critical] - background = "#222222" - foreground = "#a60000" - highlight = "#ffffff" - timeout = 0 +*** Tag +#+begin_src conf :tangle ~/.gitconfig + [tag] + gpgsign = true #+end_src ** Zathura The best document reader! @@ -1138,57 +1094,6 @@ The best document reader! set recolor-darkcolor "#ffffff" # fg set recolor "true" #+end_src -** Firefox -Just some basic Firefox CSS. Will probably have to rewrite for the Proton redesign. -*** Swap tab and URL bars -#+begin_src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userChrome.css - #nav-bar { - -moz-box-ordinal-group: 1 !important; - } - - #PersonalToolbar { - -moz-box-ordinal-group: 2 !important; - } - - #titlebar { - -moz-box-ordinal-group: 3 !important; - } -#+end_src -*** Hide URL bar when not focused. -#+begin_src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userChrome.css - #navigator-toolbox:not(:focus-within):not(:hover) { - margin-top: -30px; - } - - #navigator-toolbox { - transition: 0.1s margin-top ease-out; - } -#+end_src -*** Black screen by default -userChrome.css: -#+begin_src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userChrome.css - #main-window, - #browser, - #browser vbox#appcontent tabbrowser, - #content, - #tabbrowser-tabpanels, - #tabbrowser-tabbox, - browser[type="content-primary"], - browser[type="content"] > html, - .browserContainer { - background: black !important; - color: #fff !important; - } -#+end_src - -userContent.css: -#+begin_src css :tangle ~/.mozilla/firefox/armaan-release/chrome/userContent.css - @-moz-document url("about:home"), url("about:blank"), url("about:newtab") { - body { - background: black !important; - } - } -#+end_src ** Xresources Modus operandi theme. No program I use checks for anything beyond foreground and background, but hey, it can't hurt to have all the colors in there. #+begin_src conf :tangle ~/.Xresources @@ -1247,8 +1152,27 @@ I use tmux in order to keep my st build light. Still learning how it works. #+end_src *** Agent #+begin_src conf :tangle ~/.gnupg/gpg-agent.conf - pinentry-program /sbin/pinentry-gnome3 + pinentry-program /sbin/pinentry max-cache-ttl 600 default-cache-ttl 600 allow-emacs-pinentry #+end_src +** Xmodmap +#+begin_src conf (if (eq system-name "frost.armaanb.net") ":tangle ~/.config/xmodmap") + ! Unmap left super + clear mod4 + + ! Turn right alt into super + remove mod1 = Alt_R + add mod4 = Alt_R + + ! Swap caps and control + remove Lock = Caps_Lock + remove Control = Control_L + remove Lock = Control_L + remove Control = Caps_Lock + keysym Control_L = Caps_Lock + keysym Caps_Lock = Control_L + add Lock = Caps_Lock + add Control = Control_L +#+end_src