Skip to content

Instantly share code, notes, and snippets.

@noobymatze
Last active September 14, 2022 18:10
Show Gist options
  • Save noobymatze/92c6a590a528c4087ae7e594021624dc to your computer and use it in GitHub Desktop.
Save noobymatze/92c6a590a528c4087ae7e594021624dc to your computer and use it in GitHub Desktop.
The beginnings of a setup script to make setting up a new machine quicker
;
; Personal information
;
(setq user-full-name "Matthias Metzger")
;
; Online package locations
;
(require 'package)
(add-to-list 'package-archives
'("melpa" . "https://stable.melpa.org/packages/"))
(add-to-list 'package-archives
'("marmalade" . "https://marmalade-repo.org/packages/"))
(package-initialize)
;
; General configuration
;
(setq backup-directory-alist '(("." . "~/.emacs.d/backups")))
(defalias 'dynamic-setting-handle-config-changed-event 'ignore)
(defun remove-menus ()
(when window-system
(tooltip-mode -1)
(tool-bar-mode -1)
(menu-bar-mode -1)
(scroll-bar-mode -1)))
(if (daemonp)
(add-hook 'after-make-frame-functions
(lambda (frame)
(remove-menus)))
(remove-menus))
(add-to-list 'default-frame-alist '(font . "Source Code Pro 11"))
(add-to-list 'exec-path "/usr/local/bin")
(prefer-coding-system 'utf-8)
(global-linum-mode 1)
(fset 'yes-or-no-p 'y-or-n-p)
(setq-default indent-tabs-mode nil)
(setq custom-file "~/.emacs.d/custom-settings.el")
(load custom-file)
(global-set-key (kbd "M-j") 'windmove-down)
(global-set-key (kbd "M-k") 'windmove-up)
(global-set-key (kbd "M-l") 'windmove-right)
(global-set-key (kbd "M-h") 'windmove-left)
(global-unset-key (kbd "C-SPC"))
(setq linum-relative-current-symbol "")
(set-face-attribute 'default
nil
:family "Source Code Pro"
:weight 'normal
:height 110)
(setq-default line-spacing 7)
(setq save-abbrevs t)
(setq abbrev-file-name "~/.emacs.d/abbrev_defs")
(setq-default abbrev-mode t)
;
; Packages with use-package
;
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
(require 'use-package)
;
; Color theme
;
;(use-package material-theme
; :ensure
; :init
; (load-theme 'material-light t))
;(use-package atom-one-dark-theme
; :ensure
; :init
; (load-theme 'atom-one-dark t))
;
;
; ANZU - NICE SEARCH AND REPLACE
;
(use-package anzu)
;
; Magit
;
(use-package magit
:ensure
:init
(global-set-key (kbd "C-x g") 'magit-status))
;
; Evil Magit
;
(use-package evil-magit
:ensure
)
;
; Key chord mainly for exiting
; evil mode with 'jj'
;
(use-package key-chord
:ensure
:config
(key-chord-define evil-insert-state-map "jj" 'evil-normal-state)
(key-chord-mode t))
;
; Ido mode
;
(use-package ido
:init
(ido-mode 1)
:config
(setq ido-everywhere t)
(setq ido-enable-flex-matching t))
;
; Dired+
;
(use-package dired+
:ensure
:config
(evil-define-key 'normal dired-mode-map "-" 'diredp-up-directory-reuse-dir-buffer)
(evil-define-key 'normal dired-mode-map "d" 'dired-create-directory)
(evil-define-key 'normal dired-mode-map "n" 'evil-search-next)
(evil-define-key 'normal dired-mode-map "N" 'evil-search-previous)
(evil-define-key 'normal dired-mode-map "q" 'kill-this-buffer))
;
; Yasnippet
;
(use-package yasnippet
:ensure
:config
(yas-reload-all)
(add-hook 'prog-mode-hook #'yas-minor-mode)
(add-hook 'html-mode-hook #'yas-minor-mode)
(add-hook 'latex-mode-hook #'yas-minor-mode))
;
; Evil mode
;
(use-package evil
:ensure
:config
(add-to-list 'evil-emacs-state-modes 'eshell)
(evil-mode t)
:init
(evil-define-key 'insert latex-mode-map (kbd "TAB") 'expand-abbrev))
;
; Evil leader
;
(use-package evil-leader
:ensure
:init
(global-evil-leader-mode)
(evil-leader/set-leader "<SPC>")
(evil-leader/set-key "g" 'magit-status)
(evil-leader/set-key "r" 'anzu-query-replace)
(evil-leader/set-key "b" 'ido-switch-buffer)
(evil-leader/set-key "f" 'find-file)
(evil-leader/set-key "t" 'dired)
(evil-leader/set-key "1" 'shell-command)
(evil-leader/set-key "<SPC>" 'yas-expand)
(evil-leader/set-key-for-mode 'emacs-lisp-mode "d" 'eval-defun)
(evil-leader/set-key-for-mode 'emacs-lisp-mode "e" 'eval-last-sexp)
(evil-leader/set-key-for-mode 'org-mode "e" 'org-html-export-to-html)
(evil-leader/set-key-for-mode 'org-mode "r" 'org-ctrl-c-ctrl-c)
(evil-leader/set-key-for-mode 'org-mode "x" 'org-latex-export-to-pdf)
(evil-leader/set-key-for-mode 'org-mode "m" 'org-latex-export-to-markdown)
(evil-leader/set-key-for-mode 'org-mode "q" 'fill-paragraph)
(evil-leader/set-key-for-mode 'literate-haskell-mode "q" 'fill-paragraph)
(evil-leader/set-key-for-mode 'markdown-mode "q" 'fill-paragraph)
(evil-leader/set-key-for-mode 'latex-mode "q" 'fill-paragraph)
(evil-leader/set-key-for-mode 'latex-mode "q" 'fill-paragraph))
;
; Markdown
;
(use-package markdown-mode
:ensure
:init (add-to-list 'auto-mode-alist '(".md" . markdown-mode)))
#!/bin/bash
# UPDATE
sudo apt update
sudo apt upgrade -y
# BASIC
sudo apt install -y build-essential curl emacs vim fish guake git ca-certificates curl gnupg lsb-release openjdk-17-jdk
# CONFIGURE GIT
git config --global user.name "Matthias Metzger"
# CONFIGURE FISH SHELL
$fish_config_dir=~/.config/fish
curl -sS https://starship.rs/install.sh | sh
mkdir -p $fish_config_dir
echo 'starship init fish | source' >> $fish_config_dir/config.fish
chsh -s /usr/bin/fish
# CONFIGURE VIM
echo << EOF > ~/.vimrc
syntax on
set nu
set expandtab
set ts=4
set sw=4
set hlsearch
set incsearch
set smartcase
set encoding=utf-8
set title
imap jj <Esc>
EOF
# INSTALL RUST
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# INSTALL HASKELL
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
# INSTALL ELIXIR
wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb
sudo dpkg -i erlang-solutions_2.0_all.deb
sudo apt update
sudo apt install esl-erlang elixir
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment