Compare commits

...

10 Commits

Author SHA1 Message Date
David Todd fee00c0c7b rework readme 2021-01-12 18:51:38 -06:00
David Todd 11577de71c update default git config 2021-01-12 18:36:00 -06:00
David Todd 158ccfcea0 reorganize directory structure again 2021-01-12 18:33:49 -06:00
David Todd 74ba4615d1 improve symlink function 2021-01-12 14:28:05 -06:00
David Todd bf4ddbba24 Add Configure OhMyZSH to not clobber 2021-01-12 14:18:33 -06:00
David Todd b0494d904f better variables 2021-01-12 14:10:06 -06:00
David Todd e8ae2499a4 improve installer 2021-01-12 14:07:00 -06:00
David Todd cd24899161 Move shell .files 2021-01-12 14:06:51 -06:00
David Todd 73598f29c9 improve generate pacman.lst script 2021-01-12 13:56:08 -06:00
David Todd f90f3dccda Track installed packages 2021-01-12 09:31:16 -06:00
67 changed files with 473 additions and 99 deletions

View File

@ -2,55 +2,30 @@
## Installation
1. Install dependencies
1. Optionally create ~/.dotfiles.postinst
2. `bash <(curl -sL https://dotfiles.online)` (https://raw.githubusercontent.com/alopexc0de/dotfiles/master/install.sh)
3. ????
4. Profit
1. `bash <(curl -sL https://dotfiles.online)` (https://c0de.dev/c0de/dotfiles/raw/branch/master/install.sh)
1. ????
1. Profit
## Distro auto-install
This feature will install the basic dependencies automatically if you approve at the prompt, assumes that you have sudo access.
### Dependencies
These are pretty out of date like the dependencies list below. Your milage may vary if you choose to use the auto-install
I primarilarly use Arch, but these dotfiles also get installed to headless Debian servers.
It shouldn't be difficult to find an equilivant package for your distribution with the provided lists
Currently available for:
- Arch/Manjaro Linux (pacman+yay)
- Debian Linux (apt)
A list of the packages that I have installed can be found in the files `pacman.lst` and `pacman_aur.lst`.
Non-official packages come from the AUR, which can't typically be installed by pacman directly and the reason why it's a seperate list.
## Dotfiles Postinstall
You may create a standard text file called `.dotfiles.postinst` in your home directory before installing.
This file contains commands, one per line, that will be executed in order after the install script finishes.
### Dotfiles Postinstall
You may create a standard text file called `.dotfiles.postinst` in your home directory before installing.
This file is basically a bash script that contains commands, that will be executed after the install script finishes.
For example, you may want to add commands such as `git config --global user.name "My Name"` and `git config --global user.email "me@my.email"`
## Customizing Dotfiles
1. Fork this repo
2. Update `repourl` inside install.sh to point to your own
3. Make your changes
4. Push to origin
5. Install your new dotfiles everywhere
## Dependencies
My dotfiles now include my personalized i3 configuration if you also run the i3wm.
This is a bit outdated, so you can err on the side of caution and install other stuff as it's needed
* [i3-gaps](https://github.com/Airblader/i3) WM
* [i3blocks](https://github.com/vivien/i3blocks) i3bar scheduler
* [i3lock-fancy](https://github.com/meskarune/i3lock-fancy) locker
* [rofi](https://github.com/DaveDavenport/rofi) launcher
* [Adobe's Source Code Pro](https://github.com/adobe-fonts/source-code-pro) font
* [terminator](https://wiki.archlinux.org/index.php/Terminator) terminal
* [feh](https://feh.finalrewind.org/) Image viewer/wallpaper
* [xcompmgr](https://wiki.archlinux.org/index.php/Xcompmgr) Compisiton Manager (window transparency)
* [maim](https://github.com/naelstrof/maim) Screenshot utility
* [powerline](https://wiki.archlinux.org/index.php/Powerline)
* [ntfy](https://github.com/dschep/ntfy) for Desktop Notifications
## Branch Info
This is the primary branch.
It includes changes that should be included in most, if not
all of the different configurations that may result of different
system use.
For now, there are the master, macos and workpc branches.
The workpc branch contains a lot of configuration from a base Manjaro install

11
generate_pacman.lst.sh Executable file
View File

@ -0,0 +1,11 @@
#!/bin/bash
# Exports all installed packages to pacman.lst. One for official
# packages, and another for any packages that come from AUR.
# This can be used as a reference, or to reinstall packages with:
# `cat pacman.lst | xargs pacman -S --needed --noconfirm` and
# `cat pacman_aur.lst | xargs yay -S --needed --noconfirm`
# (assuming yay is your AUR helper)
pacman -Qqe | grep -v "$(pacman -Qqm)" > pacman.lst
pacman -Qqm > pacman_aur.lst

View File

View File

@ -38,8 +38,8 @@
[mergetool "fugitive"]
cmd = fugitive vim -f -c \"Gdiff\" \"$MERGED\"
[user]
email = dtodd@oceantech.com
name = David Todd
email = c0de@c0de.dev
name = c0de
[include]
path = ~/.githubtokens
path = ~/.dotoverrides/gitconfig

View File

View File

@ -33,7 +33,7 @@ setopt NO_BG_NICE
# Check for updates...
# Stolen and modified Oh-My-ZSH's update system
if [ "${ENABLE_DOTFILES_AUTO_UPDATE}" ]; then
env ZSH=$ZSH _DOTFILES=$_DOTFILES DISABLE_UPDATE_PROMPT=$DISABLE_DOTFILES_UPDATE_PROMPT zsh -f $_DOTFILES/check_for_upgrade.sh
env ZSH=$ZSH _DOTFILES="${_DOTFILES}" DISABLE_UPDATE_PROMPT="${DISABLE_DOTFILES_UPDATE_PROMPT}" zsh -f "${_DOTFILES}/check_for_upgrade.sh"
fi
# Oh-My-ZSH Options below this line

View File

@ -15,6 +15,8 @@ fi
GIT_REPO="git://github.com/alopexc0de/dotfiles.git"
DOTFILES=${HOME}/dotfiles
DF_HOME=${DOTFILES}/home
DF_CONFIG=${DF_HOME}/.config
POSTINSTALL_SCRIPT=${HOME}/.dotfiles.postinst
if [ ! -e "${POSTINSTALL_SCRIPT}" ]; then
@ -27,100 +29,99 @@ function symlink() {
src=$1
dest=$2
if [ -e $dest ]; then
if [ -L $dest ]; then
if [ -e "${dest}" ]; then
if [ -L "${dest}" ]; then
# Already symlinked -- I'll assume correctly.
return
else
# Rename files with a ".old" extension.
echo "$dest already exists, renaming to $dest.old"
backup=$dest.old
if [ -e $backup ]; then
echo "${dest} already exists, renaming to ${dest}.old"
backup="${dest}.old"
if [ -e "${backup}" ]; then
echo "Error: $backup already exists. Please delete or rename it."
exit 1
fi
mv -v $dest $backup
mv -v "${dest}" "${backup}"
fi
fi
echo "Linking $(basename $src)..."
ln -sf $src $dest
echo "Linking $(basename "${src}")..."
ln -sf "${src}" "${dest}"
}
read -p "Press enter to install my dotfiles " WAIT_FOR_INPUT
read -p "Press enter to install dotfiles " WAIT_FOR_INPUT
# If the update script exists, try to do a normal update
if [ -x "${DOTFILES}/check_for_upgrade.sh" ]; then
source "${DOTFILES}/.environment"
env DOTFILES=${DOTFILES} DISABLE_UPDATE_PROMPT=false zsh -f ${DOTFILES}/check_for_upgrade.sh
source "${DF_HOME}/.environment"
env _DOTFILES="${DOTFILES}" DISABLE_UPDATE_PROMPT=false zsh -f "${DOTFILES}/check_for_upgrade.sh"
else
echo "Cloning dotfiles to ${DOTFILES}"
echo "Cloning to ${DOTFILES}"
rm -rf "${DOTFILES}"
git clone --recurse-submodules -j$(nproc) "${GIT_REPO}" "${DOTFILES}"
fi
echo "Installing Oh-My-ZSH"
echo "When the install is done, type \"exit\" to continue installing dotfiles"
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
echo "Changing default shell to ZSH..."
chsh -s /usr/bin/zsh
echo "Building i3 configuration"
${DOTFILES}/bin/build-i3-config
echo "Installing user binary directory to ~/bin"
symlink ${DOTFILES}/bin ${HOME}/bin
symlink "${DF_HOME}/bin" "${HOME}/bin"
echo "Linking Configuration files..."
# All the dotfiles that live in the home dir directly
symlink ${DOTFILES}/.aliases ${HOME}/.aliases
symlink ${DOTFILES}/.bashrc ${HOME}/.bashrc
symlink ${DOTFILES}/.dmenurc ${HOME}/.dmenurc
symlink ${DOTFILES}/.dmrc ${HOME}/.dmrc
symlink ${DOTFILES}/.editorconfig ${HOME}/.editorconfig
symlink ${DOTFILES}/.environment ${HOME}/.environment
symlink ${DOTFILES}/.functions ${HOME}/.functions
symlink ${DOTFILES}/.gitconfig ${HOME}/.gitconfig
symlink ${DOTFILES}/.stalonetrayrc ${HOME}/.stalonetrayrc
symlink ${DOTFILES}/.tmux.conf ${HOME}/.tmux.conf
symlink ${DOTFILES}/.vimrc ${HOME}/.vimrc
symlink ${DOTFILES}/.zshrc ${HOME}/.zshrc
symlink "${DOTFILES}/.editorconfig" "${HOME}/.editorconfig"
symlink "${DF_HOME}/.aliases" "${HOME}/.aliases"
symlink "${DF_HOME}/.bashrc" "${HOME}/.bashrc"
symlink "${DF_HOME}/.dmenurc" "${HOME}/.dmenurc"
symlink "${DF_HOME}/.dmrc" "${HOME}/.dmrc"
symlink "${DF_HOME}/.environment" "${HOME}/.environment"
symlink "${DF_HOME}/.functions" "${HOME}/.functions"
symlink "${DF_HOME}/.gitconfig" "${HOME}/.gitconfig"
symlink "${DF_HOME}/.stalonetrayrc" "${HOME}/.stalonetrayrc"
symlink "${DF_HOME}/.tmux.conf" "${HOME}/.tmux.conf"
symlink "${DF_HOME}/.vimrc" "${HOME}/.vimrc"
symlink "${DF_HOME}/.zshrc" "${HOME}/.zshrc"
# Install ~/.config stuff
symlink ${DOTFILES}/.config/.rofi ${HOME}/.config/.rofi
symlink ${DOTFILES}/.config/compton ${HOME}/.config/compton
symlink ${DOTFILES}/.config/dunst ${HOME}/.config/dunst
symlink ${DOTFILES}/.config/gtk-2.0 ${HOME}/.config/gtk-2.0
symlink ${DOTFILES}/.config/gtk-3.0 ${HOME}/.config/gtk-3.0
symlink ${DOTFILES}/.config/htop ${HOME}/.config/htop
symlink ${DOTFILES}/.config/i3 ${HOME}/.config/i3
symlink ${DOTFILES}/.config/morc_menu ${HOME}/.config/morc_menu
symlink ${DOTFILES}/.config/nitrogen ${HOME}/.config/nitrogen
symlink ${DOTFILES}/.config/ranger ${HOME}/.config/ranger
symlink ${DOTFILES}/.config/terminator ${HOME}/.config/terminator
symlink ${DOTFILES}/.config/viewnior ${HOME}/.config/viewnior
symlink ${DOTFILES}/.config/volumeicon ${HOME}/.config/volumeicon
symlink ${DOTFILES}/.config/mimeapps.list ${HOME}/.config/mimeapps.list
symlink "${DF_CONFIG}/.rofi" "${HOME}/.config/.rofi"
symlink "${DF_CONFIG}/compton" "${HOME}/.config/compton"
symlink "${DF_CONFIG}/dunst" "${HOME}/.config/dunst"
symlink "${DF_CONFIG}/gtk-2.0" "${HOME}/.config/gtk-2.0"
symlink "${DF_CONFIG}/gtk-3.0" "${HOME}/.config/gtk-3.0"
symlink "${DF_CONFIG}/htop" "${HOME}/.config/htop"
symlink "${DF_CONFIG}/i3" "${HOME}/.config/i3"
symlink "${DF_CONFIG}/morc_menu" "${HOME}/.config/morc_menu"
symlink "${DF_CONFIG}/nitrogen" "${HOME}/.config/nitrogen"
symlink "${DF_CONFIG}/terminator" "${HOME}/.config/terminator"
symlink "${DF_CONFIG}/ranger" "${HOME}/.config/ranger"
symlink "${DF_CONFIG}/viewnior" "${HOME}/.config/viewnior"
symlink "${DF_CONFIG}/volumeicon" "${HOME}/.config/volumeicon"
symlink "${DF_CONFIG}/mimeapps.list" "${HOME}/.config/mimeapps.list"
echo "Building i3 configuration..."
"${DF_HOME}/bin/build-i3-config"
echo "Changing default shell to ZSH..."
chsh -s /usr/bin/zsh
echo "Installing Oh-My-ZSH..."
CHSH='no' RUNZSH='no' KEEP_ZSHRC='yes' sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
echo "Installing VIM Pathogen..."
mkdir -p ${HOME}/.vim/{autoload,bundle}
curl -LSs https://tpo.pe/pathogen.vim -o ${HOME}/.vim/autoload/pathogen.vim
mkdir -p "${HOME}/.vim/{autoload,bundle}"
curl -LSs https://tpo.pe/pathogen.vim -o "${HOME}/.vim/autoload/pathogen.vim"
echo "Installing VIM Sensible..."
git clone git://github.com/tpope/vim-sensible.git ${HOME}/.vim/bundle/vim-sensible
git clone git://github.com/tpope/vim-sensible.git "${HOME}/.vim/bundle/vim-sensible"
echo "Installing VIM Iceberg theme"
echo "Installing VIM Iceberg theme..."
cd /tmp
wget https://www.vim.org/scripts/download_script.php?src_id=25718 -O iceberg.zip
unzip iceberg.zip
cp -r iceberg.vim/{autoload,colors} ${HOME}/.vim/
cp -r iceberg.vim/{autoload,colors} "${HOME}/.vim/"
rm -rf /tmp/iceberg*
cd ${HOME}
cd "${HOME}"
if [ -e "$POSTINSTALL_SCRIPT" ]; then
if [ -e "${POSTINSTALL_SCRIPT}" ]; then
echo "Running post install..."
source "$POSTINSTALL_SCRIPT"
"${POSTINSTALL_SCRIPT}"
fi
echo "Install done."

345
pacman.lst Normal file
View File

@ -0,0 +1,345 @@
accountsservice
acpi
acpid
alacritty
alsa-firmware
alsa-plugins
alsa-utils
android-tools
apparmor
arandr
arm-none-eabi-gcc
artwork-i3
asciidoc
audacity
autoconf
autoconf-archive
autogen
automake
avahi
aws-cli
b43-fwcutter
barrier
bash
bauh
binutils
binwalk
bison
blueman
bluez-utils
bmon
btrfs-progs
bzip2
cantarell-fonts
certbot
certbot-dns-cloudflare
clipit
cmatrix
colordiff
coreutils
cpupower
crda
cronie
cryptsetup
debootstrap
deja-dup
device-mapper
dfc
dhclient
dhcpcd
diffutils
dmidecode
dmraid
dnsmasq
docker
docker-compose
docker-machine
dosbox
dosfstools
downgrade
e2fsprogs
ecryptfs-utils
ed
efibootmgr
epdfview
etcher
exfat-utils
f2fs-tools
fakeroot
feh
ffmpeg
ffmpegthumbnailer
file
filesystem
filezilla
findutils
firefox
flac
flex
fping
freerdp
gawk
gcc
gcc-libs
gcolor2
gettext
gimp
git
glibc
gnome-keyring
gnu-netcat
go
gource
gparted
grep
grsync
grub
grub-theme-manjaro-dev
gst-libav
gst-plugins-bad
gst-plugins-base
gst-plugins-good
gst-plugins-ugly
gstreamer
gtksourceview-pkgbuild
gufw
gvfs
gvfs-afc
gvfs-gphoto2
gvfs-mtp
gvfs-smb
gvim
gzip
htop
hw-probe
i3blocks
inetutils
intel-ucode
inxi
iperf3
iproute2
iputils
jdk-openjdk
jfsutils
kdenlive
kdiff3
kvantum-manjaro
less
lib32-flex
lib32-libva-vdpau-driver
lib32-mesa-demos
lib32-mesa-vdpau
lib32-vulkan-intel
lib32-vulkan-radeon
libdvdcss
libgpod
libreoffice-still
libtool
libva-mesa-driver
libva-vdpau-driver
licenses
lightdm-settings
lightdm-slick-greeter
linux54
linux54-headers
logrotate
lvm2
lxappearance
lxinput
m4
maia-console
maim
make
man-db
man-pages
manjaro-alsa
manjaro-application-utility
manjaro-browser-settings
manjaro-firmware
manjaro-hello
manjaro-hotfixes
manjaro-i3-settings
manjaro-printer
manjaro-ranger-settings
manjaro-release
manjaro-settings-manager-notifier
manjaro-system
mariadb
markdown_previewer
matcha-gtk-theme
mdadm
memtest86+
mesa-demos
mesa-vdpau
mhwd
mhwd-db
mkinitcpio-openswap
mlocate
mobile-broadband-provider-info
moc
modemmanager
monit
morc_menu
mousepad
mplayer
nano
ncdu
netctl
network-manager-applet
networkmanager
networkmanager-openconnect
networkmanager-openvpn
networkmanager-pptp
networkmanager-vpnc
nfs-utils
noto-fonts-emoji
npm
nss-mdns
ntfs-3g
ntp
obs-studio
okular
openresolv
openssh
os-prober
p7zip
pacman
palemoon-bin
pamac-gtk
patch
patchutils
pciutils
pcmanfm
perl
perl-file-mimeinfo
pgadmin4
pigz
pinta
pkgconf
playerctl
polkit-gnome
poppler-data
powerline
powertop
procps-ng
psmisc
putty
pygtk
python-dnspython
python-pymongo
python-tzlocal
python2-pip
qbittorrent
qemu
qemu-arch-extra
qt5-styleplugins
qt5-websockets
qt5ct
ranger
reiserfsprogs
remmina
rofi
rsync
s-nail
samba
sbxkb
screenfetch
sed
shadow
simplescreenrecorder
smartmontools
snapd
spectre-meltdown-checker
speedtest-cli
sqlitebrowser
stalonetray
strace
subversion
sudo
synergy
sysfsutils
syslog-ng
systemd
systemd-fsck-silent
systemd-sysvcompat
tar
telegram-desktop
terminator
terminus-font
texinfo
thunderbird
tigervnc
tldr
tlp
tmux
traceroute
tree
ttf-bitstream-vera
ttf-dejavu
ttf-droid
ttf-inconsolata
ttf-indic-otf
ttf-liberation
udftools
unzip
upower
usbutils
util-linux
vault
vertex-maia-themes
vibrancy-icons-teal
viewnior
virt-manager
virtualbox
virtualbox-guest-iso
vlc
volumeicon
vulkan-intel
vulkan-radeon
w3m
wallpapers-juhraya
wget
which
wine
wireguard-dkms
wireguard-tools
wmutils
woeusb
wpa_supplicant
x2goserver
xarchiver
xautolock
xcursor-chameleon-pearl
xcursor-maia
xdg-user-dirs
xdg-utils
xdot
xdotool
xf86-input-elographics
xf86-input-evdev
xf86-input-libinput
xf86-input-void
xf86-video-amdgpu
xf86-video-ati
xf86-video-intel
xf86-video-nouveau
xfburn
xfce4-power-manager
xfsprogs
xorg-server
xorg-twm
xorg-xhost
xorg-xinit
xorg-xkill
xorg-xprop
xscreensaver
xterm
xz
yarn
yay
yubico-pam
yubikey-manager-qt
yubikey-personalization-gui
yubioath-desktop
zensu
zsh

42
pacman_aur.lst Normal file
View File

@ -0,0 +1,42 @@
aarch64-linux-musl
anydesk-bin
aqemu
bumblebee-status-git
cpuid
distrobuilder
fet.sh-git
gdrive-git
go-to-meeting-desktop
google-chrome
gprof2dot
i3-layout-manager-git
i3ipc-python-git
i3lock-fancy-git
js60
mhwd-nvidia-340xx
minecraft
ninja-bin
ntfy
open-fuse-iso
openwsman
pangox-compat
perl-uuid
python-emoji
python2-pytoml
qdirstat
remmina-plugin-rdesktop
rustscan
sblim-sfcc
spotify
step-ca-bin
step-cli-bin
surf
symlinks
vi-vim-symlink
visual-studio-code-bin
wireguard-go-git
wsmancli
xcwd-git
xdg-su
xorg-font-utils
zenmap