Add extra configuration for WSL and Windows

This commit is contained in:
Bozhidar Batsov 2020-10-08 10:13:05 +03:00
parent 1553ae6a92
commit ad79192e2d
5 changed files with 155 additions and 8 deletions

View file

@ -18,6 +18,7 @@
* Add the `ag` package. It provides a nice alternative to `grep` and has nice Projectile integration.
* Auto-install `adoc-mode` for AsciiDoc files.
* Added `transient/` to `.gitignore`.
* Added additional configuration modules for WSL (`prelude-wsl`) and Windows (`prelude-windows`).
### Bugs fixed

54
core/prelude-windows.el Normal file
View file

@ -0,0 +1,54 @@
;;; prelude-windows.el --- Emacs Prelude: Windows-specific setup.
;;
;; Copyright © 2011-2020 Bozhidar Batsov
;;
;; URL: https://github.com/bbatsov/prelude
;; This file is not part of GNU Emacs.
;;; Commentary:
;; Additional setup that's useful when running Emacs in Windows.
;;; License:
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License
;; as published by the Free Software Foundation; either version 3
;; of the License, or (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Code:
;; Teach Emacs how to interpret various modifier keys
(setq w32-pass-lwindow-to-system nil)
(setq w32-lwindow-modifier 'super) ; Left Windows key
(setq w32-pass-rwindow-to-system nil)
(setq w32-rwindow-modifier 'super) ; Right Windows key
(setq w32-pass-apps-to-system nil)
(setq w32-apps-modifier 'hyper) ; Menu/App key
;; Git setup (assuming you've installed Git for Windows)
(when (file-exists-p "C:/Program Files/Git/bin")
(add-to-list 'exec-path "C:/Program Files/Git/bin")
(add-to-list 'exec-path "C:/Program Files/Git/mingw64/bin")
(setenv "PATH" (concat "C:/Program Files/Git/bin;" "C:/Program Files/Git/mingw64/bin;" (getenv "PATH"))))
;; needed for arc-mode (it allows you to open archives in Emacs)
(if (file-exists-p "C:/Program Files/7-Zip")
(add-to-list 'exec-path "C:/Program Files/7-Zip")
(message "7-Zip not found. It's a good idea to install it."))
(provide 'prelude-windows)
;;; prelude-windows.el ends here

42
core/prelude-wsl.el Normal file
View file

@ -0,0 +1,42 @@
;;; prelude-wsl.el --- Emacs Prelude: WSL-specific setup.
;;
;; Copyright © 2011-2020 Bozhidar Batsov
;;
;; URL: https://github.com/bbatsov/prelude
;; This file is not part of GNU Emacs.
;;; Commentary:
;; Additional setup that's useful when running Emacs in WSL.
;;; License:
;; This program is free software; you can redistribute it and/or
;; modify it under the terms of the GNU General Public License
;; as published by the Free Software Foundation; either version 3
;; of the License, or (at your option) any later version.
;;
;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;;
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING. If not, write to the
;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Code:
;; teach Emacs how to open links with your default browser
(let ((cmd-exe "/mnt/c/Windows/System32/cmd.exe")
(cmd-args '("/c" "start")))
(when (file-exists-p cmd-exe)
(setq browse-url-generic-program cmd-exe
browse-url-generic-args cmd-args
browse-url-browser-function 'browse-url-generic
search-web-default-browser 'browse-url-generic)))
(provide 'prelude-wsl)
;;; prelude-wsl.el ends here

24
init.el
View file

@ -37,7 +37,7 @@
;; installed packages. Don't delete this line. If you don't want it,
;; just comment it out by adding a semicolon to the start of the line.
;; You may delete these explanatory comments.
;(package-initialize)
;(package-initialize)
(defvar prelude-user
(getenv
@ -77,13 +77,13 @@ by Prelude.")
(make-directory prelude-savefile-dir))
(defun prelude-add-subfolders-to-load-path (parent-dir)
"Add all level PARENT-DIR subdirs to the `load-path'."
(dolist (f (directory-files parent-dir))
(let ((name (expand-file-name f parent-dir)))
(when (and (file-directory-p name)
(not (string-prefix-p "." f)))
(add-to-list 'load-path name)
(prelude-add-subfolders-to-load-path name)))))
"Add all level PARENT-DIR subdirs to the `load-path'."
(dolist (f (directory-files parent-dir))
(let ((name (expand-file-name f parent-dir)))
(when (and (file-directory-p name)
(not (string-prefix-p "." f)))
(add-to-list 'load-path name)
(prelude-add-subfolders-to-load-path name)))))
;; add Prelude's directories to Emacs's `load-path'
(add-to-list 'load-path prelude-core-dir)
@ -122,6 +122,14 @@ by Prelude.")
(when (eq system-type 'gnu/linux)
(require 'prelude-linux))
;; WSL specific setting
(when (getenv "WSLENV")
(require 'prelude-wsl))
;; Windows specific settings
(when (eq system-type 'windows-nt)
(require 'prelude-windows))
(message "Loading Prelude's modules...")
;; the modules

View file

@ -0,0 +1,42 @@
;;; Uncomment the modules you'd like to use and restart Prelude afterwards
;; Emacs IRC client
(require 'prelude-erc)
;; (require 'prelude-ido) ;; Super charges Emacs completion for C-x C-f and more
(require 'prelude-ivy) ;; A mighty modern alternative to ido
;; (require 'prelude-helm) ;; Interface for narrowing and search
;; (require 'prelude-helm-everywhere) ;; Enable Helm everywhere
(require 'prelude-company)
;; (require 'prelude-key-chord) ;; Binds useful features to key combinations
;; (require 'prelude-evil)
;;; Programming languages support
(require 'prelude-c)
(require 'prelude-clojure)
;; (require 'prelude-coffee)
;; (require 'prelude-common-lisp)
(require 'prelude-css)
;; (require 'prelude-dart)
(require 'prelude-emacs-lisp)
;; (require 'prelude-erlang)
;; (require 'prelude-elixir)
;; (require 'prelude-go)
;; (require 'prelude-haskell)
(require 'prelude-js)
;; (require 'prelude-latex)
(require 'prelude-lisp)
(require 'prelude-lsp)
;; (require 'prelude-ocaml)
(require 'prelude-org) ;; Org-mode helps you keep TODO lists, notes and more
(require 'prelude-perl)
;; (require 'prelude-python)
(require 'prelude-ruby)
;; (require 'prelude-rust)
;; (require 'prelude-scala)
(require 'prelude-scheme)
(require 'prelude-shell)
(require 'prelude-scss)
(require 'prelude-ts)
(require 'prelude-web) ;; Emacs mode for web templates
(require 'prelude-xml)
(require 'prelude-yaml)