Browse Source

Remove non-standard configuration

master
jcmdln 1 year ago
parent
commit
0c47133b8d

+ 7
- 9
Readme.md View File

@@ -6,11 +6,9 @@ Installation. This repository contains the following:
* The installation script
* This is the only script that performs any installation tasks.
* `etc/`
* Configuration files
* I've placed my own personal configurations here to suit my needs,
though feel free to use, replace, or remove them.
* `usr/local/gein`
* This folder contains some helpful scripts
* Configuration files for Portage
* `usr/local/sbin`
* This folder contains some "helpful" scripts
* `gpkg`
* emerge front-end for managing packages
* Not needed at all. Think of this as a set of aliases in the form
@@ -55,10 +53,10 @@ to remain somewhat agnostic when possible.
* Very little to get Gentoo installed, but you'll need to understand
how Gentoo and Portage work to maintain the system. As long as you
can follow this Readme, then you can use `gein` without much thought.
* Because I have configured Portage for my own needs, this may cause
pain later on, such as when attempting to install a package that I
haven't defined USE flags for. If you aren't familiar with Portage
then you will gradually find yourself further and further at odds
* Because I have configured Portage for my own needs, this may cause
pain later on, such as when attempting to install a package that I
haven't defined USE flags for. If you aren't familiar with Portage
then you will gradually find yourself further and further at odds
with the system unless you read the Gentoo Handbook for your system.
* "I keep getting boot failures after installing in a VirtualBox VM?"
* Remove the virtual disk drive from the boot order and restart.

+ 0
- 5
etc/Xresources View File

@@ -1,5 +0,0 @@
# /etc/Xresources

Xcursor.theme: breeze
Xcursor.size: 16
Xft.dpi: 96

+ 0
- 11
etc/bash/bashrc View File

@@ -1,11 +0,0 @@
# /etc/bash/bashrc

[ -e /etc/profile ] && source /etc/profile

if [ -v "$(command -v shopt)" ]; then
shopt -s checkwinsize
shopt -s no_empty_cmd_completion
shopt -s histappend
fi

unset sh

+ 0
- 566
etc/emacs/default.el View File

@@ -1,566 +0,0 @@
;;; /etc/emacs/default.el

;;;
;;; Startup
;;;

;; Inhibit things
(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))
(setq initial-scratch-message nil
inhibit-splash-screen t
inhibit-startup-buffer-menu t)

;; Load theme and set font face
(load-theme 'tango-dark)
(set-face-attribute 'default nil :family "Monospace" :height 96)

;; Force using UTF-8
(setq prefer-coding-system 'utf-8
set-default-coding-systems 'utf-8
set-language-environment "UTF-8"
set-locale-environment "en_US.UTF-8")

;; Load and set environment variables
(setenv "EDITOR" "emacsclient")
(setenv "GIT_EDITOR" "emacsclient")
(setenv "GOPATH" (getenv "GOPATH"))
(setenv "GOBIN" (getenv "GOBIN"))
(setenv "MANPATH" (getenv "MANPATH"))
(setenv "PATH" (getenv "PATH"))
(setenv "PROMPT_COMMAND" "")
(setenv "SHELL" (getenv "SHELL"))
(setenv "TERM" (getenv "TERM"))

;; Scrolling
(setq auto-window-vscroll nil
scroll-conservatively 101
scroll-margin 0
scroll-preserve-screen-position 1
scroll-step 1
scroll-up-aggressively 0.0
scroll-down-aggressively 0.0)

;; Misc
(add-hook 'after-init-hook
(lambda()
(show-paren-mode t)
(fset 'yes-or-no-p 'y-or-n-p)))

(setq custom-file "~/.emacs.d/custom.el"
require-final-newline t
save-interprogram-paste-before-kill t
select-enable-primary nil
visible-bell nil)


;;;
;;; Input
;;;

;; Split vertically and switch to frame using "-"
(global-set-key (kbd "M--")
(lambda() (interactive)
(split-window-vertically)
(other-window 1 nil)
(switch-to-next-buffer)))

;; Split horizontally and switch to frame using "+"
(global-set-key (kbd "M-=")
(lambda() (interactive)
(split-window-horizontally)
(other-window 1 nil)
(switch-to-next-buffer)))

;; Additional frame movement keys
(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)

;; Mouse
(setq mouse-wheel-follow-mouse 't
mouse-wheel-progressive-speed nil
mouse-wheel-scroll-amount '(1 ((shift) . 1))
mouse-yank-at-point t
xterm-mouse-mode t)

;; Set scroll "speed"
(global-set-key (kbd "<mouse-4>") (lambda() (interactive) (scroll-down-line 3)))
(global-set-key (kbd "<mouse-5>") (lambda() (interactive) (scroll-up-line 3)))


;;
;; Package Management
;;

;; Require built-in package manager
(require 'package)

;; Set package repositories and priority before initializing
(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
'(("GNU ELPA" . 1)
("MELPA Stable" . 2)
("MELPA" . 0)))
(package-initialize)

;; Install use-package if missing
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))

;; Ensure that use-package and bind-key are loaded
(eval-when-compile
(require 'use-package)
(require 'bind-key))

;; Configure use-package
(setq use-package-always-defer t
use-package-always-ensure t
use-package-check-before-init t)


;;;
;;; Utilities
;;;

(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 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-minibuffer-history)
("C-x C-f" . counsel-find-file)
("C-x l" . counsel-locate)
("M-x" . counsel-M-x)))

(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 ibuffer
:bind (("C-x C-b" . ibuffer)
("<C-tab>" . next-buffer)
("<C-iso-lefttab>" . previous-buffer))
:config
(add-hook 'ibuffer-hook
(lambda()
(ibuffer-auto-mode)
(ibuffer-do-sort-by-alphabetic)
(ibuffer-do-sort-by-major-mode))))

(use-package linum
:demand t
:config
(add-hook 'lisp-mode-hook 'linum-mode)
(add-hook 'prog-mode-hook 'linum-mode)
(add-hook 'text-mode-hook 'linum-mode)
(setq linum-delay t)
(global-visual-line-mode t))

(use-package no-littering
:demand t
:config
(setq auto-save-file-name-transforms
`((".*" ,(no-littering-expand-var-file-name "auto-save/") t))))

(use-package org-beautify-theme
:bind (("C-c l" . org-store-link)
("C-c a" . org-agenda)
("C-c C-c" . org-capture)
("C-c b" . org-switchb))
:config
(add-hook 'org-mode-hook (lambda() (load-theme 'org-beautify))))

(use-package package-utils
:demand t)

(use-package rainbow-delimiters
:demand t
: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 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)
(if (y-or-n-p "Kill Emacs without saving? ")
(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 smartparens
:demand t
: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
:demand t
:bind ("C-s" . swiper))

(use-package undo-tree
:demand t
:config (global-undo-tree-mode))

(use-package xclip
:config (xclip-mode 1))


;;;
;;; Applications
;;;

(use-package circe
:config
(defun my-circe-message-option-chanserv (nick user host command args)
(when (and (string= "ChanServ" nick)
(string-match "^\\[#.+?\\]" (cadr args)))
'((dont-display . t))))

(add-hook 'circe-message-option-functions 'my-circe-message-option-chanserv)
(add-hook 'circe-chat-mode-hook
(lambda() (lui-set-prompt
(concat (propertize (concat (buffer-name) ":")
'face 'circe-prompt-face) " "))))
(add-hook 'lui-mode-hook
(lambda()
(setq fringes-outside-margins t
left-margin-width 9
word-wrap t
wrap-prefix "")))

(setq circe-default-part-message ""
circe-default-quit-message ""
circe-format-server-topic "*** Topic: {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-logging-directory "~/.emacs.d/var/circe"
lui-time-stamp-format "%H:%M:%S"
lui-time-stamp-position 'left-margin)

(load "lui-logging" nil t)
(enable-lui-logging-globally)
(require 'circe-chanop)
(enable-circe-color-nicks)
(setf (cdr (assoc 'continuation fringe-indicator-alist)) nil)
(if (file-exists-p "~/.emacs.d/circe.el")
(load-file "~/.emacs.d/circe.el")))

(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 nil
eshell-scroll-to-bottom-on-output nil
eshell-scroll-show-maximum-output nil
eshell-prompt-regexp "^[^#$\n]*[#$] "
eshell-prompt-function
(lambda nil
(concat "[" (user-login-name) "@" (system-name) " "
(if (string= (eshell/pwd) (getenv "HOME"))
"~" (eshell/basename (eshell/pwd))) "]"
(if (= (user-uid) 0) "# " "$ ")))
eshell-visual-commands '("alsamixer" "atop" "htop" "less" "mosh"
"nano" "ssh" "tail" "top" "vi" "vim"
"watch"))

(defun eshell/clear()
(interactive)
(recenter 0))

(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))))

(use-package eww-lnum
:after (eww)
:config
(define-key eww-mode-map "f" 'eww-lnum-follow)
(define-key eww-mode-map "F" 'eww-lnum-universal))

(use-package nov
:config (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode)))

(use-package pdf-tools)

(use-package ranger)

(use-package scratch
:config
(defun scratch-new()
"Open a new scratch buffer."
(interactive)
(switch-to-buffer (generate-new-buffer "*scratch*"))
(lisp-mode)))


;;;
;;; Development
;;;

;; Delete trailing whitespace on save
(add-hook 'before-save-hook 'delete-trailing-whitespace)

;; Comment or uncomment a region
(global-set-key (kbd "C-c c") 'comment-or-uncomment-region)

;; Allow C and C++ modes to read .h headers
(add-hook 'c-mode-hook
(lambda()
(add-to-list 'auto-mode-alist '("\\.h\\'" . c-mode))))
(add-hook 'c++-mode-hook
(lambda()
(add-to-list 'auto-mode-alist '("\\.h\\'" . c++-mode))))

;; Default indent
(setq c-basic-offset 2
column-number-mode t
cperl-indent-level 2
indent-tabs-mode nil
js-indent-level 2
tab-width 2
show-paren-delay 0)

(use-package company
:demand t
:config
(add-hook 'lisp-mode-hook 'company-mode)
(add-hook 'prog-mode-hook 'company-mode)
(add-hook 'text-mode-hook 'company-mode)
(setq company-tooltip-limit 20
company-idle-delay 0.3
company-echo-delay 0
company-begin-commands '(self-insert-command)))

(use-package company-ansible
:after (company ansible-vault))

(use-package company-emoji
:after (company))

(use-package company-go
:after (company))

(use-package company-irony
:after (company irony)
:config
(add-to-list 'company-backends 'company-irony))

(use-package company-irony-c-headers
:after (company irony company-irony)
:config (add-to-list 'company-backends
'(company-irony-c-headers company-irony)))

(use-package company-php :after (company php-mode))

(use-package company-rtags
:after (company)
:config (push 'company-rtags company-backends))

(use-package company-shell
:after (company))

(use-package company-web
:after (company))

(use-package diff-hl
:demand t
:config
(add-hook 'prog-mode-hook 'diff-hl-mode)
(add-hook 'text-mode-hook 'diff-hl-mode))

(use-package flycheck
:demand t
:config (add-hook 'prog-mode-hook 'flycheck-mode))

(use-package flycheck-rtags
:after (rtags flycheck)
:config (add-hook 'prog-mode-hook 'flycheck-mode))

(use-package flyspell
:demand t
: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 gist)

(use-package highlight-indent-guides
:demand t
:config
(add-hook 'prog-mode-hook 'highlight-indent-guides-mode)
(setq highlight-indent-guides-method 'character))

(use-package irony
:demand t
: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))

(use-package magit
:demand t)

(use-package realgud)

(use-package rtags
:config
(add-hook 'c-mode-hook 'rtags-start-process-unless-running)
(add-hook 'c++-mode-hook 'rtags-start-process-unless-running)
(add-hook 'objc-mode-hook 'rtags-start-process-unless-running)
(setq rtags-autostart-diagnostics t
rtags-completions-enabled t
rtags-display-result-backend 'ivy)
(setq-local flycheck-highlighting-mode nil)
(setq-local flycheck-check-syntax-automatically nil)
(rtags-diagnostics))


;;;
;;; Languages
;;;

(use-package ahk-mode)
(use-package android-mode)
(use-package angular-mode)
(use-package ansible-vault)
(use-package apache-mode)
(use-package cmake-mode)
(use-package coffee-mode)
(use-package csharp-mode)
(use-package cuda-mode)
(use-package d-mode)
(use-package dart-mode)
(use-package docker-compose-mode)
(use-package dockerfile-mode)
(use-package dotenv-mode)
(use-package es-mode)
(use-package gitattributes-mode)
(use-package gitconfig-mode)
(use-package gitignore-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)
(set (make-local-variable 'company-backends)
'(company-go))
(company-mode t))))

(use-package gradle-mode)
(use-package json-mode)
(use-package jsx-mode)
(use-package less-css-mode)
(use-package lua-mode)
(use-package markdown-mode)
(use-package markdown-preview-mode)
(use-package meson-mode)
(use-package nginx-mode)
(use-package ninja-mode)
(use-package npm-mode)
(use-package php-mode)
(use-package protobuf-mode)
(use-package qml-mode)
(use-package rjsx-mode)
(use-package rust-mode)
(use-package sass-mode)
(use-package swift-mode)
(use-package systemd)
(use-package typescript-mode)
(use-package vue-mode)
(use-package yaml-mode)

+ 0
- 213
etc/i3/config View File

@@ -1,213 +0,0 @@
# /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 --no-startup-id dmenu_run
bindsym $mod+Return exec --no-startup-id st -f 'Noto Mono:10pt'

## Display
exec --no-startup-id "srandr"


### Appearance ###################################

## Xresources
exec --no-startup-id "xrdb /etc/Xresources"

## 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"
}


#### 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"
}


#### Multimedia ##################################

## 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 (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

## 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 (Sndio)
# bindsym XF86AudioRaiseVolume exec --no-startup-id mixerctl
# bindsym XF86AudioLowerVolume exec --no-startup-id mixerctl
# bindsym XF86AudioMute \
# exec --no-startup-id mixerctl -t outputs.master.mute

## 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 5
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 5

+ 0
- 47
etc/i3status.conf View File

@@ -1,47 +0,0 @@
# /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"
}

+ 0
- 94
etc/profile View File

@@ -1,94 +0,0 @@
# /etc/profile

# Check for an interactive shell and set umask accordingly. Currently the
# threshold for system-reserved uid/guid's is 200 though you may check
# '/usr/share/doc/setup/uidgid' to confirm this is valid.

case $- in
*i*) INTERACTIVE="true" ;;

*)
if [ "$UID" -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
# Mask current process as a daemon
umask 002
else
# Mask current process as an initscript
umask 022
fi

return
esac

# Gentoo has '/etc/profile.env' which needs to be read. Here we will
# check if it exists and source it if found.

[ -e /etc/profile.env ] &&
. /etc/profile.env


# Setting PS1 correctly depending on the current shell can be important
# for users of non-standard shells. Here we will attempt to accommodate
# other shells if currently in use, and default to standard shell
# semantics.

if [ -e "$BASH_VERSION" ]; then
PS1="[\u@\h \W]\$ "
elif [ -e "$ZSH_VERSION" ]; then
PS1="[%n@%M %d]$ "
else
PS1="[\u@\h \W]\$ "
fi


# This section defines all PATH and MANPATH locations and is mean to be a
# somewhat exhaustive list for compatibility across various systems. It
# may look quite upsetting but it works for our purposes.

PATH="/usr/local/sbin/:/usr/local/bin:/usr/sbin:/usr/bin:/opt/bin"
PATH="$PATH:/usr/local/gein:/sbin:/bin:$HOME/.local/bin:$HOME/.bin:$HOME/bin"

MANPATH="/usr/man:/usr/share/man:/usr/local/man:/usr/local/share/man"
MANPATH="$MANPATH:$HOME/.local/man:$HOME/.local/share/man"


# This section defines our exports, including the PATH, MANPATH and PS1
# that we defined in previous sections.

export EDITOR="emacs -nw"
export LANG="en_US.UTF-8"
export MANPATH
export PAGER="less"
export PATH
export PROMPT_COMMAND="history -a"
export PS1
export SSH_KEY_PATH="$HOME/.ssh/rsa_id"
export TERM="xterm-256color"


# This section will find and source all files in '/etc/profile.d' that
# end in '.sh'. This is a mechanism to allow the use of multiple files
# that will comprise environment settings or other configurations.

for sh in /etc/profile.d/*.sh; do
[ -r "$sh" ] &&
. "$sh"
done


# A $USER may want to maintain local shell configuration files. The
# following section attempts to source '$HOME/.profile' along with all
# files within '$HOME/profile.d' that end in '.sh' similarly to the above
# section.

if [ -d "$HOME"/.profile.d ]; then
for sh in $HOME/.profile.d/*.sh; do
[ -r "$sh" ] &&
. "$sh"
done
fi


# Keeping things clean in our shell environment is rather important. Here
# we will unset any variables that are no longer needed.

unset sh

+ 0
- 7
etc/profile.d/alias.sh View File

@@ -1,7 +0,0 @@
# /etc/profile.d/alias.sh

alias df="df -h"
alias ls="ls -hSF"
alias mkdir="mkdir -p"
alias mv="mv -vi"
alias rm="rm -vi"

+ 0
- 13
etc/profile.d/defaults.sh View File

@@ -1,13 +0,0 @@
# /etc/profile.d/defaults.sh

## User Directories
if [ "$(whoami)" != 'root' ]; then
Folders="Documents Downloads Music Pictures Projects Videos"

for Folder in $Folders; do
[ -d "$HOME"/"$Folder" ] ||
mkdir "$HOME"/"$Folder"
done

unset Folders
fi

+ 0
- 8
etc/profile.d/golang.sh View File

@@ -1,8 +0,0 @@
# /etc/profile.d/golang.sh

GOPATH="$HOME/.go"
GOBIN="$GOPATH/bin"
GODOC="$GOPATH/doc"

export GOPATH GOBIN GODOC
export PATH="$PATH:$GOBIN"

+ 0
- 15
etc/profile.d/racket.sh View File

@@ -1,15 +0,0 @@
# /etc/profile.d/racket.sh

RKTPATH="/usr/racket:/usr/local/racket"
RKTPATH="$RKTPATH:$HOME/racket:$HOME/.racket:$HOME/.local/racket"

RKTBIN="/usr/racket/bin:/usr/local/racket/bin"
RKTBIN="$RKTBIN:$HOME/racket/bin:$HOME/.racket/bin:$HOME/.local/racket/bin"

RKTMAN="/usr/racket/man:/usr/local/racket/man"
RKTMAN="$RKTMAN:$HOME/racket/man:$HOME/.racket/man:$HOME/.local/racket/man"

export PATH="$PATH:$RKTBIN"
export MANPATH="$MANPATH:$RKTMAN"

unset RKTPATH RKTBIN RKTMAN

+ 0
- 3
etc/profile.d/rust.sh View File

@@ -1,3 +0,0 @@
# /etc/profile.d/rust.sh

export PATH="$PATH:$HOME/.cargo/bin"

+ 0
- 61
etc/tmux.conf View File

@@ -1,61 +0,0 @@
# /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 b 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
- 179
etc/vim/vimrc View File

@@ -1,179 +0,0 @@
" /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
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 = ','

" Change windows with C-w hjkl
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
"set foldmethod=syntax
"set foldnestmax=10
"set nofoldenable
"set foldlevel=0
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>

" Paste Mode
set pastetoggle=<F2>
set listchars=tab:\|.,trail:.,extends:#,nbsp:.


""" 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 --smart-case'
cnoreabbrev ag Ack
cnoreabbrev aG Ack
cnoreabbrev Ag Ack
cnoreabbrev AG Ack
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+=%*
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', { 'do': ':GoUpdateBinaries' }
let g:syntastic_go_checkers = ['go', 'golint', 'errcheck', 'gov']
let g:go_auto_type_info = 1
let g:go_fmt_command = "gofmt"
let g:go_highlight_build_constraints = 1
let g:go_highlight_extra_types = 1
let g:go_highlight_functions = 1
let g:go_highlight_interfaces = 1
let g:go_highlight_methods = 1
let g:go_highlight_operators = 1
let g:go_highlight_structs = 1

" Auto creates tags for Go source files.
au BufWritePost *.go silent! !ctags -R &


""" 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
let g:SuperTabDefaultCompletionType = "context"

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
- 3
etc/xinitrc View File

@@ -1,3 +0,0 @@
# /etc/xinitrc

exec i3

+ 0
- 22
etc/zsh/zshrc View File

@@ -1,22 +0,0 @@
# ~/.zshrc

### Setup

ZSH="/home/$(whoami)/.oh-my-zsh"
if [ ! -d "$ZSH" ]; then
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
fi

plugins=(git go man)
ZSH_THEME="risto"
COMPLETION_WAITING_DOTS="true"
source "$ZSH"/oh-my-zsh.sh


### Settings

[ -e /etc/profile ] && source /etc/profile

if [ -n "$TMUX" ]; then
unset zle_bracketed_paste
fi

+ 2
- 26
gein.sh View File

@@ -52,25 +52,8 @@ CONFIG() {
/etc/portage/sets/gein-lxqt
/etc/portage/sets/gein-laptop

/etc/profile
/etc/profile.d/alias.sh
/etc/profile.d/defaults.sh
/etc/profile.d/golang.sh
/etc/profile.d/racket.sh

/etc/Xresources
/etc/bash/bashrc
/etc/emacs/default.el
/etc/i3/config
/etc/i3status.conf
/etc/tmux.conf
/etc/vim/vimrc
/etc/xinitrc
/etc/zsh/zshrc

/usr/local/gein/gpkg
/usr/local/gein/kbuild
/usr/local/gein/srandr
/usr/local/sbin/gpkg
/usr/local/sbin/kbuild
"

# Files/Folders that need to be removed and re-created. Sometimes
@@ -78,19 +61,12 @@ CONFIG() {
# be a folder so we'll remove it outright and create what we need.
# Sure, this is wasting a little time, I know.
ConfigFolders="
/etc/bash
/etc/emacs
/etc/i3
/etc/portage/package.use
/etc/portage/sets
/etc/profile.d
/etc/zshrc
/usr/local/gein
"

for Folder in $ConfigFolders; do
[ -f "$Folder" ] && rm "$Folder"
[ -d "$Folder" ] && rm -rf "$Folder"/
[ ! -d "$Folder" ] && mkdir -p "$Folder"
done


+ 0
- 45
usr/local/gein/srandr View File

@@ -1,45 +0,0 @@
#!/usr/bin/env sh

## Example ~/.display.sh Configuration
#
# #!/usr/bin/env sh
# DisplayConfigs="LVDS1 VGA1"
# LVDS1() {
# xrandr --output LVDS1 --auto
# }
# VGA1() {
# xrandr --output VGA1 --auto --above LVDS1
# }

Displays=""

while :; do
if [[ $DISPLAY ]]; then
CDisplays=$(xrandr | grep ' connected' | awk '{print $1}')
DDisplays=$(xrandr | grep 'disconnected' | awk '{print $1}')

if [ "$Displays" != "$CDisplays" ]; then
for display in $CDisplays; do
if [ -e "$HOME/.display.sh" ]; then
. "$HOME/.display.sh"

for config in $DisplayConfigs; do
if [ "$display" == "$config" ]; then
$config
fi
done
else
xrandr --output "$display" --auto
fi
done

for display in $DDisplays; do
xrandr --output "$display" --off
done

Displays="$Connected"
fi
fi

sleep 5
done

usr/local/gein/gpkg → usr/local/sbin/gpkg View File


usr/local/gein/kbuild → usr/local/sbin/kbuild View File


Loading…
Cancel
Save