Last active
September 14, 2022 18:10
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; | |
; 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))) | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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