diff --git a/.bashrc b/.bashrc index 5546a8e..aa8e52c 100755 --- a/.bashrc +++ b/.bashrc @@ -118,7 +118,6 @@ if [ -z "$SSH_AUTH_SOCK" ] ; then # ssh-add fi - # 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 # END_KITTY_SHELL_INTEGRATION diff --git a/.i3/config b/.i3/config index 2ee883f..1c40a59 100755 --- a/.i3/config +++ b/.i3/config @@ -86,6 +86,7 @@ bindsym $mod+Shift+space floating toggle bindsym $mod+space focus mode_toggle # float some applications for_window [class="Tor Browser"] floating enable +for_window [title=".*alculator.*"] floating enable bindsym $mod+a focus parent # focus the parent container @@ -126,9 +127,9 @@ mode "monitor" { # CENTER main, RIGHT secondary 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 - 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 - 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 bindsym 8 exec xrandr --output $RIGHT --primary --auto --output $LAPTOP --auto --left-of $RIGHT --output $CENTER --off # HDMI main, VGA right, laptop off @@ -144,7 +145,6 @@ workspace $WS1 output $CENTER workspace $WS2 output $CENTER workspace $WS3 output $RIGHT workspace $WS4 output $RIGHT -workspace $WS5 output $CENTER workspace $WS8 output $RIGHT workspace $WS9 output $RIGHT @@ -227,13 +227,14 @@ bar { urgent_workspace #d33682 #d33682 #fdf6e3 } output $CENTER - font pango:DejaVu Sans Mono, FontAwesome 7 + font pango:DejaVu Sans Mono, FontAwesome 9 status_command i3status --config ~/.i3/status.conf tray_output $CENTER } bar { output $RIGHT + output $LEFT status_command i3status --config ~/.i3/status_small.conf tray_output $CENTER } @@ -250,17 +251,11 @@ bar { # startup programs -exec amixer set Master 1+ off -exec amixer set Master 54 exec --no-startup-id nm-applet -# exec --no-startup-id xrandr --output LVDS1 --left-of VGA1 --auto -# 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 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 i3-msg 'workspace $WS1; exec firefox;' 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 keepassxc' -# exec --no-startup-id i3-msg 'exec nextcloud' exec --no-startup-id i3-msg 'workspace $WS3; exec kitty;' diff --git a/.i3/status.conf b/.i3/status.conf index 64cfd87..8d172e9 100755 --- a/.i3/status.conf +++ b/.i3/status.conf @@ -31,8 +31,8 @@ order += "battery 0" # order += "cpu_temperature 0" order += "memory" order += "load" -#order += "tztime local" -order += "tztime DE" +order += "tztime local" +# order += "tztime DE" #order += "tztime KG" # order += "tztime UK" @@ -42,12 +42,6 @@ ethernet 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 { # if you use %speed, i3status requires root privileges format_up = "E: %ip (%speed)" @@ -78,7 +72,7 @@ tztime local { tztime DE { format = "DE %Y-%m-%d (%V) %a %H:%M:%S" - timezone = "Europe/Berlin" + timezone = "Europe/Berlin" } tztime UK { @@ -121,10 +115,10 @@ disk "/media/driveBay" { format = "/ %avail" } -volume Master { - format = " %volume" - format_muted = " %volume" - device = "default" - mixer = "Master" - mixer_idx = 0 -} +# volume Master { +# format = " %volume" +# format_muted = " %volume" +# device = "default" +# mixer = "Master" +# mixer_idx = 0 +# } diff --git a/.profile b/.profile index 93bbc73..bb8de48 100755 --- a/.profile +++ b/.profile @@ -21,3 +21,4 @@ if [ -d "$HOME/bin" ] ; then PATH="$HOME/bin:$PATH" fi +. "$HOME/.cargo/env" diff --git a/.spacemacs b/.spacemacs index 38a4e7b..6332e09 100644 --- a/.spacemacs +++ b/.spacemacs @@ -56,8 +56,8 @@ This function should only modify configuration layer settings." python rust shell - shell-scripts - spell-checking + ;; shell-scripts + ;; spell-checking syntax-checking version-control yaml diff --git a/README.org b/README.org index 20f7088..e1a26f5 100644 --- a/README.org +++ b/README.org @@ -116,5 +116,10 @@ - [ ] seperate sources.list setup for server/desktop/laptop - [ ] Check new bootable USB solution: https://ventoy.net/en/index.html - [ ] 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/ diff --git a/scripts/install.sh b/scripts/install.sh index 3451557..bf4c6c1 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -555,7 +555,7 @@ EOF # install/update golang from source install_golang() { - export GO_VERSION=1.16.0 + export GO_VERSION=1.17.3 export GO_SRC=/usr/local/go # if we are passing the version diff --git a/scripts/install_arch.sh b/scripts/install_arch.sh new file mode 100755 index 0000000..42ac369 --- /dev/null +++ b/scripts/install_arch.sh @@ -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 "$@"