90 Commits

Author SHA1 Message Date
Michael Chalupiak
a6c2f0332c Merge branch 'master' into arch-laptop 2026-01-09 00:49:56 -05:00
Michael Chalupiak
23146bf866 Merge branch 'master' into arch-laptop 2026-01-07 15:17:10 -05:00
Michael Chalupiak
87a948d516 merge master 2025-12-19 14:26:13 -05:00
Michael Chalupiak
70ff268d4a Merge branch 'master' into arch-laptop 2025-11-14 12:57:33 -05:00
Michael Chalupiak
2b86bb9142 merge 2025-11-14 00:14:06 -05:00
Michael Chalupiak
792c4d50ce Merge branch 'master' into arch-laptop 2025-09-24 18:23:18 -04:00
Michael Chalupiak
30efa5fd97 Merge branch 'master' into arch-laptop
merging
2025-09-18 11:29:27 -04:00
Michael Chalupiak
f62beda403 gitignore laptop 2025-09-18 11:28:03 -04:00
Michael Chalupiak
1f48c690a5 new nvim 2025-08-30 17:47:45 -04:00
Michael Chalupiak
34f693c045 merge 2025-08-17 11:35:14 -04:00
Michael Chalupiak
a62d036c10 bash_profile change 2025-08-17 11:31:29 -04:00
Michael Chalupiak
0e68d3dca3 merge' 2025-07-09 23:41:36 -04:00
Michael Chalupiak
5adca4c8e2 Merge branch 'master' into arch-laptop 2025-07-02 22:56:20 -04:00
Michael Chalupiak
3493a2287b Merge branch 'master' into arch-laptop 2025-05-25 15:15:19 -04:00
Michael Chalupiak
3dd9b60f5f merge error in bashrc 2025-04-04 11:46:29 -04:00
Michael Chalupiak
2a40065939 Merge branch 'master' into arch-laptop 2025-04-04 11:42:26 -04:00
Michael Chalupiak
ec424125e1 merge 2025-04-03 15:20:49 -04:00
Michael Chalupiak
723895373e merge 2025-04-03 11:33:46 -04:00
Michael Chalupiak
f111effce5 merge 2025-03-29 21:45:21 -04:00
Michael Chalupiak
e9da1721d7 Merge branch 'master' into arch-laptop 2025-03-29 21:41:55 -04:00
Michael Chalupiak
8e838e1601 projects 2025-03-25 11:00:43 -04:00
Michael Chalupiak
119cb07749 rose-pine 2025-03-25 10:58:54 -04:00
Michael Chalupiak
e31ff128fa Merge branch 'master' into arch-laptop 2025-03-23 14:50:07 -04:00
Michael Chalupiak
b723ebb5b5 Merge branch 'master' into arch-laptop 2025-03-23 14:48:59 -04:00
Michael Chalupiak
9e62854ba9 Merge branch 'master' into arch-laptop 2025-03-22 20:11:23 -04:00
Michael Chalupiak
b1a2d98e0a Merge branch 'master' into arch-laptop 2025-03-22 18:28:21 -04:00
Michael Chalupiak
08b61f677b waybar conf 2025-03-22 18:26:09 -04:00
Michael Chalupiak
2b8d21d824 Merge branch 'master' into arch-laptop 2025-03-20 21:46:48 -04:00
Michael Chalupiak
3fd319c2e2 swayidle 2025-03-20 21:46:33 -04:00
Michael Chalupiak
862619b1cc river scrolling 2025-03-20 11:10:00 -04:00
Michael Chalupiak
ba422a0648 kak updates 2025-03-20 10:06:56 -04:00
Michael Chalupiak
00b1735bed Merge branch 'master' into arch-laptop 2025-03-20 10:06:34 -04:00
Michael Chalupiak
c25d84ad56 prolog 2025-03-20 00:05:33 -04:00
Michael Chalupiak
5a261f9805 prolog kakoune 2025-03-20 00:03:05 -04:00
Michael Chalupiak
2574165d59 kakoune merge fiz 2025-03-19 23:51:08 -04:00
Michael Chalupiak
673c819a72 Merge branch 'master' into arch-laptop 2025-03-19 23:46:36 -04:00
Michael Chalupiak
3ea525b653 font/terminal update 2025-03-18 16:25:28 -04:00
Michael Chalupiak
bc435f0f38 Merge branch 'master' into arch-laptop 2025-03-13 11:23:09 -04:00
Michael Chalupiak
7c6da42aa4 swayidle 2025-03-13 11:16:15 -04:00
Michael Chalupiak
fd50ca3299 Merge branch 'master' into arch-laptop 2025-02-10 08:02:44 -05:00
Michael Chalupiak
6878875278 ambiance 2025-02-07 15:53:25 -05:00
Michael Chalupiak
d9e58990e3 ambiance 2025-02-07 15:52:41 -05:00
Michael Chalupiak
65b0516562 remove falkon profiles 2025-02-07 15:50:46 -05:00
Michael Chalupiak
5a4a9b6acf ghostty 2025-02-03 08:01:47 -05:00
Michael Chalupiak
3c9b31f283 swaybar 2025-02-02 00:18:32 -05:00
Michael Chalupiak
56fbe76cf7 swaybar 2025-02-02 00:17:05 -05:00
Michael Chalupiak
5db50b1e7f terminus 2025-02-01 16:37:53 -05:00
Michael Chalupiak
8c554fcdef merge 2025-02-01 16:33:44 -05:00
Michael Chalupiak
c8259bc433 Merge branch 'master' into arch-laptop 2025-02-01 16:08:47 -05:00
Michael Chalupiak
3d677fedb7 Merge branch 'master' into arch-laptop 2025-02-01 15:52:51 -05:00
Michael Chalupiak
f404871c42 Merge branch 'master' into arch-laptop 2025-02-01 15:51:11 -05:00
Michael Chalupiak
24283c765b Merge branch 'master' into arch-laptop 2025-02-01 15:43:36 -05:00
Michael Chalupiak
95292ac3b6 95 2025-02-01 15:08:40 -05:00
Michael Chalupiak
bc6ccb338b sway touchpad 2025-01-22 01:01:50 -05:00
Michael Chalupiak
68e1f978ca laptop sway 2025-01-22 00:58:36 -05:00
Michael Chalupiak
0771ce0401 Merge branch 'master' into arch-laptop 2025-01-22 00:55:22 -05:00
Michael Chalupiak
e0c325b5d8 merge 2025-01-22 00:53:01 -05:00
Michael Chalupiak
b825615a42 sway laptop config 2025-01-22 00:35:09 -05:00
Michael Chalupiak
50f45725af Merge branch 'master' into arch-laptop 2025-01-05 21:46:18 -05:00
Michael Chalupiak
377c7aec81 Merge branch 'master' into arch-laptop 2024-12-24 13:10:40 -05:00
Michael Chalupiak
96e2a10a0a Merge branch 'master' into arch-laptop 2024-12-24 12:48:38 -05:00
Michael Chalupiak
4455388a7c Merge branch 'master' into arch-laptop 2024-12-15 13:24:52 -05:00
Michael Chalupiak
992788786d Merge branch 'master' into arch-laptop 2024-12-15 13:18:37 -05:00
Michael Chalupiak
b048c4fdfa Merge branch 'master' into arch-laptop 2024-12-15 13:17:39 -05:00
Michael Chalupiak
c42b27a81a Merge branch 'master' into arch-laptop 2024-12-03 15:41:06 -05:00
Michael Chalupiak
6c59d1c35c merge 2024-12-03 15:25:04 -05:00
Michael Chalupiak
9cc5ae5c86 Merge branch 'master' into arch-laptop 2024-11-12 19:28:57 -05:00
Michael Chalupiak
9374265ad8 Merge branch 'master' into arch-laptop 2024-11-07 14:00:10 -05:00
Michael Chalupiak
77fd49992e rm theme 2024-11-07 13:56:19 -05:00
Michael Chalupiak
1103a1ca1b Merge branch 'master' into arch-laptop 2024-11-07 13:49:08 -05:00
Michael Chalupiak
b3b41ada13 nvim 2024-11-06 21:18:40 -05:00
Michael Chalupiak
da611595f6 polybar 2024-11-06 21:16:41 -05:00
Michael Chalupiak
e632050dfe Merge branch 'master' into arch-laptop 2024-11-06 21:14:43 -05:00
Michael Chalupiak
ac7bf94094 discard 2024-11-06 21:05:58 -05:00
Michael Chalupiak
0117e4085f Merge branch 'master' into arch-laptop 2024-11-06 21:04:19 -05:00
Michael Chalupiak
f9d5ac03b8 small tweaks 2024-11-05 17:53:05 -05:00
Michael Chalupiak
d0c67416d6 Merge branch 'master' into arch-laptop 2024-11-05 16:36:24 -05:00
Michael Chalupiak
0cf0407018 Merge branch 'master' into arch-laptop 2024-11-05 14:44:47 -05:00
Michael Chalupiak
d6742c2d16 Merge branch 'master' into arch-laptop 2024-11-05 14:32:12 -05:00
Michael Chalupiak
add9970e3e Merge branch 'master' into arch-laptop 2024-11-01 16:21:44 -04:00
Michael Chalupiak
0dbf800f93 Merge branch 'master' into arch-laptop
merging vim binds
2024-10-08 10:39:03 -04:00
Michael Chalupiak
5fd5722f28 doom high res font 2024-10-07 13:13:16 -04:00
Michael Chalupiak
de61e2d1da Merge branch 'master' into arch-laptop
merge doom settings
2024-10-07 13:11:05 -04:00
Michael Chalupiak
c160fcbf55 small updates 2024-10-07 13:03:32 -04:00
Michael Chalupiak
196d590348 not much 2024-09-18 13:58:20 -04:00
Michael Chalupiak
5b543d5783 ranger 2024-09-16 10:52:50 -04:00
Michael Chalupiak
a06aceb75f kak updates: 2024-09-16 10:48:31 -04:00
Michael Chalupiak
4b99343853 kak-treesitter 2024-09-16 10:48:31 -04:00
Michael Chalupiak
b13a1f5045 laptop settings 2024-09-09 08:20:11 -04:00
Michael Chalupiak
c480aefa9f changed oauth script 2024-09-08 00:45:15 -04:00
33424 changed files with 141 additions and 279390 deletions

41
.gitignore vendored
View File

@@ -1,20 +1,25 @@
config/.config/dconf/*
config/.themes/*
config/.config/kak/al/rc/org.kak
config/.config/kak/mru_files.txt
config/.scripts/baraction.sh
config/.scripts/brave.sh
config/.scripts/tmux-change-dir.sh
config/.config/dconf/
config/.themes/
config/**/*.uuid
config/.icons/*
config/.config/KDE/*
config/.config/falkon/*
config/.config/ghostty/iTerm2-Color-Schemes/*
config/.config/ghostty/themes/*
config/.config/helix/runtime/*
config/.config/kak/colors/*
config/.config/kak/plugins/*
config/.icons/
config/.config/KDE/
config/.config/falkon/
config/.config/ghostty/iTerm2-Color-Schemes/
config/.config/ghostty/themes/
config/.config/helix/runtime/
config/.config/kak/colors/
config/.config/kak/plugins/
config/.config/mutt/chalupmc@rose-hulman
config/.config/mutt/mikecchalupiak@outlook
config/.config/mutt/spamreciver1@outlook
config/.config/qt5ct/colors/*
config/.config/qt5ct/colors/
config/.config/qutebrowser/autoconfig.yml
config/.config/qutebrowser/rosepine/*
config/.config/qutebrowser/rosepine/
config/.config/zathura/colors
config/.doom.d/flycheck_config.el
config/.scripts/kkse
@@ -25,15 +30,3 @@ config/.scripts/mlvwm-powerdown
config/.scripts/mlvwm-restart
config/.scripts/mlvwm-screenshot
config/.scripts/pipewire-launch
/config/.emacs.d/undo-fu-session/
/config/.emacs.d/tree-sitter/
/config/.emacs.d/tramp
/config/.emacs.d/straight/
/config/.emacs.d/recentf
/config/.emacs.d/places
/config/.emacs.d/parinfer-rust/
/config/.emacs.d/history
/config/.emacs.d/eshell/
/config/.emacs.d/elpa/
/config/.emacs.d/eln-cache/
/config/.emacs.d/auto-save-list/

View File

@@ -1,4 +1,5 @@
! High DPI Settings for Window Managers
Xft.dpi: 192
! #define background_opacity 80
#include ".theme.xresources"
! .alpha: 0.2

View File

@@ -1,11 +1,16 @@
export PATH="${PATH}:$HOME/.scripts"
source ~/.profile
source ~/.bashrc
# Added by Toolbox App
export PATH="$PATH:/home/mikec/.local/share/JetBrains/Toolbox/scripts"
export PATH="${PATH}:$HOME/.scripts:$HOME/maple2022/bin:$HOME/intelFPGA_lite/18.1/quartus/bin:$HOME/intelFPGA_lite/18.1/modelsim_ase/bin"
export _JAVA_AWT_WM_NONREPARENTING=1
# export XDG_CURRENT_DESKTOP=sway
source ~/.bashrc
export QSYS_ROOTDIR="/home/mikec/intelFPGA_lite/18.1/quartus/sopc_builder/bin"
export VERSION_CONTROL="never"
# exec hilbish -S -l
# BEGIN opam configuration
@@ -15,14 +20,6 @@ export PATH="$PATH:/home/mikec/.local/share/JetBrains/Toolbox/scripts"
# This section can be safely removed at any time if needed.
test -r '/home/mikec/.opam/opam-init/init.sh' && . '/home/mikec/.opam/opam-init/init.sh' > /dev/null 2> /dev/null || true
# END opam configuration
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
exec river
fi
HOMEBREW_PREFIX=/opt/homebrew
export PATH="/opt/homebrew/opt/llvm/bin:$PATH"
export CPATH="$HOMEBREW_PREFIX/include:$CPATH"
export LIBRARY_PATH="$HOMEBREW_PREFIX/lib:$LIBRARY_PATH"
. "/Users/mikec/.local/share/bob/env/env.sh"
test -e "${HOME}/.iterm2_shell_integration.bash" && source "${HOME}/.iterm2_shell_integration.bash"
# if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
# exec river
# fi

View File

@@ -225,5 +225,3 @@ export DCONF_PROFILE
# --color=border:#403d52,header:#31748f,gutter:#191724
# --color=spinner:#f6c177,info:#9ccfd8
# --color=pointer:#c4a7e7,marker:#eb6f92,prompt:#908caa"
[ -n "$EAT_SHELL_INTEGRATION_DIR" ] && \
source "$EAT_SHELL_INTEGRATION_DIR/bash"

View File

@@ -21,13 +21,12 @@ picom &
#nm-applet &
## Configure Monitors/Workspaces
bspc monitor DisplayPort-1 -d 1 2 3 4 5 6 7 8 9
bspc monitor DisplayPort-0 -d 1 2 3 4 5 6 7 8 9
bspc monitor eDP-1 -d 1 2 3 4 5 6 7 8 9
## Theming
bspc config border_width 1
bspc config window_gap 10
bspc config top_padding 20
bspc config top_padding 36
bspc config left_padding 0
bspc config right_padding 0
bspc config bottom_padding 0

View File

@@ -23,7 +23,7 @@
;;
;; (setq doom-font (font-spec :family "Fira Code" :size 12 :weight 'semi-light)
;; doom-variable-pitch-font (font-spec :family "Fira Sans" :size 13))
(setq doom-font (font-spec :family "Iosevka Term SS12" :size 18))
(setq doom-font (font-spec :family "Iosevka Term SS12" :size 16))
;;
;; If you or Emacs can't find your font, use 'M-x describe-font' to look them
;; up, `M-x eval-region' to execute elisp code, and 'M-x doom/reload-font' to
@@ -33,7 +33,7 @@
;; There are two ways to load a theme. Both assume the theme is installed and
;; available. You can either set `doom-theme' or manually load a theme with the
;; `load-theme' function. This is the default:
;; (setq doom-theme 'doom-one)
(setq doom-theme 'doom-one)
;; This determines the style of line numbers in effect. If set to `nil', line
;; numbers are disabled. For relative line numbers, set this to `relative'.
@@ -75,24 +75,6 @@
;;
;; You can also try 'gd' (or 'C-c c d') to jump to their definition and see how
;; they are implemented.
;; (setq! tab-always-indent nil)
(after! corfu
(setq! tab-always-indent nil))
;; (map! :map corfu-map :i "TAB" nil)
;; (map! :map corfu-map "TAB" nil)
;; (map! :map corfu-map :i "S-TAB" nil)
;; (map! :map corfu-map "S-TAB" nil)
;; (map! :map corfu-map :i "C-n" #'corfu-next)
;; (map! :map corfu-map :i "C-p" #'corfu-previous)
;; (map! :map corfu-map "C-n" #'corfu-next)
;; (map! :map corfu-map "C-p" #'corfu-previous)
;; (map! :map corfu-map "ESC" #'corfu-reset)
;; (map! :map corfu-map :i "ESC" #'corfu-reset)
;; (map! :map corfu-map "C-g" #'corfu-reset)
;; (map! :map corfu-map :i "C-g" #'corfu-reset)
;; (setq +corfu-want-ret-to-confirm nil)
(use-package! auto-dark
:defer t
:init
@@ -121,7 +103,8 @@
(add-hook hook #'my-auto-dark-init-h -95)))
(add-to-list 'auto-mode-alist '("\\.odin\\'" . odin-ts-mode))
(defvar treesit-language-source-alist '((odin "https://github.com/tree-sitter-grammars/tree-sitter-odin")))
;; (add-to-list treesit-language-source-alist '(odin "https://github.com/tree-sitter-grammars/tree-sitter-odin"))
(defvar treesit-language-source-alist '((odin "https://github.com/tree-sitter-grammars/tree-sitter-odin")))
(require 'lsp-rust)
(setq lsp-inlay-hint-enable 't)

View File

@@ -38,7 +38,7 @@
indent-guides ; highlighted indent columns
;;ligatures ; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side
;; modeline ; snazzy, Atom-inspired modeline, plus API
modeline ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions
;;neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
@@ -46,12 +46,12 @@
smooth-scroll ; So smooth you won't believe it's not butter
;;tabs ; a tab bar for Emacs
;;treemacs ; a project drawer, like neotree but cooler
unicode ; extended unicode support for various languages
;;unicode ; extended unicode support for various languages
(vc-gutter +pretty) ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
;;window-select ; visually switch windows
;; workspaces ; tab emulation, persistence & separate workspaces
zen ; distraction-free coding or writing
workspaces ; tab emulation, persistence & separate workspaces
;;zen ; distraction-free coding or writing
:editor
(evil +everywhere); come to the dark side, we have cookies
@@ -62,7 +62,7 @@
;;lispy ; vim for lisp, for people who don't like vim
multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent
parinfer ; turn lisp into python, sort of
;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
;; (whitespace +guess +trim) ; a butler for your whitespace
@@ -81,11 +81,11 @@
eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
;; vterm ; the best terminal emulation in Emacs
vterm ; the best terminal emulation in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
(spell +flyspell) ; tasing you for misspelling mispelling
;;(spell +flyspell) ; tasing you for misspelling mispelling
;;grammar ; tasing grammar mistake every you make
:tools
@@ -100,8 +100,8 @@
(eval +overlay) ; run code, run (also, repls)
(lookup +dictionary +offline) ; navigate your code and its documentation
;;llm ; when I said you needed friends, I didn't mean...
(lsp +eglot) ; M-x vscode
(magit +forge) ; a git porcelain for Emacs
(lsp +lsp) ; M-x vscode
magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
;;pdf ; pdf enhancements
@@ -120,7 +120,7 @@
;;beancount ; mind the GAAP
(cc +lsp +tree-sitter) ; C > C++ == 1
;;clojure ; java with a lisp
common-lisp ; if you've seen one lisp, you've seen them all
;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans
@@ -153,7 +153,7 @@
;;lean ; for folks with too much to prove
;;ledger ; be audit you can be
;;lua ; one-based indices? one-based indices
(markdown +grip +tree-sitter) ; writing docs for people to ignore
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
@@ -177,9 +177,9 @@
;;solidity ; do you need a blockchain? No.
(swift +lsp +tree-sitter); who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
(web +lsp +tree-sitter) ; the tubes
;;web ; the tubes
;;yaml ; JSON, but readable
(zig +lsp +tree-sitter) ; C, but simpler
;;zig ; C, but simpler
:email
;;(mu4e +org +gmail)

View File

@@ -111,6 +111,38 @@ add-highlighter global/ wrap -word -indent
# format
# }
# }
# hook global -group autofmt BufSetOption filetype=(javascript) %{
# set-option buffer formatcmd 'prettier --tab-width 4 --parser typescript'
#
# hook -group autofmt buffer BufOpenFile .* %{
# format
# }
#
# hook -group autofmt buffer BufWritePre .* %{
# format
# }
# }
#
# hook global -group autofmt BufSetOption filetype=(go) %{
# set-option buffer formatcmd 'gofmt'
#
# hook -group autofmt buffer BufOpenFile .* %{
# format
# }
#
# hook -group autofmt buffer BufWritePre .* %{
# format
# }
# }
# }
#
# define-command disable-autofmt -docstring 'disable autoformatting of buffer' %{
# remove-hooks global autofmt
# }
#
# enable-autofmt
#
#
## Indentation ##
set global tabstop 4

View File

@@ -1,4 +0,0 @@
set -e
cargo install --locked --force --path .

View File

@@ -1,19 +0,0 @@
try %{
discord-presence-enable
} catch %{
echo -debug "Error while evaluating 'kakoune-discord' configuration: %val{error}"
set-option -add current plug_conf_errors "Error while evaluating 'kakoune-discord' configuration:"
set-option -add current plug_conf_errors %sh{ printf "\n " }
set-option -add current plug_conf_errors %val{error}
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
hook -once -group plug-conf-err global WinDisplay .* %{
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
on-key %{
info -style modal
execute-keys -with-maps -with-hooks %val{key}
}
}
}

View File

@@ -1,2 +0,0 @@
cargo install --path . --force

View File

@@ -1,23 +0,0 @@
try %{
require-module rainbow
# suggested mapping
# # map global user r ": rainbow<ret>" -docstring "rainbow brackets"
# # map global user R ": rmhl window/ranges_rainbow_specs<ret>" \
# # -docstring "remove rainbow highlighter"
} catch %{
echo -debug "Error while evaluating 'kakoune-rainbow' configuration: %val{error}"
set-option -add current plug_conf_errors "Error while evaluating 'kakoune-rainbow' configuration:"
set-option -add current plug_conf_errors %sh{ printf "\n " }
set-option -add current plug_conf_errors %val{error}
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
hook -once -group plug-conf-err global WinDisplay .* %{
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
on-key %{
info -style modal
execute-keys -with-maps -with-hooks %val{key}
}
}
}

View File

@@ -1 +0,0 @@
gitlab.com

View File

@@ -1,21 +0,0 @@
try %{
plug "gustavo-hms/peneira" %{
require-module peneira
}
} catch %{
echo -debug "Error while evaluating 'luar' configuration: %val{error}"
set-option -add current plug_conf_errors "Error while evaluating 'luar' configuration:"
set-option -add current plug_conf_errors %sh{ printf "\n " }
set-option -add current plug_conf_errors %val{error}
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
hook -once -group plug-conf-err global WinDisplay .* %{
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
on-key %{
info -style modal
execute-keys -with-maps -with-hooks %val{key}
}
}
}

View File

@@ -1,19 +0,0 @@
try %{
# your config
} catch %{
echo -debug "Error while evaluating 'pandoc.kak' configuration: %val{error}"
set-option -add current plug_conf_errors "Error while evaluating 'pandoc.kak' configuration:"
set-option -add current plug_conf_errors %sh{ printf "\n " }
set-option -add current plug_conf_errors %val{error}
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
hook -once -group plug-conf-err global WinDisplay .* %{
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
on-key %{
info -style modal
execute-keys -with-maps -with-hooks %val{key}
}
}
}

View File

@@ -1,19 +0,0 @@
try %{
require-module peneira
} catch %{
echo -debug "Error while evaluating 'peneira' configuration: %val{error}"
set-option -add current plug_conf_errors "Error while evaluating 'peneira' configuration:"
set-option -add current plug_conf_errors %sh{ printf "\n " }
set-option -add current plug_conf_errors %val{error}
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
hook -once -group plug-conf-err global WinDisplay .* %{
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
on-key %{
info -style modal
execute-keys -with-maps -with-hooks %val{key}
}
}
}

View File

@@ -1,25 +0,0 @@
try %{
# if you have wrap highlighter enamled in you configuration
# files it's better to turn it off for tagbar, using this hook:
hook global WinSetOption filetype=tagbar %{
remove-highlighter window/wrap
# you can also disable rendering whitespaces here, line numbers, and
# matching characters
}
} catch %{
echo -debug "Error while evaluating 'tagbar.kak' configuration: %val{error}"
set-option -add current plug_conf_errors "Error while evaluating 'tagbar.kak' configuration:"
set-option -add current plug_conf_errors %sh{ printf "\n " }
set-option -add current plug_conf_errors %val{error}
set-option -add current plug_conf_errors %sh{ printf "\n\n" }
hook -once -group plug-conf-err global WinDisplay .* %{
info -style modal -title "plug.kak error" "%opt{plug_conf_errors}"
on-key %{
info -style modal
execute-keys -with-maps -with-hooks %val{key}
}
}
}

View File

@@ -44,7 +44,7 @@ vim.g.mapleader = ' '
vim.g.neovide_scale_factor = 1.0
vim.g.neovide_theme = 'auto'
vim.g.neovide_opacity = 1.0
vim.g.neovide_transparency = 1.0
function ChangeScaleFactor(delta)
vim.g.neovide_scale_factor = vim.g.neovide_scale_factor * delta
end
@@ -56,7 +56,7 @@ vim.keymap.set('n', '<C-->', function()
ChangeScaleFactor(1 / 1.25)
end)
vim.opt.guifont = { 'Iosevka Term SS12', ':h14' }
vim.opt.guifont = { 'Iosevka Term SS12', ':h12' }
vim.opt.termguicolors = true
vim.g.netrw_keepdir = 0

View File

@@ -49,16 +49,5 @@ return {
version = "*", -- Pin Neorg to the latest stable release
config = true,
},
-- {
-- "Olical/conjure"
-- },
{
"vlime/vlime",
config = function(plugin)
vim.opt.rtp:append(plugin.dir .. '/vim/')
end
},
}

View File

@@ -101,7 +101,7 @@ fade-in-step = 0.03;
fade-out-step = 0.03;
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
fade-delta = 5.0;
fade-delta = 4.0;
# Specify a list of conditions of windows that should not be faded.
# fade-exclude = []

View File

@@ -39,12 +39,12 @@ background = ${xrdb:background}
foreground = ${xrdb:foreground}
override-redirect = true
wm-restack = bspwm
font-0 = Olympe Mono Hacked:style=Regular:pixelsize=11;2
font-1 = CaskaydiaCove Nerd Font:style=Regular:pixelsize=11:2
font-2 = NotoColorEmoji:pixelsize=16
font-3 = Font Awesome 6 Brands:style=Regular:size=13;2
font-4 = Font Awesome 6 Free Solid:style=Regular:size=9;2
height = 20
font-0 = Olympe Mono Hacked:style=Regular:pixelsize=20;2
font-1 = CaskaydiaCove Nerd Font:style=Regular:pixelsize=20:2
font-2 = NotoColorEmoji:pixelsize=20
font-3 = Font Awesome 6 Brands:style=Regular:size=20;2
font-4 = Font Awesome 6 Free Solid:style=Regular:size=20;2
height = 36
line-size = 2
modules-left = bspwm
modules-right = music memory filesystem xkeyboard network redshift pulseaudio backlight tray battery datetime

View File

@@ -28,7 +28,7 @@ wheel_scroll_lines=3
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\x3\xad\0\0\x1\x86\0\0\x6#\0\0\x3\x96\0\0\x3\xad\0\0\x1\x86\0\0\x6#\0\0\x3\x96\0\0\0\0\0\0\0\0\n\0\0\0\x3\xad\0\0\x1\x86\0\0\x6#\0\0\x3\x96)
[SettingsWindow]
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\v\xb0\0\0\0\0\0\0\x15\x93\0\0\x4\xc9\0\0\v\xb0\0\0\0\0\0\0\x15\x93\0\0\x4\xc9\0\0\0\x1\0\0\0\0\n\0\0\0\v\xb0\0\0\0\0\0\0\x15\x93\0\0\x4\xc9)
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x5\xc7\0\0\x3\xba\0\0\0\0\0\0\0\0\0\0\x5\xc7\0\0\x3\xba\0\0\0\0\0\0\0\0\x5\xe0\0\0\0\0\0\0\0\0\0\0\x5\xc7\0\0\x3\xba)
[Troubleshooting]
force_raster_widgets=1

View File

@@ -1,2 +1 @@
set preview_images true
set preview_images_method ueberzug

View File

@@ -139,8 +139,8 @@ do
riverctl map $mode None XF86AudioNext spawn 'playerctl next'
# Control screen backlight brightness with brightnessctl (https://github.com/Hummer12007/brightnessctl)
riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl set +5%'
riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 5%-'
riverctl map $mode None XF86MonBrightnessUp spawn 'brightnessctl set +1%'
riverctl map $mode None XF86MonBrightnessDown spawn 'brightnessctl set 1%-'
done
# Set background and border color
@@ -170,9 +170,17 @@ riverctl focus-follows-cursor normal
riverctl map normal Super+Control O spawn 'mumble rpc starttalking'
riverctl map normal Super O spawn 'mumble rpc stoptalking'
riverctl map normal Super Escape spawn 'swaylock -f -C ~/.config/sway/rose-pine'
riverctl input pointer* tap enabled
riverctl input pointer* click-method button-areas
riverctl input pointer* natural-scroll enabled
swaybg -m fill -i $HOME/Pictures/wallpapers/wallpaper &
# pgrep creek || ( while $HOME/.config/river/bar.sh; do sleep 1; done ) | creek -fn 'Ubuntu:size=14' -nf 0xb8b8b8 -nb 0x282828 -ff 0x181818 -fb 0x7cafc2
swayidle -w \
timeout 360 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
timeout 600 'systemctl suspend-then-hibernate' \
before-sleep 'swaylock -f -C ~/.config/sway/rose-pine' &
pipewire-launch &
waybar &
wlr-randr --output DP-2 --adaptive-sync enabled --mode 2560x1440@165Hz
wlr-randr --output eDP-1 --scale 1.5
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP='river'

View File

@@ -1,10 +1,10 @@
#!/usr/bin/env bash
DATE=$(date +'%Y-%m-%d %I:%M:%S %p')
# BAT=$(cat /sys/class/power_supply/BAT1/capacity)
BAT=$(cat /sys/class/power_supply/BAT1/capacity)
VOL=$(pactl get-sink-volume @DEFAULT_SINK@ | tr "," "\n" | grep \% | sed s/Volume\:// | sed 's/\%.*$//' | sed 's/^.*\///' | head -n1 | sed s/\ *//)
VOL="${VOL}%"
MUTED=$(pactl get-sink-mute @DEFAULT_SINK@ | cut -d\ -f2)
# BRIGHT=$(brightnessctl | tr "\n" " " | cut -d\ -f9 | tr -d "()%")
BRIGHT=$(brightnessctl | tr "\n" " " | cut -d\ -f9 | tr -d "()%")
MEM=$(free -h | sed 's/[ ]\+/:/g' | cut -d\: -f4 | tr "\n" ":" | cut -d\: -f2)
USER=$(id -u -n)
HOST=$(cat /proc/sys/kernel/hostname)
@@ -17,5 +17,4 @@ then
VOL='muted'
fi
# echo ${MEM} \| ${USER}\@${HOST} \| KB\: ${LAYOUT} \| ${NETWORK_NAME}\@${IP} \| Vol: ${VOL} \| ${BRIGHT}% Backlight \| ${BAT}\% Bat \| ${DATE}
echo ${MEM} \| ${USER}\@${HOST} \| KB\: ${LAYOUT} \| ${NETWORK_NAME}\@${IP} \| Vol: ${VOL} \| ${DATE}
echo ${MEM} \| ${USER}\@${HOST} \| KB\: ${LAYOUT} \| ${NETWORK_NAME}\@${IP} \| Vol: ${VOL} \| ${BRIGHT}% Backlight \| ${BAT}\% Bat \| ${DATE}

View File

@@ -39,7 +39,7 @@ output * bg $HOME/Pictures/wallpapers/wallpaper fill
#
# Example configuration:
#
# output eDP-1 scale 1.5
output eDP-1 scale 1.5
#
# You can get the names of your outputs by running: swaymsg -t get_outputs
output DP-2 mode 2560x1440@165.000Hz
@@ -50,11 +50,10 @@ font "Ubuntu 10"
#
# Example configuration:
#
# exec swayidle -w \
# # timeout 15 'swaylock -f -c 000000' \
# timeout 360 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
# timeout 600 'systemctl suspend-then-hibernate' \
# before-sleep 'swaylock -f -c 000000'
exec swayidle -w \
timeout 360 'swaymsg "output * dpms off"' resume 'swaymsg "output * dpms on"' \
timeout 600 'systemctl suspend-then-hibernate' \
before-sleep 'swaylock -f -c 000000'
# set $lock 'swaylock -f'
#
@@ -68,12 +67,12 @@ font "Ubuntu 10"
#
# Example configuration:
#
# input "type:touchpad" {
# dwt enabled
# tap enabled
# natural_scroll enabled
# #middle_emulation enabled
# }
input "type:touchpad" {
dwt enabled
tap enabled
natural_scroll enabled
#middle_emulation enabled
}
#
# You can get the names of your inputs by running: swaymsg -t get_inputs
# Read `man 5 sway-input` for more information about this section.
@@ -260,9 +259,9 @@ input "type:keyboard" {
bindsym Mod1+Shift+space input "type:keyboard" xkb_switch_layout 0
bindsym Mod1+space input "type:keyboard" xkb_switch_layout 1
# bindsym $mod+u output eDP-1 scale 1
# bindsym $mod+i output eDP-1 scale 1.5
# bindsym $mod+o output eDP-1 scale 2
bindsym $mod+u output eDP-1 scale 1
bindsym $mod+i output eDP-1 scale 1.5
bindsym $mod+o output eDP-1 scale 2
# Multimedia
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +2% && pactl get-sink-volume @DEFAULT_SINK@ | head -n 1| awk '{print substr($5, 1, length($5)-1)}' > $WOBSOCK

View File

@@ -75,11 +75,11 @@ XF86AudioNext
XF86AudioPrev
playerctl previous
# Brightness Up
XF86_MonBrightnessUp
XF86MonBrightnessUp
brightnessctl set 1%+
# Brightness Down
XF86_MonBrightnessDown
brightnessctl set 1%+
XF86MonBrightnessDown
brightnessctl set 1%-
## BSPWM Controls ##

View File

@@ -12,9 +12,9 @@
"river/layout",
"custom/media"
],
"modules-center": [
"river/window"
],
// "modules-center": [
// "river/window"
// ],
"modules-right": [
"idle_inhibitor",
"pulseaudio",

View File

@@ -155,4 +155,5 @@
(setq dime-dylan-implementations
'((opendylan ("/home/mikec/Documents/suckless/dylan/opendylan-2024.1/bin/dswank")
:env ("OPEN_DYLAN_USER_REGISTRIES=/tmp/dime-test/registry"))))
(setq doc-view-mupdf-use-svg t)
(add-to-list 'default-frame-alist '(undecorated . t))

View File

@@ -100,7 +100,7 @@
magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
pdf ; pdf enhancements
;; pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
;;rgb ; creating color strings
;;taskrunner ; taskrunner for all your projects

View File

@@ -1 +0,0 @@
;;; -*- lexical-binding: t -*-

View File

@@ -1,69 +0,0 @@
;;; emacs.el --- Description -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2026 Michael Chalupiak
;;
;; Author: Michael Chalupiak <mikec@archbox>
;; Maintainer: Michael Chalupiak <mikec@archbox>
;; Created: January 15, 2026
;; Modified: January 15, 2026
;; Version: 0.0.1
;; Keywords: abbrev bib c calendar comm convenience data docs emulations extensions faces files frames games hardware help hypermedia i18n internal languages lisp local maint mail matching mouse multimedia news outlines processes terminals tex text tools unix vc wp
;; Homepage: https://github.com/mikec/emacs
;; Package-Requires: ((emacs "30.1"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;; Description
;;
;;; Code:
(set-face-attribute 'default nil
:width 'normal :weight 'normal
:slant 'normal :font (font-spec :family "Iosevka Term SS12" :size 18))
(set-face-attribute 'fixed-pitch nil
:width 'normal :weight 'normal
:slant 'normal :font (font-spec :family "Iosevka Term SS12" :size 18))
(set-face-attribute 'variable-pitch nil
:width 'normal :weight 'normal
:slant 'normal :font (font-spec :family "Gentium Plus" :size 18))
(defconst default-mode-line-format (copy-sequence mode-line-format))
(setq history-length 100
global-auto-revert-non-file-buffers t
use-dialog-box nil
custom-safe-themes t
make-backup-files nil
read-file-name-completion-ignore-case t
tab-always-indent nil
display-buffer-alist '(
("\\*elfeed-.*\\*" (display-buffer-same-window))))
(setq-default
indent-tabs-mode nil
tab-width 4
tab-stop-list (number-sequence 4 400 4))
(customize-set-variable 'treesit-font-lock-level 4)
(column-number-mode t)
(global-display-line-numbers-mode t)
;(global-display-fill-column-indicator-mode t)
(recentf-mode 1)
(savehist-mode 1)
(save-place-mode 1)
(global-auto-revert-mode 1)
(context-menu-mode 1)
(electric-pair-mode 1)
(electric-indent-mode 1)
;; (enable-recursive-minibuffers t)
;; (read-extended-command-predicate #'command-completion-default-include-p)
;; Disable line numbers for some modes
;; (dolist (mode '(org-mode-hook
;; eshell-mode-hook))
;; (add-hook mode (lambda ()
;; (display-line-numbers-mode 0)
;; (display-fill-column-indicator-mode 0)
;; ())))
(provide 'emacs)
;;; emacs.el ends here

View File

@@ -1,44 +0,0 @@
;;; -*- lexical-binding: t; -*-
(global-set-key (kbd "C-c f") #'consult-fd)
(global-set-key (kbd "C-c C-f") #'find-file-at-point)
(global-set-key (kbd "C-c r") #'recentf)
(global-set-key (kbd "C-c x") #'kill-current-buffer)
(global-set-key (kbd "C-c X") (lambda () (interactive) (other-window 1) (kill-buffer-and-window)))
(global-set-key (kbd "C-c g") #'consult-ripgrep)
(global-set-key (kbd "C-c L") #'consult-line)
(global-set-key (kbd "C-c i") #'consult-info)
(global-set-key (kbd "C-c s") #'ispell-word)
(global-set-key (kbd "C-c t") #'load-theme)
(global-set-key (kbd "C-c C-c") #'compile)
(global-set-key (kbd "C-c d") #'dictionary-define-word)
(global-set-key (kbd "C-c D") #'dictionary)
(global-set-key (kbd "C-c l a") #'eglot-code-actions)
(global-set-key (kbd "C-c l f") #'apheleia-format-buffer)
(global-set-key (kbd "C-c l n") #'eglot-rename)
(global-set-key (kbd "C-c l s") #'consult-eglot-symbols)
(global-set-key (kbd "C-c l r") #'xref-find-references)
(global-set-key (kbd "C-c l d") #'xref-find-definitions)
(global-set-key (kbd "C-c l D") #'eglot-find-declaration)
(global-set-key (kbd "C-c l i") #'eglot-find-implementation)
(global-set-key (kbd "C-c l t") #'eglot-find-typeDefinition)
(global-set-key (kbd "C-c b") #'ibuffer)
(global-set-key (kbd "C-c k") #'eldoc)
(global-set-key (kbd "C-c m") #'man)
(global-set-key (kbd "C-c o c") (lambda () (interactive) (dired user-init-dir)))
(global-set-key (kbd "C-c o t") (lambda () (interactive) (eshell 'N)))
(global-set-key (kbd "C-c o g") #'magit)
(global-set-key (kbd "C-c o e") #'mu4e)
(global-set-key (kbd "C-c o r") #'elfeed-summary)
(global-set-key (kbd "C-c o m") #'mpdel-browser-open)
(global-set-key (kbd "C-c o p") #'mpdel-playlist-open)
;; multi-cursor
(global-set-key (kbd "C-c c w") #'mc/mark-next-like-this-word)
(global-set-key (kbd "C-c c W") #'mc/mark-previous-like-this-word)
(global-set-key (kbd "C-c c s") #'mc/mark-next-like-this-symbol)
(global-set-key (kbd "C-c c S") #'mc/mark-previous-next-like-this-symbol)
(global-set-key (kbd "C-c c a") #'mc/mark-all-like-this-dwim)
(global-set-key (kbd "C-c c f") #'mc/mark-all-symbols-like-this-in-defun)

View File

@@ -1,30 +0,0 @@
;;; util.el --- Description -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2026 Michael Chalupiak
;;
;; Author: Michael Chalupiak <mikec@archbox>
;; Maintainer: Michael Chalupiak <mikec@archbox>
;; Created: January 16, 2026
;; Modified: January 16, 2026
;; Version: 0.0.1
;; Keywords: abbrev bib c calendar comm convenience data docs emulations extensions faces files frames games hardware help hypermedia i18n internal languages lisp local maint mail matching mouse multimedia news outlines processes terminals tex text tools unix vc wp
;; Homepage: https://github.com/mikec/util
;; Package-Requires: ((emacs "30.1"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;; Description
;;
;;; Code:
;; which-key
(which-key-mode)
;; eglot
;; treesit
(provide 'util)
;;; util.el ends here

View File

@@ -1,42 +0,0 @@
;;; early-init.el --- Description -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2026 Michael Chalupiak
;;
;; Author: Michael Chalupiak <mikec@archbox>
;; Maintainer: Michael Chalupiak <mikec@archbox>
;; Created: January 15, 2026
;; Modified: January 15, 2026
;; Version: 0.0.1
;; Keywords: abbrev bib c calendar comm convenience data docs emulations extensions faces files frames games hardware help hypermedia i18n internal languages lisp local maint mail matching mouse multimedia news outlines processes terminals tex text tools unix vc wp
;; Homepage: https://github.com/mikec/early-init
;; Package-Requires: ((emacs "24.3"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;; Description
;;
;;; Code:
(setq gc-cons-threshold (* 50 1000 1000)
inhibit-startup-message t
ring-bell-function 'ignore
package-enable-at-startup nil
auto-save-default nil
custom-file (locate-user-emacs-file "config/custom.el"))
;; (load custom-file 'noerror 'nomessage)
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
(defun efs/display-startup-time ()
(message "Emacs loaded in %s with %d garbage collections."
(format "%.2f seconds"
(float-time
(time-subtract after-init-time before-init-time)))
gcs-done))
(add-hook 'emacs-startup-hook #'efs/display-startup-time)
(provide 'early-init)
;;; early-init.el ends here

View File

@@ -1,46 +0,0 @@
;;; init.el --- Description -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2026 Michael Chalupiak
;;
;; Author: Michael Chalupiak <mikec@mchalupiak.com>
;; Maintainer: Michael Chalupiak <mikec@mchalupiak.com>
;; Created: January 15, 2026
;; Modified: January 15, 2026
;; Version: 0.0.1
;; Keywords: abbrev bib c calendar comm convenience data docs emulations extensions faces files frames games hardware help hypermedia i18n internal languages lisp local maint mail matching mouse multimedia news outlines processes terminals tex text tools unix vc wp
;; Homepage: https://github.com/mikec/init
;; Package-Requires: ((emacs "24.3"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;; Description
;;
;;; Code:
(defconst user-init-dir
(cond ((boundp 'user-emacs-directory)
user-emacs-directory)
((boundp 'user-init-directory)
user-init-directory)
(t "~/.emacs.d/")))
(defconst config-dirs '("config" "plugins"))
(defun load-user-config ()
(let*
((expanded-dirs (mapcar
(lambda (dir) (concat (expand-file-name dir user-init-dir) "/*.el"))
config-dirs))
(config-files (seq-filter (lambda (file) (not (string= file (expand-file-name "plugins/straight.el" user-init-dir)))) (mapcan (lambda (expanded-dir) (file-expand-wildcards expanded-dir)) expanded-dirs))))
(progn
(load-file (expand-file-name "plugins/straight.el" user-init-dir))
(mapc (lambda (file) (load-file file)) config-files))))
(load-user-config)
(setq gc-cons-threshold (* 2 1000 1000))
(provide 'init)
;;; init.el ends here

View File

@@ -1,404 +0,0 @@
;;; apps.el --- Description -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2026 Michael Chalupiak
;;
;; Author: Michael Chalupiak <mikec@archbox>
;; Maintainer: Michael Chalupiak <mikec@archbox>
;; Created: January 16, 2026
;; Modified: January 16, 2026
;; Version: 0.0.1
;; Keywords: Symbols value as variable is void: finder-known-keywords
;; Homepage: https://github.com/mikec/apps
;; Package-Requires: ((emacs "24.3"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;; Description
;;
;;; Code:
(straight-use-package
'(eat :type git
:host codeberg
:repo "akib/emacs-eat"
:files ("*.el" ("term" "term/*.el") "*.texi"
"*.ti" ("terminfo/e" "terminfo/e/*")
("terminfo/65" "terminfo/65/*")
("integration" "integration/*")
(:exclude ".dir-locals.el" "*-tests.el"))
:defer t))
(add-hook 'eshell-load-hook #'eat-eshell-mode)
(use-package magit
:ensure t
:defer t)
(use-package libmpdel
:ensure t
:demand t)
(use-package mpdel
:ensure t
:demand t
:after libmpdel
:bind (:map mpdel-playlist-mode-map
("h" . mpdel-song-normal-decrement)
("l" . mpdel-song-normal-increment)
("b" . libmpdel-playback-next)
("z" . libmpdel-playback-next)
("c" . libmpdel-playback-play-pause)
("C" . mpdel/connect-with-ip)
("v" . libmpdel-stop)
("x" . (lambda () (interactive) (libmpdel-playback-seek 0)))
("i" . mpdel-song-open)
("s" . (lambda () (interactive) (if (libmpdel-get-state 'random #'identity) (libmpdel-playback-unset-random) (libmpdel-playback-set-random))))
("r" . (lambda () (interactive) (if (libmpdel-get-state 'repeat #'identity) (libmpdel-playback-unset-repeat) (libmpdel-playback-set-repeat))))
("X" . (lambda () (interactive (libmpdel-send-command "clear"))))
("RET" . mpdel-playlist-play)
(";" . mpdel/switch-context-i))
:init
(setq mpdel-prefix-key (kbd "C-c z"))
:config
(add-to-list 'libmpdel-profiles '("Desktop" "127.0.0.1" 6600 ipv4))
(add-to-list 'libmpdel-profiles '("Laptop" "127.0.0.1" 6600 ipv4))
(keymap-set global-map "C-c z" mpdel-playlist-mode-map)
(defun mpdel/connect-with-ip ()
(interactive)
(let* ((profile (completing-read "Connect to: " (mapcar #'car libmpdel-profiles) nil t))
(ip (completing-read "IP: " nil)))
(setf (alist-get profile libmpdel-profiles nil nil #'equal) `(,ip ,6600 ipv4))
(libmpdel-connect-profile (assoc-string profile libmpdel-profiles))))
(defun mpdel/add-all-to-queue ()
(interactive)
(libmpdel-send-command "clear")
(libmpdel-send-command "add /"))
(defun mpdel/start-all-music ()
(interactive)
(mpdel/add-all-to-queue)
(mpdel-playlist-open)
(libmpdel-play))
(defun mpdel/music-status ()
(interactive)
(funcall mpdel/music-status))
(defvar mpdel/music-status nil)
(let ((status nil))
(setq mpdel/music-status
(lambda ()
(require 'libmpdel)
(if (libmpdel-connected-p)
(let* ((song (libmpdel-current-song))
(volume (libmpdel-get-state 'volume #'identity))
(song-name (if song (libmpdel-entity-name song) nil))
(shuffle (or (libmpdel-get-state 'random (lambda (state) (if state "S" ""))) ""))
(repeat (or (libmpdel-get-state 'repeat (lambda (state) (if state "R" ""))) ""))
(progress ""))
(libmpdel-send-command "status" (lambda (s)
(setq status (copy-alist s))))
(when status
(let ((elapsed (libmpdel-time-to-string (cdr (assoc 'elapsed status))))
(duration (libmpdel-time-to-string (cdr (assoc 'duration status)))))
(setq progress (format " - %s/%s" elapsed duration))))
(cond
((libmpdel-playing-p) (format "> %s%s %s%s %s%%%%" song-name progress repeat shuffle volume))
((libmpdel-paused-p) (format "| %s%s %s%s %s%%%%" song-name progress repeat shuffle volume))
((libmpdel-stopped-p) "")))))))
(setq-default mode-line-format (append default-mode-line-format '((:eval (mpdel/music-status)))))
(defconst mpdel/contexts
`((podcasts . ((enter-hooks . ,(lambda (context) (libmpdel-send-commands '("clear"
"load podcasts"
"random 0"
"repeat 0"
"consume 1"
"single 0"))))
(song-change . ,(lambda (context) (libmpdel-send-commands '("rm podcasts"
"save podcasts"))))
(exit-hooks . ,(lambda (context) (libmpdel-send-commands '("rm podcasts"
"save podcasts"
"consume 0"))))))
(allmusic . ((enter-hooks . ,(lambda (context)
(libmpdel-send-commands '("random 1"
"repeat 1"
"consume 0"
"single 0"))
(mpdel/add-all-to-queue)))))
(playlist . ())))
(defvar mpdel/current-context (assq 'allmusic mpdel/contexts))
(defun mpdel/run-context-hooks (hook-name context)
(let ((hook (cdr (assq hook-name (cdr context)))))
(when hook
(funcall hook context))))
(add-to-list 'savehist-additional-variables 'mpdel/current-context)
(add-hook 'libmpdel-current-song-changed-hook (lambda ()
(let ((context mpdel/current-context))
(mpdel/run-context-hooks 'song-change context))))
(defun mpdel/is-current-context (context)
(eq context (car mpdel/current-context)))
(defun mpdel/switch-context-i ()
(interactive)
(mpdel/switch-context (intern (completing-read "Context: " (mapcar #'car mpdel/contexts) nil t))))
(defun mpdel/switch-context (context)
(interactive)
(libmpdel-ensure-connection)
(unless (eq (car mpdel/current-context) context)
(libmpdel-send-command "stop")
(mpdel/run-context-hooks 'exit-hooks mpdel/current-context)
(setq mpdel/current-context (assq context mpdel/contexts))
(mpdel/run-context-hooks 'enter-hooks mpdel/current-context))))
(use-package org
:ensure t
:defer t)
(use-package org-msg
:ensure t
:defer t
:hook ((mu4e-main-mode . org-msg-mode)
(mu4e-compose-mode . org-msg-mode))
:config
(setq mail-user-agent 'mu4e-user-agent)
(setq org-msg-options "html-postamble:nil H:5 num:nil ^:{} toc:nil author:nil email:nil \\n:t"
org-msg-startup "hidestars indent inlineimages"
org-msg-default-alternatives '((new . (text html))
(reply-to-html . (text html))
(reply-to-text . (text)))
org-msg-convert-citation t))
(use-package mu4e
:ensure t
:commands (mu4e)
:config
(setq mu4e-mu-binary (executable-find "mu"))
(setq mu4e-read-option-use-builtin nil
mu4e-completing-read-function 'completing-read)
;; this is the directory we created before:
(setq mu4e-maildir "~/.local/share/mail/")
;; this command is called to sync imap servers:
(setq mu4e-get-mail-command (concat (executable-find "mbsync") " -a"))
;; how often to call it in seconds:
(setq mu4e-update-interval 300)
;; save attachment to desktop by default
;; or another choice of yours:
(setq mu4e-attachment-dir "~/Downloads")
;; rename files when moving - needed for mbsync:
(setq mu4e-change-filenames-when-moving t)
;; list of your email adresses:
(setq mu4e-user-mail-address-list '("mikecchalupiak@outlook.com"
"chalupmc@rose-hulman.edu"
"mikec@mchalupiak.com"
"spamreciver1@outlook.com"))
; the following is to show shortcuts in the main view.
(setq mu4e-bookmarks ())
(add-to-list 'mu4e-bookmarks
'(:name "spamreciver"
:query "maildir:/spamreciver1@outlook.com/INBOX"
:key ?s))
(add-to-list 'mu4e-bookmarks
'(:name "mchalupiak.com"
:query "maildir:/mikec@mchalupiak.com/INBOX"
:key ?h))
(add-to-list 'mu4e-bookmarks
'(:name "rose"
:query "maildir:/chalupmc@rose-hulman.edu/INBOX"
:key ?r))
(add-to-list 'mu4e-bookmarks
'(:name "outlook"
:query "maildir:/mikecchalupiak@outlook.com/INBOX"
:key ?o))
(setq mu4e-contexts
`(,(make-mu4e-context
:name "outlook"
:match-func
(lambda (msg)
(when msg
(mu4e-message-contact-field-matches msg
:to "mikecchalupiak@outlook.com")))
:vars '((user-mail-address . "mikecchalupiak@outlook.com")
(user-full-name . "Michael Chalupiak")
(mu4e-drafts-folder . "/mikecchalupiak@outlook.com/Drafts")
(mu4e-refile-folder . "/mikecchalupiak@outlook.com/Archive")
(mu4e-sent-folder . "/mikecchalupiak@outlook.com/Sent")
(mu4e-trash-folder . "/mikecchalupiak@outlook.com/Trash")))
,(make-mu4e-context
:name "rose"
:match-func
(lambda (msg)
(when msg
(mu4e-message-contact-field-matches msg
:to "chalupmc@rose-hulman.edu")))
:vars '((user-mail-address . "chalupmc@rose-hulman.edu")
(user-full-name . "Michael Chalupiak")
(mu4e-drafts-folder . "/chalupmc@rose-hulman.edu/Drafts")
(mu4e-refile-folder . "/chalupmc@rose-hulman.edu/Archive")
(mu4e-sent-folder . "/chalupmc@rose-hulman.edu/Sent")
(mu4e-trash-folder . "/chalupmc@rose-hulman.edu/Trash")))
,(make-mu4e-context
:name "hosted"
:match-func
(lambda (msg)
(when msg
(mu4e-message-contact-field-matches msg
:to "mikec@mchalupiak.com")))
:vars '((user-mail-address . "mikec@mchalupiak.com")
(user-full-name . "Michael Chalupiak")
;; check your ~/.maildir to see how the subdirectories are called
;; e.g `ls ~/.maildir/example'
(mu4e-drafts-folder . "/mikec@mchalupiak.com/Drafts")
(mu4e-refile-folder . "/mikec@mchalupiak.com/Archive")
(mu4e-sent-folder . "/mikec@mchalupiak.com/Sent")
(mu4e-trash-folder . "/mikec@mchalupiak.com/Trash")))
,(make-mu4e-context
:name "spam"
:match-func
(lambda (msg)
(when msg
(mu4e-message-contact-field-matches msg
:to "spamreciver1@outlook.com")))
:vars '((user-mail-address . "spamreciver1@outlook.com")
(user-full-name . "spamreciver")
;; check your ~/.maildir to see how the subdirectories are called
;; e.g `ls ~/.maildir/example'
(mu4e-drafts-folder . "/spamreciver1@outlook.com/Drafts")
(mu4e-refile-folder . "/spamreciver1@outlook.com/Archive")
(mu4e-sent-folder . "/spamreciver1@outlook.com/Sent")
(mu4e-trash-folder . "/spamreciver1@outlook.com/Trash")))))
(setq mu4e-context-policy 'pick-first) ;; start with the first (default) context;
(setq mu4e-compose-context-policy 'ask)
; gpg encryptiom & decryption:
;; this can be left alone
(require 'epa-file)
(epa-file-enable)
(setq epa-pinentry-mode 'loopback)
(auth-source-forget-all-cached)
;; don't keep message compose buffers around after sending:
(setq message-kill-buffer-on-exit t)
;; send function:
(setq send-mail-function 'message-send-mail-with-sendmail
message-send-mail-function 'message-send-mail-with-sendmail)
;; send program:
;; this is exeranal. remember we installed it before.
(setq sendmail-program (executable-find "msmtp"))
;; select the right sender email from the context.
(setq message-sendmail-envelope-from 'header)
;; chose from account before sending
;; this is a custom function that works for me.
;; well I stole it somewhere long ago.
;; I suggest using it to make matters easy
;; of course adjust the email adresses and account descriptions
(defun timu/set-msmtp-account ()
(if (message-mail-p)
(save-excursion
(let*
((from (save-restriction
(message-narrow-to-headers)
(message-fetch-field "from")))
(account
(cond
((string-match "mikecchalupiak@outlook.com" from) "outlook")
((string-match "chalupmc@rose-hulman.edu" from) "rose")
((string-match "mikec@mchalupiak.com" from) "hosted")
((string-match "spamreciver1@outlook.com" from) "spam"))))
(setq message-sendmail-extra-arguments (list '"-a" account)))))
(add-hook 'message-send-mail-hook 'timu/set-msmtp-account)
;; mu4e cc & bcc
;; this is custom as well
(add-hook 'mu4e-compose-mode-hook
(defun timu/add-cc-and-bcc ()
"My Function to automatically add Cc & Bcc: headers.
This is in the mu4e compose mode."
(save-excursion (message-add-header "Cc:\n"))
(save-excursion (message-add-header "Bcc:\n"))))))
;; ask for context if no context matches;)))
(use-package elfeed
:ensure t
:defer t
:commands (elfeed)
:bind (:map elfeed-show-mode-map
("a" . elfeed/add-to-playlist)
("A" . (lambda () (interactive)
(elfeed/add-to-playlist)
(mpdel/switch-context 'podcasts)
(libmpdel-play)))
("P" . (lambda () (interactive)
(mpdel/switch-context 'podcasts)
(libmpdel-play))))
:bind (:map elfeed-search-mode-map
("a" . elfeed/add-to-playlist)
("A" . (lambda () (interactive)
(elfeed/add-to-playlist)
(mpdel/switch-context 'podcasts)
(libmpdel-play)))
("P" . (lambda () (interactive)
(mpdel/switch-context 'podcasts)
(libmpdel-play))))
:config
(setq-default elfeed-search-filter " ")
(setq elfeed-feeds
'( ("https://phaazon.net/blog/feed")
("https://irreal.org/blog/?feed=rss2")
("https://port19.xyz/rss.xml")
("https://lukesmith.xyz/index.xml")
("https://notrelated.xyz/rss")
("https://karl-voit.at/feeds/lazyblorg-all.atom_1.0.links-and-content.xml")
;("https://sizeof.cat/index.xml")
("https://www.youtube.com/feeds/videos.xml?channel_id=UCkKmeTinUEU27syZPKrzWQQ")
("https://www.youtube.com/feeds/videos.xml?playlist_id=PLq1vmb-z7PpQt2PDNUr7XOzBjWAOWf0Rt")
("https://danielde.dev/rss.xml")
("https://pkolaczk.github.io/feed.xml")
("https://joeyh.name/blog/index.rss")
("https://kagifeedback.org/atom/t/release-notes")
("https://api.substack.com/feed/podcast/462466.rss")
("https://www.dailywire.com/feeds/rss.xml")
("https://feeds.simplecast.com/6c2VScgo")
("https://feeds.simplecast.com/pp_b9xO6")))
(defun elfeed/add-to-playlist ()
(interactive
(let* ((entry (if (eq major-mode 'elfeed-show-mode)
elfeed-show-entry
(elfeed-search-selected :ignore-region)))
(link (elfeed-entry-link entry))
(enclosure (elt (car (elfeed-entry-enclosures entry)) 0)) ; fragile?)))
(command (if (mpdel/is-current-context 'podcasts) (format "add \"%s\"" enclosure)
(format "playlistadd podcasts \"%s\"" enclosure))))
(when enclosure
(libmpdel-ensure-connection)
(libmpdel-send-command command (lambda (s) (pp s))))))))
(use-package elfeed-summary
:straight t
:defer t
:commands (elfeed-summary)
:bind (:map elfeed-summary-mode-map
("p" . magit-section-backward))
:config
(setq-default elfeed-summary-default-filter " ")
(setq-default elfeed-summary-look-back most-positive-fixnum)
(setq elfeed-summary--search-show-read t)
(setq elfeed-summary-settings
'((query . :all))))
(provide 'apps)
;;; apps.el ends here

View File

@@ -1,97 +0,0 @@
;;; lang.el --- Description -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2026 Michael Chalupiak
;;
;; Author: Michael Chalupiak <mikec@archbox>
;; Maintainer: Michael Chalupiak <mikec@archbox>
;; Created: January 16, 2026
;; Modified: January 16, 2026
;; Version: 0.0.1
;; Keywords: abbrev bib c calendar comm convenience data docs emulations extensions faces files frames games hardware help hypermedia i18n internal languages lisp local maint mail matching mouse multimedia news outlines processes terminals tex text tools unix vc wp
;; Homepage: https://github.com/mikec/lang
;; Package-Requires: ((emacs "29.1"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;; Description
;;
;;; Code:
(use-package treesit-auto
:ensure t
;; :defer t
:custom
(treesit-auto-install t)
:config
(treesit-auto-add-to-auto-mode-alist 'all)
(global-treesit-auto-mode))
;; (use-package gitconfig-mode
;; :ensure t
;; :defer t)
;; (use-package gitignore-mode
;; :ensure t
;; :defer t)
(use-package odin-ts-mode
:ensure t
:defer t
:straight '(:type git :host github :repo "Sampie159/odin-ts-mode"))
(use-package zig-ts-mode
:ensure t
:defer t
:straight '(:type git :host codeberg :repo "meow_king/zig-ts-mode"))
(use-package haskell-ts-mode
:ensure t
:custom
(haskell-ts-font-lock-level 4)
(haskell-ts-use-indent t)
(haskell-ts-ghci "ghci")
(haskell-ts-use-indent t)
:config
(add-to-list 'treesit-language-source-alist
'(haskell . ("https://github.com/tree-sitter/tree-sitter-haskell" "v0.23.1"))))
;; (unless (treesit-grammar-location 'haskell)
;; (treesit-install-language-grammar 'haskell)))
(use-package eglot-x
:ensure t
:defer t
:straight '(:type git :host github :repo "nemethf/eglot-x"))
(use-package sly
:ensure t
:defer t
:hook common-lisp-mode
:config
(setq inferior-lisp-program "sbcl"))
(dolist (mode '(c-ts-mode-hook
rust-ts-mode-hook
odin-ts-mode-hook
zig-ts-mode-hook))
(add-hook mode 'eglot-ensure))
(with-eval-after-load 'eglot
(require 'eglot-x)
(eglot-x-setup))
(with-eval-after-load 'eglot
(add-to-list 'eglot-server-programs
'(zig-ts-mode . ("zls")))
(add-to-list 'eglot-server-programs
'(haskell-ts-mode . ("haskell-language-server-wrapper" "--lsp"))))
(add-to-list 'auto-mode-alist '("\\.odin\\'" . odin-ts-mode))
(add-to-list 'auto-mode-alist '("\\.zig\\(?:\\.zon\\)?\\'" . zig-ts-mode))
(defvar treesit-language-source-alist '())
(add-to-list 'treesit-language-source-alist '(odin "https://github.com/tree-sitter-grammars/tree-sitter-odin"))
(add-to-list 'treesit-language-source-alist '(zig "https://github.com/tree-sitter-grammars/tree-sitter-zig"))
(provide 'lang)
;;; lang.el ends here

View File

@@ -1,42 +0,0 @@
;;; straight.el --- Description -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2026 Michael Chalupiak
;;
;; Author: Michael Chalupiak <mikec@archbox>
;; Maintainer: Michael Chalupiak <mikec@archbox>
;; Created: January 15, 2026
;; Modified: January 15, 2026
;; Version: 0.0.1
;; Keywords: abbrev bib c calendar comm convenience data docs emulations extensions faces files frames games hardware help hypermedia i18n internal languages lisp local maint mail matching mouse multimedia news outlines processes terminals tex text tools unix vc wp
;; Homepage: https://github.com/mikec/straight
;; Package-Requires: ((emacs "24.3"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;; Description
;;
;;; Code:
(setq straight-use-package-by-default t
straight-check-for-modifications nil) ; can also be set to check-on-save
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name
"straight/repos/straight.el/bootstrap.el"
(or (bound-and-true-p straight-base-dir)
user-emacs-directory)))
(bootstrap-version 7))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
(provide 'straight)
;;; straight.el ends here

View File

@@ -1,76 +0,0 @@
;;; themes.el --- Description -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2026 Michael Chalupiak
;;
;; Author: Michael Chalupiak <mikec@archbox>
;; Maintainer: Michael Chalupiak <mikec@archbox>
;; Created: January 16, 2026
;; Modified: January 16, 2026
;; Version: 0.0.1
;; Keywords: abbrev bib c calendar comm convenience data docs emulations extensions faces files frames games hardware help hypermedia i18n internal languages lisp local maint mail matching mouse multimedia news outlines processes terminals tex text tools unix vc wp
;; Homepage: https://github.com/mikec/themes
;; Package-Requires: ((emacs "29.1"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;; Description
;;
;;; Code:
(use-package doom-themes
:ensure t
:defer t
:custom
;; Global settings (defaults)
(doom-themes-enable-bold t) ; if nil, bold is universally disabled
(doom-themes-enable-italic t) ; if nil, italics is universally disabled
;; for treemacs users
;; (doom-themes-treemacs-theme "doom-atom") ; use "doom-colors" for less minimal icon theme
:config
;; (load-theme 'doom-one t)
;; Enable flashing mode-line on errors
;; (doom-themes-visual-bell-config)
;; Enable custom neotree theme (nerd-icons must be installed!)
;; (doom-themes-neotree-config)
;; or for treemacs users
;; (doom-themes-treemacs-config)
;; Corrects (and improves) org-mode's native fontification.
(doom-themes-org-config))
(straight-use-package '(nano-theme :type git :host github
:repo "rougier/nano-theme"))
(use-package kaolin-themes)
(use-package auto-dark
:defer t
:init
;; Configure themes
(setq auto-dark-themes '((kaolin-dark) (kaolin-light)))
;; Disable doom's theme loading mechanism (just to make sure)
;; (setq! doom-theme nil)
;; Declare that all themes are safe to load.
;; Be aware that setting this variable may have security implications if you
;; get tricked into loading untrusted themes (via auto-dark-mode or manually).
;; See the documentation of custom-safe-themes for details.
;; (setq! custom-safe-themes t)
;; Enable auto-dark-mode at the right point in time.
;; This is inspired by doom-ui.el. Using server-after-make-frame-hook avoids
;; issues with an early start of the emacs daemon using systemd, which causes
;; problems with the DBus connection that auto-dark mode relies upon.
(defun my-auto-dark-init-h ()
(auto-dark-mode)
(remove-hook 'server-after-make-frame-hook #'my-auto-dark-init-h)
(remove-hook 'after-init-hook #'my-auto-dark-init-h))
(let ((hook (if (daemonp)
'server-after-make-frame-hook
'after-init-hook)))
;; Depth -95 puts this before doom-init-theme-h, which sounds like a good
;; idea, if only for performance reasons.
(add-hook hook #'my-auto-dark-init-h -95)))
(provide 'themes)
;;; themes.el ends here

View File

@@ -1,352 +0,0 @@
;;; ui.el --- Description -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2026 Michael Chalupiak
;;
;; Author: Michael Chalupiak <mikec@archbox>
;; Maintainer: Michael Chalupiak <mikec@archbox>
;; Created: January 16, 2026
;; Modified: January 16, 2026
;; Version: 0.0.1
;; Keywords: abbrev bib c calendar comm convenience data docs emulations extensions faces files frames games hardware help hypermedia i18n internal languages lisp local maint mail matching mouse multimedia news outlines processes terminals tex text tools unix vc wp
;; Homepage: https://github.com/mikec/ui
;; Package-Requires: ((emacs "29.1"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;; Description
;;
;;; Code:
(use-package corfu
;; Optional customizations
:custom
(corfu-cycle t) ;; Enable cycling for `corfu-next/previous'
;; (corfu-quit-at-boundary nil) ;; Never quit at completion boundary
;; (corfu-quit-no-match nil) ;; Never quit, even if there is no match
;; (corfu-preview-current nil) ;; Disable current candidate preview
;; (corfu-preselect 'prompt) ;; Preselect the prompt
;; (corfu-on-exact-match 'insert) ;; Configure handling of exact matches
;; Enable Corfu only for certain modes. See also `global-corfu-modes'.
;; :hook ((prog-mode . corfu-mode)
;; (shell-mode . corfu-mode)
;; (eshell-mode . corfu-mode))
:init
(setq corfu-auto t
corfu-auto-delay 0.05
corfu-auto-prefix 1
corfu-auto-trigger "." ;; Custom trigger characters
corfu-quit-no-match 'separator) ;; or t
;; Recommended: Enable Corfu globally. Recommended since many modes provide
;; Capfs and Dabbrev can be used globally (M-/). See also the customization
;; variable `global-corfu-modes' to exclude certain modes.
(global-corfu-mode)
;; Enable optional extension modes:
(corfu-history-mode)
(corfu-popupinfo-mode))
;; Add extensions
(use-package cape
;; Bind prefix keymap providing all Cape commands under a mnemonic key.
;; Press C-c p ? to for help.
:bind ("C-c p" . cape-prefix-map) ;; Alternative key: M-<tab>, M-p, M-+
;; Alternatively bind Cape commands individually.
;; :bind (("C-c p d" . cape-dabbrev)
;; ("C-c p h" . cape-history)
;; ("C-c p f" . cape-file)
;; ...)
:init
;; Add to the global default value of `completion-at-point-functions' which is
;; used by `completion-at-point'. The order of the functions matters, the
;; first function returning a result wins. Note that the list of buffer-local
;; completion functions takes precedence over the global list.
(add-hook 'prog-mode-hook
(defun +corfu-add-cape-file-h ()
(add-hook 'completion-at-point-functions #'cape-file -10 t)))
;; (add-hook 'completion-at-point-functions #'cape-dict -10 t)
;; (add-hook 'completion-at-point-functions #'cape-dabbrev -10 t)))
(add-hook 'text-mode-hook
(defun +corfu-add-cape-file-h ()
(add-hook 'completion-at-point-functions #'cape-file -10 t)))
;; (add-hook 'completion-at-point-functions #'cape-dict -10 t)
;; (add-hook 'completion-at-point-functions #'cape-dabbrev -10 t)))
(add-hook 'conf-mode-hook
(defun +corfu-add-cape-file-h ()
(add-hook 'completion-at-point-functions #'cape-file -10 t)))
;; (add-hook 'completion-at-point-functions #'cape-dict -10 t)
;; (add-hook 'completion-at-point-functions #'cape-dabbrev -10 t)))
;; (add-hook 'completion-at-point-functions #'cape-file)
;; (add-hook 'completion-at-point-functions #'cape-dabbrev)
;; (add-hook 'completion-at-point-functions #'cape-dict)
;; (add-hook 'completion-at-point-functions #'cape-emoji)
;; (add-hook 'completion-at-point-functions #'cape-elisp-block)
;; (add-hook 'completion-at-point-functions #'cape-history)
;; ...
)
(use-package vertico
:custom
;; (vertico-scroll-margin 0) ;; Different scroll margin
;; (vertico-count 20) ;; Show more candidates
;; (vertico-resize t) ;; Grow and shrink the Vertico minibuffer
(vertico-cycle t) ;; Enable cycling for `vertico-next/previous'
:init
(vertico-multiform-mode)
(vertico-mode)
(define-key vertico-map (kbd "DEL") #'vertico-directory-delete-char))
(defvar +vertico-transform-functions nil)
(cl-defmethod vertico--format-candidate :around
(cand prefix suffix index start &context ((not +vertico-transform-functions) null))
(dolist (fun (ensure-list +vertico-transform-functions))
(setq cand (funcall fun cand)))
(cl-call-next-method cand prefix suffix index start))
(defun +vertico-highlight-directory (file)
"If FILE ends with a slash, highlight it as a directory."
(if (string-suffix-p "/" file)
(propertize file 'face 'marginalia-file-priv-dir) ; or face 'dired-directory
file))
;; function to highlight enabled modes similar to counsel-M-x
(defun +vertico-highlight-enabled-mode (cmd)
"If MODE is enabled, highlight it as font-lock-constant-face."
(let ((sym (intern cmd)))
(if (or (eq sym major-mode)
(and
(memq sym minor-mode-list)
(boundp sym)))
(propertize cmd 'face 'font-lock-constant-face)
cmd)))
;; add-to-list works if 'file isn't already in the alist
;; setq can be used but will overwrite all existing values
(add-to-list 'vertico-multiform-categories
'(file
;; this is also defined in the wiki, uncomment if used
;; (vertico-sort-function . vertico-sort-directories-first)
(+vertico-transform-functions . +vertico-highlight-directory)))
(add-to-list 'vertico-multiform-commands
'(execute-extended-command
(+vertico-transform-functions . +vertico-highlight-enabled-mode)))
;; Enable rich annotations using the Marginalia package
(use-package marginalia
;; Bind `marginalia-cycle' locally in the minibuffer. To make the binding
;; available in the *Completions* buffer, add it to the
;; `completion-list-mode-map'.
:bind (:map minibuffer-local-map
("M-A" . marginalia-cycle))
;; The :init section is always executed.
:init
;; Marginalia must be activated in the :init section of use-package such that
;; the mode gets enabled right away. Note that this forces loading the
;; package.
(marginalia-mode))
;; Example configuration for Consult
(use-package consult
;; Replace bindings. Lazily loaded by `use-package'.
;; :bind (;; C-c bindings in `mode-specific-map'
;; ("C-c M-x" . consult-mode-command)
;; ("C-c h" . consult-history)
;; ("C-c k" . consult-kmacro)
;; ("C-c m" . consult-man)
;; ("C-c i" . consult-info)
;; ([remap Info-search] . consult-info)
;; ;; C-x bindings in `ctl-x-map'
;; ("C-x M-:" . consult-complex-command) ;; orig. repeat-complex-command
;; ("C-x b" . consult-buffer) ;; orig. switch-to-buffer
;; ("C-x 4 b" . consult-buffer-other-window) ;; orig. switch-to-buffer-other-window
;; ("C-x 5 b" . consult-buffer-other-frame) ;; orig. switch-to-buffer-other-frame
;; ("C-x t b" . consult-buffer-other-tab) ;; orig. switch-to-buffer-other-tab
;; ("C-x r b" . consult-bookmark) ;; orig. bookmark-jump
;; ("C-x p b" . consult-project-buffer) ;; orig. project-switch-to-buffer
;; ;; Custom M-# bindings for fast register access
;; ("M-#" . consult-register-load)
;; ("M-'" . consult-register-store) ;; orig. abbrev-prefix-mark (unrelated)
;; ("C-M-#" . consult-register)
;; ;; Other custom bindings
;; ("M-y" . consult-yank-pop) ;; orig. yank-pop
;; ;; M-g bindings in `goto-map'
;; ("M-g e" . consult-compile-error)
;; ("M-g r" . consult-grep-match)
;; ("M-g f" . consult-flymake) ;; Alternative: consult-flycheck
;; ("M-g g" . consult-goto-line) ;; orig. goto-line
;; ("M-g M-g" . consult-goto-line) ;; orig. goto-line
;; ("M-g o" . consult-outline) ;; Alternative: consult-org-heading
;; ("M-g m" . consult-mark)
;; ("M-g k" . consult-global-mark)
;; ("M-g i" . consult-imenu)
;; ("M-g I" . consult-imenu-multi)
;; ;; M-s bindings in `search-map'
;; ("M-s d" . consult-find) ;; Alternative: consult-fd
;; ("M-s c" . consult-locate)
;; ("M-s g" . consult-grep)
;; ("M-s G" . consult-git-grep)
;; ("M-s r" . consult-ripgrep)
;; ("M-s l" . consult-line)
;; ("M-s L" . consult-line-multi)
;; ("M-s k" . consult-keep-lines)
;; ("M-s u" . consult-focus-lines)
;; ;; Isearch integration
;; ("M-s e" . consult-isearch-history)
;; :map isearch-mode-map
;; ("M-e" . consult-isearch-history) ;; orig. isearch-edit-string
;; ("M-s e" . consult-isearch-history) ;; orig. isearch-edit-string
;; ("M-s l" . consult-line) ;; needed by consult-line to detect isearch
;; ("M-s L" . consult-line-multi) ;; needed by consult-line to detect isearch
;; ;; Minibuffer history
;; :map minibuffer-local-map
;; ("M-s" . consult-history) ;; orig. next-matching-history-element
;; ("M-r" . consult-history)) ;; orig. previous-matching-history-element
;; The :init configuration is always executed (Not lazy)
:init
;; Tweak the register preview for `consult-register-load',
;; `consult-register-store' and the built-in commands. This improves the
;; register formatting, adds thin separator lines, register sorting and hides
;; the window mode line.
(advice-add #'register-preview :override #'consult-register-window)
(setq register-preview-delay 0.5)
(setq consult-async-min-input 1)
;; Use Consult to select xref locations with preview
(setq xref-show-xrefs-function #'consult-xref
xref-show-definitions-function #'consult-xref)
;; Configure other variables and modes in the :config section,
;; after lazily loading the package.
:config
;; Optionally configure preview. The default value
;; is 'any, such that any key triggers the preview.
;; (setq consult-preview-key 'any)
;; (setq consult-preview-key "M-.")
;; (setq consult-preview-key '("S-<down>" "S-<up>"))
;; For some commands and buffer sources it is useful to configure the
;; :preview-key on a per-command basis using the `consult-customize' macro.
(consult-customize
consult-theme :preview-key '(:debounce 0.2 any)
consult-ripgrep consult-git-grep consult-grep consult-man
consult-bookmark consult-recent-file consult-xref
consult-source-bookmark consult-source-file-register
consult-source-recent-file consult-source-project-recent-file
;; :preview-key "M-."
:preview-key '(:debounce 0.4 any))
;; Optionally configure the narrowing key.
;; Both < and C-+ work reasonably well.
(setq consult-narrow-key "<") ;; "C-+"
;; Optionally make narrowing help available in the minibuffer.
;; You may want to use `embark-prefix-help-command' or which-key instead.
;; (keymap-set consult-narrow-map (concat consult-narrow-key " ?") #'consult-narrow-help)
)
(use-package consult-eglot
:ensure t
:defer t)
(use-package marginalia
:ensure t
:config
(marginalia-mode))
(use-package embark
:ensure t
:bind
(("C-." . embark-act) ;; pick some comfortable binding
("C-;" . embark-dwim) ;; good alternative: M-.
("C-h B" . embark-bindings)) ;; alternative for `describe-bindings'
:init
;; Optionally replace the key help with a completing-read interface
(setq prefix-help-command #'embark-prefix-help-command)
;; Show the Embark target at point via Eldoc. You may adjust the
;; Eldoc strategy, if you want to see the documentation from
;; multiple providers. Beware that using this can be a little
;; jarring since the message shown in the minibuffer can be more
;; than one line, causing the modeline to move up and down:
;; (add-hook 'eldoc-documentation-functions #'embark-eldoc-first-target)
;; (setq eldoc-documentation-strategy #'eldoc-documentation-compose-eagerly)
;; Add Embark to the mouse context menu. Also enable `context-menu-mode'.
;; (context-menu-mode 1)
;; (add-hook 'context-menu-functions #'embark-context-menu 100)
:config
;; Hide the mode line of the Embark live/completions buffers
(add-to-list 'display-buffer-alist
'("\\`\\*Embark Collect \\(Live\\|Completions\\)\\*"
nil
(window-parameters (mode-line-format . none)))))
;; Consult users will also want the embark-consult package.
(use-package embark-consult
:ensure t ; only need to install it, embark loads it after consult if found
:hook
(embark-collect-mode . consult-preview-at-point-mode))
;; Optionally use the `orderless' completion style.
(use-package orderless
:custom
;; Configure a custom style dispatcher (see the Consult wiki)
;; (orderless-style-dispatchers '(+orderless-consult-dispatch orderless-affix-dispatch))
;; (orderless-component-separator #'orderless-escapable-split-on-space)
(completion-styles '(orderless basic))
(completion-category-overrides '((file (styles partial-completion))))
(completion-category-defaults nil) ;; Disable defaults, use our settings
(completion-pcm-leading-wildcard t)) ;; Emacs 31: partial-completion behaves like substring
;; Persist history over Emacs restarts. Vertico sorts by history position.
(use-package savehist
:init
(savehist-mode))
(use-package indent-bars
:config
(setq
;; Show indent guides starting from the first column.
indent-bars-starting-column 0
;; Make indent guides subtle; the default is too distractingly colorful.
indent-bars-width-frac 0.15 ; make bitmaps thinner
indent-bars-color-by-depth nil
indent-bars-color '(font-lock-comment-face :face-bg nil :blend 0.425)
;; Don't highlight current level indentation; it's distracting and is
;; unnecessary overhead for little benefit.
indent-bars-highlight-current-depth nil)
:custom
(indent-bars-no-descend-lists t) ; no extra bars in continued func arg lists
(indent-bars-treesit-support t)
(indent-bars-treesit-ignore-blank-lines-types '("module"))
;; Add other languages as needed
;; (indent-bars-treesit-scope '((python function_definition class_definition for_statement
;; if_statement with_statement while_statement)))
;; Note: wrap may not be needed if no-descend-list is enough
;;(indent-bars-treesit-wrap '((python argument_list parameters ; for python, as an example
;; list list_comprehension
;; dictionary dictionary_comprehension
;; parenthesized_expression subscript)))
:hook ((prog-mode text-mode) . indent-bars-mode))
(use-package dashboard
:ensure t
:config
(dashboard-setup-startup-hook))
(provide 'ui)
;;; ui.el ends here

View File

@@ -1,109 +0,0 @@
;;; utils.el --- Description -*- lexical-binding: t; -*-
;;
;; Copyright (C) 2026 Michael Chalupiak
;;
;; Author: Michael Chalupiak <mikec@archbox>
;; Maintainer: Michael Chalupiak <mikec@archbox>
;; Created: January 16, 2026
;; Modified: January 16, 2026
;; Version: 0.0.1
;; Keywords: abbrev bib c calendar comm convenience data docs emulations extensions faces files frames games hardware help hypermedia i18n internal languages lisp local maint mail matching mouse multimedia news outlines processes terminals tex text tools unix vc wp
;; Homepage: https://github.com/mikec/utils
;; Package-Requires: ((emacs "29.1"))
;;
;; This file is not part of GNU Emacs.
;;
;;; Commentary:
;;
;; Description
;;
;;; Code:
(use-package surround
:ensure t
:defer t
:bind-keymap ("M-'" . surround-keymap))
(use-package dirvish
:ensure t
:defer t
:init
(dirvish-peek-mode 1))
; (dirvish-override-dired-mode 1))
(use-package multiple-cursors
:ensure t
:defer t)
(use-package hl-todo
:ensure t
:defer t)
(use-package dtrt-indent
:ensure t
:defer 5
:config
(dtrt-indent-global-mode 1))
(use-package undo-fu
:ensure t
:defer 5
:bind (("C-_" . 'undo-fu-only-undo)
("C-/" . 'undo-fu-only-redo)))
(use-package undo-fu-session
:config
(setq undo-fu-session-incompatible-files '("/COMMIT_EDITMSG\\'" "/git-rebase-todo\\'"))
(undo-fu-session-global-mode))
(use-package blamer
:ensure t
; :bind (("s-i" . blamer-show-commit-info)
; ("C-c i" . blamer-show-posframe-commit-info))
:defer 10
:custom
(blamer-idle-time 0.2)
(blamer-min-offset 70)
:config
(global-blamer-mode 1))
(use-package git-gutter
:defer 10
:hook (prog-mode . git-gutter-mode)
:config
(setq git-gutter:update-interval 0.02))
(use-package git-gutter-fringe
:defer 10
:config
(define-fringe-bitmap 'git-gutter-fr:added [224] nil nil '(center repeated))
(define-fringe-bitmap 'git-gutter-fr:modified [224] nil nil '(center repeated))
(define-fringe-bitmap 'git-gutter-fr:deleted [128 192 224 240] nil nil 'bottom))
(use-package visual-replace
:ensure t
:defer 5
:config
(visual-replace-global-mode 1))
;; :bind (("C-c r" . visual-replace)
;; :map isearch-mode-map
;; ("C-c r" . visual-replace-from-isearch)))
(use-package parinfer-rust-mode
:ensure t
:defer t
:hook ((emacs-lisp-mode common-lisp-mode lisp-mode scheme-mode) . parinfer-rust-mode)
:config
(electric-pair-mode -1))
(use-package apheleia
:ensure t
:defer t)
;; (use-package zoxide
;; :ensure t
;; :defer t
;; :hook eshell-mode
;; :straight '(:type git host: sourcehut :repo "vonfry/zoxide.el"))
(provide 'utils)
;;; utils.el ends here

View File

@@ -1 +0,0 @@
list-add.png

View File

@@ -1 +0,0 @@
./address-book-new.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

View File

@@ -1 +0,0 @@
./align-horizontal-center.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 B

View File

@@ -1 +0,0 @@
./align-horizontal-left.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 B

View File

@@ -1 +0,0 @@
./align-horizontal-right.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 B

View File

@@ -1 +0,0 @@
./align-vertical-bottom.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 B

View File

@@ -1 +0,0 @@
./align-vertical-center.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 200 B

View File

@@ -1 +0,0 @@
./align-vertical-top.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 189 B

View File

@@ -1 +0,0 @@
window-new.png

View File

@@ -1 +0,0 @@
./application-exit.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 201 B

View File

@@ -1 +0,0 @@
./appointment-new.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 973 B

View File

@@ -1 +0,0 @@
appointment-new.png

View File

@@ -1 +0,0 @@
go-previous.png

View File

@@ -1 +0,0 @@
document-send.png

View File

@@ -1 +0,0 @@
document-properties.png

View File

@@ -1 +0,0 @@
./bookmark-new.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 946 B

View File

@@ -1 +0,0 @@
bookmark-new.png

View File

@@ -1 +0,0 @@
bookmark-new.png

View File

@@ -1 +0,0 @@
go-bottom.png

View File

@@ -1 +0,0 @@
document-save.png

View File

@@ -1 +0,0 @@
stock_no.png

View File

@@ -1 +0,0 @@
call-stop.png

View File

@@ -1 +0,0 @@
./call-start.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 990 B

View File

@@ -1 +0,0 @@
./call-stop.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1006 B

View File

@@ -1 +0,0 @@
stock_no.png

View File

@@ -1 +0,0 @@
format-justify-center.png

View File

@@ -1 +0,0 @@
format-justify-center.png

View File

@@ -1 +0,0 @@
color-select.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 B

View File

@@ -1 +0,0 @@
./contact-new.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 227 B

View File

@@ -1 +0,0 @@
gtk-ok.png

View File

@@ -1 +0,0 @@
stock_no.png

View File

@@ -1 +0,0 @@
stock_no.png

View File

@@ -1 +0,0 @@
stock_no.png

View File

@@ -1 +0,0 @@
gtk-ok.png

View File

@@ -1 +0,0 @@
dialog-apply.png

View File

@@ -1 +0,0 @@
dialog-apply.png

View File

@@ -1 +0,0 @@
./distribute-horizontal-left.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 163 B

View File

@@ -1 +0,0 @@
./distribute-horizontal-right.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 B

View File

@@ -1 +0,0 @@
./distribute-vertical-bottom.png

Some files were not shown because too many files have changed in this diff Show More