move tower to archlinux

This commit is contained in:
Frieder Schlesier 2022-03-11 16:51:43 +01:00
parent 46b6522a1d
commit 2d9fcee0dc
8 changed files with 356 additions and 33 deletions

View File

@ -118,7 +118,6 @@ if [ -z "$SSH_AUTH_SOCK" ] ; then
# ssh-add # ssh-add
fi fi
# BEGIN_KITTY_SHELL_INTEGRATION # BEGIN_KITTY_SHELL_INTEGRATION
if test -n "$KITTY_INSTALLATION_DIR" -a -e "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; then source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; fi if test -n "$KITTY_INSTALLATION_DIR" -a -e "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; then source "$KITTY_INSTALLATION_DIR/shell-integration/bash/kitty.bash"; fi
# END_KITTY_SHELL_INTEGRATION # END_KITTY_SHELL_INTEGRATION

View File

@ -86,6 +86,7 @@ bindsym $mod+Shift+space floating toggle
bindsym $mod+space focus mode_toggle bindsym $mod+space focus mode_toggle
# float some applications # float some applications
for_window [class="Tor Browser"] floating enable for_window [class="Tor Browser"] floating enable
for_window [title=".*alculator.*"] floating enable
bindsym $mod+a focus parent # focus the parent container bindsym $mod+a focus parent # focus the parent container
@ -126,9 +127,9 @@ mode "monitor" {
# CENTER main, RIGHT secondary # CENTER main, RIGHT secondary
bindsym 2 exec xrandr --output $CENTER --primary --auto --output $LAPTOP --auto --left-of $CENTER --output $RIGHT --off bindsym 2 exec xrandr --output $CENTER --primary --auto --output $LAPTOP --auto --left-of $CENTER --output $RIGHT --off
# HDMI main, laptop left, VGA right, *not* supported on X230 # HDMI main, laptop left, VGA right, *not* supported on X230
bindsym 3 exec xrandr --output $CENTER --primary --auto --output $LAPTOP --auto --left-of $CENTER --output $RIGHT --auto --right-of $CENTER bindsym 3 exec xrandr --output $CENTER --primary --auto --output $LEFT --auto --left-of $CENTER --output $RIGHT --auto --right-of $CENTER
# CENTER main, RIGHT right, rotated # CENTER main, RIGHT right, rotated
bindsym 4 exec xrandr --output $CENTER --primary --auto --output $RIGHT --auto --right-of $CENTER --rotate left --output $LAPTOP --off --output $LEFT --off bindsym 4 exec xrandr --output $CENTER --primary --auto --output $RIGHT --auto --right-of $CENTER --rotate left --output $LAPTOP --off --output $LEFT --auto
# VGA main, laptop left, HDMI off # VGA main, laptop left, HDMI off
bindsym 8 exec xrandr --output $RIGHT --primary --auto --output $LAPTOP --auto --left-of $RIGHT --output $CENTER --off bindsym 8 exec xrandr --output $RIGHT --primary --auto --output $LAPTOP --auto --left-of $RIGHT --output $CENTER --off
# HDMI main, VGA right, laptop off # HDMI main, VGA right, laptop off
@ -144,7 +145,6 @@ workspace $WS1 output $CENTER
workspace $WS2 output $CENTER workspace $WS2 output $CENTER
workspace $WS3 output $RIGHT workspace $WS3 output $RIGHT
workspace $WS4 output $RIGHT workspace $WS4 output $RIGHT
workspace $WS5 output $CENTER
workspace $WS8 output $RIGHT workspace $WS8 output $RIGHT
workspace $WS9 output $RIGHT workspace $WS9 output $RIGHT
@ -227,13 +227,14 @@ bar {
urgent_workspace #d33682 #d33682 #fdf6e3 urgent_workspace #d33682 #d33682 #fdf6e3
} }
output $CENTER output $CENTER
font pango:DejaVu Sans Mono, FontAwesome 7 font pango:DejaVu Sans Mono, FontAwesome 9
status_command i3status --config ~/.i3/status.conf status_command i3status --config ~/.i3/status.conf
tray_output $CENTER tray_output $CENTER
} }
bar { bar {
output $RIGHT output $RIGHT
output $LEFT
status_command i3status --config ~/.i3/status_small.conf status_command i3status --config ~/.i3/status_small.conf
tray_output $CENTER tray_output $CENTER
} }
@ -250,17 +251,11 @@ bar {
# startup programs # startup programs
exec amixer set Master 1+ off
exec amixer set Master 54
exec --no-startup-id nm-applet exec --no-startup-id nm-applet
# exec --no-startup-id xrandr --output LVDS1 --left-of VGA1 --auto exec --no-startup-id xrandr --output $CENTER --primary --auto --output $RIGHT --auto --right-of $CENTER --rotate left --output $LAPTOP --off --output $LEFT --auto --left-of $CENTER
# exec --no-startup-id xrandr --output VGA1 --auto
#exec --no-startup-id clipit
exec --no-startup-id xrandr --output $CENTER --primary --auto --output $RIGHT --auto --right-of $CENTER --rotate left --output $LAPTOP --off --output $LEFT --off
exec --no-startup-id i3-msg 'workspace $WS1; exec firefox;' exec --no-startup-id i3-msg 'workspace $WS1; exec firefox;'
exec --no-startup-id i3-msg 'workspace $WS2; exec emacs' exec --no-startup-id i3-msg 'workspace $WS2; exec emacs'
exec --no-startup-id i3-msg 'exec thunderbird' exec --no-startup-id i3-msg 'exec thunderbird'
exec --no-startup-id i3-msg 'exec keepassxc' exec --no-startup-id i3-msg 'exec keepassxc'
# exec --no-startup-id i3-msg 'exec nextcloud'
exec --no-startup-id i3-msg 'workspace $WS3; exec kitty;' exec --no-startup-id i3-msg 'workspace $WS3; exec kitty;'

View File

@ -31,8 +31,8 @@ order += "battery 0"
# order += "cpu_temperature 0" # order += "cpu_temperature 0"
order += "memory" order += "memory"
order += "load" order += "load"
#order += "tztime local" order += "tztime local"
order += "tztime DE" # order += "tztime DE"
#order += "tztime KG" #order += "tztime KG"
# order += "tztime UK" # order += "tztime UK"
@ -42,12 +42,6 @@ ethernet fschl-vpn {
format_down = "fschl-vpn: -" format_down = "fschl-vpn: -"
} }
ethernet sl-optigem {
# if you use %speed, i3status requires root privileges
format_up = "optigem: %ip"
format_down = "optigem: -"
}
ethernet enp31s0 { ethernet enp31s0 {
# if you use %speed, i3status requires root privileges # if you use %speed, i3status requires root privileges
format_up = "E: %ip (%speed)" format_up = "E: %ip (%speed)"
@ -78,7 +72,7 @@ tztime local {
tztime DE { tztime DE {
format = "DE %Y-%m-%d (%V) %a %H:%M:%S" format = "DE %Y-%m-%d (%V) %a %H:%M:%S"
timezone = "Europe/Berlin" timezone = "Europe/Berlin"
} }
tztime UK { tztime UK {
@ -121,10 +115,10 @@ disk "/media/driveBay" {
format = "/ %avail" format = "/ %avail"
} }
volume Master { # volume Master {
format = " %volume" # format = " %volume"
format_muted = " %volume" # format_muted = " %volume"
device = "default" # device = "default"
mixer = "Master" # mixer = "Master"
mixer_idx = 0 # mixer_idx = 0
} # }

View File

@ -21,3 +21,4 @@ if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH" PATH="$HOME/bin:$PATH"
fi fi
. "$HOME/.cargo/env"

View File

@ -56,8 +56,8 @@ This function should only modify configuration layer settings."
python python
rust rust
shell shell
shell-scripts ;; shell-scripts
spell-checking ;; spell-checking
syntax-checking syntax-checking
version-control version-control
yaml yaml

View File

@ -116,5 +116,10 @@
- [ ] seperate sources.list setup for server/desktop/laptop - [ ] seperate sources.list setup for server/desktop/laptop
- [ ] Check new bootable USB solution: https://ventoy.net/en/index.html - [ ] Check new bootable USB solution: https://ventoy.net/en/index.html
- [ ] move to ansible for easier modularization of setup - [ ] move to ansible for easier modularization of setup
- [ ] notifications: move from ~mako~ to ~dunst~ when dunst >1.6 is available
on debian ** Moving to Arch
- official repository setup: https://wiki.archlinux.org/title/Official_repositories#multilib
- multiplib is required for wine
- Sound troubleshooting: https://wiki.archlinux.org/title/Advanced_Linux_Sound_Architecture/Troubleshooting#HDMI
- Skype: https://www.tecmint.com/install-skype-in-arch-linux/

View File

@ -555,7 +555,7 @@ EOF
# install/update golang from source # install/update golang from source
install_golang() { install_golang() {
export GO_VERSION=1.16.0 export GO_VERSION=1.17.3
export GO_SRC=/usr/local/go export GO_SRC=/usr/local/go
# if we are passing the version # if we are passing the version

329
scripts/install_arch.sh Executable file
View File

@ -0,0 +1,329 @@
#!/bin/bash
set -e
# install.sh
# This script installs a basic setup for a debian machine
USERNAME=fschl
SUDO="sudo"
check_root() {
# We need root rights at some point
if [ "$(whoami)" != "root" ]; then
if ! which $SUDO >/dev/null; then
echo "ERROR: $0 is not run as root and $SUDO is not available" >&2
exit 1
fi
else
SUDO="" # We're already root
fi
}
base_applications() {
echo "update and installing baseapps..."
$SUDO pacman -S -y \
bash-completion \
bmon \
bzip2 \
ca-certificates \
cmake \
coreutils \
cryptsetup \
curl \
dhclient \
dnsutils \
gcc \
git \
gnupg \
htop \
make \
mount \
net-tools \
networkmanager \
rsync \
openssh \
sudo \
tar \
tmux \
tree \
unzip \
vim \
vpnc \
wireguard-tools \
zip
echo "... DONE... cleaning up\n\n"
# $SUDO ip link add dev wg0 type wireguard
$SUDO systemctl start NetworkManager.service
$SUDO systemctl enable NetworkManager.service
}
no_suspend() {
# https://wiki.debian.org/SystemdSuspendSedation
$SUDO sed -i "s/HandleLidSwitch=.*/HandleLidSwitch=ignore/" /etc/systemd/logind.conf
$SUDO sed -i "s/HandleLidSwitchDocked=.*/HandleLidSwitchDocked=ignore/" /etc/systemd/logind.conf
$SUDO sed -i "s/IdleActionSec=.*/IdleActionSec=90min/" /etc/systemd/logind.conf
# turn off screen blanking
# https://www.raspberrypi.org/forums/viewtopic.php?f=66&t=18200&sid=135af53eb82496bc64f4c0eefbc86d2c&start=25
# http://raspberrypi.stackexchange.com/questions/752/how-do-i-prevent-the-screen-from-going-blank
xset s noblank
$SUDO systemctl restart systemd-logind.service
}
install_nvidia_docker() {
# get latest driver from https://www.nvidia.com/object/unix.html
# https://github.com/NVIDIA/nvidia-docker/wiki/Installation-(version-2.0)#prerequisites
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | \
sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update
# Install nvidia-docker2 and reload the Docker daemon configuration
sudo apt-get install -y nvidia-docker2
sudo pkill -SIGHUP dockerd
}
install_latex() {
echo "- installing LaTeX.."
pacman -S -y \
evince \
texlive \
texlive-bibtex-extra \
texlive-fonts-extra \
texlive-fonts-recommended \
texlive-lang-english \
texlive-lang-german \
texlive-latex-extra \
texlive-latex-recommended \
texlive-pictures \
texlive-plain-generic
echo "..done"
}
install_i3() {
echo "- installing i3wm and some tools..."
# check if CJK and other eastern letters are displayed correctly:
# https://meta.wikimedia.org/wiki/List_of_Wikipedias
# tlp: Advanced Linux Power Management
# http://linrunner.de/en/tlp/docs/tlp-linux-advanced-power-management.html
# deb http://repo.linrunner.de/debian sid main
pacman -Sy \
alsa-utils \
arandr \
aspell \
aspell-de \
aspell-en \
emacs \
feh \
firefox \
gimp \
i3 \
i3lock \
i3lock-fancy \
i3status \
keepassxc \
lightdm \
obs-studio \
openvpn \
powerline-fonts \
pulseaudio \
pulseaudio-alsa \
pulsemixer \
rxvt-unicode \
scrot \
shotwell \
thunderbird \
thunderbird-l10n-de \
thunderbird-l10n-en-gb \
ttf-font-awesome \
ttf-dejavu \
ttf-opensans \
udiskie \
vlc \
xorg \
xorg-xrandr \
noto-fonts \
syncthing
$SUDO localectl set-x11-keymap de,de ctrl:nocaps
# cups-browsed \
# feh \
# firmware-linux-nonfree \
# firmware-realtek \
# fswebcam \
# libnotify-bin \
# libnotify-dev \
# libreoffice-calc \
# libreoffice-impress \
# libreoffice-l10n-de \
# libreoffice-l10n-en-gb \
# libreoffice-writer \
# network-manager-gnome \
# network-manager-vpnc \
# network-manager-vpnc-gnome \
# notify-osd \
# ntfs-3g \
# nmap \
# pulseaudio \
# remmina \
# rxvt-unicode-256color \
# scrot \
# shotwell \
# slim \
# --no-install-recommends
# cat <<-EOF > /usr/share/dbus-1/services/org.freedesktop.Notifications.service
# [D-BUS Service]
# Name=org.freedesktop.Notifications
# Exec=/usr/lib/notification-daemon/notification-daemon
# EOF
TARGET="/home/$USERNAME/.emacs.d"
git clone https://github.com/syl20bnr/spacemacs "${TARGET}"
# rm -rf "${TARGET}"/private/snippets
# git clone https://github.com/AndreaCrotti/yasnippet-snippets "${TARGET}"/private/yas-snippets
# ln -s "${TARGET}"/private/yas-snips/snippets "${TARGET}"/private/snippets/
no_suspend
echo "... setting capslock to control"
sed -i "s/^XKBOPTIONS=.*/XKBOPTIONS=\"ctrl:nocaps\"/" /etc/default/keyboard
TARGET="/home/$USERNAME/.emacs.d"
git clone https://github.com/syl20bnr/spacemacs "${TARGET}"
#rm -rf "${TARGET}"/private/snippets
#git clone https://github.com/AndreaCrotti/yasnippet-snippets "${TARGET}"/private/yas-snips
#ln -s "${TARGET}"/private/yas-snips/snippets "${TARGET}"/private/snippets/
}
link_userdirs() {
mount_dir=$1
target_mount="${mount_dir:-/mnt/docs/}"
user_dirs=("Documents Downloads Music Pictures Videos")
for DIR in $user_dirs
do
echo "removing and linking ${DIR}..."
rm -rfv /home/$USERNAME/$DIR
echo "link target: ${target_mount}/${DIR}"
ln -vs ${target_mount}/${DIR} /home/${USERNAME}/${DIR}
done
projects_mount=$docs_mount
}
install_wine() {
# edit /etc/pacman.conf
# TODO: enable multilib + Include mirrorlist
# if using NVidia gpu
$SUDO pacman -S \
lib32-alsa-plugins \
lib32-libpulse \
lib32-nvidia-utils \
lib32-openal \
multilib \
wine
}
install_vscodium() {
# https://vscodium.com/
pacman -S -y \
codium \
--no-install-recommends
codium version
}
install_docker() {
echo "installing docker binary Version $VERS ..."
# https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
pacman -Sy \
docker \
docker-compose
docker version
docker info
}
install_nvidia() {
echo "Prepare install for NVIDIA proprietary display driver"
pacman -Sy \
nvidia
}
install_virtualbox() {
# https://wiki.debian.org/VirtualBox#Installation_of_non-free_edition
pacman -S -y \
apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common \
--no-install-recommends
}
main() {
local cmd=$1
if [[ -z "$cmd" ]]; then
echo "Usage: \n base (includes docker+compose)| desktop | server | dotfiles | vscode | latex | update-docker | go"
fi
case "$cmd" in
base)
# apt_sources buster
base_applications
;;
server)
base_applications
install_server_base
install_docker
install_compose
;;
desktop)
base_applications
install_docker
install_compose
install_i3
if [ -f "./get_private_stuff.sh" ]; then
source get_private_stuff.sh
fi
;;
links)
link_userdirs /mnt/docs/
;;
latex)
install_latex
;;
vscode)
install_vscodium
;;
update-docker)
install_docker
install_compose
;;
go)
install_golang
;;
esac
}
main "$@"