diff options
-rw-r--r-- | README | 2 | ||||
-rwxr-xr-x | build.sh | 31 | ||||
-rwxr-xr-x | config.sh | 14 | ||||
-rw-r--r-- | home/.config/i3/config | 172 | ||||
-rw-r--r-- | home/.profile | 5 | ||||
-rw-r--r-- | home/.vimrc | 7 | ||||
-rw-r--r-- | home/.xinitrc | 4 | ||||
-rw-r--r-- | home/.zprofile | 7 | ||||
-rw-r--r-- | home/.zshrc | 3 | ||||
-rwxr-xr-x | install.sh | 49 | ||||
-rwxr-xr-x | mod.sh | 5 | ||||
-rw-r--r-- | packages | 63 | ||||
-rwxr-xr-x | regional.sh | 8 | ||||
-rw-r--r-- | services | 3 | ||||
-rwxr-xr-x | source.sh | 14 | ||||
-rw-r--r-- | src/etc/X11/xorg.conf.d/10-monitor.conf | 6 | ||||
-rw-r--r-- | src/etc/sudoers.d/wheel | 2 | ||||
-rw-r--r-- | src/etc/wpa_supplicant/wpa_supplicant.conf | 7 |
18 files changed, 402 insertions, 0 deletions
@@ -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!" @@ -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 +} |