diff --git a/basic-settings.el b/basic-settings.el new file mode 100644 index 0000000..060f33c --- /dev/null +++ b/basic-settings.el @@ -0,0 +1,101 @@ +;;; basic-settings.el --- provide basic configuration +;;; Commentary: +;; Configure basic parameters like linum and filesize +;;; Code: + +;; ibuffer settings + +;; Buffers selectin and ibuffer settings +(defun configure-ibuffer () + "Make awesome menu and bind it to F2; +Integrate projectile with ibuffer." + (use-package bs) + (use-package ibuffer + :bind (("" . ibuffer) + ("" . buffer-menu))) + + ;; (defalias 'list-buffers 'ibuffer-list-buffers) + (use-package ibuffer-projectile + :config + (add-hook 'ibuffer-hook + (lambda () + (ibuffer-projectile-set-filter-groups) + (unless (eq ibuffer-sorting-mode 'alphabetic) + (ibuffer-do-sort-by-alphabetic)))))) + +;; Linum plugin +(defun configure-linum (&optional enabled) + "Make linum ENABLED." + (use-package linum + :config + (if enabled + (and (line-number-mode t) + (global-linum-mode t)) + (and (line-number-mode nil) + (global-linum-mode nil))) + (column-number-mode t) + (setq linum-format " %d "))) + +;; Comment block +(defun comment-dwim-line (&optional arg) + "Replacement for 'comment-dwim' ARG." + (interactive "*P") + (comment-normalize-vars) + (if (and (not (region-active-p)) (not (looking-at "[ \t]*$"))) + (comment-or-uncomment-region (line-beginning-position) (line-end-position)) + (comment-dwim arg))) + +(defun configure-base (&optional indent) + "Set base configuration, configure INDENT." + (configure-ibuffer) + (configure-linum nil) + + ;; Exec path from shell + (use-package exec-path-from-shell) + + (global-set-key "\M-;" 'comment-dwim-line) + + (setenv "PATH" (concat (getenv "PATH") ":~/.local/bin")) + + ;; Scrolling + (setq scroll-step 1) + (setq scroll-margin 10) + (setq scroll-conservatively 10000) + + ;; Fringe settings + (fringe-mode '(4 . 0)) + (setq-default indicate-empty-lines t) + (setq-default indicate-buffer-boundaries 'left) + ;; (global-fringe-mode t) + + ;; Display file size in mode-line + (setq display-time-24hr-format t) + (display-time-mode t) + (size-indication-mode t) + + ;; Indent settings + (setq-default indent-tabs-mode nil) + (setq-default tab-width indent) + (setq-default c-basic-offset indent) + (setq-default standart-indent indent) + (setq-default lisp-body-indent indent) + (global-set-key (kbd "RET") 'newline-and-indent) + + ;; Clipboard settings + (setq x-select-enable-clipboard t) + + ;; EOF newlines + (setq require-final-newline t) + (setq next-line-add-newlines nil) + + ;; Highlight search results + (setq search-highlight t) + (setq query-replace-highlight t) + + ;; Undo & Redo + (global-unset-key "\C-z") + (global-set-key "\C-z" 'advertised-undo)) + +(provide 'basic-settings) + +;;; basic-settings.el ends here diff --git a/config/common/common.el b/common.el similarity index 78% rename from config/common/common.el rename to common.el index 093a7ee..76629b1 100644 --- a/config/common/common.el +++ b/common.el @@ -3,6 +3,7 @@ ;;; Code: (require 'packages-config) +(require 'basic-settings) (defun start-server-on-unix () "If OS is Linux or MacOS start server." @@ -27,13 +28,20 @@ ;; Install use-package (when (not (require 'use-package nil 'noerror)) (and (message "Installing ") - (package-install 'use-package)))) + (package-install 'use-package))) + + ;; Verbosity + (setq use-package-verbose t) + ;; Always download packages + (setq use-package-always-ensure t)) (defun common-setup () "Setup base GNU Emacs configuration." (start-server-on-unix) (use-package-setup) - (basic-setup)) + (basic-setup) + ;; Set indent to 4 space + (configure-base 4)) (provide 'common) diff --git a/config/common/packages-config.el b/packages-config.el similarity index 100% rename from config/common/packages-config.el rename to packages-config.el