Add exwm integration within FG42

Signed-off-by: Sameer Rahmani <lxsameer@gnu.org>
This commit is contained in:
Sameer Rahmani 2020-04-02 22:39:25 +01:00
parent 15c343f192
commit dc655490b6
6 changed files with 30 additions and 7 deletions

3
.gitignore vendored
View File

@ -23,4 +23,5 @@ lib/**/*.elc
*.elc
tmp/
test-runner/
.fpkg/
.fpkg/
/fg42-wm

View File

@ -25,14 +25,21 @@ install:
@cp ./config/fg42.user.el ${HOME}/.fg42.el
@echo "Creating the link..."
@echo "#! /bin/sh" > ./fg42
@cp ./scripts/fg42-wm ./fg42-wm
@echo "export FG42_HOME=$(shell pwd)" >> ./fg42
@echo 'emacs --name FG42 --no-site-file --no-site-lisp --no-splash --title FG42 -l $$FG42_HOME/fg42-config.el "$$@"' >> ./fg42
@echo "export FG42_HOME=$(shell pwd)" >> ./fg42-wm
@echo 'FG42_WM=false emacs --name FG42 --no-site-file --no-site-lisp --no-splash --title FG42 -l $$FG42_HOME/fg42-config.el "$$@"' >> ./fg42
@echo 'FG42_WM=true emacs --name FG42 --no-site-file --no-site-lisp --no-splash --title FG42 -l $$FG42_HOME/fg42-config.el "$$@"' >> ./fg42-wm
@chmod +x ./fg42
@chmod +x ./fg42-wm
@sudo rm -f /usr/local/bin/fg42
@sudo rm -f /usr/local/bin/fg42-wm
@sudo ln -s `pwd`/fg42 /usr/local/bin/fg42
@sudo ln -s `pwd`/fg42-wm /usr/local/bin/fg42-wm
@echo "Copying share files..."
@sudo mkdir -p /usr/share/fg42/
@sudo cp -r ./share/* /usr/share/fg42/
@sudo cp -r ./share/xsessions/fg42.desktop /usr/share/xsessions/
@echo " "
@echo "------------------------------------------------------------------------------------"
@echo "Make sure to install external dependencies of FG42. For more info checkout README.md"

View File

@ -72,7 +72,7 @@
(ability which-key ()
(when (is-evil?)
(which-key-mode t)))
(which-key-mode t)))
;; enhance evil mode with space leader keybindings
(ability space-keys (which-key)
@ -130,7 +130,7 @@
(ability highligh-current-line ()
"Highlights the current line."
(global-hl-line-mode t))
(ability flycheck ()
(ability flycheck ()
"Check syntax on the fly using flycheck."
(require 'flycheck)

View File

@ -4,7 +4,7 @@
;;;###autoload
(defun extensions/serene-initialize ()
"Initialize the common Lisp extension."
"Initialize the Serene extension."
(require 'extensions/serene/serene-simple-mode)
(add-hook 'serene-simple-mode-hook #'paredit-mode)

View File

@ -56,6 +56,21 @@ to them.
,@body)))
(defmacro defability (name deps &optional docs &rest body)
"Define an ability with the given NAME, DEPS, DOCS and BODY.
*deps* should be a list of abilities with the defined ability dependens
to them.
*body* is a block of code which will run as the ability initializer code."
(declare (doc-string 3) (indent 2))
;; TODO: there's no point of using `if' in the quoted code. evaluate
;; the `if' in compile time and return nil or evalute the body.
`(if (active-ability? (intern ,(symbol-name name)))
(when (null (delq t (mapcar 'active-ability? (quote ,deps))))
,@body)))
(defmacro extension (name &rest args)
"A simple DSL to define new fg42 extension by given NAME and ARGS."
;(declare (doc-string 1) (indent 1))

View File

@ -2,12 +2,12 @@
Encoding=UTF-8
Name=FG42
GenericName=FG42
Comment=An Emacs base IDE for emacs lovers.
Comment=An Emacs base editor for true believers
MimeType=text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-java;application/x-shellscript;text/x-c;text/x-c++;text/x-ruby;text/x-python;text/x-clojure;text/css;text/html;text/x-javascript;
Type=Application
Terminal=false
Categories=Development;TextEditor;
StartupWMClass=FG42
Exec=/usr/local/bin/fg42 %F
Icon=kuso
Icon=fg42
Version=2.67