summaryrefslogtreecommitdiffstats
path: root/roles/wiki-edit
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--roles/wiki-edit/defaults/main.yml7
-rw-r--r--roles/wiki-edit/tasks/main.yaml64
-rw-r--r--roles/wiki-edit/templates/emacsconf-edit.el32
3 files changed, 49 insertions, 54 deletions
diff --git a/roles/wiki-edit/defaults/main.yml b/roles/wiki-edit/defaults/main.yml
new file mode 100644
index 0000000..ea0fbdb
--- /dev/null
+++ b/roles/wiki-edit/defaults/main.yml
@@ -0,0 +1,7 @@
+emacsconf_edit_packages:
+ - consult
+ - embark
+ - embark-consult
+ - vertico
+ - magit
+ - modus-themes
diff --git a/roles/wiki-edit/tasks/main.yaml b/roles/wiki-edit/tasks/main.yaml
index f7eb650..f77535f 100644
--- a/roles/wiki-edit/tasks/main.yaml
+++ b/roles/wiki-edit/tasks/main.yaml
@@ -1,55 +1,11 @@
---
-- name: Set up SSH directory
- ansible.builtin.file:
- path: /home/ikiwiki/.ssh
- state: directory
- mode: '0700'
-- name: Install SSH key for EmacsConf wiki
- ansible.builtin.get_url:
- url: https://emacsconf.org/id_rsa_anon_git_emacsconf
- dest: /home/ikiwiki/.ssh/id_rsa_anon_git_emacsconf
- mode: '0600'
- owner: 'ikiwiki'
-- name: Set up packages
- become: yes
- block:
- - name: Add snapshot repository
- ansible.builtin.apt_repository:
- repo: deb http://emacs.ganneff.de/ buster main
- - name: Remove old package
- ansible.builtin.apt:
- name: emacs
- state: absent
- - name: Install Emacs snapshot
- ansible.builtin.apt:
- name: emacs-snapshot-nox
- state: present
-- name: Set up or update repositories
- tags: publish
- block:
- - name: Check out wiki repository
- ansible.builtin.git:
- repo: git://git.emacsconf.org/emacsconf-wiki
- dest: ~/emacsconf-wiki
- - name: Check out emacsconf-el
- ansible.builtin.git:
- repo: git@git.emacsconf.org:pub/emacsconf-el
- dest: ~/emacsconf-el
- register: elisp
- - name: Check out emacsconf-2022-private
- ansible.builtin.git:
- repo: git@git.emacsconf.org:emacsconf-2022-private
- dest: ~/emacsconf-2022-private
- register: private
-- name: Publish
- tags: publish
- block:
- - name: Publish the schedule
- command: emacs -l ~/.emacs.d/init.el --batch --exec '(emacsconf-generate-main-schedule)'
- when: force_publish or ((private.changed or elisp.changed) and slug is not defined)
- - name: Update a specific talk's nav page
- tags: publish-talk
- command: emacs -l ~/.emacs.d/init.el --batch --exec '(emacsconf-with-talk-heading "{{ slug }}" (emacsconf-update-talk))'
- when: slug is defined
- - name: Commit the wiki and push
- shell: cd ~/emacsconf-wiki; git commit -m 'Update from ansible' -a; git push
+- name: Set up Emacs configuration for interactive editing
+ template:
+ src: emacsconf-edit.el
+ dest: "{{ emacs_config_dir }}/emacsconf-edit.el"
+- name: Check if Emacs base configuration already exists
+ lineinfile:
+ dest: "{{ emacs_config_dir }}/init.el"
+ state: present
+ regexp: "emacsconf-edit"
+ line: "(load-file \"emacsconf-edit.el\")"
diff --git a/roles/wiki-edit/templates/emacsconf-edit.el b/roles/wiki-edit/templates/emacsconf-edit.el
new file mode 100644
index 0000000..78e11a8
--- /dev/null
+++ b/roles/wiki-edit/templates/emacsconf-edit.el
@@ -0,0 +1,32 @@
+(let ((packages '({% for package in emacsconf_edit_packages %}{{ package }}{% endfor %})))
+ (mapc (lambda (package) (unless (package-installed-p package) (package-install package))) packages))
+;; Configuration
+(vertico-mode)
+(show-paren-mode)
+(fset 'yes-or-no-p 'y-or-n-p)
+(global-set-key (kbd "C-x g") 'magit-status)
+(global-set-key (kbd "C-x b") 'consult-buffer)
+(global-set-key (kbd "M-g t") 'emacsconf-go-to-talk)
+(global-set-key (kbd "C-.") 'embark-act)
+(global-set-key (kbd "C-c .") 'embark-act)
+(global-set-key (kbd "C-;") 'embark-act)
+(modus-themes-load-vivendi)
+(org-babel-do-load-languages 'org-babel-load-languages '((emacs-lisp . t) (shell . t)))
+(setq backup-directory-alist '(("." . "~/.emacs.d/backups")))
+(find-file "{{ emacsconf_private_dir }}/conf.org")
+(split-window-horizontally)
+(magit-status "{{ emacsconf_edit_wiki_dir }}")
+(global-auto-revert-mode 1)
+(define-key projectile-mode-map (kbd "C-c p") 'projectile-command-map)
+(projectile-mode +1)
+(setq projectile-completion-system 'default)
+(setq projectile-enable-caching t)
+(setq projectile-indexing-method 'alien)
+(add-to-list 'projectile-globally-ignored-files "node_modules")
+(add-to-list 'projectile-globally-ignored-files ".cache")
+(add-to-list 'projectile-globally-ignored-files "_cache")
+
+(setq completion-styles '(orderless))
+(setq completion-category-defaults nil)
+(setq completion-category-overrides '((file (styles orderless))))
+(require 'ox-md)