Compare commits

...

144 commits
v2.0 ... master

Author SHA1 Message Date
b8adef76fb chore: update gitignore with compile elpa files, org-roam-db, ... 2025-08-14 11:44:38 +02:00
53aa91408c fix: which-func custom setting 2025-08-14 11:44:30 +02:00
06208d5491 feat: Display function name in header as well 2025-07-24 10:24:54 +02:00
423acecb38 replace whitespace-cleanup with delete-trailing-whitespace
whitespace-cleanup seems to do some formatting, tabs-to-whitespace and
vice versa,... which are kinda annoying.

We should be fine for now with just removing trailing whitespaces.
2025-07-24 10:24:01 +02:00
706b396e1c feat: load org-roam at startup 2025-05-27 14:06:22 +02:00
b79d782623 feat: Make dashboard a bit fancier 2025-05-27 14:06:08 +02:00
8ba598127b feat: show line numbers 2025-05-27 13:49:51 +02:00
4aeb92eb6f feat: Add which-func configuration 2025-05-27 13:06:26 +02:00
c3a188defe fix: Remove unused mark section
M-SPC is used for selecting region anyway
2025-05-27 13:06:08 +02:00
0c18e02686 fix: liniting errors on init.el 2025-05-27 12:55:07 +02:00
6a57cbfd1f feat: Add custom modeline 2025-05-27 12:51:50 +02:00
015ed00b0f feat: refactor org mode configuration
Defer loading to speed up startup and combine all the configuration of
org mode in the same block.

org-ellipsis is newly added and gives some eye candy when org blocks
are folded.
2025-05-27 12:51:50 +02:00
980ce6750b feat: Add paren package configuration
show-paren-context-when-offscreen is handy to indicate when we are
offscreen for a block of code
2025-05-27 12:51:50 +02:00
28b6168110 fix: refeactor electric pair
It's a built-in package, so we can provide a proper configuration
section using use-package.
2025-05-27 12:51:50 +02:00
c809f480bd fix: load theme after it is actually loaded, not at init time 2025-05-27 12:51:50 +02:00
3591e5704e fix: remove/apply defer only where it makes sense
:defer is to defer loading because some other action (hook/config/...)
will load it when appropriate.
2025-05-27 12:51:50 +02:00
e6e5b5e461 feat: Remove org-roam-ui
Not using it, so don't have it.
2025-05-27 12:51:50 +02:00
a79987f30f chore: stylefix 2025-05-27 12:51:50 +02:00
3f93a19d4b feat: enable corfu iso company-mode
No issues so far when using melpa iso latest git repo (elpaca behaviour)
2025-05-27 12:51:50 +02:00
80b3e4dbc1 feat: enable vertico-cycle and call hook when appropriate 2025-05-27 12:51:50 +02:00
377a5cadff fix: whitespace has a separate built-in package
It has a better hook (whitespace-cleanup) than the barebones delete-trailing-whitespace.
2025-05-27 12:51:50 +02:00
adab1147e0 fix: Docs on keys to use when resizing 2025-05-27 12:51:50 +02:00
7f901b23ae feat: Remove elpaca
I'm not actually using it and it's just bloat at this point.
This speeds up the startup significantly.

Remove what you don't need.
2025-05-27 12:51:50 +02:00
a731bab651 Only pop-up messages buffer if there is an error 2025-05-26 10:59:45 +02:00
2572e8c221 Fix linting warnings in early-init/init.el
There should be no functional changes
2025-05-26 10:59:38 +02:00
6c24da4503 Rework eglot configuration to use built-in package 2025-05-25 17:26:38 +02:00
f2dc1fe496 Add flymake configuration 2025-05-25 17:26:30 +02:00
49a5164f45 Rework isearch configuration using emacs-solo inspiration 2025-05-25 17:26:06 +02:00
22c029b2f4 Remove old eldoc/jsonrpc workarounds and just use built-in packages 2025-05-25 17:25:41 +02:00
ff740ce08e feat: Add org-download 2025-04-30 09:40:43 +02:00
1a21781fba fix: switch back to company from corfu to avoid random crash
It seems like a known issue (don't have the link anymore..) but
company is doing fine for now so just switch back to it.
2025-04-30 09:39:47 +02:00
d3dc9465dd fix: load init.el of notes repo when org-roam is properly loaded
This avoids all kinds of issues about variables not being declared,
etc. in the project-notes init.el
2025-04-30 09:38:32 +02:00
f5ef8d68c5 fix: Update visit/reload-config docs 2025-04-30 09:37:32 +02:00
0b57fa79b5 feat: Update elpaca
This avoids the warning at startup about not being able to determine
elpaca core date.
2025-04-30 09:36:55 +02:00
c47c5a5185 fix: revert-mode setting 2025-01-09 21:11:48 +01:00
17e062e07f Add font and icon/nerd-font section 2025-01-09 20:55:30 +01:00
ede533e792 Use load-file option for custom file and notes iso manual check 2025-01-09 20:54:56 +01:00
3853d9d247 fix: close minibuffer if open when pressing C-g 2025-01-09 20:54:56 +01:00
c8fa26b07b feat(corfu): make <tab> execute complete 2025-01-09 20:54:56 +01:00
7252361ab1 feat(consult): enable 2025-01-09 20:54:56 +01:00
275d07b961 feat(buffer-completion): replace company-mode with corfu 2025-01-09 20:54:56 +01:00
e692a9de93 add(org-roam): custom command to filter on a tag 2025-01-07 22:05:46 +01:00
28dae3bfeb add(org-roam): don't limit tags to 10 chars 2025-01-07 22:05:29 +01:00
cea6f3f2c0 add(org-roam): enable db autosync mode 2025-01-07 21:48:45 +01:00
0e722c06b5 add(org-roam): show tags in org-roam-node-find
This allows us to search for them as well
2025-01-07 21:47:58 +01:00
34e4462f1b add(yas): enable also in text-mode 2025-01-07 21:47:39 +01:00
2023ec08b3 add(snippets): Add kaboom snippet for c-mode 2024-12-21 19:54:33 +01:00
7285b8750e feat: load init.el from (org-)notes repo if it exists 2024-11-17 19:27:45 +01:00
ad0adbc726 feat: Enable global auto-revert mode 2024-11-04 09:43:21 +01:00
75bda91171 In-buffer-completion: Add company-mode 2024-10-17 21:59:48 +02:00
a68f566cd9 In-buffer-completion: Disable corfu
Getting crashes with emacs 29.4, seems to be a known issue.
Until emacs 30, find another in-buffer-completion solution.
2024-10-17 21:59:09 +02:00
a5efd66ec7 In-buffer-completion: Add consult completion method 2024-10-17 21:58:59 +02:00
40d9146a45 In-buffer-completion: Add separate section 2024-10-17 21:58:34 +02:00
d0657174dc Update org-agenda-files with todo.org inside org-roam-directory 2024-09-29 22:58:41 +02:00
3ad176fbf9 ORG-TODO: Mark parent task done if child tasks are done 2024-09-29 22:02:19 +02:00
6aaae92c53 ADD filetags snippet 2024-09-29 22:02:16 +02:00
934c375c34 ADD org-roam-dailies-goto-today keybinding 2024-09-29 15:13:45 +02:00
1521fcb13e ADD jsonrpc section
This is a built-in package which we are updating for eglot.
2024-09-27 16:13:47 +02:00
21fbc47a8f ADD eldoc section
This is a built-in package which we are updating for eglot.
This requires some emacs-fu which I found on the elpaca github.
2024-09-27 16:13:47 +02:00
1a99cb8ccb ELPACA: Wait until use-package integration fully loaded
Stolen from github:
https://github.com/progfolio/elpaca/issues/236

If the maintainer does it, it probably is needed.
2024-09-27 15:50:10 +02:00
ce1c827f4c ELPACA: Add sub-titles 2024-09-27 15:49:58 +02:00
62148f96ca Simplify keys for org-mode source block snippets 2024-09-27 10:08:33 +02:00
8b1d672215 FIX org-mode source block snippets 2024-09-27 10:07:52 +02:00
e837ce7551 ENABLE consult-find 2024-09-26 22:48:20 +02:00
f82e59591e ENABLE consult-flymake 2024-09-26 22:47:05 +02:00
83dc765086 ENABLE consult-compile-error 2024-09-26 22:46:53 +02:00
1022956e46 ENABLE consult-grep 2024-09-26 22:30:48 +02:00
32ddb062c0 ORG_ROAM: Add consult integration 2024-09-26 22:21:26 +02:00
bbffcd8d2b DIRED: Add guessing of target directory 2024-09-26 22:21:11 +02:00
6127374888 ORG_ROAM: Add completion everywhere
That way, when we type a part of the note name, we get an automatic
link/insert of the node.
2024-09-26 22:19:06 +02:00
8a5527c2d4 ADD org-roam + org-roam-ui 2024-09-25 23:44:37 +02:00
c5cebd2147 REMOVE logo
Img is bloat
2024-09-24 22:22:47 +02:00
5ca1559c20 Move cheat-sheet to inside config.org 2024-09-24 22:21:56 +02:00
3c24cac0c1 DELETE sunrise-commander
Not using it, maybe somewhere in the future, I'll re-enable/add it.
2024-09-24 22:08:36 +02:00
Laurens Miers
b0b017251c Merge pull request #7 from laurensmiers/unclutter
Unclutter/refresh config
2024-09-24 22:01:13 +02:00
7c39432564 Move sudo to myrmi/sudo-current-buffer
It's a new function, use the custom prefix to make that clear.
2024-09-24 21:10:57 +02:00
29f8a2b08b Update gitignore 2024-09-24 21:10:55 +02:00
ddc622f270 Move config_new.org to config.org
Use it as the main config now.
2024-09-24 21:10:53 +02:00
cb018ca96b Move config.org to config_old.org
This to keep the old settings, you never know.
Yeah, I know, it's in git and I can always go back, but it's easier to
compare if the file is still in the repo...
2024-09-24 21:10:51 +02:00
caf08093dd ADD eshell plan9/smart-mode settings 2024-09-24 21:10:49 +02:00
4233409d50 Enable dired-x whenever dired mode is invoked 2024-09-24 21:10:47 +02:00
55e765911e Rename Vertico-stack to Completion section 2024-09-24 21:10:44 +02:00
d3f6a04e9b ADD resize-mode 2024-09-24 21:10:43 +02:00
c31bd5ab5b ADD visible bell 2024-09-24 21:10:41 +02:00
edee35724e ADD python mode 2024-09-24 21:10:40 +02:00
f2cfe8035c ADD zig mode 2024-09-24 21:10:39 +02:00
954196d061 ADD rust-mode 2024-09-24 21:10:37 +02:00
d5f79bf639 ADD angry faces face to major prog modes 2024-09-24 21:10:35 +02:00
78afc078ff GENERAL: Enable column numbers 2024-09-24 21:10:33 +02:00
5ef08b39b6 ADD volatile highlights 2024-09-24 21:10:28 +02:00
584a0b1b7c MAGIT: Add example command to update submodules 2024-09-24 21:10:25 +02:00
5395706577 ORG_MODE: Fix snippets to place cursor inside source block 2024-09-24 21:10:21 +02:00
2be3a79aed CORFU: Enable automatic completion in buffer
Also cycle if we reach begin/end of list of candidates.
2024-09-24 21:10:18 +02:00
f6c14e7caa GENERAL: Add adaptive cursor width 2024-09-24 21:10:16 +02:00
d757ce44a8 GENERAL: Move general config first before vertico stack
This fixes the init error on vertico stack symbols not being known due
to ':ensure' being removed since it should be enabled by default but
this was only done later in the 'general config' section.
2024-09-24 21:10:10 +02:00
122f1f5186 ADD Iedit from old config
It's too usefull not to have
2024-09-24 21:10:05 +02:00
e02a1990aa ADD Zygospore from old config
It's too usefull not to have
2024-09-24 21:09:55 +02:00
074c5fe0b1 ADD Org mode settings from old config
- Enable Super/sub-scripts
- Preserve indentation
- Org bullets
2024-09-24 21:09:15 +02:00
1b6619a978 USE_PACKAGE: always set ':ensure t' by default 2024-09-24 21:09:13 +02:00
6e52096e2d Only load custom file if it exists 2024-09-24 21:09:07 +02:00
012e960510 COMPILATION: goto end of buffer on completion 2024-09-24 21:09:05 +02:00
6f306b4ea5 Add "Enable disabled commands" section
Enable narrow functions cause they're really handy.
2024-09-24 21:09:00 +02:00
091b5fbda2 GENERAL: Enable delete-selection-mode 2024-09-24 21:08:57 +02:00
31da5498b6 SNIPPETS: Fix org mode lisp source block snippet + add general source block 2024-09-24 21:08:55 +02:00
752734c381 SNIPPET: Add git-commit message template 2024-09-24 21:08:49 +02:00
1449ae0e5f SNIPPET: Add org source-code-block snippet 2024-09-24 21:08:47 +02:00
f1eed76f1b SNIPPET: Add c-define snippet 2024-09-24 21:08:43 +02:00
cdcd577939 INIT: Move customization to its own file that we can ignore 2024-09-24 21:08:40 +02:00
69010af86e INIT: Fix config file name for myrmi/{visit,reload}-config 2024-09-24 21:08:32 +02:00
c748fb94c4 ADD treesitter-mode for C 2024-09-24 21:08:30 +02:00
8b3f426ae1 ADD markdown-mode 2024-09-24 21:08:26 +02:00
8732e36160 PROJECTILE: Don't set indexing method
This can be forced through .dir.locals.el if necessary.
Leave it at default value (alien).
2024-09-24 21:08:20 +02:00
ee7073ea67 ADD Yasnippet hook to prog- and org-mode 2024-09-24 21:08:16 +02:00
0482e48c7f Ensure eglot does not take full control of Xref
Eglot by default will take full control of xref and make the
xref-backend-functions (eglot-xref-backend t) .

To have dumb-jump as backup if eglot would fail, instruct eglot to
stay out of Xref and add/remove eglot xref backend manually.
2024-09-24 21:08:12 +02:00
2c29e77132 ADD dumb-jump mode
Add it immediatelly to the list of xref backends.
2024-09-24 21:08:09 +02:00
f121ec0330 REMOVE smartparens
Replaced with electric-pair mode, good enough for my usecase.
Don't need all the fancy stuff smartparens provides
2024-09-24 21:08:04 +02:00
9d84faf97a ADD custom visit/reload config functions 2024-09-24 21:07:53 +02:00
f44190a45d ELISP: add demos to describe-function
It saves me some extra googling.
2024-09-24 21:07:50 +02:00
1475b4acb8 CUSTOM: Add functions to reload .dir-locals.el 2024-09-24 21:07:47 +02:00
832bc40d81 Set path/exec-path to shell path
For .dir-locals.el to find the custom programs
2024-09-24 21:07:37 +02:00
12b33b1f49 PROJECTILE: use hybrid method
Gives more flexibility with .projectile file IMO to add/remove folders
from projectile-find-file .
2024-09-24 21:07:32 +02:00
53dd2a9084 ADD custom ceedling commands
Convience function to run the ceedling command
2024-09-24 21:07:23 +02:00
43c75a29e2 REMOVE custom-set-variables
Find a way to move this elegantly to a file which can be ignored by git
2024-09-24 21:07:17 +02:00
1549038f73 ADD backup configuration
Store backups in <emacs-root>/backups
2024-09-24 21:07:13 +02:00
49e26e5568 ADD Marginalia
Some eye candy in the minibuffer
2024-09-24 21:07:11 +02:00
6e1ed0ebb6 ADD Orderless 2024-09-24 21:07:07 +02:00
17515a8377 ADD Corfu
For nice popup in eglot.
2024-09-24 21:07:04 +02:00
393bace7cf ADD consult example config 2024-09-24 21:06:58 +02:00
35102de7f5 REMOVE fido, ADD Vertico
Switch from fido to vertico
2024-09-24 21:06:44 +02:00
df5d034907 PROJECTILE: install project.el hooks
Some packages use the project.el functions/bindings (like
consult, ...) for their functionality. Install the projectile bindings
so that they start using the projectile framework.
2024-09-24 21:06:37 +02:00
22a827592d REMOVE imenu
use consult-imenu in future
2024-09-24 21:06:28 +02:00
801188ed90 ADD electric-pair mode in prog-mode
This was originally supplied by smartparens but I'm only using a
subset of this package.
The main functionality which I used from smartparens is available with
electric-pair-mode .
2024-09-24 21:06:20 +02:00
7329b044f3 ADD save-symbol-at-point function
This was originally supplied by smartparens but I don't need the whole
package for this function.

Other functionality which I used from smartparens is available with
electric-pair-mode .
2024-09-24 21:06:14 +02:00
9541cfbf44 Delete trailing whitespaces before-saving
Enable globally because I don't know of a scenario where we would ever
want this.
2024-09-24 21:05:59 +02:00
b8ef2937f3 ADD save history and recentf 2024-09-24 21:05:51 +02:00
a6c81d05ba ADD smartparens 2024-09-24 21:05:48 +02:00
00d40a2d5a PROJECTILE: Initial configuration
Not sure yet about this but working for now.
Override default project keymap
2024-09-24 21:05:25 +02:00
bd3f737477 ADD enhanced dired 2024-09-24 21:05:14 +02:00
db266f3ece ADD 'transient' dependant package for magit 2024-09-24 21:05:11 +02:00
d184007b9b ADD spell checking in prog-mode 2024-09-24 21:05:02 +02:00
3bf48f5927 ADD zap-up-to-char keybinding 2024-09-24 21:04:58 +02:00
ef04adcfd9 ADD hippie-expand
Remap dabbrev to hippie-expand
2024-09-24 21:04:48 +02:00
0db6d1753e ADD multipe-cursor keybindings 2024-09-24 21:04:44 +02:00
0f9db243ad 'Fresh' start
- Use config_new.org as main config file
  Trimmed down version of old config.
  Insipred by 'mastering emacs' book to use more the built-in
  functionality of emacs. I found that It's more than good enough for my usecases.
- adapt early-init for quicker startup
  Stolen from doom emacs
- Don't use/load project.org
  Use .dir-locals.el you peasant
2024-09-24 21:01:46 +02:00
15 changed files with 2702 additions and 1360 deletions

26
.gitignore vendored Normal file
View file

@ -0,0 +1,26 @@
custom.el
backups
eshell
elpaca
eln-cache
elpa
org-roam.db
transient
# projectile
projectile*
# savehist file
history
# recentf file
recentf
session*
# .org converted files
config*.el
# Tramp connection file
tramp

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "extra/sunrise-commander"]
path = extra/sunrise-commander
url = https://github.com/escherdragon/sunrise-commander

View file

@ -1,8 +0,0 @@
C-M-Space : smartparens wrapping
C-c C-c : calculator (see init.el)
C-h k <key-sequence>: lookup key sequence
C-x 0 : close current window
C-q <tab> : insert a <tab>
M-x (un)tabify : (replace) tabs
M-x describe-bindings : list of all mapped keys/commands
M-p : fill-paragraph, works for doxygen as well

2388
config.org

File diff suppressed because it is too large Load diff

1608
config_old.org Normal file

File diff suppressed because it is too large Load diff

View file

@ -1 +1,18 @@
;;; early-init.el --- Early Init -*- lexical-binding: t; -*-
;;; Commentary:
;; Early init configuration for Emacs Solo
;;
;;; Code:
;; Only care about errors in *Messages* buffer
(setq warning-minimum-level :error)
;; We control when packages are enabled
(setq package-enable-at-startup nil)
(provide 'early-init)
;;; early-init.el ends here

@ -1 +0,0 @@
Subproject commit cf8305a149a321d028858057e7a7c92f0038a06a

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

25
init.el
View file

@ -1,17 +1,28 @@
;;; init.el --- Init -*- lexical-binding: t; -*-
;;; Commentary:
;;; Load init files
;;; Code:
;;; Increase garbage collection threshold during init but leave it to the default value after
;;; There are a LOT of articles/sites/... discussing this:
;;; https://bling.github.io/blog/2016/01/18/why-are-you-changing-gc-cons-threshold/
;;; https://jonnay.github.io/emagicians-starter-kit/Emagician-Base.html
;;; ...
(let ((gc-cons-threshold most-positive-fixnum))
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
;; This is the actual config file. It is omitted if it doesn't exist so emacs won't refuse to launch.
(defvar config-file (expand-file-name "config.org" user-emacs-directory))
(defvar project-file (expand-file-name "project.org" user-emacs-directory))
(defvar my-config-file (expand-file-name "config.org" user-emacs-directory))
(when (file-readable-p config-file)
(org-babel-load-file (expand-file-name config-file)))
(when (file-readable-p my-config-file)
(org-babel-load-file (expand-file-name my-config-file)))
;; If it exists, load some project-specific configurations.
(when (file-readable-p project-file)
(org-babel-load-file (expand-file-name project-file)))
(load custom-file :no-error-if-file-is-missing)
)
(provide 'init)
;;; init.el ends here

6
snippets/c-mode/define Normal file
View file

@ -0,0 +1,6 @@
# -*- mode: snippet -*-
# name: Make a define
# key: def
# --
#define ${1:mydefine$(upcase yas-text)} $2

6
snippets/c-mode/kaboom Normal file
View file

@ -0,0 +1,6 @@
# -*- mode: snippet -*-
# name: kaboom
# key: kb
# --
char (*__kaboom)[sizeof($1)] = 1;

View file

@ -0,0 +1,8 @@
# -*- mode: snippet -*-
# name: Start emacs source block
# key: se
# --
#+BEGIN_SRC emacs-lisp
${1}
#+END_SRC

View file

@ -0,0 +1,6 @@
# -*- mode: snippet -*-
# name: Filetags
# key: ft
# --
#+FILETAGS: :$1:

View file

@ -0,0 +1,8 @@
# -*- mode: snippet -*-
# name: Org source code block
# key: s
# --
#+BEGIN_SRC
${1}
#+END_SRC

View file

@ -0,0 +1,10 @@
# -*- mode: snippet -*-
# name: Git commit message template
# key: bac
# --
Before this commit,
${1}
After this commit,
${2}