Merge pull request #163 from jeevithakannan2/utilities

Fixes for utilities
This commit is contained in:
Chris Titus 2024-09-04 16:49:54 -05:00 committed by GitHub
commit d62f9ef613
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 154 additions and 45 deletions

View File

@ -1,4 +1,33 @@
#!/bin/bash #!/bin/sh -e
. ../common-script.sh
# Function to check bluetoothctl is installed
setupBluetooth() {
echo "Install bluetoothctl if not already installed..."
if ! command_exists bluetoothctl; then
case ${PACKAGER} in
pacman)
$ESCALATION_TOOL "${PACKAGER}" -S --noconfirm bluez-utils
;;
*)
$ESCALATION_TOOL "${PACKAGER}" install -y bluez
;;
esac
else
echo "Bluetoothctl is already installed."
fi
# Check if bluetooth service is running
if ! systemctl is-active --quiet bluetooth; then
echo "Bluetooth service is not running. Starting it now..."
$ESCALATION_TOOL systemctl start bluetooth
if systemctl is-active --quiet bluetooth; then
echo "bluetooth service started successfully."
fi
fi
}
# Function to display colored text # Function to display colored text
colored_echo() { colored_echo() {
@ -128,4 +157,6 @@ remove_device() {
} }
# Initialize # Initialize
checkEnv
setupBluetooth
main_menu main_menu

View File

@ -1,5 +1,6 @@
#!/bin/bash #!/bin/sh -e
source ./utility_functions.sh
. ./utility_functions.sh
# Function to auto-detect displays and set common resolution # Function to auto-detect displays and set common resolution
auto_detect_displays() { auto_detect_displays() {

View File

@ -1,10 +1,11 @@
#!/bin/bash #!/bin/sh -e
source ./utility_functions.sh
. ./utility_functions.sh
# Function to change monitor orientation # Function to change monitor orientation
change_orientation() { change_orientation() {
monitor_list=$(detect_connected_monitors) monitor_list=$(detect_connected_monitors)
IFS=$'\n' read -r -d '' -a monitor_array <<<"$monitor_list" IFS=$'\n' read -r -a monitor_array <<<"$monitor_list"
clear clear
echo -e "${BLUE}=========================================${RESET}" echo -e "${BLUE}=========================================${RESET}"

View File

@ -1,5 +1,6 @@
#!/bin/bash #!/bin/sh -e
source ./utility_functions.sh
. ./utility_functions.sh
RESET='\033[0m' RESET='\033[0m'
BOLD='\033[1m' BOLD='\033[1m'
@ -12,7 +13,7 @@ CYAN='\033[36m'
# Function to disable a monitor # Function to disable a monitor
disable_monitor() { disable_monitor() {
monitor_list=$(detect_connected_monitors) monitor_list=$(detect_connected_monitors)
IFS=$'\n' read -r -d '' -a monitor_array <<<"$monitor_list" IFS=$'\n' read -r -a monitor_array <<<"$monitor_list"
clear clear
echo -e "${BLUE}=========================================${RESET}" echo -e "${BLUE}=========================================${RESET}"

View File

@ -1,15 +1,16 @@
#!/bin/bash #!/bin/sh -e
source ./utility_functions.sh
. ./utility_functions.sh
# Function to duplicate displays # Function to duplicate displays
duplicate_displays() { duplicate_displays() {
primary=$(detect_connected_monitors | head -n 1) primary=$(detect_connected_monitors | head -n 1)
for monitor in $(detect_connected_monitors | tail -n +2); do for monitor in $(detect_connected_monitors | tail -n +2); do
if confirm_action "Duplicate $monitor to $primary?"; then if confirm_action "Duplicate $monitor to $primary?"; then
echo "Duplicating $monitor to $primary" echo "Duplicating $monitor to $primary"
execute_command "xrandr --output $monitor --same-as $primary" execute_command "xrandr --output $monitor --same-as $primary"
fi fi
done done
} }
duplicate_displays duplicate_displays

View File

@ -1,5 +1,6 @@
#!/bin/bash #!/bin/sh -e
source ./utility_functions.sh
. ./utility_functions.sh
RESET='\033[0m' RESET='\033[0m'
BOLD='\033[1m' BOLD='\033[1m'
@ -12,7 +13,7 @@ CYAN='\033[36m'
# Function to enable a monitor # Function to enable a monitor
enable_monitor() { enable_monitor() {
monitor_list=$(detect_connected_monitors) monitor_list=$(detect_connected_monitors)
IFS=$'\n' read -r -d '' -a monitor_array <<<"$monitor_list" IFS=$'\n' read -r -a monitor_array <<<"$monitor_list"
clear clear
echo -e "${BLUE}=========================================${RESET}" echo -e "${BLUE}=========================================${RESET}"

View File

@ -1,5 +1,6 @@
#!/bin/bash #!/bin/sh -e
source ./utility_functions.sh
. ./utility_functions.sh
# Function to extend displays # Function to extend displays
extend_displays() { extend_displays() {

View File

@ -1,10 +1,11 @@
#!/bin/bash #!/bin/sh -e
source ./utility_functions.sh
. ./utility_functions.sh
# Function to manage monitor arrangement # Function to manage monitor arrangement
manage_arrangement() { manage_arrangement() {
monitor_list=$(detect_connected_monitors) monitor_list=$(detect_connected_monitors)
IFS=$'\n' read -r -d '' -a monitor_array <<<"$monitor_list" IFS=$'\n' read -r -a monitor_array <<<"$monitor_list"
clear clear
echo -e "${BLUE}=========================================${RESET}" echo -e "${BLUE}=========================================${RESET}"

View File

@ -1,5 +1,6 @@
#!/bin/bash #!/bin/sh -e
source ./utility_functions.sh
. ./utility_functions.sh
# Function to reset scaling back to 1 (native resolution) for all monitors # Function to reset scaling back to 1 (native resolution) for all monitors
reset_scaling() { reset_scaling() {
@ -8,7 +9,7 @@ reset_scaling() {
echo -e "${BLUE}=========================================${RESET}" echo -e "${BLUE}=========================================${RESET}"
monitor_list=$(detect_connected_monitors) monitor_list=$(detect_connected_monitors)
IFS=$'\n' read -r -d '' -a monitor_array <<<"$monitor_list" IFS=$'\n' read -r -a monitor_array <<<"$monitor_list"
for monitor in "${monitor_array[@]}"; do for monitor in "${monitor_array[@]}"; do
echo -e "${CYAN}Resetting scaling for $monitor to 1x1 (native resolution)${RESET}" echo -e "${CYAN}Resetting scaling for $monitor to 1x1 (native resolution)${RESET}"

View File

@ -1,5 +1,6 @@
#!/bin/bash #!/bin/sh -e
source ./utility_functions.sh
. ./utility_functions.sh
# Function to scale smaller monitors to the highest resolution of a bigger monitor # Function to scale smaller monitors to the highest resolution of a bigger monitor
scale_monitors() { scale_monitors() {
@ -8,7 +9,7 @@ scale_monitors() {
echo -e "${BLUE}=========================================${RESET}" echo -e "${BLUE}=========================================${RESET}"
monitor_list=$(detect_connected_monitors) monitor_list=$(detect_connected_monitors)
IFS=$'\n' read -r -d '' -a monitor_array <<<"$monitor_list" IFS=$'\n' read -r -a monitor_array <<<"$monitor_list"
# Get the highest resolution among all monitors # Get the highest resolution among all monitors
max_width=0 max_width=0

View File

@ -1,10 +1,11 @@
#!/bin/bash #!/bin/sh -e
source ./utility_functions.sh
. ./utility_functions.sh
# Function to set a monitor as primary # Function to set a monitor as primary
set_primary_monitor() { set_primary_monitor() {
monitor_list=$(detect_connected_monitors) monitor_list=$(detect_connected_monitors)
IFS=$'\n' read -r -d '' -a monitor_array <<<"$monitor_list" IFS=$'\n' read -r -a monitor_array <<<"$monitor_list"
clear clear
echo -e "${BLUE}=========================================${RESET}" echo -e "${BLUE}=========================================${RESET}"

View File

@ -1,5 +1,6 @@
#!/bin/bash #!/bin/sh -e
source ./utility_functions.sh
. ./utility_functions.sh
RESET='\033[0m' RESET='\033[0m'
BOLD='\033[1m' BOLD='\033[1m'
@ -12,7 +13,7 @@ CYAN='\033[36m'
# Function to set resolutions # Function to set resolutions
set_resolutions() { set_resolutions() {
monitor_list=$(detect_connected_monitors) monitor_list=$(detect_connected_monitors)
IFS=$'\n' read -r -d '' -a monitor_array <<<"$monitor_list" IFS=$'\n' read -r -a monitor_array <<<"$monitor_list"
while true; do while true; do
clear clear

View File

@ -1,4 +1,39 @@
#!/bin/bash #!/bin/sh -e
. ../../common-script.sh
# Function to check bluetoothctl is installed
setup_xrandr() {
echo "Install xrandr if not already installed..."
if ! command_exists xrandr; then
case ${PACKAGER} in
pacman)
$ESCALATION_TOOL "${PACKAGER}" -S --noconfirm xorg-xrandr
;;
apt-get)
$ESCALATION_TOOL "${PACKAGER}" install -y x11-xserver-utils
;;
*)
$ESCALATION_TOOL "${PACKAGER}" install -y xorg-x11-server-utils
;;
esac
else
echo "xrandr is already installed."
fi
}
# Function to display colored text
colored_echo() {
local color=$1
local text=$2
case $color in
red) echo -e "\033[31m$text\033[0m" ;;
green) echo -e "\033[32m$text\033[0m" ;;
yellow) echo -e "\033[33m$text\033[0m" ;;
blue) echo -e "\033[34m$text\033[0m" ;;
*) echo "$text" ;;
esac
}
# Function to execute xrandr commands and handle errors # Function to execute xrandr commands and handle errors
execute_command() { execute_command() {
@ -47,3 +82,6 @@ confirm_action() {
return 1 return 1
fi fi
} }
checkEnv
setup_xrandr

View File

@ -25,10 +25,6 @@ matches = true
data = { environment = "DISPLAY" } data = { environment = "DISPLAY" }
values = [":0", ":1", ":2", ":3", ":4", ":5", ":6", ":7", ":8", ":9"] values = [":0", ":1", ":2", ":3", ":4", ":5", ":6", ":7", ":8", ":9"]
[[data.entries]]
name = "Set Resolution"
script = "monitor-control/set_resolutions.sh"
[[data.entries]] [[data.entries]]
name = "Duplicate Displays" name = "Duplicate Displays"
script = "monitor-control/duplicate_displays.sh" script = "monitor-control/duplicate_displays.sh"

View File

@ -1,5 +1,36 @@
@@ -0,0 +1,168 @@ #!/bin/sh -e
#!/bin/bash
. ../common-script.sh
# Function to check if NetworkManager is installed
setupNetworkManager() {
echo "Install NetworkManger if not already installed..."
if ! command_exists nmcli; then
case ${PACKAGER} in
pacman)
$ESCALATION_TOOL "${PACKAGER}" -S --noconfirm networkmanager
;;
dnf)
$ESCALATION_TOOL "${PACKAGER}" install -y NetworkManager-1
;;
*)
$ESCALATION_TOOL "${PACKAGER}" install -y network-manager
;;
esac
else
echo "NetworkManager is already installed."
fi
# Check if NetworkManager service is running
if ! systemctl is-active --quiet NetworkManager; then
echo "NetworkManager service is not running. Starting it now..."
$ESCALATION_TOOL systemctl start NetworkManager
if systemctl is-active --quiet NetworkManager; then
echo "NetworkManager service started successfully."
fi
fi
}
# Function to display colored text # Function to display colored text
colored_echo() { colored_echo() {
@ -166,4 +197,6 @@ remove_network() {
} }
# Initialize # Initialize
checkEnv
setupNetworkManager
main_menu main_menu