[NUCLEAR OPTION] Move everything over to chezmoi
This commit is contained in:
parent
2f34cf5481
commit
dd7bb2910c
2383 changed files with 259705 additions and 78 deletions
9
.gitignore
vendored
9
.gitignore
vendored
|
@ -1,8 +1,3 @@
|
|||
*.elc
|
||||
home/.gnupg/S.*
|
||||
home/.gnupg/*.kbx
|
||||
home/.gnupg/*~
|
||||
home/.gnupg/*gpg
|
||||
home/.gnupg/private*
|
||||
home/.gnupg/*migrated
|
||||
home/.vim/
|
||||
*.deb
|
||||
*.tar.gz
|
||||
|
|
25
.gitmodules
vendored
25
.gitmodules
vendored
|
@ -1,27 +1,4 @@
|
|||
[submodule "home/.emacs.d"]
|
||||
path = home/.emacs.d
|
||||
url = https://github.com/syl20bnr/spacemacs
|
||||
[submodule "home/.oh-my-zsh"]
|
||||
path = home/.oh-my-zsh
|
||||
url = https://github.com/robbyrussell/oh-my-zsh.git
|
||||
[submodule "home/.kubectx"]
|
||||
path = home/.kubectx
|
||||
url = https://github.com/ahmetb/kubectx.git
|
||||
[submodule "home/.zsh-custom/themes/powerlevel10k"]
|
||||
path = home/.zsh-custom/themes/powerlevel10k
|
||||
url = https://github.com/romkatv/powerlevel10k.git
|
||||
[submodule "home/.zsh-custom/plugins/fzf-marks"]
|
||||
path = home/.zsh-custom/plugins/fzf-marks
|
||||
url = https://github.com/urbainvaes/fzf-marks.git
|
||||
[submodule "home/.fzf"]
|
||||
path = home/.fzf
|
||||
url = https://github.com/junegunn/fzf.git
|
||||
[submodule "home/.config/base16-shell"]
|
||||
path = home/.config/base16-shell
|
||||
url = https://github.com/chriskempson/base16-shell.git
|
||||
[submodule "home/.vim/bundle/Vundle.vim"]
|
||||
path = home/.vim/bundle/Vundle.vim
|
||||
url = https://github.com/VundleVim/Vundle.vim.git
|
||||
[submodule "home/.zsh-custom/plugins/zsh-completions"]
|
||||
path = home/.zsh-custom/plugins/zsh-completions
|
||||
url = https://github.com/zsh-users/zsh-completions.git
|
||||
|
||||
|
|
46
Makefile
Normal file
46
Makefile
Normal file
|
@ -0,0 +1,46 @@
|
|||
export PATH := ~/bin:$(PATH)
|
||||
|
||||
all: update
|
||||
|
||||
update:
|
||||
chezmoi apply
|
||||
vim -c PlugUpdate -c qa
|
||||
vim -c GoInstallBinaries -c qa
|
||||
|
||||
symlink-systemd:
|
||||
mkdir -p ~/.config/systemd/user/default.target.wants
|
||||
mkdir -p ~/.config/systemd/user/timers.target.wants
|
||||
ln -s ~/.config/systemd/user/emacs.service ~/.config/systemd/user/default.target.wants/
|
||||
ln -s ~/.config/systemd/user/mopidy.service ~/.config/systemd/user/default.target.wants/
|
||||
ln -s ~/.config/systemd/user/ical2org.service ~/.config/systemd/user/timers.target.wants/
|
||||
ln -s ~/.config/systemd/user/maid.service ~/.config/systemd/user/timers.target.wants/
|
||||
ln -s ~/.config/systemd/user/worklogger.service ~/.config/systemd/user/timers.target.wants/
|
||||
|
||||
update-third-parties: update-zsh update-plug.vim update-spacemacs update-kubectx
|
||||
|
||||
update-spacemacs:
|
||||
curl -s -L -o spacemacs-develop.tar.gz https://github.com/syl20bnr/spacemacs/archive/develop.tar.gz
|
||||
chezmoi import --strip-components 1 --destination ${HOME}/.emacs.d spacemacs-develop.tar.gz
|
||||
|
||||
update-zsh:
|
||||
curl -s -L -o oh-my-zsh-master.tar.gz https://github.com/robbyrussell/oh-my-zsh/archive/master.tar.gz
|
||||
chezmoi import --strip-components 1 --destination ${HOME}/.oh-my-zsh oh-my-zsh-master.tar.gz
|
||||
|
||||
curl -s -L -o powerlevel10k-master.tar.gz https://github.com/romkatv/powerlevel10k/archive/master.tar.gz
|
||||
chezmoi import --strip-components 1 --destination ${HOME}/.zsh-custom/themes/powerlevel10k powerlevel10k-master.tar.gz
|
||||
|
||||
curl -s -L -o fzf-master.tar.gz https://github.com/junegunn/fzf/archive/master.tar.gz
|
||||
chezmoi import --strip-components 1 --destination ${HOME}/.fzf fzf-master.tar.gz
|
||||
|
||||
curl -s -L -o fzf-marks-master.tar.gz https://github.com/urbainvaes/fzf-marks/archive/master.tar.gz
|
||||
chezmoi import --strip-components 1 --destination ${HOME}/.zsh-custom/plugins/fzf-marks fzf-marks-master.tar.gz
|
||||
|
||||
curl -s -L -o zsh-completions-master.tar.gz https://github.com/zsh-users/zsh-completions/archive/master.tar.gz
|
||||
chezmoi import --strip-components 1 --destination ${HOME}/.zsh-custom/plugins/zsh-completions zsh-completions-master.tar.gz
|
||||
|
||||
update-kubectx:
|
||||
curl -s -L -o kubectx-master.tar.gz https://github.com/ahmetb/kubectx/archive/master.tar.gz
|
||||
chezmoi import --strip-components 1 --destination ${HOME}/.kubectx kubectx-master.tar.gz
|
||||
|
||||
update-plug.vim:
|
||||
curl -s -L https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim > $$(~/bin/chezmoi source-path ~/.vim/autoload/plug.vim)
|
253
dot_dir_colors
Normal file
253
dot_dir_colors
Normal file
|
@ -0,0 +1,253 @@
|
|||
# Copyright (C) 2017-present Arctic Ice Studio <development@arcticicestudio.com>
|
||||
# Copyright (C) 2017-present Sven Greb <development@svengreb.de>
|
||||
|
||||
# Project: Nord dircolors
|
||||
# Version: 0.2.0
|
||||
# Repository: https://github.com/arcticicestudio/nord-dircolors
|
||||
# License: MIT
|
||||
|
||||
COLOR tty
|
||||
|
||||
TERM ansi
|
||||
TERM *color*
|
||||
TERM con[0-9]*x[0-9]*
|
||||
TERM cons25
|
||||
TERM console
|
||||
TERM cygwin
|
||||
TERM dtterm
|
||||
TERM dvtm
|
||||
TERM dvtm-256color
|
||||
TERM Eterm
|
||||
TERM eterm-color
|
||||
TERM fbterm
|
||||
TERM gnome
|
||||
TERM gnome-256color
|
||||
TERM hurd
|
||||
TERM jfbterm
|
||||
TERM konsole
|
||||
TERM konsole-256color
|
||||
TERM kterm
|
||||
TERM linux
|
||||
TERM linux-c
|
||||
TERM mlterm
|
||||
TERM putty
|
||||
TERM putty-256color
|
||||
TERM rxvt*
|
||||
TERM rxvt-unicode
|
||||
TERM rxvt-256color
|
||||
TERM rxvt-unicode256
|
||||
TERM screen*
|
||||
TERM screen-256color
|
||||
TERM st
|
||||
TERM st-256color
|
||||
TERM terminator
|
||||
TERM tmux*
|
||||
TERM tmux-256color
|
||||
TERM vt100
|
||||
TERM xterm*
|
||||
TERM xterm-color
|
||||
TERM xterm-88color
|
||||
TERM xterm-256color
|
||||
|
||||
#+-----------------+
|
||||
#+ Global Defaults +
|
||||
#+-----------------+
|
||||
NORMAL 00
|
||||
RESET 0
|
||||
|
||||
FILE 00
|
||||
DIR 01;34
|
||||
LINK 36
|
||||
MULTIHARDLINK 04;36
|
||||
|
||||
FIFO 04;01;36
|
||||
SOCK 04;33
|
||||
DOOR 04;01;36
|
||||
BLK 01;33
|
||||
CHR 33
|
||||
|
||||
ORPHAN 31
|
||||
MISSING 01;37;41
|
||||
|
||||
EXEC 01;36
|
||||
|
||||
SETUID 01;04;37
|
||||
SETGID 01;04;37
|
||||
CAPABILITY 01;37
|
||||
|
||||
STICKY_OTHER_WRITABLE 01;37;44
|
||||
OTHER_WRITABLE 01;04;34
|
||||
STICKY 04;37;44
|
||||
|
||||
#+-------------------+
|
||||
#+ Extension Pattern +
|
||||
#+-------------------+
|
||||
#+--- Archives ---+
|
||||
.7z 01;32
|
||||
.ace 01;32
|
||||
.alz 01;32
|
||||
.arc 01;32
|
||||
.arj 01;32
|
||||
.bz 01;32
|
||||
.bz2 01;32
|
||||
.cab 01;32
|
||||
.cpio 01;32
|
||||
.deb 01;32
|
||||
.dz 01;32
|
||||
.ear 01;32
|
||||
.gz 01;32
|
||||
.jar 01;32
|
||||
.lha 01;32
|
||||
.lrz 01;32
|
||||
.lz 01;32
|
||||
.lz4 01;32
|
||||
.lzh 01;32
|
||||
.lzma 01;32
|
||||
.lzo 01;32
|
||||
.rar 01;32
|
||||
.rpm 01;32
|
||||
.rz 01;32
|
||||
.sar 01;32
|
||||
.t7z 01;32
|
||||
.tar 01;32
|
||||
.taz 01;32
|
||||
.tbz 01;32
|
||||
.tbz2 01;32
|
||||
.tgz 01;32
|
||||
.tlz 01;32
|
||||
.txz 01;32
|
||||
.tz 01;32
|
||||
.tzo 01;32
|
||||
.tzst 01;32
|
||||
.war 01;32
|
||||
.xz 01;32
|
||||
.z 01;32
|
||||
.Z 01;32
|
||||
.zip 01;32
|
||||
.zoo 01;32
|
||||
.zst 01;32
|
||||
|
||||
#+--- Audio ---+
|
||||
.aac 32
|
||||
.au 32
|
||||
.flac 32
|
||||
.m4a 32
|
||||
.mid 32
|
||||
.midi 32
|
||||
.mka 32
|
||||
.mp3 32
|
||||
.mpa 32
|
||||
.mpeg 32
|
||||
.mpg 32
|
||||
.ogg 32
|
||||
.opus 32
|
||||
.ra 32
|
||||
.wav 32
|
||||
|
||||
#+--- Customs ---+
|
||||
.3des 01;35
|
||||
.aes 01;35
|
||||
.gpg 01;35
|
||||
.pgp 01;35
|
||||
|
||||
#+--- Documents ---+
|
||||
.doc 32
|
||||
.docx 32
|
||||
.dot 32
|
||||
.odg 32
|
||||
.odp 32
|
||||
.ods 32
|
||||
.odt 32
|
||||
.otg 32
|
||||
.otp 32
|
||||
.ots 32
|
||||
.ott 32
|
||||
.pdf 32
|
||||
.ppt 32
|
||||
.pptx 32
|
||||
.xls 32
|
||||
.xlsx 32
|
||||
|
||||
#+--- Executables ---+
|
||||
.app 01;36
|
||||
.bat 01;36
|
||||
.btm 01;36
|
||||
.cmd 01;36
|
||||
.com 01;36
|
||||
.exe 01;36
|
||||
.reg 01;36
|
||||
|
||||
#+--- Ignores ---+
|
||||
*~ 02;37
|
||||
.bak 02;37
|
||||
.BAK 02;37
|
||||
.log 02;37
|
||||
.log 02;37
|
||||
.old 02;37
|
||||
.OLD 02;37
|
||||
.orig 02;37
|
||||
.ORIG 02;37
|
||||
.swo 02;37
|
||||
.swp 02;37
|
||||
|
||||
#+--- Images ---+
|
||||
.bmp 32
|
||||
.cgm 32
|
||||
.dl 32
|
||||
.dvi 32
|
||||
.emf 32
|
||||
.eps 32
|
||||
.gif 32
|
||||
.jpeg 32
|
||||
.jpg 32
|
||||
.JPG 32
|
||||
.mng 32
|
||||
.pbm 32
|
||||
.pcx 32
|
||||
.pgm 32
|
||||
.png 32
|
||||
.PNG 32
|
||||
.ppm 32
|
||||
.pps 32
|
||||
.ppsx 32
|
||||
.ps 32
|
||||
.svg 32
|
||||
.svgz 32
|
||||
.tga 32
|
||||
.tif 32
|
||||
.tiff 32
|
||||
.xbm 32
|
||||
.xcf 32
|
||||
.xpm 32
|
||||
.xwd 32
|
||||
.xwd 32
|
||||
.yuv 32
|
||||
|
||||
#+--- Video ---+
|
||||
.anx 32
|
||||
.asf 32
|
||||
.avi 32
|
||||
.axv 32
|
||||
.flc 32
|
||||
.fli 32
|
||||
.flv 32
|
||||
.gl 32
|
||||
.m2v 32
|
||||
.m4v 32
|
||||
.mkv 32
|
||||
.mov 32
|
||||
.MOV 32
|
||||
.mp4 32
|
||||
.mpeg 32
|
||||
.mpg 32
|
||||
.nuv 32
|
||||
.ogm 32
|
||||
.ogv 32
|
||||
.ogx 32
|
||||
.qt 32
|
||||
.rm 32
|
||||
.rmvb 32
|
||||
.swf 32
|
||||
.vob 32
|
||||
.webm 32
|
||||
.wmv 32
|
3271
dot_emacs.d/CHANGELOG.develop
Normal file
3271
dot_emacs.d/CHANGELOG.develop
Normal file
File diff suppressed because it is too large
Load diff
5219
dot_emacs.d/CHANGELOG.org
Normal file
5219
dot_emacs.d/CHANGELOG.org
Normal file
File diff suppressed because it is too large
Load diff
124
dot_emacs.d/COMMUNITY.org
Normal file
124
dot_emacs.d/COMMUNITY.org
Normal file
|
@ -0,0 +1,124 @@
|
|||
#+TITLE: Spacemacs Community
|
||||
|
||||
* Table of Contents :TOC_5_gh:noexport:
|
||||
- [[#philosophy][Philosophy]]
|
||||
- [[#for-contributors][For Contributors]]
|
||||
- [[#for-users][For Users]]
|
||||
- [[#moderation][Moderation]]
|
||||
- [[#guidelines][Guidelines]]
|
||||
- [[#people][People]]
|
||||
- [[#issues][Issues]]
|
||||
- [[#pull-requests-and-commmits][Pull requests and Commmits]]
|
||||
- [[#messages][Messages]]
|
||||
- [[#interpretation][Interpretation]]
|
||||
- [[#collaborators-privacy][Collaborators privacy]]
|
||||
- [[#maintainer][Maintainer]]
|
||||
- [[#log][Log]]
|
||||
|
||||
* Philosophy
|
||||
** For Contributors
|
||||
- This community is a community of hackers based on meritocracy and
|
||||
volunteering. Hackers strive for excellence to make the world a better place,
|
||||
so does the Spacemacs community.
|
||||
- Be good in what you bring to the project be it code, documentation, typo
|
||||
fixes, art, humor, ideas, project management, web design, assurance quality,
|
||||
mentorship, you name it! We like to award achievements to people making a
|
||||
difference in a wide variety of domains and occasions, [[https://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org#special-titles][see it for yourself]].
|
||||
Why not you? Make it happen, make history!
|
||||
- Think you are not good enough? Find support and mentors by chatting on Gitter
|
||||
with fellow Spacemacs users or just open an issue on GitHub, you will find
|
||||
help to fulfil your desire of contribution. We welcome anyone with good
|
||||
intentions.
|
||||
- In a nutshell: Be good, positive and/or with good intentions and focused on
|
||||
the project.
|
||||
|
||||
** For Users
|
||||
- Any question related to the project is welcomed and encouraged, the worst
|
||||
thing that can happen is that we redirect you to the documentation.
|
||||
- The majority of the interactions with the community happens on GitHub via
|
||||
issues and on Gitter via the official Spacemacs channel. There is also an
|
||||
active official twitter account =spacemacs=.
|
||||
- Any opinion on the project is valorized given it is constructive.
|
||||
|
||||
* Moderation
|
||||
We want the community to be judged based on its moderation actions instead of
|
||||
telling people how to behave. The golden rules of the community are to have good
|
||||
intentions and stay focused on the project, for anything else that requires
|
||||
moderation any future user or contributor can refer to this section to know
|
||||
about our past moderation actions. So readers won't find any example or
|
||||
definition of what collaborators judge offending or outrageous, instead they
|
||||
will find at the end of this section a log of all major moderation actions taken
|
||||
by the collaborators since the beginning of the project which started officially
|
||||
in August 2014. It should allow you to decide whether or not you want to be part
|
||||
of this community. If you are not convinced then be assured that the only evil
|
||||
part in Spacemacs is the evil mode :-)
|
||||
|
||||
** Guidelines
|
||||
These guidelines apply to all collaborators of the project, namely @syl20bnr,
|
||||
@TheBB, @d12frosted and @bmag.
|
||||
|
||||
*** People
|
||||
- Collaborators cannot ban any GitHub user from the repository but they can ban
|
||||
users from the official Gitter channel.
|
||||
- A user can be banned if and only if all the collaborators agree to do so.
|
||||
- The reasons of the ban are mentioned in the moderation actions log (see
|
||||
below).
|
||||
|
||||
*** Issues
|
||||
- Issues can be locked if their contents are judged _inappropriate_, _offending_
|
||||
or if they deviate _dangerously_ from the project.
|
||||
|
||||
*** Pull requests and Commmits
|
||||
- Collaborators can push to the repository without making a PR.
|
||||
- PR can be rejected. Rejected PR always go with a reason explicitly written
|
||||
when closing the PR.
|
||||
- Commits can be reverted if they compromise the stability of the project. The
|
||||
reason is contained in the commit comments.
|
||||
- Pull request are also issues, thus issue guidelines also apply to pull
|
||||
requests.
|
||||
|
||||
*** Messages
|
||||
- Only the form of a message can be edited, not its meaning, except if this
|
||||
meaning is _outrageous_.
|
||||
- Moderators can add information to a message to improve its accuracy without
|
||||
altering its meaning,
|
||||
- Any edition of a message is logged in the =edits log= located at the end of
|
||||
the edited message with the following format:
|
||||
|
||||
#+BEGIN_EXAMPLE
|
||||
EDIT: [@moderator] action (reason: xxx)
|
||||
#+END_EXAMPLE
|
||||
|
||||
- The reason is added only when needed (for instance we won't add a reason for
|
||||
formatting edits)
|
||||
|
||||
** Interpretation
|
||||
Words used in these guidelines like _good_, _inappropriate_, _offending_,
|
||||
_dangerously_ and _outrageous_ are used without any explanation, their meanings
|
||||
and interpretations are left solely to the discretion of the collaborators who
|
||||
are educated persons working in the interest of the community.
|
||||
|
||||
** Collaborators privacy
|
||||
Life and actions of collaborators outside of the project (i.e. outside of the
|
||||
Spacemacs GitHub repository, official Spacemacs Gitter channels and Twitter
|
||||
official Spacemacs account timeline) are completely detached from their
|
||||
activities and roles in the project. They are free to express any opinion on the
|
||||
project or any other subjects and those opinions cannot be used to compromise
|
||||
their roles in the project as long as they follow the moderation guidelines with
|
||||
good intentions.
|
||||
|
||||
** Maintainer
|
||||
- The maintainer @syl20bnr as a BDFL is free to demote a collaborator in extreme
|
||||
situations.
|
||||
- When there is no consensus on a subject, the BDFL can decide to impose his
|
||||
view on the subject.
|
||||
|
||||
** Log
|
||||
For transparency and future reference any major moderation actions are recorded
|
||||
here. As of Sunday, April 10th 2016, 7200 issues have been opened and 2 major
|
||||
moderation actions have been taken:
|
||||
|
||||
| Date | Moderator | Action | Issue | Reason |
|
||||
|------------+-----------+--------+-------+-----------------------------------------------------------------|
|
||||
| 2016/01/27 | syl20bnr | lock | #3484 | comments judged to be offending towards the Spacemacs community |
|
||||
| 2016/01/27 | syl20bnr | unlock | #3484 | let's make it happen, i.e. this document |
|
376
dot_emacs.d/CONTRIBUTING.org
Normal file
376
dot_emacs.d/CONTRIBUTING.org
Normal file
|
@ -0,0 +1,376 @@
|
|||
#+TITLE: Contribution guidelines
|
||||
|
||||
Spacemacs is a volunteer effort. We encourage you to pitch in. The community
|
||||
makes Spacemacs what it is. We have a few guidelines, which we ask all
|
||||
contributors to follow.
|
||||
|
||||
You can only consider reading the sections relevant to what you are going to do:
|
||||
- [[#asking-for-help][Asking for help]] if you are about to open an issue to ask a question.
|
||||
- [[#reporting-issues][Reporting issues]] if you are about to open a new issue.
|
||||
- [[#contributing-code][Contributing code]] if you are about to send a PR.
|
||||
- [[https://github.com/syl20bnr/spacemacs/blob/develop/CONTRIBUTING.org#reviewing-pull-requests][Reviewing Pull Requests]] if you are about to review a PR.
|
||||
|
||||
Thanks! :heart: :heart: :heart:
|
||||
|
||||
* Table of Contents :TOC_5_gh:noexport:
|
||||
- [[#asking-for-help][Asking for help]]
|
||||
- [[#reporting-issues][Reporting issues]]
|
||||
- [[#contributing-code][Contributing code]]
|
||||
- [[#general-contribution-guidelines][General contribution guidelines]]
|
||||
- [[#license][License]]
|
||||
- [[#conventions][Conventions]]
|
||||
- [[#changelog-entry][Changelog entry]]
|
||||
- [[#pull-request][Pull Request]]
|
||||
- [[#ideally-for-simple-prs-most-of-them][Ideally for /simple/ PRs (most of them):]]
|
||||
- [[#for-complex-prs-big-refactoring-etc][For complex PRs (big refactoring, etc):]]
|
||||
- [[#commit-messages][Commit messages]]
|
||||
- [[#contributing-a-layer][Contributing a layer]]
|
||||
- [[#file-header][File header]]
|
||||
- [[#author-of-a-new-layer][Author of a new layer]]
|
||||
- [[#readmeorg-tags][README.org tags]]
|
||||
- [[#contributor-to-an-existing-layer][Contributor to an existing layer]]
|
||||
- [[#contributing-a-key-binding][Contributing a key binding]]
|
||||
- [[#contributing-a-banner][Contributing a banner]]
|
||||
- [[#reviewing-pull-requests][Reviewing Pull Requests]]
|
||||
- [[#using-magit-to-quickly-test-prs][Using Magit to quickly test PRs]]
|
||||
- [[#additional-information][Additional information]]
|
||||
- [[#testing][Testing]]
|
||||
- [[#credits][Credits]]
|
||||
|
||||
* Asking for help
|
||||
If you want to ask an usage question, be sure to look first into some places as
|
||||
it may hold the answer:
|
||||
- [[https://github.com/syl20bnr/spacemacs/blob/develop/doc/FAQ.org][The FAQ]]. Some of the most frequently asked questions are answered there.
|
||||
- [[https://github.com/syl20bnr/spacemacs/blob/develop/doc/DOCUMENTATION.org][The documentation]]. It's the general documentation of Spacemacs.
|
||||
- You may also read the =README.org= of the [[https://github.com/syl20bnr/spacemacs/blob/develop/doc/LAYERS.org][relevant layer(s)]].
|
||||
|
||||
If your question is not answered there, then please come into our [[https://gitter.im/syl20bnr/spacemacs][gitter chat]] to
|
||||
discuss it with us :relaxed:. We will direct you to a solution, or ask you to
|
||||
open an issue if it is needed.
|
||||
|
||||
* Reporting issues
|
||||
Issues have to be reported on our [[https://github.com/syl20bnr/spacemacs/issues][issues tracker]]. Please:
|
||||
- Check that the issue has not already been reported.
|
||||
- This can be achieved by searching keywords on the [[https://github.com/syl20bnr/spacemacs/issues][issues tracker]].
|
||||
- Check that the issue has not been fixed in the =develop= version of Spacemacs.
|
||||
- This can be achieved by running Spacemacs on the =develop= branch and trying
|
||||
to reproduce the bug here. You can also check at the [[https://github.com/syl20bnr/spacemacs/tree/develop][source code]] to see if
|
||||
it has been changed/corrected.
|
||||
- Try to use a clear title, and describe your problem with complete sentences.
|
||||
See also [[https://github.com/syl20bnr/spacemacs/wiki/Debugging#how-to-make-a-great-bug-report][How to make a great bug report]] in the wiki.
|
||||
- Include the following information in your issue:
|
||||
- The output of =SPC h d s= (=M-m h d s= in Emacs style), which gives the
|
||||
versions information about your installation.
|
||||
- If relevant, include the mode in which the problem arise (e.g. javascript
|
||||
files, =org-mode=, etc…).
|
||||
- If possible, try to include details on how to reproduce it, like a step by
|
||||
step guide.
|
||||
|
||||
* Contributing code
|
||||
Code contributions are welcome. Please read the following sections carefully. In
|
||||
any case, feel free to join us on the [[https://gitter.im/syl20bnr/spacemacs][gitter chat]] to ask questions about
|
||||
contributing!
|
||||
|
||||
** General contribution guidelines
|
||||
*** License
|
||||
The license is =GPLv3= for all parts specific to Spacemacs, this includes:
|
||||
- The initialization and core files
|
||||
- All the layer files.
|
||||
|
||||
For files not belonging to Spacemacs like local packages and libraries, refer
|
||||
to the header file. Those files should not have an empty header, we may not
|
||||
accept code without a proper header file.
|
||||
|
||||
*** Conventions
|
||||
Spacemacs is based on conventions, mainly for naming functions, keybindings
|
||||
definition and writing documentation. Please read the [[https://github.com/syl20bnr/spacemacs/blob/develop/doc/CONVENTIONS.org][CONVENTIONS.org]] file
|
||||
before your first contribution to get to know them.
|
||||
|
||||
*** Changelog entry
|
||||
Add a short entry describing your proposed change under a suitable subheading in
|
||||
[[https://github.com/syl20bnr/spacemacs/blob/develop/CHANGELOG.develop][CHANGELOG.develop]]. Use the previous entries and [[https://github.com/syl20bnr/spacemacs/blob/develop/CONTRIBUTING.org#commit-messages][commit messages instructions]] as
|
||||
guidelines. You can add your name or github username in parentheses at the end
|
||||
of the entry if you want to. If an entry already exists describing your PR
|
||||
(small documentation improvements etc.), you can omit the changelog entry or add
|
||||
your name at the end of the pre-existing one.
|
||||
|
||||
*** Pull Request
|
||||
Submit your contribution against the =develop= branch. You should not use
|
||||
your =master= branch to modify Spacemacs, this branch is considered to be
|
||||
read-only.
|
||||
|
||||
You may want to [[https://github.com/syl20bnr/spacemacs/wiki/Beginner%27s-Guide-to-Contributing-a-Pull-Request-to-Spacemacs][read our beginner's guide for Pull Requests]].
|
||||
|
||||
/PR = Pull Request/
|
||||
|
||||
**** Ideally for /simple/ PRs (most of them):
|
||||
- Branch from =develop=
|
||||
- One topic per PR
|
||||
- One commit per PR
|
||||
- If you have several commits on different topics, close the PR and
|
||||
create one PR per topic
|
||||
- If you still have several commits, squash them into only one commit
|
||||
- Rebase your PR branch on top of upstream =develop= before submitting
|
||||
the PR
|
||||
|
||||
Those PRs are usually /cherry-picked/.
|
||||
|
||||
**** For complex PRs (big refactoring, etc):
|
||||
- Squash only the commits with uninteresting changes like typos, syntax fixes,
|
||||
etc... and keep the important and /isolated/ steps in different commits.
|
||||
|
||||
Those PRs are /merged/ and explicitly /not fast-forwarded/.
|
||||
|
||||
*** Commit messages
|
||||
Write commit messages according to adapted [[http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html][Tim Pope's guidelines]]:
|
||||
- Use present tense and write in the imperative: "Fix bug", not "fixed bug" or
|
||||
"fixes bug".
|
||||
- Start with a capitalized, short (72 characters or less) summary, followed by a
|
||||
blank line.
|
||||
- If necessary, add one or more paragraphs with details, wrapped at 72
|
||||
characters.
|
||||
- Separate paragraphs by blank lines.
|
||||
|
||||
This is a model commit message:
|
||||
|
||||
#+BEGIN_EXAMPLE
|
||||
Capitalized, short (72 chars or less) summary
|
||||
|
||||
More detailed explanatory text, if necessary. Wrap it to about 72
|
||||
characters or so. In some contexts, the first line is treated as the
|
||||
subject of an email and the rest of the text as the body. The blank
|
||||
line separating the summary from the body is critical (unless you omit
|
||||
the body entirely); tools like rebase can get confused if you run the
|
||||
two together.
|
||||
|
||||
Write your commit message in the imperative: "Fix bug" and not "Fixed bug"
|
||||
or "Fixes bug." This convention matches up with commit messages generated
|
||||
by commands like git merge and git revert.
|
||||
|
||||
Further paragraphs come after blank lines.
|
||||
|
||||
- Bullet points are okay, too
|
||||
|
||||
- Typically a hyphen or asterisk is used for the bullet, followed by a
|
||||
single space, with blank lines in between, but conventions vary here
|
||||
|
||||
- Use a hanging indent
|
||||
#+END_EXAMPLE
|
||||
|
||||
[[https://github.com/magit/magit/][Git Commit]] and [[https://github.com/magit/magit/][Magit]] provide Emacs mode for Git commit messages, which helps you
|
||||
to comply to these guidelines.
|
||||
|
||||
** Contributing a layer
|
||||
Please read the [[https://github.com/syl20bnr/spacemacs/blob/develop/doc/LAYERS.org][layers documentation]] first.
|
||||
|
||||
It is recommended to use the =configuration-layer/create-layer= command in order
|
||||
to create a layer, as it will take care of using the files templates and will
|
||||
also create the file headers correctly.
|
||||
|
||||
Contributed configuration layers are stored in the =layers/= folder. The
|
||||
=layers/= folder also contains categories prefixed with =+= to put your layers
|
||||
in. For example a layer for a language would go in the =layers/+lang/= folder.
|
||||
|
||||
Layer with no associated configuration will be rejected. For instance a layer
|
||||
with just a package and a hook can be easily replaced by the usage of the
|
||||
variable =dotspacemacs-additional-packages=.
|
||||
|
||||
*** File header
|
||||
The file header for =elisp= files should look like the following template:
|
||||
|
||||
#+BEGIN_EXAMPLE
|
||||
;;; FILENAME --- NAME Layer packages File for Spacemacs
|
||||
;;
|
||||
;; Copyright (c) 2012-2018 Sylvain Benner & Contributors
|
||||
;;
|
||||
;; Author: YOUR_NAME <YOUR_EMAIL>
|
||||
;; URL: https://github.com/syl20bnr/spacemacs
|
||||
;;
|
||||
;; This file is not part of GNU Emacs.
|
||||
;;
|
||||
;;; License: GPLv3
|
||||
#+END_EXAMPLE
|
||||
|
||||
You should replace =FILENAME= by the name of the file (e.g. =packages.el=)
|
||||
and =NAME= by the name of the layer you are creating, don't forget to replace
|
||||
=YOUR_NAME= and =YOUR_EMAIL= also. Some files already have a template inside
|
||||
=core/templates/=, so look in there first.
|
||||
Note that if you use =configuration-layer/create-layer=, spacemacs will prepare
|
||||
files and headers for you, and for free :smile: !
|
||||
|
||||
*** Author of a new layer
|
||||
In the files header, change the default author name (=Sylvain Benner=) to your
|
||||
name.
|
||||
|
||||
**** README.org tags
|
||||
Every README.org file of a layer should have =#+TAGS:= line:
|
||||
|
||||
#+BEGIN_EXAMPLE
|
||||
#+TITLE: My layer
|
||||
|
||||
#+TAGS: layer|web service
|
||||
|
||||
* Table of Contents :TOC_5_gh:noexport:
|
||||
...
|
||||
#+END_EXAMPLE
|
||||
|
||||
Individual tags are separated with "|" character.
|
||||
Example above has 2 tags: "layer" and "web service".
|
||||
Tags are listed in [[https://github.com/syl20bnr/spacemacs/blob/develop/.ci/spacedoc-cfg.edn][<spacemacs_root>/.ci/spacedoc-cfg.edn]] configuration file.
|
||||
|
||||
#+BEGIN_SRC clojure
|
||||
:spacetools.spacedoc.config/valid-tags
|
||||
{"chat" "Chats"
|
||||
...
|
||||
<TAG> <LABEL>
|
||||
...
|
||||
"completion" "Completion"}
|
||||
#+END_SRC
|
||||
|
||||
Labels are used to name headlines in [[https://github.com/syl20bnr/spacemacs/blob/develop/layers/LAYERS.org][LAYERS.org]] file and
|
||||
[[https://github.com/syl20bnr/spacemacs/blob/develop/.ci/spacedoc-cfg.edn][:spacetools.spacedoc.config/layers-org-query]] defines structure of the file by
|
||||
chaining tags into a tree where every leaf turns into a list of
|
||||
descriptions pulled out of README.org files which tags match leaf's path in the tree.
|
||||
You can see how the shape of [[https://github.com/syl20bnr/spacemacs/blob/develop/.ci/spacedoc-cfg.edn][<spacemacs_root>/.ci/spacedoc-cfg.edn]]
|
||||
repeats in [[https://github.com/syl20bnr/spacemacs/blob/develop/layers/LAYERS.org#table-of-contents][TOC of LAYERS.org]].
|
||||
|
||||
Important details:
|
||||
- Every layer description will be displayed exacly one time.
|
||||
- In the case when a README.org file of a layer doesn't have =#+TAGS:=
|
||||
documentation formatting tool will inster dummy tags =layer|uncategorized=,
|
||||
such files will be listed in [[https://github.com/syl20bnr/spacemacs/blob/develop/layers/LAYERS.org#readmeorg-files-that-need-proper-tags][LAYERS.org#readmeorg-files-that-need-proper-tags]].
|
||||
- Files which tag set has not being matched by [[https://github.com/syl20bnr/spacemacs/blob/develop/.ci/spacedoc-cfg.edn][:spacetools.spacedoc.config/layers-org-query]]
|
||||
will appire in [[https://github.com/syl20bnr/spacemacs/blob/develop/layers/LAYERS.org#skipped-layers][LAYERS.org#skipped-layers]]
|
||||
- If [[https://github.com/syl20bnr/spacemacs/blob/develop/layers/LAYERS.org][LAYERS.org]] file has =Skipped layers:= and/or
|
||||
=README.org files that need proper tags= sections - someone is slacking :wink:
|
||||
|
||||
If you want to experiment with the tool locally:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
docker run --rm \
|
||||
-v <SPACEMACS_REPO_ROOT>:/tmp/docs \
|
||||
-v <PATH_TO_CONFIG_FILE>:/opt/spacetools/spacedoc-cfg.edn \
|
||||
jare/spacetools docfmt /tmp/docs/
|
||||
#+END_SRC
|
||||
|
||||
*** Contributor to an existing layer
|
||||
If you are contributing to an already existing layer, you should not modify any
|
||||
header file.
|
||||
|
||||
** Contributing a key binding
|
||||
Key bindings are an important part of spacemacs.
|
||||
|
||||
First if you want to have some personal key bindings, you can freely bind them
|
||||
inside the ~SPC o~ and ~SPC m o~ prefixes which are reserved for the user. This
|
||||
can be done from the =dotspacemacs/user-config= function of your =.spacemacs=
|
||||
file and don't require any contribution to Spacemacs.
|
||||
|
||||
If you think it worth contributing a new key bindings then be sure to read
|
||||
the [[https://github.com/syl20bnr/spacemacs/blob/develop/doc/CONVENTIONS.org][CONVENTIONS.org]] file to find the best key bindings, then create a
|
||||
PR with your changes.
|
||||
|
||||
*ALWAYS* document your new key bindings or key bindings changes inside the
|
||||
relevant documentation file. It should be the layer's =README.org= file for
|
||||
layer's key bindings, or =DOCUMENTATION.org= for general Spacemacs key
|
||||
bindings.
|
||||
|
||||
** Contributing a banner
|
||||
The startup banner is by default the Spacemacs logo but there are also ASCII
|
||||
banners available in the directory =core/banners/=.
|
||||
|
||||
If you have some ASCII skills you can submit your artwork!
|
||||
|
||||
You are free to choose a reasonable height size but the width size should be
|
||||
around 75 characters.
|
||||
|
||||
* Reviewing Pull Requests
|
||||
You can contribute by reviewing PRs created by others. This will help share the
|
||||
workload of the project maintainers by letting them know that a PR has been
|
||||
tested by an independent reviewer. The steps:
|
||||
- Check that the PR complies with the guidelines in [[https://github.com/syl20bnr/spacemacs/blob/develop/CONTRIBUTING.org#contributing-code][Contributing code]].
|
||||
- Check that the PR complies with [[https://github.com/syl20bnr/spacemacs/blob/develop/doc/CONVENTIONS.org][CONVENTIONS.org]].
|
||||
- Check out the PR branch and test it. Remember to update your packages and your
|
||||
=~/.spacemacs= file. Testing means that you actually use the features touched
|
||||
by the PR, and the more complex or feature-rich the proposed changes are, the
|
||||
more testing is required. Be creative in trying to find bugs! Preferably, use
|
||||
the PR branch for hours or days to help stumble on unforeseen issues. Of
|
||||
course, common sense can be used and typo fixes do not need to be tested
|
||||
against bugs, but be thorough in actual code changes. Testing with a fresh
|
||||
spacemacs installation might be a good idea as well.
|
||||
- Step back and think if the proposed changes could cause any other problems not
|
||||
covered by your testing. You should also ask yourself whether or not you feel
|
||||
that your testing is adequate to confidently state that this PR introduces no
|
||||
new bugs. If you feel that additional testing by more community members could
|
||||
be helpful, state so in your review.
|
||||
|
||||
If you find something to improve, [[https://help.github.com/articles/reviewing-proposed-changes-in-a-pull-request/][report]] it constructively and politely so the
|
||||
contributor can update the PR accordingly. When you find that the PR is ready to
|
||||
merge, you can leave an approving [[https://help.github.com/articles/reviewing-proposed-changes-in-a-pull-request/][review]]. Please report explicitly how you
|
||||
tested the PR for bugs, and confirm that you have checked its compliance with
|
||||
the code conventions. Copy the following line to your approving review to notify
|
||||
the collaborators:
|
||||
|
||||
#+BEGIN_EXAMPLE
|
||||
Ready to be merged! (@syl20bnr @TheBB @d12frosted @bmag @JAremko)
|
||||
#+END_EXAMPLE
|
||||
|
||||
Now the collaborators who have write access to the repository will use their
|
||||
judgement to either merge the PR or require further review from another
|
||||
reviewer. This is done to ensure a thorough cross-referencing in case of complex
|
||||
changes, your review is very valuable in these cases as well!
|
||||
|
||||
** Using Magit to quickly test PRs
|
||||
It is possible to manage PRs directly inside the Magit status buffer ~SPC g s~.
|
||||
First add the =github= layer to your dotfile which will pull the package
|
||||
=forge=. Once installed you need to set it up with a [[https://magit.vc/manual/ghub/Getting-Started.html#Getting-Started][GitHub personal access
|
||||
token]] after which you can execute ~M-x forge-pull~. It will fetch all the PRs
|
||||
which may take a few seconds as we have lot of PRs. Note also that all your
|
||||
Magit actions will get some additional delay due to the refresh of the PRs list.
|
||||
|
||||
Now, from the magit status buffer you can:
|
||||
- checkout a PR with ~b y~ and searching it by name or ID
|
||||
- donate all commits to develop by doing ~A d~ and selecting your current branch
|
||||
first and the develop branch second
|
||||
- switch to the develop branch by pressing ~b b~ and selecting it
|
||||
- delete the PR branch and remote by doing ~b x~ and selecting it
|
||||
|
||||
* Additional information
|
||||
** Testing
|
||||
Tests live in the =tests/= folder, with a folder structure corresponding to the
|
||||
rest of the repository.
|
||||
|
||||
To run tests locally, navigate to the relevant subfolder and run =make=.
|
||||
|
||||
Spacemacs uses Travis CI to perform more comprehensive testing, where each
|
||||
testable layer is enabled in turn.
|
||||
|
||||
To add tests for a layer, do the following:
|
||||
1. Create a subfolder of =tests/= corresponding to the layer you want to test.
|
||||
2. Write a file called =dotspacemacs.el= in that folder. It should be a minimal
|
||||
dotfile that enables the layer in question (and other layers it may depend
|
||||
on).
|
||||
3. Write a number of files with tests. Please try to separate unit and
|
||||
functional tests. Look at existing tests for clues.
|
||||
4. Write a =Makefile= in that folder. It should define three variables.
|
||||
- a list of additional files to load before testing (relative
|
||||
to the root Spacemacs folder). This should typically be =init.el=.
|
||||
- a list of unit test files in the current folder.
|
||||
- a list of functional test files in the current folder.
|
||||
|
||||
See existing tests for examples.
|
||||
|
||||
#+BEGIN_SRC makefile
|
||||
TEST_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
|
||||
|
||||
LOAD_FILES = ...
|
||||
UNIT_TEST_FILES = ...
|
||||
FUNC_TEST_FILES = ...
|
||||
|
||||
include ../../spacemacs.mk
|
||||
#+END_SRC
|
||||
|
||||
5. Add the new test to list of tests in =travis/run_build.sh=.
|
||||
|
||||
* Credits
|
||||
This =CONTRIBUTING.org= file is partially based on the [[https://github.com/rails/rails/blob/master/CONTRIBUTING.md][Rails Contribution
|
||||
guidelines]] and [[https://github.com/flycheck/flycheck/blob/master/doc/contributor/contributing.rst][Flycheck Contribution guidelines]].
|
55
dot_emacs.d/Dockerfile
Normal file
55
dot_emacs.d/Dockerfile
Normal file
|
@ -0,0 +1,55 @@
|
|||
### Dockerfile --- spacemacs-docker dockerfile with latest Emacs
|
||||
##
|
||||
## Copyright (c) 2012-2018 Sylvain Benner & Contributors
|
||||
##
|
||||
## Author: Eugene "JAremko" Yaremenko <w3techplayground@gmail.com>
|
||||
##
|
||||
##
|
||||
## This file is not part of GNU Emacs.
|
||||
##
|
||||
### License: GPLv3
|
||||
##
|
||||
## See spacemacs/layers/+distributions/spacemacs-docker/README.org
|
||||
|
||||
FROM jare/emacs:latest
|
||||
|
||||
MAINTAINER JAremko <w3techplaygound@gmail.com>
|
||||
|
||||
ENV UNAME="spacemacser" \
|
||||
UID="1000"
|
||||
|
||||
# Default fonts
|
||||
ENV NNG_URL="https://github.com/google/fonts/raw/master/ofl/\
|
||||
nanumgothic/NanumGothic-Regular.ttf" \
|
||||
SCP_URL="https://github.com/adobe-fonts/source-code-pro/\
|
||||
archive/2.030R-ro/1.050R-it.tar.gz"
|
||||
RUN apt-get update && apt-get install wget \
|
||||
&& mkdir -p /usr/local/share/fonts \
|
||||
&& wget -qO- "${SCP_URL}" | tar xz -C /usr/local/share/fonts \
|
||||
&& wget -q "${NNG_URL}" -P /usr/local/share/fonts \
|
||||
&& fc-cache -fv \
|
||||
&& apt-get purge wget \
|
||||
&& rm -rf /tmp/* /var/lib/apt/lists/* /root/.cache/*
|
||||
|
||||
# UHOME is /home/emacs (from jare/emacs)
|
||||
ADD . ${UHOME}/.emacs.d
|
||||
|
||||
# Init Spacemacs
|
||||
RUN cp ${UHOME}/.emacs.d/core/templates/.spacemacs.template ${UHOME}/ \
|
||||
&& mv ${UHOME}/.spacemacs.template ${UHOME}/.spacemacs \
|
||||
&& sed -i "s/\(-distribution 'spacemacs\)/\1-docker/" \
|
||||
${UHOME}/.spacemacs \
|
||||
&& asEnvUser emacs -batch -u ${UNAME} -kill \
|
||||
&& asEnvUser emacs -batch -u ${UNAME} -kill \
|
||||
&& chmod ug+rw -R ${UHOME}
|
||||
|
||||
# Test Spacemacs
|
||||
RUN asEnvUser make -C ${UHOME}/.emacs.d/tests/core/ test \
|
||||
&& cd ${UHOME}/.emacs.d \
|
||||
&& printf "SPACEMACS REVISION: %s\n" "$(git rev-parse --verify HEAD)"
|
||||
|
||||
RUN ln -s \
|
||||
${UHOME}/.emacs.d/layers/+distributions/spacemacs-docker/deps-install/run \
|
||||
/usr/local/sbin/install-deps \
|
||||
&& chown root:root /usr/local/sbin/install-deps \
|
||||
&& chmod 770 /usr/local/sbin/install-deps
|
287
dot_emacs.d/EXPERIMENTAL.org
Normal file
287
dot_emacs.d/EXPERIMENTAL.org
Normal file
|
@ -0,0 +1,287 @@
|
|||
#+TITLE: Spacemacs experimental features
|
||||
|
||||
* Table of Contents :TOC_5_gh:noexport:
|
||||
- [[#spacemacs-dumps-using-the-portable-dumper][Spacemacs dumps using the portable dumper]]
|
||||
- [[#setup][Setup]]
|
||||
- [[#emacs-plus-users][=emacs-plus= users]]
|
||||
- [[#clone-emacs][Clone Emacs]]
|
||||
- [[#simple-patch-of-emacs-source-code][Simple patch of Emacs source code]]
|
||||
- [[#compile-emacs-from-source][Compile Emacs from source]]
|
||||
- [[#macos][macOS]]
|
||||
- [[#ubuntu][Ubuntu]]
|
||||
- [[#windows][Windows]]
|
||||
- [[#install-emacs][Install Emacs]]
|
||||
- [[#windows-1][Windows]]
|
||||
- [[#update-your-dotfile][Update your dotfile]]
|
||||
- [[#add-pre-dump-function-to-layers][Add pre-dump function to layers]]
|
||||
- [[#test][Test]]
|
||||
- [[#report-issues][Report issues]]
|
||||
- [[#usage][Usage]]
|
||||
|
||||
* Spacemacs dumps using the portable dumper
|
||||
The portable dumper is a feature that will be available with Emacs 27. This new
|
||||
dumper should theoretically work on all the three major OSes: GNU/Linux, macOS
|
||||
and Windows.
|
||||
|
||||
** Setup
|
||||
To test the portable dumper with Spacemacs, follow these steps:
|
||||
|
||||
*** =emacs-plus= users
|
||||
In case you are using =d12frosted/emacs-plus= on macOS, you can skip manual
|
||||
Emacs installation instructions and just use =--HEAD= option passed to
|
||||
=brew=.
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
brew install emacs-plus --HEAD
|
||||
#+END_SRC
|
||||
|
||||
*** Clone Emacs
|
||||
Clone Emacs from [[https://git.savannah.gnu.org/git/emacs.git]]:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
git clone https://git.savannah.gnu.org/git/emacs.git
|
||||
cd emacs
|
||||
#+END_SRC
|
||||
|
||||
Note: On windows make sure that autocrlf is disabled in git before cloning or
|
||||
else the =autoconf.sh= script will fail later on:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
git config --global core.autocrlf false
|
||||
#+END_SRC
|
||||
|
||||
*** Simple patch of Emacs source code
|
||||
*Note: This seems to not be needed anymore. For reference we still keep it in
|
||||
the guide.*
|
||||
|
||||
We need to increase the number of =remembered_data= slots in =src/pdumper.c=, we
|
||||
double the number of slots by replacing 32 with 64:
|
||||
|
||||
#+BEGIN_SRC C
|
||||
static struct
|
||||
{
|
||||
void *mem;
|
||||
int sz;
|
||||
} remembered_data[64];
|
||||
#+END_SRC
|
||||
|
||||
*** Compile Emacs from source
|
||||
This step depends on your OS (please create a PR to add the instructions for
|
||||
your OS).
|
||||
|
||||
**** macOS
|
||||
In the root directory of your freshly cloned Emacs repository in the =master=
|
||||
branch as the current branch:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
./autogen.sh
|
||||
./configure --with-ns --with-dbus --with-gnutls --with-imagemagick --with-rsvg --with-mailutils --with-xml2 --with-modules
|
||||
make
|
||||
#+END_SRC
|
||||
|
||||
**** Ubuntu
|
||||
/Note: This is tested on Ubuntu 17.10./
|
||||
|
||||
In the root directory of your freshly cloned Emacs repository in the =master=
|
||||
branch as the current branch:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
./autogen.sh
|
||||
# Pick one. The first one will install Emacs locally and the second one will install it globally.
|
||||
./configure --with-dbus --with-gnutls --with-imagemagick --with-rsvg --with-mailutils --with-xml2 --with-modules --prefix="$HOME/.local"
|
||||
./configure --with-dbus --with-gnutls --with-imagemagick --with-rsvg --with-mailutils --with-xml2 --with-modules
|
||||
make
|
||||
#+END_SRC
|
||||
|
||||
If you have never compiled Emacs from source on your machine then you probably
|
||||
need to install the following packages:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
sudo apt-get install build-essential automake texinfo libjpeg-dev libncurses5-dev
|
||||
sudo apt-get install libtiff5-dev libgif-dev libpng-dev libxpm-dev libgtk-3-dev libgnutls28-dev
|
||||
#+END_SRC
|
||||
|
||||
**** Windows
|
||||
/Note: This is tested on Windows 10/
|
||||
|
||||
Install MSYS2 x86_64 from [[http://repo.msys2.org/distrib/x86_64/][here]].
|
||||
|
||||
Run msys2_shell.bat and in the msys2 prompt run:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
pacman -S base-devel mingw-w64-x86_64-toolchain \
|
||||
mingw-w64-x86_64-xpm-nox mingw-w64-x86_64-libtiff \
|
||||
mingw-w64-x86_64-giflib mingw-w64-x86_64-jbigkit \
|
||||
mingw-w64-x86_64-libpng mingw-w64-x86_64-libjpeg-turbo \
|
||||
mingw-w64-x86_64-librsvg mingw-w64-x86_64-libxml2 \
|
||||
mingw-w64-x86_64-gnutls
|
||||
#+END_SRC
|
||||
|
||||
Quit the msys2 shell and run mingw64.exe in the msys64 install directory. In the
|
||||
mingw prompt navigate to the emacs source checkout (=cd /c/= will get you to the
|
||||
root of the c drive) and run:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
./autogen.sh
|
||||
./configure --without-ns --without-dbus --with-gnutls --with-imagemagick --with-rsvg --with-mailutils --with-xml2 --with-modules
|
||||
make
|
||||
#+END_SRC
|
||||
|
||||
Instructions from [[https://sourceforge.net/p/emacsbinw64/wiki/Build%20guideline%20for%20MSYS2-MinGW-w64%20system/][here]].
|
||||
|
||||
*** Install Emacs
|
||||
After the compiliation finished successfully, you may need to install Emacs.
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
make install # if you configure Emacs to install locally
|
||||
sudo make install # if globally
|
||||
#+END_SRC
|
||||
|
||||
**** Windows
|
||||
In the mingw shell run:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
make install prefix=/c/emacs
|
||||
cp /mingw64/bin/{libwinpthread-*.dll,libXpm-noX*.dll,libdbus-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libgomp-*.dll,libgcc_s_seh-*.dll,libglib-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libintl-*.dll,libiconv-*.dll,libgobject-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libffi-*.dll,libgdk_pixbuf-*.dll,libgio-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libgmodule-*.dll,zlib*.dll,librsvg-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libcairo-*.dll,libcroco-*.dll,libpango-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libpangocairo-*.dll,libxml2-*.dll,libfontconfig-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libfreetype-*.dll,libpixman-*.dll,libpng*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libpangoft*.dll,libpangowin32-*.dll,liblzma-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libexpat-*.dll,libharfbuzz-*.dll,libgnutls-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libgnutlsxx-*.dll,libtiff-*.dll,libtiffxx-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libjpeg-*.dll,libgif-*.dll,libbz2-*.dll,libjbig-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libgmp-*.dll,libhogweed-*.dll,libnettle-*.dll} /c/emacs/bin
|
||||
cp /mingw64/bin/{libp11-kit-*.dll,libtasn1-*.dll} /c/emacs/bin
|
||||
#+END_SRC
|
||||
|
||||
*** Update your dotfile
|
||||
In the function =dotspacemacs/init= add the following variables if you don't
|
||||
have them already and initialize them:
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun dotspacemacs/init ()
|
||||
"Initialization:
|
||||
This function is called at the very beginning of Spacemacs startup,
|
||||
before layer configuration.
|
||||
It should only modify the values of Spacemacs settings."
|
||||
(setq-default
|
||||
|
||||
;; If non-nil then enable support for the portable dumper. You'll need
|
||||
;; to compile Emacs 27 from source following the instructions in file
|
||||
;; EXPERIMENTAL.org at to root of the git repository.
|
||||
;; (default nil)
|
||||
dotspacemacs-enable-emacs-pdumper t
|
||||
|
||||
;; Name of executable file pointing to emacs 27+. This executable must be
|
||||
;; in your PATH.
|
||||
;; (default "emacs")
|
||||
dotspacemacs-emacs-pdumper-executable-file "emacs"
|
||||
|
||||
;; Name of the Spacemacs dump file. This is the file will be created by the
|
||||
;; portable dumper in the cache directory under dumps sub-directory.
|
||||
;; To load it when starting Emacs add the parameter `--dump-file'
|
||||
;; when invoking Emacs 27 executable on the command line, for instance:
|
||||
;; ./emacs --dump-file=~/.emacs.d/.cache/dumps/spacemacs.pdmp
|
||||
;; (default spacemacs.pdmp)
|
||||
dotspacemacs-emacs-dumper-dump-file "spacemacs.pdmp"))
|
||||
#+END_SRC
|
||||
|
||||
A new user dotfile function has been added which is called before doing the
|
||||
dump. The function name is =dotspacemacs/user-load=. You can require additional
|
||||
libraries before the dump so they won't need to be lazy loaded.
|
||||
|
||||
Add this to your dotfile if you don't have it already.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun dotspacemacs/user-load ()
|
||||
"Library to load while dumping.
|
||||
This function is called while dumping Spacemacs configuration. You can
|
||||
`require' or `load' the libraries of your choice that will be included
|
||||
in the dump."
|
||||
)
|
||||
#+END_SRC
|
||||
|
||||
This is a good place to use the function =spacemacs/dump-modes= which
|
||||
all to easily load modes in a temporary buffer to trigger all the possible
|
||||
side effects.
|
||||
|
||||
For instance to load my-mode:
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(spacemacs/dump-modes '(my-mode))
|
||||
#+END_SRC
|
||||
|
||||
*Friendly suggestions:*
|
||||
- If you have a lot of personal configuration in =user-init= and =user-config=,
|
||||
you can try to move them into =user-load= as this can reduce the time to load
|
||||
those customized configurations.
|
||||
|
||||
*** Add pre-dump function to layers
|
||||
It is also possible to execute some lisp for each used layer by defining a
|
||||
function named =<layer>/pre-dump= in the =config.el= file of the layer.
|
||||
|
||||
Example for the org layer:
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
;; Dumper
|
||||
|
||||
(defun org/pre-dump ()
|
||||
(spacemacs/dump-modes '(org-mode)))
|
||||
#+END_SRC
|
||||
|
||||
*Note*: In order to not generate dump files that are too big we try to use this
|
||||
mechanism only when it makes a noticeable difference for all users.
|
||||
|
||||
*** Test
|
||||
Restart Emacs. Each time Emacs starts, Spacemacs will check if the list of your
|
||||
layers has changed, if it has changed then Emacs will be automatically dumped
|
||||
for you in an asynchronous process. The buffer for the output of the process is
|
||||
named =*spacemacs dumper*=.
|
||||
|
||||
If you have no error during the dump you can test it out!
|
||||
|
||||
To actually start Spacemacs with the compiled Emacs 27 and the Spacemacs dump,
|
||||
on the command line in the =src= directory of the cloned Emacs source:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
./emacs --dump-file=/Users/sylvain/.emacs.d/.cache/dumps/spacemacs.pdmp &
|
||||
#+END_SRC
|
||||
|
||||
*** Report issues
|
||||
If you want to report an issue regarding this new feature please use the label
|
||||
=Portable Dumper=.
|
||||
|
||||
All the related issues can be found with [[https://github.com/syl20bnr/spacemacs/labels/Portable%20Dumper][this link]].
|
||||
|
||||
** Usage
|
||||
Once =dotspacemacs-enable-emacs-pdumper= is set to =t= and
|
||||
=dotspacemacs-emacs-pdumper-executable-file= is set to a valid file path to an
|
||||
Emacs 27 executable, Emacs will be redumped automatically each time the layer
|
||||
list changes or the =--force-dump= parameter is passed on the command line.
|
||||
|
||||
To use the created dump file, open a shell in the =src= directory of the cloned
|
||||
Emacs source and type:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
./emacs --dump-file=/Users/sylvain/.emacs.d/.cache/dumps/spacemacs.pdmp &
|
||||
#+END_SRC
|
||||
|
||||
=spacemacs.pdmp= corresponds to the value of the variable
|
||||
=dotspacemacs-emacs-dumper-dump-file=.
|
||||
|
||||
A forced dump is executed whenever the configuration is reloaded with
|
||||
~SPC f e R~. If a dump is already running then it is cancelled and a new one is
|
||||
started. Check the buffer =*spacemacs-dumper*= to see the progress of the
|
||||
dumping.
|
||||
|
||||
After you can generate a portable dumper of your Emacs and you can start that
|
||||
pdumper file successfully, you can alias the way you usually start Emacs to the
|
||||
command:
|
||||
|
||||
#+BEGIN_SRC shell
|
||||
./emacs --dump-file=/Users/sylvain/.emacs.d/.cache/dumps/spacemacs.pdmp &
|
||||
#+END_SRC
|
542
dot_emacs.d/README.md
Normal file
542
dot_emacs.d/README.md
Normal file
|
@ -0,0 +1,542 @@
|
|||
<a name="top" id="fork-destination-box"></a>
|
||||
<a href="http://spacemacs.org"><img src="https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg" alt="Made with Spacemacs"></a><a href="http://www.twitter.com/spacemacs"><img src="http://i.imgur.com/tXSoThF.png" alt="Twitter" align="right"></a><br>
|
||||
- - -
|
||||
<p align="center"><img src="/doc/img/title2.png" alt="Spacemacs"/></p>
|
||||
<p align="center">
|
||||
<b><a href="http://spacemacs.org/doc/DOCUMENTATION#core-pillars">philosophy</a></b>
|
||||
|
|
||||
<b><a href="http://spacemacs.org/doc/DOCUMENTATION#who-can-benefit-from-this">for whom?</a></b>
|
||||
|
|
||||
<b><a href="http://spacemacs.org/doc/DOCUMENTATION#screenshots">screenshots</a></b>
|
||||
|
|
||||
<b><a href="http://spacemacs.org/doc/DOCUMENTATION.html">documentation</a></b>
|
||||
|
|
||||
<b><a href="CONTRIBUTING.org">contribute</a></b>
|
||||
|
|
||||
<b><a href="http://spacemacs.org/doc/DOCUMENTATION#achievements">achievements</a></b>
|
||||
|
|
||||
<b><a href="http://spacemacs.org/doc/FAQ">FAQ</a></b>
|
||||
</p>
|
||||
|
||||
- - -
|
||||
|
||||
<p align="center">
|
||||
<a href="https://gitter.im/syl20bnr/spacemacs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"><img src="https://badges.gitter.im/Join Chat.svg" alt="Gitter"></a>
|
||||
<a href="https://circleci.com/gh/syl20bnr/spacemacs/tree/develop"><img src="https://circleci.com/gh/syl20bnr/spacemacs/tree/develop.svg?style=shield" alt="Build Status"></a>
|
||||
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=ESFVNPKP4Y742"><img src="https://img.shields.io/badge/Paypal-Donate-blue.svg" alt="Donate"></a>
|
||||
<a href="https://shop.spreadshirt.com/spacemacs-shop"><img src="https://img.shields.io/badge/Shop-T--Shirts-blue.svg" alt="Donate"></a>
|
||||
<a href="http://www.slant.co/topics/12/~what-are-the-best-programming-text-editors"><img src="https://img.shields.io/badge/Slant-Recommend-ff69b4.svg" alt="Recommend it"></a>
|
||||
</p>
|
||||
|
||||
- - -
|
||||
|
||||
|
||||
**Quick Install:**
|
||||
|
||||
This assumes you don't have an existing Emacs setup and want to run Spacemacs as
|
||||
your config. If you do have one, look at
|
||||
the [full installation instructions](#install) for other options.
|
||||
|
||||
* For stable releases:
|
||||
```shell
|
||||
git clone https://github.com/syl20bnr/spacemacs ~/.emacs.d
|
||||
```
|
||||
|
||||
* For development updates and participation:
|
||||
```shell
|
||||
git clone -b develop https://github.com/syl20bnr/spacemacs ~/.emacs.d
|
||||
```
|
||||
|
||||
<!-- markdown-toc start - Don't edit this section. Run M-x markdown-toc-generate-toc again -->
|
||||
**Table of Contents**
|
||||
|
||||
- [Introduction](#introduction)
|
||||
- [Features](#features)
|
||||
- [Documentation](#documentation)
|
||||
- [Getting Help](#getting-help)
|
||||
- [Prerequisites](#prerequisites)
|
||||
- [Emacs](#emacs)
|
||||
- [Linux distros](#linux-distros)
|
||||
- [macOS](#macos)
|
||||
- [Windows](#windows)
|
||||
- [Install](#install)
|
||||
- [Default installation](#default-installation)
|
||||
- [Alternative installations](#alternative-installations)
|
||||
- [Modify HOME environment variable](#modify-home-environment-variable)
|
||||
- [Modify spacemacs-start-directory variable](#modify-spacemacs-start-directory-variable)
|
||||
- [Spacemacs logo](#spacemacs-logo)
|
||||
- [Update](#update)
|
||||
- [Automatic update (on master branch)](#automatic-update-on-master-branch)
|
||||
- [Manual update (on master branch)](#manual-update-on-master-branch)
|
||||
- [On develop branch](#on-develop-branch)
|
||||
- [Revert to a specific version](#revert-to-a-specific-version)
|
||||
- [Quotes](#quotes)
|
||||
- [Contributions](#contributions)
|
||||
- [Communities](#communities)
|
||||
- [Spacemacs Everywhere](#spacemacs-everywhere)
|
||||
- [License](#license)
|
||||
- [Supporting Spacemacs](#supporting-spacemacs)
|
||||
|
||||
<!-- markdown-toc end -->
|
||||
|
||||
# Introduction
|
||||
Spacemacs is a new way of experiencing Emacs -- it's a sophisticated and
|
||||
polished set-up, focused on ergonomics, mnemonics and consistency.
|
||||
|
||||
Just clone and launch it, then press the space bar to explore the interactive
|
||||
list of carefully-chosen key bindings. You can also press the home buffer's
|