Compare commits

...

4 Commits

Author SHA1 Message Date
Lucien Cartier-Tilet b115f6cd8c
Updated some paths, fixed some code style, added back some shortcuts
Updated some paths after the Emacs configuration directory was moved

Some variables in my dotspacemacs were renamed in order to follow the
Spacemacs coding style with a ~//~ used for marking private variables,
and I prefixed their name with ~dotspacemacs-~ in order to avoid any
collision with other packages or configuration I write.

Added back M-« and M-» in order to fix the M-< and M-> shortcuts issue
with the bépo layout.
2020-02-16 23:56:25 +01:00
Lucien Cartier-Tilet 3e841fa0b2
Updated bootstrap after submodules update 2020-02-16 23:41:28 +01:00
Lucien Cartier-Tilet c29b9a1131
Updated path to nanorc and its dependencies 2020-02-16 01:08:29 +01:00
Lucien Cartier-Tilet b876c6817e
removed unused .desktop file 2020-02-16 00:47:41 +01:00
6 changed files with 159 additions and 60 deletions

View File

@ -1,8 +1,13 @@
# [[file:~/org/config/installation.org::*Execute bootstrap][Execute bootstrap:2]]
#!/usr/bin/fish
# -*- mode: fish -*-
# Execute bootstrap:2 ends here
# [[file:~/org/config/installation.org::*Decrypt private yadm files][Decrypt private yadm files:1]]
yadm decrypt
# Decrypt private yadm files:1 ends here
# [[file:~/org/config/installation.org::*Get a correct keyboard layout][Get a correct keyboard layout:1]]
set keyboardconf \
'Section "InputClass"
Identifier "system-keyboard"
@ -12,19 +17,27 @@ set keyboardconf \
Option "XkbVariant" "bepo,,"
Option "XkbOptions" "grp:menu_toggle"
EndSection'
# Get a correct keyboard layout:1 ends here
# [[file:~/org/config/installation.org::*Get a correct keyboard layout][Get a correct keyboard layout:2]]
printf "\n# Set keyboard layout #########################################################\n\n"
echo $keyboardconf | sudo tee /etc/X11/xorg.conf.d/00-keyboard.conf
# Get a correct keyboard layout:2 ends here
# [[file:~/org/config/installation.org::*Set our locale][Set our locale:1]]
set mylocales "en_US.UTF-8 UTF-8" "fr_FR.UTF-8 UTF-8" "ja_JP.UTF-8 UTF-8"
# Set our locale:1 ends here
# [[file:~/org/config/installation.org::*Set our locale][Set our locale:2]]
printf "\n# Set our locale ##############################################################\n\n"
for item in $mylocales
if test (grep -e "#$item" /etc/locale.gen)
sudo sed -i "/$item/s/^#//g" /etc/locale.gen
end
end
# Set our locale:2 ends here
# [[file:~/org/config/installation.org::*Set our locale][Set our locale:3]]
set localeconf "LANG=en_US.UTF-8
LC_COLLATE=C
LC_NAME=fr_FR.UTF-8
@ -36,21 +49,33 @@ LC_PAPER=fr_FR.UTF-8
LC_ADDRESS=fr_FR.UTF-8
LC_TIME=fr_FR.UTF-8
LC_MEASUREMENT=fr_FR.UTF-8"
# Set our locale:3 ends here
# [[file:~/org/config/installation.org::*Set our locale][Set our locale:4]]
echo $localeconf | sudo tee /etc/locale.conf
# Set our locale:4 ends here
# [[file:~/org/config/installation.org::*Set our locale][Set our locale:5]]
printf "\n# Generate locale #############################################################\n\n"
sudo locale-gen
# Set our locale:5 ends here
# [[file:~/org/config/installation.org::*Create some folders][Create some folders:1]]
printf "\n# Create directories for mounting #############################################\n\n"
sudo mkdir -p /mnt/{USB,CD,Android}
sudo chown $USER:(id -g $USER) /mnt/{USB,CD,Android}
# Create some folders:1 ends here
# [[file:~/org/config/installation.org::*Create some folders][Create some folders:2]]
mkdir -p $HOME/.cache/nano/backups
# Create some folders:2 ends here
# [[file:~/org/config/installation.org::*Set users shell to fish][Set users shell to fish:1]]
printf "\n# Set fish as the default shell ###############################################\n\n"
chsh -s /usr/bin/fish
# Set users shell to fish:1 ends here
# [[file:~/org/config/installation.org::*Install =yay= if it isnt already installed][Install =yay= if it isnt already installed:1]]
if ! test (which yay)
printf "\n# Installing yay ##############################################################\n\n"
cd
@ -62,7 +87,9 @@ if ! test (which yay)
else
printf "\n# yay already installed #######################################################\n\n"
end
# Install =yay= if it isnt already installed:1 ends here
# [[file:~/org/config/installation.org::*Install basic packages][Install basic packages:1]]
set PACKAGES \
acpilight adobe-source-han-sans-jp-fonts asar ascii aspell-en aspell-fr assimp \
awesome-terminal-fonts base-devel bat biber bleachbit bluez-firmware \
@ -97,11 +124,15 @@ typescript-language-server-bin unicode unicode-emoji unrar usbutils valgrind \
vscode-css-languageserver-bin vscode-html-languageserver-bin w3m wget \
x11-ssh-askpass xclip xdg-user-dirs-gtk xfsprogs xorg-apps xorg-drivers \
xorg-server xorg-xinit xss-lock xvkbd yaml-language-server-bin yapf
# Install basic packages:1 ends here
# [[file:~/org/config/installation.org::*Install basic packages][Install basic packages:2]]
printf "\n# Installing needed packages ##################################################\n\n"
sudo pacman -Syu
yay -S --needed $PACKAGES
# Install basic packages:2 ends here
# [[file:~/org/config/installation.org::*Tangle configuration files from Org files][Tangle configuration files from Org files:2]]
printf "\n# Tangling org files ##########################################################\n\n"
printf "\n\n==== Tangling bin.org\n\n"
emacs -q --batch --eval "(require 'ob-tangle)" --eval "(org-babel-tangle-file \"~/org/config/bin.org\")"
@ -119,101 +150,161 @@ printf "\n\n==== Tangling spacemacs.org\n\n"
emacs -q --batch --eval "(require 'ob-tangle)" --eval "(org-babel-tangle-file \"~/org/config/spacemacs.org\")"
printf "\n\n==== Tangling tmux.org\n\n"
emacs -q --batch --eval "(require 'ob-tangle)" --eval "(org-babel-tangle-file \"~/org/config/tmux.org\")"
# Tangle configuration files from Org files:2 ends here
# [[file:~/org/config/installation.org::*Tangle configuration files from Org files][Tangle configuration files from Org files:3]]
find ~/.local/bin -type f -exec chmod +x {} +
# Tangle configuration files from Org files:3 ends here
# [[file:~/org/config/installation.org::*Setting up Emacs: Installing Spacemacs][Setting up Emacs: Installing Spacemacs:1]]
printf "\n# Installing Spacemacs ########################################################\n\n"
rm -rf ~/.emacs.d
rm -rf ~/.config/emacs
# Setting up Emacs: Installing Spacemacs:1 ends here
git clone --single-branch --branch develop https://github.com/syl20bnr/spacemacs ~/.emacs.d
# [[file:~/org/config/installation.org::*Setting up Emacs: Installing Spacemacs][Setting up Emacs: Installing Spacemacs:2]]
git clone --single-branch --branch develop https://github.com/syl20bnr/spacemacs ~/.config/emacs
# Setting up Emacs: Installing Spacemacs:2 ends here
yadm checkout -- ~/.emacs.d/private/
# [[file:~/org/config/installation.org::*Setting up Emacs: Installing Spacemacs][Setting up Emacs: Installing Spacemacs:3]]
yadm checkout -- ~/.config/emacs/private/
# Setting up Emacs: Installing Spacemacs:3 ends here
# [[file:~/org/config/installation.org::*Update our dotfiles remotes][Update our dotfiles remotes:1]]
if ! test (echo "phundrak" | sed -e "s/^.*$USER//I")
# Update our dotfiles remotes:1 ends here
# [[file:~/org/config/installation.org::*Update our dotfiles remotes][Update our dotfiles remotes:2]]
printf "\n# Update yadms remotes #######################################################\n\n"
yadm remote set-url origin git@labs.phundrak.com:phundrak/dotfiles.git
yadm remote add github git@github.com:phundrak/dotfiles.git
# Update our dotfiles remotes:2 ends here
# [[file:~/org/config/installation.org::*Update our dotfiles remotes][Update our dotfiles remotes:3]]
printf "\n# Decrypt encrypted dotfiles ##################################################\n\n"
yadm decrypt
# Update our dotfiles remotes:3 ends here
# [[file:~/org/config/installation.org::*Update our dotfiles remotes][Update our dotfiles remotes:4]]
end
# Update our dotfiles remotes:4 ends here
# [[file:~/org/config/installation.org::*Get =envtpl=][Get =envtpl=:1]]
printf '\n# Install envtpl ##############################################################\n\n'
yay -Syu python-envtpl-git
# Get =envtpl=:1 ends here
# [[file:~/org/config/installation.org::*Update our submodules][Update our submodules:1]]
printf "\n# Getting yadm susbmodules ####################################################\n\n"
yadm submodule update --init --recursive
# Update our submodules:1 ends here
# [[file:~/org/config/installation.org::*Generate our alt files][Generate our alt files:1]]
printf "\n# Generating alt files ########################################################\n\n"
yadm alt
# Generate our alt files:1 ends here
# [[file:~/org/config/installation.org::*Installing Tryones Compton fork][Installing Tryones Compton fork:1]]
printf "\n# Installing tryones compton fork ############################################\n\n"
yay -S compton-tryone-git
# Installing Tryones Compton fork:1 ends here
# [[file:~/org/config/installation.org::*Docker][Docker:1]]
printf "\n# Enabling and starting Docker ################################################\n\n"
sudo systemctl enable --now docker
# Docker:1 ends here
# [[file:~/org/config/installation.org::*Docker][Docker:2]]
read --prompt "echo 'Do you wish to be added to the `docker` group? (Y/n): ' " -l adddockergroup
if test $adddockergroup = 'y' || test $adddockergroup = "Y" || test $adddockergroup = ''
sudo usermod -aG docker $USER
end
# Docker:2 ends here
# [[file:~/org/config/installation.org::*Emacs][Emacs:1]]
printf "\n# Enabling Emacs as user service ##############################################\n\n"
systemctl --user enable --now emacs
# Emacs:1 ends here
# [[file:~/org/config/installation.org::*SSH server][SSH server:1]]
read --prompt "echo 'Do you want to activate the ssh server? (Y/n): ' " -l sshdserver
if test $sshdserver = 'y' || test $sshdserver = "Y" || test $sshdserver = ''
printf "\n# Enabling ssh server #########################################################\n\n"
sudo systemctl enable --now sshd
end
# SSH server:1 ends here
# [[file:~/org/config/installation.org::*Ly][Ly:1]]
sudo systemctl enable --now ly
sudo systemctl disable getty@tty2
# Ly:1 ends here
# [[file:~/org/config/installation.org::*Acpilight][Acpilight:1]]
sudo usermod -aG video $USER
# Acpilight:1 ends here
# [[file:~/org/config/installation.org::*NordVPN][NordVPN:1]]
sudo systemctl enable --now nordvpnd
# NordVPN:1 ends here
# [[file:~/org/config/installation.org::*Symlink some system config files][Symlink some system config files:1]]
for f in (find ~/.etc -type f)
set dest (echo $f | sed -n 's/^.*etc\(.*\)$/\/etc\1/p')
sudo ln -s $f $dest
end
# Symlink some system config files:1 ends here
# [[file:~/org/config/installation.org::*Symlink some system config files][Symlink some system config files:2]]
read --prompt "echo 'Symlink .nanorc to roots .nanorc? (Y/n): ' " -l nanoroot
if test $nanoroot = 'y' || test $nanoroot = "Y" || test $nanoroot = ''
printf "\n# Symlinking .nanorc to roots .nanorc ########################################\n\n"
sudo ln -s $HOME/.nanorc /root/.nanorc
end
# Symlink some system config files:2 ends here
# [[file:~/org/config/installation.org::*Polybar Battery][Polybar Battery:1]]
printf "\n# Install polybar-battery #####################################################\n\n"
cd ~/fromGIT
git clone https://github.com/drdeimos/polybar_another_battery.git
cd polybar_another_battery
go get -u github.com/distatus/battery/cmd/battery
make build
# Polybar Battery:1 ends here
# [[file:~/org/config/installation.org::*Polybar Battery][Polybar Battery:2]]
ln -s polybar-ab ~/.local/bin/polybar-ab
# Polybar Battery:2 ends here
# [[file:~/org/config/installation.org::*Reveal.JS][Reveal.JS:1]]
printf "\n# Install Reveal.JS ###########################################################\n\n"
cd ~/fromGIT
git clone https://github.com/hakimel/reveal.js.git
# Reveal.JS:1 ends here
# [[file:~/org/config/installation.org::*Install the toolchains][Install the toolchains:1]]
printf "\n# Install the rust toolchains, nightly is the default one #####################\n\n"
rustup default nightly
# Install the toolchains:1 ends here
# [[file:~/org/config/installation.org::*Install the toolchains][Install the toolchains:2]]
rustup toolchain install stable
# Install the toolchains:2 ends here
# [[file:~/org/config/installation.org::*Install some utilities][Install some utilities:1]]
printf "\n# Add rust utilities ##########################################################\n\n"
cargo install rustfmt racer
# Install some utilities:1 ends here
# [[file:~/org/config/installation.org::*Install some utilities][Install some utilities:2]]
rustup component add src
rustup component add rls
# Install some utilities:2 ends here
# [[file:~/org/config/installation.org::*Install some python packages][Install some python packages:1]]
printf "\n# Installing Python packages ##################################################\n\n"
pip install --user pyls-isort pyls-mypy
# Install some python packages:1 ends here
# [[file:~/org/config/installation.org::*Install go packages][Install go packages:1]]
printf "\n# Installing Go packages ######################################################\n\n"
go get -v golang.org/x/tools/gopls@latest
go get -u -v golang.org/x/tools/cmd/godoc
@ -231,19 +322,29 @@ go get -u -v github.com/mdempsky/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/zmb3/gogetdoc
go get -u -v golang.org/x/tools/gopls
# Install go packages:1 ends here
# [[file:~/org/config/installation.org::*Set up Chicken (Scheme interpreter/compiler)][Set up Chicken (Scheme interpreter/compiler):1]]
printf "\n# Setting up Chicken ##########################################################\n\n"
chicken-install -s apropos chicken-doc
# Set up Chicken (Scheme interpreter/compiler):1 ends here
# [[file:~/org/config/installation.org::*Set up Chicken (Scheme interpreter/compiler)][Set up Chicken (Scheme interpreter/compiler):2]]
cd (chicken-csi -b -e "(import (chicken platform))" -p "(chicken-home)")
curl https://3e8.org/pub/chicken-doc/chicken-doc-repo.tgz | sudo tar zx
# Set up Chicken (Scheme interpreter/compiler):2 ends here
# [[file:~/org/config/installation.org::*Clean the =pacman= and =yay= cache][Clean the =pacman= and =yay= cache:1]]
printf "\n# Clean the pacman and yay cache ##############################################\n\n"
yay -Sc --noconfirm
# Clean the =pacman= and =yay= cache:1 ends here
# [[file:~/org/config/installation.org::*Install =fisher=][Install =fisher=:1]]
printf "\n# Installing fisher ###########################################################\n\n"
curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish
# Install =fisher=:1 ends here
# [[file:~/org/config/installation.org::*Install our extensions][Install our extensions:2]]
printf "\n# Installing Fisher Extensions ################################################\n\n"
fisher add oh-my-fish/theme-bobthefish
fisher add jorgebucaran/fish-bax
@ -254,7 +355,9 @@ fisher add jorgebucaran/fish-getopts
fisher add laughedelic/pisces
fisher add tuvistavie/fish-ssh-agent
fisher add acomagu/fish-async-prompt
# Install our extensions:2 ends here
# [[file:~/org/config/installation.org::generate-tangle][generate-tangle]]
files=["bin.org", "fish.org", "i3.org", "index.org", "nano.org", "polybar.org", "spacemacs.org", "tmux.org"]
result = ''
commandPrintf = 'printf "\\n\\n==== Tangling {0}\\n\\n"\n'
@ -262,3 +365,4 @@ commandEmacs = 'emacs -q --batch --eval "(require \'ob-tangle)" --eval "(org-bab
for file in files:
result += commandPrintf.format(file) + commandEmacs.format(file)
return result
# generate-tangle ends here

View File

@ -1,12 +0,0 @@
[Desktop Entry]
Name=Gnus (Emacs)
GenericName=Mail Client
Comment=Gnus' X handler
MimeType=x-scheme-handler/mailto;
Exec=emacsmail %F
Icon=emacs
Type=Application
Terminal=false
Categories=Network;Email;TextEditor;
StartupWMClass=Emacs
Keywords=Text;Editor;Email;Client;Gnus;

View File

@ -4,31 +4,31 @@
This function is called at the very beginning of Spacemacs startup,
before layer configuration.
It should only modify the values of Spacemacs settings."
(setq phundrak/src-dir (concat (getenv "HOME") "/.emacs.d/private/")
phundrak/gnus-uc (concat (getenv "HOME") "/.gnus.el")
phundrak/src (concat (getenv "HOME") "/org/config/spacemacs.org")
phundrak/si (concat phundrak/src-dir "spacemacs-init.el")
phundrak/sl (concat phundrak/src-dir "spacemacs-layers.el")
phundrak/uc (concat phundrak/src-dir "user-config.el")
phundrak/ui (concat phundrak/src-dir "user-init.el"))
(when (or (file-newer-than-file-p phundrak/src phundrak/si)
(file-newer-than-file-p phundrak/src phundrak/sl)
(file-newer-than-file-p phundrak/src phundrak/ui)
(file-newer-than-file-p phundrak/src phundrak/uc)
(file-newer-than-file-p phundrak/src phundrak/gnus-uc))
(setq phundrak//dotspacemacs-src-dir (concat (getenv "HOME") "/.config/emacs/private/")
phundrak//dotspacemacs-gc (concat (getenv "HOME") "/.gnus.el")
phundrak//dotspacemacs-src (concat (getenv "HOME") "/org/config/spacemacs.org")
phundrak//dotspacemacs-si (concat phundrak//dotspacemacs-src-dir "spacemacs-init.el")
phundrak//dotspacemacs-sl (concat phundrak//dotspacemacs-src-dir "spacemacs-layers.el")
phundrak//dotspacemacs-uc (concat phundrak//dotspacemacs-src-dir "user-config.el")
phundrak//dotspacemacs-ui (concat phundrak//dotspacemacs-src-dir "user-init.el"))
(when (or (file-newer-than-file-p phundrak//dotspacemacs-src phundrak//dotspacemacs-si)
(file-newer-than-file-p phundrak//dotspacemacs-src phundrak//dotspacemacs-sl)
(file-newer-than-file-p phundrak//dotspacemacs-src phundrak//dotspacemacs-ui)
(file-newer-than-file-p phundrak//dotspacemacs-src phundrak//dotspacemacs-uc)
(file-newer-than-file-p phundrak//dotspacemacs-src phundrak//dotspacemacs-gc))
(princ "Exporting new Emacs configuration from spacemacs.org through org-babel...")
(call-process
(concat invocation-directory invocation-name)
nil nil t
"-q" "--batch" "--eval" "(require 'ob-tangle)"
"--eval" (format "(org-babel-tangle-file \"%s\")" phundrak/src))
"--eval" (format "(org-babel-tangle-file \"%s\")" phundrak//dotspacemacs-src))
(princ "done"))
(load-file phundrak/si))
(load-file phundrak//dotspacemacs-si))
(defun dotspacemacs/layers ()
"Layer configuration:
This function should only modify configuration layer settings."
(load-file phundrak/sl))
(load-file phundrak//dotspacemacs-sl))
(defun dotspacemacs/user-env ()
"Environment variables setup.
@ -44,7 +44,7 @@ This function is called immediately after `dotspacemacs/init', before layer
configuration.
It is mostly for variables that should be set before packages are loaded.
If you are unsure, try setting them in `dotspacemacs/user-config' first."
(load-file phundrak/ui))
(load-file phundrak//dotspacemacs-ui))
(defun dotspacemacs/user-load ()
"Library to load while dumping.
@ -59,7 +59,7 @@ This function is called at the very end of Spacemacs startup, after layer
configuration.
Put your configuration code here, except for variables that should be set
before packages are loaded."
(load-file phundrak/uc))
(load-file phundrak//dotspacemacs-uc))
;; Do not write anything past this comment. This is where Emacs will

View File

@ -5,7 +5,7 @@
#+HTML_HEAD_EXTRA: <meta name="description" content="Phundrak-flavored Arch Linux" />
#+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundrak-flavored Arch Linux" />
#+HTML_HEAD_EXTRA: <meta property="og:description" content="How to install a Phundrak-flavored Arch Linux" />
#+PROPERTY: header-args :exports code
#+PROPERTY: header-args :exports code :comments link
* Table of Contents :TOC_4_gh:noexport:
:PROPERTIES:
@ -133,7 +133,7 @@
* Execute bootstrap
:PROPERTIES:
:CUSTOM_ID: h-c13d132f-9e69-4bb0-838b-29c7c5611f11
:HEADER-ARGS: :tangle ~/.config/yadm/bootstrap
:HEADER-ARGS: :tangle ~/.config/yadm/bootstrap :comments link
:END:
=yadm= comes with a very handy feature: its bootstrap script. We can execute
it by running the following command:
@ -389,23 +389,24 @@
:CUSTOM_ID: h-bd5a92c4-1a4f-49ea-a447-050a4ff0301c
:END:
Now, the first thing we want to do with Emacs is install its Spacemacs
distribution. Well clone its =develop= branch into =~/.emacs.d=. We need to
do this prior to our dotfiles cloning because of some submodules that are
cloned within our =~/.emacs.d= directory, and git wont let us clone
Spacemacs in an already existing and non-empty directory. To make sure it
isnt one, lets delete any potentially existing =~/.emacs.d= directory:
distribution. Well clone its =develop= branch into =~/.config/emacs=. We
need to do this prior to our dotfiles cloning because of some submodules
that are cloned within our =~/.config/emacs= directory, and git wont let us
clone Spacemacs in an already existing and non-empty directory. To make sure
it isnt one, lets delete any potentially existing =~/.config/emacs=
directory:
#+BEGIN_SRC fish
printf "\n# Installing Spacemacs ########################################################\n\n"
rm -rf ~/.emacs.d
rm -rf ~/.config/emacs
#+END_SRC
Now we can clone Spacemacs:
#+BEGIN_SRC fish
git clone --single-branch --branch develop https://github.com/syl20bnr/spacemacs ~/.emacs.d
git clone --single-branch --branch develop https://github.com/syl20bnr/spacemacs ~/.config/emacs
#+END_SRC
And we can restore what might have been deleted in our =~/.emacs.d/private=
directory:
#+BEGIN_SRC fish
yadm checkout -- ~/.emacs.d/private/
yadm checkout -- ~/.config/emacs/private/
#+END_SRC
** Set up dotfiles

View File

@ -4,7 +4,7 @@
#+HTML_HEAD_EXTRA: <meta name="description" content="Phundrak's nano configuration" />
#+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundrak's nano configuration" />
#+HTML_HEAD_EXTRA: <meta property="og:description" content="Description of the nano configuration of Phundrak" />
#+PROPERTY: header-args :tangle ~/.nanorc
#+PROPERTY: header-args :tangle ~/.config/nano/nanorc
* Table of Contents :TOC_4_gh:noexport:
:PROPERTIES:
@ -147,5 +147,5 @@
them at the same time. Since the submodule is cloned in =~/.config/nanorc=,
we can add only one line to include all of the =.nanorc= files.
#+BEGIN_SRC conf
include ~/.config/nanorc/*.nanorc
include ~/.config/nano/nano-syntax/*.nanorc
#+END_SRC

View File

@ -135,7 +135,7 @@
* Spacemacs layers and packages
:PROPERTIES:
:header-args:emacs-lisp: :comments link :tangle ~/.emacs.d/private/spacemacs-layers.el :exports code
:header-args:emacs-lisp: :comments link :tangle ~/.config/emacs/private/spacemacs-layers.el :exports code
:CUSTOM_ID: h-9d9869e0-4672-419c-bf37-3d3ae1b7c0aa
:END:
Here will be our layer configuration set. Everything here is set with a
@ -646,7 +646,7 @@
* Init
:PROPERTIES:
:CUSTOM_ID: h-3f3c8a0b-56cd-4be6-b019-3ba6f1e24f96
:header-args:emacs-lisp: :comments link :tangle ~/.emacs.d/private/spacemacs-init.el :exports code
:header-args:emacs-lisp: :comments link :tangle ~/.config/emacs/private/spacemacs-init.el :exports code
:END:
The ~dotspacemacs/init~ function is the one called at the very begining of the
Spacemacs startup, before any kind of configuration, including the layer
@ -687,7 +687,7 @@
should be added when invoking Emacs 27.1 executable from the command line,
for instance:
#+BEGIN_SRC sh :tangle no :exports code
./emacs --dump-file=~/.emacs.d/.cache/dumps/spacemacs.pdmp
./emacs --dump-file=~/.config/emacs/.cache/dumps/spacemacs.pdmp
#+END_SRC
The default value of this variable is ="spacemacs.pdmp"=.
#+BEGIN_SRC emacs-lisp
@ -1202,7 +1202,7 @@
You can also set a custom emacs server socket location. If the value is
~nil~, Emacs will use whatever the Emacs default is, otherwise a directory
path like ="~/.emacs.d/server"=. It has no effect if
path like ="~/.config/emacs/server"=. It has no effect if
~dotspacemacs-enable-server~ is ~nil~.
#+BEGIN_SRC emacs-lisp
(setq-default dotspacemacs-server-socket-dir nil)
@ -1263,13 +1263,13 @@
* User Initialization
:PROPERTIES:
:CUSTOM_ID: h-e297b9be-9b0d-4c2d-bb6e-402f0d00be0d
:header-args:emacs-lisp: :comments link :tangle ~/.emacs.d/private/user-init.el :exports code
:header-args:emacs-lisp: :comments link :tangle ~/.config/emacs/private/user-init.el :exports code
:END:
While Emacs and especially Spacemacs loads, I want it to initialize some
elements and load some packages. First of all, I want it to load my private
Emacs config file:
#+BEGIN_SRC emacs-lisp
(load "~/.emacs.d/private/private_emacs.el")
(load "~/.config/emacs/private/private_emacs.el")
#+END_SRC
Then, I want a couple of requires:
@ -1308,7 +1308,7 @@
* User Configuration
:PROPERTIES:
:CUSTOM_ID: h-7a36d3a0-8bb6-4d9d-9402-eadbc49fef32
:header-args:emacs-lisp: :comments link :tangle ~/.emacs.d/private/user-config.el :exports code
:header-args:emacs-lisp: :comments link :tangle ~/.config/emacs/private/user-config.el :exports code
:END:
** ASM configuration
:PROPERTIES:
@ -2688,11 +2688,17 @@
:PROPERTIES:
:CUSTOM_ID: h-f193126f-abc1-4287-aa70-4f2080d2ef8f
:END:
As you will see, I defined A LOT of custom shortcuts. All of them are
As you will see, I defined a LOT of custom shortcuts. Most of them are
Spacemacs shortcuts, defined in a way they can be used seamlessly with Evil.
First of all, these shortcuts all begin with ~o~, which is a prefix reserved
for user-defined shortcuts so they wont conflict with any package. Lets
declare it like so.
Only two shortcuts are defined the vanilla way for Emacs:
#+BEGIN_SRC emacs-lisp
(global-set-key (kbd "M-»") 'end-of-buffer)
(global-set-key (kbd "M-«") 'beginning-of-buffer)
#+END_SRC
Spacemacs shortcuts all begin with ~o~, which is a prefix reserved for
user-defined shortcuts so they wont conflict with any package. Lets declare
it like so.
#+BEGIN_SRC emacs-lisp
(spacemacs/declare-prefix "o" "custom")
#+END_SRC
@ -2704,16 +2710,16 @@
Before some more specialized categories, I have two commands which dont fit
into any other category that I sometime use:
#+BEGIN_SRC emacs-lisp
(spacemacs/declare-prefix "oB" "byte-compile .emacs.d")
(spacemacs/declare-prefix "oB" "byte-compile ~/.config/emacs")
(spacemacs/declare-prefix "or" "external command")
(spacemacs/set-leader-keys
"oB" (lambda () (byte-recompile-directory (expand-file-name "~/.emacs.d") 0))
"oB" (lambda () (byte-recompile-directory (expand-file-name "~/.config/emacs") 0))
"or" 'helm-run-external-command)
#+END_SRC
~oB~ byte-compiles every ~.el~ file located in the =~/.emacs.d/= directory —
it can be useful in case of package upgrade and an old ~.elc~ file still
loads instead of an uncompiled but newer ~.el~ file.
~oB~ byte-compiles every ~.el~ file located in the =~/.config/emacs/=
directory — it can be useful in case of package upgrade and an old ~.elc~
file still loads instead of an uncompiled but newer ~.el~ file.
~or~ on the other hand invokes an external comand the same way [[https://wiki.archlinux.org/index.php/Dmenu][dmenu]] would.