This commit fixes an issue with the macro `phundrak-var-or-if-nil' by
removing it entirely. For some reason, it was broken in a previous
commit, and the path did not show up in the prompt unless in a git
repository.
Now, `phundrak-var-or-if-nil' is removed entirely.
Previously, some code relied on dash.el to generate some code when
tangling my Emacs config, but if Emacs was to be launched without an
up to date tangled configuration, it would attempt to automatically
tangle it. However, due to dash.el not being loaded, it could not find
some of the required functions.
This commit replaces these functions with handmade functions that can
be loaded at tangle-time, and tangling always works.
Mu4e:
- Set a better date format for mu4e than the American format
- Remove mu4e relying on w3m
Org:
- change the size of fixed font
- change variable-pitch font
Add function `phundrak/file-to-string' which reads the content of a
file to a string.
Eshell banner makes one less shell command and makes it a bit more
distro-agnostic, although still very Linux-centered.
Turns out isync didn’t sync my /Junk directory in which were a lot of
emails I would have liked to read. Now bookmarks referring to /Inbox
also display content from /Junk
Also, emails are automatically signed with PGP/MIME now.
org-block background color was too light and had too little contrast
with the selection face. Similarly, `mu4e-highlight-face' was empty.
This commit fixes that by giving org-block a darker background and
`mu4e-highlight-face' a background and foreground color.
Having a project located in a remote host in
`projectile-ignored-projects' made Emacs often connect to Tilo for no
apparent reasons. This commit should fix it.
I use now the official nord theme found on Articices Studio’s Github.
Faces broke partly due to two different calls to
`custom-theme-set-faces'. This can be fixed by putting all faces
editions together. However, this commit also removes custom faces for
mu4e since colors are no longer broken.
The code for faces is now generated from the org tables in the
related subheadings.
When downloading a whole channel, ytdl used to download everything
including playlists displayed on the user’s main page. Now, a check
is performed in order to verify if the URL passed is a channel, and
if it is only download the videos listed on their uploads page.
Between Emacs 28.0.50.145785 and Emacs 28.0.50.146000, a commit broke my
face config, and inheriting from `fixed-pitch' no longer made my faces
fixed-pitched. This commit therefore sets directly the font of the faces
than need to be fixed-pitched instead of relying on the `fixed-pitch'
face.
`set-pape' now find all files in $PAPESDIR, including subdirectories.
The way the wallpaper is randomly selected is also simplified, and the
script is now written in bash rather than in fish.
`select-pape' now writes to $HOME/.cache/wallpaper only when a wallpaper
is selected. Otherwise, nothing is done.
Autostart did not detect properly if some processes were actually
running or not. This commit fixes it and only launches programs marked
to run only once only when they are not already running.
select-pape did not set its cache file in the correct location, this is
now fixed
Now wallpaper-related scripts use xwallpaper instead of nitrogen
select-pape gives the user the ability to choose their wallpaper throguh
sxiv and xwallpaper
This commit fixes an issue with awiki where selecting a page which title
contains whitespace would not open the page in the browser due to
remaining whitespace. This commit fixes it by replacing whitespace with
underscores.
When Emacs starts up, it verifies twice the state of its .el and .elc
configuration files that come from emacs.org. If any of the .el file is
older than emacs.org, the latter is tangled again.
Then, if it detects any of the .elc file is older than its .el
counterpart, it will byte-compile the latter.
Tangling now happens within the launched Emacs instance and not in a
separate instance.
Nom all the orgmode configuration is done using noweb, and only one
block is tangled.
Some parts of the org configuration were reorganised to make the TOC
a bit lighter.
The screenshots on the index page are better off on the i3 page
Setupfiles were not found for org files in subdirectories, this is fixed
Images are now correctly placed
All exported `.el' files now have a lexical-binding header. This should
make parsing these files faster.
Custom variables such as the Nord colors are now declared with `defvar'
rather than with `setq' directly to avoid using free variables.
The package `info-colors' is now added, making info pages much more
pleasing to the eye.
Some headers in the Org chapter are renamed and organized alphabetically
Additional org variables to make it more usable
Variable `phundrak//eshell-banner--max-length' is renamed to
`phundrak//eshell-banner--max-length-part' in order to make its usage
more obvious from its name.
The w3m layer is now removed as I did not use it at all.
The conlanging layer is moved to ~/fromGIT/emacs-packages and now a
symlink points to its new location. This is done in order to prevent
Emacs from compiling its .el files when recompiling its configuration
files.
Configuration files are now compiled when emacs.org is tangled by Emacs
itself or if the .el files are newer than the .elc files.
TODO: find a way to natively compile and load these files instead of
just byte-compile them if native compilation is available
Banner broke with memory filled by only a couple hundreds megabytes of
memory, the amount displayed was too large for what was reserved. More
space is now dedicated to displaying such numbers, and the ramp is thus
a bit shorter.
Mu4e header is now only 80 chars wide by default, regardless on the
width of the current frame.
Some code is now also better aligned, some whitespace was left from
earlier configuration that did not make it into the git repository
This commit makes font face for replied to emails and unread emails more
distinguishable. The difference between the two were just the text being
bold or not, now replied to emails have a Nord15 foreground text color.
This package often caused my configuration to break due to Emacs not
finding `eshell-syntax-highlight-global-mode' despite the package being
installed. More troublesome than it’s worth, I’m uninstalling it.
Many Eshell functions do not need to be declared as such and can do just
fine as Eshell aliases. This commit moves all these functions to the
'eshell-alias' file
This commit removes the banner displayed on Eshell launch. I will
maybe do something with it one day similar to my fish_greeting
function for the fish shell.
The git prompt now also separates the current path in half if we are
in a git repository: the path up to the repository, the git prompt,
and then the relative path to the repo is are shown in that order.
To achieve that, `phundrak/is-dir-a-git-repo' has been modified to
return either the path to the git repo or `nil'.
This commit adds to my configuration the Swift layer from Spacemacs, as
well as ob-swift for evaluating Swift code in org-mode –because
apparently it is not part of the layer itself.
The keybinding to `wttrin' is also modified to `SPC o a W', with its
original keybinding `SPC o a w' set to `helm-man-woman', a helm
interface to Emacs’ `woman'.
`if's that had one branch are replaced with `when', and `if's which only
actual branch is the else branch are replaced by `unless'.
`phundrak/eshell-git-status' no longer verifies whether its `$path'
argument points to a git repository, that is now the role of the callee.
`phundrak/eshell-prompt' now makes use of more variables to make the
code more readable.
Some documentation is now formatted correctly
This commit fixes the removal of the `~' character (it needed to be
escaped), add commas and backslashes to the list of characters to be
removed, and updates some `CUSTOM_ID' heading properties accordingly
This commit renames `eshell/my-prompt' to `phundrak/eshell-prompt'.
`phundrak/abbr-pwd' is now simplified, and it is no longer responsible
for fetching the current path which must now be passed as its first
argument. It will also reject any argument which is neither a string
(should be the only type to be passed for public use) nor a list (for
internal usage).
A bug was introduced in b97bbf8 with the fix for Eshell, where the
abbreviated path was not used anymore. This commit fixes it.
This commit also introduces the new macro `phundrak/var-or-if-nil'
which is documented in the code. It has replaced some code already.
The coding style of some recent functions have been updated too,
arguments names now begin with a dollar `$' sign. This is just stylistic
and it has no influence on the code whatsoever.
Finally, some nested `if's in `phundrak/abbr-pwd' were converted in a
single `cond', which led to renaming two variables in order to avoid a
collision between the variable and the function `push' – `pull' has been
renamed accordingly.
This commit adds the connection method for Docker containers through
Tramp and stores it under the newly created Tramp heading under which
the implementation of the Yadm connection method is implemented.
The list of languages supported with org-babel is now presented as an
org table.
Common variable values in org projects are now shared through one
variable each instead of having the value repeated.
It seems `mpd_discord_richpresence' has been removed from the AUR, and as
such I cannot install it back for now.
On the other hand, it seems `xss-lock' has been forgotten in the
autostart until now. This is now fixed.
This commit removes the common-lisp layer, as I do not use it anymore.
However, due to college, I need to be able to edit Swift code, hence its
addition.
This commit adds PumoPM back to the autostart script. Its transition to a
systemd unit isn’t complete yet.
`sshbind' has been added as a shorthand for an `ssh' command.
Since I do not use polybar anymore, `polybar-launch' has been deprecated.
Rewrite some parts that were not true anymore about my configuration,
add some interactivity for some settings some users would not
necessarily want.
Some parts that are no longer needed are also removed, such as yay
installation (done with archfi), nano, and go packages.
Some list of packages were made into org tables, and the command is
rewritten in litterate programming from these tables.
This commit adds the `languagetool' layer to my Emacs configuration.
Since Emacs 27.1, fonts ligatures are supported with Cairo. The
`unicode-fonts' adds support for such feature using `ligatures.el'.
Due to the modification above, I changed my default font to Cascadia
Code.
Since all my files that were opened with a `SPC o f' prefixed shortcut
all opened some org file located in precise directories, I unified
them all with a helm menu and only a couple of directories to specify
(I even added some).
This commit removes a line that sets all files in `~/.local/bin' as
executables. It was aimed at scripts exported from `bin.org' but it is
no longer required since the executability of these tangled files is
enforced by the shebang header argument added in commit 8f35b85ef1
The unread bookmark is changed to `bU', reserving the lowercase `u' for
the university emails bookmark.
This commit also adds a bookmark for my Emacs mailing list (the first
indicated list is now obsolete, but I keep it to still be able to see
old messages sent there).
Referring to the previous commit, it is actually better if the mu4e
headers view sets its own width _when a message is opened_ and not
when the headers view itself is opened. This commit also makes it so
that the width is evaluated based on the width of the window of the
headers view’s window rather than the width of the frame since the
message will be opened in a new window that will spawn in the headers
view's window.
This commit fixes a bug introduced in 8c6e622a7c and 69dc8c7d7c where
the mu4e-headers view’s width was set to a dynamic, frame-dependant
value that could not be computed with Emacs launched as a headless
server.
This commit makes this value evaluate when the `mu4e-headers' mode is
activated, and hence it should get the correct width of the current
frame.
This commit removes all python source blocks that were previously used
to generate code. Consequently, the commands for tangling my org files
in the bootstrap script were updated.
[Bootstrap] A shebang header has been added to the org file, removing
the necessity of the shebang code block and manually setting
permissions for the script each time it is tangled.
Custom and local executables will now have the priority over system
executables.
For instance, an `ls' executable located in `$HOME/.local/bin/ls' will
have the priority over `/bin/ls'
This commit changes the font of Emacs from Fantasque Sans Mono to
DejaVu Sans Mono. The latter has a better support for the
International Phonetic Alphabet (IPA) than the former. Font size is
also adjusted.
In the mu4e header view, the width of the header view when a message
is opened is now better handled since it will be calculated
accordingly to the frame and not the window. In Emacs, the frame is
actually what we commonly call a window, and a window is the area in
which buffers are displayed (damn this pre-GUI terminology in Emacs).
There is a bug with Emacs launched as a server though: since it is
launched as a headless service at first, the edited code cannot know
what the size of the frame will be, so the user will have to
re-evaluate this code snippet once the first frame is created, or when
the frame is resized and the user wishes to see this value updated.
A possible fix for this could be to hook this evaluation to when a
message is opened instead of when Emacs spins up.
Removed the head variable for `org-confirm-babel-evaluate' since I set
it to `nil' anyway.
Add `:mkdir yes' to all `:tangle' header arguments so no issues arise
when trying to tangle.
Added three new packages:
- helm-icons for integrating all-the-icons in Helm
- org-tree-slide for orgmode powered presentations
- wrap-region for wrapping selections with other chars than
parenthesis
Renamed variables in my custom Elisp functions so they stand out more
as user-defined variables.
Renamed `shortcuts' to `keybindings'
Added keybindings for `org-tree-slide'
Updated dotspacemacs file
This commit cleans up the source blocks of bin.org by removing the
shebangs from the actual source blocks. They are now passed as header
arguments, making the exported files automatically executable. This
removes the need for the two functions that were in the Introduction
header making tangled files executable or not.
This commit fixes some file tangling that was broken due to some
`:tangle' headers that were left empty.
The environment variable `$VISUAL' is added an is an equivalent of
`$EDITOR'
Abbreviations are reorganized in a more intuitive way.
The displayed uptime was broken, this commit fixes it.
This commit fixes the wrong declaration of prefixes for specific modes
which I did not understand until now what their declaration should
actually have been.
Org files will now open showing only the top-level headings. Tables
will be aligned, images will not be inlined, and code blocks will be
closed by default.
New variables were introduced to the template dotspacemacs file. This
commit adds them in my spacemacs.org configuration file.
The dotspacemacs file was modified. This commit updates it.
This commit removes from the basic packages packages that I have no
use for in my current config. They are mainly related to my i3 config
which I recently deprecated. The following packages were removed:
- dmenu-lpass
- dunst
- i3-gaps-rounded-git
- j4-dmenu-desktop
- less (is installed as a dependency of other packages)
- polybar
- python-pywal
The following packages were added:
- inter-font
- nordic-theme-git
This commit adds two new snippets for Rust, one for an easier way to
write a `println' macro than the default one, and another one for
writing more easily new `new' functions for Rust structs.
It also adds the `common-lisp' layer in Emacs so I can test StumpWM.
`set-screens' used to automatically restart i3. Since I do not use i3
and Awesome needs no restart after invoking this command, I removed
the call to `i3-msg'.
== ALL FILES ==
The org TOCs were unused on export, and Spacemacs makes it useless.
This commits removes them. The startup header of org files is moved to
the header file.
== AWESOME ==
In the Awesome file, this commit removes everything about custom theme
creation as this part is not yet used. I also remade and reorganized
the windows titlebars.
Theme files for Awesome shall be added soon. The wallpaper functions
were updated accordingly.
In the autostart part, I updated some commands (picom will not launch
if another instance is already running, same for the XFCE polkit), and
I added PumoPM to the autolaunched software (power management). Due to
some issues, I also let Awesome one second before launching
`set-screens'.
== AWESOME AND CUSTOM SCRIPTS ==
This commit also removes any usage of pywal. My Awesome configuration
and my custom scripts were updated accordingly.
== CUSTOM SCRIPTS ==
In bin.org, the script `pape-restore' has been removed since it can
now be replaced with the command `nitrogen --restore'. `pape-update'
has also been updated so it doesn’t depend on `pape-restore' and gets
a random wallpaper for nitrogen to set without the help of pywal.
== XRESOURCES / ST AND PICOM ==
St’s transparency was tweaked to match my windows’ titlebar
transparency. It also got the Nord theme mentionned above. Some custom
Picom rule about St’s transparency has been removed.
== PICOM ==
I made it clearer in the index and on Picom’s page Picom is the new
Compton.
== FIREFOX ==
A new git submodule (blurredfox-nord) has been added, which adds some
transparency to Firefox as well as some Nord colors.
== I3 AND POLYBAR ==
My i3 and Polybar config have been deprecated since I do not use them
anymore.
== SPACEMACS ==
Changed shortcuts for config files
I will now try to use Emacs on the native-comp branch, after using it
for a bit it seems a lot faster than your usual Emacs.
Also update Emacs config, with some fixes provided and some overall
improvement.
Added some blacklisted directories to Projectile
Wrote a function to make my code clearer with `add-to-list'
Updated Org Capture shortcuts, in particular the text displayed in the
user interface while entering the shortcuts.
The `meson-mode` package is removed from my custom package list with
the addition of the `meson` layer in Spacemacs.
The `org` layer’s support for Trello is also removed from my
configuration while the support for Hugo is added.
The `c-c++` layer now uses `clangd` as its LSP backend instead of ccls
The `haskell` layer is removed from my configuration
Since it is now broken, instructions for installing a custom `mu`
package on Arch Linux that still enables it has been removed. I will
now use the default `mu` package from the AUR.
The Rust configuration has been updated with some additional
instructions on the reason why some elements are set, and how to
install these. The Rust LSP backend will now use the command `cargo
clippy` instead of `cargo check` to catch errors and warnings.
In i3, the mail shortcut still pointed at Gnus, despite my switch to
mu4e.
In awesome, I added most of the shortcuts found in my i3 config, add
added some custom command handling