# Fix when ethernet mistakenly detects 100 Mb instead of 1000 Mb.
# SPEED is one of 10/100/1000 etc.
# Usage: fix_ethernet_speed <DEVICE> <SPEED>
function fix_ethernet_speed() {
	local device="${1}"
	local speed="${2}"

	if [[ "${device}" = "" || "${speed}" = "" ]]; then
		help fix_ethernet_speed
		return 2
	fi

	ethtool -s "${device}" speed "${speed}"
}

# Fix nautilus after typing wrong sftp password.
function fix_files_sftp() {
	secret-tool clear protocol sftp
}

# Delete lost Gradle lock files.
function fix_gradle_lock() {
	cd "${HOME}/.gradle" && find -type f | grep \\.lock$ | xargs -- rm
	cd -
}

# Fix Gnome's broken RDP ffs.
# Usage: fix_gnome_rdp <PASSWORD>
function fix_gnome_rdp() {
	local user="${USERNAME}"
	local password="${1}"

	# Check params.
	if [[ "${password}" = "" ]]; then
		help fix_gnome_rdp
		return 2
	fi

	# Unlock keyring. PROTIP: Disable password for it in password manager.
	pkill -9 -f gnome-keyring-daemon
	echo -n "${user}" | gnome-keyring-daemon --unlock

	# Generate keys.
	cd /tmp
	openssl genrsa -out rdp-tls.key 4096
	openssl req -new -key rdp-tls.key -subj "/C=US" | openssl x509 -req -days 730 -signkey rdp-tls.key -out rdp-tls.crt
	mkdir -p "${HOME}/.local/share/gnome-remote-desktop/"
	mv rdp-tls.key rdp-tls.crt "${HOME}/.local/share/gnome-remote-desktop/"

	# Configure RDP.
	grdctl rdp set-tls-cert "${HOME}/.local/share/gnome-remote-desktop/rdp-tls.crt"
	grdctl rdp set-tls-key "${HOME}/.local/share/gnome-remote-desktop/rdp-tls.key"
	grdctl rdp set-credentials "${user}" "${password}"
	grdctl rdp disable-view-only

	# Start service.
	grdctl rdp enable
	systemctl --user start gnome-remote-desktop.service

	# Show status.
	grdctl status --show-credentials
	systemctl --user status gnome-remote-desktop.service

	# Show extra info.
	_warn "You may need to manually restart Desktop sharing via Gnome Settings."
}