diff --git a/001_apt-sources.sh b/001_apt-sources.sh index 9cbe9ca..011c4ba 100644 --- a/001_apt-sources.sh +++ b/001_apt-sources.sh @@ -8,8 +8,10 @@ AVAILABLE=/etc/apt/sources.list-available mkdir -p "${AVAILABLE}" SECTION=(main contrib non-free) -ACTIVE_LIST=('ascii' 'ascii-security' 'ascii-updates' 'ascii-backports') -INACTIVE_LIST=('jessie' 'jessie-security' 'jessie-updates' 'jessie-backports' 'beowulf' 'beowulf-security' 'beowulf-updates' 'beowulf-backports' 'ceres') +ACTIVE_LIST=('beowulf' 'beowulf-security' 'beowulf-updates' 'beowulf-backports') +#ACTIVE_LIST=('ascii' 'ascii-security' 'ascii-updates' 'ascii-backports') +#INACTIVE_LIST=('jessie' 'jessie-security' 'jessie-updates' 'jessie-backports' 'beowulf' 'beowulf-security' 'beowulf-updates' 'beowulf-backports' 'ceres') +INACTIVE_LIST=('jessie' 'jessie-security' 'jessie-updates' 'jessie-backports' 'ascii' 'ascii-security' 'ascii-updates' 'ascii-backports' 'ceres') OTHER_LIST=('experimental') @@ -57,8 +59,7 @@ bash -c cat > "${AVAILABLE}"/docker.list <>>>>>> 28f9022a8c89ab256d49746af2debedcf1764b46 + +OTHER_LIST=('experimental') + +echo ${#ACTIVE_LIST[@]} +for RELEASE in "${ACTIVE_LIST[@]}"; do + echo "${RELEASE}" + bash -c "cat > ${AVAILABLE}/devuan_${RELEASE}.list" < ${AVAILABLE}/devuan_${RELEASE}.list" < ${AVAILABLE}/devuan_${RELEASE}.list" < ${AVAILABLE}/saltstack.list" < "${AVAILABLE}"/docker.list < /etc/apt/sources.list.d/x2go.list" <<'EOF' +## apt-key adv --recv-keys --keyserver keys.gnupg.net E1F958385BFE2B6E +## X2Go Repository (release builds) +#deb http://packages.x2go.org/debian jessie main +# +## X2Go Repository (sources of release builds) +#deb-src http://packages.x2go.org/debian jessie main +# +## X2Go Repository (nightly builds) +##deb http://packages.x2go.org/debian jessie heuler +# +## X2Go Repository (sources of nightly builds) +##deb-src http://packages.x2go.org/debian jessie heuler +# +## apt-get install x2goserver x2goserver-xsession +#EOF diff --git a/001_enable-binfmt-misc.sh b/001_enable-binfmt-misc.sh new file mode 100644 index 0000000..3a0a3b4 --- /dev/null +++ b/001_enable-binfmt-misc.sh @@ -0,0 +1,9 @@ +sudo apt-get install -y --reinstall qemu qemu-user-static binfmt-support +sudo update-binfmts --enable qemu-aarch64 + +sudo sed -i '10s/^$/yes/g' /var/lib/binfmts/qemu-arm /var/lib/binfmts/qemu-aarch64 + +sudo /etc/init.d/binfmt-support restart + +# test +sudo docker run --rm -it arm64v8/busybox echo Hello World diff --git a/001_resolvconf.sh b/001_resolvconf.sh index 7467bbe..6bdf2e5 100644 --- a/001_resolvconf.sh +++ b/001_resolvconf.sh @@ -1,5 +1,7 @@ apt-get -y install --reinstall resolvconf mkdir -p /etc/resolvconf/resolv.conf.d/ -bash -c 'echo "nameserver 52.174.55.168 >> /etc/resolvconf/resolv.conf.d/head' -bash -c 'echo "nameserver 188.165.200.156" >> /etc/resolvconf/resolv.conf.d/head' +bash -c 'echo "nameserver 62.113.203.55" >> /etc/resolvconf/resolv.conf.d/head' +bash -c 'echo "nameserver 82.141.39.32" >> /etc/resolvconf/resolv.conf.d/head' +bash -c 'echo "nameserver 51.254.141.22" >> /etc/resolvconf/resolv.conf.d/head' +bash -c 'echo "options timeout 1 attempts 1 rotate" >> /etc/resolvconf/resolv.conf.d/tail' /etc/init.d/resolvconf reload diff --git a/001_udev-rules.sh b/001_udev-rules.sh index b93a5f9..781e13f 100644 --- a/001_udev-rules.sh +++ b/001_udev-rules.sh @@ -16,6 +16,15 @@ ATTRS{idVendor}=="21a9", ATTRS{idProduct}=="1004", MODE="664", GROUP="plugdev" LABEL="saleae_logic_rules_end" EOF +cat > /etc/udev/rules.d/99-ch341a-prog.rules << 'EOF' +SUBSYSTEM!="usb", GOTO="ch431a-prog_rules_end" + +ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="5512", MODE="0666", GROUP="plugdev" + +LABEL="ch431a-prog_rules_end" +EOF + +echo 'blacklist usbtest' >> /etc/modprobe.d/blacklist.conf cat > /etc/udev/rules.d/99-xf2-logic.rules << 'EOF' SUBSYSTEM!="usb", GOTO="fx2-probe--programming_rules_end" @@ -55,6 +64,22 @@ ATTRS{idVendor}=="10C4", ATTRS{idProduct}=="EA61", MODE="0666", GROUP="plugdev" LABEL="cp210x-programming_rules_end" EOF +cat > /etc/udev/rules.d/99-ftdi.rules << 'EOF' +SUBSYSTEM=="usb", GOTO="ftdi_rules_end" + +ATTR{product}=="ftdi", ATTR{idProduct}=="0403", ATTRS{idVendor}=="6001", MODE="0666", GROUP="plugdev" + +LABEL="ftdi_rules_end" +EOF + +cat > /etc/udev/rules.d/99-USBasp.rules << 'EOF' +SUBSYSTEM=="usb", GOTO="USBasp_rules_end" + +ATTR{product}=="USBasp", ATTR{idProduct}=="05dc", ATTRS{idVendor}=="16c0", MODE="0666", GROUP="plugdev" + +LABEL="USBasp_rules_end" +EOF + cat > /etc/udev/rules.d/81-thinkpad-dock.rules << 'EOF' KERNEL=="dock.0", ACTION=="change", RUN+="/usr/local/sbin/thinkpad-dock.sh" EOF @@ -66,3 +91,4 @@ ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0666", GROUP="plugdev", S LABEL="android_rules_end" EOF + diff --git a/010_alsa.sh b/010_alsa.sh index 2027d57..4a6922e 100644 --- a/010_alsa.sh +++ b/010_alsa.sh @@ -8,7 +8,7 @@ rm ~/.pulse-cookie rm -r ~/.config/pulse rm -rf /tmp/pulse* -apt-get -y install alsa-base alsa-tools alsa-tools-gui alsa-utils alsa-oss alsamixergui libalsaplayer0 +apt-get -y install alsa-base alsa-tools alsa-tools-gui alsa-utils alsa-oss alsamixergui volumeicon-alsa libalsaplayer0 apt-get -y install pnmixer /etc/init.d/alsa-utils restart @@ -16,3 +16,9 @@ apt-get -y install pnmixer kill -HUP `ps aux | grep -v grep | grep pnmixer | awk {'print $2'}` sed -i 's,^\(VolumeControlCommand=\).*,\1'xfce4-mixer',' ~/.config/pnmixer/config pnmixer & + +cat > /etc/udev/rules.d/00_alsa-usb.rules << 'EOF' +# Default to using additional (USB) sound cards when they are available. +KERNEL=="pcmC[D0-9cp]*", ACTION=="add", PROGRAM="/bin/sh -c 'K=%k; K=$${K#pcmC}; K=$${K%%D*}; echo defaults.ctl.card $$K > /etc/asound.conf; echo defaults.pcm.card $$K >>/etc/asound.conf'" +KERNEL=="pcmC[D0-9cp]*", ACTION=="remove", PROGRAM="/bin/sh -c 'echo defaults.ctl.card 0 > /etc/asound.conf; echo defaults.pcm.card 0 >>/etc/asound.conf'" +EOF diff --git a/010_apt-get.sh b/010_apt-get.sh index 454fc57..36c72cd 100644 --- a/010_apt-get.sh +++ b/010_apt-get.sh @@ -1,8 +1,14 @@ -apt-get -y install curl apt-file +apt-get -y install software-properties-common apt-transport-https wget curl lvm2 +apt-get -y install apt-file +apt-get -y install tree +apt-get -y install tmux apt-get -y install xclip +apt-get -y install xsel +apt-get -y install neofetch apt-get -y install sshpass apt-get -y install git apt-get -y install tig +apt-get -y install grc apt-get -y install gitk apt-get -y install zsync apt-get -y install jq @@ -12,21 +18,44 @@ apt-get -y install kpartx apt-get -y install inxi apt-get -y --force-yes install xmlstarlet apt-get -y install hexedit -apt-get -y install geeqie -apt-get -y install sshpass apt-get -y install wicd-curses apt-get -y install htop apt-get -y install iotop -apt-get -y install atril +apt-get -y install sysstat +apt-get -y install mpv +apt-get -y install netcat +apt-get -y install socat apt-get -y install youtube-dl -apt-get -y install rox-filer +apt-get -y install tor +apt-get -y install torsocks +apt-get -y install cmus +apt-get -y install scdl apt-get -y install checkinstall apt-get -y install ntp ntpdate +apt-get -y install nmap apt-get -y install gstreamer1.0-plugins-ugly gstreamer1.0-plugins-good gstreamer1.0-libav + +apt-get -y install cuetools +apt-get -y install flac +apt-get -y install vorbis-tools +apt-get -y install sox +apt-get -y install wavpack +apt-get -y install shntools +apt-get -y install lltag + +apt-get -y install firmware-iwlwifi #For thinkpad wifi: Intel 5100 AGN [Shiloh] +apt-get -y install grub-pc grub2 gpart cgpt +apt-get -y install flex bison +apt-get -y install rsync +apt-get -y install socat + +apt-get -y install rox-filer +apt-get -y install atril +apt-get -y install pandoc apt-get -y install libreoffice-pdfimport apt-get -y install terminology -apt-get -y install firmware-iwlwifi #For thinkpad wifi: Intel 5100 AGN [Shiloh] -apt-get -y install grub-pc grub2 gpart -apt-get install -y vim-gtk software-properties-common apt-transport-https wget curl lvm2 - +apt-get -y install geeqie +apt-get -y install vbindiff +apt-get -y install xwhexedit +apt-get -y install lshw diff --git a/010_hddtemp.sh b/010_hddtemp.sh new file mode 100644 index 0000000..ed480f2 --- /dev/null +++ b/010_hddtemp.sh @@ -0,0 +1,4 @@ +apt-get install -y hddtemp + +# RUN_DAEMON="false" +sed -i 's,^\(RUN_DAEMON=\).*,\1'\"true\"',' /etc/default/hddtemp diff --git a/010_nosh.sh b/010_nosh.sh new file mode 100644 index 0000000..813ba19 --- /dev/null +++ b/010_nosh.sh @@ -0,0 +1,217 @@ +## Setting init in grub can use the pre-exiting init system +# init=/lib/sysvinit/init +# init=/lib/systemd/systemd + +echo "deb http://Debian-repository.JdeBP.info./ stable main" > /etc/apt/sources.list-available/nosh.list +ln -s /etc/apt/sources.list-available/nosh.list /etc/apt/sources.list.d/nosh.list +#curl "http://Debian-repository.JdeBP.info./repository_signing_key.pub" > /usr/share/keyrings/jdebp-debian-repository.gpg +curl "https://JdeBP.EU./Repository/debian/repository_signing_key.pub" > /usr/share/keyrings/jdebp-debian-repository.gpg + + +apt-get update + +## https://jdebp.eu/Softwares/nosh/debian-binary-packages.html +# Documentation +apt-get install -y nosh-guide + +apt-get install -y \ + nosh-exec \ + nosh-service-management \ + nosh-terminal-management \ + nosh-systemv-shims + +apt-get install -y \ + nosh-run-system-manager \ + nosh-run-local-syslog \ + nosh-run-klog \ + nosh-run-udev \ + nosh-run-user-vt + #nosh-run-kernel-vt \ + +redo -C /etc/system-control/convert/ all + +## Toolsets + +## (exec, nosh, and the chain-loading utilities) +#apt-get install -y nosh-exec + +## (system-manager, service-manager, system-control, service-control and related utilities) +#apt-get install -y nosh-service-management + +## (console-terminal-emulator, vc-get-tty, pty-get-tty, ttylogin-starter and related utilities) +#apt-get install -y nosh-terminal-management + +## (ptybandage, ptyrun and related utilities) +apt-get install -y nosh-terminal-extras + +## (tcpserver shim) +apt-get install -y nosh-ucspi-tcp-shims + +## (Z Shell completions for the toolsets) +apt-get install -y nosh-zsh-completion + +## (systemd and servicectl shims for systemd compatibility) +#apt-get install -y nosh-systemd-shims + +## (halt, reboot, poweroff, telinit, chkconfig, and related shims for old-style System 5/BSD compatibility) +apt-get install -y nosh-systemv-shims + +## (service shim for old-style System 5/BSD compatibility) +apt-get install -y nosh-service-command-shim + +## (start, stop, initctl, and related shims for upstart compatibility) +#apt-get install -y nosh-upstart-shims + +## (invoke-rc.d and update-rc.d shims for Debian compatibility) +apt-get install -y nosh-debian-shims + +## (fasthalt, fastboot, and fastpoweroff shims for BSD compatibility) +#apt-get install -y nosh-bsd-shims + +## (rcctl and and related shims for OpenBSD compatibility) +#apt-get install -y nosh-openbsd-shims + +## (utx and and related shims for FreeBSD compatibility) +#apt-get install -y nosh-freebsd-shims + +## (resizecons, clear_console, and chvt shims for compatibility with the old kbd package) +apt-get install -y nosh-kbd-shims + +## Service bundles +apt-get install -y nosh-bundles + +## system-manager as process #1 (removes nosh-run-via-systemd) +#apt-get install -y nosh-run-system-manager + + +## Base services +# includes virecover and Debian cron. +apt-get install -y nosh-run-debian-server-base + +# CUPS, anacron, and Sun RPC. +#apt-get install -y nosh-run-debian-desktop-base_1.37_amd64.deb + +## Change the Desktop Bus helper program +## Fix udev behaviour on non-systemd +# The nosh toolset comes with one such replacement helper program, dbus-daemon-launch-helper, that can use system-control to speak to nosh service management, initctl to speak to upstart service management, or systemctl to speak to systemd service management. + +## Edit /etc/dbus-1/system.conf +## replace: +# +# /usr/lib/dbus-1.0/dbus-daemon-launch-helper +## with: +# +# /usr/local/bin/dbus-daemon-launch-helper + +DBUS_HOME=/usr/share/polkit-1 +# xmlstarlet will parse then output valid xml but removes whitespace lines people should either use +# xml or a user readable format. +#SERVICE_HELPER=/usr/local/bin/dbus-daemon-launch-helper +#xmlstarlet edit -L -u "/busconfig/servicehelper" -v ${SERVICE_HELPER} ${DBUS_HOME}/system.conf + +# sed to edit xml is bad but works and preserves layout but does not guarantee valid xml. +COMMENT_OLD="<\!-- This is a setuid helper that is used to launch system services -->" +COMMENT_NEW="<\!-- This is a non-setuid helper that is used to tell service management to launch system services -->" +sed -i -e s"|${COMMENT_OLD}|${COMMENT_NEW}|" ${DBUS_HOME}/system.conf + +SERVICE_HELPER_OLD="/usr/lib/dbus-1.0/dbus-daemon-launch-helper" +SERVICE_HELPER_NEW="/usr/local/bin/dbus-daemon-launch-helper" +sed -i -e s"|${SERVICE_HELPER_OLD}|${SERVICE_HELPER_NEW}|" ${DBUS_HOME}/system.conf + +## Plug and play device managers + +## (vdev) +#apt-get install nosh-run-vdev_1.37_amd64.deb (vdev) + +## (systemd's udev) +#apt-get install -y nosh-run-udev + +## (busybox mdev) +#apt-get install nosh-run-busybox-mdev + +## (suckless mdev) +#apt-get install nosh-run-suckless-mdev + +## Virtual terminal services + +## (old-style kernel virtual terminals) +#apt-get install -y nosh-run-kernel-vt + +## (a new-style application-mode virtual terminal) +#apt-get install -y nosh-run-user-vt + +## Freedesktop.org "kit" services +# (Freedesktop.org "kit" services — packagekit, consolekit, policykit, NetworkManager, ModemManager et al.) +#apt-get install -y nosh-run-freedesktop-kits + +## VirtualBox Guest Additions +#apt-get install -y nosh-run-virtualbox-guest + +## kernel log service +#apt-get install -y nosh-run-klog + +## local syslog() service +# old-style logging service to programs that still use /dev/log. +#apt-get install -y nosh-run-local-syslog + +# Index of ftp://repository.jdebp.info./debian/dists/stable/main/binary-amd64/ +# +# Packages +# Packages.bz2 +# clockspeed_7_amd64.deb +# daemontools_7_amd64.deb +# djbdns-host_7_amd64.deb +# djbdns_7_amd64.deb +# leapsecs_7_amd64.deb +# libtai_7_amd64.deb +# multilog_7_amd64.deb +# +# nosh-bsd-services_1.13_amd64.deb +# nosh-bsd-shims_1.37_amd64.deb +# nosh-bsd-sockets_1.13_amd64.deb +# nosh-bundles_1.37_amd64.deb +# nosh-core-shims_1.37_amd64.deb +# nosh-debian-shims_1.37_amd64.deb +# nosh-exec_1.37_amd64.deb +# nosh-execline-shims_1.37_amd64.deb +# nosh-freebsd-shims_1.37_amd64.deb +# nosh-guide_1.37_amd64.deb +# nosh-kbd-shims_1.37_amd64.deb +# nosh-logrotate-shims_1.37_amd64.deb +# nosh-openbsd-shims_1.37_amd64.deb +# nosh-regular-services_1.13_amd64.deb +# nosh-regular-sockets_1.13_amd64.deb +# +# nosh-run-appletalk_1.37_amd64.deb +# nosh-run-busybox-mdev_1.37_amd64.deb +# nosh-run-debian-desktop-base_1.37_amd64.deb +# nosh-run-debian-server-base_1.37_amd64.deb +# nosh-run-freedesktop-kits_1.37_amd64.deb +# nosh-run-freedesktop-system-bus_1.37_amd64.deb +# nosh-run-kernel-vt_1.37_amd64.deb +# nosh-run-klog_1.37_amd64.deb +# nosh-run-local-syslog_1.37_amd64.deb +# nosh-run-openssh-server_1.37_amd64.deb +# nosh-run-suckless-mdev_1.37_amd64.deb +# nosh-run-system-manager_1.37_amd64.deb +# nosh-run-systemd-udev_1.37_amd64.deb +# nosh-run-udev_1.37_amd64.deb +# nosh-run-user-vt_1.37_amd64.deb +# nosh-run-vdev_1.37_amd64.deb +# nosh-run-via-systemd_1.37_amd64.deb +# +# nosh-service-command-shim_1.37_amd64.deb +# nosh-service-management_1.37_amd64.deb +# nosh-systemd-services_1.14_amd64.deb +# nosh-systemv-shims_1.37_amd64.deb +# nosh-terminal-extras_1.37_amd64.deb +# nosh-terminal-management_1.37_amd64.deb +# nosh-ucspi-tcp-shims_1.37_amd64.deb +# nosh-upstart-shims_1.37_amd64.deb +# nosh-zsh-completion_1.37_amd64.deb +# nosh_1.28_amd64.changes +# +# ptyget_7_amd64.deb +# publicfile_7_amd64.deb +# redo_1.4_amd64.deb +# taiclockd_7_amd64.deb diff --git a/010_python.sh b/010_python.sh index 922f1c7..ab5e9f0 100644 --- a/010_python.sh +++ b/010_python.sh @@ -2,6 +2,8 @@ apt-get install -y python-dev python3-dev apt-get install -y python3-requests apt-get install -y python3-autopep8 apt-get install -y python3-ipython +apt-get install -y bpython +apt-get install -y bpython3 apt-get install -y python3-pylint apt-get install -y virtualenvwrapper apt-get install -y prospector diff --git a/010_saltstack.sh b/010_saltstack.sh index 6b0ced6..25ca3ec 100644 --- a/010_saltstack.sh +++ b/010_saltstack.sh @@ -29,19 +29,20 @@ # wget -O - https://repo.saltstack.com/apt/debian/9/amd64/latest/SALTSTACK-GPG-KEY.pub | apt-key add - # deb http://repo.saltstack.com/apt/debian/9/amd64/latest stretch main -DEBIAN_VERSION=8 -DEBIAN_RELEASE=jessie +#DEBIAN_VERSION=8 +#DEBIAN_RELEASE=jessie -#DEBIAN_VERSION=9 -#DEBIAN_RELEASE=stretch +DEBIAN_VERSION=9 +DEBIAN_RELEASE=stretch SALT_VERSION=2016.3 SALT_VERSION=2016.11 SALT_VERSION=2017.7 -SALT_VERSION=archive/2017.7.1 +SALT_VERSION=archive/2017.7.3 +SALT_VERSION=2018.3.0 SALT_VERSION=latest -REFRESHED_AT=2017-09-31 +REFRESHED_AT=2018-06-10 mkdir -p /etc/apt/sources.list-available #bash -c "wget -q -O- "http://debian.saltstack.com/debian-salt-team-joehealy.gpg.key" | apt-key add -" @@ -77,18 +78,18 @@ apt-get update && apt-get upgrade -y -o DPkg::Options::=--force-confold # Install Salt Dependencies -apt-get install -y -o DPkg::Options::=--force-confold \ - python \ +apt-get install -y -o DPkg::Options::=--force-confold \ + python \ apt-utils \ - python-software-properties \ - software-properties-common \ - python-yaml \ - python-m2crypto \ - python-crypto \ - python-msgpack \ - python-zmq \ + python-software-properties \ + software-properties-common \ + python-yaml \ + python-m2crypto \ + python-crypto \ + python-msgpack \ + python-zmq \ python2.7-doc \ - python-jinja2 \ + python-jinja2 \ python-requests apt-get -y install salt-client @@ -105,11 +106,20 @@ apt-get install -yq -o -o DPkg::Options::=--force-confold --no-install-recommend python-git \ python-openssl \ python-cherrypy3 \ - git \ - openssh-client \ + git \ + openssh-client \ make # Or get the development version # apt-get upgrade -y -o DPkg::Options::=--force-confold && \ # apt-get install -y -o DPkg::Options::=--force-confold curl # curl -L https://bootstrap.saltstack.com | sh -s -- -X git develop + +# salt-common in debian is missing zsh completions +# source: https://github.com/saltstack/salt/tree/develop/pkg/ *.{bash,zsh} +# FYI: completition provided by salt-common pkg + +test -e /usr/share/bash-completion/completions/salt-common || \ + curl -sL "https://raw.githubusercontent.com/saltstack/salt/develop/pkg/salt.bash" | sudo tee /usr/share/bash-completion/completions/salt-common +test -e /usr/share/zsh/vendor-completions/_salt || \ + curl -sL "https://raw.githubusercontent.com/saltstack/salt/develop/pkg/zsh_completion.zsh" | sudo tee /usr/share/zsh/vendor-completions/_salt diff --git a/010_zfs.sh b/010_zfs.sh index 99cc6a7..61c1bc5 100644 --- a/010_zfs.sh +++ b/010_zfs.sh @@ -2,10 +2,35 @@ apt-get install -y dkms busybox-static apt-get install -y initramfs-tools dh-autoreconf apt-get install -y spl spl-dkms -apt-get install -y zfs-dkms zfs-initramfs +apt-get install -y linux-headers-$(uname -r) zfs-dkms zfs-initramfs zfsutils-linux apt-get install -y zfs-zed # linux default, mount partitions even if non-empty, the no option really only makes sense if the directory being mounted on has been declared as a mount point only and is therefore guaranteed to be empty. sed -i "s,^\(DO_OVERLAY_MOUNTS=\).*,\1\'yes\'," /etc/default/zfs +# Allow readonly zfs to non-root users in sudoers (put in place by zfsutils-linux) +sed -ie 's/^#//' /etc/sudoers.d/zfs + +## or change below to change sudo behavior further: +#cat > /etc/sudoers.d/zfs << 'EOF' +## Allow read-only ZoL commands to be called through sudo +## without a password. Remove the first '#' column to enable. +## +## CAUTION: Any syntax error introduced here will break sudo. +## +## Cmnd alias specification +#Cmnd_Alias C_ZFS = \ +# /sbin/zfs "", /sbin/zfs help *, \ +# /sbin/zfs get, /sbin/zfs get *, \ +# /sbin/zfs list, /sbin/zfs list *, \ +# /sbin/zpool "", /sbin/zpool help *, \ +# /sbin/zpool iostat, /sbin/zpool iostat *, \ +# /sbin/zpool list, /sbin/zpool list *, \ +# /sbin/zpool status, /sbin/zpool status *, \ +# /sbin/zpool upgrade, /sbin/zpool upgrade -v +# +## allow any user to use basic read-only ZFS commands +#ALL ALL = (root) NOPASSWD: C_ZFS +#EOF + modprobe zfs diff --git a/010_zram.sh b/010_zram.sh new file mode 100644 index 0000000..5072bab --- /dev/null +++ b/010_zram.sh @@ -0,0 +1,58 @@ +#!/bin/sh +# https://www.kernel.org/doc/Documentation/blockdev/zram.txt +cat > /etc/init.d/zram <<'EOF' +#!/bin/sh +### BEGIN INIT INFO +# Provides: zram +# Required-Start: $local_fs +# Required-Stop: $local_fs +# Default-Start: S +# Default-Stop: 0 1 6 +# Short-Description: Use compressed RAM as in-memory swap +# Description: Use compressed RAM as in-memory swap +### END INIT INFO + +# Author: Antonio Galea +# Thanks to Przemysław Tomczyk for suggesting swapoff parallelization +# Distributed under the GPL version 3 or above, see terms at +# https://gnu.org/licenses/gpl-3.0.txt + +FRACTION=75 + +MEMORY=`perl -ne'/^MemTotal:\s+(\d+)/ && print $1*1024;' < /proc/meminfo` +CPUS=`nproc` +SIZE=$(( MEMORY * FRACTION / 100 / CPUS )) + +case "$1" in + "start") + param=`modinfo zram|grep num_devices|cut -f2 -d:|tr -d ' '` + modprobe zram $param=$CPUS + for n in `seq $CPUS`; do + i=$((n - 1)) + echo $SIZE > /sys/block/zram$i/disksize + mkswap /dev/zram$i + swapon /dev/zram$i -p 10 + done + ;; + "stop") + for n in `seq $CPUS`; do + i=$((n - 1)) + swapoff /dev/zram$i && echo "disabled disk $n of $CPUS" & + done + wait + sleep .5 + modprobe -r zram + ;; + "status") + swapon -s + ;; + *) + echo "Usage: `basename $0` (start | stop)" + exit 1 + ;; +esac +EOF + +chmod +x /etc/init.d/zram + +insserv zram diff --git a/020_arduino.sh b/020_arduino.sh index 8bbbc21..fd7bd1a 100644 --- a/020_arduino.sh +++ b/020_arduino.sh @@ -1,18 +1,143 @@ +ARDUINO_VERSION=1.8.5 +#ARDUINO_VERSION=nightly +#ARDUINO_HOME=~/ +ARDUINO_HOME=/opt +ARDUINO_DIR=${ARDUINO_HOME}/arduino-${ARDUINO_VERSION}/ +ARDUINO_TOOLS_DIR=${ARDUINO_TOOLS_DIR} +ADD_URLS= -cd /var/tmp -#ARDUINO_VERSION=1.8.3 -ARDUINO_VERSION=nightly +mkdir "${ARDUINO_TOOLS_DIR}" +sudo apt-get install gcc-arm-none-eabi openocd bsdtar + +cd /var/tmp || exit + +#Install arduino IDE wget -c https://downloads.arduino.cc/arduino-${ARDUINO_VERSION}-linux64.tar.xz && \ - cd /opt && \ + cd ${ARDUINO_HOME} && \ tar xf /var/tmp/arduino-${ARDUINO_VERSION}-linux64.tar.xz -usermod -a -G dialout $USER && \ +usermod -a -G dialout "${USER}" && \ apt-get install git python-serial -mkdir -p ~/Arduino/hardware/espressif && \ - cd ~/Arduino/hardware/espressif && \ +#https://raw.githubusercontent.com/espressif/arduino-esp32/master/package/package_esp32_index.template.json +#http://arduino.esp8266.com/stable/package_esp8266com_index.json +#https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json +#https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json +#https://micooke.github.io/package_nRF5_smartwatches_index.json + +# https://github.com/arduino/Arduino/wiki/Unofficial-list-of-3rd-party-boards-support-urls +# Install ESP32 core +ADD_URLS="${ADD_URLS},https://raw.githubusercontent.com/espressif/arduino-esp32/master/package/package_esp32_index.template.json" +${ARDUINO_DIR}/arduino \ + --pref boardsmanager.additional.urls=${ADD_URLS} \ + --save-prefs +# arduino [--install-boards package name:platform architecture[:version]] +${ARDUINO_DIR}/arduino --install-boards esp32:esp32 + +mkdir -p ${ARDUINO_DIR}/hardware/espressif && \ + cd ${ARDUINO_DIR}/hardware/espressif && \ git clone https://github.com/espressif/arduino-esp32.git esp32 && \ + cd esp32 && \ + git submodule update --init --recursive && \ cd esp32/tools/ && \ python get.py +# Install ESP8266 +cd /var/tmp || exit +ADD_URLS="${ADD_URLS},http://arduino.esp8266.com/stable/package_esp8266com_index.json" +echo ${ADD_URLS} +${ARDUINO_DIR}/arduino \ + --pref boardsmanager.additional.urls=${ADD_URLS} \ + --save-prefs +# arduino [--install-boards package name:platform architecture[:version]] +${ARDUINO_DIR}/arduino --install-boards esp8266:esp8266 + + + +# Install stm32 bluepill +# http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/latest/arduino-compatibility.html +# --pref boardsmanager.additional.urls="http://dan.drown.org/stm32duino/package_STM32duino_index.json" \ +#${ARDUINO_DIR}/arduino --install-boards stm32duino:STM32F1 +ADD_URLS="${ADD_URLS},https://github.com/stm32duino/BoardManagerFiles/raw/master/STM32/package_stm_index.json" +echo ${ADD_URLS} +${ARDUINO_DIR}/arduino \ + --pref boardsmanager.additional.urls=${ADD_URLS} \ + --save-prefs + +## arduino [--install-boards package name:platform architecture[:version]] +${ARDUINO_DIR}/arduino --install-boards STM32:stm32 + + +# Install NRF5x sandeepmistry https://github.com/sandeepmistry/arduino-nRF5 +#name "BBC micro:bit" +#name "Bluz DK" +#name "Generic nRF51822" +#name "Generic nRF52823" +#name "OSHChip" +#name "ng-beacon" +#name "nRF51 Dongle" +#name "nRF51822 Development Kit" +#name "nRF52 DK" +#name "RedBear BLE Nano 2" +#name "RedBear Blend 2" +#name "RedBearLab BLE Nano" +#name "RedBearLab nRF51822" +#name "Waveshare BLE400" + +ADD_URLS="${ADD_URLS},https://sandeepmistry.github.io/arduino-nRF5/package_nRF5_boards_index.json" +echo ${ADD_URLS} +${ARDUINO_DIR}/arduino \ + --pref boardsmanager.additional.urls=${ADD_URLS} \ + --save-prefs + +# arduino [--install-boards package name:platform architecture[:version]] +${ARDUINO_DIR}/arduino --install-boards sandeepmistry:nRF5 + +NRF_HOME=${ARDUINO_TOOLS_DIR}/nRF5FlashSoftDevice/tool/ +mkdir -p "${NRF_HOME}" && wget -c --directory-prefix "${NRF_HOME}" https://github.com/sandeepmistry/arduino-nRF5/releases/download/tools/nRF5FlashSoftDevice.jar + + +# nRF5 watches https://github.com/micooke/arduino-nRF5-smartwatches +# Smartwatch variants for sandeepmistry's Nordic Semiconductor nRF5 core +#name "IDO003" +#name "ID100HR" +#name "ID107HR" +#name "ID107HR Plus" +ADD_URLS="${ADD_URLS},https://micooke.github.io/package_nRF5_smartwatches_index.json" +${ARDUINO_DIR}/arduino \ + --pref boardsmanager.additional.urls=${ADD_URLS} \ + --save-prefs + +## arduino [--install-boards package name:platform architecture[:version]] +${ARDUINO_DIR}/arduino --install-boards micooke:nRF5 +## Install Readbear NRF5x +#cd /var/tmp || exit +#${ARDUINO_DIR}/arduino \ +# --pref="boardsmanager.additional.urls=https://redbearlab.github.io/arduino/package_redbearlab_index.json"\ +# --save-prefs +# +#wget -c https://raw.githubusercontent.com/RedBearLab/nRF51822-Arduino/S130/98-daplink.rules +#cp 98-daplink.rules /etc/udev/rules.d/ +# +#sudo udevadm control --reload-rules +# +## Fix the upload problem on Linux 64bit system +# +#sudo apt-get install lsb-core +# +#sudo apt-get install libudev1:i386 +# +#sudo ln -sf /lib/x86_64-linux-gnu/libudev.so.1 /lib/x86_64-linux-gnu/libudev.so.0 + +# Guru meditation decode - get a more meaningful explanation of the stack traces you get on ESP8266/ESP32. +wget -qO - https://github.com/me-no-dev/EspExceptionDecoder/releases/download/1.1.0/EspExceptionDecoder-1.1.0.zip | bsdtar -C "${ARDUINO_TOOLS_DIR}" -xvf- + + +# Other libraries direct from github +git clone https://github.com/adafruit/Touch-Screen-Library ~/Arduino/libraries/TouchScreen + +# https://learn.adafruit.com/ahrs-for-adafruits-9-dof-10-dof-breakout/sensor-fusion-algorithmsahrs +git clone https://github.com/PaulStoffregen/MahonyAHRS ~/Arduino/libraries/MahonyAHRS +git clone https://github.com/PaulStoffregen/MadgwickAHRS ~/Arduino/libraries/MadgwickAHRS + diff --git a/020_blender.sh b/020_blender.sh new file mode 100644 index 0000000..5aed26b --- /dev/null +++ b/020_blender.sh @@ -0,0 +1,17 @@ +# ascii version 2.78.a+dfsq0-4 + +sudo apt-get -y install blender + +# Topology optimization with ToOptix +# /usr/share/blender/scripts in in blender-data + +git clone https://github.com/DMST1990/ToOptiX /tmp/ToOptix + +sudo cp -a /tmp/ToOptix/ToOptix/BlenderGUI/ToOptix /usr/share/blender/scripts/addons + +# Enable by going to User preferences Ctrl Alt U -> Addons -> Mesh -> Select Mesh: Topologie Optimization + +# In the ToOptix tab on the right choose a solver /usr/bin/ccx from calculix-ccx installed with freecad automate script. + + + diff --git a/020_brave_browser-beta.sh b/020_brave_browser-beta.sh new file mode 100644 index 0000000..c140d31 --- /dev/null +++ b/020_brave_browser-beta.sh @@ -0,0 +1,10 @@ +curl -s https://brave-browser-apt-beta.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-beta.gpg add - + +#source /etc/os-release +UBUNTU_CODENAME=bionic + +echo "deb [arch=amd64] https://brave-browser-apt-beta.s3.brave.com/ $UBUNTU_CODENAME main" | sudo tee /etc/apt/sources.list.d/brave-browser-beta-${UBUNTU_CODENAME}.list + +sudo apt update + +sudo apt install brave-browser-beta diff --git a/020_brave_browser-dev.sh b/020_brave_browser-dev.sh new file mode 100644 index 0000000..61ae84a --- /dev/null +++ b/020_brave_browser-dev.sh @@ -0,0 +1,12 @@ +curl -s https://brave-browser-apt-dev.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-dev.gpg add - + +#source /etc/os-release +UBUNTU_CODENAME=bionic + +echo "deb [arch=amd64] https://brave-browser-apt-dev.s3.brave.com/ $UBUNTU_CODENAME main" | sudo tee /etc/apt/sources.list-available/brave-browser-dev-${UBUNTU_CODENAME}.list + +sudo ln -s /etc/apt/sources.list-available/brave-browser-dev-${UBUNTU_CODENAME}.list /etc/apt/sources.list.d/brave-browser-dev-${UBUNTU_CODENAME}.list + +sudo apt update + +sudo apt install brave-browser-dev diff --git a/020_brave_browser-nightly.sh b/020_brave_browser-nightly.sh new file mode 100644 index 0000000..4c8af42 --- /dev/null +++ b/020_brave_browser-nightly.sh @@ -0,0 +1,12 @@ +curl -s https://brave-browser-apt-nightly.s3.brave.com/brave-core-nightly.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-nightly.gpg add - + +#source /etc/os-release +UBUNTU_CODENAME=bionic + +echo "deb [arch=amd64] https://brave-browser-apt-nightly.s3.brave.com/ $UBUNTU_CODENAME main" | sudo tee /etc/apt/sources.list-available/brave-browser-nightly-${UBUNTU_CODENAME}.list + +sudo ln -s /etc/apt/sources.list-available/brave-browser-nightly-${UBUNTU_CODENAME}.list /etc/apt/sources.list.d/brave-browser-nightly-${UBUNTU_CODENAME}.list + +sudo apt update + +sudo apt install brave-browser-nightly diff --git a/020_brave_browser.sh b/020_brave_browser.sh new file mode 100644 index 0000000..259ad43 --- /dev/null +++ b/020_brave_browser.sh @@ -0,0 +1,11 @@ +RELEASE=bionic +echo ${RELEASE} +curl -s https://brave-browser-apt-release.s3.brave.com/brave-core.asc | sudo apt-key --keyring /etc/apt/trusted.gpg.d/brave-browser-release.gpg add - + +sudo sh -c 'echo "deb [arch=amd64] https://brave-browser-apt-release.s3.brave.com ${RELEASE} main" >> /etc/apt/sources.list-available/brave.list' + +sudo ln -s /etc/apt/sources.list.d/brave.list /etc/apt/sources.list.d/brave.list + +sudo apt update + +sudo apt install brave-browser brave-keyring diff --git a/020_conky.sh b/020_conky.sh index b1320cf..a21213c 100644 --- a/020_conky.sh +++ b/020_conky.sh @@ -1,15 +1,46 @@ -apt-get -y install conky-all +apt-get -y install conky conky-all curl jq ttf-ubuntu-font-family +HOME=/home/default +USER=default + +echo "Hidden folder conky is created if it is not there" +[ -d "$HOME/.conky" ] || mkdir -p $HOME/".conky" -mkdir -p ~/.conkyrc.d #wget -q0- -O /tmp/tmp.zip https://dl.opendesktop.org/api/files/download/id/1465391516/137272-conky_grey.zip && unzip /tmp/tmp.zip && rm /tmp/tmp.zip -wget -qO- -O /var/tmp/aurora.tar.gz http://downloads.sourceforge.net/project/auroraconkytheme/Aurora_v3.0.4.tar.gz && tar xzvf /var/tmp/aurora.tar.gz && mv Aurora/ ~/.conkyrc.d && rm /var/tmp/aurora.tar.gz +wget -qO- -O /var/tmp/aurora.tar.gz http://downloads.sourceforge.net/project/auroraconkytheme/Aurora_v3.0.4.tar.gz && tar xzvf /var/tmp/aurora.tar.gz && mv Aurora/ ~/.conky && rm /var/tmp/aurora.tar.gz -cd /tmp -git clone https://github.com/maxiwell/conky-seamod +#cd /tmp +#git clone https://github.com/maxiwell/conky-seamod +#git clone https://github.com/zagortenay333/Harmattan apt-get install -y lm-sensors hddtemp dmidecode chmod u+s /usr/sbin/hddtemp chmod u+s /usr/sbin/dmidecode +chmod u+s /usr/sbin/smartctl + +cd $HOME/.conkyrc.d/Aurora + +echo "installing necessary fonts" +[ -d "~/.fonts" ] || mkdir -p $HOME/".fonts" +cp ./fonts/* ~/.fonts +sudo chown $USER ~/.fonts +sudo chmod 644 ~/.fonts/* +fc-cache -fv + +sensors-detect +service kmod restart + +echo "building conky-manager2" +apt-get install realpath p7zip-full rsync imagemagick +cd /var/tmp +sapt-get install valac libgtk-3-dev libgee-0.8-dev libjson-glib-dev +git clone https://github.com/zcot/conky-manager2 +cd conky-manager2 +sed -i -e 's,\(valac-\).*,valac/,' debian/control +dch -R +dpkg-buildpackage -us -uc -b +dpkg -i ../conky-manager_*deb +apt-get -f install + diff --git a/020_devuan_arm-sdk.sh b/020_devuan_arm-sdk.sh new file mode 100644 index 0000000..65dbc17 --- /dev/null +++ b/020_devuan_arm-sdk.sh @@ -0,0 +1,18 @@ +cd /space/code_repositories/ +mkdir devuan_arm-sdk && cd devuan_arm-sdk +git clone https://github.com/parazyd/arm-sdk + + +apt-get install curl git wget qemu-user-static build-essential rsync gcc-arm-none-eabi gcc-multilib lib32z1 u-boot-tools device-tree-compiler lzop dosfstools vboot-utils vboot-kernel-utils libftdi-dev libfdt-dev swig libpython-dev bc + + +cd arm-sdk + +./init.sh + +zsh -f +source sdk + +load devuan rockpro64 + +build_image_dist diff --git a/020_djmount.sh b/020_djmount.sh index a3e7b9b..43ba53b 100644 --- a/020_djmount.sh +++ b/020_djmount.sh @@ -18,14 +18,14 @@ Hidden=false EOF chmod +x ~/.config/autostart/djmount.desktop -bash -c "cat > /usr/share/applications/djmount.desktop" < /usr/share/applications/djmount.desktop" <<'EOF' [Desktop Entry] Encoding=UTF-8 Version=0.71 Type=Application Name=djmount Comment=UPNP/DLNA -Exec=sh -c "/usr/bin/djmount ${DJMOUNT_DIR}" +Exec=sh -c "/usr/bin/djmount ${HOME}" StartupNotify=false Terminal=false Hidden=false diff --git a/020_docker-compose.sh b/020_docker-compose.sh index 8a5c4e1..0b24427 100644 --- a/020_docker-compose.sh +++ b/020_docker-compose.sh @@ -1,71 +1,71 @@ #!/usr/bin/env bash +apt-get install docker-compose #dpkg -i /var/tmp/docker-compose/docker-compose_1.11.0-1_amd64.deb -BASE_URL='https://api.github.com/repos' -BASE_USER='docker' -BASE_REPO='compose' -RELEASES_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/releases -CONTENT=$(curl -s ${RELEASES_URL}/latest) -RELEASE=$(echo "${CONTENT}" | jq --raw-output '.tag_name') - -# make a containing directory -mkdir -p /var/tmp/docker-compose-"${RELEASE}" -cd /var/tmp/docker-compose-"${RELEASE}" || exit - -cat > ./description-pak << EOF -Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application’s services. Then, using a single command, you create and start all the services from your configuration. -EOF - -cat > ./checkinstall_it.sh << 'EOF' - -echo "ENTERING CHECKINSTALL" - -BASE_URL='https://api.github.com/repos' -BASE_USER='docker' -BASE_REPO='compose' -LICENSE_PAGE_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/license -RELEASES_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/releases -CONTENT=$(curl -s ${RELEASES_URL}/latest) -LATEST_URL=$(echo "${CONTENT}" | jq --raw-output '.assets[] | select(.browser_download_url | test("Linux-x86_64")) | .browser_download_url') - -echo "LATEST_URL: " "${LATEST_URL}" - -RELEASE=$(echo "${CONTENT}" | jq --raw-output '.tag_name') - -LICENSE_URL=$(curl "${LICENSE_PAGE_URL}" | jq --raw-output '.download_url') -wget -c ${LICENSE_URL} - -# make a new temporary directory for this use -BASE_TMP_DIR=~/tmptmp/checkinstall_tmp -mkdir -p ${BASE_TMP_DIR} - -# do your work -checkinstall -y --fstrans \ - --pkgname=docker-compose \ - --pkgversion=${RELEASE} \ - --pkgrelease=1 \ - --pkgarch=amd64 \ - --pkggroup=admin \ - --pkglicense=LICENSE \ - --pkgsource=${LATEST_URL} \ - --maintainer=cyteen@ring-zero.co.uk \ - --requires=docker-engine \ - -D \ - bash ./install.sh -EOF - -cat > ./install.sh << 'EOF' -BASE_URL='https://api.github.com/repos' -BASE_USER='docker' -BASE_REPO='compose' -RELEASES_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/releases -CONTENT=$(curl -s ${RELEASES_URL}/latest) -LATEST_URL=$(echo "${CONTENT}" | jq --raw-output '.assets[] | select(.browser_download_url | test("Linux-x86_64")) | .browser_download_url') - -# Download and copy the latest version to /usr/local/bin and make executable -curl -s -o /usr/local/bin/docker-compose -L ${LATEST_URL} && chmod +x /usr/local/bin/docker-compose -EOF - -bash ./checkinstall_it.sh - -docker-compose --version +# PROJECT=docker/compose +# PRERELEASE=false +# RELEASE=$(curl "https://api.github.com/repos/${PROJECT}/releases?per_page=5" | jq -r '.[0] | select( .prerelease = false ) |.tag_name') +# VERSION=$(echo "${RELEASE}" | cut -c 2- | cut -f1 -d"-") +# DOWNLOAD_DIR=/tmp +# +# # make a containing directory +# mkdir -p /var/tmp/docker-compose-"${RELEASE}" +# cd /var/tmp/docker-compose-"${RELEASE}" || exit +# +# cat > ./description-pak << EOF +# Compose is a tool for defining and running multi-container Docker applications. With Compose, you use a Compose file to configure your application’s services. Then, using a single command, you create and start all the services from your configuration. +# EOF +# +# cat > ./checkinstall_it.sh << 'EOF' +# +# echo "ENTERING CHECKINSTALL" +# +# BASE_URL='https://api.github.com/repos' +# BASE_USER='docker' +# BASE_REPO='compose' +# LICENSE_PAGE_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/license +# RELEASES_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/releases +# CONTENT=$(curl -s ${RELEASES_URL}/latest) +# LATEST_URL=$(echo "${CONTENT}" | jq --raw-output '.assets[] | select(.browser_download_url | test("Linux-x86_64")) | .browser_download_url') +# +# echo "LATEST_URL: " "${LATEST_URL}" +# +# RELEASE=$(echo "${CONTENT}" | jq --raw-output '.tag_name') +# +# LICENSE_URL=$(curl "${LICENSE_PAGE_URL}" | jq --raw-output '.download_url') +# wget -c ${LICENSE_URL} +# +# # make a new temporary directory for this use +# BASE_TMP_DIR=~/tmptmp/checkinstall_tmp +# mkdir -p ${BASE_TMP_DIR} +# +# # do your work +# checkinstall -y --fstrans \ +# --pkgname=docker-compose \ +# --pkgversion=${RELEASE} \ +# --pkgrelease=1 \ +# --pkgarch=amd64 \ +# --pkggroup=admin \ +# --pkglicense=LICENSE \ +# --pkgsource=${LATEST_URL} \ +# --maintainer=cyteen@ring-zero.co.uk \ +# --requires=docker-engine \ +# -D \ +# bash ./install.sh +# EOF +# +# cat > ./install.sh << 'EOF' +# BASE_URL='https://api.github.com/repos' +# BASE_USER='docker' +# BASE_REPO='compose' +# RELEASES_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/releases +# CONTENT=$(curl -s ${RELEASES_URL}/latest) +# LATEST_URL=$(echo "${CONTENT}" | jq --raw-output '.assets[] | select(.browser_download_url | test("Linux-x86_64")) | .browser_download_url') +# +# # Download and copy the latest version to /usr/local/bin and make executable +# curl -s -o /usr/local/bin/docker-compose -L ${LATEST_URL} && chmod +x /usr/local/bin/docker-compose +# EOF +# +# bash ./checkinstall_it.sh +# +# docker-compose --version diff --git a/020_docker.sh b/020_docker.sh index e5e322d..21380d6 100644 --- a/020_docker.sh +++ b/020_docker.sh @@ -1,12 +1,26 @@ # Install docker set -x -echo '#bash -c "apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D"' > /etc/apt/sources.list.d/docker.list -echo "deb http://apt.dockerproject.org/repo debian-stretch main" >> /etc/apt/sources.list.d/docker.list +#echo '#bash -c "apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D"' > /etc/apt/sources.list.d/docker.list +#echo "deb http://apt.dockerproject.org/repo debian-stretch main" >> /etc/apt/sources.list.d/docker.list + +echo '#bash -c "curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -"' > /etc/apt/sources.list.d/docker.list +echo "deb [arch=amd64] https://download.docker.com/linux/debian buster stable" >> /etc/apt/sources.list.d/docker.list + +#bash -c "apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D" +bash -c "curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -" + -bash -c "apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D" apt-get update apt-get -y install -q --no-install-recommends curl ca-certificates -apt-get -y install --force-yes docker-engine jq +apt-get -y install --force-yes jq +apt-get remove docker docker-engine docker.io containerd runc +apt-get install -y \ + apt-transport-https \ + ca-certificates \ + curl \ + gnupg2 \ + software-properties-common +apt-get install -y docker-ce docker-ce-cli containerd.io #apt-get install -y --force-yes docker-engine=1.9.1-0~jessie #mkdir -p /var/lib/docker diff --git a/020_drupal-compose.sh b/020_drupal-compose.sh new file mode 100644 index 0000000..fe4eb3f --- /dev/null +++ b/020_drupal-compose.sh @@ -0,0 +1,4 @@ +php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ + php composer-setup.php && \ + mv composer.phar /usr/local/bin/composer && \ + php -r "unlink('composer-setup.php');" diff --git a/020_drush.phar.sh b/020_drush.phar.sh new file mode 100644 index 0000000..005e87e --- /dev/null +++ b/020_drush.phar.sh @@ -0,0 +1,9 @@ +set +x +PROJECT=drush-ops/drush-launcher +RELEASE=$(curl "https://api.github.com/repos/${PROJECT}/releases?per_page=5" | jq -r '.[0] | .tag_name') +VERSION=$(echo "${RELEASE}" | cut -c 2- | cut -f1 -d"-") +DOWNLOAD_DIR=/tmp + +wget -c --directory-prefix "${DOWNLOAD_DIR}" https://github.com/${PROJECT}/releases/download/"${RELEASE}"/drush.phar +chmod +x drush.phar && \ + mv drush.phar /usr/local/bin/drush diff --git a/020_etcher.io.sh b/020_etcher.io.sh new file mode 100644 index 0000000..6f469f5 --- /dev/null +++ b/020_etcher.io.sh @@ -0,0 +1,7 @@ +echo "deb https://deb.etcher.io stable etcher" | sudo tee /etc/apt/sources.list-available/etcher.list +ln -s /etc/apt/sources.list-available/etcher.list /etc/apt/sources.list.d/etcher.list + +sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61 + +sudo apt-get update +sudo apt-get install etcher-electron diff --git a/020_etcher.sh b/020_etcher.sh new file mode 100644 index 0000000..40a6bc9 --- /dev/null +++ b/020_etcher.sh @@ -0,0 +1,9 @@ +# https://github.com/balena-io/etcher + +echo "deb https://deb.etcher.io stable etcher" | sudo tee /etc/apt/sources.list-available/etcher.list +sudo ln -s /etc/apt/sources.list-available/etcher.list /etc/apt/sources.list.d/etcher.list + +sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61 + +sudo apt-get update +sudo apt-get install balena-etcher-electron diff --git a/020_etckeeper.sh b/020_etckeeper.sh new file mode 100644 index 0000000..d6d7fd9 --- /dev/null +++ b/020_etckeeper.sh @@ -0,0 +1,70 @@ +apt-get install -y etckeeper git openssh-client + +# use the GitLab API to create a project +# https://github.com/gitlabhq/gitlabhq/blob/master/doc/api/projects.md#create-project + +# POST /projects + +# One of the optional parameters is: + +# visibility_level (optional): +# 0 is Private (Project access must be granted explicitly for each user) +# 10 is Internal (The project can be cloned by any logged in user), +# 20 is Public (The project can be cloned without any authentication) + +cat /dev/zero | ssh-keygen -b 2048 -t rsa -q -N "" + +PROJECT_NAME=$(uname -n)_etc # myproject +GITLAB_SERVER="http://example.com" +PROJECT_URL="${GITLAB_SERVER}/api/v3/projects" +KEYS_URL="${GITLAB_SERVER}/api/v3/user/keys" +PRIVATE_TOKEN=QVy1PB7sTxfy4pqfZM1U +PROJECT_VISIBILITY=0 +PROJECT_DESCRIPTION="Tracking for the /etc/folder on $(uname -n)" +MACHINE_PUBKEY=/root/.ssh/id_rsa.pub + +cat > ~/.ssh/config < /dev/null 2>&1 & end +function transfer + if test (count $argv) -eq 0 + echo "No arguments specified. Usage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md" + return 1 + end + + ## get temporarily filename, output is written to this file show progress can be showed + set tmpfile ( mktemp -t transferXXX ) + + ## upload stdin or file + set file $argv[1] + + #if tty -s; + #then + set basefile (basename "$file" | sed -e 's/[^a-zA-Z0-9._-]/-/g') + + # if [ ! -e $file ]; + # then + # echo "File $file doesn't exists." + # return 1 + # fi + + if test -d $file + # zip directory and transfer + set zipfile ( mktemp -t transferXXX.zip ) + # echo (dirname $file) + #cd (dirname $file) and echo (pwd) + zip -r -q - $file >> $zipfile + curl --progress-bar --upload-file "$zipfile" "https://transfer.sh/$basefile.zip" >> $tmpfile + rm -f $zipfile + else + # transfer file + curl --progress-bar --upload-file "$file" "https://transfer.sh/$basefile" >> $tmpfile + end + #else + # # transfer pipe + # curl --progress-bar --upload-file "-" "https://transfer.sh/$file" >> $tmpfile + #fi + + ## cat output link + cat $tmpfile + + ## cleanup + rm -f $tmpfile +end + alias subl "subl3" alias vim "nvim" diff --git a/020_fmui.sh b/020_fmui.sh new file mode 100644 index 0000000..174c0cf --- /dev/null +++ b/020_fmui.sh @@ -0,0 +1,131 @@ +cd /var/tmp + +apt-get install -y toilet fzf mpc vis ffmpeg + +# pip3 install --user fmui + +git clone https://github.com/seebye/fmui /usr/local + +PROJECT=seebye/fmui +PRERELEASE=false +# RELEASE=$(curl "https://api.github.com/repos/${PROJECT}/releases?per_page=5" | jq -r '.[0] | select( .prerelease = false ) |.tag_name') +# VERSION=$(echo "${RELEASE}" | cut -c 2- | cut -f1 -d"-") +VERSION=$( date +%Y-%m-%d_ )git +DOWNLOAD_DIR=/tmp + +# make a containing directory +mkdir -p /var/tmp/fmui-"${RELEASE}" +cd /var/tmp/fmui-"${RELEASE}" || exit + +cat > ./description-pak << EOF +**f**zf **m**pd **u**ser **i**nterface +EOF + +cat > ./checkinstall_it.sh << 'EOF' + +echo "ENTERING CHECKINSTALL" + +BASE_URL='https://api.github.com/repos' +BASE_USER='seebye' +BASE_REPO='fmui' +LICENSE_PAGE_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/license +RELEASES_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/releases + +# CONTENT=$(curl -s ${RELEASES_URL}/latest) +# LATEST_URL=$(echo "${CONTENT}" | jq --raw-output '.assets[] | select(.browser_download_url | test("Linux-x86_64")) | .browser_download_url') + +echo "LATEST_URL: " "${LATEST_URL}" + +# RELEASE=$(echo "${CONTENT}" | jq --raw-output '.tag_name') + +# LICENSE_URL=$(curl "${LICENSE_PAGE_URL}" | jq --raw-output '.download_url') +# wget -c ${LICENSE_URL} + +VERSION=$( date +%Y-%m-%d_ )git +VERSION=1.0 +RELEASE=git + +# make a new temporary directory for this use +BASE_TMP_DIR=~/tmptmp/checkinstall_tmp +mkdir -p ${BASE_TMP_DIR} + +# do your work +checkinstall -y --fstrans \ + --pkgname=fmui \ + --pkgversion=${VERSION}\ + --pkgrelease=${RELEASE} \ + --pkgarch=amd64 \ + --pkggroup=admin \ + --pkglicense=LICENSE \ + --pkgsource=${LATEST_URL} \ + --maintainer=cyteen@ring-zero.co.uk \ + --requires=toilet,fzf,mpc,vis,ffmpeg \ + -D \ + bash ./install.sh +EOF + +cat > ./install.sh << 'EOF' +BASE_URL='https://api.github.com/repos' +BASE_USER='seebye' +BASE_REPO='fmui' +# RELEASES_URL="${BASE_URL}/${BASE_USER}/${BASE_REPO}"/releases +# CONTENT=$(curl -s ${RELEASES_URL}/latest) +# LATEST_URL=$(echo "${CONTENT}" | jq --raw-output '.assets[] | select(.browser_download_url | test("Linux-x86_64")) | .browser_download_url') +LATEST_URL=https://github.com/seebye/fmui + +# Download and copy the latest version to /usr/local/bin and make executable +git clone ${LATEST_URL} /var/tmp/fmui +cp -a /var/tmp/fmui /usr/local/ +chmod 0775 /usr/local/fmui +chmod +x /usr/local/fmui/fmui && +chmod +x /usr/local/fmui/actions.sh +chmod +x /usr/local/fmui/cover.sh +chmod +x /usr/local/fmui/defaults.sh +chmod +x /usr/local/fmui/essentials.sh +chmod +x /usr/local/fmui/info.sh +chmod +x /usr/local/fmui/keys.sh +chmod +x /usr/local/fmui/mpc.sh +ln -s /usr/local/fmui/fmui /usr/local/bin/fmui +EOF + +bash ./checkinstall_it.sh + + + +cat > ~/.config/fmui << 'EOF' +# Default keybindings +# Key Action Subscreens +# q Quit fzf +# u Update fzf preview window +# v Start visualizer +# i Show song info screen +# j Go down +# k Go up +# down Go down +# up Go up +# return Play choice +# mod-r Toggle repeat +# mod-s Shuffle +# mod-d Update mpd database, restart +# left Seek backwards +# right Seek forwards +# h Seek backwards ✓ +# l Seek forwards ✓ +# p Toggle play ✓ +# c Toggle consume ✓ +# s Toggle single song ✓ +# r Toggle random ✓ +# < Play previous song ✓ +# > Play next song ✓ + +# readonly VOLUME_STEP=2 +# # format? see man fzf +# readonly ACTION_VOLUME_UP="execute-silent:amixer set Master ${VOLUME_STEP}%+ unmute" +# readonly ACTION_VOLUME_DOWN="execute-silent:amixer set Master ${VOLUME_STEP}%- unmute" +# +# key_bindings+=( +# [+]="$ACTION_VOLUME_UP" +# [=]="$ACTION_VOLUME_UP" +# [-]="$ACTION_VOLUME_DOWN" +# ) +EOF diff --git a/020_freecad.sh b/020_freecad.sh new file mode 100644 index 0000000..d371a0f --- /dev/null +++ b/020_freecad.sh @@ -0,0 +1,130 @@ +# https://github.com/FreeCAD/FreeCAD/releases/ +# debian is still on 0.16 but 0.17 is needed for current workbenches + +# If building, use cmake gui for configuring the build. +sudo apt-get install -y cmake-qt-gui python-numpy python3-numpy z88 + +# the ppa has calculix-ccx eigen3 freecad-daily (0.18~beta1) opencascade +# ppa:freecad-maintainers/freecad-daily + +# sudo add-apt-repository ppa:freecad-maintainers/freecad-daily +# sudo apt-get update + YOUR_UBUNTU_VERSION_HERE=bionic # 18.04 buster/sid +# YOUR_UBUNTU_VERSION_HERE=artful # 17.10 stretch/sid +# YOUR_UBUNTU_VERSION_HERE=xenial # 16.04 stretch/sid +# YOUR_UBUNTU_VERSION_HERE=trusty # 14.04 jessie/sid + +sudo bash -c "cat > /etc/apt/sources.list-available/freecad-daily.list" < /etc/apt/sources.list-available/freecad-stable.list" < /etc/apt/sources.list-available/elmer.list" < /etc/apt/sources.list-available/elmer.list" < ${BIN_DIR}/git-diff-meld.sh <<'EOF' +##!/bin/bash +#echo $* +#meld $2 $5 +#EOF +# +#chmod +x ${BIN_DIR}/git-diff-meld.sh +# +#cat > ${BIN_DIR}/git-diff-vimdiff.sh <<'EOF' +##!/bin/bash +#echo $* +#vimdiff $2 $5 +#EOF +# +#chmod +x ${BIN_DIR}/git-diff-vimdiff.sh diff --git a/020_grc.sh b/020_grc.sh new file mode 100644 index 0000000..13b71ea --- /dev/null +++ b/020_grc.sh @@ -0,0 +1,49 @@ +apt-get -y install grc +ALIAS_FILE=/home/default/.zsh_aliases.d/003-grc.sh +cat > ${ALIAS_FILE} <<'EOF' +# coloured output using grc +if [ -e /usr/bin/grc ]; then + alias cl="/usr/bin/grc -es --colour=auto" + alias cat="cl cat" + alias ping="cl ping" + alias netstat="cl netstat" + alias traceroute="cl traceroute" + alias diff="cl diff" + alias tail="cl tail" + alias ps="cl ps" + alias lsof="cl lsof" + alias lsmod="cl lsmod" + alias lsattr="cl lsattr" + alias gcc="cl gcc" + alias make="cl make" + alias configure="cl configure" + alias ps="cl ps" + alias dig="cl dig" + alias ifconfig="cl /sbin/ifconfig" + alias mount="cl mount" + alias mtr="cl mtr --curses" + alias nmap="cl nmap" + alias ntpdate="cl ntpdate" + alias df="cl df -hT" + alias getfcl="cl getfcl" + alias tail="cl tail" + alias ip="cl ip" + alias id="cl id" + alias fdisk="cl fdisk" + alias free="cl free" + alias findmnt="cl findmnt" + alias docker="cl docker" + alias env="cl env" + alias iptables="cl iptables" + alias iwconfig="cl iwconfig" + alias lspci="cl lspci" + alias lsblk="cl lsblc" + alias blkid="cl blkid" + alias showmount="cl showmount" + alias tcpdump="cl tcpdump" + alias tune2fs="cl tune2fs" + alias vmstat="cl vmstat" + alias uptime="cl uptime" + alias whois="cl whois" +fi +EOF diff --git a/020_keepass.sh b/020_keepass.sh new file mode 100644 index 0000000..f0cab26 --- /dev/null +++ b/020_keepass.sh @@ -0,0 +1,9 @@ +set +x +PROJECT=magkopian/keepassxc-debian +RELEASE=$(curl "https://api.github.com/repos/${PROJECT}/releases?per_page=5" | jq -r '.[0] | .tag_name') +VERSION=$(echo "${RELEASE}" | cut -c 2- | cut -f1 -d"-") +DOWNLOAD_DIR=/tmp + +wget -c --directory-prefix "${DOWNLOAD_DIR}" https://github.com/${PROJECT}/releases/download/"${RELEASE}"/keepassxc_"${RELEASE}"_amd64_stable_stretch.deb +sudo dpkg -i "${DOWNLOAD_DIR}/keepassxc_${RELEASE}_amd64_stable_stretch.deb" +sudo apt-get -y -f install diff --git a/020_kodi_nightly_ppa.sh b/020_kodi_nightly_ppa.sh new file mode 100644 index 0000000..e5c7a1f --- /dev/null +++ b/020_kodi_nightly_ppa.sh @@ -0,0 +1,65 @@ +# sudo apt-get install kodi + +# 18.04 bionic buster +# 17.10 artful stretch + +RELEASE=bionic + +sudo echo "deb http://ppa.launchpad.net/team-xbmc/xbmc-nightly/ubuntu ${RELEASE} main" > /etc/apt/sources.list-available/kodi_nightly-ppa.list +sudo echo "deb-src http://ppa.launchpad.net/team-xbmc/xbmc-nightly/ubuntu ${RELEASE} main" >> /etc/apt/sources.list-available/kodi_nightly-ppa.list + +sudo ln -sf /etc/apt/sources.list-available/kodi_nightly-ppa.list /etc/apt/sources.list.d/kodi_nightly-ppa.list + +sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6D975C4791E7EE5E + +sudo apt-get update + +# Plugins +#covenant +#sanctuary http://sanctuaryrepo.esy.es/sanc/ +#neptune rising http://repo.mrblamo.xyz/ +#placenta +#sports devil +#incursion +#poseidon +#genesis reborn +#uranus +#maverick tv +packages=" \ + ca-certificates \ + kodi=2:18.* \ + kodi-eventclients-kodi-send \ + kodi-pvr-argustv \ + kodi-pvr-dvbviewer \ + kodi-pvr-hdhomerun \ + kodi-pvr-hts \ + kodi-pvr-iptvsimple \ + kodi-pvr-mediaportal-tvserver \ + kodi-pvr-mythtv \ + kodi-pvr-nextpvr \ + kodi-pvr-njoy \ + kodi-pvr-vdr-vnsi \ + kodi-pvr-vuplus \ + kodi-pvr-wmc \ + kodi-eventclients-wiiremote \ + kodi-repository-kodi \ + vdr \ + vdr-plugin-vnsiserver + tzdata" + +packages_missing=" \ + kodi-game-libretro \ + kodi-inputstream-rtmp \ + kodi-inputstream-adaptive \ + kodi-peripheral-joystick \ + kodi-pvr-dvblink \ + kodi-pvr-filmon \ + kodi-pvr-octonet \ + kodi-pvr-pctv \ + kodi-pvr-stalker \ + kodi-pvr-teleboy \ + kodi-pvr-vbox \ + kodi-pvr-zattoo" + +sudo apt-get update && \ +sudo apt-get install -y --no-install-recommends $packages diff --git a/020_kodi_ppa.sh b/020_kodi_ppa.sh new file mode 100644 index 0000000..138dc6b --- /dev/null +++ b/020_kodi_ppa.sh @@ -0,0 +1,69 @@ +# sudo apt-get install kodi + +# 18.04 bionic buster +# 17.10 artful stretch + +RELEASE=bionic + +sudo echo "deb http://ppa.launchpad.net/team-xbmc/ppa/ubuntu ${RELEASE} main" > /etc/apt/sources.list-available/kodi-ppa.list +sudo echo "deb-src http://ppa.launchpad.net/team-xbmc/ppa/ubuntu ${RELEASE} main" >> /etc/apt/sources.list-available/kodi-ppa.list + +sudo ln -sf /etc/apt/sources.list-available/kodi-ppa.list /etc/apt/sources.list.d/kodi-ppa.list + +sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6D975C4791E7EE5E + +sudo apt-get update + +# Plugins +#covenant +#sanctuary http://sanctuaryrepo.esy.es/sanc/ +#neptune rising http://repo.mrblamo.xyz/ +#placenta +#sports devil +#incursion +#poseidon +#genesis reborn +#uranus +#maverick tv + + +packages=" \ + ca-certificates \ + kodi=2:18.* \ + kodi-eventclients-kodi-send \ + kodi-pvr-argustv \ + kodi-pvr-dvbviewer \ + kodi-pvr-hdhomerun \ + kodi-pvr-hts \ + kodi-pvr-iptvsimple \ + kodi-pvr-mediaportal-tvserver \ + kodi-pvr-mythtv \ + kodi-pvr-nextpvr \ + kodi-pvr-njoy \ + kodi-pvr-vdr-vnsi \ + kodi-pvr-vuplus \ + kodi-pvr-wmc \ + kodi-eventclients-wiiremote \ + kodi-repository-kodi \ + vdr \ + vdr-plugin-vnsiserver \ + tzdata" + +packages_missing=" \ + kodi-game-libretro \ + kodi-inputstream-rtmp \ + kodi-inputstream-adaptive \ + kodi-peripheral-joystick \ + kodi-pvr-dvblink \ + kodi-pvr-filmon \ + kodi-pvr-octonet \ + kodi-pvr-pctv \ + kodi-pvr-stalker \ + kodi-pvr-teleboy \ + kodi-pvr-vbox \ + kodi-pvr-zattoo" + +sudo apt-get update && \ +sudo apt-get install -y --no-install-recommends $packages +sudo apt-get install -y --no-install-recommends $packages_missing +sudo apt-get install -y --no-install-recommends diff --git a/020_lsd.sh b/020_lsd.sh new file mode 100644 index 0000000..89275a7 --- /dev/null +++ b/020_lsd.sh @@ -0,0 +1,41 @@ +PREFIX=/tmp +NAME=lsd +PROJECT=Peltoche/lsd +RELEASE=$(curl -s https://api.github.com/repos/${PROJECT}/releases/latest | grep tarball_url | cut -d '"' -f 4 | awk -F "/" {'print $8'}) + +wget -c -P ${PREFIX} https://github.com/${PROJECT}/releases/download/${RELEASE}/${NAME}_${RELEASE}_amd64.deb + +dpkg -i ${PREFIX}/${NAME}_${RELEASE}_amd64.deb +apt-get -f install + +# Aliases +#FLAGS +# -a, --all Do not ignore entries starting with . +# --classic Enable classic mode (no colors or icons) +# --help Prints help information +# -h, --human-readable For ls compatibility purposes ONLY, currently set by default +# -F, --classify Append indicator (one of */=>@|) at the end of the file names +# -l, --long Display extended file metadata as a table +# -1, --oneline Display one entry per line +# -R, --recursive Recurse into directories +# -r, --reverse Reverse the order of the sort +# -t, --timesort Sort by time modified +# --tree Recurse into directories and present the result as a tree +# -V, --version Prints version information + +#OPTIONS: +# --color ... When to use terminal colours [default: auto] [possible values: always, auto, never] +# --date ... How to display date [default: date] [possible values: date, relative] +# --depth Stop recursing into directories after reaching specified depth +# --group-dirs ... Sort the directories then the files [default: none] [possible values: none, first, last] +# --icon ... When to print the icons [default: auto] [possible values: always, auto, never] +# --icon-theme ... Whether to use fancy or unicode icons [default: fancy] [possible values: fancy, unicode] + + +ALIAS_FILE=/home/default/.zsh_aliases.d/003-lsd.sh +cat > ${ALIAS_FILE} <<'EOF' +if [ -x /usr/bin/lsd ]; then + alias lsd="/usr/bin/lsd" + alias ls="lsd" +fi +EOF diff --git a/020_lxc.sh b/020_lxc.sh index 78905b3..c1a86e8 100644 --- a/020_lxc.sh +++ b/020_lxc.sh @@ -1,4 +1,8 @@ -apt-get install lxc dnsmasq +# NB. cgmanager for nested unprivileged containers has been deprecated (dbus usage was a bad idea) +# in favor of lxcfs on older kernels or the kernels CGroup Namespace on newer, expect lxcfs to go +# the same way as cgmanager, just use newer kernels. + +apt-get install lxc lxcfs dnsmasq # lxc-net configuration sourced from /usr/lib/x86_64-linux-gnu/lxc/lxc-net which contains the default values which means your bridge will be given a subnet of 10.0.3.0. diff --git a/020_lxd.sh b/020_lxd.sh new file mode 100644 index 0000000..6c913d6 --- /dev/null +++ b/020_lxd.sh @@ -0,0 +1,92 @@ +groupadd --system lxd +adduser --system lxd lxd + +## Add user to lxd group to allow non-privileged user access to LXD +#usermod -a -G lxd + +sudo apt update +sudo apt install acl dnsmasq-base git golang liblxc1 lxcfs lxc-dev python-pylxd libacl1-dev make pkg-config rsync squashfs-tools tar xz-utils + +#============================================================================= +# golang deps +#golang-any-shared-dev use: +apt-get install golang-any # or similar + +# golang-yaml.v2-dev transitional for +apt-get install golang-gopkg-yaml.v2-dev + +#golang-websocket-dev transitional for +apt-get install golang-github-gorilla-websocket-dev + +# golang-go.crypto-dev transitional package for: +apt-get install golang-golang-x-crypto-dev + +apt-get install \ + golang-petname-dev \ + golang-context-dev \ + golang-github-gorilla-mux-dev \ + golang-github-gosexy-gettext-dev \ + golang-github-mattn-go-colorable-dev \ + golang-github-mattn-go-sqlite3-dev \ + golang-github-olekukonko-tablewriter-dev \ + golang-github-pborman-uuid-dev \ + golang-gocapability-dev \ + golang-gopkg-tomb.v2-dev \ + golang-gopkg-flosch-pongo2.v3-dev \ + golang-github-inconshreveable-log15.v2-dev + +#============================================================================= +# Missing - build from git as it's in NEW +# golang-gopkg-lxc-go-lxc.v2-dev + +# build deps: +apt-get install \ + dh-golang \ + golang-go\ + lxc-dev\ + pkg-config + +# https://pkg-go.alioth.debian.org/workflow-changes.html +#dget -u http://archive.ubuntu.com/ubuntu/pool/main/g/golang-gopkg-lxc-go-lxc.v2/golang-gopkg-lxc-go-lxc.v2_0.0~git20160405.0.85d46fc-0ubuntu2.dsc + +git clone https://anonscm.debian.org/cgit/pkg-go/packages/golang-gopkg-lxc-go-lxc.v2.git +cd ./golang-gopkg-lxc-go-lxc.v2 +apt-get install cowbuilder dh-golang + +DIST=$(lsb_release --short --codename) +ARCH=$(dpkg --print-architecture) +#DIST=ascii ARCH=amd64 git-pbuilder create +DIST=${DIST} ARCH=${ARCH} git-pbuilder update + +gbp buildpackage --git-pbuilder --git-arch=${ARCH} --git-dist=${DIST} + +# Should probably use a containerized reprepro FIXME +cp golang-gopkg-lxc-go-lxc.v2-dev_*_all.deb /srv/pbuilder/deps/ + +#============================================================================= +# LXD +# Build-Depends: +apt-get install \ + debhelper \ + dh-apparmor \ + dh-golang \ + golang-go \ + help2man \ + libacl1-dev \ + libsqlite3-dev \ + lxc-dev \ + pkg-config \ + python3-lxc + +# dsc creates +# lxd, +# lxd-tools, +# lxd-client, +# lxc2, in debian just lxc 1:2.0.7-2 +# golang-github-lxc-lxd-dev + +#dget -u http://archive.ubuntu.com/ubuntu/pool/main/l/lxd/lxd_2.21-0ubuntu3.dsc +#dget -u http://archive.ubuntu.com/ubuntu/pool/main/l/lxd/lxd_2.21-0ubuntu3~16.04.1.dsc +#dget -u http://archive.ubuntu.com/ubuntu/pool/main/l/lxd/lxd_2.21-0ubuntu3~17.10.1.dsc + +git clone https://github.com/lxc/lxd-pkg-ubuntu diff --git a/020_mps-youtube.sh b/020_mps-youtube.sh new file mode 100644 index 0000000..80c2b4a --- /dev/null +++ b/020_mps-youtube.sh @@ -0,0 +1,10 @@ +apt-get -y install mps-youtube youtube-dl python3-pafy python3-pyperclip ffmpeg avconv mpv + +# Change transcoding settings here: +# /home/default/.config/mps-youtube/transcode + +#set search_music false +#set show_video true +#set player mpv +#set download_command +#set order date diff --git a/020_mpv.conf b/020_mpv.conf index 9737fb4..df56b9f 100644 --- a/020_mpv.conf +++ b/020_mpv.conf @@ -4,7 +4,7 @@ mkdir -p ~/.config/mpv ## https://www.dotslashlinux.com/2017/03/31/optimal-mpv-configuration/ ## Low cpu -#cat > ~/.config/mpv/mpv.conf<< 'EOF' +cat > ~/.config/mpv/mpv.conf<< 'EOF' #profile=opengl-hq #scale=ewa_lanczossharp #cscale=ewa_lanczossoft @@ -17,7 +17,7 @@ mkdir -p ~/.config/mpv #deband=no #volume-max=100 #hwdec=vaapi -#EOF +EOF # ## Quality over performance #cat > ~/.config/mpv/mpv.conf << 'EOF' diff --git a/020_nanorc.sh b/020_nanorc.sh new file mode 100644 index 0000000..449b2dc --- /dev/null +++ b/020_nanorc.sh @@ -0,0 +1,30 @@ +sudo apt-get install nano + +LATEST_URL=http://github.com/scopatz/nanorc.git +DIR_NAME=nano-syntax-highlighting/ +install_path=/usr/share/${DIR_NAME} +mkdir -p $install_path + +mkdir /tmp/nanorc-1.0 +cd /tmp/nanorc-1.0 +cat > ./description-pak << EOF +dot nanorc files that have improved definitions of syntax highlighting for various languages in the nano editor. +EOF + + +checkinstall -y --fstrans \ + --pkgname=nanorc \ + --pkgversion=1.0 \ + --pkgrelease=1 \ + --pkgarch=amd64 \ + --pkggroup=admin \ + --pkglicense=LICENSE \ + --pkgsource=${LATEST_URL} \ + --maintainer=cyteen@ring-zero.co.uk \ + --requires=nano,unzip,wget \ + -D \ + git clone ${LATEST_URL} ${DIR_NAME} + cp ${DIR_NAME}/*.nanorc ${install_path} && \ + echo "include ${install_path}/*.nanorc" >> /etc/nanorc + + diff --git a/020_neofetch_motd.sh b/020_neofetch_motd.sh new file mode 100644 index 0000000..91431f5 --- /dev/null +++ b/020_neofetch_motd.sh @@ -0,0 +1,13 @@ +#!/bin/bash +apt-get install -y neofetch + +mkdir -p /etc/update-motd.d +cat > /etc/update-motd.d/20neofetch < /etc/apt/sources.list-available/cuda.list +#echo 'deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64 /' >> /etc/apt/sources.list-available/cuda.list +#ln -s /etc/apt/sources.list-available/cuda.list /etc/apt/sources.list.d/cuda.list +# +#sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1704/x86_64/7fa2af80.pub +#sudo apt-get update +#sudo apt-get install cuda + +# debian +apt-get install \ + nvidia-cuda-toolkit \ + nvidia-cuda-mps \ + nvidia-visual-profiler \ + nvidia-cuda-dev + +# libnvidia-legacy-304xx-cuda1 - NVIDIA CUDA Driver Library (304xx legacy version) +# libnvidia-legacy-304xx-nvcuvid1 - NVIDIA CUDA Video Decoder runtime library (304xx legacy version) +# libnvidia-legacy-340xx-cuda1 - NVIDIA CUDA Driver Library (340xx legacy version) +# libnvidia-legacy-340xx-nvcuvid1 - NVIDIA CUDA Video Decoder runtime library (340xx legacy version) + + diff --git a/020_obsproject.sh b/020_obsproject.sh new file mode 100644 index 0000000..19ffbe2 --- /dev/null +++ b/020_obsproject.sh @@ -0,0 +1 @@ +sudo apt-get install obs-studio ffmpeg diff --git a/020_onivim.sh b/020_onivim.sh new file mode 100644 index 0000000..0bc7e15 --- /dev/null +++ b/020_onivim.sh @@ -0,0 +1,11 @@ +apt-get install jq + +set +x +PROJECT=onivim/oni +RELEASE=$(curl "https://api.github.com/repos/${PROJECT}/releases?per_page=5" | jq -r '.[0] | .tag_name') +VERSION=$(echo "${RELEASE}" | cut -c 2- | cut -f1 -d"-") +DOWNLOAD_DIR=/tmp + +wget -c --directory-prefix "${DOWNLOAD_DIR}" https://github.com/onivim/oni/releases/download/"${RELEASE}"/Oni-"${VERSION}"-amd64-linux.deb + +sudo dpkg -i "${DOWNLOAD_DIR}/Oni-${VERSION}-amd64-linux.deb" diff --git a/020_pbuilder.sh b/020_pbuilder.sh new file mode 100644 index 0000000..277f621 --- /dev/null +++ b/020_pbuilder.sh @@ -0,0 +1,186 @@ +apt-get install -y cowbuilder dh-golang ccache + +DIST=ascii +DIST=$(lsb_release --short --codename) +ARCH=$(dpkg --print-architecture) +echo "DIST: " "${DIST}" +echo "ARCH: " "${ARCH}" +DEP_DIR=/srv/pbuilder/deps +HOOK_DIR=/srv/pbuilder/hook.d + +mkdir -p ${DEP_DIR} +mkdir -p ${HOOK_DIR} + +# Should probably use a containerized reprepro FIXME +cat > /etc/pbuilderrc << 'EOF' +set -x +# this is your configuration file for pbuilder. +# the file in /usr/share/pbuilder/pbuilderrc is the default template. +# /etc/pbuilderrc is the one meant for overwriting defaults in +# the default template +# +# read pbuilderrc.5 document for notes on specific options. + +# Codenames for Debian suites according to their alias. Update these when +# needed. +UNSTABLE_CODENAME="sid" +TESTING_CODENAME="buster" +STABLE_CODENAME="stretch" +STABLE_BACKPORTS_SUITE="$STABLE_CODENAME-backports" + +UNSTABLE_DEVUAN="ceres" +TESTING_DEVUAN="beowulf" +STABLE_DEVUAN="ascii" +OLDSTABLE_DEVUAN="jessie" + +OLDSTABLE_BACKPORTS_DEVUAN="$OLDSTABLE_DEVUAN-backports" +OLDSTABLE_PROPOSED_BACKPORTS_DEVUAN="$OLDSTABLE_DEVUAN-proposed-backports" +OLDSTABLE_PROPOSED_SECURITY_DEVUAN="$OLDSTABLE_DEVUAN-propsed-security" +OLDSTABLE_PROPOSED_UPDATES_DEVUAN="$OLDSTABLE_DEVUAN-proposed-updates" +OLDSTABLE_PROPOSED_DEVUAN="$OLDSTABLE_DEVUAN-proposed" +OLDSTABLE_SECURITY_DEVUAN="$OLDSTABLE_DEVUAN-security" +OLDSTABLE_UPDATES_DEVUAN="$OLDSTABLE_DEVUAN-updates" + +STABLE_BACKPORTS_DEVUAN="$STABLE_DEVUAN-backports" +STABLE_PROPOSED_BACKPORTS_DEVUAN="$STABLE_DEVUAN-proposed-backports" +STABLE_PROPOSED_SECURITY_DEVUAN="$STABLE_DEVUAN-propsed-security" +STABLE_PROPOSED_UPDATES_DEVUAN="$STABLE_DEVUAN-proposed-updates" +STABLE_PROPOSED_DEVUAN="$STABLE_DEVUAN-proposed" +STABLE_SECURITY_DEVUAN="$STABLE_DEVUAN-security" +STABLE_UPDATES_DEVUAN="$STABLE_DEVUAN-updates" + +TESTING_PROPOSED_SECURITY_DEVUAN="$TESTING_DEVUAN-propsed-security" +TESTING_PROPOSED_UPDATES_DEVUAN="$TESTING_DEVUAN-proposed-updates" +TESTING_PROPOSED_DEVUAN="$TESTING_DEVUAN-proposed" +TESTING_SECURITY_DEVUAN="$TESTING_DEVUAN-security" +TESTING_UPDATES_DEVUAN="$TESTING_DEVUAN-updates" + +# List of Devuan suites. + +DEVUAN_SUITES=( +$UNSTABLE_DEVUAN +$TESTING_DEVUAN +$STABLE_DEVUAN + +$OLDSTABLE_BACKPORTS_DEVUAN +$OLDSTABLE_PROPOSED_BACKPORTS_DEVUAN +$OLDSTABLE_PROPOSED_SECURITY_DEVUAN +$OLDSTABLE_PROPOSED_UPDATES_DEVUAN +$OLDSTABLE_PROPOSED_DEVUAN +$OLDSTABLE_SECURITY_DEVUAN +$OLDSTABLE_UPDATES_DEVUAN + +$STABLE_BACKPORTS_DEVUAN +$STABLE_PROPOSED_BACKPORTS_DEVUAN +$STABLE_PROPOSED_SECURITY_DEVUAN +$STABLE_PROPOSED_UPDATES_DEVUAN +$STABLE_PROPOSED_DEVUAN +$STABLE_SECURITY_DEVUAN +$STABLE_UPDATES_DEVUAN + +$TESTING_PROPOSED_SECURITY_DEVUAN +$TESTING_PROPOSED_UPDATES_DEVUAN +$TESTING_PROPOSED_DEVUAN +$TESTING_SECURITY_DEVUAN +$TESTING_UPDATES_DEVUAN + "experimental" "unstable" "testing" "stable") + +# List of Debian suites. +DEBIAN_SUITES=($UNSTABLE_CODENAME $TESTING_CODENAME $STABLE_CODENAME $STABLE_BACKPORTS_SUITE + "experimental" "unstable" "testing" "stable") + +# List of Ubuntu suites. Update these when needed. +UBUNTU_SUITES=("xenial" "wily" "vivid" "utopic" "trusty") + +# Mirrors to use. Update these to your preferred mirror. +DEBIAN_MIRROR="deb.debian.org" +UBUNTU_MIRROR="mirrors.kernel.org" +DEVUAN_MIRROR="pkgmaster.devuan.org" + +# Optionally set a default distribution if none is used. Note that you can set +# your own default (i.e. ${DIST:="unstable"}). +#: ${DIST:="$(lsb_release --short --codename)"} +DIST="$(lsb_release --short --codename)" + +# Optionally set the architecture to the host architecture if none set. Note +# that you can set your own default (i.e. ${ARCH:="i386"}). +#: ${ARCH:="$(dpkg --print-architecture)"} +ARCH="$(dpkg --print-architecture)" + +echo "DIST: " "$DIST" +echo "ARCH: " "$ARCH" + +NAME="$DIST" +if [ -n "${ARCH}" ]; then + NAME="$NAME-$ARCH" + DEBOOTSTRAPOPTS=("--arch" "$ARCH" "${DEBOOTSTRAPOPTS[@]}") +fi + +BASETGZ="/var/cache/pbuilder/$NAME-base.tgz" +DISTRIBUTION="$DIST" +BUILDRESULT="/var/cache/pbuilder/$NAME/result/" +APTCACHE="/var/cache/pbuilder/$NAME/aptcache/" +BUILDPLACE="/var/cache/pbuilder/build/" +PBUILDERSATISFYDEPENDSCMD="/usr/lib/pbuilder/pbuilder-satisfydepends-gdebi" +CCACHEDIR=/var/cache/pbuilder/ccache + +echo "DIST: " "$DIST" +echo "ARCH: " "$ARCH" + +if $(echo ${DEVUAN_SUITES[@]} | grep -q $DIST); then + # Devuan configuration + MIRRORSITE="http://${DEVUAN_MIRROR}/merged/" + COMPONENTS="main contrib non-free" + +elif $(echo ${DEBIAN_SUITES[@]} | grep -q $DIST); then + # Debian configuration + MIRRORSITE="http://$DEBIAN_MIRROR/debian/" + COMPONENTS="main contrib non-free" + if $(echo "$STABLE_CODENAME stable" | grep -q $DIST); then + OTHERMIRROR="$OTHERMIRROR | deb $MIRRORSITE $STABLE_BACKPORTS_SUITE $COMPONENTS" + fi + +elif $(echo ${UBUNTU_SUITES[@]} | grep -q $DIST); then + # Ubuntu configuration + MIRRORSITE="http://$UBUNTU_MIRROR/ubuntu/" + COMPONENTS="main restricted universe multiverse" +else + echo "Unknown distribution: $DIST" + exit 1 +fi + +OTHERMIRROR="deb [trusted=yes] file:///srv/pbuilder/deps ./" +BINDMOUNTS=/srv/pbuilder/deps +HOOKDIR=/srv/pbuilder/hook.d +EXTRAPACKAGES="apt-utils" +EOF + +# Update local dep sources +# FIXME We add a sources list for the local dep files here because sometimes the one +# specified in $OTHERMIRROR above does not appear soon enough to allow a successful +# package build. This leads to a "source listed twice"" warning. +cat > ${HOOK_DIR}/D05deps << 'EOF' +#!/bin/bash +echo "deb [trusted=yes] file:///srv/pbuilder/deps ./" > /etc/apt/sources.list.d/local.list +(cd /srv/pbuilder/deps; apt-ftparchive packages . > Packages) +apt-get update +EOF + +chmod +x ${HOOK_DIR}/D05deps + +# The debs created by pbuild are generated here so include them as well. +cat > ${HOOK_DIR}/D06deps << 'EOF' +LOCAL_REPO="/var/cache/pbuilder/result" + +#!/bin/bash +echo "deb [trusted=yes] file://${LOCAL_REPO} ./" > /etc/apt/sources.list.d/pbuild-local.list +(cd ${LOCAL_REPO}; apt-ftparchive packages . > Packages) +apt-get update +EOF + +chmod +x ${HOOK_DIR}/D06deps + +#Update cow image on changes above +#DIST=${DIST} ARCH=${ARCH} git-pbuilder create --override-config --mirror http://pkgmaster.devuan.org +DIST=${DIST} ARCH=${ARCH} git-pbuilder create + diff --git a/020_photogrametry.sh b/020_photogrametry.sh new file mode 100644 index 0000000..21447bd --- /dev/null +++ b/020_photogrametry.sh @@ -0,0 +1,22 @@ +## VisualSFM - A Visual Structure from Motion System +# http://ccwu.me/vsfm/ + +VSFM_HOME=/var/tmp/vsfm +mkdir ${VSFM_HOME} +cd ${VSFM_HOME} + +http://ccwu.me/vsfm/download/VisualSFM_linux_64bit.zip + + +# BigSFM + +# MVE +http://www.gcc.tu-darmstadt.de/home/proj/mve/ + +# insight3d +http://insight3d.sourceforge.net/ +http://sourceforge.net/projects/insight3dng/ + +# Optical Targets used in professional application: +http://hubbsmachine.com/5-retro-reflective-tape-target +http://hubbsmachine.com/4-retro-reflective-contrast-photogrammetry-targets diff --git a/020_platformio-core.sh b/020_platformio-core.sh new file mode 100644 index 0000000..1eee345 --- /dev/null +++ b/020_platformio-core.sh @@ -0,0 +1,247 @@ +# http://docs.platformio.org/en/latest/faq.html#faq-install-shell-commands + +sudo apt-get install python python-pip checkinstall + +# sudo python -c "$(curl -fsSL https://raw.githubusercontent.com/platformio/platformio/develop/scripts/get-platformio.py)" + +# uninstall existing version +pip uninstall platformio + +# install the latest development version of PlatformIO + +PROJECT=platformio/platformio-core +RELEASE=$(curl "https://api.github.com/repos/${PROJECT}/releases?per_page=5" | jq -r '.[0] | .tag_name') +VERSION=$(echo "${RELEASE}" | cut -c 2- | cut -f1 -d"-") +PIO_BUILD_HOME=/var/tmp/platformio-core-"${VERSION}" + +mkdir -p "${PIO_BUILD_HOME}" && cd "${PIO_BUILD_HOME}" || exit +echo "PlatformIO Core (CLI tool) for embedded programming." > description-pak +mkdir -p doc-pak && wget -c --directory-prefix doc-pak https://raw.githubusercontent.com/platformio/platformio-core/develop/README.rst +echo "http://docs.platformio.org/en/latest/userguide/index.html" > doc-pak/README +sudo checkinstall --fstrans=no pip install -U https://github.com/platformio/platformio-core/archive/"${RELEASE}".zip + +# install some platforms +platformio platform install espressif8266 +platformio platform install espressif32 +platformio platform install nordicnrf51 +platformio platform install nordicnrf52 +platformio platform install ststm32 +platformio platform install timsp430 +platformio platform install atmelavr + +# To revert to the latest stable version +#pip uninstall platformio +#pip install -U platformio + + +# pip install puts the results in usr/local/bin so we don't have a path issue +#platformio: /usr/local/bin/platformio + +cat > ~/.zshrc.d/008_platformio.zsh << 'EOF' +if [[ -d "/usr/local/bin/platormio" ]]; then + + autoload bashcompinit && bashcompinit + eval "$(_PLATFORMIO_COMPLETE=source platformio)" + eval "$(_PLATFORMIO_COMPLETE=source pio)" +fi +EOF + +cat > ~/.profile << 'EOF' + +if [ -d "/usr/local/bin/platformio" ] ; then + + eval "$(_PLATFORMIO_COMPLETE=source platformio)" + eval "$(_PLATFORMIO_COMPLETE=source pio)" +fi +EOF + + +# http://docs.platformio.org/en/latest/faq.html#platformio-udev-rules +# https://raw.githubusercontent.com/platformio/platformio-core/develop/scripts/99-platformio-udev.rules +sudo bash -c "cat > /etc/udev/rules.d/99-platformio-udev.rules" << 'EOF' +# +# Boards +# + +# CP210X USB UART +SUBSYSTEMS=="usb", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666" + +# FT232R USB UART +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE:="0666" + +# Prolific Technology, Inc. PL2303 Serial Port +SUBSYSTEMS=="usb", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", MODE:="0666" + +# QinHeng Electronics HL-340 USB-Serial adapter +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666" + +# Arduino boards +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2341", ATTRS{idProduct}=="[08][02]*", MODE:="0666" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="2a03", ATTRS{idProduct}=="[08][02]*", MODE:="0666" + +# Arduino SAM-BA +ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{ID_MM_DEVICE_IGNORE}="1" +ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", ENV{MTP_NO_PROBE}="1" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", MODE:="0666" +KERNEL=="ttyACM*", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="6124", MODE:="0666" + +# Digistump boards +SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666" +KERNEL=="ttyACM*", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1" + +# STM32 discovery boards, with onboard st/linkv2 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374?", MODE:="0666" + +# USBtiny +SUBSYSTEMS=="usb", ATTRS{idProduct}=="0c9f", ATTRS{idVendor}=="1781", MODE="0666" + +# USBasp V2.0 +SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="05dc", MODE:="0666" + +# Teensy boards +ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", ENV{ID_MM_DEVICE_IGNORE}="1" +ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", ENV{MTP_NO_PROBE}="1" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", MODE:="0666" +KERNEL=="ttyACM*", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="04[789]?", MODE:="0666" + +#TI Stellaris Launchpad +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="0666" + +#TI MSP430 Launchpad +SUBSYSTEMS=="usb", ATTRS{idVendor}=="0451", ATTRS{idProduct}=="f432", MODE="0666" + + +# +# Debuggers +# + +# Black Magic Probe +SUBSYSTEM=="tty", ATTRS{interface}=="Black Magic GDB Server" +SUBSYSTEM=="tty", ATTRS{interface}=="Black Magic UART Port" + +# opendous and estick +ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="204f", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Original FT232/FT245 VID:PID +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Original FT2232 VID:PID +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6010", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Original FT4232 VID:PID +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Original FT232H VID:PID +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6014", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# DISTORTEC JTAG-lock-pick Tiny 2 +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8220", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# TUMPA, TUMPA Lite +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a98", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="8a99", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# XDS100v2 +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="a6d0", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Xverve Signalyzer Tool (DT-USB-ST), Signalyzer LITE (DT-USB-SLITE) +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bca0", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bca1", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# TI/Luminary Stellaris Evaluation Board FTDI (several) +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bcd9", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# TI/Luminary Stellaris In-Circuit Debug Interface FTDI (ICDI) Board +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bcda", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# egnite Turtelizer 2 +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bdc8", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Section5 ICEbear +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="c140", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="c141", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Amontec JTAGkey and JTAGkey-tiny +ATTRS{idVendor}=="0403", ATTRS{idProduct}=="cff8", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# TI ICDI +ATTRS{idVendor}=="0451", ATTRS{idProduct}=="c32a", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# STLink v1 +ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3744", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# STLink v2 +ATTRS{idVendor}=="0483", ATTRS{idProduct}=="3748", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# STLink v2-1 +ATTRS{idVendor}=="0483", ATTRS{idProduct}=="374b", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Hilscher NXHX Boards +ATTRS{idVendor}=="0640", ATTRS{idProduct}=="0028", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Hitex STR9-comStick +ATTRS{idVendor}=="0640", ATTRS{idProduct}=="002c", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Hitex STM32-PerformanceStick +ATTRS{idVendor}=="0640", ATTRS{idProduct}=="002d", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Altera USB Blaster +ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Amontec JTAGkey-HiSpeed +ATTRS{idVendor}=="0fbb", ATTRS{idProduct}=="1000", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# SEGGER J-Link +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0101", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0102", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0103", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0104", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0105", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0107", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0108", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1010", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1011", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1012", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1013", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1014", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1015", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1016", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1017", MODE="660", GROUP="plugdev", TAG+="uaccess" +ATTRS{idVendor}=="1366", ATTRS{idProduct}=="1018", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Raisonance RLink +ATTRS{idVendor}=="138e", ATTRS{idProduct}=="9000", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Debug Board for Neo1973 +ATTRS{idVendor}=="1457", ATTRS{idProduct}=="5118", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Olimex ARM-USB-OCD +ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0003", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Olimex ARM-USB-OCD-TINY +ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="0004", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Olimex ARM-JTAG-EW +ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="001e", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Olimex ARM-USB-OCD-TINY-H +ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002a", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Olimex ARM-USB-OCD-H +ATTRS{idVendor}=="15ba", ATTRS{idProduct}=="002b", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# USBprog with OpenOCD firmware +ATTRS{idVendor}=="1781", ATTRS{idProduct}=="0c63", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# TI/Luminary Stellaris In-Circuit Debug Interface (ICDI) Board +ATTRS{idVendor}=="1cbe", ATTRS{idProduct}=="00fd", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Marvell Sheevaplug +ATTRS{idVendor}=="9e88", ATTRS{idProduct}=="9e8f", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# Keil Software, Inc. ULink +ATTRS{idVendor}=="c251", ATTRS{idProduct}=="2710", MODE="660", GROUP="plugdev", TAG+="uaccess" + +# CMSIS-DAP compatible adapters +ATTRS{product}=="*CMSIS-DAP*", MODE="660", GROUP="plugdev", TAG+="uaccess" +EOF diff --git a/020_pycharm-install.sh b/020_pycharm-install.sh index 97c92a8..aed7419 100644 --- a/020_pycharm-install.sh +++ b/020_pycharm-install.sh @@ -1,32 +1,50 @@ ## pycharm python ide -#PYCHARM_VERSION=2016.3 -#cd /var/tmp && wget -c https://d1opms6zj7jotq.cloudfront.net/python/pycharm-community-${PYCHARM_VERSION}.tar.gz && tar xzvf /var/tmp/pycharm-community-${PYCHARM_VERSION}.tar.gz -#cd /var/tmp/pycharm-community-${PYCHARM_VERSION} -#cat << EF > ./install_pycharm.sh -#PYCHARM_VERSION=${PYCHARM_VERSION} -##cd /var/tmp -##wget -c http://download-cf.jetbrains.com/python/pycharm-community-${PYCHARM_VERSION}.tar.gz -#tar xzvf /var/tmp/pycharm-community-${PYCHARM_VERSION}.tar.gz -C /opt -#ln -fs /opt/pycharm-community-${PYCHARM_VERSION} /opt/pycharm -#ln -s /opt/pycharm/bin/pycharm.sh /usr/local/bin/pycharm -#ln -s /opt/pycharm/bin/inspect.sh /usr/local/bin/inspect +# https://en.wikipedia.org/wiki/PyCharm +# https://www.jetbrains.com/pycharm/download/#section=linux +# https://www.jetbrains.com/pycharm/download/download-thanks.html?platform=linux&code=PCC +PYCHARM_VERSION=2019.1.1 +cd /var/tmp && wget -c https://download.jetbrains.com/python/pycharm-community-${PYCHARM_VERSION}.tar.gz && tar xzvf /var/tmp/pycharm-community-${PYCHARM_VERSION}.tar.gz -#cat << EOF > /opt/pycharm/pycharm.desktop -#[Desktop Entry] -#Type=Application -#Name=pyCharm IDE -#GenericName=Integrated Development Environment -#Comment=An IDE for the python programming language -#Exec=/opt/pycharm/bin/pycharm.sh -#Icon=/opt/pycharm/bin/pycharm.png -#Terminal=false -#Categories=Development;IDE;Electronics; -#MimeType=text/x-python -#Keywords=python;programming;ide; -#EOF -#EF + +cd /var/tmp/pycharm-community-${PYCHARM_VERSION} || exit + +cat << EF > ./install_pycharm.sh +PYCHARM_VERSION=${PYCHARM_VERSION} +cd /var/tmp || exit +#wget -c http://download.jetbrains.com/python/pycharm-community-${PYCHARM_VERSION}.tar.gz +tar xzvf /var/tmp/pycharm-community-${PYCHARM_VERSION}.tar.gz -C /opt +ln -sf /opt/pycharm-community-${PYCHARM_VERSION} /opt/pycharm +ln -sf /opt/pycharm/bin/pycharm.sh /usr/local/bin/pycharm +ln -sf /opt/pycharm/bin/inspect.sh /usr/local/bin/inspect + +cat << EOF > /opt/pycharm/pycharm.desktop +[Desktop Entry] +Type=Application +Name=pyCharm IDE +GenericName=Integrated Development Environment +Comment=An IDE for the python programming language +Exec=/opt/pycharm/bin/pycharm.sh +Icon=/opt/pycharm/bin/pycharm.png +Terminal=false +Categories=Development;IDE;Electronics; +MimeType=text/x-python +Keywords=python;programming;ide; +EOF +EF + +cat << EOF > ./description-pak +PyCharm is an integrated development environment (IDE) used for the Python language. + +Coding assistance and analysis, with code completion, syntax and error highlighting, linter integration. +Python refactoring: extract method, introduce variable, introduce constant, pull up and push down. +Support for web frameworks: Django, web2py and Flask +Integrated Python debugger. +Integrated unit testing, with line-by-line code coverage. +Google App Engine Python development. +Version control integration: unified user interface for git. +EOF echo 'checkinstall -y --fstrans=no --install=no bash ./install_pycharm.sh 2>&1 | tee err' > checkinstall_pycharm.sh && bash ./checkinstall_pycharm.sh -dpkg -i /var/tmp/pycharm-community-${PYCHARM_VERSION}/pycharm-community_${PYCHARM_VERSION}-1_amd64.deb +dpkg -i /var/tmp/pycharm-community-"${PYCHARM_VERSION}"/pycharm-community_"${PYCHARM_VERSION}"-1_amd64.deb diff --git a/020_pyload.sh b/020_pyload.sh new file mode 100644 index 0000000..aae9d5b --- /dev/null +++ b/020_pyload.sh @@ -0,0 +1,10 @@ +PREFIX=/tmp +NAME=pyload +PROJECT=pyload/pyload +RELEASE=$(curl -s https://api.github.com/repos/${PROJECT}/releases/latest | grep tarball_url | cut -d '"' -f 4 | awk -F "/" {'print $8'}) + + +wget -c -P ${PREFIX} https://github.com/${PROJECT}/releases/download/${RELEASE}/${NAME}_${RELEASE}_amd64.deb + +dpkg -i ${PREFIX}/${NAME}_${RELEASE}_amd64.deb +apt-get -f install diff --git a/020_python-jf.sh b/020_python-jf.sh new file mode 100644 index 0000000..8e12ecc --- /dev/null +++ b/020_python-jf.sh @@ -0,0 +1,9 @@ +PROJECT=alhoo/jf +#RELEASE=$(curl --silent "https://api.github.com/repos/${PROJECT}/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/') +RELEASE=$(curl "https://api.github.com/repos/${PROJECT}/tags?per_page=5" | jq -r '.[0] | .name') +JF_BUILD_HOME=/var/tmp/python-jf-"${RELEASE}" + +mkdir -p "${JF_BUILD_HOME}" && cd "${JF_BUILD_HOME}" || exit +echo "JF, is a jq-clone written in python. It supports evaluation of python oneliners, making it especially appealing for data scientists who are used to working with python." > description-pak +mkdir -p doc-pak && wget -c --directory-prefix doc-pak https://raw.githubusercontent.com/${PROJECT}/develop/README.rst +sudo checkinstall --fstrans=no pip install -U https://github.com/${PROJECT}/archive/"${RELEASE}".zip diff --git a/020_python.sh b/020_python.sh new file mode 100644 index 0000000..d64649c --- /dev/null +++ b/020_python.sh @@ -0,0 +1 @@ +apt install python3-requests python3-lxml python3-cssselect feh diff --git a/020_refracta-tools.sh b/020_refracta-tools.sh index 474552a..241a65e 100644 --- a/020_refracta-tools.sh +++ b/020_refracta-tools.sh @@ -2,33 +2,35 @@ set +x # get and install refracta stuff # For jessie yad needs to be built from testing/ascii (and gtk3 dep changed in control) #apt-get -y install autotools-dev libgtk2.0-dev pkg-config intltool -apt-get install -y sbuild fakeroot schroot +#apt-get install -y sbuild fakeroot schroot -cd /usr/src || exit -RELEASE=$(awk -F '/' \{'print $1'\} < /etc/devuan_version | awk '$1=$1') -YAD_VERSION=$(apt-cache policy yad|sed -n 3p | awk -F ':' \{'print $2'\} | awk '$1=$1') -gbp import-dsc -v --allow-unauthenticated http://cdn-fastly.deb.debian.org/debian/pool/main/y/yad/yad_"${YAD_VERSION}".dsc - -sed -i -e s/libgtk-3-dev/libgtk2.0-dev/g /usr/src/yad-"${YAD_VERSION}"/debian/control -sed -i -e s/gtk3/gtk2/g /usr/src/yad-"${YAD_VERSION}"/debian/rules -cd /usr/src/yad || exit -#dpkg-buildpackage -us -uc -b -gbp buildpackage --git-builder=sbuild -A -v -d "${RELEASE}" -dpkg -i ../yad_"${YAD_VERSION}"_amd64.deb - -sudo schroot --end-session --all-sessions +#cd /usr/src || exit +#RELEASE=$(awk -F '/' \{'print $1'\} < /etc/devuan_version | awk '$1=$1') +#YAD_VERSION=$(apt-cache policy yad|sed -n 3p | awk -F ':' \{'print $2'\} | awk '$1=$1') +#gbp import-dsc -v --allow-unauthenticated http://cdn-fastly.deb.debian.org/debian/pool/main/y/yad/yad_"${YAD_VERSION}".dsc +# +#sed -i -e s/libgtk-3-dev/libgtk2.0-dev/g /usr/src/yad-"${YAD_VERSION}"/debian/control +#sed -i -e s/gtk3/gtk2/g /usr/src/yad-"${YAD_VERSION}"/debian/rules +#cd /usr/src/yad || exit +##dpkg-buildpackage -us -uc -b +#gbp buildpackage --git-builder=sbuild -A -v -d "${RELEASE}" +#dpkg -i ../yad_"${YAD_VERSION}"_amd64.deb +# +#sudo schroot --end-session --all-sessions # Refractasnapshot 10 introduces support of UEFI bootable iso but grub-efi removes grub-pc #apt-get install -y grub-efi-amd64 apt-get install -y hwinfo -REFRACTAINSTALLERBASE_VERSION=9.3.0 -REFRACTAINSTALLER_GUI_VERSION=9.2.2 -REFRACTASNAPSHOTBASE_VERSION=10.0.2 -REFRACTASNAPSHOT_GUI_VERSION=10.0.2 -REFRACTA2USB_VERSION=2.3.6 +cd /var/tmp +REFRACTAINSTALLERBASE_VERSION=9.5.3 +REFRACTAINSTALLER_GUI_VERSION=9.5.3 +REFRACTASNAPSHOTBASE_VERSION=10.2.3~fsr +REFRACTASNAPSHOT_GUI_VERSION=10.2.3~fsr +REFRACTA2USB_VERSION=2.4.2 #SOURCEFORGE_MIRROR=http://downloads.sourceforge.net/project/refracta -SOURCEFORGE_MIRROR=http://sourceforge.mirrorservice.org/r/re/refracta +#SOURCEFORGE_MIRROR=http://sourceforge.mirrorservice.org/r/re/refracta +SOURCEFORGE_MIRROR=https://sourceforge.net/projects/refracta/files/ REFRACTA_LOCATION=tools #REFRACTA_LOCATION=testing URL_LIST=( \ diff --git a/020_riot.sh b/020_riot.sh new file mode 100644 index 0000000..5e78943 --- /dev/null +++ b/020_riot.sh @@ -0,0 +1,10 @@ +sudo sh -c "echo 'deb https://riot.im/packages/debian/ artful main' > /etc/apt/sources.list-available/matrix-riot-im.list" + +sudo ln -s /etc/apt/sources.list-available/matrix-riot-im.list /etc/apt/sources.list.d/matrix-riot-im.list + +# Add the public key: +curl -L https://riot.im/packages/debian/repo-key.asc | sudo apt-key add - + +sudo apt-get update && apt-get -y install riot-web + + diff --git a/020_speechd-alsa.sh b/020_speechd-alsa.sh index dbd2098..09cabb7 100644 --- a/020_speechd-alsa.sh +++ b/020_speechd-alsa.sh @@ -1,6 +1,6 @@ # Given a choice of selecting settings to match pulseaudio if installedor alsa when not, they just install it broken and recommend pulseaudio, nice. -#apt-get install speech-dispatcher speech-dispatcher-espeak-ng python3-speechd espeek-ng espeak-ng-espeak +apt-get install speech-dispatcher speech-dispatcher-festival speech-dispatcher-espeak-ng python3-speechd espeek-ng espeak-ng-espeak SPEECHD_CONF=/etc/speech-dispatcher/speechd.conf diff --git a/020_surf.sh b/020_surf.sh new file mode 100644 index 0000000..04d9c3a --- /dev/null +++ b/020_surf.sh @@ -0,0 +1,8 @@ +apt-get -y install surf2 + +SOURCE_DIR= +cd $[SOURCE_DIR] +wget -c -P ${SOURCE_DIR} https://surf.suckless.org/patches/bookmarking/surf-bookmarks-20170722-723ff26.diff +patch -p1 < surf-bookmarks-20170722-723ff26.diff + +make install diff --git a/020_tmux.sh b/020_tmux.sh index 23c3f27..bc4eb7f 100644 --- a/020_tmux.sh +++ b/020_tmux.sh @@ -1,6 +1,6 @@ apt-get install -y tmux apt-get install -y tmux-plugin-manager -apt-get install -y tmuxinator +apt-get install -y tmuxp # uses python rather than ruby used by tmuxinator. # https://github.com/Netherdrake/Dotfiles/tree/master/config/tmux # wget -c --directory-prefix ~/.config/tmux/ https://raw.githubusercontent.com/Netherdrake/Dotfiles/master/config/tmux/default.sh @@ -76,15 +76,15 @@ EOF # wget -c --directory-prefix ~/.config/tmux/ https://raw.githubusercontent.com/Netherdrake/Dotfiles/master/config/tmux/tmux.conf cat > ~/.config/tmux/tmux.conf << 'EOF' -# set-option -g default-shell /bin/fish -set-option -g default-shell "/usr/bin/fish" # https://github.com/ChrisJohnsen/tmux-MacOSX-pasteboard set-option -g status on set-option -g status-interval 2 # set-option -g status-utf8 on set-option -g status-left-length 60 set-option -g status-right-length 60 -set-option -g default-terminal xterm-256color +set-option -g default-terminal "tmux-256color" +# set-option -g default-shell /bin/fish +# set-option -g default-shell "/usr/bin/fish" setw -g mode-keys vi bind h select-pane -L @@ -169,12 +169,14 @@ set -g pane-active-border-fg colour069 # 24 blue # set -g pane-active-border-bg black EOF -mkdir -p ~/.zshrc.d/ -echo "source /usr/share/zsh/vendor_completions/_tmuxinator" > ~/.zshrc.d/006_tmuxinator.zsh +#mkdir -p ~/.zshrc.d/ +#echo "source /usr/share/zsh/vendor_completions/_tmuxinator" > ~/.zshrc.d/006_tmuxinator.zsh +mkdir -p ~/.tmux/plugins/tpm +mkdir -p ~/.tmux/.tmuxp - -cat > ~/.config/tmux/tmux.conf << 'EOF' +#cat > ~/.config/tmux/tmux.conf << 'EOF' +cat > ~/.tmux.conf << 'EOF' # List of plugins set -g @plugin 'tmux-plugins/tpm' @@ -189,3 +191,71 @@ set -g @plugin 'tmux-plugins/tmux-sensible' # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) run '/usr/share/tmux-plugin-manager/tpm' EOF + + +#https://github.com/caiogondim/maglev +#cat > ~/.config/tmux/tmux.conf << 'EOF' +cat > ~/.tmux.conf << 'EOF' + +# Start windows and panes at 1, not 0 +set -g base-index 1 +set -g pane-base-index 1 + +set-option -g status-position top + +set-option -g default-terminal "tmux-256color" + +set-option -g repeat-time 0 + +# vim-tmux-focus-events requires this or tmux-plugins/tmux-sensible enabled below. +set -g focus-events on + +set-window-option -g mode-keys vi +bind-key -t vi-copy 'v' begin-selection +bind-key -t vi-copy 'y' copy-selection + + + +# Removes ESC delay +set -sg escape-time 0 + +# List of plugins +set -g @tpm_plugins ' \ + caiogondim/maglev \ + tmux-plugins/tpm \ + tmux-plugins/tmux-resurrect \ + tmux-plugins/tmux-continuum \ + tmux-plugins/tmux-yank \ + tmux-plugins/tmux-pain-control \ + tmux-plugins/tmux-copycat \ + tmux-plugins/tmux-open \ + tmux-plugins/tmux-battery \ + tmux-plugins/tmux-cpu \ + tmux-plugins/tmux-prefix-highlight \ +' + +## Sets emac key binding +#set -g @tmp_plugins ' \ +# tmux-plugins/tmux-sensible \ +#' + +# tmux-resurrect will now restore vim and neovim sessions if `Session.vim` file is present. +# for vim resurrect +set -g @rsurrect-strategy-vim 'session' + +# for neovim resurrect +set -g @resurrect-strategy-nvim 'session' + +# panes +set -g @resurrect-capture-pane-contents 'on' + +# shell history +set -g @resurrect-save-shell-history 'on' + + +# Initialize TMUX plugin manager +#run '~/.tmux/plugins/tpm/tpm' +run '/usr/share/tmux-plugin-manager/tpm' +EOF + +bash -c "/usr/share/tmux-plugin-manager/bin/install_plugins" diff --git a/020_torbrowser.sh b/020_torbrowser.sh new file mode 100644 index 0000000..b0ef2c5 --- /dev/null +++ b/020_torbrowser.sh @@ -0,0 +1,13 @@ +#!/bin/bash + +TBB_VERSION=7.5.6 +WORKDIR=//var/tmp +HOMEDIR=/opt + +cd ${WORKDIR} +wget -c https://www.torproject.org/dist/torbrowser/${TBB_VERSION}/tor-browser-linux64-${TBB_VERSION}_en-US.tar.xz + +cd ${HOMEDIR} +tar xf ${WORKDIR}/tor-browser-linux64-${TBB_VERSION}_en-US.tar.xz + + diff --git a/020_tvheadend.sh b/020_tvheadend.sh new file mode 100644 index 0000000..967b285 --- /dev/null +++ b/020_tvheadend.sh @@ -0,0 +1,11 @@ +sudo wget -qO- https://doozer.io/keys/tvheadend/tvheadend/pgp | sudo apt-key add - + +#sudo sh -c 'echo "deb https://apt.tvheadend.org/unstable stretch main" | tee -a /etc/apt/sources.list-available/tvheadend.list' +sudo sh -c 'echo "deb https://apt.tvheadend.org/unstable xenial main"' | tee -a /etc/apt/sources.list-available/tvheadend.list + +sudo ln -sf /etc/apt/sources.list-available/tvheadend.list /etc/apt/sources.list.d/tvheadend.list + +sudo apt-get update +sudo apt-get install -y tvheadend + +sudo service tvheadend restart diff --git a/020_unetbootin.sh b/020_unetbootin.sh index e743f76..2035b0f 100644 --- a/020_unetbootin.sh +++ b/020_unetbootin.sh @@ -4,8 +4,10 @@ #apt-get update #apt-get install unetbootin +VERSION=661 + cd /var/tmp -wget -c https://github.com/unetbootin/unetbootin/releases/download/655/unetbootin-linux64-655.bin -chmod +x ./unetbootin-linux-* +wget -c https://github.com/unetbootin/unetbootin/releases/download/${VERSION}/unetbootin-linux64-${VERSION}.bin +chmod +x ./unetbootin-linux64-${VERSION}.bin apt-get install p7zip-full -./unetbootin-linux-* +./unetbootin-linux64-${VERSION}.bin diff --git a/020_vcsh.sh b/020_vcsh.sh new file mode 100644 index 0000000..800066e --- /dev/null +++ b/020_vcsh.sh @@ -0,0 +1,65 @@ +## vcsh +# When you clone a remote repository foo, vcsh does the following behind the scene: +# 1. create a folder in .config/vcsh/repo.d/foo.git, and export it as GIT_DIR. +# 2. create $VCSH_BASE directory, i.e your home directory by default; and +# export it as GIT_WORK_TREE +# Thus the work tree and git meta data, aka .git folder, are separated. +# We can use git fetch to pull the remote repository into the GIT_DIR, and +# merge the changes back to the GIT_WORK_TREE. + + +# To see the current remote repository. +# "vcsh mr remote show origin" +# "vcsh mr remote remove origin" +# "vcsh mr remote add origin https://github.com/crazzyfool/mr.git" +# "vcsh mr push --set-upstream origin master" + +# These can be aliased in the config file. See below + +## mr +# To get started using mr, perhaps you already have some checked out repositories. Go into each one and run + + +# "mr register". + +# Now mr has a list of them in ~/.mrconfig, which you can edit later to tune its operation. + +# Suppose you've cd'd to ~/src, and it has many repositories under it. To update them all, run + +# "mr update". +# "mr commit". commit any pending changes +# "mr status". check the status of each, +# "mr push". push changes to all repositories. + +apt-get install -y vcsh mr + +mkdir -p ~/.config/mr/available.d +mkdir -p ~/.config/mr/config.d + +GIT_WORK_TREE=${HOME} + +# Change this to your dotfiles repository +GIT_REPO=git://github.com/RichiH/ + +cat > ~/.config/mr/available.d/mr.vcsh < ~/.config/mr/available.d/zsh.vcsh < ~/.mrconfig < ~/.zsh_aliases.d/005-vifm.zsh << 'EOF' +alias vifm="~/.config/vifm/scripts/vifmrun" +EOF + +wget -c -P ~/.config/vifm/scripts https://gitlab.com/dwt1/dotfiles/raw/master/.config/vifm/scripts/vifmimg + +wget -c -P ~/.config/vifm/scripts https://gitlab.com/dwt1/dotfiles/raw/master/.config/vifm/scripts/vifmrun + +chmod +x ~/.config/vifm/scripts/vifmimg +chmod +x ~/.config/vifm/scripts/vifmrun + +apt-get install python3-setuptools libjpeg-dev python3-dev + +# libraqm +# libimagequant +# openjpeg +# libwebp +# littlecms +# libfreetype +# libtiff +# zlib +# libjpeg + +pip3 install ueberzug diff --git a/020_vim.sh b/020_vim.sh index 7f057c7..1c8d0d9 100644 --- a/020_vim.sh +++ b/020_vim.sh @@ -18,6 +18,9 @@ cat > ~/.vimrc << 'EOF' " enable syntax highlighting syntax enable +" enable mouse +set mouse=a + set encoding=utf-8 " Show file options above the command line @@ -60,6 +63,11 @@ set showmatch let python_highlight_all = 1 syntax on +" Shortcut to rapidly toggle `set list` +nmap l :set list! + +" Use the same symbols as TextMate for tabstops and EOLs +set listchars=tab:▸\ ,eol:¬ " tmux will only forward escape sequences to the terminal if surrounded by a DCS sequence " http://sourceforge.net/mailarchive/forum.php?thread_name=AANLkTinkbdoZ8eNR1X2UobLTeww1jFrvfJxTMfKSq-L%2B%40mail.gmail.com&forum_name=tmux-users @@ -136,6 +144,7 @@ call vundle#begin() Plugin 'VundleVim/Vundle.vim' " plugin on GitHub repos +Plugin 'joonty/vdebug' Plugin 'tpope/vim-fugitive' Plugin 'jreybert/vimagit' Plugin 'wincent/command-t' @@ -162,15 +171,40 @@ Plugin 'edkolev/tmuxline.vim' Plugin 'terryma/vim-multiple-cursors' Plugin 'sudar/vim-arduino-syntax' Plugin 'ekalinin/Dockerfile.vim' +Plugin ' mattboehm/vim-unstack' Plugin 'tmux-plugins/vim-tmux' +" vim-snipmate +Plugin 'MarcWeber/vim-addon-mw-utils' +Plugin 'tomtom/tlib_vim' +Plugin 'garbas/vim-snipmate + +" Optional: +Plugin 'honza/vim-snippets' + +" requires tmux.conf setting: set -g focus-events on or tmux-plugins/tmux-sensible plugin. Plugin 'tmux-plugins/vim-tmux-focus-events' +" text objects - https://github.com/kana/vim-textobj-user/wiki +Plugin 'kana/vim-textobj-user' +Plugin 'bps/vim-textobj-python' + " toggleable panels Plugin 'tpope/vim-vinegar' Plugin 'vim-scripts/taglist.vim' Plugin 'majutsushi/tagbar' Plugin 'scrooloose/nerdtree' Plugin 'jistr/vim-nerdtree-tabs' +Plugin 'severin-lemaignan/vim-minimap' + +let g:minimap_highlight='Visual' + +let NERDTreeQuitOnOpen=1 +map :NERDTreeToggle +silent! nmap :NERDTreeToggle +silent! map :NERDTreeFind + +let g:NERDTreeMapActivateNode="" +let g:NERDTreeMapPreview="" Plugin 'saltstack/salt-vim' Plugin 'plasticboy/vim-markdown' @@ -182,7 +216,7 @@ Plugin 'jmcantrell/vim-virtualenv' Plugin 'fisadev/vim-isort' " Automatically sort python imports " Python mode (indentation, doc, refactor, lints, code checking, motion and " operators, highlighting, run and ipdb breakpoints) -Plugin 'klen/python-mode' +Plugin 'python-mode/python-mode Plugin 'scrooloose/syntastic' Plugin 'scrooloose/nerdcommenter' Plugin 'sbdchd/neoformat' diff --git a/020_waterfox.sh b/020_waterfox.sh index 0ec5c19..1d207ab 100644 --- a/020_waterfox.sh +++ b/020_waterfox.sh @@ -2,15 +2,45 @@ set -e mkdir -p /etc/apt//sources.list-available || exit cat > /etc/apt/sources.list-available/waterfox.list << EOF -# curl https://bintray.com/user/downloadSubjectPublicKey\?username\=hawkeye116477 | sudo apt-key add - -deb https://dl.bintray.com/hawkeye116477/waterfox-deb release main +# wget -nv https://download.opensuse.org/repositories/home:hawkeye116477:waterfox/Debian_Testing/Release.key -O Release.key +# apt-key add - < Release.key +deb http://download.opensuse.org/repositories/home:/hawkeye116477:/waterfox/Debian_Testing/ / EOF +# The dl-bintray repo doesn't play nice with apt-proxy +#echo "Acquire::http::Proxy { dl.bintray.com DIRECT; };" >> /etc/apt/apt.conf.d/02proxy + ln -sf /etc/apt/sources.list-available/waterfox.list /etc/apt/sources.list.d/waterfox.list -curl https://bintray.com/user/downloadSubjectPublicKey\?username\=hawkeye116477 | sudo apt-key add - +wget -nv https://download.opensuse.org/repositories/home:hawkeye116477:waterfox/Debian_Testing/Release.key -O Release.key +apt-key add - < Release.key apt-get update apt-get install -y waterfox +update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/waterfox 201 + +# Themes +## Australis Dark - enabled in Firefox 53 +## Has rounded corners on active tab and grey surround +# https://github.com/wilfredwee/australis-dark +# https://addons.mozilla.org/en-US/firefox/addon/devedition-theme-enabler/ +#https://addons.mozilla.org/firefox/downloads/file/477584/developer_edition_theme_enabler-1.0.1-fx.xpi + +## Aa Dark Background and light text + +## ff2mpv +## Firebug - being retired +## firepath +## greasemonkey +## it's all text +## saved password editor +## text link +## try xpath +## ublock origin +## umatrix +## web developer +## xdebug helper +## xpath finder +## wideo blocker - doesn't seem to work diff --git a/020_wireguard.sh b/020_wireguard.sh index 726660a..48c1e06 100644 --- a/020_wireguard.sh +++ b/020_wireguard.sh @@ -12,10 +12,10 @@ PRIVATEKEY=$(wg genkey) PUBLICKEY=$(echo ${PRIVATEKEY} | wg pubkey) PEERPUBLIC="IUV3V1SwE1b+6HbJPoVg5XGrkSS8re3oV4JamDbmrC0=" -(umask 077 && printf "[Interface]\nPrivateKey = " | sudo tee /etc/wireguard/wg0.conf > /dev/null) -wg genkey | sudo tee -a /etc/wireguard/wg0.conf | wg pubkey | sudo tee /etc/wireguard/publickey +#(umask 077 && printf "[Interface]\nPrivateKey = " | sudo tee /etc/wireguard/wg0.conf > /dev/null) +#wg genkey | sudo tee -a /etc/wireguard/wg0.conf | wg pubkey | sudo tee /etc/wireguard/publickey -echo > /etc/wireguard/wg0.conf<< "EOF" +cat > /etc/wireguard/wg0.conf<<"EOF" [Interface] PrivateKey = ${PRIVATEKEY} ListenPort = ${LISTENPORT} diff --git a/020_xmonad.sh b/020_xmonad.sh new file mode 100644 index 0000000..1e230de --- /dev/null +++ b/020_xmonad.sh @@ -0,0 +1,23 @@ +apt-get install -y xmonad xmobar + +wget -c -P ~/.config/xmobar/ https://gitlab.com/dwt1/dotfiles/raw/master/.config/xmobar/xmobarrc0 +wget -c -P ~/.config/xmobar/ https://gitlab.com/dwt1/dotfiles/raw/master/.config/xmobar/xmobarrc1 +wget -c -P ~/.config/xmobar/ https://gitlab.com/dwt1/dotfiles/raw/master/.config/xmobar/xmobarrc2 + +wget -c -P ~/.xmonad/xmonad.hs https://gitlab.com/dwt1/dotfiles/raw/master/.xmonad/xmonad.hs + +cat > /tmp/xmonad-keybindings.txt << 'EOF' +MODKEY + Keypad Insert opens run launcher (dmenu is the run launcher but can be easily changed) +MODKEY + Enter opens terminal (st is the terminal but can be easily changed) +MODKEY + SHIFT + c closes window with focus +MODKEY + SHIFT + q quits xmonad +MODKEY + j windows focus down (switches focus between windows in the stack) +MODKEY + k windows focus up (switches focus between windows in the stack) +MODKEY + SHIFT + j windows swap down (swap windows in the stack) +MODKEY + SHIFT + k windows swap up (swap the windows in the stack) +MODKEY + h shrink window (decreases window width) +MODKEY + l expand window (increases window width) +MODKEY + w switches focus to monitor 1 +MODKEY + e switches focus to monitor 2 +MODKEY + r switches focus to monitor 3 +EOF diff --git a/020_xorg.sh b/020_xorg.sh index c2dd1c9..437f92a 100644 --- a/020_xorg.sh +++ b/020_xorg.sh @@ -1,5 +1,12 @@ + +TRACKPAD=51-synapics-trackpad.conf +TRACKPOINT=52-alps-trackpoint.conf +XORG_CONFDIR=/etc/X11/xorg.conf.d + +mkdir -p ${XORG_CONFDIR} + # trackpoint -echo > /etc/X11/xorg.conf.d/trackpoint.conf << 'EOF' +echo > ${XORG_CONFDIR}/${TRACKPOINT} < /etc/X11/xorg.conf.d/trackpad.conf << 'EOF' +echo > ${XORG_CONFDIR}/${TRACKPAD} < ${XORG_CONFDIR}/${TRACKPOINT} <> /etc/youtube-dl.conf + +echo "-f 'bestvideo[height<=720]+bestaudio/best[height<=720]'" >> ~/.config/youtube-dl/config + + diff --git a/020_zsh.sh b/020_zsh.sh index af85b43..b0fe72a 100644 --- a/020_zsh.sh +++ b/020_zsh.sh @@ -1,3 +1,14 @@ +## Completions for Debian 9.0 - may be included in zgen +# +#sudo bash -c "cat > /etc/apt/sources.list.d/shells:zsh-users:zsh-completions.list" << 'EOF' +#deb http://download.opensuse.org/repositories/shells:/zsh-users:/zsh-completions/Debian_9.0/ / +#EOF +# +#wget -qO - https://download.opensuse.org/repositories/shells:zsh-users:zsh-completions/Debian_9.0/Release.key | sudo apt-key add - +# +#sudo apt-get update +#sudo apt-get install zsh-completions + apt-get -y install zsh nodejs-legacy set -x # compaudit @@ -8,20 +19,20 @@ set -x mkdir -p /usr/local/share/zsh/site-functions chmod g-w /usr/local/share/zsh/site-functions -cd ~ -chsh -s $(which zsh) ${USER} +cd ~ || exit +chsh -s "$(which zsh)" "${USER}" apt-get install -y git # Install zgen plugin manager and zsh quicktart to get a default setup for zsh git clone http://github.com/tarjoilija/zgen # available with apt-get install zgen which installs to /usr/share/zgen -git clone http://github.com/unixorn/zsh-quickstart-kit # FIXME: needs to be packaged +#git clone http://github.com/unixorn/zsh-quickstart-kit # FIXME: needs to be packaged mkdir -p ~/.zgen/robbyrussell/oh-my-zsh-master/ git clone http://github.com/robbyrussell/oh-my-zsh ~/.zgen/robbyrussell/oh-my-zsh-master/ -ln -sf ~/zsh-quickstart-kit/zsh/.zshrc ~/.zshrc -ln -sf ~/zsh-quickstart-kit/zsh/.zsh_functions ~/.zsh_functions -ln -sf ~/zsh-quickstart-kit/zsh/.zsh_aliases ~/.zsh_aliases -ln -sf ~/zsh-quickstart-kit/zsh/.zgen-setup ~/.zgen-setup +#ln -sf ~/zsh-quickstart-kit/zsh/.zshrc ~/.zshrc +#ln -sf ~/zsh-quickstart-kit/zsh/.zsh_functions ~/.zsh_functions +#ln -sf ~/zsh-quickstart-kit/zsh/.zsh_aliases ~/.zsh_aliases +#ln -sf ~/zsh-quickstart-kit/zsh/.zgen-setup ~/.zgen-setup #ln -sf ~/zsh-quickstart-kit/zsh/.zsh_completions ~/.zsh-completions mkdir -p ~/.zshrc.d echo "setopt PROMPT_SUBST" >> ~/.zshrc @@ -32,11 +43,11 @@ echo "NVIM_PYTHON_LOG_LEVEL=DEBUG" >> ~/.zshrc.d/008_nvim.zsh touch /var/tmp/nvim_python.log # fix path error in .zshrc -sed -i 's|pushd $(dirname "${HOME}/$(readlink ~/.zshrc)")|pushd $(dirname "$(readlink ~/.zshrc)")|' ~/zsh-quickstart-kit/zsh/.zshrc +#sed -i 's|pushd $(dirname "${HOME}/$(readlink ~/.zshrc)")|pushd $(dirname "$(readlink ~/.zshrc)")|' ~/zsh-quickstart-kit/zsh/.zshrc # debians locate db locate # sed -i 's,^\(export LOCATE_PATH=\).*,\1'/var/lib/mlocate/mlocate.db',' ~/.zshrc -echo "export LOCATE_PATH=/var/lib/mlocate/mlocate.db" > ~/.zshrc.d/005-locatedb +echo "export LOCATE_PATH=/var/lib/mlocate/mlocate.db" > ~/.zshrc.d/005-locatedb.zsh # add plugins to the load-starter-plugin-list() function in ~/.zgen-setup ~/zsh-quickstart-kit/zsh/.zgen-setup # FIXED: create a file named .zgen-local-plugins and add your zgen load commands there. @@ -181,8 +192,8 @@ cat > ~/.zgen-local-plugins << 'EOF' EOF # example .d file use unset to prevent update -echo '# Use unset 'QUICKSTART_KIT_REFRESH_IN_DAYS' to disable.' > ~/.zshrc.d/001-quickstart_refresh.zsh -echo 'QUICKSTART_KIT_REFRESH_IN_DAYS=30' >> ~/.zshrc.d/001-quickstart_refresh.zsh +#echo '# Use unset 'QUICKSTART_KIT_REFRESH_IN_DAYS' to disable.' > ~/.zshrc.d/001-quickstart_refresh.zsh +#echo 'QUICKSTART_KIT_REFRESH_IN_DAYS=30' >> ~/.zshrc.d/001-quickstart_refresh.zsh echo 'ZGEN_PLUGIN_UPDATE_DAYS=30' > ~/.zshrc.d/001-zgen_refresh.zsh apt-get install -y fonts-powerline powerline @@ -202,6 +213,13 @@ ZSH_THEME="agnoster" # powerline based theme #ZSH_THEME="Pure" EOF +cat > ~/.zshrc.d/001-vi-mode.sh << 'EOF' + # Set vi mode + bindkey -v + bindkey '^R' history-incremental-search-backward +EOF + + #git clone https://github.com/bhilburn/powerlevel9k.git ~/.zgen/robbyrussell/oh-my-zsh-master/themes/powerlevel9k ## add a separate zsh aliases directory @@ -263,5 +281,75 @@ alias ipython="_py_version" alias jupyter="_py_version" EOF +cat > .zsh_aliases.d/003-transfer.zsh <<'EOF' +# +# Defines transfer alias and provides easy command line file and folder sharing. +# +# Authors: +# Remco Verhoef +# + +curl --version 2>&1 > /dev/null +if [ $? -ne 0 ]; then + echo "Could not find curl." + return 1 +fi + +transfer() { + # check arguments + if [ $# -eq 0 ]; + then + echo -e "No arguments specified.\n\nUsage:\necho transfer /tmp/test.md\ncat /tmp/test.md | transfer test.md" + return 1 + fi + + # get temporarily filename, output is written to this file show progress can be showed + tmpfile=$( mktemp -t transferXXX ) + + # upload stdin or file + file=$1 + + if tty -s; + then + basefile=$(basename "$file" | sed -e 's/[^a-zA-Z0-9._-]/-/g') + + if [ ! -e $file ]; + then + echo "File $file doesn't exists." + return 1 + fi + + if [ -d $file ]; + then + # zip directory and transfer + zipfile=$( mktemp -t transferXXX.zip ) + cd $(dirname $file) && zip -r -q - $(basename $file) >> $zipfile + curl --progress-bar --upload-file "$zipfile" "https://transfer.sh/$basefile.zip" >> $tmpfile + rm -f $zipfile + else + # transfer file + curl --progress-bar --upload-file "$file" "https://transfer.sh/$basefile" >> $tmpfile + fi + else + # transfer pipe + curl --progress-bar --upload-file "-" "https://transfer.sh/$file" >> $tmpfile + fi + + # cat output link + cat $tmpfile + + # log file link + APPLICATION="${0##*/}" + RIGHTNOW="$(date)" + EXPIRES="$(date -d "+14 days")" + echo -e "$(cat "$tmpfile") - uploaded $RIGHTNOW - expires $EXPIRES\n" >> ~/$APPLICATION.log + echo "\n\nSee ~/$APPLICATION.log for all transfers.\n" + + # cleanup + rm -f $tmpfile +} +EOF + + chown -R root.root /usr/local/share/zsh/site-functions chmod -R 755 /usr/local/share/zsh/site-functions diff --git a/020_zsh_aliases.d.sh b/020_zsh_aliases.d.sh new file mode 100644 index 0000000..b9fccad --- /dev/null +++ b/020_zsh_aliases.d.sh @@ -0,0 +1,22 @@ +mkdir -p ~/.zsh_aliases.d + +ALIAS_FILE=/home/default/.zsh_aliases +cat >> ${ALIAS_FILE} <<'EOF' + +# Enable .zsh_aliases.d to keep aliases separate from env variables +if [ -d ~/.zsh_aliases.d ]; then + for f (~/.zsh_aliases.d/**/*(N.)) . $f +fi +EOF + +ALIAS_FILE=/home/default/.zsh_aliases.d/003_local.sh +cat > ${ALIAS_FILE} <<'EOF' +alias locate='locate --existing --follow --basename --ignore-case' +alias wget="wget --content-disposition -c" +alias leech="wget -e robots=off -c -r --level=0 -nc -np --random-wait" +alias bc='bc -lq' +alias shred='ionice -c3 /usr/bin/shred -fuzv' +alias wipe='ionice -c3 /usr/bin/wipe -l1 -v -r' +alias less="less -R" +alias youtube-dl='youtube-dl --external-downloader=aria2c' +EOF diff --git a/025_firefox-extensions.sh b/025_firefox-extensions.sh index 27601a6..56317d5 100644 --- a/025_firefox-extensions.sh +++ b/025_firefox-extensions.sh @@ -21,6 +21,11 @@ apt-get -y install xul-ext-firexpath #user_pref("browser.search.geoSpecificDefaults","false"); #user_pref("browser.reader.detectedFirstArticle", true);//Disable obnoxious Reader View nag popup +#// From tor browser +#user_pref("privacy.firstparty.isolate", true); + +#// stop thirdparty cookies +#network.cookie.cookieBehavior=1 #// Disable Shield Recipe Client #user_pref("app.shield.optoutstudies.enabled", false); diff --git a/050_set-reboot_policykit-1.sh b/050_set-reboot_policykit-1.sh index a1d226a..b4be490 100644 --- a/050_set-reboot_policykit-1.sh +++ b/050_set-reboot_policykit-1.sh @@ -81,7 +81,7 @@ xmlstarlet edit -L -u "/policyconfig/action[@id='org.freedesktop.consolekit.syst xmlstarlet edit -L -u "/policyconfig/action[@id='org.freedesktop.consolekit.system.stop-multiple-users']"/defaults/allow_active -v ${SYSTEM_STOP_MULTI} ${POLKIT_HOME}/actions/org.freedesktop.consolekit.policy -xmlstarlet edit -L -u "/policyconfig/action[@id='org.freedesktop.consolekit.system.restart']/defaults/allow_active -v ${SYSTEM_RESTART} ${POLKIT_HOME}/actions/org.freedesktop.consolekit.policy +xmlstarlet edit -L -u "/policyconfig/action[@id='org.freedesktop.consolekit.system.restart']"/defaults/allow_active -v ${SYSTEM_RESTART} ${POLKIT_HOME}/actions/org.freedesktop.consolekit.policy xmlstarlet edit -L -u "/policyconfig/action[@id='org.freedesktop.consolekit.system.restart-multiple-users']"/defaults/allow_active -v ${SYSTEM_RESTART_MULTI} ${POLKIT_HOME}/actions/org.freedesktop.consolekit.policy diff --git a/101_livecd-add-zfs.sh b/101_livecd-add-zfs.sh new file mode 100644 index 0000000..944c45e --- /dev/null +++ b/101_livecd-add-zfs.sh @@ -0,0 +1,68 @@ +# add automate scripts +#git clone http://git.devuan.org/cyteen/automate + +cd automate + +# Add contrib to sources.list +bash 001_apt-sources.sh + +# Add zfs +bash 010_zfs.sh + +# Mount the hdd +ZFS_HOME=/mnt +zpool import -a -R ${ZFS_HOME} + +mkdir -p ${ZFS_HOME}/dev +mount -o bind /dev ${ZFS_HOME}/dev +mkdir -p ${ZFS_HOME}/dev/pts +mount -o bind /dev/pts ${ZFS_HOME}/dev/pts +mkdir -p ${ZFS_HOME}/sys +mount -o bind /sys ${ZFS_HOME}/sys +mkdir -p ${ZFS_HOME}/proc +mount -t proc /proc ${ZFS_HOME}/proc +mkdir -p ${ZFS_HOME}/run +mount -o bind /run ${ZFS_HOME}/run + +chroot ${ZFS_HOME} bash -c 'apt-get install -y --reinstall dkms spl-dkms gcc-6 libc6-dev debhelper dh-autoreconf linux-headers-4.9.0-4-all-amd64' + +chroot ${ZFS_HOME} bash -c 'apt-get install -y --reinstall zfs-dkms zfs-initramfs zfsnap zfsutils-linux busybox' + +chroot ${ZFS_HOME} bash -c "cat > /usr/share/initramfs-tools/conf.d/zfs" << 'EOF' +for x in $(cat /proc/cmdline) +do + case $x in + root=ZFS=*) + BOOT=zfs + ;; + esac +done +EOF + +chroot ${ZFS_HOME} dpkg-reconfigure zfs-dkms + +chroot ${ZFS_HOME} bash -c 'apt-get -y -f install' + +# Rebuild drivers +#chroot ${ZFS_HOME} dpkg-reconfigure spl-dkms +#chroot ${ZFS_HOME} dpkg-reconfigure zfs-dkms + +# Update initramfs +# Error: live system without live media mounted as /lib/live/mount/medium +chroot ${ZFS_HOME} bash -c 'apt-get remove -y live-tools' +chroot ${ZFS_HOME} bash -c 'apt-get install -y initramfs-tools' +chroot ${ZFS_HOME} bash -c 'update-initramfs -v -u -t -k all' + +# Update grub menu +chroot ${ZFS_HOME} grub-mkdevicemap +chroot ${ZFS_HOME} grub-probe / +chroot ${ZFS_HOME} update-grub + +chroot ${ZFS_HOME} lsinitramfs /boot/initrd.img-* + +umount -lf ${ZFS_HOME}/dev +umount -lf ${ZFS_HOME}/dev/pts +umount -lf ${ZFS_HOME}/sys +umount -lf ${ZFS_HOME}/proc +umount -lf ${ZFS_HOME}/run +umount -lf ${ZFS_HOME} diff --git a/firefox-speedup.example b/firefox-speedup.example new file mode 100644 index 0000000..5399544 --- /dev/null +++ b/firefox-speedup.example @@ -0,0 +1,42 @@ +# browser.safebrowsing.remoteLookups unset +# browser.cache.use_new_backend 1 +# network.http.pipelining.ssl true +# network.http.pipelining true +# network.http.proxy.pipelining true +# network.http.pipelining.maxrequests 120 +# network.dns.disableIPv6 true +# browser.safebrowsing.malware.enabled false + +# browser.cache.disk.enable false +# browser.cache.memory.enable true +# browser.cache.memory.capacity integer 204800 + + + + +PROFILE_NAME=ybokieeb + +cd ${HOME}/.mozilla/firefox/ + +cp -a ${PROFILE_NAME}.default/ profile.bac + +rm -rf profile_name.default/* + +echo "tmpfs /home/${USER}/.mozilla/firefox/${PROFILE_NAME}.default tmpfs size=128M,user,exec,uid=1000,gid=1000 0 0" >> /etc/fstab + +sudo mount -a + +cd ${HOME}/.mozilla/firefox/ + +cp -a profile.bac/* ${PROFILE_NAME}.default/ + +echo > /usr/local/bin/ff_profile_sync < "EOF" +#!/bin/sh +cd /home/${USER}/.mozilla/firefox/ +if test -d *.default;then +if test -d profile.bac;then +rsync -a --delete *.default/ profile.bac/ +fi;fi +EOF + +(crontab -l 2>/dev/null; echo "*/5 * * * * /usr/local/bin/ff_profile_sync > /dev/null 2>&1") | crontab - diff --git a/thinkpad-dock.sh b/thinkpad-dock.sh index 1713506..d04bb39 100755 --- a/thinkpad-dock.sh +++ b/thinkpad-dock.sh @@ -7,7 +7,7 @@ case "$DOCKED" in #undocked event - lets remove all connected outputs apart from LVDS for output in $(/usr/bin/xrandr -d :0.0 --verbose|grep " connected"|grep -v LVDS|awk '{print $1}') do - /usr/bin/xrandr -d :0.0 --output $output --off + /usr/bin/xrandr -d :0.0 --output "$output" --off done ;; "1") diff --git a/update-docker-daemon-json.sh b/update-docker-daemon-json.sh new file mode 100644 index 0000000..85a1bcd --- /dev/null +++ b/update-docker-daemon-json.sh @@ -0,0 +1,21 @@ +mkdir -p /etc/docker +if [ ! -f /etc/docker/daemon.json ] +then + touch /etc/docker/daemon.json + echo "{}" > /etc/docker/daemon.json +else + echo "/etc/docker/daemon.json exits." +fi + +DOCKER_OPT[0]='.["dns"] = ["52.174.55.168","188.165.200.156"]' +DOCKER_OPT[1]='.["storage-driver"] = "zfs"' +#DOCKER_OPT[2]='.["storage-opts"] = ["zfs.fsname=rpool/docker","size=256"]' +DOCKER_OPT[2]='.["storage-opts"] = ["zfs.fsname=rpool/docker"]' +#DOCKER_OPT[3]='.["insecure-registries"] = ["soleine.lan:5000"]' +DOCKER_OPT[3]='.["insecure-registries"] = ["192.168.1.198:5000"]' + +for ((i = 0; i < ${#DOCKER_OPT[@]}; ++i)); do + OPTION="${DOCKER_OPT[$i]}" + jq "${OPTION}" /etc/docker/daemon.json > /tmp/daemon.json.new && \ + mv -b /tmp/daemon.json.new /etc/docker/daemon.json +done