@@ -0,0 +1 @@ | |||
os.azryn.org |
@@ -0,0 +1,42 @@ | |||
Azryn Software Labs Public License | |||
Version 1.1.0, 2017-10-26 | |||
Copyright (C) 2017 Azryn Software Labs, Inc. <http://www.aswl.org/apl/> | |||
Everyone is permitted to copy and distribute verbatim copies of this | |||
license document, but changing it is not allowed. | |||
Permission is hereby granted, without cost, to any person obtaining a | |||
copy of this software and it's associated files (the "Software"), the | |||
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 | |||
notice, this list of conditions and the following disclaimer. | |||
* Redistributions in binary form must reproduce the above copyright | |||
notice, this list of conditions and the following disclaimer in the | |||
documentation and/or other materials provided with the distribution. | |||
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 two conditions are met: | |||
* 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 | |||
PUBLIC LICENSE of version 3 or later (the "GPLv3"). | |||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |||
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 | |||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
@@ -0,0 +1,44 @@ | |||
AzrynOS is a Linux distribution that uses Gentoo to provide an i3wm desktop. | |||
You may install a basic Gentoo system and proceed to installing the complete | |||
version of AzrynOS if desired: | |||
``` | |||
# Run the following from a Gentoo LiveCD | |||
$ wget -q http://os.aswl.org -O /mnt/gentoo/azryn | |||
$ sh azryn | |||
AzrynOS - i3wm powered Gentoo derivative | |||
help Shows help output | |||
Run in the order listed: | |||
bootstrap Bootstrap the stage3 tarball | |||
minimal Very basic Gentoo install | |||
complete Full AzrynOS installation | |||
cleanup Remove junk created during install | |||
``` | |||
## Warnings | |||
- AzrynOS is not production-ready, proceed with caution. | |||
- This installation relies on the Gentoo Live CD | |||
- In the future, there will be a custom Live CD and/or USB image. | |||
- There is no automatic partitioning process, you will need to manually | |||
partition your disks and mounting them before proceeding. | |||
- Later this will be slightly improved by using partition labels. | |||
- Read the entire script and thumb through the configuration files. | |||
- Some environment variables at the top of the script will need to be | |||
modified. Read the Gentoo Handbook for your intended architecture if | |||
anything is unclear. | |||
## FAQ | |||
- How much about Gentoo will I need to know to use AzrynOS? | |||
- If you have a little bit of Linux experience and can read shell scripts | |||
along with documentation it should be fairly straightforward. | |||
- How long does this take to install? | |||
- About 1-4 hours for the minimal install depending on the hardware it's | |||
being installed to, and expect to spend 4-24 hours for the complete | |||
installation. | |||
- I keep getting boot failures after installing in a VirtualBox VM? | |||
- Yea... You have to remove the virtual optical drive from the boot order | |||
manually in the settings of your VM. Afterwards it should work without | |||
issue. |
@@ -0,0 +1,271 @@ | |||
#!/usr/bin/env sh | |||
# | |||
# Copyright (C) 2017 Azryn Software Labs contact@azryn.org | |||
# This software is licensed under the Azryn Software Labs Public License | |||
# of version 1.1.0 or later. You should have received a copy of the Azryn | |||
# Software Labs Public License along with this program. If not, please | |||
# see https://apl.azryn.org/ for a copy. | |||
# | |||
## Azryn | |||
BaseUrl="https://raw.githubusercontent.com/Azryn/AzrynOS/master" | |||
CPUCores="$(grep -c ^processor /proc/cpuinfo)" | |||
GrubTarget="/dev/sda" | |||
Hostname="azryn" | |||
Locale="en_US.UTF-8 UTF-8" | |||
RootPwd="azryn" | |||
SwapSize="4G" | |||
TimeZone="America/New_York" | |||
VideoCards="intel" | |||
## Kernel | |||
#KernelVersion=`` | |||
#KernelConfig="$Base_Url/usr/src/linux/$KernelVersion.config" | |||
## Portage | |||
MakeConf="$BaseUrl/etc/portage/make.conf" | |||
PackageAcceptKeywords="$BaseUrl/etc/portage/package.accept_keywords" | |||
PackageEnv="$BaseUrl/etc/portage/package.env" | |||
PackageLicense="$BaseUrl/etc/portage/package.license" | |||
PackageUse="$BaseUrl/etc/portage/package.use" | |||
## Stage3 | |||
S3Arch="amd64" | |||
S3Url="http://distfiles.gentoo.org/releases/$S3Arch/autobuilds" | |||
[ ! -x $(command -v curl) ] && \ | |||
Stage3="$S3Url/$(curl -s $S3Url/latest-stage3-$S3Arch.txt|tail -1|awk '{print $1}')" | |||
### Passes ####################################### | |||
Bootstrap() { | |||
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 -ep "Proceed with installation? [Y/N]: " Proceed | |||
if echo $Proceed | grep -iq "^n"; then exit; fi | |||
## If this script isn't in /mnt/gentoo/azryn, cp it now | |||
[ ! -e /mnt/gentoo/azryn ] && \ | |||
cp $0 /mnt/gentoo/azryn | |||
echo "azryn: Ensure we are in /mnt/gentoo" | |||
cd /mnt/gentoo | |||
echo "azryn: Setting system time via ntpd" | |||
ntpd -q -g | |||
echo "azryn: Downloading and extracting Stage3 tarball" | |||
wget -q $Stage3 | |||
tar -xjpf stage3-*.tar.bz2 --xattrs --numeric-owner | |||
echo "azryn: Mounting 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 | |||
echo "azryn: Setting up swapfile" | |||
SwapFile="/mnt/gentoo/swapfile" | |||
if [ ! -e $SwapFile ]; then | |||
fallocate -l $SwapSize $SwapFile && chmod 0600 $SwapFile | |||
mkswap $SwapFile && swapon $SwapFile | |||
echo "/swapfile none swap sw 0 0" >> /mnt/gentoo/etc/fstab | |||
fi | |||
echo "azryn: Downloading portage configuration files" | |||
[ ! -z $MakeConf ] && \ | |||
wget -q $MakeConf -O /mnt/gentoo/etc/portage/make.conf | |||
[ ! -z $PackageAcceptKeywords ] && \ | |||
wget -q $PackageAcceptKeywords \ | |||
-O /mnt/gentoo/etc/portage/package.accept_keywords | |||
[ ! -z $PackageEnv ] && \ | |||
wget -q $PackageEnv -O /mnt/gentoo/etc/portage/package.env | |||
[ ! -z $PackageLicense ] && \ | |||
wget -q $PackageLicense -O /mnt/gentoo/etc/portage/package.license | |||
[ ! -z $PackageUse ] && \ | |||
rm -rf /mnt/gentoo/etc/portage/package.use && \ | |||
wget -q $PackageUse -O /mnt/gentoo/etc/portage/package.use | |||
echo "azryn: Setting up Portage mirrors" | |||
mkdir -vp /mnt/gentoo/etc/portage/repos.conf | |||
wget -q $BaseUrl/etc/portage/repos.conf/gentoo.conf \ | |||
-O /etc/portage/repos.conf/gentoo.conf | |||
cp -vL /etc/resolv.conf /mnt/gentoo/etc/ | |||
printf "#\n# chroot'ing into /mnt/gentoo...\n#\n" | |||
cd /mnt/gentoo | |||
chroot /mnt/gentoo /bin/bash | |||
} | |||
Minimal() { | |||
## Reload profile and update PS1 | |||
source /etc/profile && export PS1="(chroot) $PS1" | |||
echo "azryn: Setting CPU cores and GPU type" | |||
sed -i "s/Video_Cards/$VideoCards/g; s/Make_Opts/-j$CPUCores/g" \ | |||
/etc/portage/make.conf | |||
echo "azryn: Syncing Portage and selecting profile" | |||
emerge -q --sync | |||
eselect profile list | |||
read -ep "Which profile? [Default is 1]: " TargetProfile | |||
[ -z $TargetProfile ] && TargetProfile="1" | |||
eselect profile set $TargetProfile | |||
emerge -quDN @world | |||
echo "azryn: Setting timezone" | |||
echo $TimeZone > /etc/timezone | |||
emerge -q --config sys-libs/timezone-data | |||
echo "azryn: Setting locale" | |||
echo $Locale > /etc/locale.gen | |||
locale-gen && locale -a && eselect locale list | |||
read -ep "Target locale: " TargetLocale | |||
eselect locale set $TargetLocale | |||
## Update environment | |||
env-update && source /etc/profile && export PS1="(chroot) $PS1" | |||
echo "azryn: Emerge/install Linux kernel and modules" | |||
emerge -q \ | |||
sys-kernel/gentoo-sources \ | |||
sys-kernel/linux-firmware \ | |||
sys-apps/pciutils \ | |||
sys-kernel/genkernel \ | |||
net-misc/connman \ | |||
sys-boot/grub:2 | |||
if grep -Rqi 'intel' /proc/cpuinfo; then | |||
echo "azryn: emerging intel-microcode" | |||
emerge -q intel-microcode | |||
fi | |||
echo "azryn: Configuring Linux kernel" | |||
cd /usr/src/linux | |||
if [ -z $KernelConfig ]; then | |||
make defconfig && make menuconfig | |||
else | |||
wget $KernelConfig -O /usr/src/linux/.config | |||
fi | |||
echo "azryn: Compiling Linux kernel, modules, and initramfs" | |||
make -j$CPUCores && make modules_install && make install | |||
genkernel --install initramfs | |||
cd / | |||
echo "azryn: Install netifrc" | |||
emerge -q --noreplace net-misc/netifrc | |||
echo "azryn: Add connman to OpenRC" | |||
rc-update add connman default | |||
echo "azryn: Setting hostname" | |||
echo "hostname=$Hostname" > /etc/conf.d/hostname | |||
echo "azryn: Installing Grub" | |||
grub-install $GrubTarget | |||
grub-mkconfig -o /boot/grub/grub.cfg | |||
echo "azryn: Adding bash configuration" | |||
wget -q $BaseUrl/etc/bash/bashrc -O /etc/bash/bashrc | |||
echo "azryn: Adding profile configuration" | |||
wget -q $BaseUrl/etc/profile -O /etc/profile | |||
wget -q $BaseUrl/etc/profile.d/alias.sh -O /etc/profile.d/alias.sh | |||
wget -q $BaseUrl/etc/profile.d/azryn.sh -O /etc/profile.d/azryn.sh | |||
wget -q $BaseUrl/etc/profile.d/environment.sh -O /etc/profile.d/environment.sh | |||
echo "azryn: Setting root password" | |||
echo $RootPwd | chpasswd | |||
} | |||
Complete() { | |||
emerge -q \ | |||
x11-base/xorg-drivers \ | |||
x11-misc/wmctrl \ | |||
x11-misc/xdotool | |||
## Update environment | |||
env-update && source /etc/profile && export PS1="(chroot) $PS1" | |||
emerge -q \ | |||
app-portage/gentoolkit \ | |||
app-admin/eclean-kernel \ | |||
app-admin/sudo \ | |||
app-editors/emacs \ | |||
app-laptop/laptop-mode-tools \ | |||
app-text/aspell \ | |||
media-fonts/noto \ | |||
media-libs/alsa-lib \ | |||
media-sound/alsa-utils \ | |||
media-video/mpv \ | |||
net-misc/youtube-dl \ | |||
www-client/chromium \ | |||
x11-apps/xbacklight \ | |||
x11-apps/xrandr \ | |||
x11-apps/xset \ | |||
x11-misc/dmenu \ | |||
x11-misc/i3lock \ | |||
x11-misc/i3status \ | |||
x11-misc/xclip \ | |||
x11-terms/gnome-terminal \ | |||
x11-wm/i3 | |||
echo "azryn: Add laptop_mode to OpenRC" | |||
rc-update add laptop_mode default | |||
echo "azryn: Adding userland configuration files" | |||
wget -q $BaseUrl/etc/Xresources -O /etc/Xresources | |||
wget -q $BaseUrl/etc/emacs/default.el -O /etc/emacs/default.el | |||
wget -q $BaseUrl/etc/i3/config -O /etc/i3/config | |||
wget -q $BaseUrl/etc/sudoers -O /etc/sudoers | |||
wget -q $BaseUrl/etc/tmux.conf -O /etc/tmux.conf | |||
wget -q $BaseUrl/etc/vimrc -O /etc/vimrc | |||
wget -q $BaseUrl/etc/xinitrc -O /etc/xinitrc | |||
} | |||
Cleanup() { | |||
echo "azryn: Updating @world and removing unused packages" | |||
emerge -quDN @world | |||
emerge -q --depclean | |||
emerge -quD --changed-use @world | |||
eclean packages | |||
eclean-dist --deep --fetch-restricted | |||
echo "azryn: Removing stage3 tarball" | |||
rm -rf /stage3*.tar.bz2 | |||
} | |||
### Execution #################################### | |||
shopt -s nocasematch | |||
case $1 in | |||
bootstrap) | |||
Bootstrap | |||
;; | |||
minimal) | |||
Minimal | |||
;; | |||
complete) | |||
Complete | |||
;; | |||
cleanup) | |||
Cleanup | |||
;; | |||
*) echo "AzrynOS - i3wm powered Gentoo derivative" | |||
echo " help Shows help output" | |||
echo | |||
echo "Run in the order listed:" | |||
echo " bootstrap Bootstrap the stage3 tarball" | |||
echo " minimal Very basic Gentoo install" | |||
echo " complete Full AzrynOS installation" | |||
echo " cleanup Remove junk created during install" | |||
esac | |||
shopt -u nocasematch |
@@ -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,412 @@ | |||
;; /etc/emacs/default.el | |||
;; Encoding | |||
(setq prefer-coding-system 'utf-8 | |||
set-default-coding-systems 'utf-8 | |||
set-language-environment "UTF-8" | |||
set-locale-environment "en_US.UTF-8") | |||
;; 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)) | |||
;; Startup Hooks | |||
(add-hook 'lisp-mode-hook 'linum-mode) | |||
(add-hook 'prog-mode-hook 'linum-mode) | |||
(add-hook 'text-mode-hook 'linum-mode) | |||
(add-hook 'before-save-hook 'delete-trailing-whitespace) | |||
;; Startup | |||
(setq initial-scratch-message nil | |||
inhibit-splash-screen t | |||
inhibit-startup-buffer-menu t | |||
column-number-mode t | |||
visible-bell t) | |||
;; Get 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")) | |||
;; Set font as 9pt normal monospace | |||
(set-face-attribute | |||
'default nil | |||
:family "Monospace" :weight 'normal | |||
:width 'normal :height 96) | |||
;; Set theme to 'tango-dark' | |||
(load-theme 'tango-dark) | |||
;; Autosave/Backups | |||
(setq auto-save-default nil | |||
auto-save-file-name-transforms `((".*" "~/.emacs.d/backup/" t)) | |||
backup-directory-alist `((".*" . "~/.emacs.d/backup/")) | |||
create-lockfiles nil | |||
delete-by-moving-to-trash t | |||
delete-old-versions t | |||
delete-selection-mode t | |||
kept-new-versions 2 | |||
vc-follow-symlinks t | |||
vc-make-backup-files t | |||
version-control t) | |||
;; Cut/Paste | |||
(setq require-final-newline t | |||
save-interprogram-paste-before-kill t | |||
select-enable-primary nil) | |||
;; Indentation | |||
(setq c-basic-offset 2 | |||
cperl-indent-level 2 | |||
js-indent-level 2 | |||
indent-tabs-mode nil | |||
tab-width 2) | |||
;; Mouse | |||
(setq mouse-wheel-follow-mouse 't | |||
mouse-wheel-progressive-speed nil | |||
mouse-wheel-scroll-amount '(3 ((shift) . 3)) | |||
mouse-yank-at-point t) | |||
;; Scrolling | |||
(setq 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) | |||
;; 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) | |||
;; 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")))) | |||
(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 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 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 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,190 @@ | |||
# /etc/i3/config | |||
### Startup ###################################### | |||
## disable dpms | |||
exec xset s off -dpms | |||
## Set font | |||
font pango:Dejavu Sans Mono 9 | |||
bar { | |||
position top | |||
status_command i3status | |||
} | |||
### Applications ################################# | |||
## Modifier Key | |||
set $mod Mod4 | |||
## Application Menu | |||
bindsym $mod+d exec dmenu_run | |||
## Terminal Emulator | |||
bindsym $mod+Return exec dbus-launch gnome-terminal | |||
### Multimedia Keys ############################## | |||
## 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 | |||
## Brightness (xbacklight) | |||
bindsym XF86MonBrightnessUp exec --no-startup-id xbacklight -inc 15 | |||
bindsym XF86MonBrightnessDown exec --no-startup-id xbacklight -dec 15 | |||
## Brightness (brightnessctl) | |||
# bindsym XF86MonBrightnessUp exec --no-startup-id brightnessctl set 5%+ | |||
# bindsym XF86MonBrightnessDown exec --no-startup-id brightnessctl set 5%- | |||
### Menus ######################################## | |||
## Display | |||
# This section should serve as an example of how to configure your | |||
# display settings for use with multiple setups/devices. | |||
set $mode_display Home (h), Laptop (l) | |||
bindsym $mod+Shift+d mode "$mode_display" | |||
mode "$mode_display" { | |||
bindsym h exec xrandr \ | |||
--output LVDS1 --primary --mode 1366x768 --pos 554x1080 --rotate normal \ | |||
--output HDMI1 --mode 1920x1080 --pos 0x0 --rotate normal \ | |||
--output DP-1 --off \ | |||
--output VGA-1 --off, mode "default" | |||
bindsym l exec xrandr \ | |||
--output LVDS1 --primary --mode 1366x768 --pos 0x0 --rotate normal \ | |||
--output HDMI1 --off \ | |||
--output DP1 --off \ | |||
--output VGA1 --off, mode "default" | |||
bindsym Return mode "default" | |||
bindsym Escape mode "default" | |||
} | |||
## Reload | |||
set $mode_reload Reload i3 config (r), Live restart of i3 (Shift+r) | |||
bindsym $mod+Shift+r mode "$mode_reload" | |||
mode "$mode_reload" { | |||
bindsym r reload | |||
bindsym Shift+r restart | |||
bindsym Return mode "default" | |||
bindsym Escape mode "default" | |||
} | |||
## State | |||
set $Locker xset s 10 dpms 10 && i3lock -c 3f3f3f -n && xset s off -dpms | |||
set $mode_system Lock (l), Logout (e), Reboot (r), Shutdown (s) | |||
bindsym $mod+Home mode "$mode_system" | |||
mode "$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 Return mode "default" | |||
bindsym Escape mode "default" | |||
} | |||
## 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 Return mode "default" | |||
bindsym Escape mode "default" | |||
} | |||
### Keybinds ##################################### | |||
## 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 | |||
## Window splitting | |||
bindsym $mod+h split h | |||
bindsym $mod+v split v | |||
## Fullscreen focused container | |||
bindsym $mod+f fullscreen toggle | |||
## Cycle frame layout | |||
bindsym $mod+s layout stacking | |||
bindsym $mod+w layout tabbed | |||
bindsym $mod+e layout toggle split | |||
## Toggle floating on focused frame | |||
bindsym $mod+Shift+space floating toggle | |||
## Change focus between tiling / floating windows | |||
bindsym $mod+space focus mode_toggle | |||
## Focus the parent container | |||
bindsym $mod+a focus parent | |||
## 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 | |||
## Kill focused window | |||
bindsym $mod+Shift+q kill | |||
## Drag floating windows with Mouse+$mod | |||
floating_modifier $mod |
@@ -0,0 +1,24 @@ | |||
# /etc/portage/make.conf | |||
# System | |||
CHOST="x86_64-pc-linux-gnu" | |||
GENTOO_MIRRORS="https://mirrors.kernel.org/gentoo/" | |||
# Portage | |||
PORTDIR="/usr/portage" | |||
DISTDIR="${PORTDIR}/distfiles" | |||
PKGDIR="${PORTDIR}/packages" | |||
# Hardware | |||
INPUT_DEVICES="libinput" | |||
CPU_FLAGS_X86="mmx mmxext sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" | |||
VIDEO_CARDS="Video_Cards" | |||
# Language | |||
LINGUAS="en_US" | |||
L10N="en-US" | |||
# Compilation | |||
MAKEOPTS="Make_Opts" | |||
CFLAGS="-march=native -O3" | |||
CXXFLAGS="${CFLAGS}" |
@@ -0,0 +1,6 @@ | |||
# /etc/portage/package.accept_keywords | |||
lxqt-base/* | |||
media-gfx/lximage-qt | |||
x11-misc/obconf-qt | |||
x11-misc/pcmanfm-qt |
@@ -0,0 +1 @@ | |||
# /etc/portage/package.env |
@@ -0,0 +1 @@ | |||
# /etc/portage/package.license |
@@ -0,0 +1,157 @@ | |||
# /etc/portage/package.use | |||
*/* -aqua -avahi -bindist -doc -gnome-keyring -llvm -offensive -multilib -pulseaudio -sslv3 -static -static-libs -systemd -tls-heartbeat alsa deblob ipv6 minimal threads unicode | |||
app-admin/sudo -gcrypt -openssl sendmail | |||
app-arch/bzip2 abi_x86_32 | |||
app-arch/file-roller | |||
app-editors/emacs X acl alsa gof gtk3 gzip-el imagemagick inotify jpeg libxml2 png sound ssl svg threads tiff xft xpm xwidgets zlib -athena -games -gtk | |||
app-editors/vim X -perl -python -racket -tcl | |||
app-emacs/emacs-common-gentoo X -games | |||
app-emulation/qemu sdl2 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-text/ghostscript-gpl cups | |||
app-text/poppler cairo | |||
app-text/xmlto text | |||
dev-cpp/cairomm 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-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 icu 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-qt/qtnetwork connman | |||
dev-util/geany gtk3 vte | |||
dev-util/pkgconfig abi_x86_32 | |||
dev-vcs/git -gpg | |||
gnome-base/librsvg abi_x86_32 | |||
kde-plasma/breeze X wayland | |||
lxqt-base/lxqt-meta about admin filemanager icons lximage minimal powermanagement sddm | |||
mail-client/thunderbird lightning system-cairo system-harfbuzz system-icu system-jpeg system-libevent system-libvpx system-sqlite | |||
media-fonts/noto X cjk | |||
media-gfx/feh curl exif cinerma | |||
media-gfx/gimp smp | |||
media-gfx/graphite2 abi_x86_32 | |||
media-gfx/inkscape imagemagick jpeg 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 abi_x86_32 dri3 vaapi vdpau | |||
media-libs/openal abi_x86_32 | |||
media-plugins/alsa-plugins 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 blueray chromium gme hevc libass mp3 network ogg openh264 openssl opus rtmp sdl theora vorbis vpx x264 x265 xvid wavpack zlib | |||
media-video/mpv jpeg libass libmpv opengl | |||
net-libs/libasyncns abi_x86_32 | |||
net-misc/connman bluetooth ethernet openvpn wifi | |||
net-misc/curl abi_x86_32 | |||
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 | |||
sys-devel/gcc cxx nls nplt | |||
sys-devel/gettext abi_x86_32 | |||
sys-devel/llvm abi_x86_32 clang | |||
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/libcxx libcxxabi | |||
sys-libs/ncurses abi_x86_32 | |||
sys-libs/readline abi_x86_32 | |||
sys-libs/zlib abi_x86_32 minizip | |||
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 | |||
www-client/chromium -proprietary-codecs cups hangouts system-ffmpeg system-icu system-libvpx | |||
www-plugins/adobe-flash ppapi | |||
x11-base/xorg-drivers libinput | |||
x11-base/xorg-server -minimal | |||
x11-drivers/nvidia-drivers x86_video_abi multilib | |||
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-intel-driver abi_x86_32 | |||
x11-libs/libva-vdpau-driver abi_x86_32 | |||
x11-libs/libvdpau 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-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/gnome-terminal -gnome-shell -nautilus | |||
x11-terms/rxvt-unicode 256-color blink fading-colors font-styles mousewheel perl pixbuf unicode3 xft |
@@ -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 |
@@ -0,0 +1,12 @@ | |||
# /etc/profile | |||
if [ -e /etc/profile.env ] ; then | |||
. /etc/profile.env | |||
fi | |||
umask 022 | |||
for sh in /etc/profile.d/*.sh; do | |||
[ -r "$sh" ] && . "$sh" | |||
done | |||
unset sh |
@@ -0,0 +1,76 @@ | |||
# /etc/profile.d/alias.sh | |||
## cd | |||
mkcd() { | |||
mkdir -vp $1; cd $1 | |||
} | |||
## cp | |||
alias cp="cp -ip" | |||
alias cr="cp -ir" | |||
## curl | |||
alias hurl="curl -f#LO" | |||
## df | |||
alias df="df -h" | |||
alias di="df -hi" | |||
## dig | |||
alias dit="dig +noall +nocmd +answer +multiline" | |||
## du | |||
alias du="du -hs ./*" | |||
## 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 $@" | |||
## more | |||
alias more="less" | |||
## mv | |||
alias mv="mv -i" | |||
## nano | |||
alias nano="nano -EOSWcimx" | |||
## ps | |||
alias pss="ps -af | head -1; ps -af | grep -v grep" | |||
alias psw="watch 'ps -af | sort -hrk4'" | |||
## rm | |||
alias rf="rm -rf" | |||
alias rm="rm -i" | |||
alias rr="rm -ir" | |||
## screen | |||
alias screen="screen" | |||
## scrot | |||
alias screenshot="scrot -s ~/Pictures/'Screenshot-%Y%m%d'.png" | |||
## tar | |||
mktgz() { | |||
tar -vcfz $1.tar.gz $@ | |||
} | |||
mktxz() { | |||
tar -vcfJ $1.tar.xz $@ | |||
} | |||
alias untar="tar -vxf" | |||
### Extras ####################################### | |||
weather() { | |||
curl http://wttr.in/$1 | |||
} |
@@ -0,0 +1,36 @@ | |||
# /etc/profile.d/azryn.sh | |||
azryn() { | |||
case $1 in | |||
cleanup) | |||
sudo emerge -avc --quiet-build && \ | |||
sudo emerge -avuUD --quiet-build @world && \ | |||
sudo eclean packages && \ | |||
sudo eclean-dist --deep --fetch-restricted | |||
;; | |||
install) | |||
sudo emerge -av --quiet-build ${@:2} | |||
;; | |||
update) | |||
sudo emerge -v --sync | |||
;; | |||
upgrade) | |||
sudo emerge -avuDN --quiet-build @system && \ | |||
sudo emerge -avuDN --quiet-build @world && \ | |||
sudo emerge -avc --quiet-build && \ | |||
sudo revdep-rebuild | |||
;; | |||
*) | |||
echo "azryn: Invalid option: $@" | |||
echo "Available options:" | |||
echo " cleanup Sync portage and remove junk" | |||
echo " install Install a package" | |||
echo " update Sync portage and update" | |||
echo " upgrade Upgrade @system and @world" | |||
;; | |||
esac | |||
} |
@@ -0,0 +1,46 @@ | |||
# /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 | |||
RKTPATH="/usr/racket:/usr/local/racket:$HOME/racket:$HOME/.racket" | |||
RKTBIN="$RKTROOT/bin" | |||
RKTMAN="$RKTROOT/man" | |||
## Path | |||
CODEPATH="$GOBIN:$RKTPATH" | |||
GLOBALPATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/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" | |||
## Create missing user directories | |||
[ ! -e $HOME/Documents ] && mkdir $HOME/Documents | |||
[ ! -e $HOME/Downloads ] && mkdir $HOME/Downloads | |||
[ ! -e $HOME/Images ] && mkdir $HOME/Images | |||
[ ! -e $HOME/Projects ] && mkdir $HOME/Projects | |||
[ ! -e $HOME/Templates ] && mkdir $HOME/Templates | |||
[ ! -e $HOME/Videos ] && mkdir $HOME/Videos | |||
## Add missing user configuration | |||
[ ! -e $HOME/.xinitrc ] && cp /etc/xinitrc $HOME/.xinitrc |
@@ -0,0 +1,97 @@ | |||
## 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 | |||
## 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 |
@@ -0,0 +1,2 @@ | |||
The idea is to maintain a kernel `.config` for each supported branch as they are | |||
released with some general settings that should work in a majority of use-cases. |