Comments (3)
Here is my Config
;;; config.el -*- lexical-binding: t; -*-
;; Copyright (C) 2022-2023 Abdelhak Bougouffa
;; Personal info
(setq user-full-name "My Name"
user-mail-address "my email")
;; Set the default GPG key ID, see "gpg --list-secret-keys"
;; (setq-default epa-file-encrypt-to '("XXXX"))
;; Set a theme for MinEmacs, supported themes include these from `doom-themes'
;; or built-in themes
(setq minemacs-theme 'doom-solarized-dark) ; `doom-one' is a dark theme, `doom-one-light' is the light one
(+load-theme)
;; MinEmacs defines the variable `minemacs-fonts-plist' that is used by the
;; `+setup-fonts' function. The function checks and enables the first available
;; font from these defined in `minemacs-fonts-plist'. This variable can be
;; customized to set font specs for specific Emacs faces or to enable some
;; language-specific fonts.
(+setup-fonts)
;; You can set a list of fonts to be used, like the snippet below. The first
;; font found on the system will be used:
(plist-put minemacs-fonts-plist
:default ;; <- applies to the `default' face usig `custom-theme-set-faces'
'((:family "JulaMono" :height 130) ; <- priority 1
(:family "JetBrains Mono" :height 110 :weight light) ; <- priority 2
(:family "Cascadia Code" :height 120 :weight semi-light))) ; <- priority 3
;; To set font for arbitrary Emacs face, you need just to write the face name as
;; a keyword. For example `variable-pitch' -> `:variable-pitch':
(plist-put minemacs-fonts-plist
:variable-pitch ;; <- applies to the `variable-pitch' face usig `custom-theme-set-faces'
'("Lato"
"Roboto"
"Inter"
"Helvetica"))
;; For example to set custom font for `mode-line' -> `:mode-line':
(plist-put minemacs-fonts-plist
:mode-line ;; <- applies to the `mode-line' face usig `custom-theme-set-faces'
'((:family "Lato" :weight regular)
(:family "Roboto" :weight light)))
(plist-put minemacs-fonts-plist
:mode-line-inactive ;; <- applies to the `mode-line-inactive'
'((:family "Lato" :weight regular)
(:family "Roboto" :weight light)))
;; You can also setup some language-specific fonts. For example, to use "Amiri"
;; or "KacstOne" for Arabic script (the first to be found). All scripts
;; supported by Emacs can be found in `+known-scripts'. The value of the extra
;; `:prepend' is passed the last argument to `set-fontset-font'. The extra
;; `:scale' parameter can be used to set a scaling factor for the font in Emacs'
;; `face-font-rescale-alist'.
(plist-put minemacs-fonts-plist
:arabic ;; <- applies to arabic script using `set-fontset-font'
'((:family "Amiri" :scale 0.9)
(:family "KacstOne")))
;; Use "LXGW WenKai Mono" for Han (Chinese) script
(plist-put minemacs-fonts-plist
:han
'((:family "LXGW WenKai Mono" :scale 1.3)))
;; When `me-daemon' and `me-email' are enabled, MinEmacs will try to start
;; `mu4e' in background at startup. To disable this behavior, you can set
;; `+mu4e-auto-start' to nil here.
;; (setq +mu4e-auto-start nil)
(+deferred!
;; Auto enable Eglot in modes `+eglot-auto-enable-modes' using
;; `+eglot-auto-enable' (from the `me-prog' module). You can use
;; `+lsp-auto-enable' instead to automatically enable LSP mode in supported
;; modes (from the `me-lsp' module).
(+eglot-auto-enable)
;; Add `ocaml-mode' to `eglot' auto-enable modes
(add-to-list '+eglot-auto-enable-modes 'ocaml-mode)
(with-eval-after-load 'eglot
;; You can use this to fill `+eglot-auto-enable-modes' with all supported
;; modes from `eglot-server-programs'
(+eglot-use-on-all-supported-modes eglot-server-programs)))
;; If you installed Emacs from source, you can add the source code
;; directory to enable jumping to symbols defined in Emacs' C code.
;; (setq source-directory "~/Sources/emacs-git/")
;; I use Brave, and never use Chrome, so I replace chrome program with "brave"
(setq browse-url-browser-function 'browse-url-default-browser)
;; Install some third-party packages. MinEmacs uses `use-package' and `straight'
;; for package management. It is recommended to use the same to install
;; additional packages. For example, to install `devdocs' you can use something
;; like:
(use-package devdocs
;; The installation recipe (from Github)
:straight (:host github :repo "astoff/devdocs.el" :files ("*.el"))
;; Autoload the package when invoking these commands, note that if the
;; commands are already autoloaded (defined with `autoload'), this is not
;; needed.
:commands devdocs-install
;; MinEmacs sets the `use-package-always-defer' to t, so by default, packages
;; are deferred to save startup time. If you want to load a package
;; immediately, you need to explicitly use `:demand t'.
;; :demand t
;; Set some custom variables, using the `:custom' block is recommended over
;; using `setq'. This will ensure calling the right setter function if it is
;; defined for the custom variable.
:custom
(devdocs-data-dir (concat minemacs-local-dir "devdocs/")))
;; Module: `me-tools' -- Package: `vterm'
;; When the libvterm present in the system is too old, you can face VTERM_COLOR
;; related compilation errors. Thil parameter tells `vterm' to download libvterm
;; for you, see the FAQ at: github.com/akermu/emacs-libvterm.
;; (with-eval-after-load 'vterm
;; (setq vterm-module-cmake-args "-DUSE_SYSTEM_LIBVTERM=Off"))
;; Module: `me-natural-langs' -- Package: `spell-fu'
(with-eval-after-load 'spell-fu
;; We can use MinEmacs' helper macro `+spell-fu-register-dictionaries!'
;; to enable multi-language spell checking.
(+spell-fu-register-dictionaries! "en" "fr"))
;; Module: `me-rss' -- Package: `elfeed'
(with-eval-after-load 'elfeed
;; Add news feeds for `elfeed'
(setq elfeed-feeds
'(
;; General
("https://frame.work/blog.rss" Framework)
("https://factorio.com/blog/rss" Factorio)
("https://news.nononsenseapps.com/index.atom" Feeder)
("https://kagifeedback.org/atom/t/release-notes" Kagi)
("https://news.play.date/index.xml" Playdate)
;; Linux
("https://blog.linuxmint.com/?feed=rss2" linux LinuxMint)
("https://archlinux.org/news/" linux Arch)
("https://fedoramagazine.org/feed/" linux Fedora)
("https://endeavouros.com/news/" linux EndeavourOS)
;; Boat Stuff
("https://buffalonickelblog.com/feed/" boat Buffalo-Nickel)
("https://mobius.world/feed/" boat Mobius)
("https://www.mvuglybetty.com/blog-feed.xml"boat Ugly-Betty)
;; Emacs
("http://xenodium.com/rss.xml" emacs Xenodium)
("https://cmdln.org/post/" emacs Commandline)
("https://karl-voit.at/feeds/lazyblorg-all.atom_1.0.links-and-content.xml" Karal-Voit emacs)
("https://systemcrafters.net/rss/news.xml" emacs SystemCrafter)
("https://sachachua.com/blog/feed/" emacs SachaChua)
("https://rostre.bearblog.dev/feed/?type=rss" emacs ParsingTime)
("https://200ok.ch/atom.xml" emacs 200ok)
("https://planet.emacslife.com/atom.xml" emacs PlanetEmacsLife)
;; News
)))
;; Module: `me-email' -- Package: `mu4e'
(with-eval-after-load 'mu4e
;; Load personal aliases, a file containing aliases, for example:
;; alias gmail "Firstname Lastname <[email protected]>"
;; alias work "Firstname Lastname <[email protected]>"
;; (setq mail-personal-alias-file (concat minemacs-config-dir "private/mail-aliases.mailrc"))
(setq +mu4e-auto-bcc-address "[email protected]") ;; Add an email address always included as BCC
;; Register email accounts with mu4e
;; Use MinEmacs' `+mu4e-register-account' helper function to register multiple accounts
(+mu4e-register-account
"Google mail" ;; Account name
"gmail" ;; Maildir
`((user-mail-address . "[email protected]")
(mu4e-sent-folder . "/gmail/Sent Mail")
(mu4e-drafts-folder . "/gmail/Drafts")
(mu4e-trash-folder . "/gmail/Trash")
;; These settings aren't mandatory if a `msmtp' config is used.
(smtpmail-smtp-server . "smtp.googlemail.com")
(smtpmail-smtp-service . 587)
;; Define account aliases
(+mu4e-account-aliases . ("[email protected]"
"[email protected]"))
;; Org-msg greeting and signature
(org-msg-greeting-fmt . "Hi%s,")
;; Generate signature
(org-msg-signature . ,(+org-msg-make-signature
"Regards," ;; Closing phrase
"Firstname" ;; First name
"Lastname" ;; Last name
"/R&D Engineer at Some company/")))
'default ;; Use it as default in a multi-accounts setting
'gmail)) ;; This is a Gmail account, store it and treat it accordingly (see `me-mu4e-gmail')
;; Module: `me-org' -- Package: `org'
(with-eval-after-load 'org
(setq org-directory "~/Documents/"
;; Set where org agenda get todos from
org-agenda-files '("~/Documents/agenda.org" "~/Documents/To-Research.org" "~/Documents/inbox.org" "~/Documents/notes.org" "~/Documents/books.org")
org-default-notes-file (expand-file-name "notes.org" org-directory)
;; Set where archive org-headings go
org-archive-location "~/Documents/Archive/archive.org::"
;; Set org-ellipsis
;; org-ellipsis " ↴ "
;; org-ellipsis" ⤷ "
org-ellipsis " ... "
org-log-done 'time
org-hide-emphasis-markers t
;; ex. of org-link-abbrev-alist in action
;; [[arch-wiki:Name_of_Page][Description]]
org-link-abbrev-alist ; This overwrites the default Doom org-link-abbrev-list
'(("google" . "http://www.google.com/search?q=")
("arch-wiki" . "https://wiki.archlinux.org/index.php/")
("ddg" . "https://duckduckgo.com/?q=")
("wiki" . "https://en.wikipedia.org/wiki/"))
org-table-convert-region-max-lines 20000
org-todo-keywords ; This overwrites the default Doom org-todo-keywords
'((sequence
"TODO(t)" ; A task that is ready to be tackled
"NEXT(n)" ; This is for something that I am in the process of doing (for example reading a book)
"WAIT(w)" ; Something is holding up this task
"|" ; The pipe necessary to separate "active" states and "inactive" states
"DONE(d)" ; Task has been completed
"CANCELLED(c)" ))) ; Task has been cancelled
)
(use-package org-superstar)
(setq
;; Setings for org-superstar
org-superstar-headline-bullets-list '("◉" "●" "○" "◆" "●" "○" "◆")
org-superstar-item-bullet-alist '((?- . ?➤) (?+ . ?✦)) ; changes +/- symbols in item lists
)
(eval-after-load 'org
(setq org-superstar 1)
)
;; Module: `me-notes' -- Package: `denote'
(with-eval-after-load 'denote
(setq denote-directory "~/Org/notes/"))
;; Module: `me-media' -- Package: `empv'
(with-eval-after-load 'empv
;; Set the radio channels, you can get streams from radio-browser.info
(setq empv-radio-channels
'(("El-Bahdja FM" . "http://webradio.tda.dz:8001/ElBahdja_64K.mp3")
("El-Chaabia" . "https://radio-dzair.net/proxy/chaabia?mp=/stream")
("Quran Radio" . "http://stream.radiojar.com/0tpy1h0kxtzuv")
("Algeria International" . "https://webradio.tda.dz/Internationale_64K.mp3")
("JOW Radio" . "https://str0.creacast.com/jowradio")
("Europe1" . "http://ais-live.cloud-services.paris:8000/europe1.mp3")
("France Iter" . "http://direct.franceinter.fr/live/franceinter-hifi.aac")
("France Info" . "http://direct.franceinfo.fr/live/franceinfo-hifi.aac")
("France Culture" . "http://icecast.radiofrance.fr/franceculture-hifi.aac")
("France Musique" . "http://icecast.radiofrance.fr/francemusique-hifi.aac")
("FIP" . "http://icecast.radiofrance.fr/fip-hifi.aac")
("Beur FM" . "http://broadcast.infomaniak.ch/beurfm-high.aac")
("Skyrock" . "http://icecast.skyrock.net/s/natio_mp3_128k"))
;; See: docs.invidious.io/instances/
empv-invidious-instance "https://invidious.projectsegfau.lt/api/v1"))
;; Module: `me-ros' -- Package: `ros'
(with-eval-after-load 'ros
(setq ros-workspaces
(list
(ros-dump-workspace
:tramp-prefix "/docker:ros@ros-machine:"
:workspace "~/ros_ws"
:extends '("/opt/ros/noetic/"))
(ros-dump-workspace
:tramp-prefix "/docker:ros@ros-machine:"
:workspace "~/ros2_ws"
:extends '("/opt/ros/foxy/")))))
;; Module: `me-vc' -- Package: `forge'
(with-eval-after-load 'forge
;; To setup private Gitlab instance
;; 1. Add this to your ~/.gitconfig
;; [gitlab "gitlab.private.com/api/v4"]
;; user = my.username
;; 2. Then create an access token on GitLab. I ticked api and write_repository, which seems to work fine so far. Put the token in ~/.authinfo.gpg
;; machine gitlab.private.com/api/v4 login my.user^forge password <token>
;; 3. Use this in your config:
(add-to-list 'forge-alist '("gitlab.private.com" "gitlab.private.com/api/v4" "gitlab.private.com" forge-gitlab-repository)))
;; Module: `me-vc' -- Package: `jiralib2'
;; When `jiralib2' is enabled, do some extra stuff
(when (memq 'jiralib2 minemacs-configured-packages)
;; You need to set `jiralib2-url' and `jiralib2-user-login-name'
(setq jiralib2-url "https://my-jira-server.tld/"
jiralib2-user-login-name "my-username")
;; Add a hook on git-commit, so it adds the ticket number to the commit message
(add-hook
'git-commit-mode-hook
(defun +jira-commit-auto-insert-ticket-id-h ()
(when (and jiralib2-user-login-name
;; Do not auto insert if the commit message is not empty (ex. amend)
(+first-line-empty-p))
(goto-char (point-min))
(insert "\n")
(goto-char (point-min))
(+jira-insert-ticket-id)
(insert ": ")))))
from minemacs.
Thank you for the feedback.
You've caught a pretty rare bug! The CI didn't catch it. It happens only on non-x86_64 targets (it seems that you are on an Apple M1/M2).
I've just pushed a fix for this. Please confirm if it solves your issue.
The treesit-fold: no available parser for the current buffer. [10 times]
message is not harming, it is just an info message. However, I've disabled treesit-fold
for the moment as it is in a too early dev stage (it is my fork to port of ts-fold
to treesit
, it is buggy ATM, and didn't get the time to dig deeper):
Please note also that the sample config.el
is not intended to be used as it is. For example, it will beat you when you use Magit
if you used it like this (the example of jiralib2
is specific to users using Jira to manage tickets).
from minemacs.
Ok I have tested it and it and it works! Thank you so much for fixing this so quickly!
I also have my own literate config but I was trying to eliminate potential sources of errors.
from minemacs.
Related Issues (20)
- [BUG] Melpa folder gets put in the trash on MacOS HOT 1
- [Question] how to define my own module?
- [BUG] [Windows] Emacs freeze on file recovery HOT 10
- [BUG] theme revert back during commit change with magit HOT 1
- [BUG] Nix-ts-mode doesn't seem to work with tree-sitter HOT 10
- [BUG] Hook `minemacs-first-file-hook` doesn't seem to run HOT 34
- [BUG] Warning: ‘+spell-fu-register-dictionaries!’ is an obsolete HOT 1
- [BUG] Jinx compilation failed [Windows] HOT 4
- [BUG] Export org to latex and opening them doesn't work HOT 3
- [BUG] Bug with Corfu HOT 17
- [BUG] Asking for "Font installation directory" each startup HOT 2
- Cannot use LSP Servers, stuck on "starting" HOT 3
- [BUG] Dirvish crashes emacs on $HOME HOT 7
- [BUG] tramp cannot be installed correctly HOT 1
- [BUG] two package devdocs HOT 2
- [BUG] backgroud doom-modeline HOT 2
- Rename light-dashboard to enlight HOT 1
- [BUG] MIemacs start interface shortcut keys are invalid HOT 2
- enlight now works in Emacs 27 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from minemacs.