1

Initial commit

This commit is contained in:
Jessie Hildebrandt 2024-04-11 18:46:41 -04:00
commit 1a1fc5f0c2
20 changed files with 446 additions and 0 deletions

View File

@ -0,0 +1,17 @@
[Desktop Entry]
Name=Blender 2.91
GenericName=3D modeler
Comment=3D modeling, animation, rendering and post-production
Keywords=3d;cg;modeling;animation;painting;sculpting;texturing;video editing;video tracking;rendering;render engine;cycles;game engine;python;
Exec=blender %f
Icon=blender
Terminal=false
Type=Application
Categories=3DGraphics;Graphics;
MimeType=application/x-blender;
Name[en_US.UTF-8]=Blender
X-GNOME-FullName[en_US.UTF-8]=Blender
Comment[en_US.UTF-8]=3D modeling, animation, rendering and post-production
NoDisplay=false
Path=
X-GNOME-UsesNotifications=false

10
applications/calf.desktop Normal file
View File

@ -0,0 +1,10 @@
[Desktop Entry]
Version=1.1
Type=Application
Name=Calf Plugin Pack for JACK
NoDisplay=true
Comment=Process and produce sounds using a set of plugins with JACK interface
Icon=calf
Exec=calfjackhost
Actions=
Categories=AudioVideo;Music;

View File

@ -0,0 +1,17 @@
[Desktop Entry]
Version=1.1
Type=Application
Name=Nextcloud Desktop
GenericName=Folder Sync
NoDisplay=true
Comment=Nextcloud desktop synchronization client
Icon=Nextcloud
Exec=nextcloud
Actions=Quit;
MimeType=application/vnd.nextcloud;
Categories=Utility;X-SuSE-SyncUtility;
Keywords=Nextcloud;syncing;file;sharing;
[Desktop Action Quit]
Name=Quit Nextcloud
Exec=nextcloud --quit

View File

@ -0,0 +1,14 @@
[Desktop Entry]
Version=1.1
Type=Application
Name=Emacs (New Instance)
GenericName=Text Editor
NoDisplay=true
Comment=Edit text
Icon=emacs
Exec=emacs %F
Actions=
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Categories=Development;TextEditor;Utility;
StartupNotify=true
StartupWMClass=Emacs

View File

@ -0,0 +1,22 @@
[Desktop Entry]
Version=1.1
Type=Application
Name=Emacs
GenericName=Text Editor
Comment=Edit text
Icon=emacs
Exec=emacsclient -cn %F
Actions=new-window;new-instance;
MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
Categories=Development;TextEditor;Utility;
Keywords=emacsclient;
StartupNotify=true
StartupWMClass=Emacs
[Desktop Action new-window]
Name=New Window
Exec=emacsclient -cn %F
[Desktop Action new-instance]
Name=New Instance
Exec=emacs %F

11
applications/fish.desktop Normal file
View File

@ -0,0 +1,11 @@
[Desktop Entry]
Version=1.1
Type=Application
Name=fish
GenericName=Command-line interpreter
NoDisplay=true
Icon=fish
Exec=fish
Terminal=true
Actions=
Categories=ConsoleOnly;System;System-Tools;TerminalEmulator;

View File

@ -0,0 +1,11 @@
[Desktop Entry]
Name=FreeCAD
GenericName=CAD Application
Comment=Feature-based parametric modeling software
Keywords=3d;cad;modeling;engineering;
Exec=FreeCAD %F
Icon=freecad
Terminal=false
Type=Application
Categories=Engineering;
MimeType=application/x-extension-fcstd;model/obj;model/iges;image/vnd.dwg;image/vnd.dxf;model/vnd.collada+xml;application/iges;model/iges;model/step;model/step+zip;model/stl;application/vnd.shp;model/vrml;

View File

@ -0,0 +1,13 @@
[Desktop Entry]
Version=1.1
Type=Application
Name=Weather
NoDisplay=true
Comment=Show weather conditions and forecast
Icon=org.gnome.Weather
DBusActivatable=true
Exec=gapplication launch org.gnome.Weather
Actions=
Categories=Core;GNOME;GTK;Utility;X-SuSE-DesktopUtility;
Keywords=Weather;Forecast;
StartupNotify=true

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.1
Type=Application
Name=UEFI Setup
Comment=Reboot to UEFI setup
Icon=mx-boot-options
Exec=reboot-uefi
Actions=
Categories=Utility;

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Version=1.1
Type=Application
Name=Windows
Comment=Reboot to Microsoft Windows
Icon=windows95
Exec=reboot-windows
Actions=
Categories=Utility;

14
applications/yelp.desktop Normal file
View File

@ -0,0 +1,14 @@
[Desktop Entry]
Version=1.1
Type=Application
Name=Help
NoDisplay=true
Comment=Get help with GNOME
Icon=org.gnome.Yelp
OnlyShowIn=GNOME;Unity;
Exec=yelp %u
Actions=
MimeType=x-scheme-handler/ghelp;x-scheme-handler/help;x-scheme-handler/info;x-scheme-handler/man;
Categories=Core;Documentation;GNOME;GTK;Utility;
Keywords=documentation;information;manual;help;
StartupNotify=true

10
bin/gdm-lock-screen Executable file
View File

@ -0,0 +1,10 @@
#!/bin/bash
################################################################################
#
# gdm-lock-screen
# Instructs GDM to lock the screen via D-Bus
#
################################################################################
dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

30
bin/gdm-update-display-settings Executable file
View File

@ -0,0 +1,30 @@
#!/bin/bash
################################################################################
#
# gdm-update-display-settings
# Copies user's current display settings to GDM's config folder
#
################################################################################
# Ensure we're not running as root
if [[ "${EUID}" == 0 ]]; then
echo "DO NOT RUN THIS SCRIPT AS ROOT!"
echo "Please run this script as a regular user."
exit 1
fi
# Update display settings
sudo cp ${HOME}/.config/monitors.xml /var/lib/gdm/.config/ && echo "Copied .config/monitors.xml to /var/lib/gdm/.config"
# Update pointer settings
MOUSE_SPEED=$(gsettings get org.gnome.desktop.peripherals.mouse speed)
MOUSE_ACCEL_PROFILE=$(gsettings get org.gnome.desktop.peripherals.mouse accel-profile)
TOUCHPAD_SPEED=$(gsettings get org.gnome.desktop.peripherals.touchpad speed)
TOUCHPAD_ACCEL_PROFILE=$(gsettings get org.gnome.desktop.peripherals.touchpad accel-profile)
sudo su -c \
"sudo -u gdm dbus-launch gsettings set org.gnome.desktop.peripherals.mouse speed ${MOUSE_SPEED} &&
sudo -u gdm dbus-launch gsettings set org.gnome.desktop.peripherals.mouse accel-profile "${MOUSE_ACCEL_PROFILE}" &&
sudo -u gdm dbus-launch gsettings set org.gnome.desktop.peripherals.touchpad speed ${TOUCHPAD_SPEED} &&
sudo -u gdm dbus-launch gsettings set org.gnome.desktop.peripherals.touchpad accel-profile "${TOUCHPAD_ACCEL_PROFILE}" &&
echo Applied pointer speed and acceleration profiles"

49
bin/gnome-toggle-night-light Executable file
View File

@ -0,0 +1,49 @@
#!/bin/bash
################################################################################
#
# gnome-toggle-night-light
# Toggles GNOME's Night Light feature
#
# Requires notify-send
#
################################################################################
################################################################################
# User configuration
################################################################################
title="Night Light"
body_enabled="Night light has been enabled."
body_disabled="Night light has been disabled."
icon_enabled="night-light"
icon_disabled="night-light-disabled"
key="org.gnome.settings-daemon.plugins.color night-light-enabled"
################################################################################
# GSettings toggle code
################################################################################
# Get original value of key
value=$(gsettings get $key)
# Determine a temp file to store the notification ID in
notif_id_file_name=/tmp/tmp.$(echo $key | tr -d ' ').nid
{ prev_notif_id=$(<$notif_id_file_name); } 2> /dev/null
# If we have an ID from a previous notification,
# set the replace flag so that we override it
replace_flag=""
case $prev_notif_id in
''|*[!0-9]*) ;;
*) replace_flag="--replace-id=$prev_notif_id" ;;
esac
# Toggle the key and send the notification
if [[ $value == "true" ]]; then
gsettings set $key false
notify-send "$title Disabled" "$body_disabled" --app-name "$title" --icon "$icon_disabled" $replace_flag --transient --expire-time=0 --print-id > "$notif_id_file_name"
else
gsettings set $key true
notify-send "$title Enabled" "$body_enabled" --app-name "$title" --icon "$icon_enabled" $replace_flag --transient --expire-time=0 --print-id > "$notif_id_file_name"
fi

49
bin/gnome-toggle-touchpad-lock Executable file
View File

@ -0,0 +1,49 @@
#!/bin/bash
################################################################################
#
# gnome-toggle-touchpad-lock
# Toggles GNOME's touchpad typing lock feature
#
# Requires notify-send to be installed
#
################################################################################
################################################################################
# User configuration
################################################################################
title="Touchpad Lock"
body_enabled="Touchpad will be locked while typing."
body_disabled="Touchpad will be unlocked while typing."
icon_enabled="touchpad-disabled"
icon_disabled="input-touchpad"
key="org.gnome.desktop.peripherals.touchpad disable-while-typing"
################################################################################
# GSettings toggle code
################################################################################
# Get original value of key
value=$(gsettings get $key)
# Determine a temp file to store the notification ID in
notif_id_file_name=/tmp/tmp.$(echo $key | tr -d ' ').nid
{ prev_notif_id=$(<$notif_id_file_name); } 2> /dev/null
# If we have an ID from a previous notification,
# set the replace flag so that we override it
replace_flag=""
case $prev_notif_id in
''|*[!0-9]*) ;;
*) replace_flag="--replace-id=$prev_notif_id" ;;
esac
# Toggle the key and send the notification
if [[ $value == "true" ]]; then
gsettings set $key false
notify-send "$title Disabled" "$body_disabled" --app-name "$title" --icon "$icon_disabled" $replace_flag --transient --expire-time=0 --print-id > "$notif_id_file_name"
else
gsettings set $key true
notify-send "$title Enabled" "$body_enabled" --app-name "$title" --icon "$icon_enabled" $replace_flag --transient --expire-time=0 --print-id > "$notif_id_file_name"
fi

24
bin/projector Executable file
View File

@ -0,0 +1,24 @@
#!/bin/bash
################################################################################
#
# projector
# Updates ${HOME}/Projects against the public repos at git.tty.dog
#
# Requires jq
#
################################################################################
# Ensure ${HOME}/Projects exists and set it as the working directory
PROJECTS_DIR="${HOME}/Projects"
if [ ! -d "${PROJECTS_DIR}" ]; then
mkdir "${PROJECTS_DIR}"
set-icon "${PROJECTS_DIR}" folder-code
fi
cd "${PROJECTS_DIR}"
# Perform a blobless clone of all public repos at git.tty.dog
API_URL="https://git.tty.dog/api/v1/repos/search"
for CLONE_URL in $(curl -s "${API_URL}?uid=1" | jq -r ".data.[].clone_url"); do
git clone --no-checkout --filter=blob:none "${CLONE_URL}"
done

17
bin/reboot-uefi Executable file
View File

@ -0,0 +1,17 @@
#!/bin/bash
################################################################################
#
# reboot-uefi
# Prompts the user to reboot to system firmware (UEFI) setup
#
################################################################################
########################################
# Prompt user and execute reboot seq.
########################################
if zenity --question --icon device_pci --text="Reboot to UEFI setup?" --title "UEFI Setup" --default-cancel --no-wrap --timeout=10
then
pkexec systemctl reboot --firmware-setup
fi

37
bin/reboot-windows Executable file
View File

@ -0,0 +1,37 @@
#!/bin/bash
################################################################################
#
# reboot-windows
# Finds and flags a Windows menuentry in GRUB, and then reboots the system
#
################################################################################
########################################
# Reboot command
########################################
REBOOT_CMD=$(cat <<EOF
# Find the exact name of the first Windows menuentry in grub.cfg
WINDOWS_ENTRY=\$(sudo grep menuentry /boot/grub2/grub.cfg | grep -Po "'.*Windows.*?'" | grep -o "[^'].*[^']")
# Set next_entry in grubenv to the Windows menuentry
sudo grub2-reboot "\$WINDOWS_ENTRY";
# Copy grubenv to the OpenSUSE grub EFI folder (/boot/grub2/ is not visible on UEFI installs)
sudo cp /boot/grub2/grubenv /boot/efi/EFI/opensuse/grubenv
# Reboot!
sudo reboot;
EOF
)
########################################
# Prompt user and execute reboot seq.
########################################
if zenity --question --icon distributor-logo-windows --text="Reboot to Microsoft Windows?" --title "Windows" --default-cancel --no-wrap --timeout=10
then
pkexec --disable-internal-agent bash -c "$REBOOT_CMD"
fi

25
bin/set-icon Executable file
View File

@ -0,0 +1,25 @@
#!/bin/bash
################################################################################
#
# set-icon
# Sets an icon for a file or directory by name
#
################################################################################
LOCATION="${1}"
ICON_NAME="${2}"
if [[ -z "${LOCATION}" ]]; then
echo "Please specify a location"
echo "Usage: set-icon LOCATION [ICON_NAME]"
exit 1
fi
if [[ -z "${ICON_NAME}" ]]; then
echo "Unsetting metadata::custom-icon-name for ${LOCATION}"
gio set "${LOCATION}" metadata::custom-icon-name -t unset
else
echo "Setting metadata::custom-icon-name for ${LOCATION} to ${ICON_NAME}"
gio set "${LOCATION}" metadata::custom-icon-name "${ICON_NAME}"
fi

58
bin/themer Executable file
View File

@ -0,0 +1,58 @@
#!/bin/bash
################################################################################
#
# themer
# Installs/updates unofficial libadwaita themes for various programs
#
################################################################################
########################################
# Install adw-gtk3 for legacy GTK3 applications
echo
echo "*** Installing adw-gtk3 theme for GTK3 applications... ***"
echo
# Download and install adw-gtk3
DOWNLOAD_URL=$(curl -s https://api.github.com/repos/lassekongo83/adw-gtk3/releases/latest | grep browser_download_url | cut -d '"' -f 4)
wget "${DOWNLOAD_URL}" -O /tmp/adw-gtk3.tar
mkdir -p ${HOME}/.local/share/themes
tar xf /tmp/adw-gtk3.tar -C ${HOME}/.local/share/themes/
# Install adw-gtk3 for Flatpak applications
sudo flatpak install --noninteractive org.gtk.Gtk3theme.adw-gtk3 org.gtk.Gtk3theme.adw-gtk3-dark
# Apply adw-gtk3-dark theme to legacy applications
# (Using the dark variant here until GNOME re-adds per-application dark theme support for legacy apps)
gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3-dark"
# Ensure GTK2 applications still use regular Adwaita
echo 'include "/usr/share/themes/Adwaita/gtk-2.0/gtkrc"' > ${HOME}/.gtkrc-2.0
########################################
# Install Adwaita theme for Firefox
echo
echo "*** Installing Adwaita theme for Firefox... ***"
echo
# Download and install gnome-firefox-theme
rm -rf /tmp/firefox-gnome-theme/
git clone https://github.com/rafaelmardojai/firefox-gnome-theme.git /tmp/firefox-gnome-theme/
(
cd /tmp/firefox-gnome-theme/
git checkout v$(firefox --version | sed -nr 's/[^0-9]*([0-9]*).*/\1/p') # Making sure to use the appropriate version
bash ./scripts/auto-install.sh
)
# Set user flags for theme
function set_ff_flag ()
{
USER_JS_FILE=${HOME}/.mozilla/firefox/*.default-release/user.js
sed -i 's/user_pref("'${1}'",.*);/user_pref("'${1}'",'${2}');/' $USER_JS_FILE
grep -q ${1} $USER_JS_FILE || echo "user_pref(\"$1\",$2);" >> $USER_JS_FILE
}
set_ff_flag gnomeTheme.dragWindowHeaderbarButtons true
set_ff_flag gnomeTheme.bookmarksToolbarUnderTabs true
set_ff_flag gnomeTheme.hideSingleTab true