#!/usr/bin/env bash
# ROX-Filer settings
sudo apt install -y rox-filer
sudo apt install -y libatk-adaptor libgail-common
sudo apt install -y xmlstarlet ffmpegthumbnailer ffmpeg
# Make changes to Options, menus2 using xmlstarlet at the bottom of this script.
DEST=${1:-/etc/skel}
ROXFILER_HOME="${DEST}"/.config/rox.sourceforge.net
MIMETYPES="${ROXFILER_HOME}"/MIME-types
mkdir -p "${ROXFILER_HOME}"/ROX-Filer/
mkdir -p "${MIMETYPES}"
# Mime types
cat <<-EOF | sudo tee "${MIMETYPES}"/application_msword >/dev/null
#! /bin/sh
exec libreoffice "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/application_pdf >/dev/null
#! /bin/sh
exec atril "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/application_vnd.openxmlformats-officedocument.spreadsheetml.sheet >/dev/null
#! /bin/sh
exec libreoffice "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/application_vnd.openxmlformats-officedocument.wordprocessingml.document >/dev/null
#! /bin/sh
exec libreoffice "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/application_vnd.rar >/dev/null
#! /bin/sh
exec xarchiver "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/application_x-kicad-pcb >/dev/null
#! /bin/sh
exec kicad "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/application_x-kicad-project >/dev/null
#! /bin/sh
exec kicad "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/application_zip >/dev/null
#! /bin/sh
exec xarchiver "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/audio_mp4 >/dev/null
#! /bin/sh
exec mpv --force-window "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/audio_mpeg >/dev/null
#! /bin/sh
exec mpv --force-window "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/audio_x-m4b >/dev/null
#! /bin/sh
exec mpv --force-window "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/image_jpeg >/dev/null
#! /bin/sh
exec geeqie "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/image_png >/dev/null
#! /bin/sh
exec geeqie "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/text_x-csrc >/dev/null
#! /bin/sh
exec /opt/arduino/arduino-1.8.10 "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/video_mp4 >/dev/null
#! /bin/sh
exec mpv --force-window "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/video_webm >/dev/null
#! /bin/sh
exec mpv --force-window "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/video_x-mov >/dev/null
#! /bin/sh
exec mpv "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/video_x-flv >/dev/null
#! /bin/sh
exec mpv "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/video_x-matroska >/dev/null
#! /bin/sh
exec mpv --force-window "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/video_x-ms-wmv >/dev/null
#! /bin/sh
exec mpv --force-window "$@"
EOF
cat <<-EOF | sudo tee "${MIMETYPES}"/video_x-msvideo >/dev/null
#! /bin/sh
exec mpv --force-window "$@"
EOF
# Options
# The Options and menus2 file are not created until first run
#
cat <<-EOF | sudo tee "${ROXFILER_HOME}"/ROX-Filer/Bookmarks.xml >/dev/null
/opt/tor-browser_en-US/Browser/Downloads
EOF
cat <<-EOF | sudo tee "${ROXFILER_HOME}"/ROX-Filer/Bookmarks.xml >/dev/null
/var/tmp
EOF
# Door files are a bit like sockets or pipes, and have only been seen on Solaris.
# Magenta
# Navy Blue
# Black
# Black
# Black
# Black
# Charcoal
# Green
# Green
# Magenta
# Red
# Grey
# White
#
cat <<-EOF | sudo tee "${ROXFILER_HOME}"/ROX-Filer/Options >/dev/null
EOF
cat <<-EOF | sudo tee "${ROXFILER_HOME}"/ROX-Filer/menus2 >/dev/null
; rox GtkAccelMap rc-file -*- scheme -*-
; this file is an automated accelerator map dump
;
; (gtk_accel_path "/Window/Home Directory" "Home")
; (gtk_accel_path "/Help/Manual" "")
; (gtk_accel_path "/Window/Shell Command..." "exclam")
; (gtk_accel_path "/Display/Reversed" "")
; (gtk_accel_path "/Display/Sort by Group" "")
; (gtk_accel_path "/File/Link..." "")
; (gtk_accel_path "/Display/Show Thumbnails" "")
; (gtk_accel_path "/Display/Smaller Icons" "minus")
; (gtk_accel_path "/Window/Follow Symbolic Links" "")
; (gtk_accel_path "/File/" "")
; (gtk_accel_path "/File/Shift Open" "")
; (gtk_accel_path "/Window/" "")
; (gtk_accel_path "/Window/Switch to Terminal" "")
; (gtk_accel_path "/New/Blank file" "n")
; (gtk_accel_path "/Display/Sort by Date" "")
; (gtk_accel_path "/Display/Icons, With.../Times" "")
; (gtk_accel_path "/Window/Show Log" "")
; (gtk_accel_path "/Display/Refresh" "")
; (gtk_accel_path "/File/Send To..." "")
; (gtk_accel_path "/File/Copy..." "c")
; (gtk_accel_path "/Window/Close Window" "q")
; (gtk_accel_path "/Display/Bigger Icons" "equal")
; (gtk_accel_path "/Display/Sort by Owner" "")
; (gtk_accel_path "/Display/Filter Directories With Files" "")
; (gtk_accel_path "/Window/Enter Path..." "slash")
; (gtk_accel_path "/File/Set Icon..." "")
; (gtk_accel_path "/Display/Sort by Name" "")
; (gtk_accel_path "/Display/Icons, With.../Permissions" "")
; (gtk_accel_path "/Window/Parent, New Window" "")
; (gtk_accel_path "/Display/List View" "")
; (gtk_accel_path "/File/Customise Menu..." "")
; (gtk_accel_path "/File/Permissions" "")
; (gtk_accel_path "/Help/Show Help Files" "F1")
; (gtk_accel_path "/File/Find" "f")
; (gtk_accel_path "/File/Delete" "x")
; (gtk_accel_path "/Display/Sort by Size" "")
; (gtk_accel_path "/New/Directory" "")
; (gtk_accel_path "/Display/Icons, With.../Sizes" "")
; (gtk_accel_path "/Display/Automatic" "")
; (gtk_accel_path "/Select/Clear Selection" "")
; (gtk_accel_path "/Window/Resize Window" "e")
; (gtk_accel_path "/Window/Show Bookmarks" "b")
; (gtk_accel_path "/Select/Invert Selection" "")
; (gtk_accel_path "/File/Properties" "p")
; (gtk_accel_path "/File/Set Type..." "")
; (gtk_accel_path "/Window/New Window" "")
; (gtk_accel_path "/Display/Show Hidden" "h")
; (gtk_accel_path "/Window/Terminal Here" "grave")
; (gtk_accel_path "/Display/Save Current Display Settings..." "")
; (gtk_accel_path "/Display/Filter Files..." "")
; (gtk_accel_path "/New/Customise Menu..." "")
; (gtk_accel_path "/Select/Select If..." "question")
; (gtk_accel_path "/Window/Parent, Same Window" "")
; (gtk_accel_path "/Options..." "")
; (gtk_accel_path "/Display/Icons View" "")
; (gtk_accel_path "/Help/About ROX-Filer..." "")
; (gtk_accel_path "/File/Set Run Action..." "asterisk")
; (gtk_accel_path "/Select/Select All" "a")
; (gtk_accel_path "/Display/Sort by Type" "")
; (gtk_accel_path "/Select/Select by Name..." "period")
; (gtk_accel_path "/Display/" "")
; (gtk_accel_path "/Display/Icons, With.../Types" "")
; (gtk_accel_path "/File/Rename..." "")
; (gtk_accel_path "/File/Count" "")
EOF
# Changes display_dir_colour from #000080 to #3399FF e17 blue
xmlstarlet edit -L -u "/Options/Option[@name='display_file_colour']" -v '#CCCCCC' "${ROXFILER_HOME}"/ROX-Filer/Options
xmlstarlet edit -L -u "/Options/Option[@name='display_dir_colour']" -v '#3399FF' "${ROXFILER_HOME}"/ROX-Filer/Options
# Changes display_dir_colour from #000080 to #FC8C4A orange
#
#xmlstarlet edit -L -u "/Options/Option[@name='display_file_colour']" -v '#CCCCCC' ${ROXFILER_HOME}/ROX-Filer/Options
#xmlstarlet edit -L -u "/Options/Option[@name='display_dir_colour']" -v '#FC8C4A' ${ROXFILER_HOME}/ROX-Filer/Options
xmlstarlet edit -L -u "/Options/Option[@name='display_dirs_first']" -v '1' "${ROXFILER_HOME}"/ROX-Filer/Options
xmlstarlet edit -L -u "/Options/Option[@name='display_inherit_options']" -v '1' "${ROXFILER_HOME}"/ROX-Filer/Options
xmlstarlet edit -L -u "/Options/Option[@name='filer_view_type']" -v '1' "${ROXFILER_HOME}"/ROX-Filer/Options
xmlstarlet edit -L -u "/Options/Option[@name='menu_xterm']" -v 'terminology' "${ROXFILER_HOME}"/ROX-Filer/Options
xmlstarlet edit -L -u "/Options/Option[@name='dnd_uri_handler']" -v 'x-terminal-emulator -e wget -c $1' "${ROXFILER_HOME}"/ROX-Filer/Options