]> git.armaanb.net Git - config.org.git/blobdiff - config.org
Add calfw config
[config.org.git] / config.org
index 612c02050b133f7f626a7d64a3129db685b1b3f9..50268b39cd43b3f9769d1f453006d4c88b44850d 100644 (file)
@@ -357,6 +357,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-contexts
           `( ,(make-mu4e-context
                :name "school"
@@ -395,8 +396,9 @@ Contexts are a not very well known feature of mu4e that makes it super easy to m
                          :key ?b))
     :hook ((mu4e-compose-mode . flyspell-mode)
            (mu4e-compose-mode . auto-fill-mode)
-           (mu4e-view-mode-hook . turn-on-visual-line-mode)))
-
+           (mu4e-view-mode-hook . turn-on-visual-line-mode)
+           (message-send-hook . (lambda () (unless (yes-or-no-p "Ya sure 'bout that?")
+                                             (signal 'quit nil))))))
 #+end_src
 Discourage Gnus from displaying HTML emails
 #+begin_src emacs-lisp
@@ -443,12 +445,8 @@ Some EWW enhancements.
   (global-set-key (kbd "C-c w") 'eww)
 #+end_src
 ** IRC
+Circe is a really nice IRC client, that claims to be above RCIRC and below ERC in terms of features. ERC felt a bit messy and finicky to me, and Circe has all the features that I need. This setup gets the password for my bouncer (Pounce) instances via my =~/.authinfo.gpg= file.
 #+begin_src emacs-lisp
-  (use-package circe
-    :config
-    (enable-lui-track)
-    (enable-circe-color-nicks))
-
   (defun fetch-password (&rest params)
     (require 'auth-source)
     (let ((match (car (apply 'auth-source-search params))))
@@ -459,18 +457,79 @@ Some EWW enhancements.
               secret))
         (error "Password not found for %S" params))))
 
-  (setq circe-network-options
-        '(("pounce"
-           :host "irc.armaanb.net"
-           :nick "emacs"
-           :use-tls t
-           :port "6697"
-           :pass (lambda (fetch-password
-                          :login "emacs"
-                          :machine "irc.armaanb.net"
-                          :port 6697))))
+  (use-package circe
+    :config
+    (enable-lui-track)
+    (enable-circe-color-nicks)
+    (circe "libera")
+    (circe "oftc")
+    (circe "tilde")
+    (setq circe-networks '(("libera"
+                            :host "irc.armaanb.net"
+                            :nick "emacs"
+                            :user "emacs"
+                            :use-tls t
+                            :port "6698"
+                            :pass (lambda (null) (fetch-password
+                                                  :login "emacs"
+                                                  :machine "irc.armaanb.net"
+                                                  :port 6698)))
+                           ("oftc"
+                            :host "irc.armaanb.net"
+                            :nick "emacs"
+                            :user "emacs"
+                            :use-tls t
+                            :port "6699"
+                            :pass (lambda (null) (fetch-password
+                                                  :login "emacs"
+                                                  :machine "irc.armaanb.net"
+                                                  :port 6699)))
+                           ("tilde"
+                            :host "irc.armaanb.net"
+                            :nick "emacs"
+                            :user "emacs"
+                            :use-tls t
+                            :port "6696"
+                            :pass (lambda (null) (fetch-password
+                                                  :login "emacs"
+                                                  :machine "irc.armaanb.net"
+                                                  :port 6696)))
+                           ))
+    :custom (circe-default-part-message "goodbye!")
+    :bind (:map circe-mode-map ("C-c C-r" . circe-reconnect-all)))
+#+end_src
+** Calendar
+#+begin_src emacs-lisp
+  (defun sync-calendar ()
+    "Sync calendars with vdirsyncer"
+    (interactive)
+    (shell-command "vdirsyncer -vcritical sync"))
+
+  (use-package calfw
+    :bind (:map cfw:calendar-mode-map ("C-S-u" . sync-calendar)))
+  (use-package calfw-ical)
+  (use-package calfw-org)
 
-        (circe "pounce")
+  (defun acheam-calendar ()
+    "Open calendars"
+    (interactive)
+    (cfw:open-calendar-buffer
+     :contents-sources (list
+                        (cfw:org-create-source "Green")
+                        (cfw:ical-create-source
+                         "Personal"
+                         "~/.local/share/vdirsyncer/mailbox/Y2FsOi8vMC8zMQ.ics"
+                         "Gray")
+                        (cfw:ical-create-source
+                         "Personal"
+                         "~/.local/share/vdirsyncer/mailbox/Y2FsOi8vMC8zMQ.ics"
+                         "Red")
+                        (cfw:ical-create-source
+                         "School"
+                         "~/.local/share/vdirsyncer/school/abhojwani22@nobles.edu.ics"
+                         "Cyan"))))
+
+  (global-set-key (kbd "C-c c") 'acheam-calendar)
 #+end_src
 * Emacs IDE
 ** Code cleanup
@@ -713,6 +772,14 @@ No more clogging up init.el.
               "0c" '0x0-upload-kill-ring
               "0p" '0x0-upload-popup))
 #+end_src
+** Automatically clean buffers
+#+begin_src emacs-lisp
+  ;; Don't kill Circe buffers
+  (add-to-list 'clean-buffer-list-kill-never-regexps (lambda (buffer-name)
+                                                       (with-current-buffer buffer-name
+                                                         (derived-mode-p 'lui-mode))))
+  (midnight-mode)
+#+end_src
 * Tangles
 ** Spectrwm
 *** General settings
@@ -773,14 +840,16 @@ No more clogging up init.el.
 **** Programs
 #+begin_src conf :tangle ~/.spectrwm.conf
   program[email] = emacsclient -c --eval "(mu4e)"
-  program[irc] = emacsclient -c --eval '(switch-to-buffer "irc.armaanb.net:6697")'
+  program[irc] = emacsclient -c --eval '(switch-to-buffer "irc.armaanb.net:6698")'
+  program[rss] = emacsclient -c --eval '(elfeed)'
   program[emacs] = emacsclient -c
   program[firefox] = firefox
   program[calc] = st -e because -l
 
   bind[email] = MOD+Control+1
   bind[irc] = MOD+Control+2
-  bind[firefox] = MOD+Control+3
+  bind[rss] = MOD+Control+3
+  bind[firefox] = MOD+Control+4
   bind[calc] = MOD+Control+5
   bind[emacs] = MOD+Control+Return
 #+end_src
@@ -915,12 +984,11 @@ No more clogging up init.el.
   alias grep='grep -in --color=auto'
   alias mkdir='mkdir -pv'
   alias lanex='java -jar ~/.local/share/lxc/lanxchange.jar'
-  alias vim=$EDITOR
-  alias emacs=$EDITOR
+  emacs() { $EDITOR "$@" & }
+  alias vim="emacs"
 #+end_src
 **** System management
 #+begin_src shell :tangle ~/.config/ash/ashrc
-  alias pkill='pkill -i'
   alias crontab='crontab-argh'
   alias sudo='doas'
   alias pasu='git -C ~/.password-store push'
@@ -1238,6 +1306,8 @@ Modus operandi theme.
   set -g status off
   set -g mouse on
   set-window-option -g mode-keys vi
+  bind-key -T copy-mode-vi 'v' send -X begin-selection
+  bind -T copy-mode-vi y send-keys -X copy-pipe-and-cancel 'xclip -in -selection clipboard'
 #+end_src
 ** GPG
 *** Config