commit 663829f816cb956c9a2163727b1cd31b23176ca4 Author: haemka Date: Fri Jul 30 18:55:58 2021 +0200 initial commit diff --git a/fanmode.sh b/fanmode.sh new file mode 100755 index 0000000..46c7f7f --- /dev/null +++ b/fanmode.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +# 0 = Normal/Balanced +# 1 = Boost +# 2 = Silent. + +MODELIST=("Balanced" "Boost" "Silent") +INTERFACE="/sys/devices/platform/asus-nb-wmi/throttle_thermal_policy" +CURRENT_MODE=$(cat ${INTERFACE}) +MODE=${CURRENT_MODE} + +if [[ ! ${1} ]]; then + [[ ${MODE} == 2 ]] && MODE=0 || let MODE+=1 +else + MODE=${1} +fi + +echo ${MODE} > ${INTERFACE} + +CHECK_MODE=$(cat ${INTERFACE}) + +notify-send "Fan mode changed" "${MODELIST[${CURRENT_MODE}]} -> ${MODELIST[${CHECK_MODE}]}" + + diff --git a/gamewrapper.sh b/gamewrapper.sh new file mode 100755 index 0000000..87ad068 --- /dev/null +++ b/gamewrapper.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash + +init () { + kill $(pidof redshift) + fanmode.sh 1 +} + +deinit () { + exec redshift & + fanmode.sh 0 +} + +init && /usr/bin/prime-run $@ && deinit + diff --git a/remoteoffice.sh b/remoteoffice.sh new file mode 100755 index 0000000..09ad4c2 --- /dev/null +++ b/remoteoffice.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +# VPN +NMCONN="49088a1e-18c2-48aa-a664-f212eb83a727" +# RDP +DEF_RESOLUTION="1920x1080" +DRIVE="work,${HOME}/Documents/Work" +DOMAIN="$(pass show Work/AD-LOGIN | awk '/domain:/ {print $2}')" +USER="$(pass show Work/AD-LOGIN | awk '/user:/ {print $2}')" +REMOTE="$(pass show Work/AD-LOGIN | awk '/remote:/ {print $2}')" + +rdp() { + # alternative to "dynamic-resolution" is "smart-sizing" + xfreerdp /network:lan /gdi:hw +glyph-cache +fonts +aero \ + /bpp:32 /size:${DEF_RESOLUTION} /dynamic-resolution \ + /audio-mode:0 /sound:sys:pulse /microphone:sys:pulse \ + /kbd:German /drive:${DRIVE} \ + +auto-reconnect /auto-reconnect-max-retries:5 \ + /d:${DOMAIN} /u:${USER} /v:${REMOTE} /p:$(zenity --entry \ + --title="Password" --text="Enter your _password:" --hide-text) + zenity --question --title="Disconnect?" \ + --text="RDP connection closed. Do you want to close the VPN connection too?" && \ + nmcli con down ${NMCONN} +} + + +if [ $(nmcli con show ${NMCONN} | awk '/GENERAL.STATE/ {print $2}') == "activated" ]; then + rdp +else + nmcli --ask con up ${NMCONN} & + rdp +fi + diff --git a/sanemime.sh b/sanemime.sh new file mode 100755 index 0000000..1f987fd --- /dev/null +++ b/sanemime.sh @@ -0,0 +1,95 @@ +#!/usr/bin/env bash +#============================================================================== +#title : sanemime.sh +#description : Resets MIMe configuration to sane defaults in case any shitty +# software broke it. +#author : hmk +#date : 20210620 +#version : 0.4 +#============================================================================== + +cp ${HOME}/.config/mimeapps.list ${HOME}/.config/mimeapps.list.bak + +BROWSER=/usr/share/applications/firefox.desktop +EMAIL=${HOME}/.local/share/applications/neomutt.desktop +#IMAGE_VIEWER=/usr/share/applications/feh.desktop +IMAGE_VIEWER=/usr/share/applications/sxiv.desktop +VIDEO_VIEWER=/usr/share/applications/mpv.desktop +PDF_VIEWER=/usr/share/applications/org.pwmt.zathura-pdf-mupdf.desktop + +MSTEAMS=${HOME}/.local/share/applications/teams.desktop +TS3=${HOME}/.local/share/applications/teamspeak.desktop +ZOOM=${HOME}/.local/share/applications/zoom.desktop + +# Set default browser +BROWSER_NAME=$(awk -F= '/^Name=/ {print $2;exit;}' ${BROWSER}) +IFS=';' read -ra types <<< $(awk -F= '/MimeType/ {print $2}' ${BROWSER}) +for type in ${types[@]}; do + echo "Setting ${type} to ${BROWSER_NAME}" + xdg-mime default $(basename ${BROWSER}) ${type} +done + +# Set default E-Mail client +EMAIL_NAME=$(awk -F= '/^Name=/ {print $2;exit;}' ${EMAIL}) +IFS=';' read -ra types <<< $(awk -F= '/MimeType/ {print $2}' ${EMAIL}) +for type in ${types[@]}; do + echo "Setting ${type} to ${EMAIL_NAME}" + xdg-mime default $(basename ${EMAIL}) ${type} +done + +# Set default image viewer +IMAGE_VIEWER_NAME=$(awk -F= '/^Name=/ {print $2;exit;}' ${IMAGE_VIEWER}) +IFS=';' read -ra types <<< $(awk -F= '/MimeType/ {print $2}' ${IMAGE_VIEWER}) +for type in ${types[@]}; do + if [[ ${type} =~ ^image.*$ ]]; then + echo "Setting ${type} to ${IMAGE_VIEWER_NAME}" + xdg-mime default $(basename ${IMAGE_VIEWER}) ${type} + fi +done + +# Set default video viewer +VIDEO_VIEWER_NAME=$(awk -F= '/^Name=/ {print $2;exit;}' ${VIDEO_VIEWER}) +IFS=';' read -ra types <<< $(awk -F= '/MimeType/ {print $2}' ${VIDEO_VIEWER}) +for type in ${types[@]}; do + if [[ ${type} =~ ^video.*$ ]]; then + echo "Setting ${type} to ${VIDEO_VIEWER_NAME}" + xdg-mime default $(basename ${VIDEO_VIEWER}) ${type} + fi +done + +# Set default PDF viewer +PDF_VIEWER_NAME=$(awk -F= '/^Name=/ {print $2;exit;}' ${PDF_VIEWER}) +IFS=';' read -ra types <<< $(awk -F= '/MimeType/ {print $2}' ${PDF_VIEWER}) +for type in ${types[@]}; do + if [[ ${type} =~ ^application.*$ ]]; then + echo "Setting ${type} to ${PDF_VIEWER_NAME}" + xdg-mime default $(basename ${PDF_VIEWER}) ${type} + fi +done + +# Set communication applications +MSTEAMS_NAME=$(awk -F= '/^Name=/ {print $2;exit;}' ${MSTEAMS}) +IFS=';' read -ra types <<< $(awk -F= '/MimeType/ {print $2}' ${MSTEAMS}) +for type in ${types[@]}; do + if [[ ${type} =~ ^x-scheme-handler.*$ ]]; then + echo "Setting ${type} to ${MSTEAMS_NAME}" + xdg-mime default $(basename ${MSTEAMS}) ${type} + fi +done +TS3_NAME=$(awk -F= '/^Name=/ {print $2;exit;}' ${TS3}) +IFS=';' read -ra types <<< $(awk -F= '/MimeType/ {print $2}' ${TS3}) +for type in ${types[@]}; do + if [[ ${type} =~ ^x-scheme-handler.*$ ]]; then + echo "Setting ${type} to ${TS3_NAME}" + xdg-mime default $(basename ${TS3}) ${type} + fi +done +ZOOM_NAME=$(awk -F= '/^Name=/ {print $2;exit;}' ${ZOOM}) +IFS=';' read -ra types <<< $(awk -F= '/MimeType/ {print $2}' ${ZOOM}) +for type in ${types[@]}; do + if [[ ${type} =~ ^x-scheme-handler.*$ ]]; then + echo "Setting ${type} to ${ZOOM_NAME}" + xdg-mime default $(basename ${ZOOM}) ${type} + fi +done + diff --git a/webcam.sh b/webcam.sh new file mode 100755 index 0000000..6793b30 --- /dev/null +++ b/webcam.sh @@ -0,0 +1,68 @@ +#!/bin/bash + +function unlock { + ### Activates the screen and unlocks the phone + # Reads the current screen state eturns any combination of ON/OFF and + # LOCKED/UNLOCKED (i.e. OFF_LOCKED). + # Works only on NFC enabled phones but alternative methods exist. + IFS='_' read -ra screenstate <<< $(adb shell dumpsys nfc | awk -F'=' \ + '/mScreenState/ {print $2}') + # Emulate Power-Button press if screen is OFF. + [[ ${screenstate[0]} == "OFF" ]] && adb shell input keyevent 26 && \ + echo Screen activated + # Emulate Menu-button press if phone is locked. Requires the phone to + # unlock without PIN or password. + [[ ${screenstate[1]} == "LOCKED" ]] && adb shell input keyevent 82 && \ + echo Device unlocked +} + +function blank { + ### Blanks the screen after X seconds + sleep ${1} + IFS='_' read -ra screenstate <<< $(adb shell dumpsys nfc | awk -F'=' \ + '/mScreenState/ {print $2}') + [[ ${screenstate[0]} == "ON" ]] && adb shell input keyevent 26 && \ + echo Screen deactivated +} + +function end { + ### Cleans up after exiting + # Stop DroidCamX on device + echo "Stopping DroidCamX" + adb shell am force-stop com.dev47apps.droidcamx + # blank device + blank 0 +} + +# Unlock phone +unlock + +# Start DroidCamX app, intent may vary for free DroidCam version +echo "(Re-)Starting DroidCamX" +adb shell << EOF +am force-stop com.dev47apps.droidcamx +am start -n com.dev47apps.droidcamx/com.dev47apps.droidcamx.DroidCamX +EOF + +# Wait some seconds for the app to settle +sleep 3 + +# Initiate screen blanking in X seconds (mind the background function "&") +x=10 +blank ${x} & + +# Start droidcam binary +# 1920x1080 breaks Skype! +echo "" +echo "+-------------------------------------------------------------+" +echo "| |" +echo "| SCREEN WILL BLANK IN ${x} SECONDS. CONNECT WITHIN THIS LIMIT! |" +echo "| |" +echo "+-------------------------------------------------------------+" +echo "" +/usr/bin/droidcam -v -dev=/dev/video10 -size=1280x720 adb 4747 > /dev/null +#/usr/bin/droidcam -v -dev=/dev/video10 -size=1920x1080 adb 4747 > /dev/null + +# Cleanup when droidcam binary exited +end +