;;; FG42 --- The mighty editor for the emacsians -*- lexical-binding: t; -*- ;; ;; Copyright (c) 2010-2020 Sameer Rahmani ;; ;; Author: Sameer Rahmani ;; 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 . ;; ;;; Commentary: ;;; Code: (setq debug-on-error t) (require 'fg42/flags) (require 'cubes/editor) (require 'cubes/elisp) (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) (require 'cubes/java) (require 'cubes/python) (require 'cubes/snippets) (require 'cubes/org) (require 'cubes/git) (require 'cubes/bookmark) (require 'cubes/terraform) ;; ============== MY STUFF ============================== (setq max-specpdl-size 13000) (setq max-lisp-eval-depth 10000) (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 11) (setq lsp-clients-clangd-executable "/home/lxsameer/usr/lib/llvm-13rc2/bin/clangd") (defconst LLVM_DIR "/home/lxsameer/src/serene/llvm-project") (defconst llvm-config-dir (concat LLVM_DIR "/llvm/utils/emacs/")) (defconst mlir-config-dir (concat LLVM_DIR "/mlir/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")))) (autoload 'mlir-mode (concat mlir-config-dir "mlir-mode") "Code highlighting for MLIR" t) (add-to-list 'auto-mode-alist '("\\.mlir\\'" . mlir-mode)) (autoload 'llvm-mode (concat llvm-config-dir "llvm-mode") "Code highlighting for LLVMIR" t) (add-to-list 'auto-mode-alist '("\\.llvmir\\'" . llvm-mode)) (autoload 'tablegen-mode (concat llvm-config-dir "tablegen-mode") "Code highlighting for tablegen" t) (add-to-list 'auto-mode-alist '("\\.td\\'" . tablegen-mode)) (autoload 'tablegen-mode (concat llvm-config-dir "tablegen-mode") "Code highlighting for tablegen" t) (add-to-list 'auto-mode-alist '("\\.td\\'" . tablegen-mode)) (autoload 'tablegen-mode (concat llvm-config-dir "tablegen-mode") "Code highlighting for tablegen" t) (add-to-list 'auto-mode-alist '("\\.td\\'" . tablegen-mode)) (load-file "/home/lxsameer/src/serene/serene/resources/emacs/serene-dev.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 python 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) (defvar monitors '(:hdmi-only ("--output HDMI-1 --primary" "--output eDP-1 --off") :hdmi-main ("--output HDMI-1 --primary" "--output eDP-1 --mode 1920x1080 --left-of HDMI-1") :edp-only ("--output eDP-1 --mode 1920x1080" "--output HDMI-1 --off"))) (require 'seq) (defun monitor-profiles () (mapcar #'car (seq-partition monitors 2))) (defun monitor (mon) (interactive (list (completing-read "Monitor Profole: " (monitor-profiles)))) (let ((cmd (mapconcat (lambda (x) (format "xrandr %s" x)) (plist-get monitors (intern (format "%s" mon))) " && "))) (message "Setting monitor profile: %s" cmd) (async-shell-command cmd "*xrandr*"))) (comment ;; how to run it via elisp (monitor :hdmi-only)) (use-flags (fg42/merge-with-default-flags wm -python -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/imenu-cube) (fg42/elisp-cube) (fg42/region-expansion-cube) (fg42/company-cube) (fg42/lsp-cube) (fg42/c++-cube) (fg42/python-cube) (fg42/yaml-cube) (fg42/flycheck-cube) (fg42/org-cube) (fg42/golang-cube) (fg42/projectile-cube) (fg42/rcirc-cube :server '(("irc.libera.chat" :channels ("#fg42" "#5hit" "#serene-lang" "#technotux" "#emacs" "#c++") :nick "lxsameer") ("irc.oftc.net" :channels ("#llvm") :nick "lxsameer"))) (fg42/vterm-cube) (fg42/git-cube) (fg42/alert-cube) (fg42/bookmark-cube) (fg42/terraform-cube :terraform-lsp-path "~/bin/terraform-lsp") (fg42/java-cube) (fg42/yasnippet-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) (set-face-attribute 'region nil :background "#888") ;; ============== MY STUFF ============================== (serene/setup-dev-env) (provide 'fg42.user.v3) ;;; fg42.user.v3.el ends here