@@ -0,0 +1 @@ | |||
gein.jcmdln.org |
@@ -1,7 +1,7 @@ | |||
Azryn Software Labs Public License | |||
Version 1.0.0, 2017-07-28 | |||
Version 1.1.0, 2017-10-26 | |||
Copyright (C) 2017 Azryn Software Labs, Inc. <http://www.aswl.org/apl/> | |||
Copyright (C) 2017 Johnathan C Maudlin <jcmdln@gmail.com> | |||
Everyone is permitted to copy and distribute verbatim copies of this | |||
license document, but changing it is not allowed. | |||
@@ -12,7 +12,7 @@ right without limitation or restriction to use, copy, modify, merge, | |||
publish, and distribute copies of this software provided the following | |||
conditions are met: | |||
* Redistributions of source code must retain the above copyright | |||
* Redistributions of source code must retain the above copyright | |||
notice, this list of conditions and the following disclaimer. | |||
* Redistributions in binary form must reproduce the above copyright | |||
@@ -21,11 +21,12 @@ conditions are met: | |||
Should any persons wish to sell copies of the Software or the contents | |||
of the Software, in part or in full, said permission is hereby granted | |||
provided one the following conditions are met: | |||
provided one the following two conditions are met: | |||
* You have explicit, written permission to do so. | |||
* You have explicit, written, unanimous permission to do so by the | |||
copyright holders and contributors. | |||
* You forego using this license in favor of using the GNU GENERAL | |||
* You forego using this license in favor of using the GNU GENERAL | |||
PUBLIC LICENSE of version 3 or later (the "GPLv3"). | |||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||
@@ -34,8 +35,8 @@ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A | |||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |||
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |||
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
@@ -1,44 +1,65 @@ | |||
#### NOTE: This project has been deprecated by https://github.com/Azryn/AzrynOS | |||
``` | |||
$ sh gein | |||
gein - GEntoo INstaller | |||
-h help Suggests to read the script and Gentoo documentation | |||
Required first step: | |||
-b bootstrap Bootstrap the stage3 tarball | |||
Post-bootstrap options: | |||
-m minimal Only install required gentoo packages | |||
-d desktop Install required and desktop packages | |||
-l laptop Install required, desktop, and laptop packages | |||
``` | |||
0) Read the entire script, I may do things you won't like or want. | |||
1) Download and boot the Gentoo livecd of your choosing. | |||
2) Configure and mount your partitions. | |||
3) Download `gein` into `/mnt/gentoo`. | |||
``` | |||
cd /mnt/gentoo | |||
wget https://raw.githubusercontent.com/jcmdln/gein/master/gein | |||
``` | |||
4) Bootstrap the Gentoo installation. | |||
``` | |||
# Once this command completes, you should be in your new chroot | |||
sh /mnt/gentoo/gein -b | |||
``` | |||
5) From the new chroot, install your desired version | |||
``` | |||
# Minimal install (only bare minimum packages) | |||
sh gein -m | |||
# Desktop install (a full desktop with baked-in configs) | |||
sh gein -d | |||
# Laptop install (add power monitoring, wifi) | |||
sh gein -l | |||
``` | |||
`gein` is a Linux-based derivative of Gentoo. The primary goal is to | |||
automate the installation of my own ideal Gentoo setup though the | |||
current design allows for others to fork or submit PR's should it be | |||
desired. Keep in mind that this project is NOT a replacement for reading | |||
the Gentoo Handbook. | |||
You may review the source code at https://github.com/jcmdln/gein for | |||
more information if needed. | |||
## FAQ | |||
- "How much about Gentoo will I need to know to use gein?" | |||
- I would suggest reading the Gentoo Handbook and every file in this | |||
project before proceeding. | |||
- "I keep getting boot failures after installing in a VirtualBox VM?" | |||
- Remove the virtual disk drive from the boot order and restart. | |||
- "The display is lagging when using LXQT on my Nvidia GPU?" | |||
- Run `eselect opengl set nvidia` as root. | |||
## Warnings | |||
- Read the warnings at the top of `install.sh` FIRST! | |||
- You must manually partition and mount your disks. | |||
- Consult your Gentoo Handbook. | |||
- gein does not install a web browser or office suite. | |||
## Getting Started | |||
1. Download a Gentoo LiveCD from https://www.gentoo.org/downloads/ | |||
2. Write the ISO to a USB drive: | |||
$ dd if=~/Downloads/<iso> of=/dev/<usb> | |||
3. Boot from the USB drive on the target device | |||
## Installing | |||
1. Partition and mount your disk(s) | |||
2. Download and run `install.sh`: | |||
$ wget http://gein.jcmdln.net/install.sh | |||
$ sh install.sh | |||
gein: Linux-based derivative of Gentoo | |||
-h help Shows this output | |||
-b bootstrap Bootstrap the stage3 tarball | |||
Post-bootstrap: | |||
-m minimal Perform a basic Gentoo installation | |||
-d desktop Install a complete gein desktop | |||
3. Read the information at the top of `install.sh` and modify the | |||
variables as needed: | |||
$ vi install.sh | |||
4. Start the bootstrap: | |||
$ sh install.sh bootstrap | |||
5. Install your desired variant: | |||
$ sh install.sh desktop | |||
Enjoy your Gentoo installation! |
@@ -0,0 +1,4 @@ | |||
# /etc/Xresources | |||
Xcursor.theme: breeze | |||
Xcursor.size: 16 |
@@ -0,0 +1,33 @@ | |||
# /etc/bash/bashrc | |||
# Test for an interactive shell. | |||
if [[ $- != *i* ]] ; then | |||
# Shell is non-interactive. Be done now! | |||
return | |||
fi | |||
shopt -s checkwinsize | |||
shopt -s no_empty_cmd_completion | |||
shopt -s histappend | |||
#PROMPT_COMMAND='history -a' | |||
# Change the window title of X terminals | |||
case ${TERM} in | |||
[aEkx]term*|rxvt*|gnome*|konsole*|interix) | |||
PS1='\[\033]0;\u@\h:\w\007\]' | |||
;; | |||
screen*) | |||
PS1='\[\033k\u@\h:\w\033\\\]' | |||
;; | |||
*) | |||
unset PS1 | |||
;; | |||
esac | |||
for sh in /etc/bash/bashrc.d/* ; do | |||
[[ -r ${sh} ]] && source "${sh}" | |||
done | |||
source /etc/profile | |||
unset use_color sh |
@@ -0,0 +1,476 @@ | |||
;; /etc/emacs/default.el | |||
;; Disable menubar, scrollbar, and toolbar before they initialize | |||
(when (fboundp 'menu-bar-mode) (menu-bar-mode -1)) | |||
(when (fboundp 'scroll-bar-mode) (scroll-bar-mode -1)) | |||
(when (fboundp 'tool-bar-mode) (tool-bar-mode -1)) | |||
;; Theme/Font | |||
(load-theme 'tango-dark) | |||
(set-face-attribute 'default nil | |||
:family "Monospace" :weight 'normal | |||
:width 'normal :height 96) | |||
(add-hook | |||
'after-init-hook | |||
(lambda() | |||
;; Line number column | |||
(add-hook 'lisp-mode-hook 'linum-mode) | |||
(add-hook 'prog-mode-hook 'linum-mode) | |||
(add-hook 'text-mode-hook 'linum-mode) | |||
;; Saving | |||
(add-hook 'before-save-hook 'delete-trailing-whitespace) | |||
;; Shorter y/n prompts | |||
(fset 'yes-or-no-p 'y-or-n-p) | |||
;; Globally enable word-wrap | |||
(global-visual-line-mode t) | |||
;; Highlight matching parenthesis | |||
(show-paren-mode t) | |||
;; Enable Emacs mouse commands | |||
(xterm-mouse-mode t) | |||
;; Environment Variables | |||
(setenv "EDITOR" "emacsclient") | |||
(setenv "GIT_EDITOR" "emacsclient") | |||
(setenv "GOPATH" (getenv "GOPATH")) | |||
(setenv "MANPATH" (getenv "MANPATH")) | |||
(setenv "PATH" (getenv "PATH")) | |||
(setenv "PROMPT_COMMAND" "") | |||
(setenv "SHELL" (getenv "SHELL")) | |||
(setenv "TERM" (getenv "TERM")))) | |||
(setq | |||
;; Misc | |||
initial-scratch-message nil | |||
inhibit-splash-screen t | |||
inhibit-startup-buffer-menu t | |||
column-number-mode t | |||
visible-bell t | |||
;; Encoding | |||
prefer-coding-system 'utf-8 | |||
set-default-coding-systems 'utf-8 | |||
set-language-environment "UTF-8" | |||
set-locale-environment "en_US.UTF-8" | |||
;; Cut/Paste | |||
require-final-newline t | |||
save-interprogram-paste-before-kill t | |||
select-enable-primary nil | |||
;; Indentation | |||
c-basic-offset 2 | |||
cperl-indent-level 2 | |||
js-indent-level 2 | |||
tab-width 2 | |||
indent-tabs-mode nil | |||
;; Mouse | |||
mouse-wheel-follow-mouse 't | |||
mouse-wheel-progressive-speed nil | |||
mouse-wheel-scroll-amount '(3 ((shift) . 3)) | |||
mouse-yank-at-point t | |||
;; Scrolling | |||
auto-window-vscroll nil | |||
scroll-conservatively 101 | |||
scroll-down-aggressively 0.0 | |||
scroll-margin 0 | |||
scroll-preserve-screen-position 1 | |||
scroll-step 1 | |||
scroll-up-aggressively 0.0) | |||
;; Autoload custom file on start | |||
(setq custom-file "~/.emacs.d/custom.el") | |||
(if (file-exists-p custom-file) | |||
(load custom-file) | |||
(write-region "" nil custom-file)) | |||
;;; Helper Functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
(defun append-to-list (list-var elements) | |||
"Append ELEMENTS to the end of LIST-VAR." | |||
(set list-var (append (symbol-value list-var) elements))) | |||
;;; Input ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
;; Buffers | |||
(global-set-key (kbd "C-x C-b") 'ibuffer) | |||
(global-set-key (kbd "C-x x") 'kill-buffer-and-window) | |||
(global-set-key (kbd "<C-tab>") 'next-buffer) | |||
(global-set-key (kbd "<C-iso-lefttab>") 'previous-buffer) | |||
(global-set-key (kbd "M--") (lambda() (interactive) | |||
(split-window-vertically) | |||
(other-window 1 nil) | |||
(switch-to-next-buffer))) | |||
(global-set-key (kbd "M-=") (lambda() (interactive) | |||
(split-window-horizontally) | |||
(other-window 1 nil) | |||
(switch-to-next-buffer))) | |||
;; Comments | |||
(global-set-key (kbd "C-c c") 'comment-or-uncomment-region) | |||
;; Mouse | |||
(global-set-key (kbd "<mouse-4>") (lambda() (interactive) | |||
(scroll-down 4))) | |||
(global-set-key (kbd "<mouse-5>") (lambda() (interactive) | |||
(scroll-up 4))) | |||
;; Movement | |||
(global-set-key (kbd "<M-down>") 'windmove-down) | |||
(global-set-key (kbd "<M-left>") 'windmove-left) | |||
(global-set-key (kbd "<M-right>") 'windmove-right) | |||
(global-set-key (kbd "<M-up>") 'windmove-up) | |||
(global-set-key (kbd "C-c <down>") 'windmove-down) | |||
(global-set-key (kbd "C-c <left>") 'windmove-left) | |||
(global-set-key (kbd "C-c <right>") 'windmove-right) | |||
(global-set-key (kbd "C-c <up>") 'windmove-up) | |||
;;; Package Manager ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
(require 'package) | |||
(setq package-user-dir "~/.emacs.d/pkg/" | |||
package-archives | |||
'(("GNU ELPA" . "http://elpa.gnu.org/packages/") | |||
("MELPA Stable" . "https://stable.melpa.org/packages/") | |||
("MELPA" . "https://melpa.org/packages/")) | |||
package-archive-priorities | |||
'(("MELPA Stable" . 3) | |||
("GNU ELPA" . 2) | |||
("MELPA" . 1))) | |||
(package-initialize) | |||
;; Install 'use-package' if not present | |||
(unless (package-installed-p 'use-package) | |||
(package-refresh-contents) | |||
(package-install 'use-package)) | |||
(require 'use-package) | |||
(setq use-package-always-ensure t) | |||
;;; Built-in Packages ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
(use-package async | |||
:config (async-bytecomp-package-mode '(all))) | |||
(use-package auto-compile | |||
:config | |||
(auto-compile-on-load-mode) | |||
(auto-compile-on-save-mode)) | |||
(use-package auto-dictionary) | |||
(use-package elfeed | |||
:bind ("C-x w" . elfeed) | |||
:config | |||
(setq elfeed-search-filter "@1-week-ago +unread " | |||
url-queue-timeout 30) | |||
(if (file-exists-p "~/.emacs.d/elfeed.el") | |||
(load-file "~/.emacs.d/elfeed.el"))) | |||
(use-package eshell | |||
:config | |||
(setq eshell-cmpl-cycle-completions nil | |||
eshell-error-if-no-glob t | |||
eshell-hist-ignoredups t | |||
eshell-history-size 4096 | |||
eshell-prefer-lisp-functions t | |||
eshell-save-history-on-exit t | |||
eshell-scroll-to-bottom-on-input 'all) | |||
(setq eshell-prompt-function | |||
(lambda nil | |||
(concat | |||
"[" (user-login-name) "@" (system-name) " " | |||
(if (= (length (eshell/pwd)) (length (getenv "HOME"))) | |||
"~" (eshell/basename (eshell/pwd))) "]" | |||
(if (= (user-uid) 0) "# " "$ "))) | |||
eshell-prompt-regexp "^[^#$\n]*[#$] ") | |||
(add-hook | |||
'eshell-mode-hook | |||
(lambda() | |||
(append-to-list 'eshell-visual-commands | |||
'("alsamixer" "htop" "top" "nano" "vi" "vim" "less" "ssh" | |||
"tail" "watch")) | |||
(eshell/alias "clear" "eshell-clear") | |||
(eshell/alias "cp" "cp -ip $1 $2") | |||
(eshell/alias "cr" "cp -ipr $1 $2") | |||
(eshell/alias "hurl" "curl --fail --location --remote-name-all --progress-bar $*") | |||
(eshell/alias "df" "df -h $*") | |||
(eshell/alias "di" "df -hi $*") | |||
(eshell/alias "free" "free -h $*") | |||
(eshell/alias "l" "ls -hSC --color=auto --group-directories-first $*") | |||
(eshell/alias "la" "ls -ahSC --color=auto --group-directories-first $*") | |||
(eshell/alias "ll" "ls -halS --color=auto --group-directories-first $*") | |||
(eshell/alias "ls" "ls -hSC --color=auto --group-directories-first $*") | |||
(eshell/alias "mkcd" "mkdir -vp $1; cd $1") | |||
(eshell/alias "mkdir" "mkdir -vp $*") | |||
(eshell/alias "rf" "rm -rf $*") | |||
(eshell/alias "rm" "rm -i $*") | |||
(eshell/alias "rr" "rm -ir $*"))) | |||
(defun eshell-clear() | |||
"Clear the eshell buffer" | |||
(let ((inhibit-read-only t)) | |||
(erase-buffer) | |||
(eshell-send-input))) | |||
(defun eshell-new() | |||
"Open a new instance of eshell." | |||
(interactive) | |||
(eshell 'N))) | |||
(use-package eww | |||
:config | |||
(setq browse-url-browser-function 'eww-browse-url | |||
shr-blocked-images "") | |||
(defun eww-toggle-images() | |||
"Toggle blocking images in eww." | |||
(interactive) | |||
(if (bound-and-true-p shr-blocked-images) | |||
(setq shr-blocked-images nil) | |||
(setq shr-blocked-images "")) | |||
(eww-reload)) | |||
(defun eww-new() | |||
"Open a new instance of eww." | |||
(interactive) | |||
(let ((url (read-from-minibuffer "Enter URL or keywords: "))) | |||
(switch-to-buffer (generate-new-buffer "*eww*")) | |||
(eww-mode) | |||
(eww url))) | |||
(defun eww-open-url-in-new() | |||
"Open link under cursor in new instance of eww" | |||
(interactive) | |||
(let ((url (get-text-property (point) 'shr-url))) | |||
(print url) | |||
(switch-to-buffer (generate-new-buffer "*eww*")) | |||
(eww-mode) | |||
(eww url)))) | |||
(use-package gnus | |||
:config | |||
(gnus-add-configuration | |||
'(article | |||
(horizontal 1.0 | |||
(vertical 25 (group 1.0)) | |||
(vertical 1.0 | |||
(summary 0.25 point) | |||
(article 1.0))))) | |||
(gnus-add-configuration | |||
'(summary | |||
(horizontal 1.0 | |||
(vertical 25 (group 1.0)) | |||
(vertical 1.0 (summary 1.0 point)))))) | |||
(use-package ibuffer | |||
:config | |||
(add-hook 'ibuffer-hook | |||
(lambda() | |||
(ibuffer-do-sort-by-alphabetic) | |||
(ibuffer-do-sort-by-major-mode)))) | |||
(use-package scratch | |||
:config | |||
(defun scratch-new() | |||
"Open a new scratch buffer." | |||
(interactive) | |||
(switch-to-buffer (generate-new-buffer "*scratch*")) | |||
(lisp-mode))) | |||
(use-package server | |||
:bind ("C-x C-c" . server-stop) | |||
:config (unless (server-running-p)(server-start)) | |||
(defun server-kill() | |||
"Delete current Emacs server, then kill Emacs" | |||
(interactive) | |||
(server-force-delete) | |||
(kill-emacs)) | |||
(defun server-stop() | |||
"Prompt to save buffers, then kill Emacs." | |||
(interactive) | |||
(if (y-or-n-p "Quit Emacs? ") | |||
(save-buffers-kill-emacs))) | |||
(defun server-update() | |||
"Refresh package contents, then update all packages." | |||
(interactive) | |||
(package-initialize) | |||
(unless package-archive-contents | |||
(package-refresh-contents)) | |||
(package-utils-upgrade-all))) | |||
(use-package xclip | |||
:config (xclip-mode 1)) | |||
;;; Extras ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |||
(use-package circe | |||
:config | |||
(add-hook 'circe-chat-mode-hook 'my-circe-prompt) | |||
(add-hook 'circe-message-option-functions 'my-circe-message-option-chanserv) | |||
(add-hook 'lui-mode-hook (lambda() (my-lui-setup) (my-circe-set-margin))) | |||
(if (file-exists-p "~/.emacs.d/circe.el") | |||
(load-file "~/.emacs.d/circe.el")) | |||
(setq circe-default-part-message "" | |||
circe-default-quit-message "" | |||
circe-format-server-topic "*** Topic change by {userhost}: {topic-diff}" | |||
circe-reduce-lurker-spam t | |||
circe-use-cycle-completion t | |||
lui-fill-type nil | |||
lui-flyspell-alist '((".*" "american")) | |||
lui-flyspell-p t | |||
lui-time-stamp-format "%H:%M:%S" | |||
lui-time-stamp-position 'left-margin) | |||
(require 'circe-chanop) | |||
(enable-circe-color-nicks) | |||
(defun my-circe-set-margin() (setq left-margin-width 9)) | |||
(setf (cdr (assoc 'continuation fringe-indicator-alist)) nil) | |||
(defun my-lui-setup() | |||
(setq fringes-outside-margins t | |||
left-margin-width 9 | |||
word-wrap t | |||
wrap-prefix "")) | |||
(defun my-circe-prompt() | |||
(lui-set-prompt | |||
(concat (propertize | |||
(concat (buffer-name) ">") | |||
'face 'circe-prompt-face) " "))) | |||
(defun my-circe-message-option-chanserv (nick user host command args) | |||
(when (and (string= "ChanServ" nick) | |||
(string-match "^\\[#.+?\\]" (cadr args))) | |||
'((dont-display . t))))) | |||
(use-package cmake-ide | |||
:config (cmake-ide-setup)) | |||
(use-package company | |||
:config | |||
(add-hook 'prog-mode-hook 'company-mode) | |||
(add-hook 'text-mode-hook 'company-mode)) | |||
(use-package company-irony | |||
:config (add-to-list 'company-backends 'company-irony)) | |||
(use-package company-irony-c-headers | |||
:config | |||
(add-to-list 'company-backends '(company-irony-c-headers company-irony))) | |||
(use-package counsel | |||
:bind (("<f1> f" . counsel-describe-function) | |||
("<f1> l" . counsel-find-library) | |||
("<f1> v" . counsel-describe-variable) | |||
("<f2> i" . counsel-info-lookup-symbol) | |||
("<f2> u" . counsel-unicode-char) | |||
("C-S-o" . counsel-rhythmbox) | |||
("C-c g" . counsel-git) | |||
("C-c j" . counsel-git-grep) | |||
("C-c l" . counsel-ag) | |||
("C-r" . counsel-expression-history) | |||
("C-x C-f" . counsel-find-file) | |||
("C-x l" . counsel-locate) | |||
("M-x" . counsel-M-x))) | |||
(use-package diff-hl | |||
:config | |||
(add-hook 'prog-mode-hook 'diff-hl-mode) | |||
(add-hook 'text-mode-hook 'diff-hl-mode)) | |||
(use-package eww-lnum | |||
:config | |||
(define-key eww-mode-map "f" 'eww-lnum-follow) | |||
(define-key eww-mode-map "F" 'eww-lnum-universal)) | |||
(use-package flycheck | |||
:config (add-hook 'prog-mode-hook 'flycheck-mode)) | |||
(use-package flymake) | |||
(use-package flyspell | |||
:config | |||
(add-hook 'flyspell-mode-hook (auto-dictionary-mode 1)) | |||
(add-hook 'markdown-mode-hook 'flyspell-mode) | |||
(add-hook 'prog-mode-hook 'flyspell-prog-mode) | |||
(add-hook 'text-mode-hook 'flyspell-mode)) | |||
(use-package go-mode | |||
:config | |||
(add-hook 'before-save-hook 'gofmt-before-save) | |||
(add-hook 'go-mode-hook (lambda() | |||
(setq tab-width 4 | |||
indent-tabs-mode 1)))) | |||
(use-package highlight-indent-guides | |||
:config | |||
(add-hook 'prog-mode-hook 'highlight-indent-guides-mode) | |||
(setq highlight-indent-guides-method 'character)) | |||
(use-package irony | |||
:config | |||
(add-hook 'c++-mode-hook 'irony-mode) | |||
(add-hook 'c-mode-hook 'irony-mode) | |||
(add-hook 'objc-mode-hook 'irony-mode) | |||
(add-hook 'irony-mode-hook 'irony-cdb-autosetup-compile-options) | |||
(define-key irony-mode-map [remap completion-at-point] 'counsel-irony) | |||
(define-key irony-mode-map [remap complete-symbol] 'counsel-irony) | |||
(setq irony-additional-clang-options '("-std=c++14"))) | |||
(use-package ivy | |||
:bind (("C-c C-r" . ivy-resume) | |||
("<f6>" . ivy-resume)) | |||
:config | |||
(ivy-mode 1) | |||
(setq ivy-use-virtual-buffers t | |||
enable-recursive-minibuffers t)) | |||
(use-package magit) | |||
(use-package no-littering) | |||
(use-package nov | |||
:config (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode))) | |||
(use-package rainbow-delimiters | |||
:config | |||
(add-hook 'markdown-mode-hook 'rainbow-delimiters-mode) | |||
(add-hook 'prog-mode-hook 'rainbow-delimiters-mode) | |||
(add-hook 'text-mode-hook 'rainbow-delimiters-mode)) | |||
(use-package ranger) | |||
(use-package smartparens | |||
:config | |||
(add-hook 'markdown-mode-hook 'smartparens-mode) | |||
(add-hook 'prog-mode-hook 'smartparens-mode) | |||
(add-hook 'text-mode-hook 'smartparens-mode) | |||
(setq sp-highlight-pair-overlay nil | |||
sp-highlight-wrap-overlay nil | |||
sp-highlight-wrap-tag-overlay nil)) | |||
(use-package swiper | |||
:bind ("C-s" . swiper)) | |||
(use-package undo-tree | |||
:config (global-undo-tree-mode)) |
@@ -0,0 +1,219 @@ | |||
# /etc/i3/config | |||
### Startup ###################################### | |||
## Disable DPMS | |||
exec --no-startup-id xset s off -dpms | |||
## i3wm modifier key | |||
set $mod Mod4 | |||
## Applications | |||
bindsym $mod+d exec dmenu_run | |||
bindsym $mod+Return exec dbus-launch gnome-terminal | |||
### Appearance ################################### | |||
## Font | |||
font pango:Noto Mono Regular 9.5 | |||
## Taskbar | |||
bar { | |||
position top | |||
status_command i3status | |||
colors { | |||
background #333333 | |||
statusline #eeeeee | |||
separator #eeeeee | |||
focused_workspace #eeeeee #00894e | |||
active_workspace #eeeeee #777777 | |||
inactive_workspace #eeeeee #333333 | |||
urgent_workspace #eeeeee #b22222 | |||
} | |||
} | |||
## Colors | |||
exec --no-startup-id xsetroot -solid '#333333' | |||
client.background #333333 | |||
client.focused #00894e #00894e #eeeeee #30f277 #00894e | |||
client.focused_inactive #333333 #333333 #eeeeee #888888 #333333 | |||
client.placeholder #333333 #333333 #eeeeee #333333 #333333 | |||
client.unfocused #333333 #333333 #888888 #888888 #333333 | |||
client.urgent #b22222 #b22222 #eeeeee #ff5454 #b22222 | |||
### System ####################################### | |||
## Reload | |||
set $Config Reload i3 config (r), Live restart of i3 (Shift+r) | |||
bindsym $mod+Shift+r mode "$Config" | |||
mode "$Config" { | |||
bindsym r reload | |||
bindsym Shift+r restart | |||
bindsym Escape mode "default" | |||
} | |||
## i3lock | |||
set $Locker xset s 10 dpms 10 && i3lock -c 333333 -n && xset s off -dpms | |||
## Menu | |||
set $System Lock (l), Logout (e), Reboot (r), Shutdown (s) | |||
bindsym $mod+Home mode "$System" | |||
mode "$System" { | |||
bindsym l exec --no-startup-id $Locker, mode "default" | |||
bindsym e exec --no-startup-id i3-msg exit, mode "default" | |||
bindsym r exec --no-startup-id reboot, mode "default" | |||
bindsym s exec --no-startup-id poweroff -i, mode "default" | |||
bindsym Escape mode "default" | |||
} | |||
### Display ###################################### | |||
## Auto-enable/disable HDMI-1 | |||
exec --no-startup-id \ | |||
while :; do \ | |||
if [ $(xrandr | grep -c 'HDMI-1 connected') == 1 ]; then \ | |||
xrandr \ | |||
--output DP-1 --off \ | |||
--output LVDS-1 --primary --mode 1366x768 --pos 554x1080 --rotate normal \ | |||
--output HDMI-1 --mode 1920x1080 --pos 0x0 --rotate normal \ | |||
--output VGA-1 --off; \ | |||
else \ | |||
xrandr --output DP-1 --off \ | |||
--output LVDS-1 --primary --mode 1366x768 --pos 0x0 --rotate normal \ | |||
--output VGA-1 --off \ | |||
--output HDMI-1 --off; \ | |||
fi; \ | |||
sleep 2; \ | |||
done | |||
#### Keybinds #################################### | |||
## Window splitting | |||
bindsym $mod+h split h | |||
bindsym $mod+v split v | |||
## Fullscreen focused container | |||
bindsym $mod+f fullscreen toggle | |||
## Kill focused window | |||
bindsym $mod+Shift+q kill | |||
## Cycle frame layout | |||
bindsym $mod+s layout stacking | |||
bindsym $mod+w layout tabbed | |||
bindsym $mod+e layout toggle split | |||
## Change focus | |||
bindsym $mod+j focus left | |||
bindsym $mod+k focus down | |||
bindsym $mod+l focus up | |||
bindsym $mod+semicolon focus right | |||
bindsym $mod+Left focus left | |||
bindsym $mod+Down focus down | |||
bindsym $mod+Up focus up | |||
bindsym $mod+Right focus right | |||
## Move focused window | |||
bindsym $mod+Shift+j move left | |||
bindsym $mod+Shift+k move down | |||
bindsym $mod+Shift+l move up | |||
bindsym $mod+Shift+semicolon move right | |||
bindsym $mod+Shift+Left move left | |||
bindsym $mod+Shift+Down move down | |||
bindsym $mod+Shift+Up move up | |||
bindsym $mod+Shift+Right move right | |||
## Switch to workspace | |||
bindsym $mod+1 workspace 1 | |||
bindsym $mod+2 workspace 2 | |||
bindsym $mod+3 workspace 3 | |||
bindsym $mod+4 workspace 4 | |||
bindsym $mod+5 workspace 5 | |||
bindsym $mod+6 workspace 6 | |||
bindsym $mod+7 workspace 7 | |||
bindsym $mod+8 workspace 8 | |||
bindsym $mod+9 workspace 9 | |||
bindsym $mod+0 workspace 10 | |||
## Move focused container to workspace | |||
bindsym $mod+Shift+1 move container to workspace 1 | |||
bindsym $mod+Shift+2 move container to workspace 2 | |||
bindsym $mod+Shift+3 move container to workspace 3 | |||
bindsym $mod+Shift+4 move container to workspace 4 | |||
bindsym $mod+Shift+5 move container to workspace 5 | |||
bindsym $mod+Shift+6 move container to workspace 6 | |||
bindsym $mod+Shift+7 move container to workspace 7 | |||
bindsym $mod+Shift+8 move container to workspace 8 | |||
bindsym $mod+Shift+9 move container to workspace 9 | |||
bindsym $mod+Shift+0 move container to workspace 10 | |||
## Focus the parent container | |||
bindsym $mod+a focus parent | |||
## Drag floating windows with Mouse+$mod | |||
floating_modifier $mod | |||
## Toggle floating on focused frame | |||
bindsym $mod+Shift+space floating toggle | |||
## Change focus between tiling / floating windows | |||
bindsym $mod+space focus mode_toggle | |||
## Floating rules | |||
for_window [window_role="pop-up"] floating enable | |||
## Resize | |||
bindsym $mod+r mode "resize" | |||
mode "resize" { | |||
bindsym j resize shrink width 10 px or 10 ppt | |||
bindsym k resize grow height 10 px or 10 ppt | |||
bindsym l resize shrink height 10 px or 10 ppt | |||
bindsym semicolon resize grow width 10 px or 10 ppt | |||
bindsym Left resize shrink width 10 px or 10 ppt | |||
bindsym Down resize grow height 10 px or 10 ppt | |||
bindsym Up resize shrink height 10 px or 10 ppt | |||
bindsym Right resize grow width 10 px or 10 ppt | |||
bindsym Escape mode "default" | |||
} | |||
## Screenshot (scrot) | |||
bindsym Print \ | |||
exec --no-startup-id scrot $HOME/Pictures/`date +%Y-%m-%d_%H:%M:%S`.png | |||
bindsym $mod+Print \ | |||
exec --no-startup-id scrot -u $HOME/Pictures/`date +%Y-%m-%d_%H:%M:%S`.png | |||
bindsym Shift+Print --release \ | |||
exec --no-startup-id scrot -s $HOME/Pictures/`date +%Y-%m-%d_%H:%M:%S`.png | |||
## Audio (PulseAudio) | |||
bindsym XF86AudioRaiseVolume \ | |||
exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% | |||
bindsym XF86AudioLowerVolume \ | |||
exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% | |||
bindsym XF86AudioMute \ | |||
exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle | |||
bindsym XF86AudioPlay exec --no-startup-id pactl play-pause | |||
bindsym XF86AudioPause exec --no-startup-id pactl pause | |||
bindsym XF86AudioNext exec --no-startup-id pactl next | |||
bindsym XF86AudioPrev exec --no-startup-id pactl previous | |||
## Audio (Alsa) | |||
# bindsym XF86AudioRaiseVolume exec --no-startup-id amixer set Master 5+ | |||
# bindsym XF86AudioLowerVolume exec --no-startup-id amixer set Master 5- | |||
# bindsym XF86AudioMute exec --no-startup-id amixer set Master toggle | |||
## Brightness (brightnessctl) | |||
# bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set 5%+ | |||
# bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%- | |||
## Brightness (xbacklight) | |||
bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 15 | |||
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 15 |
@@ -0,0 +1,47 @@ | |||
# /etc/i3status.conf | |||
general { | |||
colors = true | |||
interval = 5 | |||
} | |||
order += "ipv6" | |||
order += "wireless _first_" | |||
order += "ethernet _first_" | |||
order += "volume master" | |||
#order += "disk /" | |||
order += "battery all" | |||
order += "load" | |||
order += "tztime local" | |||
wireless _first_ { | |||
format_up = "W: (%quality at %essid) %ip" | |||
format_down = "W: down" | |||
} | |||
ethernet _first_ { | |||
format_up = "E: %ip (%speed)" | |||
format_down = "E: down" | |||
} | |||
volume master { | |||
format = "๐: %volume" | |||
format_muted = "๐: %volume" | |||
device = "default" | |||
} | |||
disk "/" { | |||
format = "%avail" | |||
} | |||
battery all { | |||
format = "%status %percentage %remaining" | |||
} | |||
tztime local { | |||
format = "%Y-%m-%d %H:%M:%S" | |||
} | |||
load { | |||
format = "%1min" | |||
} |
@@ -1,30 +1,19 @@ | |||
# /etc/portage/make.conf | |||
# System | |||
CHOST="x86_64-gentoo-linux-musl" | |||
# Portage | |||
PORTDIR="/usr/portage" | |||
DISTDIR="${PORTDIR}/distfiles" | |||
PKGDIR="${PORTDIR}/packages" | |||
# Hardware | |||
CPU_FLAGS_X86="aes avx avx2 fma3 mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" | |||
INPUT_DEVICES="libinput" | |||
CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" | |||
L10N="en-US" | |||
LINGUAS="en_US" | |||
VIDEO_CARDS="Video_Cards" | |||
# Language | |||
LINGUAS="en_US" | |||
L10N="en-US" | |||
# Portage | |||
GENTOO_MIRRORS="http://distfiles.gentoo.org" | |||
PORTDIR="/usr/portage" | |||
DISTDIR="$PORTDIR/distfiles" | |||
PKGDIR="$PORTDIR/packages" | |||
# Compilation | |||
MAKEOPTS="Make_Opts" | |||
CFLAGS="-march=native -O3" | |||
CXXFLAGS="${CFLAGS}" | |||
# Package | |||
USE="-avahi -bindist -doc -gnome-keyring -llvm -offensive -multilib -pulseaudio \ | |||
-sslv3 -static -static-libs -systemd -tls-heartbeat \ | |||
alsa deblob ipv6 minimal threads unicode" | |||
GENTOO_MIRRORS="https://mirrors.kernel.org/gentoo/" | |||
CFLAGS="-O3 -march=native -pipe" | |||
CXXFLAGS="$CFLAGS" |
@@ -0,0 +1,19 @@ | |||
# /etc/portage/package.accept_keywords | |||
## General | |||
dev-util/bcc | |||
lxqt-base/* | |||
media-gfx/lximage-qt | |||
net-libs/libnsl | |||
sys-devel/gcc | |||
sys-kernel/gentoo-sources | |||
sys-kernel/linux-headers | |||
sys-libs/glibc | |||
x11-misc/obconf-qt | |||
x11-misc/pcmanfm-qt | |||
## amd64 | |||
app-emulation/wine-mono ~amd64 | |||
app-emulation/wine-staging ~amd64 | |||
net-misc/cmst ~amd64 | |||
sys-firmware/nvidia-firmware ~amd64 |
@@ -0,0 +1 @@ | |||
# /etc/portage/package.env |
@@ -0,0 +1,4 @@ | |||
# /etc/portage/package.license | |||
app-emulation/virtualbox-bin PUEL | |||
www-client/google-chrome google-chrome |
@@ -1,88 +1,77 @@ | |||
# /etc/portage/package.use | |||
### Global ####################################### | |||
## Blacklist | |||
*/* -avahi -bindist -doc -gnome-keyring -handbook -introspection -kdesu -kwallet -llvm -multilib -offensive -qt4 -sslv3 -static -static-libs -systemd -tls-heartbeat -wayland | |||
## Whitelist | |||
*/* alsa bzip2 dbus deblob ffmpeg gif gnutls imagemagick jpeg jpeg2k minimal png pulseaudio svg threads tiff unicode xft xpm zlib | |||
## Desktop | |||
*/* X cairo egl gles openal opengl sdl sdl2 vaapi vdpau | |||
### Packages ##################################### | |||
app-admin/sudo -gcrypt -openssl sendmail | |||
app-arch/bzip2 abi_x86_32 | |||
app-editors/emacs X acl alsa gof gtk3 gzip-el imagemagick inotify jpeg libxml2 png sound ssl svg threads tiff xft xpm xwidgets zlib -aqua -athena -games -gtk | |||
app-editors/vim X -minimal -perl -python -racket -tcl | |||
app-emacs/emacs-common-gentoo X -games | |||
app-emulation/qemu sdl2 usb | |||
app-arch/zip -bzip2 | |||
app-editors/emacs -athena -games -gtk acl dynamic-loading gtk3 gzip-el inotify libxml2 sound ssl xwidgets | |||
app-editors/vim -X -minimal -perl -python -racket -tcl | |||
app-emacs/emacs-common-gentoo -games | |||
app-emulation/qemu usb | |||
app-laptop/laptop-mode-tools acpi bluetooth | |||
app-misc/screenfetch -X | |||
app-office/libreoffice branding collada cups gltf gstreamer gtk mysql pdfimport postgres | |||
app-shells/zsh unicode | |||
app-office/libreoffice branding collada gltf gstreamer gtk mysql pdfimport postgres | |||
app-text/ghostscript-gpl cups | |||
app-text/poppler cairo | |||
app-text/poppler -qt5 | |||
app-text/xmlto text | |||
dev-cpp/cairomm aqua X | |||
dev-cpp/gtkmm X | |||
dev-db/sqlite abi_x86_32 | |||
dev-games/ogre threads examples ois | |||
dev-games/openscenegraph qt5 jpeg ffmpeg svg sdl truetype png | |||
dev-games/ogre examples ois | |||
dev-games/openscenegraph truetype | |||
dev-lang/python:2.7 sqlite | |||
dev-libs/atk abi_x86_32 | |||
dev-libs/expat abi_x86_32 | |||
dev-libs/glib dbus abi_x86_32 | |||
dev-libs/icu abi_x86_32 | |||
dev-libs/libcroco abi_x86_32 | |||
dev-libs/libffi abi_x86_32 | |||
dev-libs/libpcre abi_x86_32 pcre16 | |||
dev-libs/libpthread-stubs abi_x86_32 | |||
dev-libs/libxml2 abi_x86_32 python | |||
dev-libs/lzo abi_x86_32 | |||
dev-libs/nspr abi_x86_32 | |||
dev-libs/nss abi_x86_32 | |||
dev-libs/openssl abi_x86_32 zlib | |||
dev-util/pkgconfig abi_x86_32 | |||
dev-libs/libpcre pcre16 | |||
dev-libs/libxml2 icu python | |||
dev-qt/qtcore icu | |||
dev-qt/qtmultimedia gstreamer qml | |||
dev-qt/qtnetwork connman | |||
dev-util/cmake -ncurses -qt5 | |||
dev-util/geany gtk3 vte | |||
dev-vcs/git -gpg | |||
gnome-base/librsvg abi_x86_32 | |||
media-gfx/feh curl exif cinerma | |||
media-gfx/graphite2 abi_x86_32 | |||
media-gfx/inkscape imagemagick jpeg latex | |||
kde-frameworks/kidletime xscreensaver | |||
kde-plasma/kde-cli-tools -X | |||
kde-plasma/kwin multimedia | |||
kde-plasma/systemsettings gtk | |||
lxqt-base/lxqt-meta -oxygen about admin filemanager icons lximage powermanagement sddm | |||
lxqt-base/lxqt-panel clock colorpicker cpuload desktopswitch kbindicator mainmenu mount quicklaunch sensors showdesktop statusnotifier sysstat taskbar tray volume | |||
mail-client/thunderbird lightning system-cairo system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-sqlite | |||
media-fonts/noto cjk | |||
media-gfx/blender boost bullet collada colorio cuda cuda cycles dds elbeem game-engine jemalloc openimageio opensubdiv player sndfile valgrind | |||
media-gfx/feh curl exif cinerma xinerama | |||
media-gfx/gimp smp | |||
media-gfx/imagemagick corefonts cxx djvu fontconfig fpx fttw hdri jbig lcms lzma openexr raw opencl truetype webp wmf xml | |||
media-gfx/inkscape latex | |||
media-gfx/pstoedit plotutils | |||
media-libs/alsa-lib abi_x86_32 | |||
media-libs/fontconfig abi_x86_32 | |||
media-libs/freetype abi_x86_32 | |||
media-libs/harfbuzz abi_x86_32 icu | |||
media-libs/imlib2 X | |||
media-libs/libpng abi_x86_32 apng | |||
media-libs/libsdl2 X opengl | |||
media-libs/libsndfile abi_x86_32 | |||
media-libs/libtxc_dxtn abi_x86_32 | |||
media-libs/mesa -llvm abi_x86_32 dri3 vaapi vdpau | |||
media-libs/openal abi_x86_32 | |||
media-plugins/alsa-plugins pulseaudio abi_x86_32 | |||
media-sound/cmus aac alsa ffmpeg flac libsamplerate mad mp4 opus oss unicode vorbis wavpack | |||
media-sound/pulseaudio abi_x86_32 | |||
media-video/ffmpeg X aac hevc libass mp3 network ogg openssl opus rtmp sdl theora vorbis vpx x264 x265 xvid wavpack | |||
net-libs/libasyncns abi_x86_32 | |||
net-misc/connman bluetooth ethernet openvpn wifi | |||
net-misc/curl abi_x86_32 | |||
net-misc/openssh -static | |||
net-vpn/openvpn -static | |||
net-wireless/wpa_supplicant dbus | |||
sys-apps/attr abi_x86_32 | |||
sys-apps/tcp-wrappers abi_x86_32 | |||
sys-apps/util-linux abi_x86_32 | |||
media-libs/harfbuzz icu | |||
media-libs/libpng apng | |||
media-libs/mesa -vaapi gles2 | |||
media-libs/phonon -vlc gstreamer | |||
media-plugins/gst-plugins-meta ogg vorbis | |||
media-sound/cmus aac alsa flac libsamplerate mad mp4 opus oss vorbis wavpack | |||
media-video/ffmpeg aac amr blueray cdio encode gme hevc libass mp3 network ogg openh264 openssl opus rtmp theora vorbis vpx wavpack x264 x265 xvid | |||
media-video/mpv libass libmpv | |||
net-misc/connman bluetooth ethernet iptables openvpn wifi | |||
net-misc/openssh -X | |||
net-vpn/openvpn lz4 lzo plugins | |||
net-wireless/wpa_supplicant -qt5 | |||
sys-apps/openrc -netifrc | |||
sys-auth/consolekit policykit | |||
sys-auth/pambase consolekit | |||
sys-devel/gcc cxx nls nplt | |||
sys-devel/gettext abi_x86_32 | |||
sys-devel/llvm abi_x86_32 clang | |||
sys-fs/eudev -static -static-lib abi_x86_32 | |||
sys-fs/udev -static -static-lib abi_x86_32 | |||
sys-libs/binutils-libs abi_x86_32 | |||
sys-libs/gpm abi_x86_32 | |||
sys-libs/libcap abi_x86_32 | |||
sys-devel/llvm clang | |||
sys-libs/libcxx libcxxabi | |||
sys-libs/ncurses abi_x86_32 | |||
sys-libs/readline abi_x86_32 | |||
sys-libs/zlib abi_x86_32 | |||
sys-libs/zlib minizip | |||
virtual/libffi abi_x86_32 | |||
virtual/libiconv abi_x86_32 | |||
virtual/libintl abi_x86_32 | |||
virtual/libudev -static -static-libs abi_x86_32 x32 | |||
virtual/opengl abi_x86_32 | |||
virtual/pkgconfig abi_x86_32 | |||
www-client/chromium cups hangouts proprietary-codecs pulseaudio system-ffmpeg system-icu system-libvpx | |||
www-client/chromium hangouts proprietary-codecs system-ffmpeg system-icu system-libvpx | |||
www-client/w3m -X | |||
www-plugins/adobe-flash ppapi | |||
x11-base/xorg-drivers libinput | |||
x11-base/xorg-server -minimal | |||
@@ -91,56 +80,138 @@ x11-drivers/xf86-video-amdgpu glamor | |||
x11-drivers/xf86-video-ati glamor | |||
x11-drivers/xf86-video-intel dri3 sna | |||
x11-drivers/xf86-video-virtualbox dri | |||
x11-libs/cairo X xcb abi_x86_32 | |||
x11-libs/gdk-pixbuf X abi_x86_32 | |||
x11-libs/gtk+:2 abi_x86_32 | |||
x11-libs/libICE abi_x86_32 | |||
x11-libs/libSM abi_x86_32 | |||
x11-libs/libX11 abi_x86_32 | |||
x11-libs/libXScrnSaver abi_x86_32 | |||
x11-libs/libXau abi_x86_32 | |||
x11-libs/libXcomposite abi_x86_32 | |||
x11-libs/libXcursor abi_x86_32 | |||
x11-libs/libXdamage abi_x86_32 | |||
x11-libs/libXdmcp abi_x86_32 | |||
x11-libs/libXext abi_x86_32 | |||
x11-libs/libXfixes abi_x86_32 | |||
x11-libs/libXft abi_x86_32 | |||
x11-libs/libXi abi_x86_32 | |||
x11-libs/libXinerama abi_x86_32 | |||
x11-libs/libXrandr abi_x86_32 | |||
x11-libs/libXrender abi_x86_32 | |||
x11-libs/libXtst abi_x86_32 | |||
x11-libs/libXxf86vm abi_x86_32 | |||
x11-libs/libdrm abi_x86_32 | |||
x11-libs/libpciaccess abi_x86_32 | |||
x11-libs/libva abi_x86_32 X | |||
x11-libs/libva-vdpau-driver abi_x86_32 | |||
x11-libs/libxcb xkb abi_x86_32 | |||
x11-libs/libxkbcommon X | |||
x11-libs/libxshmfence abi_x86_32 | |||
x11-libs/pango X abi_x86_32 | |||
x11-libs/pixman abi_x86_32 | |||
x11-libs/cairo xcb | |||
x11-libs/libfm vala | |||
x11-libs/libva -egl | |||
x11-libs/libxcb xkb | |||
x11-misc/dmenu xinerama | |||
x11-misc/i3status filecaps | |||
x11-proto/compositeproto abi_x86_32 | |||
x11-proto/damageproto abi_x86_32 | |||
x11-proto/dri2proto abi_x86_32 | |||
x11-proto/dri3proto abi_x86_32 | |||
x11-proto/fixesproto abi_x86_32 | |||
x11-proto/glproto abi_x86_32 | |||
x11-proto/inputproto abi_x86_32 | |||
x11-proto/kbproto abi_x86_32 | |||
x11-proto/presentproto abi_x86_32 | |||
x11-proto/randrproto abi_x86_32 | |||
x11-proto/recordproto abi_x86_32 | |||
x11-proto/renderproto abi_x86_32 | |||
x11-proto/scrnsaverproto abi_x86_32 | |||
x11-proto/xcb-proto abi_x86_32 | |||
x11-proto/xextproto abi_x86_32 | |||
x11-proto/xf86bigfontproto abi_x86_32 | |||
x11-proto/xf86driproto abi_x86_32 | |||
x11-proto/xf86vidmodeproto abi_x86_32 | |||
x11-proto/xineramaproto abi_x86_32 | |||
x11-proto/xproto abi_x86_32 | |||
x11-terms/rxvt-unicode 256-color blink fading-colors font-styles mousewheel perl pixbuf unicode3 xft | |||
x11-misc/sddm consolekit | |||
x11-terms/gnome-terminal -gnome-shell -nautilus | |||
x11-terms/rxvt-unicode 256-color blink fading-colors font-styles mousewheel perl pixbuf unicode3 | |||
### Multilib ##################################### | |||
# app-accessibility/at-spi2-atk abi_x86_32 | |||
# app-accessibility/at-spi2-core abi_x86_32 | |||
# app-arch/bzip2 abi_x86_32 | |||
# app-emulation/wine-gecko abi_x86_32 | |||
# dev-db/sqlite abi_x86_32 | |||
# dev-libs/atk abi_x86_32 | |||
# dev-libs/expat abi_x86_32 | |||
# dev-libs/glib abi_x86_32 | |||
# dev-libs/gmp abi_x86_32 | |||
# dev-libs/icu abi_x86_32 | |||
# dev-libs/libcroco abi_x86_32 | |||
# dev-libs/libffi abi_x86_32 | |||
# dev-libs/libgcrypt abi_x86_32 | |||
# dev-libs/libgpg-error abi_x86_32 | |||
# dev-libs/libpcre abi_x86_32 | |||
# dev-libs/libpthread-stubs abi_x86_32 | |||
# dev-libs/libtasn1 abi_x86_32 | |||
# dev-libs/libunistring abi_x86_32 | |||
# dev-libs/libxml2 abi_x86_32 | |||
# dev-libs/libxslt abi_x86_32 | |||
# dev-libs/lzo abi_x86_32 | |||
# dev-libs/nettle abi_x86_32 | |||
# dev-libs/nspr abi_x86_32 | |||
# dev-libs/nss abi_x86_32 | |||
# dev-libs/openssl abi_x86_32 | |||
# dev-libs/wayland abi_x86_32 | |||
# dev-util/pkgconfig abi_x86_32 | |||
# gnome-base/librsvg abi_x86_32 | |||
# media-gfx/graphite2 abi_x86_32 | |||
# media-libs/alsa-lib abi_x86_32 | |||
# media-libs/fontconfig abi_x86_32 | |||
# media-libs/freeglut abi_x86_32 | |||
# media-libs/freetype abi_x86_32 | |||
# media-libs/glu abi_x86_32 | |||
# media-libs/harfbuzz abi_x86_32 | |||
# media-libs/jasper abi_x86_32 | |||
# media-libs/lcms abi_x86_32 | |||
# media-libs/libjpeg-turbo abi_x86_32 | |||
# media-libs/libpng abi_x86_32 | |||
# media-libs/libsndfile abi_x86_32 | |||
# media-libs/libtxc_dxtn abi_x86_32 | |||
# media-libs/mesa abi_x86_32 | |||
# media-libs/openal abi_x86_32 | |||
# media-libs/tiff abi_x86_32 | |||
# media-plugins/alsa-plugins abi_x86_32 | |||
# media-sound/pulseaudio abi_x86_32 | |||
# net-dns/libidn2 abi_x86_32 | |||
# net-libs/gnutls abi_x86_32 | |||
# net-libs/libasyncns abi_x86_32 | |||
# net-misc/curl abi_x86_32 | |||
# sys-apps/attr abi_x86_32 | |||
# sys-apps/dbus abi_x86_32 | |||
# sys-apps/tcp-wrappers abi_x86_32 | |||
# sys-apps/util-linux abi_x86_32 | |||
# sys-devel/gettext abi_x86_32 | |||
# sys-fs/eudev abi_x86_32 | |||
# sys-fs/udev abi_x86_32 | |||
# sys-libs/binutils-libs abi_x86_32 | |||
# sys-libs/gpm abi_x86_32 | |||
# sys-libs/libcap abi_x86_32 | |||
# sys-libs/ncurses abi_x86_32 | |||
# sys-libs/readline abi_x86_32 | |||
# sys-libs/zlib abi_x86_32 | |||
# virtual/glu abi_x86_32 | |||
# virtual/jpeg abi_x86_32 | |||
# virtual/libffi abi_x86_32 | |||
# virtual/libiconv abi_x86_32 | |||
# virtual/libintl abi_x86_32 | |||
# virtual/libudev abi_x86_32 x32 | |||
# virtual/opengl abi_x86_32 | |||
# virtual/pkgconfig abi_x86_32 | |||
# x11-libs/cairo abi_x86_32 | |||
# x11-libs/gdk-pixbuf abi_x86_32 | |||
# x11-libs/libICE abi_x86_32 | |||
# x11-libs/libSM abi_x86_32 | |||
# x11-libs/libX11 abi_x86_32 | |||
# x11-libs/libXScrnSaver abi_x86_32 | |||
# x11-libs/libXau abi_x86_32 | |||
# x11-libs/libXcomposite abi_x86_32 | |||
# x11-libs/libXcursor abi_x86_32 | |||
# x11-libs/libXdamage abi_x86_32 | |||
# x11-libs/libXdmcp abi_x86_32 | |||
# x11-libs/libXext abi_x86_32 | |||
# x11-libs/libXfixes abi_x86_32 | |||
# x11-libs/libXft abi_x86_32 | |||
# x11-libs/libXi abi_x86_32 | |||
# x11-libs/libXinerama abi_x86_32 | |||
# x11-libs/libXmu abi_x86_32 | |||
# x11-libs/libXrandr abi_x86_32 | |||
# x11-libs/libXrender abi_x86_32 | |||
# x11-libs/libXt abi_x86_32 | |||
# x11-libs/libXtst abi_x86_32 | |||
# x11-libs/libXxf86vm abi_x86_32 | |||
# x11-libs/libdrm abi_x86_32 | |||
# x11-libs/libpciaccess abi_x86_32 | |||
# x11-libs/libva abi_x86_32 | |||
# x11-libs/libva-intel-driver abi_x86_32 | |||
# x11-libs/libvdpau abi_x86_32 | |||
# x11-libs/libxcb abi_x86_32 | |||
# x11-libs/libxshmfence abi_x86_32 | |||
# x11-libs/pango abi_x86_32 | |||
# x11-libs/pixman abi_x86_32 | |||
# x11-proto/compositeproto abi_x86_32 | |||
# x11-proto/damageproto abi_x86_32 | |||
# x11-proto/dri2proto abi_x86_32 | |||
# x11-proto/dri3proto abi_x86_32 | |||
# x11-proto/fixesproto abi_x86_32 | |||
# x11-proto/glproto abi_x86_32 | |||
# x11-proto/inputproto abi_x86_32 | |||
# x11-proto/kbproto abi_x86_32 | |||
# x11-proto/presentproto abi_x86_32 | |||
# x11-proto/randrproto abi_x86_32 | |||
# x11-proto/recordproto abi_x86_32 | |||
# x11-proto/renderproto abi_x86_32 | |||
# x11-proto/scrnsaverproto abi_x86_32 | |||
# x11-proto/xcb-proto abi_x86_32 | |||
# x11-proto/xextproto abi_x86_32 | |||
# x11-proto/xf86bigfontproto abi_x86_32 | |||
# x11-proto/xf86driproto abi_x86_32 | |||
# x11-proto/xf86vidmodeproto abi_x86_32 | |||
# x11-proto/xineramaproto abi_x86_32 | |||
# x11-proto/xproto abi_x86_32 |
@@ -0,0 +1,10 @@ | |||
# /etc/portage/repos.conf/gentoo.conf | |||
[DEFAULT] | |||
main-repo = gentoo | |||
[gentoo] | |||
location = /usr/portage | |||
sync-type = git | |||
sync-uri = https://github.com/gentoo/gentoo.git | |||
auto-sync = yes |
@@ -1,52 +1,13 @@ | |||
# /etc/profile | |||
## Set user file-creation mask | |||
umask 022 | |||
## Load 'env-update' settings | |||
if [ -e /etc/profile.env ]; then | |||
source /etc/profile.env | |||
fi | |||
[ -e /etc/profile.env ] && source /etc/profile.env | |||
## Load scripts in '/etc/profile.d/' | |||
for sh in /etc/profile.d/*.sh ; do | |||
[ -r "$sh" ] && source "$sh" | |||
for sh in /etc/profile.d/*.sh; do | |||
[ -r "$sh" ] && . "$sh" | |||
done | |||
## Give root a separate PATH including sbin | |||
if [ "${EUID-}" = "0" ] || [ "${USER-}" = "root" ]; then | |||
PATH="${ROOTPATH}:/usr/share/bcc/tools/" | |||
MANPATH="${MANPATH}:/usr/share/bcc/man/man8" | |||
fi | |||
[ -e $HOME/.profile ] && source $HOME/.profile | |||
## Exports | |||
export ARCHFLAGS="-arch x86_64" | |||
export EDITOR='vi' | |||
export HISTTIMEFORMAT="(%m/%d/%y) %T " | |||
export MANPATH | |||
export PAGER="${PAGER:-/usr/bin/less}" | |||
export PATH | |||
export PROMPT_COMMAND="history -a" | |||
export SSH_KEY_PATH="${HOME}/.ssh/rsa_id" | |||
export TERM="xterm-256color" | |||
export ZSH="${HOME}/.oh-my-zsh" | |||
export ZSH_THEME="gentoo" | |||
## Bash settings | |||
if [ -n "${BASH_VERSION-}" ]; then | |||
[ -f /etc/bash/bashrc ] && source /etc/bash/bashrc | |||
export PS1="[\u@\h \w]\$ " | |||
fi | |||
## Zsh settings | |||
if [ -n "${ZSH_VERSION-}" ]; then | |||
[ -f /etc/zsh/zprofile ] && source /etc/zsh/zprofile | |||
[ ! -e ${ZSH} ] && \ | |||
rawGH="https://raw.githubusercontent.com/robbyrussell/oh-my-zsh" && \ | |||
curl -fsSL $rawGH/master/tools/install.sh | sh | |||
export PS1="[%n@%m %1d]$ " | |||
fi | |||
## Cleanup | |||
unset ROOTPATH | |||
unset sh |
@@ -0,0 +1,49 @@ | |||
# /etc/profile.d/alias.sh | |||
## cp | |||
alias cp="cp -ip" | |||
alias cr="cp -ipr" | |||
## curl | |||
alias hurl="curl -f#LO" | |||
## df | |||
alias df="df -h" | |||
alias di="df -hi" | |||
## free | |||
alias free="free -h" | |||
## ls | |||
ls="-hSF --group-directories-first --color=auto" | |||
alias l="ls -C $ls" | |||
alias la="ls -aC $ls" | |||
alias ll="ls -al $ls" | |||
alias ls="ls -C $ls" | |||
## mkdir | |||
alias mkdir="mkdir -vp" | |||
## mv | |||
alias mv="mv -i" | |||
## rm | |||
alias rf="rm -rf" | |||
alias rm="rm -i" | |||
alias rr="rm -ir" | |||
## tar | |||
mktgz() { | |||
tar -cfz $1.tar.gz $@ | |||
} | |||
mktxz() { | |||
tar -cfJ $1.tar.xz $@ | |||
} | |||
alias untar="tar -xf" | |||
### Extras ####################################### | |||
weather() { | |||
curl http://wttr.in/$1 | |||
} |
@@ -0,0 +1,49 @@ | |||
# /etc/profile.d/env.sh | |||
## Environment variables | |||
export ARCHFLAGS="-arch x86_64" | |||
export EDITOR="emacs -Q -nw" | |||
export HISTTIMEFORMAT="(%m/%d/%y) %T " | |||
export LANG="en_US.UTF-8" | |||
export PAGER="${PAGER:-/usr/bin/less}" | |||
export PROMPT_COMMAND="history -a" | |||
export PS1="[\u@\h \w]\$ " | |||
export SSH_KEY_PATH="${HOME}/.ssh/rsa_id" | |||
export TERM="xterm" | |||
## Golang | |||
GOPATH="$HOME/.go" | |||
GOBIN="$GOPATH/bin" | |||
GODOC="$GOPATH/doc" | |||
export GOBIN GODOC GOPATH | |||
## Racket | |||
RKTROOT="/usr/racket:/usr/local/racket:$HOME/racket:$HOME/.racket" | |||
RKTPATH="$RKTROOT/bin" | |||
RKTMAN="$RKTROOT/man" | |||
## Path | |||
CODEPATH="$GOBIN:$RKTPATH" | |||
GLOBALPATH="/usr/local/sbin/:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin" | |||
LOCALPATH="$HOME/.local/bin:$HOME/.bin:$HOME/bin" | |||
export PATH="$GLOBALPATH:$LOCALPATH:$CODEPATH" | |||
## Man | |||
PROGMAN="$RKTMAN" | |||
GLOBALMAN="/usr/man:/usr/share/man:/usr/local/man:/usr/local/share/man" | |||
LOCALMAN="$HOME/.local/man:$HOME/.local/share/man" | |||
export MANPATH="$GLOBALMAN:$LOCALMAN:$PROGMAN" | |||
if [ $(whoami) != 'root' ]; then | |||
## Create missing directories | |||
[ -d $HOME/Documents ] || mkdir $HOME/Documents | |||
[ -d $HOME/Downloads ] || mkdir $HOME/Downloads | |||
[ -d $HOME/Music ] || mkdir $HOME/Music | |||
[ -d $HOME/Pictures ] || mkdir $HOME/Pictures | |||
[ -d $HOME/Projects ] || mkdir $HOME/Projects | |||
[ -d $HOME/Templates ] || mkdir $HOME/Templates | |||
[ -d $HOME/Videos ] || mkdir $HOME/Videos | |||
## Add missing configuration | |||
[ ! -e $HOME/.xinitrc ] && cp /etc/xinitrc $HOME/.xinitrc | |||
fi |
@@ -1,9 +1,104 @@ | |||
#!/bin/env sh | |||
gein-update() { | |||
emerge --sync | |||
emerge -av -uDN @system | |||
emerge -av -uDN @world | |||
emerge -av depclean | |||
revdep-rebuild -av | |||
# /etc/profile.d/gein.sh | |||
gein() { | |||
if [ $EUID -ne 0 ]; then | |||
echo "gein: Current user has insufficient permissions" | |||
if [ -e $(command -v sudo) ]; then | |||
echo "gein: Found 'sudo' to proceed" | |||
SU="sudo" | |||
else | |||
echo "gein: Fallback to 'su' to proceed" | |||
SU="su -c" | |||
fi | |||
fi | |||
case $1 in | |||
sync|-s) | |||
$SU emerge -v --sync | |||
;; | |||
install|-i) | |||
$SU emerge -av --quiet-build ${@:2} | |||
;; | |||
remove|-r) | |||
$SU emerge -avc --quiet-build ${@:2} && \ | |||
$SU revdep-rebuild -q | |||
;; | |||
update|-u) | |||
$SU emerge -avuDU \ | |||
--keep-going --with-bdeps=y --quiet-build @world && \ | |||
$SU revdep-rebuild -q | |||
;; | |||
upgrade|-U) | |||
$SU emerge -avuDN --quiet-build @system && \ | |||
$SU revdep-rebuild -q | |||
;; | |||
clean|-c) | |||
$SU emerge -avuDN --quiet-build @world && \ | |||
$SU eclean --deep distfiles && \ | |||
$SU revdep-rebuild -q | |||
;; | |||
purge|-p) | |||
$SU gein -r $(qlist -CI ${@:2}) | |||
$SU revdep-rebuild -q | |||
;; | |||
reconfig|-R) | |||
Source="https://raw.githubusercontent.com/Gein/GeinOS/master" | |||
Files=" | |||
/etc/portage/repos.conf/gentoo.conf | |||
/etc/portage/make.conf | |||
/etc/portage/package.accept_keywords | |||
/etc/portage/package.env | |||
/etc/portage/package.license | |||
/etc/portage/package.use | |||
/etc/profile | |||
/etc/profile.d/alias.sh | |||
/etc/profile.d/gein.sh | |||
/etc/profile.d/environment.sh | |||
/etc/Xresources | |||
/etc/emacs/default.el | |||
/etc/i3/config | |||
/etc/sudoers | |||
/etc/tmux.conf | |||
/etc/vimrc | |||
/etc/xinitrc | |||
" | |||
echo "gein: WARNING: This will overwrite the following scripts:" | |||
for cfg in $Files; do echo $cfg; done | |||
read -ep "Proceed with replacing configurations? [Y/N]: " Proceed | |||
if echo $Proceed | grep -iq "^n"; then exit; fi | |||
MakeOpts=`grep MAKEOPTS /etc/portage/make.conf|sed 's/.*MAKEOPTS=//'` | |||
VideoCards=`grep VIDEO_CARDS /etc/portage/make.conf|sed 's/.*VIDEO_CARDS=//'` | |||
for cfg in $Files; do | |||
$SU wget -q $Source/$cfg -O $cfg | |||
done | |||
$SU sed -i "s/MAKEOPTS=.*/MAKEOPTS=$MakeOpts/g; | |||
s/VIDEO_CARDS=.*/VIDEO_CARDS=$VideoCards/g" \ | |||
/etc/portage/make.conf | |||
unset Source MakeOpts VideoCards | |||
;; | |||
*) | |||
echo "gein: Available options:" | |||
echo " -c, clean Remove unneeded packages" | |||
echo " -i, install Install a package" | |||
echo " -p, purge Remove unneeded packages" | |||
echo " -r, remove Safely remove a package" | |||
echo " -s, sync Sync portage" | |||
echo " -u, update Update @world without rebuild" | |||
echo " -U, upgrade Update @system and @world with rebuild" | |||
echo " -C config Get latest configuration files" | |||
;; | |||
esac | |||
} |
@@ -1,6 +1,97 @@ | |||
# /etc/sudoers | |||
## sudoers file. | |||
## | |||
## This file MUST be edited with the 'visudo' command as root. | |||
## Failure to use 'visudo' may result in syntax or file permission errors | |||
## that prevent sudo from running. | |||
## | |||
## See the sudoers man page for the details on how to write a sudoers file. | |||
## | |||
## | |||
## Host alias specification | |||
## | |||
## Groups of machines. These may include host names (optionally with wildcards), | |||
## IP addresses, network numbers or netgroups. | |||
# Host_Alias WEBSERVERS = www1, www2, www3 | |||
## | |||
## User alias specification | |||
## | |||
## Groups of users. These may consist of user names, uids, Unix groups, | |||
## or netgroups. | |||
# User_Alias ADMINS = millert, dowdy, mikef | |||
## | |||
## Cmnd alias specification | |||
## | |||
## Groups of commands. Often used to group related commands together. | |||
# Cmnd_Alias PROCESSES = /usr/bin/nice, /bin/kill, /usr/bin/renice, \ | |||
# /usr/bin/pkill, /usr/bin/top | |||
# Cmnd_Alias REBOOT = /sbin/halt, /sbin/reboot, /sbin/poweroff | |||
## | |||
## Defaults specification | |||
## | |||
## You may wish to keep some of the following environment variables | |||
## when running commands via sudo. | |||
## | |||
## Locale settings | |||
# Defaults env_keep += "LANG LANGUAGE LINGUAS LC_* _XKB_CHARSET" | |||
## | |||
## Run X applications through sudo; HOME is used to find the | |||
## .Xauthority file. Note that other programs use HOME to find | |||
## configuration files and this may lead to privilege escalation! | |||
# Defaults env_keep += "HOME" | |||
## | |||
## X11 resource path settings | |||
# Defaults env_keep += "XAPPLRESDIR XFILESEARCHPATH XUSERFILESEARCHPATH" | |||
## | |||
## Desktop path settings | |||
# Defaults env_keep += "QTDIR KDEDIR" | |||
## | |||
## Allow sudo-run commands to inherit the callers' ConsoleKit session | |||
# Defaults env_keep += "XDG_SESSION_COOKIE" | |||
## | |||
## Uncomment to enable special input methods. Care should be taken as | |||
## this may allow users to subvert the command being run via sudo. | |||
# Defaults env_keep += "XMODIFIERS GTK_IM_MODULE QT_IM_MODULE QT_IM_SWITCHER" | |||
## | |||
## Uncomment to use a hard-coded PATH instead of the user's to find commands | |||
# Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" | |||
## | |||
## Uncomment to send mail if the user does not enter the correct password. | |||
# Defaults mail_badpass | |||
## | |||
## Uncomment to enable logging of a command's output, except for | |||
## sudoreplay and reboot. Use sudoreplay to play back logged sessions. | |||
# Defaults log_output | |||
# Defaults!/usr/bin/sudoreplay !log_output | |||
# Defaults!/usr/local/bin/sudoreplay !log_output | |||
# Defaults!REBOOT !log_output | |||
## | |||
## Runas alias specification | |||
## | |||
## | |||
## User privilege specification | |||
## | |||
root ALL=(ALL) ALL | |||
## Uncomment to allow members of group wheel to execute any command | |||
%wheel ALL=(ALL) ALL | |||
%wheel ALL=(ALL) NOPASSWD: /sbin/poweroff,/sbin/restart,/sbin/shutdown | |||
## Same thing without a password | |||
# %wheel ALL=(ALL) NOPASSWD: ALL | |||
## Uncomment to allow members of group sudo to execute any command | |||
# %sudo ALL=(ALL) ALL | |||
## Uncomment to allow any user to run sudo if they know the password | |||
## of the user they are running the command as (root by default). | |||
# Defaults targetpw # Ask for the password of the target user | |||
# ALL ALL=(ALL) ALL # WARNING: only use this together with 'Defaults targetpw' | |||
## Read drop-in files from /etc/sudoers.d | |||
## (the '#' here does not indicate a comment) | |||
#includedir /etc/sudoers.d |
@@ -0,0 +1,61 @@ | |||
# /etc/tmux.conf | |||
### General ###################################### | |||
## Force reload of config file | |||
unbind r | |||
bind r source-file ~/.tmux.conf | |||
## Terminal | |||
set-option -g xterm-keys on | |||
set -g default-terminal "tmux-256color" | |||
## Keybind preference | |||
setw -g mode-keys vi | |||
set-option -g status-keys vi | |||
set -g mouse on | |||
## Display | |||
set -s escape-time 0 | |||
set-option -g repeat-time 0 | |||
set -g base-index 1 | |||
setw -g pane-base-index 1 | |||
## Activate inner-most session (when nesting tmux) to send commands | |||
bind a send-prefix | |||
## History | |||
set -g history-limit 8192 | |||
### Keybinds ##################################### | |||
## Return to previous window when prefix is pressed twice | |||
bind C-a last-window | |||
bind C-b last-window | |||
## Window cycle/swap | |||
bind e previous-window | |||
bind f next-window | |||
bind E swap-window -t -1 | |||
bind F swap-window -t +1 | |||
bind -n M-[ previous-window | |||
bind -n M-] next-window | |||
## Moving between panes | |||
bind h select-pane -L | |||
bind j select-pane -D | |||
bind k select-pane -U | |||
bind l select-pane -R | |||
bind -n M-h select-pane -L | |||
bind -n M-l select-pane -R | |||
bind -n M-k select-pane -U | |||
bind -n M-j select-pane -D | |||
## Easy split pane commands | |||
unbind '"' | |||
unbind % | |||
bind = split-window -h | |||
bind - split-window -v | |||
bind -n M-= split-window -h | |||
bind -n M-- split-window -v |
@@ -0,0 +1,171 @@ | |||
" /etc/vimrc | |||
""" Vim-Plug ==================================== | |||
if empty(glob('~/.vim/autoload/plug.vim')) | |||
silent !curl -fLo ~/.vim/autoload/plug.vim --create-dirs | |||
\ https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim | |||
autocmd VimEnter * PlugInstall --sync | source $MYVIMRC | |||
endif | |||
call plug#begin('~/.vim/plugged') " Minimalist Vim Plugin Manager | |||
""" Settings ==================================== | |||
Plug 'tpope/vim-sensible' " Sensible Defaults | |||
set t_BE= " Disable bracketed paste | |||
set nocompatible " be iMproved, required | |||
set nobackup " | |||
set noswapfile " | |||
set termencoding=utf-8 " UTF8 as default encoding | |||
set encoding=utf-8 " ... | |||
set scrolloff=100 | |||
""" Input ======================================= | |||
set mouse=a " Enable mouse support | |||
set clipboard=unnamedplus " Share X11 clipboard | |||
let mapleader = ',' | |||
" | |||
nnoremap <C-h> <C-w>h | |||
nnoremap <C-j> <C-w>j | |||
nnoremap <C-k> <C-w>k | |||
nnoremap <C-l> <C-w>l | |||
" Fold Mappings | |||
inoremap <leader>z <C-O>za | |||
nnoremap <leader>z za | |||
onoremap <leader>z <C-C>za | |||
vnoremap <leader>z zf | |||
" Use <leader>/ to clear search highlight | |||
nmap <silent> <leader>/ :nohlsearch<CR> | |||
" | |||
set pastetoggle=<F2> | |||
set listchars=tab:\|.,trail:.,extends:#,nbsp:. | |||
" Write target file as sudo using 'tee' buffer | |||
function SudoWrite() | |||
w !sudo tee % | |||
endfunction | |||
""" Display ===================================== | |||
Plug 'vim-airline/vim-airline' | |||
Plug 'vim-airline/vim-airline-themes' | |||
let g:airline#extensions#tabline#enabled = 1 | |||
Plug 'edkolev/tmuxline.vim' | |||
let g:tmuxline_powerline_separators = 0 | |||
if has('gui_running') | |||
colorscheme slate | |||
set guifont=Noto\ Mono\ Regular\ 10 | |||
set background=dark | |||
set guioptions-=m "remove menu bar | |||
set guioptions-=T "remove toolbar | |||
set guioptions-=r "remove right-hand scroll bar | |||
set guioptions-=L "remove left-hand scroll bar | |||
endif | |||
""" Utilities =================================== | |||
Plug 'spolu/dwm.vim' " Tiled Window Management | |||
Plug 'Shougo/vimfiler.vim' " Powerful file explorer | |||
Plug 'tpope/vim-eunuch' " Helpers for UNIX | |||
Plug 'tpope/vim-dispatch' " Async Build/Test | |||
Plug 'benmills/vimux' " tmux Integration | |||
Plug 'mileszs/ack.vim' " Enhanced Grepping within Vim | |||
if executable('ag') | |||
let g:ackprg = 'ag --vimgrep' | |||
endif | |||
Plug 'ctrlpvim/ctrlp.vim' " Fuzzy file/buffer/mru/tag/etc finder | |||
let g:ctrlp_map = '<c-p>' | |||
let g:ctrlp_cmd = 'CtrlP' | |||
let g:ctrlp_custom_ignore = { | |||
\ 'dir': '\v[\/]\.(git|hg|svn)$', | |||
\ 'file': '\v\.(exe|so|dll)$', | |||
\ 'link': 'some_bad_symbolic_links', | |||
\ } | |||
let g:ctrlp_user_command = ['.git', 'cd %s && git ls-files -co --exclude-standard'] | |||
Plug 'universal-ctags/ctags' " ctags implementation | |||
Plug 'majutsushi/tagbar' " Displays tags in a window | |||
nmap <F8> :TagbarToggle<CR> | |||
Plug 'francoiscabrol/ranger.vim' | |||
""" Languages =================================== | |||
Plug 'sheerun/vim-polyglot' " Language Support | |||
Plug 'scrooloose/syntastic' " Syntax checking hacks for vim | |||
nmap <leader>c :SyntasticCheck<CR> | |||
set statusline+=%#warningmsg# | |||
set statusline+=%{SyntasticStatuslineFlag()} | |||
set statusline+=%* | |||
let g:syntastic_always_populate_loc_list = 1 | |||
let g:syntastic_auto_loc_list = 1 | |||
let g:syntastic_check_on_open = 1 | |||
let g:syntastic_check_on_wq = 0 | |||
let g:syntastic_error_symbol="S>" | |||
let g:syntastic_style_error_symbol="E>" | |||
let g:syntastic_warning_symbol="W>" | |||
let g:syntastic_style_warning_symbol="W>" | |||
Plug 'fatih/vim-go' " Go development plugin for Vim | |||
let g:go_auto_type_info = 1 | |||
let g:go_highlight_functions = 1 | |||
let g:go_highlight_methods = 1 | |||
let g:go_highlight_structs = 1 | |||
let g:go_highlight_interfaces = 1 | |||
let g:go_highlight_operators = 1 | |||
let g:go_highlight_build_constraints = 1 | |||
let g:go_highlight_extra_types = 1 | |||
""" Editor ====================================== | |||
set tabstop=4 " Tabs are 4 columns | |||
set shiftwidth=4 " ... | |||
set softtabstop=4 " ... | |||
set expandtab " Change tabs to spaces | |||
set list " Show whitespace | |||
set number " Show line numbers | |||
set wrap linebreak nolist | |||
autocmd BufWritePre * %s/\s\+$//e " Delete trailing whitespace on save | |||
Plug 'tpope/vim-sleuth' " Heuristically set buffer options | |||
Plug 'nathanaelkane/vim-indent-guides' " Visaully display indent level | |||
Plug 'junegunn/vim-easy-align' " Easier text alignment | |||
xmap ga <Plug>(EasyAlign) | |||
nmap ga <Plug>(EasyAlign) | |||
Plug 'ervandew/supertab' " Vim insert mode completions with Tab | |||
Plug 'tpope/vim-surround' " Quoting/Parenthesizing made simple | |||
Plug 'junegunn/limelight.vim' " Hyperfocus-writing in Vim | |||
""" Version Control System ====================== | |||
Plug 'airblade/vim-gitgutter' " Show git diff in the gutter | |||
nmap <Leader>ha <Plug>GitGutterStageHunk | |||
nmap <Leader>hr <Plug>GitGutterUndoHunk | |||
Plug 'tpope/vim-fugitive' " Git wrapper | |||
Plug 'tpope/vim-git' " Git integration | |||
Plug 'mattn/gist-vim' " Gist upload (GitHub) | |||
call plug#end() |
@@ -0,0 +1,3 @@ | |||
# /etc/xinitrc | |||
exec i3 |
@@ -1,259 +0,0 @@ | |||
#!/usr/bin/env sh | |||
## Commands | |||
Emerge="emerge -q" | |||
Read="read -ep" | |||
## Gein Settings | |||
Gein_Extras="enable" | |||
Grub_Target="/dev/sda" | |||
Hostname="gein" | |||
Locale="en_US.UTF-8 UTF-8" | |||
Swap_Size="4G" | |||
Time_Zone="America/New_York" | |||
Video_Cards="intel" | |||
## Gentoo Settings | |||
Base_Url="https://raw.githubusercontent.com/jcmdln/gein/master" | |||
#Kernel_Config="$Base_Url/usr/src/linux/4.12-config" | |||
Make_Conf="$Base_Url/etc/portage/make.conf" | |||
#Package_Env="$Base_Url/etc/portage/package.env" | |||
Package_Use="$Base_Url/etc/portage/package.use" | |||
Stage3_Arch="amd64" | |||
Stage3_Date="20171004" | |||
Stage3_Vers="${Stage3_Arch}-musl-vanilla" | |||
Stage3_Url="http://distfiles.gentoo.org/experimental/" | |||
Bootstrap() { | |||
## Confirm the user has setup their disks | |||
echo "Please ensure that you have performed the following: " | |||
echo " - Edited the environment variables at the top of this script." | |||
echo " - Partitioned and mounted your disk(s)." | |||
$Read "Proceed with installation? [Y/N]: " Proceed && \ | |||
if echo $Proceed | grep -iq "^n"; then exit; fi && | |||
## Set time via ntpd | |||
ntpd -q -g && | |||
## Download and extract stage3 tarball | |||
cd /mnt/gentoo && \ | |||
wget ${Stage3_Url}/${Stage3_Arch}/musl/stage3-${Stage3_Vers}-${Stage3_Date}.tar.bz2 && \ | |||
tar xvjpf stage3-*.tar.bz2 --xattrs --numeric-owner && | |||
## Mount hardware devices | |||
mount -t proc /proc /mnt/gentoo/proc && \ | |||
mount --rbind /sys /mnt/gentoo/sys && \ | |||
mount --make-rslave /mnt/gentoo/sys && \ | |||
mount --rbind /dev /mnt/gentoo/dev && \ | |||
mount --make-rslave /mnt/gentoo/dev && | |||
## Setup '/swapfile' | |||
Swap_File="/mnt/gentoo/swapfile" | |||
if [ ! -e $Swap_File ]; then | |||
fallocate -l $Swap_Size $Swap_File && \ | |||
mkswap $Swap_File && \ | |||
chmod 0600 $Swap_File && \ | |||
swapon $Swap_File | |||
fi && | |||
## Configure Portage | |||
if [ ! -z $Make_Conf ]; then | |||
wget $Make_Conf -O /mnt/gentoo/etc/portage/make.conf | |||
fi && \ | |||
if [ ! -z $Package_Use ]; then | |||
rm -rf /mnt/gentoo/etc/portage/package.use && \ | |||
wget $Package_Use -O /mnt/gentoo/etc/portage/package.use | |||
fi && \ | |||
if [ ! -z $Package_Env ]; then | |||
wget $Package_Env -O /mnt/gentoo/etc/portage/package.env | |||
fi && | |||
## Setup Portage mirrors | |||
mkdir -vp /mnt/gentoo/etc/portage/repos.conf && \ | |||
cp -v /mnt/gentoo/usr/share/portage/config/repos.conf \ | |||
/mnt/gentoo/etc/portage/repos.conf/gentoo.conf && \ | |||
cp -vL /etc/resolv.conf /mnt/gentoo/etc/ && | |||
## Add 'gein-extras' script | |||
if [ ! -z $Gein_Extras ]; then | |||
mkdir -vp /mnt/gentoo/usr/local/sbin && \ | |||
wget $Base_URL/usr/local/sbin/gein-extras \ | |||
-O /mnt/gentoo/usr/local/sbin/gein-extras && \ | |||
chmod +x /mnt/gentoo/usr/local/sbin/gein-extras | |||
fi && | |||
## Chroot into '/mnt/gentoo' | |||
cd /mnt/gentoo && \ | |||
printf "#\n# chroot'ing into /mnt/gentoo...\n#\n" && \ | |||
chroot /mnt/gentoo /bin/bash | |||
} | |||
Minimal() { | |||
## Adjust make.conf to store the specified video card and # of CPU cores | |||
sed -i "s/Video_Cards/${Video_Cards}/g; | |||
s/Make_Opts/-j$(grep -c ^processor /proc/cpuinfo)/g" \ | |||
/etc/portage/make.conf && | |||
## Reload profile and update PS1 | |||
source /etc/profile && \ | |||
export PS1="(chroot) $PS1" && | |||
## Sync Portage and select profile | |||
emerge-webrsync && \ | |||
$Emerge --sync && \ | |||
$Emerge app-portage/layman \ | |||
dev-vcs/git && \ | |||
layman -a musl && \ | |||
eselect profile list && \ | |||
$Read "Which profile? [Default is 1]: " Target_Profile && \ | |||
[ -z $Target_Profile ] && Target_Profile="1" | |||
eselect profile set $Target_Profile && \ | |||
$Emerge --update --deep --newuse @world && | |||
## Set desired timezone | |||
echo "${Time_Zone}" > /etc/timezone && \ | |||
emerge --config sys-libs/timezone-data && | |||
## Set desired locales | |||
echo "${Locale}" > /etc/locale.gen && \ | |||
locale-gen && \ | |||
locale -a && \ | |||
eselect locale list && \ | |||
$Read "Target locale: " Target_Locale && \ | |||
eselect locale set ${Target_Locale} && | |||
## Update environment | |||
env-update && \ | |||
source /etc/profile && \ | |||
export PS1="(chroot) $PS1" && | |||
## Emerge/install Linux kernel and modules | |||
$Emerge sys-kernel/gentoo-sources \ | |||
sys-kernel/linux-firmware \ | |||
sys-apps/pciutils \ | |||
sys-kernel/genkernel && \ | |||
if grep -Rqi 'intel' /proc/cpuinfo; then | |||
$Emerge intel-microcode | |||
fi && \ | |||
cd /usr/src/linux && \ | |||
if [ -z $Kernel_Config ]; then | |||
make defconfig && \ | |||
make menuconfig | |||
else | |||
wget $Kernel_config -O /usr/src/linux/.config | |||
fi && \ | |||
make && \ | |||
make modules_install && \ | |||
make install && \ | |||
genkernel --install initramfs && | |||
## Configure '/etc/fstab/' | |||
echo "/swapfile none swap sw 0 0" >> /etc/fstab && \ | |||
nano /etc/fstab && | |||
## Install neworking packages & | |||
$Emerge --noreplace net-misc/netifrc && \ | |||
$Emerge net-misc/dhcpcd && | |||