Fix the activation issue on cubes and add few new cubes

This commit is contained in:
Sameer Rahmani 2021-05-16 11:15:29 +01:00
parent dfed2fd5f7
commit 9fd18ecf9c
7 changed files with 212 additions and 12 deletions

View File

@ -19,6 +19,7 @@ which each of the has different external dependencies. To gain more information
dependencies ( If we failed to tell you inside the **FG42** ) just run the `describe-extension`
command.
* aspell
## Install a pre built package
Download one of the prebuilt packages and follow these instructions:

View File

@ -1,6 +1,6 @@
;;; FG42 --- The mighty editor for the emacsians -*- lexical-binding: t; -*-
;;
;; Copyright (c) 2010-2021 Sameer Rahmani <lxsameer@gnu.org>
;; Copyright (c) 2010-2020 Sameer Rahmani <lxsameer@gnu.org>
;;
;; Author: Sameer Rahmani <lxsameer@gnu.org>
;; URL: https://gitlab.com/FG42/FG42
@ -22,17 +22,121 @@
;;; Commentary:
;;; Code:
(setq debug-on-error t)
(require 'fg42/cube)
(require 'fg42/flags)
(require 'cubes/editor)
(require 'cubes/elisp)
(require 'cubes/org)
(defsystem default-system ()
(fg42/elisp-cube)
(fg42/org-cube))
(require 'cubes/region-expansion)
(require 'cubes/wm)
(require 'cubes/modeline)
(require 'cubes/autocompletion)
(require 'cubes/golang)
(require 'cubes/project)
(require 'cubes/irc)
(require 'cubes/terminal)
(fg42/start! (default-system))
;; ============== MY STUFF ==============================
(custom-set-faces
'(mini-modeline-mode-line
((((background light))
:background "#aa0000" :height 0.1 :box nil)
(t
:background "#bd93f9" :height 0.1 :box nil))))
(defvar global-font-size 10)
(setq lsp-clients-clangd-executable "~/usr/lib/llvm-13/bin/clangd")
(defconst LLVM_DIR "/home/lxsameer/src/serene/llvm-project")
(defconst llvm-config-dir (concat LLVM_DIR "/llvm/utils/emacs/"))
(add-hook 'c++-mode-hook (lambda ()
(load (concat llvm-config-dir "emacs.el"))
(load (concat llvm-config-dir "llvm-mode.el"))
(load (concat llvm-config-dir "tablegen-mode.el"))))
;; =========== FG42 stuff ===============================
;; (use-flags wm font-icons cursor-type
;; exec-path-from-shell golang
;; rcirc pinentry vterm
;; company lsp flycheck smart-mode-line wm fg42/region-expansion-cube
;; selectrum window-navigation buffer-navigation font-icons)
(use-flags
(fg42/merge-with-default-flags
wm
golang
rcirc
vterm
company
lsp
flycheck
fg42/region-expansion-cube))
;; ================== my stuff mixed with FG42 stuff ===================
(when-wm
(setq global-font-size 8)
(custom-set-faces
'(mini-modeline-mode-line
((((background light))
:background "#aa0000" :height 0.1 :box nil)
(t
:background "#6272a4" :height 0.1 :box nil))))
(fg42/wm-cube :number-of-workspaces 9)
(use-flags
(fg42/merge-with-default-flags
wm
-golang
rcirc
vterm
-company
-projectile
-lsp
-flycheck
fg42/region-expansion-cube)))
;; =========== FG42 stuff ===============================
;; Both are part of the editor cube but we want to override
;; their behavior
(fg42/modeline-cube)
(fg42/cursor-cube :type 'bar :color "#bd93f9")
(fg42/font-cube :font-size global-font-size)
(fg42/editor-cube)
(fg42/elisp-cube)
(fg42/region-expansion-cube)
(fg42/company-cube)
(fg42/lsp-cube)
(fg42/c++-cube)
(fg42/yaml-cube)
(fg42/flycheck-cube)
(fg42/golang-cube)
(fg42/projectile-cube)
(fg42/rcirc-cube :server '(("irc.freenode.net" :channels ("#fg42" "#5hit" "#serene-lang" "#technotux") :nick "lxsameer")
("irc.oftc.net" :channels ("#llvm") :nick "lxsameer")))
(fg42/vterm-cube)
;; Themes should be the last cube and anything that wants to manipulate a face
;; has to use either `fg42/before-initializing-theme-hook' or
;; `fg42/after-initializing-theme-hook' hooks.
(fg42/dracula-theme-cube)
;;(global-set-key (kbd "C-t") 'forward-char)
;;(g lobal-set-key (kbd "C-n") 'backward-char)
;;(global-set-key (kbd "M-n") 'backward-word)
;;(global-set-key (kbd "M-t") 'forward-word)
;;(global-set-key (kbd "C-,") 'previous-line)
;;(global-set-key (kbd "C-.") 'next-line)
(provide '.fg42)
;;; .fg42.v3.el ends here

View File

@ -78,9 +78,7 @@
;; Use Company for completion
(bind-key [remap completion-at-point] #'company-complete company-mode-map)
(setq company-tooltip-align-annotations t
;; Easy navigation to candidates with M-<n>
company-show-numbers t)
(setq company-tooltip-align-annotations t)
(setq company-dabbrev-downcase nil)))
;; TODO: Move company box to a new cube

67
core/cubes/fm.el Normal file
View File

@ -0,0 +1,67 @@
;;; FMCubes --- The file manager cubes for FG42 -*- lexical-binding: t; -*-
;;
;; Copyright (c) 2010-2021 Sameer Rahmani & Contributors
;;
;; Author: Sameer Rahmani <lxsameer@gnu.org>
;; URL: https://gitlab.com/FG42/FG42
;; Version: 3.0.0
;;
;; 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 this program. If not, see <http://www.gnu.org/licenses/>.
;;
;;; Commentary:
;;; Code:
(require 'fpkg)
(require 'fg42/cube)
;; TODO: Move this to an autoload file
(defun fg42/dired-external-open ()
"In dired, open the file named on this line."
(interactive)
(let ((file (dired-get-filename nil t)))
(call-process "xdg-open" nil 0 nil file)))
(defcube fg42/fm-cube
(:docs "cubes/fg42/fm-cube.org"
:flag fm
:flag-default t)
;; Linux only
;; TODO: change this to support OS X
(setq dired-listing-switches "-lFaGh1v --group-directories-first")
;; Show directories first
(setq ls-lisp-dirs-first t)
(setq dired-recursive-copies 'always)
(setq dired-recursive-deletes 'always)
(define-key dired-mode-map (kbd "E") 'fg42/dired-external-open)
(fpkg/use dired+)
(add-to-list 'dired-mode-hook
(lambda ()
(require 'dired-x)
(require 'dired-aux)))
(when-flag async
(dired-async-mode 1))
(fpkg/use dired-narrow
:bind (:map dired-mode-map
("/" . dired-narrow))))
(provide 'cubes/fm)
;;; fm.el ends here

28
core/cubes/keyboard.el Normal file
View File

@ -0,0 +1,28 @@
;;; KeyboardCubes --- The keyboard related cubes for FG42 -*- lexical-binding: t; -*-
;;
;; Copyright (c) 2010-2021 Sameer Rahmani & Contributors
;;
;; Author: Sameer Rahmani <lxsameer@gnu.org>
;; URL: https://gitlab.com/FG42/FG42
;; Version: 3.0.0
;;
;; 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 this program. If not, see <http://www.gnu.org/licenses/>.
;;
;;; Commentary:
;;; Code:
;; TODO: Add support for HALMAK layout
(provide 'cubes/keyboard)
;;; keyboard.el ends here

View File

@ -84,6 +84,7 @@
;; Here are a few examples:
(setq exwm-input-global-keys
`(
;; Bind "s-r" to exit char-mode and fullscreen mode.
([?\s-r] . exwm-reset)
([?\s-g] . keyboard-quit)

View File

@ -105,7 +105,8 @@
;; This way we can bypass the flag system if we really really want to.
(defun ,cube-name-internal (params)
(if (not (boundp (quote ,active-var)))
(if (or (not (boundp (quote ,active-var)))
(not ,active-var))
(progn
;; Mark this cube as active
(setq ,active-var t)