diff --git a/config.org b/config.org index 9e0064d..240d5b9 100644 --- a/config.org +++ b/config.org @@ -95,12 +95,28 @@ Old theme for if you'd like to follow Xresources ;; Corrects (and improves) org-mode's native fontification. (doom-themes-org-config)) #+END_SRC +*** Custom Modeline +A custom sleek modeline which is also used in Centaur Emacs, Doom Emacs and Spacemacs. + + +Install and set the modeline, ensuring that it is always installed: + +#+BEGIN_SRC emacs-lisp + (use-package doom-modeline + :ensure t + :init (doom-modeline-mode 1)) + + ;; Display the current time on the modeline + (display-time 1) +#+END_SRC *** All The Icons All The Icons is a package to display cool icons within Emacs. Install the package, enable it and ensure that it always is installed: #+BEGIN_SRC emacs-lisp (use-package all-the-icons :ensure t) + + (setq inhibit-compacting-font-caches t) ; Don’t compact font caches during GC. Fixes lag on doom modeline #+END_SRC All The Icons Support for Ivy/Counsel. Which are autocompletion tools in emacs @@ -184,9 +200,9 @@ Install the package, enable it and ensure that it always is installed: A mode that is similiar in functionality to pop-up-frame, however much more granular in control and toggleable as it is mode. Will stop duplicate windows from creating new frames etc. Using simpler solution instead: -#+BEGIN_SRC emacs-lisp ++BEGIN_SRC emacs-lisp (setq pop-up-frames t) -#+END_SRC ++END_SRC +BEGIN_SRC emacs-lisp (defun which-active-modes () @@ -587,3 +603,78 @@ on how to install the Programming Language Servers that you want. :ensure t) ;; (use-package dap-LANGUAGE) to load the dap adapter for your language #+END_SRC + +** EXWM +EXWM, The Emacs X Window Manager. As it says, it is an Emacs window +manager for the X display server. The benefits include using all your +emacs functions and fuzzy searching in tangent with X windows. + +For more information on setup, you should check out `https://github.com/ch11ng/exwm/wiki` + +Install the package, enable it and ensure that it always is installed, and then configure: +*** EXWM +#+BEGIN_SRC emacs-lisp + (use-package exwm + :ensure t + :config + (require 'exwm-config) + (exwm-config-default)) +#+END_SRC +**** Configuration +#+BEGIN_SRC emacs-lisp + ;; Systemtray + (require 'exwm-systemtray) + (exwm-systemtray-enable) + + ;; Mouse input/bindings + (require 'exwm-input) + + ;; Keybindings + (setq exwm-input-global-keys + `(;; Reset EXWM + ([?\s-r] . exwm-reset) + + ;; EXWM Workspace Switcher + ([?\s-w] . exwm-workspace-switch) + + ,@(mapcar (lambda (i) + `(,(kbd (format "s-%d" i)) . + (lambda () + (interactive) + (exwm-workspace-switch-create ,i)))) + (number-sequence 0 9)) + + ;; Switch between char and line mode mode switcher + ;; Char mode allows for practically all keybindings to be passed to the application aside from a few essential keybindings, line mode allows for emacs keybindings + ([?\s-i] . exwm-input-toggle-keyboard) + + ;; Application Launcher + ([?\s-d] . counsel-linux-app))) + + ;; Set all windows to open in char mode by default, allowing to pass through all key combinations + ;; (add-hook 'exwm-manage-finish-hook + ;; (lambda () (call-interactively #'exwm-input-release-keyboard) + ;; (exwm-layout-hide-mode-line))) + + ;; Ido mode seems to be enabled in the default configuration, turn it back off as we are using Ivy completion instead. + (ido-mode -1) +#+END_SRC + + +*** Counsel Linux Application +Counsel Linux Application is an application launcher for emacs using counsel (which is ivy). + +Install the package, enable it and ensure that it always is installed, and then configure: +#+BEGIN_SRC emacs-lisp + ;; some customization to make the display "nicer" and include any user local .desktop files + + (push (concat (getenv "HOME") "/.local/share/applications/") counsel-linux-apps-directories) + (defun ds/counsel-linux-app-format-function (name comment exec) + "Default Linux application name formatter. + NAME is the name of the application, COMMENT its comment and EXEC + the command to launch it." + (format "% -45s %s" + (propertize name 'face 'font-lock-builtin-face) + (or comment ""))) + (setq counsel-linux-app-format-function #'ds/counsel-linux-app-format-function) +#+END_SRC diff --git a/projectile-bookmarks.eld b/projectile-bookmarks.eld index ac339ae..3e3cfd9 100644 --- a/projectile-bookmarks.eld +++ b/projectile-bookmarks.eld @@ -1 +1 @@ -("~/.emacs.d/") \ No newline at end of file +("~/.emacs.d/" "~/.emacs.d/elpa/xelb-0.18/") \ No newline at end of file