aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README2
-rwxr-xr-xbuild.sh31
-rwxr-xr-xconfig.sh14
-rw-r--r--home/.config/i3/config172
-rw-r--r--home/.profile5
-rw-r--r--home/.vimrc7
-rw-r--r--home/.xinitrc4
-rw-r--r--home/.zprofile7
-rw-r--r--home/.zshrc3
-rwxr-xr-xinstall.sh49
-rwxr-xr-xmod.sh5
-rw-r--r--packages63
-rwxr-xr-xregional.sh8
-rw-r--r--services3
-rwxr-xr-xsource.sh14
-rw-r--r--src/etc/X11/xorg.conf.d/10-monitor.conf6
-rw-r--r--src/etc/sudoers.d/wheel2
-rw-r--r--src/etc/wpa_supplicant/wpa_supplicant.conf7
18 files changed, 402 insertions, 0 deletions
diff --git a/README b/README
index d7da047..59f9450 100644
--- a/README
+++ b/README
@@ -1,3 +1,5 @@
# dotfiles
My dotfiles in an attempt to organize and make portable my Arch setup.
+Run `install.sh` after having connected to internet on archiso. This
+will copy and run `build.sh`, which will in turn run the other scripts.
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..62f5101
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+if [ ! -e work/pacman ]; then
+ touch work/pacman
+ yes | pacman -Syu --needed $(cat packages | xargs echo)
+fi
+cat services | xargs systemctl enable
+
+ip link
+export USER=czar
+grep "$USER" /etc/passwd || useradd -m $USER
+usermod $USER -aG wheel -s /bin/zsh
+timedatectl set-ntp true
+echo | sudo -u czar ssh-keygen
+
+sh regional.sh # Region specific setup
+hwclock --systohc
+
+passwd
+
+sh mod.sh
+ip link
+echo -n "wpa_supplicant@"
+read INTER
+systemctl enable wpa_supplicant@$INTER
+
+sh source.sh
+sh config.sh
+
+grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
+grub-mkconfig -o /boot/grub/grub.cfg
+mkinitcpio -P
diff --git a/config.sh b/config.sh
new file mode 100755
index 0000000..c15bcc1
--- /dev/null
+++ b/config.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+# Exports config files
+
+for file in $(find src -type f); do
+ export clean=$(echo $file | cut -c 4-) #Removes src prefix
+ install -d $(dirname $clean)
+ install -m 644 $file $clean
+done
+
+for file in $(find home -type f); do
+ export clean=/home/$USER/$(echo $file | cut -c 4-)
+ install -o $USER -d $(dirname $clean)
+ install -o $USER $file $clean
+done
diff --git a/home/.config/i3/config b/home/.config/i3/config
new file mode 100644
index 0000000..c4f4de9
--- /dev/null
+++ b/home/.config/i3/config
@@ -0,0 +1,172 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout some time, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see https://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod4
+
+bindsym $mod+b exec firefox
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below.
+font pango:monospace 8
+
+# This font is widely installed, provides lots of unicode glyphs, right-to-left
+# text rendering and scalability on retina/hidpi displays (thanks to pango).
+#font pango:DejaVu Sans Mono 8
+
+# The combination of xss-lock, nm-applet and pactl is a popular choice, so
+# they are included here as an example. Modify as you see fit.
+
+# xss-lock grabs a logind suspend inhibit lock and will use i3lock to lock the
+# screen before suspend. Use loginctl lock-session to lock your screen.
+exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
+
+# NetworkManager is the most popular way to manage wireless networks on Linux,
+# and nm-applet is a desktop environment-independent system tray GUI for it.
+exec --no-startup-id nm-applet
+
+# Use pactl to adjust volume in PulseAudio.
+set $refresh_i3status killall -SIGUSR1 i3status
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
+bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+bindsym $mod+Return exec st
+
+# kill focused window
+bindsym $mod+Shift+q kill
+
+# start dmenu (a program launcher)
+bindsym $mod+space exec dmenu_run
+# There also is the (new) i3-dmenu-desktop which only displays applications
+# shipping a .desktop file. It is a wrapper around dmenu, so you need that
+# installed.
+# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
+
+# change focus
+bindsym $mod+h focus left
+bindsym $mod+t focus down
+bindsym $mod+n focus up
+bindsym $mod+s focus right
+
+# move focused window
+bindsym $mod+Shift+h move left
+bindsym $mod+Shift+t move down
+bindsym $mod+Shift+n move up
+bindsym $mod+Shift+s move right
+
+# split in horizontal orientation
+bindsym $mod+u split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+f fullscreen toggle
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+p layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+d focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# Define names for default workspaces for which we configure key bindings later on.
+# We use variables to avoid repeating the names in multiple places.
+set $ws1 "1"
+set $ws2 "2"
+set $ws3 "3"
+set $ws4 "4"
+set $ws5 "5"
+set $ws6 "6"
+set $ws7 "7"
+set $ws8 "8"
+set $ws9 "9"
+set $ws10 "10"
+
+# switch to workspace
+bindsym $mod+1 workspace number $ws1
+bindsym $mod+2 workspace number $ws2
+bindsym $mod+3 workspace number $ws3
+bindsym $mod+4 workspace number $ws4
+bindsym $mod+5 workspace number $ws5
+bindsym $mod+6 workspace number $ws6
+bindsym $mod+7 workspace number $ws7
+bindsym $mod+8 workspace number $ws8
+bindsym $mod+9 workspace number $ws9
+bindsym $mod+0 workspace number $ws10
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace number $ws1
+bindsym $mod+Shift+2 move container to workspace number $ws2
+bindsym $mod+Shift+3 move container to workspace number $ws3
+bindsym $mod+Shift+4 move container to workspace number $ws4
+bindsym $mod+Shift+5 move container to workspace number $ws5
+bindsym $mod+Shift+6 move container to workspace number $ws6
+bindsym $mod+Shift+7 move container to workspace number $ws7
+bindsym $mod+Shift+8 move container to workspace number $ws8
+bindsym $mod+Shift+9 move container to workspace number $ws9
+bindsym $mod+Shift+0 move container to workspace number $ws10
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+# exit i3 (logs you out of your X session)
+bindsym $mod+Shift+e exit
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ bindsym h resize shrink width 10 px or 10 ppt
+ bindsym t resize grow height 10 px or 10 ppt
+ bindsym n resize shrink height 10 px or 10 ppt
+ bindsym s resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape or $mod+r
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+ bindsym $mod+r mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+bar {
+ status_command i3status
+}
+
+hide_edge_borders true
+for_window [class=".*"] border pixel 0
+gaps inner 20
+gaps outer -20
+
+bindsym $mod+q exec "systemctl suspend"
diff --git a/home/.profile b/home/.profile
new file mode 100644
index 0000000..46c93c3
--- /dev/null
+++ b/home/.profile
@@ -0,0 +1,5 @@
+export TERM="xterm-256color"
+export EDITOR="vim"
+alias cl="xclip -sel clip"
+alias pb="nc hrhr.dev 9999"
+alias pacman="sudo pacman"
diff --git a/home/.vimrc b/home/.vimrc
new file mode 100644
index 0000000..53e5391
--- /dev/null
+++ b/home/.vimrc
@@ -0,0 +1,7 @@
+syntax on
+set autoindent
+set cc=72
+set expandtab tabstop=4 shiftwidth=4
+set ruler noshowmode
+au BufNewFile,BufRead Makefile set noexpandtab
+set background=dark
diff --git a/home/.xinitrc b/home/.xinitrc
new file mode 100644
index 0000000..632e14b
--- /dev/null
+++ b/home/.xinitrc
@@ -0,0 +1,4 @@
+picom -b
+setxkbmap -layout us -variant dvp -option caps:escape
+feh --bg-fill ~/bg/sc.png
+exec i3
diff --git a/home/.zprofile b/home/.zprofile
new file mode 100644
index 0000000..1bae667
--- /dev/null
+++ b/home/.zprofile
@@ -0,0 +1,7 @@
+case $(tty) in
+ (/dev/tty1) exec startx;;
+ (/dev/tty2) exec tmux;;
+ (/dev/tty3) exec bc;;
+ (/dev/tty4) exec vim;;
+esac
+
diff --git a/home/.zshrc b/home/.zshrc
new file mode 100644
index 0000000..60bd2fc
--- /dev/null
+++ b/home/.zshrc
@@ -0,0 +1,3 @@
+source ~/.profile
+
+export PS1="[%F{green}%1~ %F{cyan}%*%f] %n@%m%# "
diff --git a/install.sh b/install.sh
new file mode 100755
index 0000000..816857b
--- /dev/null
+++ b/install.sh
@@ -0,0 +1,49 @@
+#!/bin/sh
+if [ $(id -u) -ne 0 ]
+ then echo "Please run as root"
+ exit
+fi
+
+SCRIPTPATH=$(dirname "$(readlink -f "$0")")
+if [ -z $1 ]; then
+ echo "Which drive?"
+ read DRIVE
+else
+ export DRIVE=$1
+fi
+export BASE=$(basename $DRIVE)
+export PART="/dev/$(basename $(echo /sys/class/block/$BASE/$BASE* | \
+xargs -n1 echo | sed 1q | rev | cut -c 2- | rev ))"
+ # List all partitions of device, get first one, remove last char.
+sudo umount $DRIVE*
+fdisk $DRIVE <<EOF
+ g
+ n
+ 1
+
+ +512M
+ t
+ 1
+ n
+ 2
+
+ +20G
+ w
+EOF
+
+yes | mkfs.vfat ${PART}1
+yes | mkfs.ext4 ${PART}2
+
+mount ${PART}2 /mnt
+mkdir /mnt/efi
+mount ${PART}1 /mnt/efi
+pacstrap /mnt base
+genfstab -U /mnt >> /mnt/etc/fstab
+cd $SCRIPTPATH/..
+cp -r dotfiles /mnt
+#echo "arch-chroot into the new system and run dotfiles/build.sh"
+arch-chroot /mnt << EOF
+ cd dotfiles
+ sh build.sh
+EOF
+echo "DONE!"
diff --git a/mod.sh b/mod.sh
new file mode 100755
index 0000000..9f95cab
--- /dev/null
+++ b/mod.sh
@@ -0,0 +1,5 @@
+#!/bin/sh
+export TMP=`mktemp`
+sed 's/supplicant-%I/supplicant/g' /usr/lib/systemd/system/wpa_supplicant.service > $TMP
+mv $TMP /usr/lib/systemd/system/wpa_supplicant.service
+rm $TMP
diff --git a/packages b/packages
new file mode 100644
index 0000000..abf18b3
--- /dev/null
+++ b/packages
@@ -0,0 +1,63 @@
+mkinitcpio
+linux
+linux-firmware
+wpa_supplicant
+vim
+acpi
+archiso
+bc
+cups
+dash
+dmenu
+dunst
+efibootmgr
+grub
+exfat-utils
+feh
+ttf-croscore
+firefox
+font-bh-ttf
+git
+i3-gaps
+intel-ucode
+libnotify
+mutt
+openbsd-netcat
+openssh
+parted
+pavucontrol
+picom
+maxima
+python
+sudo
+texlive-bin
+texlive-core
+tmux
+ttf-anonymous-pro
+vim
+wpa_supplicant
+xclip
+xf86-video-intel
+xorg-server
+xorg-xbacklight
+xorg-xinit
+xorg-xrandr
+zathura
+zathura-pdf-mupdf
+zsh
+polkit
+autoconf
+automake
+binutils
+bison
+fakeroot
+flex
+gcc
+groff libtool
+m4
+make
+patch
+pkgconf
+sudo
+texinfo
+which
diff --git a/regional.sh b/regional.sh
new file mode 100755
index 0000000..43611f3
--- /dev/null
+++ b/regional.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+ln -sf /usr/share/zoneinfo/US/Eastern /etc/localtime
+echo -e "en_US.UTF-8 UTF-8\nen_US ISO-8859-1" > /etc/locale.conf
+echo "KEYMAP=dvorak-programmer" > /etc/vconsole.conf
+export HOST="bruh-moment"
+echo $HOST > /etc/hostname
+echo -e "127.0.0.1\tlocalhost\n::1\tlocalhost\n127.0.1.1\t$HOST.localdomain\t$HOST" > /etc/hosts
+
diff --git a/services b/services
new file mode 100644
index 0000000..39244ba
--- /dev/null
+++ b/services
@@ -0,0 +1,3 @@
+org.cups.cupsd.socket
+dhcpcd
+polkit
diff --git a/source.sh b/source.sh
new file mode 100755
index 0000000..b698d5d
--- /dev/null
+++ b/source.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+# Installs from source
+git clone https://git.suckless.org/st
+cd st
+curl -O http://st.suckless.org/patches/alpha/st-alpha-0.8.2.diff
+git apply st-alpha-0.8.2.diff
+make install
+cd ..
+
+git clone https://aur.archlinux.org/preloader-signed.git
+chown -R nobody preloader-signed
+cd preloader-signed
+su nobody -c "makepkg -si"
+cd ..
diff --git a/src/etc/X11/xorg.conf.d/10-monitor.conf b/src/etc/X11/xorg.conf.d/10-monitor.conf
new file mode 100644
index 0000000..c4914a7
--- /dev/null
+++ b/src/etc/X11/xorg.conf.d/10-monitor.conf
@@ -0,0 +1,6 @@
+Section "Device"
+ Identifier "Intel Graphics"
+ Driver "intel"
+
+ Option "TearFree" "true"
+EndSection
diff --git a/src/etc/sudoers.d/wheel b/src/etc/sudoers.d/wheel
new file mode 100644
index 0000000..eb6a2d3
--- /dev/null
+++ b/src/etc/sudoers.d/wheel
@@ -0,0 +1,2 @@
+root ALL=(ALL) ALL
+%wheel ALL=(ALL) NOPASSWD: ALL
diff --git a/src/etc/wpa_supplicant/wpa_supplicant.conf b/src/etc/wpa_supplicant/wpa_supplicant.conf
new file mode 100644
index 0000000..84d1eb4
--- /dev/null
+++ b/src/etc/wpa_supplicant/wpa_supplicant.conf
@@ -0,0 +1,7 @@
+ctrl_interface=/var/run/wpa_supplicant
+
+network={
+ ssid="404 Network Unavailable"
+ #psk="easypeasy"
+ psk=d6c8f02504421c7d694ca79cc1a7be23759df44230f57897e88e3f502250aa4c
+}