├── .gitattributes ├── README.md ├── hurstythemes.png ├── hurstythemes.sh ├── install.sh └── themerandom.sh /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # hurstythemes 2 | 3 | ------- 4 | OVERVIEW 5 | 6 | Hursty's Themes RetroPie Downloader (as at 2 October 2023, I have released 2000 themes for ES) 7 | 8 | Due to the number of themes I have made for Emulation Station, the built-in ES Themes Manager list was becoming very large and cumbersome. I decided to create my own ES Themes downloader and just list my themes linked directly to my Github repositories. This allows easier access to my themes for everyone. 9 | 10 | I've also created a set of ES themes (the mini sweet themes) that highlight an individual game or game character. These themes all have the word "Sweet" at the end of the name. To make the most of the "Sweet" Themes experience, make sure you activate the ES Theme Randomizer script. 11 | 12 | The ES bootup randomizer script was created by David Marti for his Motion Blue Unified base image. 13 | 14 | Periodically, new themes are completed and you will need to run the script updater to download the newest version to see these additional themes. 15 | 16 | The instructions below will demonstrate how to install the script and have it show up in the RetroPie menu within Emulation Station. 17 | 18 | ------- 19 | INSTALLATION - using a Raspberry Pi build of RetroPie 20 | 21 | Exit out of Emulation Station by pressing F4 (or remote into the Pi using something like Putty) 22 | 23 | Type the following commands and press enter after each line to execute it: 24 | 25 | ***wget https://raw.githubusercontent.com/RetroHursty69/HurstyThemes/master/install.sh*** 26 | 27 | ***chmod +x "install.sh"*** 28 | 29 | ***./install.sh*** 30 | 31 | This will download and install the Hursty's Theme script and update the RetroPie ES gamelist.xml file. 32 | 33 | Restart Emulation Station and you should then see the new script in the RetroPie menu. 34 | -------------------------------------------------------------------------------- /hurstythemes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RetroHursty69/HurstyThemes/7c38151d276f817d9090c53203164e337a73834b/hurstythemes.png -------------------------------------------------------------------------------- /hurstythemes.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # This file is NOT part of The RetroPie Project 4 | # 5 | # This script is a third party script to install the RetroHursty69 6 | # Emulation Station themes onto a RetroPie build. 7 | # 8 | # 9 | 10 | function depends_hurstythemes() { 11 | if isPlatform "x11"; then 12 | getDepends feh 13 | else 14 | getDepends fbi 15 | fi 16 | } 17 | 18 | function install_theme_hurstythemes() { 19 | local theme="$1" 20 | local repo="$2" 21 | if [[ -z "$repo" ]]; then 22 | repo="RetroHursty69" 23 | fi 24 | if [[ -z "$theme" ]]; then 25 | theme="carbon" 26 | repo="RetroPie" 27 | fi 28 | sudo git clone "https://github.com/$repo/es-theme-$theme.git" "/etc/emulationstation/themes/$theme" 29 | } 30 | 31 | function uninstall_theme_hurstythemes() { 32 | local theme="$1" 33 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 34 | sudo rm -rf "/etc/emulationstation/themes/$theme" 35 | fi 36 | } 37 | 38 | function disable_script() { 39 | dialog --infobox "...processing..." 3 20 ; sleep 2 40 | ifexist=`cat /opt/retropie/configs/all/autostart.sh |grep themerandom |wc -l` 41 | if [[ ${ifexist} > "0" ]] 42 | then 43 | perl -pi -w -e 's/\/home\/pi\/scripts\/themerandom.sh/#\/home\/pi\/scripts\/themerandom.sh/g;' /opt/retropie/configs/all/autostart.sh 44 | fi 45 | sleep 2 46 | } 47 | 48 | function enable_script() { 49 | dialog --infobox "...processing..." 3 20 ; sleep 2 50 | ifexist=`cat /opt/retropie/configs/all/autostart.sh |grep themerandom |wc -l` 51 | if [[ ${ifexist} > "0" ]] 52 | then 53 | perl -pi -w -e 's/#\/home\/pi\/scripts\/themerandom.sh/\/home\/pi\/scripts\/themerandom.sh/g;' /opt/retropie/configs/all/autostart.sh 54 | else 55 | cp /opt/retropie/configs/all/autostart.sh /opt/retropie/configs/all/autostart.sh.bkp 56 | echo "/home/pi/scripts/themerandom.sh" > /tmp/autostart.sh 57 | cat /opt/retropie/configs/all/autostart.sh >> /tmp/autostart.sh 58 | chmod 777 /tmp/autostart.sh 59 | cp /tmp/autostart.sh /opt/retropie/configs/all 60 | fi 61 | sleep 2 62 | } 63 | 64 | function gui_hurstythemes() { 65 | while true; do 66 | local theme 67 | local installed_themes=() 68 | local repo 69 | local options=() 70 | local status=() 71 | local default 72 | 73 | options+=(U "Update install script - script will exit when updated") 74 | options+=(E "Enable ES bootup theme randomizer") 75 | options+=(D "Disable ES bootup theme randomizer") 76 | options+=(B "ToggleBoxy Themes Manager (200 Themes)") 77 | options+=(F "Mini Sweet Themes Manager (240 Themes)") 78 | options+=(G "Cool Themes Manager (121 Themes)") 79 | options+=(H "Spin Themes Manager (172 Themes)") 80 | options+=(I "16:9 Aspect Themes Manager (120 Themes)") 81 | options+=(J "5:4 Aspect Themes Manager (15 Themes)") 82 | options+=(K "Vertical Aspect Themes Manager (2 Themes)") 83 | options+=(L "Chromey Blue Themes Manager (133 Themes)") 84 | options+=(M "Chromey Green Themes Manager (133 Themes)") 85 | options+=(N "Chromey Neon Themes Manager (134 Themes)") 86 | options+=(O "Hursty's Picks Themes Manager (31 Themes)") 87 | options+=(P "Handheld (3:2, 4:3) Themes Manager (12 Themes)") 88 | options+=(Q "Slick Themes Manager (30 Themes)") 89 | options+=(R "Hyper Themes Manager (177 Themes)") 90 | options+=(S "Mario Themes Manager (22 Themes)") 91 | options+=(T "GPi (320x240) Themes Manager (37 Themes)") 92 | options+=(V "Comic (16:9) Themes Manager (11 Themes)") 93 | options+=(W "Adios (16:9) Themes Manager (99 Themes)") 94 | options+=(Y "Slanty (16:9) Themes Manager (77 Themes)") 95 | options+=(Z "Community Themes Manager (Themes by the community, not Hursty)") 96 | options+=(1 "SmoothyUno (16:9) Themes Manager (153 Themes)") 97 | options+=(2 "SmoothyDuo (16:9) Themes Manager (118 Themes)") 98 | 99 | local i=1 100 | for theme in "${themes[@]}"; do 101 | theme=($theme) 102 | repo="${theme[0]}" 103 | theme="${theme[1]}" 104 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 105 | status+=("i") 106 | options+=("$i" "Update or Uninstall $theme (installed)") 107 | installed_themes+=("$theme $repo") 108 | else 109 | status+=("n") 110 | options+=("$i" "Install $theme (not installed)") 111 | fi 112 | ((i++)) 113 | done 114 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's Theme Installer (2000 ES Themes made by Hursty), also includes all the Community Made Themes (located bottom of the list)" 22 76 16) 115 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 116 | default="$choice" 117 | [[ -z "$choice" ]] && break 118 | case "$choice" in 119 | U) #update install script to get new theme listings 120 | cd "/home/pi/RetroPie/retropiemenu" 121 | mv "hurstythemes.sh" "hurstythemes.sh.bkp" 122 | wget "https://raw.githubusercontent.com/retrohursty69/HurstyThemes/master/hurstythemes.sh" 123 | if [[ -f "/home/pi/RetroPie/retropiemenu/hurstythemes.sh" ]]; then 124 | echo "/home/pi/RetroPie/retropiemenu/hurstythemes.sh" > /tmp/errorchecking 125 | else 126 | mv "hurstythemes.sh.bkp" "hurstythemes.sh" 127 | fi 128 | chmod 777 "hurstythemes.sh" 129 | exit 130 | ;; 131 | E) #enable ES bootup theme randomizer 132 | enable_script 133 | ;; 134 | D) #disable ES bootup theme randomizer 135 | disable_script 136 | ;; 137 | B) #toggleboxy themes only 138 | toggleboxy_themes 139 | ;; 140 | F) #mini sweet themes only 141 | sweet_themes 142 | ;; 143 | G) #cool themes only 144 | cool_themes 145 | ;; 146 | H) #spin themes only 147 | spin_themes 148 | ;; 149 | I) #16:9 themes only 150 | 16x9_themes 151 | ;; 152 | J) #4:3 themes only 153 | 5x4_themes 154 | ;; 155 | K) #vertical themes only 156 | vertical_themes 157 | ;; 158 | L) #chromey blue themes only 159 | chromeyblue_themes 160 | ;; 161 | M) #chromey green themes only 162 | chromeygreen_themes 163 | ;; 164 | N) #chromey neon themes only 165 | chromeyneon_themes 166 | ;; 167 | O) #hursty's picks 168 | hurstypicks_themes 169 | ;; 170 | P) #handheld themes 171 | handheld_themes 172 | ;; 173 | Q) #slick themes 174 | slick_themes 175 | ;; 176 | R) #hyper themes 177 | hyper_themes 178 | ;; 179 | S) #mario themes 180 | mario_themes 181 | ;; 182 | T) #GPi themes 183 | GPi_themes 184 | ;; 185 | V) #Comic themes 186 | Comic_themes 187 | ;; 188 | W) #Adios themes 189 | Adios_themes 190 | ;; 191 | Y) #Slanty themes 192 | Slanty_themes 193 | ;; 194 | Z) #Community themes 195 | Community_themes 196 | ;; 197 | 1) #SmoothyUno 198 | SmoothyUno_themes 199 | ;; 200 | 2) #SmoothyDuo themes 201 | SmoothyDuo_themes 202 | ;; 203 | *) #install or update themes 204 | theme=(${themes[choice-1]}) 205 | repo="${theme[0]}" 206 | theme="${theme[1]}" 207 | # if [[ "${status[choice]}" == "i" ]]; then 208 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 209 | options=(1 "Update $theme" 2 "Uninstall $theme") 210 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 211 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 212 | case "$choice" in 213 | 1) 214 | install_theme_hurstythemes "$theme" "$repo" 215 | ;; 216 | 2) 217 | uninstall_theme_hurstythemes "$theme" 218 | ;; 219 | esac 220 | else 221 | install_theme_hurstythemes "$theme" "$repo" 222 | fi 223 | ;; 224 | esac 225 | done 226 | } 227 | 228 | function sweet_themes() { 229 | local themes=( 230 | 'RetroHursty69 300Sweet' 231 | 'RetroHursty69 AdventureTimeSweet' 232 | 'RetroHursty69 AladdinSweet' 233 | 'RetroHursty69 AlienSweet' 234 | 'RetroHursty69 AmericanDadSweet' 235 | 'RetroHursty69 AngryBirdSweet' 236 | 'RetroHursty69 AnimalCrossingSweet' 237 | 'RetroHursty69 AntManSweet' 238 | 'RetroHursty69 AssassinsSweet' 239 | 'RetroHursty69 AstroBoySweet' 240 | 'RetroHursty69 AustinPowersSweet' 241 | 'RetroHursty69 AvatarSweet' 242 | 'RetroHursty69 BackFutureSweet' 243 | 'RetroHursty69 BanjoSweet' 244 | 'RetroHursty69 BatmanSweet' 245 | 'RetroHursty69 BattletoadsSweet' 246 | 'RetroHursty69 BayonettaSweet' 247 | 'RetroHursty69 BeautyBeastSweet' 248 | 'RetroHursty69 BeavisButtHeadSweet' 249 | 'RetroHursty69 BeetleJuiceSweet' 250 | 'RetroHursty69 BettyBoopSweet' 251 | 'RetroHursty69 BioshockSweet' 252 | 'RetroHursty69 BloodyRoarSweet' 253 | 'RetroHursty69 BombermanSweet' 254 | 'RetroHursty69 BreathofFireSweet' 255 | 'RetroHursty69 BrianLaraSweet' 256 | 'RetroHursty69 BubbleBobbleSweet' 257 | 'RetroHursty69 BuffySweet' 258 | 'RetroHursty69 BugsLifeSweet' 259 | 'RetroHursty69 CODSweet' 260 | 'RetroHursty69 CaptAmericaSweet' 261 | 'RetroHursty69 CarsSweet' 262 | 'RetroHursty69 CastlevaniaSweet' 263 | 'RetroHursty69 ChronoTriggerSweet' 264 | 'RetroHursty69 ChuckySweet' 265 | 'RetroHursty69 ChunLiSweet' 266 | 'RetroHursty69 ContraSweet' 267 | 'RetroHursty69 CrashBandiSweet' 268 | 'RetroHursty69 CrazyTaxiSweet' 269 | 'RetroHursty69 CupheadSweet' 270 | 'RetroHursty69 DKCountrySweet' 271 | 'RetroHursty69 DarkstalkersSweet' 272 | 'RetroHursty69 DayTentacleSweet' 273 | 'RetroHursty69 DeadpoolSweet' 274 | 'RetroHursty69 DeadorAliveSweet' 275 | 'RetroHursty69 DevilMayCrySweet' 276 | 'RetroHursty69 DiabloSweet' 277 | 'RetroHursty69 DieHardSweet' 278 | 'RetroHursty69 DigDugSweet' 279 | 'RetroHursty69 DigimonSweet' 280 | 'RetroHursty69 DoomSweet' 281 | 'RetroHursty69 DoraemonSweet' 282 | 'RetroHursty69 DoubleDragonSweet' 283 | 'RetroHursty69 DrMarioSweet' 284 | 'RetroHursty69 DrWhoSweet' 285 | 'RetroHursty69 DragonballZSweet' 286 | 'RetroHursty69 DragonsLairSweet' 287 | 'RetroHursty69 DuckHuntSweet' 288 | 'RetroHursty69 ETSweet' 289 | 'RetroHursty69 EarthboundSweet' 290 | 'RetroHursty69 DukeNukemSweet' 291 | 'RetroHursty69 EarthwormJimSweet' 292 | 'RetroHursty69 EvilDeadSweet' 293 | 'RetroHursty69 FamilyGuySweet' 294 | 'RetroHursty69 Fantastic4Sweet' 295 | 'RetroHursty69 FarCrySweet' 296 | 'RetroHursty69 FalloutSweet' 297 | 'RetroHursty69 FatalFurySweet' 298 | 'RetroHursty69 FelixSweet' 299 | 'RetroHursty69 FinalFantasySweet' 300 | 'RetroHursty69 FinalFightSweet' 301 | 'RetroHursty69 FindingNemoSweet' 302 | 'RetroHursty69 FlintstonesSweet' 303 | 'RetroHursty69 FortniteSweet' 304 | 'RetroHursty69 ForzaSweet' 305 | 'RetroHursty69 FoxSweet' 306 | 'RetroHursty69 FreddySweet' 307 | 'RetroHursty69 Friday13thSweet' 308 | 'RetroHursty69 FullThrottleSweet' 309 | 'RetroHursty69 FuturamaSweet' 310 | 'RetroHursty69 FuryRoadSweet' 311 | 'RetroHursty69 FroggerSweet' 312 | 'RetroHursty69 FZeroSweet' 313 | 'RetroHursty69 GEXSweet' 314 | 'RetroHursty69 GOWSweet' 315 | 'RetroHursty69 GTASweet' 316 | 'RetroHursty69 GhostbustersSweet' 317 | 'RetroHursty69 GhostRiderSweet' 318 | 'RetroHursty69 GhoulsSweet' 319 | 'RetroHursty69 GoldenEyeSweet' 320 | 'RetroHursty69 GranTurismoSweet' 321 | 'RetroHursty69 GrimFandangoSweet' 322 | 'RetroHursty69 HalfLifeSweet' 323 | 'RetroHursty69 HaloSweet' 324 | 'RetroHursty69 HalloweenSweet' 325 | 'RetroHursty69 HarryPotterSweet' 326 | 'RetroHursty69 HarvestMoonSweet' 327 | 'RetroHursty69 HelloKittySweet' 328 | 'RetroHursty69 HitmanSweet' 329 | 'RetroHursty69 HulkSweet' 330 | 'RetroHursty69 IncrediblesSweet' 331 | 'RetroHursty69 IndianaJonesSweet' 332 | 'RetroHursty69 InspectorGadgetSweet' 333 | 'RetroHursty69 IronGiantSweet' 334 | 'RetroHursty69 IronManSweet' 335 | 'RetroHursty69 ITSweet' 336 | 'RetroHursty69 JetSetSweet' 337 | 'RetroHursty69 JetsonsSweet' 338 | 'RetroHursty69 JudgeDreddSweet' 339 | 'RetroHursty69 JurassicParkSweet' 340 | 'RetroHursty69 KOFSweet' 341 | 'RetroHursty69 KillerInstinctSweet' 342 | 'RetroHursty69 KillLaKillSweet' 343 | 'RetroHursty69 KindomHeartsSweet' 344 | 'RetroHursty69 KirbySweet' 345 | 'RetroHursty69 KlonoaSweet' 346 | 'RetroHursty69 KongSweet' 347 | 'RetroHursty69 KratosSweet' 348 | 'RetroHursty69 LaraCroftSweet' 349 | 'RetroHursty69 LegoSweet' 350 | 'RetroHursty69 LionKingSweet' 351 | 'RetroHursty69 LordRingsSweet' 352 | 'RetroHursty69 LuigiSweet' 353 | 'RetroHursty69 MLPSweet' 354 | 'RetroHursty69 MOTUSweet' 355 | 'RetroHursty69 MarioBrosSweet' 356 | 'RetroHursty69 MarioKartSweet' 357 | 'RetroHursty69 MarioPartySweet' 358 | 'RetroHursty69 MartiMagicSweet' 359 | 'RetroHursty69 MarvelvsCapcomSweet' 360 | 'RetroHursty69 MassEffectSweet' 361 | 'RetroHursty69 MatrixSweet' 362 | 'RetroHursty69 MaxPayneSweet' 363 | 'RetroHursty69 MechWarriorSweet' 364 | 'RetroHursty69 MegaManSweet' 365 | 'RetroHursty69 MeninBlackSweet' 366 | 'RetroHursty69 MetalGearSweet' 367 | 'RetroHursty69 MetalSlugSweet' 368 | 'RetroHursty69 MetroidSweet' 369 | 'RetroHursty69 MillenniumSweet' 370 | 'RetroHursty69 MinecraftSweet' 371 | 'RetroHursty69 MonkeyBallSweet' 372 | 'RetroHursty69 MonsterHunterSweet' 373 | 'RetroHursty69 MonstersIncSweet' 374 | 'RetroHursty69 MooMesaSweet' 375 | 'RetroHursty69 MortalKombatSweet' 376 | 'RetroHursty69 MuppetsSweet' 377 | 'RetroHursty69 MysticalNinjaSweet' 378 | 'RetroHursty69 NinjaGaidenSweet' 379 | 'RetroHursty69 OddWorldSweet' 380 | 'RetroHursty69 OptimusSweet' 381 | 'RetroHursty69 OutrunSweet' 382 | 'RetroHursty69 OverwatchSweet' 383 | 'RetroHursty69 PaRappaSweet' 384 | 'RetroHursty69 PacmanSweet' 385 | 'RetroHursty69 PaperMarioSweet' 386 | 'RetroHursty69 ParodiusSweet' 387 | 'RetroHursty69 PepsiManSweet' 388 | 'RetroHursty69 PersonaSweet' 389 | 'RetroHursty69 PikminSweet' 390 | 'RetroHursty69 PokemonSweet' 391 | 'RetroHursty69 PopeyeSweet' 392 | 'RetroHursty69 PowerRangersSweet' 393 | 'RetroHursty69 PredatorSweet' 394 | 'RetroHursty69 PrinceofPersiaSweet' 395 | 'RetroHursty69 ProfessorLaytonSweet' 396 | 'RetroHursty69 PunchOutSweet' 397 | 'RetroHursty69 QBertSweet' 398 | 'RetroHursty69 Rainbow6Sweet' 399 | 'RetroHursty69 RachetClankSweet' 400 | 'RetroHursty69 RamboSweet' 401 | 'RetroHursty69 RaymanSweet' 402 | 'RetroHursty69 ReadyPlayer1Sweet' 403 | 'RetroHursty69 RedDeadSweet' 404 | 'RetroHursty69 RenStimpySweet' 405 | 'RetroHursty69 ResidentEvilSweet' 406 | 'RetroHursty69 RoboCopSweet' 407 | 'RetroHursty69 RockBandSweet' 408 | 'RetroHursty69 RogerRabbitSweet' 409 | 'RetroHursty69 RogueSquadronSweet' 410 | 'RetroHursty69 RyuSweet' 411 | 'RetroHursty69 SMWorldSweet' 412 | 'RetroHursty69 SWHothSweet' 413 | 'RetroHursty69 SackBoySweet' 414 | 'RetroHursty69 SamuraiShoSweet' 415 | 'RetroHursty69 SawSweet' 416 | 'RetroHursty69 ScoobyDooSweet' 417 | 'RetroHursty69 ShaneWarneSweet' 418 | 'RetroHursty69 ShrekSweet' 419 | 'RetroHursty69 SilentHillSweet' 420 | 'RetroHursty69 SimCitySweet' 421 | 'RetroHursty69 SimpsonsSweet' 422 | 'RetroHursty69 SimsSweet' 423 | 'RetroHursty69 SmashBrosSweet' 424 | 'RetroHursty69 SmurfsSweet' 425 | 'RetroHursty69 SouthParkSweet' 426 | 'RetroHursty69 SonicSweet' 427 | 'RetroHursty69 SoulCaliburSweet' 428 | 'RetroHursty69 SouljaBoySweet' 429 | 'RetroHursty69 SpaceChannel5Sweet' 430 | 'RetroHursty69 SpeedRacerSweet' 431 | 'RetroHursty69 SpidermanSweet' 432 | 'RetroHursty69 SplinterCellSweet' 433 | 'RetroHursty69 SpongebobSweet' 434 | 'RetroHursty69 SpyroSweet' 435 | 'RetroHursty69 StarTrekSweet' 436 | 'RetroHursty69 StrangerThingsSweet' 437 | 'RetroHursty69 StreetsRageSweet' 438 | 'RetroHursty69 SuicideSquadSweet' 439 | 'RetroHursty69 SupermanSweet' 440 | 'RetroHursty69 TMNTSweet' 441 | 'RetroHursty69 TeamFortress2Sweet' 442 | 'RetroHursty69 TekkenSweet' 443 | 'RetroHursty69 TerminatorSweet' 444 | 'RetroHursty69 ToejamEarlSweet' 445 | 'RetroHursty69 TonyHawkSweet' 446 | 'RetroHursty69 TotalRecallSweet' 447 | 'RetroHursty69 ToyStorySweet' 448 | 'RetroHursty69 TronSweet' 449 | 'RetroHursty69 TronLegacySweet' 450 | 'RetroHursty69 TwistedMetalSweet' 451 | 'RetroHursty69 UnchartedSweet' 452 | 'RetroHursty69 UpSweet' 453 | 'RetroHursty69 VenomSweet' 454 | 'RetroHursty69 ViewtifulJoeSweet' 455 | 'RetroHursty69 VirtuaFighterSweet' 456 | 'RetroHursty69 VirtuaTennisSweet' 457 | 'RetroHursty69 WallESweet' 458 | 'RetroHursty69 WarioSweet' 459 | 'RetroHursty69 WitcherSweet' 460 | 'RetroHursty69 WolfensteinSweet' 461 | 'RetroHursty69 WonderWomanSweet' 462 | 'RetroHursty69 WormsSweet' 463 | 'RetroHursty69 WoWSweet' 464 | 'RetroHursty69 WrestleManiaSweet' 465 | 'RetroHursty69 XMenSweet' 466 | 'RetroHursty69 YoshiSweet' 467 | 'RetroHursty69 YuGiOhSweet' 468 | 'RetroHursty69 ZeldaSweet' 469 | 'RetroHursty69 ZombiesAteSweet' 470 | ) 471 | while true; do 472 | local theme 473 | local installed_themes=() 474 | local repo 475 | local options=() 476 | local status=() 477 | local default 478 | 479 | local i=1 480 | for theme in "${themes[@]}"; do 481 | theme=($theme) 482 | repo="${theme[0]}" 483 | theme="${theme[1]}" 484 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 485 | status+=("i") 486 | options+=("$i" "Update or Uninstall $theme (installed)") 487 | installed_themes+=("$theme $repo") 488 | else 489 | status+=("n") 490 | options+=("$i" "Install $theme (not installed)") 491 | fi 492 | ((i++)) 493 | done 494 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 495 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 496 | default="$choice" 497 | [[ -z "$choice" ]] && break 498 | case "$choice" in 499 | *) #install or update themes 500 | theme=(${themes[choice-1]}) 501 | repo="${theme[0]}" 502 | theme="${theme[1]}" 503 | # if [[ "${status[choice]}" == "i" ]]; then 504 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 505 | options=(1 "Update $theme" 2 "Uninstall $theme") 506 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 507 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 508 | case "$choice" in 509 | 1) 510 | install_theme_hurstythemes "$theme" "$repo" 511 | ;; 512 | 2) 513 | uninstall_theme_hurstythemes "$theme" 514 | ;; 515 | esac 516 | else 517 | install_theme_hurstythemes "$theme" "$repo" 518 | fi 519 | ;; 520 | esac 521 | done 522 | } 523 | 524 | function cool_themes() { 525 | local themes=( 526 | 'RetroHursty69 AladdinCool' 527 | 'RetroHursty69 AnimalCrossingCool' 528 | 'RetroHursty69 ArmyMenCool' 529 | 'RetroHursty69 BanjoCool' 530 | 'RetroHursty69 BatmanCool' 531 | 'RetroHursty69 BayonettaCool' 532 | 'RetroHursty69 BombermanCool' 533 | 'RetroHursty69 BowserCool' 534 | 'RetroHursty69 BubbleBobbleCool' 535 | 'RetroHursty69 BubsyCool' 536 | 'RetroHursty69 CastlevaniaCool' 537 | 'RetroHursty69 CaptainAmericaCool' 538 | 'RetroHursty69 ContraCool' 539 | 'RetroHursty69 CrashBandicootCool' 540 | 'RetroHursty69 CupheadCool' 541 | 'RetroHursty69 DarkstalkersCool' 542 | 'RetroHursty69 DayTentacleCool' 543 | 'RetroHursty69 DeadOrAliveCool' 544 | 'RetroHursty69 DevilMayCryCool' 545 | 'RetroHursty69 DKCountryCool' 546 | 'RetroHursty69 DonkeyKongCool' 547 | 'RetroHursty69 DoubleDragonCool' 548 | 'RetroHursty69 DragonballZCool' 549 | 'RetroHursty69 DrMarioCool' 550 | 'RetroHursty69 DuckHuntCool' 551 | 'RetroHursty69 EarthwormJimCool' 552 | 'RetroHursty69 EggmanCool' 553 | 'RetroHursty69 FalloutCool' 554 | 'RetroHursty69 FatalFuryCool' 555 | 'RetroHursty69 FinalFantasyCool' 556 | 'RetroHursty69 FroggerCool' 557 | 'RetroHursty69 FZeroCool' 558 | 'RetroHursty69 GexCool' 559 | 'RetroHursty69 GhoulsNGhostsCool' 560 | 'RetroHursty69 GodOfWarCool' 561 | 'RetroHursty69 GoldenEyeCool' 562 | 'RetroHursty69 GrimFandangoCool' 563 | 'RetroHursty69 GTACool' 564 | 'RetroHursty69 HaloCool' 565 | 'RetroHursty69 HarleyQuinnCool' 566 | 'RetroHursty69 HarryPotterCool' 567 | 'RetroHursty69 HeManCool' 568 | 'RetroHursty69 HulkCool' 569 | 'RetroHursty69 IncrediblesCool' 570 | 'RetroHursty69 IndianaJonesCool' 571 | 'RetroHursty69 InspectorGadgetCool' 572 | 'RetroHursty69 JetSetRadioCool' 573 | 'RetroHursty69 KillerInstinctCool' 574 | 'RetroHursty69 KingdomHeartsCool' 575 | 'RetroHursty69 KirbyCool' 576 | 'RetroHursty69 KOFCool' 577 | 'RetroHursty69 LegoCool' 578 | 'RetroHursty69 LittleBigPlanetCool' 579 | 'RetroHursty69 LuigiCool' 580 | 'RetroHursty69 MarioBrosCool' 581 | 'RetroHursty69 MarioCool' 582 | 'RetroHursty69 MarioKartCool' 583 | 'RetroHursty69 MarioPartyCool' 584 | 'RetroHursty69 MegaManCool' 585 | 'RetroHursty69 MetalSlugCool' 586 | 'RetroHursty69 MetroidCool' 587 | 'RetroHursty69 MGSCool' 588 | 'RetroHursty69 MonkeyBallCool' 589 | 'RetroHursty69 MortalKombatCool' 590 | 'RetroHursty69 OddworldCool' 591 | 'RetroHursty69 OutrunCool' 592 | 'RetroHursty69 PacmanCool' 593 | 'RetroHursty69 ParappaCool' 594 | 'RetroHursty69 ParodiusCool' 595 | 'RetroHursty69 PepsiManCool' 596 | 'RetroHursty69 PikminCool' 597 | 'RetroHursty69 PokemonCool' 598 | 'RetroHursty69 PowerRangersCool' 599 | 'RetroHursty69 PredatorCool' 600 | 'RetroHursty69 PrincePersiaCool' 601 | 'RetroHursty69 PunchOutCool' 602 | 'RetroHursty69 QBertCool' 603 | 'RetroHursty69 RachetClankCool' 604 | 'RetroHursty69 RaymanCool' 605 | 'RetroHursty69 RenStimpyCool' 606 | 'RetroHursty69 ResidentEvilCool' 607 | 'RetroHursty69 RobocopCool' 608 | 'RetroHursty69 SamuraiShodownCool' 609 | 'RetroHursty69 ShrekCool' 610 | 'RetroHursty69 SimpsonsCool' 611 | 'RetroHursty69 SimsCool' 612 | 'RetroHursty69 SmashBrosCool' 613 | 'RetroHursty69 SmurfsCool' 614 | 'RetroHursty69 SonicCool' 615 | 'RetroHursty69 SoulCaliburCool' 616 | 'RetroHursty69 SouthParkCool' 617 | 'RetroHursty69 SpaceChannel5Cool' 618 | 'RetroHursty69 SpaceInvadersCool' 619 | 'RetroHursty69 SpiderManCool' 620 | 'RetroHursty69 SplatoonCool' 621 | 'RetroHursty69 SplinterCellCool' 622 | 'RetroHursty69 SpyroCool' 623 | 'RetroHursty69 StarFoxCool' 624 | 'RetroHursty69 StarTrekCool' 625 | 'RetroHursty69 StreetFighterCool' 626 | 'RetroHursty69 StreetsOfRageCool' 627 | 'RetroHursty69 SubScorpionCool' 628 | 'RetroHursty69 SupermanCool' 629 | 'RetroHursty69 TekkenCool' 630 | 'RetroHursty69 TMNTCool' 631 | 'RetroHursty69 TerminatorCool' 632 | 'RetroHursty69 ToadCool' 633 | 'RetroHursty69 TonyHawkCool' 634 | 'RetroHursty69 ToyStoryCool' 635 | 'RetroHursty69 TwistedMetalCool' 636 | 'RetroHursty69 UnchartedCool' 637 | 'RetroHursty69 WaluigiCool' 638 | 'RetroHursty69 WarioCool' 639 | 'RetroHursty69 WolfensteinCool' 640 | 'RetroHursty69 WolverineCool' 641 | 'RetroHursty69 WormsCool' 642 | 'RetroHursty69 WrestlemaniaCool' 643 | 'RetroHursty69 XMenCool' 644 | 'RetroHursty69 YoshiCool' 645 | 'RetroHursty69 YuGiOhCool' 646 | 'RetroHursty69 ZeldaCool' 647 | ) 648 | while true; do 649 | local theme 650 | local installed_themes=() 651 | local repo 652 | local options=() 653 | local status=() 654 | local default 655 | 656 | local i=1 657 | for theme in "${themes[@]}"; do 658 | theme=($theme) 659 | repo="${theme[0]}" 660 | theme="${theme[1]}" 661 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 662 | status+=("i") 663 | options+=("$i" "Update or Uninstall $theme (installed)") 664 | installed_themes+=("$theme $repo") 665 | else 666 | status+=("n") 667 | options+=("$i" "Install $theme (not installed)") 668 | fi 669 | ((i++)) 670 | done 671 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 672 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 673 | default="$choice" 674 | [[ -z "$choice" ]] && break 675 | case "$choice" in 676 | *) #install or update themes 677 | theme=(${themes[choice-1]}) 678 | repo="${theme[0]}" 679 | theme="${theme[1]}" 680 | # if [[ "${status[choice]}" == "i" ]]; then 681 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 682 | options=(1 "Update $theme" 2 "Uninstall $theme") 683 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 684 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 685 | case "$choice" in 686 | 1) 687 | install_theme_hurstythemes "$theme" "$repo" 688 | ;; 689 | 2) 690 | uninstall_theme_hurstythemes "$theme" 691 | ;; 692 | esac 693 | else 694 | install_theme_hurstythemes "$theme" "$repo" 695 | fi 696 | ;; 697 | esac 698 | done 699 | } 700 | 701 | function spin_themes() { 702 | local themes=( 703 | 'RetroHursty69 AdventureTimeSpin' 704 | 'RetroHursty69 AkumaSpin' 705 | 'RetroHursty69 AladdinSpin' 706 | 'RetroHursty69 AlexKiddSpin' 707 | 'RetroHursty69 AlvinSpin' 708 | 'RetroHursty69 AmigoSpin' 709 | 'RetroHursty69 AngryBirdsSpin' 710 | 'RetroHursty69 AntManSpin' 711 | 'RetroHursty69 AquamanSpin' 712 | 'RetroHursty69 ArcadePunksSpin' 713 | 'RetroHursty69 ArthurSpin' 714 | 'RetroHursty69 AstroBoySpin' 715 | 'RetroHursty69 BatmanSpin' 716 | 'RetroHursty69 BirdoSpin' 717 | 'RetroHursty69 BisonSpin' 718 | 'RetroHursty69 BlankaSpin' 719 | 'RetroHursty69 BombermanSpin' 720 | 'RetroHursty69 BOrchidSpin' 721 | 'RetroHursty69 BowserSpin' 722 | 'RetroHursty69 BubbleBobbleSpin' 723 | 'RetroHursty69 CaptainAmericaSpin' 724 | 'RetroHursty69 CharizardSpin' 725 | 'RetroHursty69 ChunLiSpin' 726 | 'RetroHursty69 CODSpin' 727 | 'RetroHursty69 CrashBandicootSpin' 728 | 'RetroHursty69 CupHeadSpin' 729 | 'RetroHursty69 DarthSpin' 730 | 'RetroHursty69 DeadpoolSpin' 731 | 'RetroHursty69 DiddyKongSpin' 732 | 'RetroHursty69 DigDugSpin' 733 | 'RetroHursty69 DigimonSpin' 734 | 'RetroHursty69 DixieKongSpin' 735 | 'RetroHursty69 DonaldDuckSpin' 736 | 'RetroHursty69 DonkeyKongSpin' 737 | 'RetroHursty69 DoomSpin' 738 | 'RetroHursty69 DoraSpin' 739 | 'RetroHursty69 DoreamonSpin' 740 | 'RetroHursty69 DragonballZSpin' 741 | 'RetroHursty69 DrBonesSpin' 742 | 'RetroHursty69 DrEggmanSpin' 743 | 'RetroHursty69 DrMarioSpin' 744 | 'RetroHursty69 DuckHuntSpin' 745 | 'RetroHursty69 DukeNukemSpin' 746 | 'RetroHursty69 EarthwormJimSpin' 747 | 'RetroHursty69 ETSpin' 748 | 'RetroHursty69 FalloutSpin' 749 | 'RetroHursty69 FatalFurySpin' 750 | 'RetroHursty69 FinalFantasySpin' 751 | 'RetroHursty69 FortnightSpin' 752 | 'RetroHursty69 FreddySpin' 753 | 'RetroHursty69 FroggerSpin' 754 | 'RetroHursty69 FZeroSpin' 755 | 'RetroHursty69 GameWatchSpin' 756 | 'RetroHursty69 GarfieldSpin' 757 | 'RetroHursty69 GexSpin' 758 | 'RetroHursty69 GhoulsNGhostsSpin' 759 | 'RetroHursty69 GodOfWarSpin' 760 | 'RetroHursty69 GoombaSpin' 761 | 'RetroHursty69 GrimFandangoSpin' 762 | 'RetroHursty69 GTASpin' 763 | 'RetroHursty69 HalfLifeSpin' 764 | 'RetroHursty69 HaloSpin' 765 | 'RetroHursty69 HarleyQuinnSpin' 766 | 'RetroHursty69 HulkSpin' 767 | 'RetroHursty69 IncrediblesSpin' 768 | 'RetroHursty69 IncineroarSpin' 769 | 'RetroHursty69 IndianaJonesSpin' 770 | 'RetroHursty69 IronManSpin' 771 | 'RetroHursty69 JasonSpin' 772 | 'RetroHursty69 JetSetRadioSpin' 773 | 'RetroHursty69 JinSpin' 774 | 'RetroHursty69 JuggernautSpin' 775 | 'RetroHursty69 KamekSpin' 776 | 'RetroHursty69 KillerInstinctSpin' 777 | 'RetroHursty69 KindomHeartsSpin' 778 | 'RetroHursty69 KingDededeSpin' 779 | 'RetroHursty69 KingRKoolSpin' 780 | 'RetroHursty69 KingSpin' 781 | 'RetroHursty69 KirbySpin' 782 | 'RetroHursty69 KlonoaSpin' 783 | 'RetroHursty69 KOFSpin' 784 | 'RetroHursty69 LarryKoopaSpin' 785 | 'RetroHursty69 LegoSpin' 786 | 'RetroHursty69 LittleBigPlanetSpin' 787 | 'RetroHursty69 LionKingSpin' 788 | 'RetroHursty69 LucarioSpin' 789 | 'RetroHursty69 LudwigSpin' 790 | 'RetroHursty69 LuigiSpin' 791 | 'RetroHursty69 LukeSpin' 792 | 'RetroHursty69 MadHatterSpin' 793 | 'RetroHursty69 MarioSpin' 794 | 'RetroHursty69 MegamanSpin' 795 | 'RetroHursty69 Megatron80sSpin' 796 | 'RetroHursty69 MetalSlugSpin' 797 | 'RetroHursty69 MetroidSpin' 798 | 'RetroHursty69 MickeySpin' 799 | 'RetroHursty69 MileenaSpin' 800 | 'RetroHursty69 MinecraftSpin' 801 | 'RetroHursty69 MonkeyBallSpin' 802 | 'RetroHursty69 MonstersIncSpin' 803 | 'RetroHursty69 MorpheusSpin' 804 | 'RetroHursty69 MortalKombatSpin' 805 | 'RetroHursty69 MrKarateSpin' 806 | 'RetroHursty69 NabbitSpin' 807 | 'RetroHursty69 NightsSpin' 808 | 'RetroHursty69 OddworldSpin' 809 | 'RetroHursty69 OptimusSpin' 810 | 'RetroHursty69 Optimus80sSpin' 811 | 'RetroHursty69 PacmanSpin' 812 | 'RetroHursty69 ParappaSpin' 813 | 'RetroHursty69 ParodiusSpin' 814 | 'RetroHursty69 PikminSpin' 815 | 'RetroHursty69 PokemonSpin' 816 | 'RetroHursty69 PowerPuffSpin' 817 | 'RetroHursty69 PredatorSpin' 818 | 'RetroHursty69 PrincePersiaSpin' 819 | 'RetroHursty69 ProfessorLaytonSpin' 820 | 'RetroHursty69 PunchoutSpin' 821 | 'RetroHursty69 QBertSpin' 822 | 'RetroHursty69 RachetClankSpin' 823 | 'RetroHursty69 RaidenSpin' 824 | 'RetroHursty69 RaymanSpin' 825 | 'RetroHursty69 RetroArenaSpin' 826 | 'RetroHursty69 ReaperSpin' 827 | 'RetroHursty69 RoboCopSpin' 828 | 'RetroHursty69 RogueSpin' 829 | 'RetroHursty69 ScoobySpin' 830 | 'RetroHursty69 ScorpionSpin' 831 | 'RetroHursty69 SF3Spin' 832 | 'RetroHursty69 ShredderSpin' 833 | 'RetroHursty69 ShrekSpin' 834 | 'RetroHursty69 ShyGuySpin' 835 | 'RetroHursty69 SimpsonsSpin' 836 | 'RetroHursty69 SimsSpin' 837 | 'RetroHursty69 SmashBrosSpin' 838 | 'RetroHursty69 SmurfsSpin' 839 | 'RetroHursty69 SonicSpin' 840 | 'RetroHursty69 SoulCaliburSpin' 841 | 'RetroHursty69 SouthParkSpin' 842 | 'RetroHursty69 SpaceChannel5Spin' 843 | 'RetroHursty69 SpaceInvadersSpin' 844 | 'RetroHursty69 SpidermanSpin' 845 | 'RetroHursty69 SpikeSpin' 846 | 'RetroHursty69 SplattoonSpin' 847 | 'RetroHursty69 SplinterCellSpin' 848 | 'RetroHursty69 SpongeBobSpin' 849 | 'RetroHursty69 SpyroSpin' 850 | 'RetroHursty69 StarFoxSpin' 851 | 'RetroHursty69 StreetFighterSpin' 852 | 'RetroHursty69 StreetsOfRageSpin' 853 | 'RetroHursty69 SubZeroSpin' 854 | 'RetroHursty69 SupermanSpin' 855 | 'RetroHursty69 TailsSpin' 856 | 'RetroHursty69 TekkenSpin' 857 | 'RetroHursty69 TerminatorSpin' 858 | 'RetroHursty69 TJComboSpin' 859 | 'RetroHursty69 TMNTSpin' 860 | 'RetroHursty69 ToadSpin' 861 | 'RetroHursty69 ToyStorySpin' 862 | 'RetroHursty69 WallESpin' 863 | 'RetroHursty69 WaluigiSpin' 864 | 'RetroHursty69 WarioSpin' 865 | 'RetroHursty69 WendyOKoopaSpin' 866 | 'RetroHursty69 WolfSpin' 867 | 'RetroHursty69 WormsSpin' 868 | 'RetroHursty69 WreckItSpin' 869 | 'RetroHursty69 WrestlingSpin' 870 | 'RetroHursty69 XMenSpin' 871 | 'RetroHursty69 YodaSpin' 872 | 'RetroHursty69 YoshiSpin' 873 | 'RetroHursty69 ZeldaSpin' 874 | 'RetroHursty69 ZeroSuitSpin' 875 | ) 876 | while true; do 877 | local theme 878 | local installed_themes=() 879 | local repo 880 | local options=() 881 | local status=() 882 | local default 883 | 884 | local i=1 885 | for theme in "${themes[@]}"; do 886 | theme=($theme) 887 | repo="${theme[0]}" 888 | theme="${theme[1]}" 889 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 890 | status+=("i") 891 | options+=("$i" "Update or Uninstall $theme (installed)") 892 | installed_themes+=("$theme $repo") 893 | else 894 | status+=("n") 895 | options+=("$i" "Install $theme (not installed)") 896 | fi 897 | ((i++)) 898 | done 899 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 900 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 901 | default="$choice" 902 | [[ -z "$choice" ]] && break 903 | case "$choice" in 904 | *) #install or update themes 905 | theme=(${themes[choice-1]}) 906 | repo="${theme[0]}" 907 | theme="${theme[1]}" 908 | # if [[ "${status[choice]}" == "i" ]]; then 909 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 910 | options=(1 "Update $theme" 2 "Uninstall $theme") 911 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 912 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 913 | case "$choice" in 914 | 1) 915 | install_theme_hurstythemes "$theme" "$repo" 916 | ;; 917 | 2) 918 | uninstall_theme_hurstythemes "$theme" 919 | ;; 920 | esac 921 | else 922 | install_theme_hurstythemes "$theme" "$repo" 923 | fi 924 | ;; 925 | esac 926 | done 927 | } 928 | 929 | function 16x9_themes() { 930 | local themes=( 931 | 'RetroHursty69 2DAI4_Ratio_16-9' 932 | 'RetroHursty69 AIGEN' 933 | 'RetroHursty69 AIGEN_EXTRA' 934 | 'RetroHursty69 AIGEN_PLUS' 935 | 'RetroHursty69 back2basics' 936 | 'RetroHursty69 ballsy' 937 | 'RetroHursty69 batmanburton' 938 | 'RetroHursty69 bitfit' 939 | 'RetroHursty69 bluesteel' 940 | 'RetroHursty69 blueprism' 941 | 'RetroHursty69 bluesmooth' 942 | 'RetroHursty69 bluray' 943 | 'RetroHursty69 BoomBoxStreet' 944 | 'RetroHursty69 boxalloyblue' 945 | 'RetroHursty69 boxalloyred' 946 | 'RetroHursty69 boxcity' 947 | 'RetroHursty69 cabsnazzy' 948 | 'RetroHursty69 CapcomColorHorizontal' 949 | 'RetroHursty69 CapcomColorSpin' 950 | 'RetroHursty69 CapcomColorVertical' 951 | 'RetroHursty69 cardcrazy' 952 | 'RetroHursty69 Card_Decky_16x9' 953 | 'RetroHursty69 circuit' 954 | 'RetroHursty69 CircularEssence' 955 | 'RetroHursty69 ColorfulExtreme' 956 | 'RetroHursty69 ColorfulSupreme' 957 | 'RetroHursty69 ComicCover16x9' 958 | 'RetroHursty69 comiccrazy' 959 | 'RetroHursty69 corg' 960 | 'RetroHursty69 CosmicRise' 961 | 'RetroHursty69 crisp' 962 | 'RetroHursty69 crisp_light' 963 | 'RetroHursty69 CRTBlast' 964 | 'RetroHursty69 CRTCabBlast' 965 | 'RetroHursty69 CRTNeonBlast' 966 | 'RetroHursty69 cyber' 967 | 'RetroHursty69 darkswitch' 968 | 'RetroHursty69 deflection_blue' 969 | 'RetroHursty69 deflection_green' 970 | 'RetroHursty69 deflection_grey' 971 | 'RetroHursty69 deflection_purple' 972 | 'RetroHursty69 disenchantment' 973 | 'RetroHursty69 donkeykonkey' 974 | 'RetroHursty69 DracosRetroCade' 975 | 'RetroHursty69 dragonballz' 976 | 'RetroHursty69 DragonQuestFloyd' 977 | 'RetroHursty69 evilresident' 978 | 'RetroHursty69 fabuloso' 979 | 'RetroHursty69 floyd' 980 | 'RetroHursty69 floyd_arcade' 981 | 'RetroHursty69 floyd_room' 982 | 'RetroHursty69 garfieldism' 983 | 'RetroHursty69 gametime' 984 | 'RetroHursty69 ghostbusters' 985 | 'RetroHursty69 graffiti' 986 | 'RetroHursty69 greenilicious' 987 | 'RetroHursty69 halloweenspecial' 988 | 'RetroHursty69 heman' 989 | 'RetroHursty69 heychromey' 990 | 'RetroHursty69 homerism' 991 | 'RetroHursty69 hurstybluetake2' 992 | 'RetroHursty69 hurstyspin' 993 | 'RetroHursty69 incredibles' 994 | 'RetroHursty69 infinity' 995 | 'RetroHursty69 joysticks' 996 | 'RetroHursty69 license2game' 997 | 'RetroHursty69 lightswitch' 998 | 'RetroHursty69 magazinemadness' 999 | 'RetroHursty69 magazinemadness2' 1000 | 'RetroHursty69 marco' 1001 | 'RetroHursty69 mariobrosiii' 1002 | 'RetroHursty69 mario_melee' 1003 | 'RetroHursty69 merryxmas' 1004 | 'RetroHursty69 meshy' 1005 | 'RetroHursty69 minecraft' 1006 | 'RetroHursty69 minions' 1007 | 'RetroHursty69 mysticorb' 1008 | 'RetroHursty69 NegativeColor' 1009 | 'RetroHursty69 NegativeSepia' 1010 | 'RetroHursty69 NeonFantasy' 1011 | 'RetroHursty69 neogeo_only' 1012 | 'RetroHursty69 orbpilot' 1013 | 'RetroHursty69 pacman' 1014 | 'RetroHursty69 pitube' 1015 | 'RetroHursty69 PopCom16x9' 1016 | 'RetroHursty69 PopCombo16x9' 1017 | 'RetroHursty69 primo' 1018 | 'RetroHursty69 primo_light' 1019 | 'RetroHursty69 realghostbusters' 1020 | 'RetroHursty69 retroboy' 1021 | 'RetroHursty69 retroboy2' 1022 | 'RetroHursty69 retrogamenews' 1023 | 'RetroHursty69 retroroid' 1024 | 'RetroHursty69 ShabangCLEAN' 1025 | 'RetroHursty69 ShabangCRT' 1026 | 'RetroHursty69 ShadowClean' 1027 | 'RetroHursty69 Sheeny' 1028 | 'RetroHursty69 shine' 1029 | 'RetroHursty69 snapback' 1030 | 'RetroHursty69 snazzy' 1031 | 'RetroHursty69 soda' 1032 | 'RetroHursty69 spaceinvaders' 1033 | 'RetroHursty69 stirling' 1034 | 'RetroHursty69 stirlingness' 1035 | 'RetroHursty69 sublime' 1036 | 'RetroHursty69 supersweet' 1037 | 'RetroHursty69 swatch' 1038 | 'RetroHursty69 sweet_tinkerboard' 1039 | 'RetroHursty69 sweeter_tinkerboard' 1040 | 'RetroHursty69 synthy16x9' 1041 | 'RetroHursty69 supersynthy16x9' 1042 | 'RetroHursty69 tmnt' 1043 | 'RetroHursty69 tributeGoT' 1044 | 'RetroHursty69 tributeSTrek' 1045 | 'RetroHursty69 tributeSWars' 1046 | 'RetroHursty69 ToggleBobble' 1047 | 'RetroHursty69 uniflyered' 1048 | 'RetroHursty69 Vinyl-Hits' 1049 | 'RetroHursty69 whiteslide' 1050 | 'RetroHursty69 whitewood' 1051 | ) 1052 | while true; do 1053 | local theme 1054 | local installed_themes=() 1055 | local repo 1056 | local options=() 1057 | local status=() 1058 | local default 1059 | 1060 | local i=1 1061 | for theme in "${themes[@]}"; do 1062 | theme=($theme) 1063 | repo="${theme[0]}" 1064 | theme="${theme[1]}" 1065 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1066 | status+=("i") 1067 | options+=("$i" "Update or Uninstall $theme (installed)") 1068 | installed_themes+=("$theme $repo") 1069 | else 1070 | status+=("n") 1071 | options+=("$i" "Install $theme (not installed)") 1072 | fi 1073 | ((i++)) 1074 | done 1075 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 1076 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1077 | default="$choice" 1078 | [[ -z "$choice" ]] && break 1079 | case "$choice" in 1080 | *) #install or update themes 1081 | theme=(${themes[choice-1]}) 1082 | repo="${theme[0]}" 1083 | theme="${theme[1]}" 1084 | # if [[ "${status[choice]}" == "i" ]]; then 1085 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1086 | options=(1 "Update $theme" 2 "Uninstall $theme") 1087 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 1088 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1089 | case "$choice" in 1090 | 1) 1091 | install_theme_hurstythemes "$theme" "$repo" 1092 | ;; 1093 | 2) 1094 | uninstall_theme_hurstythemes "$theme" 1095 | ;; 1096 | esac 1097 | else 1098 | install_theme_hurstythemes "$theme" "$repo" 1099 | fi 1100 | ;; 1101 | esac 1102 | done 1103 | } 1104 | 1105 | function 5x4_themes() { 1106 | local themes=( 1107 | 'RetroHursty69 PopCom5x4' 1108 | 'RetroHursty69 ComicCover5x4' 1109 | 'RetroHursty69 synthyA1UP' 1110 | 'RetroHursty69 supersynthyA1UP' 1111 | 'RetroHursty69 Shabang5x4' 1112 | 'RetroHursty69 Card_Decky_5x4' 1113 | 'RetroHursty69 2DAI4_Ratio_5-4' 1114 | 'RetroHursty69 arcade1up_aspectratio54' 1115 | 'RetroHursty69 heychromey_aspectratio54' 1116 | 'RetroHursty69 hurstyuparcade_aspectratio54' 1117 | 'RetroHursty69 supersweet_aspectratio54' 1118 | 'RetroHursty69 arcade1up_spaceinv2_vertical' 1119 | 'RetroHursty69 Vertical-Limit-A1UP-1024x1280' 1120 | 'RetroHursty69 MK54' 1121 | 'RetroHursty69 BoomBoxStreet4x3' 1122 | ) 1123 | while true; do 1124 | local theme 1125 | local installed_themes=() 1126 | local repo 1127 | local options=() 1128 | local status=() 1129 | local default 1130 | 1131 | local i=1 1132 | for theme in "${themes[@]}"; do 1133 | theme=($theme) 1134 | repo="${theme[0]}" 1135 | theme="${theme[1]}" 1136 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1137 | status+=("i") 1138 | options+=("$i" "Update or Uninstall $theme (installed)") 1139 | installed_themes+=("$theme $repo") 1140 | else 1141 | status+=("n") 1142 | options+=("$i" "Install $theme (not installed)") 1143 | fi 1144 | ((i++)) 1145 | done 1146 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 1147 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1148 | default="$choice" 1149 | [[ -z "$choice" ]] && break 1150 | case "$choice" in 1151 | *) #install or update themes 1152 | theme=(${themes[choice-1]}) 1153 | repo="${theme[0]}" 1154 | theme="${theme[1]}" 1155 | # if [[ "${status[choice]}" == "i" ]]; then 1156 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1157 | options=(1 "Update $theme" 2 "Uninstall $theme") 1158 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 1159 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1160 | case "$choice" in 1161 | 1) 1162 | install_theme_hurstythemes "$theme" "$repo" 1163 | ;; 1164 | 2) 1165 | uninstall_theme_hurstythemes "$theme" 1166 | ;; 1167 | esac 1168 | else 1169 | install_theme_hurstythemes "$theme" "$repo" 1170 | fi 1171 | ;; 1172 | esac 1173 | done 1174 | } 1175 | 1176 | function toggleboxy_themes() { 1177 | local themes=( 1178 | 'RetroHursty69 TB_AddamsFamily' 1179 | 'RetroHursty69 TB_AdvanceWars' 1180 | 'RetroHursty69 TB_AeroAcrobat' 1181 | 'RetroHursty69 TB_AlexKidd' 1182 | 'RetroHursty69 TB_Aliens' 1183 | 'RetroHursty69 TB_Aquaman' 1184 | 'RetroHursty69 TB_Arcade' 1185 | 'RetroHursty69 TB_ArcTheLad' 1186 | 'RetroHursty69 TB_ArmyMen' 1187 | 'RetroHursty69 TB_Asterix' 1188 | 'RetroHursty69 TB_BanjoKazooie' 1189 | 'RetroHursty69 TB_Barbie' 1190 | 'RetroHursty69 TB_Batman' 1191 | 'RetroHursty69 TB_Battletoads' 1192 | 'RetroHursty69 TB_Bayonette' 1193 | 'RetroHursty69 TB_BeavisButthead' 1194 | 'RetroHursty69 TB_Bejewled' 1195 | 'RetroHursty69 TB_Billiards' 1196 | 'RetroHursty69 TB_Bomberman' 1197 | 'RetroHursty69 TB_Boogerman' 1198 | 'RetroHursty69 TB_Bowser' 1199 | 'RetroHursty69 TB_BTTF' 1200 | 'RetroHursty69 TB_BubbleBobble' 1201 | 'RetroHursty69 TB_Bubsy' 1202 | 'RetroHursty69 TB_BuckRogers' 1203 | 'RetroHursty69 TB_BueautyBeast' 1204 | 'RetroHursty69 TB_BugsBunny' 1205 | 'RetroHursty69 TB_CanonFodder' 1206 | 'RetroHursty69 TB_Castlevania' 1207 | 'RetroHursty69 TB_ChesterCheetah' 1208 | 'RetroHursty69 TB_Conker' 1209 | 'RetroHursty69 TB_CoolSpot' 1210 | 'RetroHursty69 TB_CrashBandicoot' 1211 | 'RetroHursty69 TB_CrazyTaxi' 1212 | 'RetroHursty69 TB_DaffyDuck' 1213 | 'RetroHursty69 TB_Darkstalkers' 1214 | 'RetroHursty69 TB_Digimon' 1215 | 'RetroHursty69 TB_DKCountry' 1216 | 'RetroHursty69 TB_DKJunior' 1217 | 'RetroHursty69 TB_DonkeyKong' 1218 | 'RetroHursty69 TB_Dragonball' 1219 | 'RetroHursty69 TB_DragonQuest' 1220 | 'RetroHursty69 TB_DragonsLair' 1221 | 'RetroHursty69 TB_DrMario' 1222 | 'RetroHursty69 TB_DuckHunt' 1223 | 'RetroHursty69 TB_DukeNukem' 1224 | 'RetroHursty69 TB_DungeonsDragons' 1225 | 'RetroHursty69 TB_EarthwormJim' 1226 | 'RetroHursty69 TB_Easter' 1227 | 'RetroHursty69 TB_Ecco' 1228 | 'RetroHursty69 TB_FantasticFour' 1229 | 'RetroHursty69 TB_FatalFury' 1230 | 'RetroHursty69 TB_FIFA' 1231 | 'RetroHursty69 TB_FinalFantasy' 1232 | 'RetroHursty69 TB_FireEmblem' 1233 | 'RetroHursty69 TB_Flintstones' 1234 | 'RetroHursty69 TB_Frogger' 1235 | 'RetroHursty69 TB_FZero' 1236 | 'RetroHursty69 TB_Galaga' 1237 | 'RetroHursty69 TB_GameAndWatch' 1238 | 'RetroHursty69 TB_Gauntlet' 1239 | 'RetroHursty69 TB_Gex' 1240 | 'RetroHursty69 TB_Ghostbusters' 1241 | 'RetroHursty69 TB_GhoulsGhosts' 1242 | 'RetroHursty69 TB_Godzilla' 1243 | 'RetroHursty69 TB_GoldenSun' 1244 | 'RetroHursty69 TB_Goofy' 1245 | 'RetroHursty69 TB_GrimFandango' 1246 | 'RetroHursty69 TB_GTA' 1247 | 'RetroHursty69 TB_GuiltyGear' 1248 | 'RetroHursty69 TB_Gundam' 1249 | 'RetroHursty69 TB_HalfLife' 1250 | 'RetroHursty69 TB_Halloween' 1251 | 'RetroHursty69 TB_Halo' 1252 | 'RetroHursty69 TB_HanSolo' 1253 | 'RetroHursty69 TB_HarvestMoon' 1254 | 'RetroHursty69 TB_HelloKitty' 1255 | 'RetroHursty69 TB_Hockey' 1256 | 'RetroHursty69 TB_HomeAlone' 1257 | 'RetroHursty69 TB_Hook' 1258 | 'RetroHursty69 TB_HotShotsGolf' 1259 | 'RetroHursty69 TB_Hulk' 1260 | 'RetroHursty69 TB_HulkHogan' 1261 | 'RetroHursty69 TB_IndianaJones' 1262 | 'RetroHursty69 TB_IronMan' 1263 | 'RetroHursty69 TB_JamesBond' 1264 | 'RetroHursty69 TB_JamesPond' 1265 | 'RetroHursty69 TB_JetSetRadio' 1266 | 'RetroHursty69 TB_JohnMadden' 1267 | 'RetroHursty69 TB_JurassicPark' 1268 | 'RetroHursty69 TB_KillerInstinct' 1269 | 'RetroHursty69 TB_KingdomHearts' 1270 | 'RetroHursty69 TB_KingOfFighters' 1271 | 'RetroHursty69 TB_Kirby' 1272 | 'RetroHursty69 TB_Krusty' 1273 | 'RetroHursty69 TB_Lego' 1274 | 'RetroHursty69 TB_Lemmings' 1275 | 'RetroHursty69 TB_LionKing' 1276 | 'RetroHursty69 TB_LittleBigPlanet' 1277 | 'RetroHursty69 TB_Luigi' 1278 | 'RetroHursty69 TB_LuigisMansion' 1279 | 'RetroHursty69 TB_Mario1' 1280 | 'RetroHursty69 TB_Mario2' 1281 | 'RetroHursty69 TB_MarioGolf' 1282 | 'RetroHursty69 TB_MarioKart' 1283 | 'RetroHursty69 TB_MarioParty' 1284 | 'RetroHursty69 TB_MarioStrikers' 1285 | 'RetroHursty69 TB_MarioTennis' 1286 | 'RetroHursty69 TB_Medievil' 1287 | 'RetroHursty69 TB_Megaman' 1288 | 'RetroHursty69 TB_MetalGear' 1289 | 'RetroHursty69 TB_MetalSlug' 1290 | 'RetroHursty69 TB_Metroid' 1291 | 'RetroHursty69 TB_MickeyMouse' 1292 | 'RetroHursty69 TB_MicroMachines' 1293 | 'RetroHursty69 TB_Minecraft' 1294 | 'RetroHursty69 TB_MonkeyBall' 1295 | 'RetroHursty69 TB_MortalKombat' 1296 | 'RetroHursty69 TB_MrDriller' 1297 | 'RetroHursty69 TB_MsPacman' 1298 | 'RetroHursty69 TB_Muppets' 1299 | 'RetroHursty69 TB_NASCAR' 1300 | 'RetroHursty69 TB_NFL' 1301 | 'RetroHursty69 TB_Nintendogs' 1302 | 'RetroHursty69 TB_Octopath' 1303 | 'RetroHursty69 TB_Oddworld' 1304 | 'RetroHursty69 TB_Pacman' 1305 | 'RetroHursty69 TB_Persona' 1306 | 'RetroHursty69 TB_Pikmin' 1307 | 'RetroHursty69 TB_Pinball' 1308 | 'RetroHursty69 TB_Pitfall' 1309 | 'RetroHursty69 TB_PlantsVsZombies' 1310 | 'RetroHursty69 TB_PointBlank' 1311 | 'RetroHursty69 TB_Pokemon' 1312 | 'RetroHursty69 TB_Predator' 1313 | 'RetroHursty69 TB_PrinceOfPersia' 1314 | 'RetroHursty69 TB_PrincessPeach' 1315 | 'RetroHursty69 TB_ProfessorLayton' 1316 | 'RetroHursty69 TB_Punchout' 1317 | 'RetroHursty69 TB_PuyoPuyo' 1318 | 'RetroHursty69 TB_Puzzle' 1319 | 'RetroHursty69 TB_PwerRangers' 1320 | 'RetroHursty69 TB_QBert' 1321 | 'RetroHursty69 TB_Quake' 1322 | 'RetroHursty69 TB_Rambo' 1323 | 'RetroHursty69 TB_Ratchet' 1324 | 'RetroHursty69 TB_Rayman' 1325 | 'RetroHursty69 TB_RealGhostbusters' 1326 | 'RetroHursty69 TB_ResidentEvil' 1327 | 'RetroHursty69 TB_RoadRash' 1328 | 'RetroHursty69 TB_Robocop' 1329 | 'RetroHursty69 TB_SamuraiShodown' 1330 | 'RetroHursty69 TB_Scooby' 1331 | 'RetroHursty69 TB_Scribblenauts' 1332 | 'RetroHursty69 TB_SecretOfMana' 1333 | 'RetroHursty69 TB_Shenmue' 1334 | 'RetroHursty69 TB_ShovelKnight' 1335 | 'RetroHursty69 TB_Simpsons' 1336 | 'RetroHursty69 TB_Sims' 1337 | 'RetroHursty69 TB_SmashBros' 1338 | 'RetroHursty69 TB_Smurfs' 1339 | 'RetroHursty69 TB_SonicModern' 1340 | 'RetroHursty69 TB_SonicRetro' 1341 | 'RetroHursty69 TB_SoulCalibur' 1342 | 'RetroHursty69 TB_SouthPark' 1343 | 'RetroHursty69 TB_SpaceChannel5' 1344 | 'RetroHursty69 TB_SpaceInvaders' 1345 | 'RetroHursty69 TB_SpiderMan' 1346 | 'RetroHursty69 TB_Splatoon' 1347 | 'RetroHursty69 TB_SplinterCell' 1348 | 'RetroHursty69 TB_SpongeBob' 1349 | 'RetroHursty69 TB_Spyro' 1350 | 'RetroHursty69 TB_Starfox' 1351 | 'RetroHursty69 TB_StarTrek' 1352 | 'RetroHursty69 TB_StarWars' 1353 | 'RetroHursty69 TB_StreetFighter' 1354 | 'RetroHursty69 TB_StreetsOfRage' 1355 | 'RetroHursty69 TB_Superman' 1356 | 'RetroHursty69 TB_Tekken' 1357 | 'RetroHursty69 TB_Tennis' 1358 | 'RetroHursty69 TB_Tetris' 1359 | 'RetroHursty69 TB_TigerWoods' 1360 | 'RetroHursty69 TB_TMNT' 1361 | 'RetroHursty69 TB_Toad' 1362 | 'RetroHursty69 TB_ToeJam' 1363 | 'RetroHursty69 TB_TombRaider' 1364 | 'RetroHursty69 TB_ToyStory' 1365 | 'RetroHursty69 TB_Tron' 1366 | 'RetroHursty69 TB_TwistedMetal' 1367 | 'RetroHursty69 TB_VirtuaFighter' 1368 | 'RetroHursty69 TB_Wario' 1369 | 'RetroHursty69 TB_Wonderful101' 1370 | 'RetroHursty69 TB_Worms' 1371 | 'RetroHursty69 TB_Wrestlemania' 1372 | 'RetroHursty69 TB_Xenoblade' 1373 | 'RetroHursty69 TB_Xmas' 1374 | 'RetroHursty69 TB_XMen' 1375 | 'RetroHursty69 TB_Yoda' 1376 | 'RetroHursty69 TB_Zelda' 1377 | 'RetroHursty69 TB_Zool' 1378 | ) 1379 | while true; do 1380 | local theme 1381 | local installed_themes=() 1382 | local repo 1383 | local options=() 1384 | local status=() 1385 | local default 1386 | 1387 | local i=1 1388 | for theme in "${themes[@]}"; do 1389 | theme=($theme) 1390 | repo="${theme[0]}" 1391 | theme="${theme[1]}" 1392 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1393 | status+=("i") 1394 | options+=("$i" "Update or Uninstall $theme (installed)") 1395 | installed_themes+=("$theme $repo") 1396 | else 1397 | status+=("n") 1398 | options+=("$i" "Install $theme (not installed)") 1399 | fi 1400 | ((i++)) 1401 | done 1402 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 1403 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1404 | default="$choice" 1405 | [[ -z "$choice" ]] && break 1406 | case "$choice" in 1407 | *) #install or update themes 1408 | theme=(${themes[choice-1]}) 1409 | repo="${theme[0]}" 1410 | theme="${theme[1]}" 1411 | # if [[ "${status[choice]}" == "i" ]]; then 1412 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1413 | options=(1 "Update $theme" 2 "Uninstall $theme") 1414 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 1415 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1416 | case "$choice" in 1417 | 1) 1418 | install_theme_hurstythemes "$theme" "$repo" 1419 | ;; 1420 | 2) 1421 | uninstall_theme_hurstythemes "$theme" 1422 | ;; 1423 | esac 1424 | else 1425 | install_theme_hurstythemes "$theme" "$repo" 1426 | fi 1427 | ;; 1428 | esac 1429 | done 1430 | } 1431 | 1432 | function vertical_themes() { 1433 | local themes=( 1434 | 'RetroHursty69 vertical_arcade' 1435 | 'RetroHursty69 vertical_limit_verticaltheme' 1436 | ) 1437 | while true; do 1438 | local theme 1439 | local installed_themes=() 1440 | local repo 1441 | local options=() 1442 | local status=() 1443 | local default 1444 | 1445 | local i=1 1446 | for theme in "${themes[@]}"; do 1447 | theme=($theme) 1448 | repo="${theme[0]}" 1449 | theme="${theme[1]}" 1450 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1451 | status+=("i") 1452 | options+=("$i" "Update or Uninstall $theme (installed)") 1453 | installed_themes+=("$theme $repo") 1454 | else 1455 | status+=("n") 1456 | options+=("$i" "Install $theme (not installed)") 1457 | fi 1458 | ((i++)) 1459 | done 1460 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 1461 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1462 | default="$choice" 1463 | [[ -z "$choice" ]] && break 1464 | case "$choice" in 1465 | *) #install or update themes 1466 | theme=(${themes[choice-1]}) 1467 | repo="${theme[0]}" 1468 | theme="${theme[1]}" 1469 | # if [[ "${status[choice]}" == "i" ]]; then 1470 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1471 | options=(1 "Update $theme" 2 "Uninstall $theme") 1472 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 1473 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1474 | case "$choice" in 1475 | 1) 1476 | install_theme_hurstythemes "$theme" "$repo" 1477 | ;; 1478 | 2) 1479 | uninstall_theme_hurstythemes "$theme" 1480 | ;; 1481 | esac 1482 | else 1483 | install_theme_hurstythemes "$theme" "$repo" 1484 | fi 1485 | ;; 1486 | esac 1487 | done 1488 | } 1489 | 1490 | function chromeyblue_themes() { 1491 | local themes=( 1492 | 'RetroHursty69 1943Blue' 1493 | 'RetroHursty69 AladdinBlue' 1494 | 'RetroHursty69 AlexKiddBlue' 1495 | 'RetroHursty69 AngryBirdsBlue' 1496 | 'RetroHursty69 AntManBlue' 1497 | 'RetroHursty69 AquamanBlue' 1498 | 'RetroHursty69 AsteroidsBlue' 1499 | 'RetroHursty69 AstroBoyBlue' 1500 | 'RetroHursty69 BatmanBlue' 1501 | 'RetroHursty69 BombermanBlue' 1502 | 'RetroHursty69 BubbleBobbleBlue' 1503 | 'RetroHursty69 BumbleBeeBlue' 1504 | 'RetroHursty69 CaptainAmericaBlue' 1505 | 'RetroHursty69 DarkstalkersBlue' 1506 | 'RetroHursty69 DayTentacleBlue' 1507 | 'RetroHursty69 DaytonaUsaBlue' 1508 | 'RetroHursty69 DeadpoolBlue' 1509 | 'RetroHursty69 DigimonBlue' 1510 | 'RetroHursty69 DonkeyKongBlue' 1511 | 'RetroHursty69 DonkeyKongCountryBlue' 1512 | 'RetroHursty69 DrMarioBlue' 1513 | 'RetroHursty69 DragonBallZBlue' 1514 | 'RetroHursty69 DragonsLairBlue' 1515 | 'RetroHursty69 DukeNukemBlue' 1516 | 'RetroHursty69 ETBlue' 1517 | 'RetroHursty69 EarthwormJimBlue' 1518 | 'RetroHursty69 ElevatorActionBlue' 1519 | 'RetroHursty69 FZeroBlue' 1520 | 'RetroHursty69 FalloutBlue' 1521 | 'RetroHursty69 FatalFuryBlue' 1522 | 'RetroHursty69 FinalFantasyBlue' 1523 | 'RetroHursty69 FinalFightBlue' 1524 | 'RetroHursty69 FortniteBlue' 1525 | 'RetroHursty69 FroggerBlue' 1526 | 'RetroHursty69 FullThrottleBlue' 1527 | 'RetroHursty69 GTABlue' 1528 | 'RetroHursty69 GalagaBlue' 1529 | 'RetroHursty69 GalaxianBlue' 1530 | 'RetroHursty69 GameAndWatchBlue' 1531 | 'RetroHursty69 GarfieldBlue' 1532 | 'RetroHursty69 GauntletBlue' 1533 | 'RetroHursty69 GexBlue' 1534 | 'RetroHursty69 GhoulsNGhostsBlue' 1535 | 'RetroHursty69 GodOfWarBlue' 1536 | 'RetroHursty69 GrimFandangoBlue' 1537 | 'RetroHursty69 HalfLifeBlue' 1538 | 'RetroHursty69 HaloBlue' 1539 | 'RetroHursty69 HarleyQuinnBlue' 1540 | 'RetroHursty69 HulkBlue' 1541 | 'RetroHursty69 IncrediblesBlue' 1542 | 'RetroHursty69 IndianaJonesBlue' 1543 | 'RetroHursty69 IronManBlue' 1544 | 'RetroHursty69 JetSetRadioBlue' 1545 | 'RetroHursty69 KOFBlue' 1546 | 'RetroHursty69 KillerInstinctBlue' 1547 | 'RetroHursty69 KingKRoolBlue' 1548 | 'RetroHursty69 KingdomHeartsBlue' 1549 | 'RetroHursty69 KirbyBlue' 1550 | 'RetroHursty69 LegoBlue' 1551 | 'RetroHursty69 LittleBigPlanetBlue' 1552 | 'RetroHursty69 LuigiBlue' 1553 | 'RetroHursty69 ManiacMansionBlue' 1554 | 'RetroHursty69 MarioBlue' 1555 | 'RetroHursty69 MatrixBlue' 1556 | 'RetroHursty69 MegaManBlue' 1557 | 'RetroHursty69 MetalSlugBlue' 1558 | 'RetroHursty69 MetroidBlue' 1559 | 'RetroHursty69 MickeyMouseBlue' 1560 | 'RetroHursty69 MinecraftBlue' 1561 | 'RetroHursty69 MonkeyBallBlue' 1562 | 'RetroHursty69 MortalKombatBlue' 1563 | 'RetroHursty69 OddworldBlue' 1564 | 'RetroHursty69 OptimusPrimeBlue' 1565 | 'RetroHursty69 OutRunBlue' 1566 | 'RetroHursty69 PacmanBlue' 1567 | 'RetroHursty69 ParappaBlue' 1568 | 'RetroHursty69 PitfallBlue' 1569 | 'RetroHursty69 PikminBlue' 1570 | 'RetroHursty69 PokemonBlue' 1571 | 'RetroHursty69 PowerPuffBlue' 1572 | 'RetroHursty69 PredatorBlue' 1573 | 'RetroHursty69 PrincePersiaBlue' 1574 | 'RetroHursty69 ProfessorLaytonBlue' 1575 | 'RetroHursty69 PunchOutBlue' 1576 | 'RetroHursty69 QBertBlue' 1577 | 'RetroHursty69 RactchetClankBlue' 1578 | 'RetroHursty69 RaymanBlue' 1579 | 'RetroHursty69 ResidentEvilBlue' 1580 | 'RetroHursty69 RidgeRacerBlue' 1581 | 'RetroHursty69 RoboCopBlue' 1582 | 'RetroHursty69 SF2Blue' 1583 | 'RetroHursty69 SF3rdStrikeBlue' 1584 | 'RetroHursty69 ScoobyDooBlue' 1585 | 'RetroHursty69 ShenmueBlue' 1586 | 'RetroHursty69 ShrekBlue' 1587 | 'RetroHursty69 SimCityBlue' 1588 | 'RetroHursty69 SimpsonsBlue' 1589 | 'RetroHursty69 SimsBlue' 1590 | 'RetroHursty69 SmashBrosBlue' 1591 | 'RetroHursty69 SmurfsBlue' 1592 | 'RetroHursty69 SonicBlue' 1593 | 'RetroHursty69 SoulCaliburBlue' 1594 | 'RetroHursty69 SouthParkBlue' 1595 | 'RetroHursty69 SpaceAceBlue' 1596 | 'RetroHursty69 SpaceChannel5Blue' 1597 | 'RetroHursty69 SpaceInvadersBlue' 1598 | 'RetroHursty69 SpidermanBlue' 1599 | 'RetroHursty69 SplatoonBlue' 1600 | 'RetroHursty69 SplinterCellBlue' 1601 | 'RetroHursty69 SpongeBobBlue' 1602 | 'RetroHursty69 SpyroBlue' 1603 | 'RetroHursty69 StarFoxBlue' 1604 | 'RetroHursty69 StarWarsBlue' 1605 | 'RetroHursty69 StreetFighterBlue' 1606 | 'RetroHursty69 StreetsOfRageBlue' 1607 | 'RetroHursty69 SupermanBlue' 1608 | 'RetroHursty69 TMNTBlue' 1609 | 'RetroHursty69 TekkenBlue' 1610 | 'RetroHursty69 TerminatorBlue' 1611 | 'RetroHursty69 TetrisBlue' 1612 | 'RetroHursty69 ToadBlue' 1613 | 'RetroHursty69 TombRaiderBlue' 1614 | 'RetroHursty69 ToyStoryBlue' 1615 | 'RetroHursty69 TronBlue' 1616 | 'RetroHursty69 TwistedMetalBlue' 1617 | 'RetroHursty69 VirtuaFighterBlue' 1618 | 'RetroHursty69 WWEBlue' 1619 | 'RetroHursty69 WaluigiBlue' 1620 | 'RetroHursty69 WarioBlue' 1621 | 'RetroHursty69 WormsBlue' 1622 | 'RetroHursty69 XMenBlue' 1623 | 'RetroHursty69 YoshiBlue' 1624 | 'RetroHursty69 ZeldaBlue' 1625 | ) 1626 | while true; do 1627 | local theme 1628 | local installed_themes=() 1629 | local repo 1630 | local options=() 1631 | local status=() 1632 | local default 1633 | 1634 | local i=1 1635 | for theme in "${themes[@]}"; do 1636 | theme=($theme) 1637 | repo="${theme[0]}" 1638 | theme="${theme[1]}" 1639 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1640 | status+=("i") 1641 | options+=("$i" "Update or Uninstall $theme (installed)") 1642 | installed_themes+=("$theme $repo") 1643 | else 1644 | status+=("n") 1645 | options+=("$i" "Install $theme (not installed)") 1646 | fi 1647 | ((i++)) 1648 | done 1649 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 1650 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1651 | default="$choice" 1652 | [[ -z "$choice" ]] && break 1653 | case "$choice" in 1654 | *) #install or update themes 1655 | theme=(${themes[choice-1]}) 1656 | repo="${theme[0]}" 1657 | theme="${theme[1]}" 1658 | # if [[ "${status[choice]}" == "i" ]]; then 1659 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1660 | options=(1 "Update $theme" 2 "Uninstall $theme") 1661 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 1662 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1663 | case "$choice" in 1664 | 1) 1665 | install_theme_hurstythemes "$theme" "$repo" 1666 | ;; 1667 | 2) 1668 | uninstall_theme_hurstythemes "$theme" 1669 | ;; 1670 | esac 1671 | else 1672 | install_theme_hurstythemes "$theme" "$repo" 1673 | fi 1674 | ;; 1675 | esac 1676 | done 1677 | } 1678 | 1679 | function chromeygreen_themes() { 1680 | local themes=( 1681 | 'RetroHursty69 1943Green' 1682 | 'RetroHursty69 AladdinGreen' 1683 | 'RetroHursty69 AlexKiddGreen' 1684 | 'RetroHursty69 AngryBirdsGreen' 1685 | 'RetroHursty69 AntManGreen' 1686 | 'RetroHursty69 AquamanGreen' 1687 | 'RetroHursty69 AsteroidsGreen' 1688 | 'RetroHursty69 AstroBoyGreen' 1689 | 'RetroHursty69 BatmanGreen' 1690 | 'RetroHursty69 BombermanGreen' 1691 | 'RetroHursty69 BubbleBobbleGreen' 1692 | 'RetroHursty69 BumbleBeeGreen' 1693 | 'RetroHursty69 CaptainAmericaGreen' 1694 | 'RetroHursty69 DarkstalkersGreen' 1695 | 'RetroHursty69 DayTentacleGreen' 1696 | 'RetroHursty69 DaytonaUsaGreen' 1697 | 'RetroHursty69 DeadpoolGreen' 1698 | 'RetroHursty69 DigimonGreen' 1699 | 'RetroHursty69 DonkeyKongCountryGreen' 1700 | 'RetroHursty69 DonkeyKongGreen' 1701 | 'RetroHursty69 DrMarioGreen' 1702 | 'RetroHursty69 DragonBallZGreen' 1703 | 'RetroHursty69 DragonsLairGreen' 1704 | 'RetroHursty69 DukeNukemGreen' 1705 | 'RetroHursty69 ETGreen' 1706 | 'RetroHursty69 EarthwormJimGreen' 1707 | 'RetroHursty69 ElevatorActionGreen' 1708 | 'RetroHursty69 FZeroGreen' 1709 | 'RetroHursty69 FalloutGreen' 1710 | 'RetroHursty69 FatalFuryGreen' 1711 | 'RetroHursty69 FinalFantasyGreen' 1712 | 'RetroHursty69 FinalFightGreen' 1713 | 'RetroHursty69 FortniteGreen' 1714 | 'RetroHursty69 FroggerGreen' 1715 | 'RetroHursty69 FullThrottleGreen' 1716 | 'RetroHursty69 GTAGreen' 1717 | 'RetroHursty69 GalagaGreen' 1718 | 'RetroHursty69 GalaxianGreen' 1719 | 'RetroHursty69 GameAndWatchGreen' 1720 | 'RetroHursty69 GarfieldGreen' 1721 | 'RetroHursty69 GauntletGreen' 1722 | 'RetroHursty69 GexGreen' 1723 | 'RetroHursty69 GhoulsNGhostsGreen' 1724 | 'RetroHursty69 GodOfWarGreen' 1725 | 'RetroHursty69 GrimFandangoGreen' 1726 | 'RetroHursty69 HalfLifeGreen' 1727 | 'RetroHursty69 HaloGreen' 1728 | 'RetroHursty69 HarleyQuinnGreen' 1729 | 'RetroHursty69 HulkGreen' 1730 | 'RetroHursty69 IncrediblesGreen' 1731 | 'RetroHursty69 IndianaJonesGreen' 1732 | 'RetroHursty69 IronManGreen' 1733 | 'RetroHursty69 JetSetRadioGreen' 1734 | 'RetroHursty69 KOFGreen' 1735 | 'RetroHursty69 KillerInstinctGreen' 1736 | 'RetroHursty69 KingKRoolGreen' 1737 | 'RetroHursty69 KingdomHeartsGreen' 1738 | 'RetroHursty69 KirbyGreen' 1739 | 'RetroHursty69 LegoGreen' 1740 | 'RetroHursty69 LittleBigPlanetGreen' 1741 | 'RetroHursty69 LuigiGreen' 1742 | 'RetroHursty69 ManiacMansionGreen' 1743 | 'RetroHursty69 MarioGreen' 1744 | 'RetroHursty69 MatrixGreen' 1745 | 'RetroHursty69 MegaManGreen' 1746 | 'RetroHursty69 MetalSlugGreen' 1747 | 'RetroHursty69 MetroidGreen' 1748 | 'RetroHursty69 MickeyMouseGreen' 1749 | 'RetroHursty69 MinecraftGreen' 1750 | 'RetroHursty69 MonkeyBallGreen' 1751 | 'RetroHursty69 MortalKombatGreen' 1752 | 'RetroHursty69 OddworldGreen' 1753 | 'RetroHursty69 OptimusPrimeGreen' 1754 | 'RetroHursty69 OutRunGreen' 1755 | 'RetroHursty69 PacmanGreen' 1756 | 'RetroHursty69 ParappaGreen' 1757 | 'RetroHursty69 PitfallGreen' 1758 | 'RetroHursty69 PikminGreen' 1759 | 'RetroHursty69 PokemonGreen' 1760 | 'RetroHursty69 PowerPuffGreen' 1761 | 'RetroHursty69 PredatorGreen' 1762 | 'RetroHursty69 PrincePersiaGreen' 1763 | 'RetroHursty69 ProfessorLaytonGreen' 1764 | 'RetroHursty69 PunchOutGreen' 1765 | 'RetroHursty69 QBertGreen' 1766 | 'RetroHursty69 RactchetClankGreen' 1767 | 'RetroHursty69 RaymanGreen' 1768 | 'RetroHursty69 ResidentEvilGreen' 1769 | 'RetroHursty69 RidgeRacerGreen' 1770 | 'RetroHursty69 RoboCopGreen' 1771 | 'RetroHursty69 SF2Green' 1772 | 'RetroHursty69 SF3rdStrikeGreen' 1773 | 'RetroHursty69 ScoobyDooGreen' 1774 | 'RetroHursty69 ShenmueGreen' 1775 | 'RetroHursty69 ShrekGreen' 1776 | 'RetroHursty69 SimCityGreen' 1777 | 'RetroHursty69 SimpsonsGreen' 1778 | 'RetroHursty69 SimsGreen' 1779 | 'RetroHursty69 SmashBrosGreen' 1780 | 'RetroHursty69 SmurfsGreen' 1781 | 'RetroHursty69 SonicGreen' 1782 | 'RetroHursty69 SoulCaliburGreen' 1783 | 'RetroHursty69 SouthParkGreen' 1784 | 'RetroHursty69 SpaceAceGreen' 1785 | 'RetroHursty69 SpaceChannel5Green' 1786 | 'RetroHursty69 SpaceInvadersGreen' 1787 | 'RetroHursty69 SpidermanGreen' 1788 | 'RetroHursty69 SplatoonGreen' 1789 | 'RetroHursty69 SplinterCellGreen' 1790 | 'RetroHursty69 SpongeBobGreen' 1791 | 'RetroHursty69 SpyroGreen' 1792 | 'RetroHursty69 StarFoxGreen' 1793 | 'RetroHursty69 StarWarsGreen' 1794 | 'RetroHursty69 StreetFighterGreen' 1795 | 'RetroHursty69 StreetsOfRageGreen' 1796 | 'RetroHursty69 SupermanGreen' 1797 | 'RetroHursty69 TMNTGreen' 1798 | 'RetroHursty69 TekkenGreen' 1799 | 'RetroHursty69 TerminatorGreen' 1800 | 'RetroHursty69 TetrisGreen' 1801 | 'RetroHursty69 ToadGreen' 1802 | 'RetroHursty69 TombRaiderGreen' 1803 | 'RetroHursty69 ToyStoryGreen' 1804 | 'RetroHursty69 TronGreen' 1805 | 'RetroHursty69 TwistedMetalGreen' 1806 | 'RetroHursty69 VirtuaFighterGreen' 1807 | 'RetroHursty69 WWEGreen' 1808 | 'RetroHursty69 WaluigiGreen' 1809 | 'RetroHursty69 WarioGreen' 1810 | 'RetroHursty69 WormsGreen' 1811 | 'RetroHursty69 XMenGreen' 1812 | 'RetroHursty69 YoshiGreen' 1813 | 'RetroHursty69 ZeldaGreen' 1814 | ) 1815 | while true; do 1816 | local theme 1817 | local installed_themes=() 1818 | local repo 1819 | local options=() 1820 | local status=() 1821 | local default 1822 | 1823 | local i=1 1824 | for theme in "${themes[@]}"; do 1825 | theme=($theme) 1826 | repo="${theme[0]}" 1827 | theme="${theme[1]}" 1828 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1829 | status+=("i") 1830 | options+=("$i" "Update or Uninstall $theme (installed)") 1831 | installed_themes+=("$theme $repo") 1832 | else 1833 | status+=("n") 1834 | options+=("$i" "Install $theme (not installed)") 1835 | fi 1836 | ((i++)) 1837 | done 1838 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 1839 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1840 | default="$choice" 1841 | [[ -z "$choice" ]] && break 1842 | case "$choice" in 1843 | *) #install or update themes 1844 | theme=(${themes[choice-1]}) 1845 | repo="${theme[0]}" 1846 | theme="${theme[1]}" 1847 | # if [[ "${status[choice]}" == "i" ]]; then 1848 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 1849 | options=(1 "Update $theme" 2 "Uninstall $theme") 1850 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 1851 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 1852 | case "$choice" in 1853 | 1) 1854 | install_theme_hurstythemes "$theme" "$repo" 1855 | ;; 1856 | 2) 1857 | uninstall_theme_hurstythemes "$theme" 1858 | ;; 1859 | esac 1860 | else 1861 | install_theme_hurstythemes "$theme" "$repo" 1862 | fi 1863 | ;; 1864 | esac 1865 | done 1866 | } 1867 | 1868 | function chromeyneon_themes() { 1869 | local themes=( 1870 | 'RetroHursty69 1943Neon' 1871 | 'RetroHursty69 AladdinNeon' 1872 | 'RetroHursty69 AlexKiddNeon' 1873 | 'RetroHursty69 AngryBirdsNeon' 1874 | 'RetroHursty69 AntManNeon' 1875 | 'RetroHursty69 AquamanNeon' 1876 | 'RetroHursty69 AsteroidsNeon' 1877 | 'RetroHursty69 AstroBoyNeon' 1878 | 'RetroHursty69 BatmanNeon' 1879 | 'RetroHursty69 BombermanNeon' 1880 | 'RetroHursty69 BubbleBobbleNeon' 1881 | 'RetroHursty69 BumbleBeeNeon' 1882 | 'RetroHursty69 CaptainAmericaNeon' 1883 | 'RetroHursty69 DarkstalkersNeon' 1884 | 'RetroHursty69 DayTentacleNeon' 1885 | 'RetroHursty69 DaytonaUsaNeon' 1886 | 'RetroHursty69 DeadpoolNeon' 1887 | 'RetroHursty69 DigimonNeon' 1888 | 'RetroHursty69 DonkeyKongCountryNeon' 1889 | 'RetroHursty69 DonkeyKongNeon' 1890 | 'RetroHursty69 DrMarioNeon' 1891 | 'RetroHursty69 DragonBallZNeon' 1892 | 'RetroHursty69 DragonsLairNeon' 1893 | 'RetroHursty69 DukeNukemNeon' 1894 | 'RetroHursty69 ETNeon' 1895 | 'RetroHursty69 EarthwormJimNeon' 1896 | 'RetroHursty69 ElevatorActionNeon' 1897 | 'RetroHursty69 FZeroNeon' 1898 | 'RetroHursty69 FalloutNeon' 1899 | 'RetroHursty69 FatalFuryNeon' 1900 | 'RetroHursty69 FinalFantasyNeon' 1901 | 'RetroHursty69 FinalFightNeon' 1902 | 'RetroHursty69 FortniteNeon' 1903 | 'RetroHursty69 FroggerNeon' 1904 | 'RetroHursty69 FullThrottleNeon' 1905 | 'RetroHursty69 GTANeon' 1906 | 'RetroHursty69 GalagaNeon' 1907 | 'RetroHursty69 GalaxianNeon' 1908 | 'RetroHursty69 GameAndWatchNeon' 1909 | 'RetroHursty69 GarfieldNeon' 1910 | 'RetroHursty69 GauntletNeon' 1911 | 'RetroHursty69 GexNeon' 1912 | 'RetroHursty69 GhoulsNGhostsNeon' 1913 | 'RetroHursty69 GodOfWarNeon' 1914 | 'RetroHursty69 GrimFandangoNeon' 1915 | 'RetroHursty69 HalfLifeNeon' 1916 | 'RetroHursty69 HaloNeon' 1917 | 'RetroHursty69 HarleyQuinnNeon' 1918 | 'RetroHursty69 HulkNeon' 1919 | 'RetroHursty69 IncrediblesNeon' 1920 | 'RetroHursty69 IndianaJonesNeon' 1921 | 'RetroHursty69 IronManNeon' 1922 | 'RetroHursty69 JetSetRadioNeon' 1923 | 'RetroHursty69 KOFNeon' 1924 | 'RetroHursty69 KillerInstinctNeon' 1925 | 'RetroHursty69 KingKRoolNeon' 1926 | 'RetroHursty69 KingdomHeartsNeon' 1927 | 'RetroHursty69 KirbyNeon' 1928 | 'RetroHursty69 LegoNeon' 1929 | 'RetroHursty69 LittleBigPlanetNeon' 1930 | 'RetroHursty69 LuigiNeon' 1931 | 'RetroHursty69 ManiacMansionNeon' 1932 | 'RetroHursty69 MarioNeon' 1933 | 'RetroHursty69 MatrixNeon' 1934 | 'RetroHursty69 MegaManNeon' 1935 | 'RetroHursty69 MetalSlugNeon' 1936 | 'RetroHursty69 MetroidNeon' 1937 | 'RetroHursty69 MickeyMouseNeon' 1938 | 'RetroHursty69 MinecraftNeon' 1939 | 'RetroHursty69 MonkeyBallNeon' 1940 | 'RetroHursty69 MortalKombatNeon' 1941 | 'RetroHursty69 OddworldNeon' 1942 | 'RetroHursty69 OptimusPrimeNeon' 1943 | 'RetroHursty69 OutRunNeon' 1944 | 'RetroHursty69 PacmanNeon' 1945 | 'RetroHursty69 ParappaNeon' 1946 | 'RetroHursty69 PitfallNeon' 1947 | 'RetroHursty69 PikminNeon' 1948 | 'RetroHursty69 PokemonNeon' 1949 | 'RetroHursty69 PowerPuffNeon' 1950 | 'RetroHursty69 PredatorNeon' 1951 | 'RetroHursty69 PrincePersiaNeon' 1952 | 'RetroHursty69 ProfessorLaytonNeon' 1953 | 'RetroHursty69 PunchOutNeon' 1954 | 'RetroHursty69 QBertNeon' 1955 | 'RetroHursty69 RactchetClankNeon' 1956 | 'RetroHursty69 RaymanNeon' 1957 | 'RetroHursty69 ResidentEvilNeon' 1958 | 'RetroHursty69 RidgeRacerNeon' 1959 | 'RetroHursty69 RoboCopNeon' 1960 | 'RetroHursty69 SF2Neon' 1961 | 'RetroHursty69 SF3rdStrikeNeon' 1962 | 'RetroHursty69 ScoobyDooNeon' 1963 | 'RetroHursty69 ShenmueNeon' 1964 | 'RetroHursty69 ShrekNeon' 1965 | 'RetroHursty69 SimCityNeon' 1966 | 'RetroHursty69 SimpsonsNeon' 1967 | 'RetroHursty69 SimsNeon' 1968 | 'RetroHursty69 SmashBrosNeon' 1969 | 'RetroHursty69 SmurfsNeon' 1970 | 'RetroHursty69 SonicNeon' 1971 | 'RetroHursty69 SoulCaliburNeon' 1972 | 'RetroHursty69 SouthParkNeon' 1973 | 'RetroHursty69 SpaceAceNeon' 1974 | 'RetroHursty69 SpaceChannel5Neon' 1975 | 'RetroHursty69 SpaceInvadersNeon' 1976 | 'RetroHursty69 SpidermanNeon' 1977 | 'RetroHursty69 SplatoonNeon' 1978 | 'RetroHursty69 SplinterCellNeon' 1979 | 'RetroHursty69 SpongeBobNeon' 1980 | 'RetroHursty69 SpyroNeon' 1981 | 'RetroHursty69 StarFoxNeon' 1982 | 'RetroHursty69 StarWarsNeon' 1983 | 'RetroHursty69 StreetFighterNeon' 1984 | 'RetroHursty69 StreetsOfRageNeon' 1985 | 'RetroHursty69 SupermanNeon' 1986 | 'RetroHursty69 TMNTNeon' 1987 | 'RetroHursty69 TekkenNeon' 1988 | 'RetroHursty69 TerminatorNeon' 1989 | 'RetroHursty69 TetrisNeon' 1990 | 'RetroHursty69 ToadNeon' 1991 | 'RetroHursty69 TombRaiderNeon' 1992 | 'RetroHursty69 ToyStoryNeon' 1993 | 'RetroHursty69 TronNeon' 1994 | 'RetroHursty69 TwistedMetalNeon' 1995 | 'RetroHursty69 VirtuaFighterNeon' 1996 | 'RetroHursty69 WWENeon' 1997 | 'RetroHursty69 WaluigiNeon' 1998 | 'RetroHursty69 WarioNeon' 1999 | 'RetroHursty69 WormsNeon' 2000 | 'RetroHursty69 WrestlefestNeon' 2001 | 'RetroHursty69 XMenNeon' 2002 | 'RetroHursty69 YoshiNeon' 2003 | 'RetroHursty69 ZeldaNeon' 2004 | ) 2005 | while true; do 2006 | local theme 2007 | local installed_themes=() 2008 | local repo 2009 | local options=() 2010 | local status=() 2011 | local default 2012 | 2013 | local i=1 2014 | for theme in "${themes[@]}"; do 2015 | theme=($theme) 2016 | repo="${theme[0]}" 2017 | theme="${theme[1]}" 2018 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2019 | status+=("i") 2020 | options+=("$i" "Update or Uninstall $theme (installed)") 2021 | installed_themes+=("$theme $repo") 2022 | else 2023 | status+=("n") 2024 | options+=("$i" "Install $theme (not installed)") 2025 | fi 2026 | ((i++)) 2027 | done 2028 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 2029 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2030 | default="$choice" 2031 | [[ -z "$choice" ]] && break 2032 | case "$choice" in 2033 | *) #install or update themes 2034 | theme=(${themes[choice-1]}) 2035 | repo="${theme[0]}" 2036 | theme="${theme[1]}" 2037 | # if [[ "${status[choice]}" == "i" ]]; then 2038 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2039 | options=(1 "Update $theme" 2 "Uninstall $theme") 2040 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 2041 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2042 | case "$choice" in 2043 | 1) 2044 | install_theme_hurstythemes "$theme" "$repo" 2045 | ;; 2046 | 2) 2047 | uninstall_theme_hurstythemes "$theme" 2048 | ;; 2049 | esac 2050 | else 2051 | install_theme_hurstythemes "$theme" "$repo" 2052 | fi 2053 | ;; 2054 | esac 2055 | done 2056 | } 2057 | 2058 | function hurstypicks_themes() { 2059 | local themes=( 2060 | 'RetroHursty69 bluray' 2061 | 'RetroHursty69 boxalloyblue' 2062 | 'RetroHursty69 boxalloyred' 2063 | 'RetroHursty69 cardcrazy' 2064 | 'RetroHursty69 circuit' 2065 | 'RetroHursty69 corg' 2066 | 'RetroHursty69 CosmicRise' 2067 | 'RetroHursty69 fabuloso' 2068 | 'RetroHursty69 floyd' 2069 | 'RetroHursty69 greenilicious' 2070 | 'RetroHursty69 heychromey' 2071 | 'RetroHursty69 hurstybluetake2' 2072 | 'RetroHursty69 lightswitch' 2073 | 'RetroHursty69 HyperLuigi' 2074 | 'RetroHursty69 HyperMario' 2075 | 'RetroHursty69 magazinemadness' 2076 | 'RetroHursty69 magazinemadness2' 2077 | 'RetroHursty69 marco' 2078 | 'RetroHursty69 mariobrosiii' 2079 | 'RetroHursty69 meshy' 2080 | 'RetroHursty69 NeonFantasy' 2081 | 'RetroHursty69 retroroid' 2082 | 'RetroHursty69 ShabangCRT' 2083 | 'RetroHursty69 Slick_Red' 2084 | 'RetroHursty69 soda' 2085 | 'RetroHursty69 stirling' 2086 | 'RetroHursty69 supersweet' 2087 | 'RetroHursty69 supersynthy16x9' 2088 | 'RetroHursty69 swatch' 2089 | 'RetroHursty69 uniflyered' 2090 | 'RetroHursty69 whiteslide' 2091 | ) 2092 | while true; do 2093 | local theme 2094 | local installed_themes=() 2095 | local repo 2096 | local options=() 2097 | local status=() 2098 | local default 2099 | 2100 | local i=1 2101 | for theme in "${themes[@]}"; do 2102 | theme=($theme) 2103 | repo="${theme[0]}" 2104 | theme="${theme[1]}" 2105 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2106 | status+=("i") 2107 | options+=("$i" "Update or Uninstall $theme (installed)") 2108 | installed_themes+=("$theme $repo") 2109 | else 2110 | status+=("n") 2111 | options+=("$i" "Install $theme (not installed)") 2112 | fi 2113 | ((i++)) 2114 | done 2115 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 2116 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2117 | default="$choice" 2118 | [[ -z "$choice" ]] && break 2119 | case "$choice" in 2120 | *) #install or update themes 2121 | theme=(${themes[choice-1]}) 2122 | repo="${theme[0]}" 2123 | theme="${theme[1]}" 2124 | # if [[ "${status[choice]}" == "i" ]]; then 2125 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2126 | options=(1 "Update $theme" 2 "Uninstall $theme") 2127 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 2128 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2129 | case "$choice" in 2130 | 1) 2131 | install_theme_hurstythemes "$theme" "$repo" 2132 | ;; 2133 | 2) 2134 | uninstall_theme_hurstythemes "$theme" 2135 | ;; 2136 | esac 2137 | else 2138 | install_theme_hurstythemes "$theme" "$repo" 2139 | fi 2140 | ;; 2141 | esac 2142 | done 2143 | } 2144 | 2145 | function handheld_themes() { 2146 | local themes=( 2147 | 'RetroHursty69 AIGEN_PLUS_4x3' 2148 | 'RetroHursty69 BlurayGameHat' 2149 | 'RetroHursty69 CarbonGameHat' 2150 | 'RetroHursty69 CardCrazyGameHat' 2151 | 'RetroHursty69 ChromeyGameHat' 2152 | 'RetroHursty69 CircuitGameHat' 2153 | 'RetroHursty69 MagazineMadnessGameHat' 2154 | 'RetroHursty69 NegativeGameHat' 2155 | 'RetroHursty69 RetroroidGameHat' 2156 | 'RetroHursty69 SodaGameHat' 2157 | 'RetroHursty69 SublimeGameHat' 2158 | 'RetroHursty69 SweetBlueGameHat' 2159 | ) 2160 | while true; do 2161 | local theme 2162 | local installed_themes=() 2163 | local repo 2164 | local options=() 2165 | local status=() 2166 | local default 2167 | 2168 | local i=1 2169 | for theme in "${themes[@]}"; do 2170 | theme=($theme) 2171 | repo="${theme[0]}" 2172 | theme="${theme[1]}" 2173 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2174 | status+=("i") 2175 | options+=("$i" "Update or Uninstall $theme (installed)") 2176 | installed_themes+=("$theme $repo") 2177 | else 2178 | status+=("n") 2179 | options+=("$i" "Install $theme (not installed)") 2180 | fi 2181 | ((i++)) 2182 | done 2183 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 2184 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2185 | default="$choice" 2186 | [[ -z "$choice" ]] && break 2187 | case "$choice" in 2188 | *) #install or update themes 2189 | theme=(${themes[choice-1]}) 2190 | repo="${theme[0]}" 2191 | theme="${theme[1]}" 2192 | # if [[ "${status[choice]}" == "i" ]]; then 2193 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2194 | options=(1 "Update $theme" 2 "Uninstall $theme") 2195 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 2196 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2197 | case "$choice" in 2198 | 1) 2199 | install_theme_hurstythemes "$theme" "$repo" 2200 | ;; 2201 | 2) 2202 | uninstall_theme_hurstythemes "$theme" 2203 | ;; 2204 | esac 2205 | else 2206 | install_theme_hurstythemes "$theme" "$repo" 2207 | fi 2208 | ;; 2209 | esac 2210 | done 2211 | } 2212 | function slick_themes() { 2213 | local themes=( 2214 | 'RetroHursty69 Slick_Blue' 2215 | 'RetroHursty69 Slick_BlueCube' 2216 | 'RetroHursty69 Slick_Bluey' 2217 | 'RetroHursty69 Slick_Brick' 2218 | 'RetroHursty69 Slick_Brush' 2219 | 'RetroHursty69 Slick_Bubble' 2220 | 'RetroHursty69 Slick_Castle' 2221 | 'RetroHursty69 Slick_CheckerPlate' 2222 | 'RetroHursty69 Slick_CityHeights' 2223 | 'RetroHursty69 Slick_CityLights' 2224 | 'RetroHursty69 Slick_Dazzle' 2225 | 'RetroHursty69 Slick_Edge' 2226 | 'RetroHursty69 Slick_Fire' 2227 | 'RetroHursty69 Slick_Funk' 2228 | 'RetroHursty69 Slick_Green' 2229 | 'RetroHursty69 Slick_Haze' 2230 | 'RetroHursty69 Slick_Lime' 2231 | 'RetroHursty69 Slick_Orange' 2232 | 'RetroHursty69 Slick_Pacman' 2233 | 'RetroHursty69 Slick_Pink' 2234 | 'RetroHursty69 Slick_Red' 2235 | 'RetroHursty69 Slick_Sick' 2236 | 'RetroHursty69 Slick_Smash' 2237 | 'RetroHursty69 Slick_Snazzy' 2238 | 'RetroHursty69 Slick_Spinny' 2239 | 'RetroHursty69 Slick_Steel' 2240 | 'RetroHursty69 Slick_Sunset' 2241 | 'RetroHursty69 Slick_Swingin' 2242 | 'RetroHursty69 Slick_Swish' 2243 | 'RetroHursty69 Slick_Tech' 2244 | ) 2245 | while true; do 2246 | local theme 2247 | local installed_themes=() 2248 | local repo 2249 | local options=() 2250 | local status=() 2251 | local default 2252 | 2253 | local i=1 2254 | for theme in "${themes[@]}"; do 2255 | theme=($theme) 2256 | repo="${theme[0]}" 2257 | theme="${theme[1]}" 2258 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2259 | status+=("i") 2260 | options+=("$i" "Update or Uninstall $theme (installed)") 2261 | installed_themes+=("$theme $repo") 2262 | else 2263 | status+=("n") 2264 | options+=("$i" "Install $theme (not installed)") 2265 | fi 2266 | ((i++)) 2267 | done 2268 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 2269 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2270 | default="$choice" 2271 | [[ -z "$choice" ]] && break 2272 | case "$choice" in 2273 | *) #install or update themes 2274 | theme=(${themes[choice-1]}) 2275 | repo="${theme[0]}" 2276 | theme="${theme[1]}" 2277 | # if [[ "${status[choice]}" == "i" ]]; then 2278 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2279 | options=(1 "Update $theme" 2 "Uninstall $theme") 2280 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 2281 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2282 | case "$choice" in 2283 | 1) 2284 | install_theme_hurstythemes "$theme" "$repo" 2285 | ;; 2286 | 2) 2287 | uninstall_theme_hurstythemes "$theme" 2288 | ;; 2289 | esac 2290 | else 2291 | install_theme_hurstythemes "$theme" "$repo" 2292 | fi 2293 | ;; 2294 | esac 2295 | done 2296 | } 2297 | 2298 | function hyper_themes() { 2299 | local themes=( 2300 | 'RetroHursty69 HyperAladdin' 2301 | 'RetroHursty69 HyperAlexKidd' 2302 | 'RetroHursty69 HyperAmigo' 2303 | 'RetroHursty69 HyperAngryBirds' 2304 | 'RetroHursty69 HyperAnimalCrossing' 2305 | 'RetroHursty69 HyperAntMan' 2306 | 'RetroHursty69 HyperAstaroth' 2307 | 'RetroHursty69 HyperBanjo' 2308 | 'RetroHursty69 HyperBatman' 2309 | 'RetroHursty69 HyperBayonetta' 2310 | 'RetroHursty69 HyperBenGrimm' 2311 | 'RetroHursty69 HyperBomberman' 2312 | 'RetroHursty69 HyperBubbleBobble' 2313 | 'RetroHursty69 HyperBubsy' 2314 | 'RetroHursty69 HyperC3PO' 2315 | 'RetroHursty69 HyperCaptainAmerica' 2316 | 'RetroHursty69 HyperCastlevania' 2317 | 'RetroHursty69 HyperChewbacca' 2318 | 'RetroHursty69 HyperChunLi' 2319 | 'RetroHursty69 HyperContra' 2320 | 'RetroHursty69 HyperCuphead' 2321 | 'RetroHursty69 HyperCrashBandicoot' 2322 | 'RetroHursty69 HyperDarkstalkers' 2323 | 'RetroHursty69 HyperDarthVader' 2324 | 'RetroHursty69 HyperDayTentacle' 2325 | 'RetroHursty69 HyperDeadOrAlive' 2326 | 'RetroHursty69 HyperDeadPool' 2327 | 'RetroHursty69 HyperDevilMayCry' 2328 | 'RetroHursty69 HyperDigDug' 2329 | 'RetroHursty69 HyperDonkeyKong' 2330 | 'RetroHursty69 HyperDonkeyKongJr' 2331 | 'RetroHursty69 HyperDrEggman' 2332 | 'RetroHursty69 HyperFulgor' 2333 | 'RetroHursty69 HyperFrogger' 2334 | 'RetroHursty69 HyperGodOfWar' 2335 | 'RetroHursty69 HyperGTA1' 2336 | 'RetroHursty69 HyperGTA2' 2337 | 'RetroHursty69 HyperHalo' 2338 | 'RetroHursty69 HyperHanSolo' 2339 | 'RetroHursty69 HyperHarleyQuinn' 2340 | 'RetroHursty69 HyperHulk' 2341 | 'RetroHursty69 HyperIndianaJones' 2342 | 'RetroHursty69 HyperIronMan' 2343 | 'RetroHursty69 HyperIvy' 2344 | 'RetroHursty69 HyperJakDaxter' 2345 | 'RetroHursty69 HyperJinKazama' 2346 | 'RetroHursty69 HyperKirby' 2347 | 'RetroHursty69 HyperLink' 2348 | 'RetroHursty69 HyperKOF1' 2349 | 'RetroHursty69 HyperKOF2' 2350 | 'RetroHursty69 HyperKOF3' 2351 | 'RetroHursty69 HyperKOF4' 2352 | 'RetroHursty69 HyperKOF5' 2353 | 'RetroHursty69 HyperKOF6' 2354 | 'RetroHursty69 HyperKOF7' 2355 | 'RetroHursty69 HyperKOF8' 2356 | 'RetroHursty69 HyperKOF9' 2357 | 'RetroHursty69 HyperKOF10' 2358 | 'RetroHursty69 HyperKOF11' 2359 | 'RetroHursty69 HyperKOF12' 2360 | 'RetroHursty69 HyperKOF13' 2361 | 'RetroHursty69 HyperKOF14' 2362 | 'RetroHursty69 HyperKOF15' 2363 | 'RetroHursty69 HyperKOF16' 2364 | 'RetroHursty69 HyperKOF17' 2365 | 'RetroHursty69 HyperKOF18' 2366 | 'RetroHursty69 HyperKOF19' 2367 | 'RetroHursty69 HyperKOF20' 2368 | 'RetroHursty69 HyperLego' 2369 | 'RetroHursty69 HyperLuigi' 2370 | 'RetroHursty69 HyperMameinaBox' 2371 | 'RetroHursty69 HyperMario' 2372 | 'RetroHursty69 HyperMitsurugi' 2373 | 'RetroHursty69 HyperMK1' 2374 | 'RetroHursty69 HyperMK2' 2375 | 'RetroHursty69 HyperMK3' 2376 | 'RetroHursty69 HyperMK4' 2377 | 'RetroHursty69 HyperMK5' 2378 | 'RetroHursty69 HyperMK6' 2379 | 'RetroHursty69 HyperMK7' 2380 | 'RetroHursty69 HyperMK8' 2381 | 'RetroHursty69 HyperMK9' 2382 | 'RetroHursty69 HyperMK10' 2383 | 'RetroHursty69 HyperMK11' 2384 | 'RetroHursty69 HyperMK12' 2385 | 'RetroHursty69 HyperMK13' 2386 | 'RetroHursty69 HyperNeoCortex' 2387 | 'RetroHursty69 HyperNintendo1' 2388 | 'RetroHursty69 HyperNintendo2' 2389 | 'RetroHursty69 HyperNintendo3' 2390 | 'RetroHursty69 HyperNintendo4' 2391 | 'RetroHursty69 HyperNintendo5' 2392 | 'RetroHursty69 HyperNintendo6' 2393 | 'RetroHursty69 HyperNintendo7' 2394 | 'RetroHursty69 HyperNintendo8' 2395 | 'RetroHursty69 HyperNintendo9' 2396 | 'RetroHursty69 HyperNintendo10' 2397 | 'RetroHursty69 HyperNintendo11' 2398 | 'RetroHursty69 HyperNintendo12' 2399 | 'RetroHursty69 HyperNintendo13' 2400 | 'RetroHursty69 HyperNintendo14' 2401 | 'RetroHursty69 HyperNintendo15' 2402 | 'RetroHursty69 HyperNintendo16' 2403 | 'RetroHursty69 HyperNintendo17' 2404 | 'RetroHursty69 HyperNintendo18' 2405 | 'RetroHursty69 HyperNintendo19' 2406 | 'RetroHursty69 HyperNintendo20' 2407 | 'RetroHursty69 HyperNintendo21' 2408 | 'RetroHursty69 HyperNintendo22' 2409 | 'RetroHursty69 HyperNintendo23' 2410 | 'RetroHursty69 HyperNintendo24' 2411 | 'RetroHursty69 HyperNintendo25' 2412 | 'RetroHursty69 HyperNintendo26' 2413 | 'RetroHursty69 HyperNintendo27' 2414 | 'RetroHursty69 HyperNintendo28' 2415 | 'RetroHursty69 HyperNintendo29' 2416 | 'RetroHursty69 HyperNintendo30' 2417 | 'RetroHursty69 HyperNintendo31' 2418 | 'RetroHursty69 HyperNintendo32' 2419 | 'RetroHursty69 HyperNintendo33' 2420 | 'RetroHursty69 HyperNintendo34' 2421 | 'RetroHursty69 HyperNintendo35' 2422 | 'RetroHursty69 HyperNintendo36' 2423 | 'RetroHursty69 HyperNintendo37' 2424 | 'RetroHursty69 HyperNintendo38' 2425 | 'RetroHursty69 HyperNintendo39' 2426 | 'RetroHursty69 HyperNintendo40' 2427 | 'RetroHursty69 HyperNintendo41' 2428 | 'RetroHursty69 HyperNintendo42' 2429 | 'RetroHursty69 HyperNintendo43' 2430 | 'RetroHursty69 HyperNintendo44' 2431 | 'RetroHursty69 HyperNintendo45' 2432 | 'RetroHursty69 HyperNintendo46' 2433 | 'RetroHursty69 HyperNintendo47' 2434 | 'RetroHursty69 HyperNintendo48' 2435 | 'RetroHursty69 HyperNintendo49' 2436 | 'RetroHursty69 HyperNintendo50' 2437 | 'RetroHursty69 HyperPacman' 2438 | 'RetroHursty69 HyperPayDay' 2439 | 'RetroHursty69 HyperR2D2' 2440 | 'RetroHursty69 HyperRachet' 2441 | 'RetroHursty69 HyperRetroArena' 2442 | 'RetroHursty69 HyperRyu' 2443 | 'RetroHursty69 HyperSackBoy' 2444 | 'RetroHursty69 HyperScorpion' 2445 | 'RetroHursty69 HyperSonic' 2446 | 'RetroHursty69 HyperSpaceInvaders' 2447 | 'RetroHursty69 HyperSpiderman' 2448 | 'RetroHursty69 HyperSplinterCell' 2449 | 'RetroHursty69 HyperSpaceChannel5' 2450 | 'RetroHursty69 HyperSpyro' 2451 | 'RetroHursty69 HyperStreetFighter1' 2452 | 'RetroHursty69 HyperStreetFighter2' 2453 | 'RetroHursty69 HyperStreetFighter3' 2454 | 'RetroHursty69 HyperStreetFighter4' 2455 | 'RetroHursty69 HyperStreetFighter5' 2456 | 'RetroHursty69 HyperStreetFighter6' 2457 | 'RetroHursty69 HyperStreetFighter7' 2458 | 'RetroHursty69 HyperStreetFighter8' 2459 | 'RetroHursty69 HyperStreetFighter9' 2460 | 'RetroHursty69 HyperStreetFighter10' 2461 | 'RetroHursty69 HyperStreetFighter11' 2462 | 'RetroHursty69 HyperTails' 2463 | 'RetroHursty69 HyperTaki' 2464 | 'RetroHursty69 HyperTerryBogard' 2465 | 'RetroHursty69 HyperThor' 2466 | 'RetroHursty69 HyperTMNT' 2467 | 'RetroHursty69 HyperToad' 2468 | 'RetroHursty69 HyperXMen1' 2469 | 'RetroHursty69 HyperXMen2' 2470 | 'RetroHursty69 HyperXMen3' 2471 | 'RetroHursty69 HyperXMen4' 2472 | 'RetroHursty69 HyperXMen5' 2473 | 'RetroHursty69 HyperXMen6' 2474 | 'RetroHursty69 HyperXMen7' 2475 | 'RetroHursty69 HyperXMen8' 2476 | 'RetroHursty69 HyperXMen9' 2477 | ) 2478 | while true; do 2479 | local theme 2480 | local installed_themes=() 2481 | local repo 2482 | local options=() 2483 | local status=() 2484 | local default 2485 | 2486 | local i=1 2487 | for theme in "${themes[@]}"; do 2488 | theme=($theme) 2489 | repo="${theme[0]}" 2490 | theme="${theme[1]}" 2491 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2492 | status+=("i") 2493 | options+=("$i" "Update or Uninstall $theme (installed)") 2494 | installed_themes+=("$theme $repo") 2495 | else 2496 | status+=("n") 2497 | options+=("$i" "Install $theme (not installed)") 2498 | fi 2499 | ((i++)) 2500 | done 2501 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 2502 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2503 | default="$choice" 2504 | [[ -z "$choice" ]] && break 2505 | case "$choice" in 2506 | *) #install or update themes 2507 | theme=(${themes[choice-1]}) 2508 | repo="${theme[0]}" 2509 | theme="${theme[1]}" 2510 | # if [[ "${status[choice]}" == "i" ]]; then 2511 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2512 | options=(1 "Update $theme" 2 "Uninstall $theme") 2513 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 2514 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2515 | case "$choice" in 2516 | 1) 2517 | install_theme_hurstythemes "$theme" "$repo" 2518 | ;; 2519 | 2) 2520 | uninstall_theme_hurstythemes "$theme" 2521 | ;; 2522 | esac 2523 | else 2524 | install_theme_hurstythemes "$theme" "$repo" 2525 | fi 2526 | ;; 2527 | esac 2528 | done 2529 | } 2530 | 2531 | function mario_themes() { 2532 | local themes=( 2533 | 'RetroHursty69 DrMarioSweet' 2534 | 'RetroHursty69 MarioBrosSweet' 2535 | 'RetroHursty69 MarioKartSweet' 2536 | 'RetroHursty69 MarioPartySweet' 2537 | 'RetroHursty69 PaperMarioSweet' 2538 | 'RetroHursty69 DrMarioCool' 2539 | 'RetroHursty69 MarioBrosCool' 2540 | 'RetroHursty69 MarioCool' 2541 | 'RetroHursty69 MarioKartCool' 2542 | 'RetroHursty69 MarioPartyCool' 2543 | 'RetroHursty69 DrMarioSpin' 2544 | 'RetroHursty69 MarioSpin' 2545 | 'RetroHursty69 mariobrosiii' 2546 | 'RetroHursty69 mario_melee' 2547 | 'RetroHursty69 DrMarioBlue' 2548 | 'RetroHursty69 MarioBlue' 2549 | 'RetroHursty69 DrMarioGreen' 2550 | 'RetroHursty69 MarioGreen' 2551 | 'RetroHursty69 DrMarioNeon' 2552 | 'RetroHursty69 MarioNeon' 2553 | 'RetroHursty69 mariobrosiii' 2554 | 'RetroHursty69 HyperMario' 2555 | ) 2556 | while true; do 2557 | local theme 2558 | local installed_themes=() 2559 | local repo 2560 | local options=() 2561 | local status=() 2562 | local default 2563 | 2564 | local i=1 2565 | for theme in "${themes[@]}"; do 2566 | theme=($theme) 2567 | repo="${theme[0]}" 2568 | theme="${theme[1]}" 2569 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2570 | status+=("i") 2571 | options+=("$i" "Update or Uninstall $theme (installed)") 2572 | installed_themes+=("$theme $repo") 2573 | else 2574 | status+=("n") 2575 | options+=("$i" "Install $theme (not installed)") 2576 | fi 2577 | ((i++)) 2578 | done 2579 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 2580 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2581 | default="$choice" 2582 | [[ -z "$choice" ]] && break 2583 | case "$choice" in 2584 | *) #install or update themes 2585 | theme=(${themes[choice-1]}) 2586 | repo="${theme[0]}" 2587 | theme="${theme[1]}" 2588 | # if [[ "${status[choice]}" == "i" ]]; then 2589 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2590 | options=(1 "Update $theme" 2 "Uninstall $theme") 2591 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 2592 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2593 | case "$choice" in 2594 | 1) 2595 | install_theme_hurstythemes "$theme" "$repo" 2596 | ;; 2597 | 2) 2598 | uninstall_theme_hurstythemes "$theme" 2599 | ;; 2600 | esac 2601 | else 2602 | install_theme_hurstythemes "$theme" "$repo" 2603 | fi 2604 | ;; 2605 | esac 2606 | done 2607 | } 2608 | 2609 | function GPi_themes() { 2610 | local themes=( 2611 | 'RetroHursty69 GPi_Bluray' 2612 | 'RetroHursty69 GPi_Circuit' 2613 | 'RetroHursty69 GPi_CosmicRise' 2614 | 'RetroHursty69 GPi_Crash' 2615 | 'RetroHursty69 GPi_GameCard' 2616 | 'RetroHursty69 GPi_GPiBoy' 2617 | 'RetroHursty69 GPi_GBColor' 2618 | 'RetroHursty69 GPi_GBGreen' 2619 | 'RetroHursty69 GPi_HeyChromeyOfficial' 2620 | 'RetroHursty69 GPi_Mario' 2621 | 'RetroHursty69 GPi_PopBox' 2622 | 'RetroHursty69 GPi_Retroroid' 2623 | 'RetroHursty69 GPi_SteelChromey' 2624 | 'RetroHursty69 GPi_SuperSweet' 2625 | 'RetroHursty69 GPi_Sublime' 2626 | 'RetroHursty69 GPi_Soda' 2627 | 'RetroHursty69 GPi_Sonic' 2628 | 'RetroHursty69 GPi_TriClops' 2629 | 'RetroHursty69 GPi_Trio' 2630 | 'RetroHursty69 GPi_UniFlyered' 2631 | 'RetroHursty69 GPi_BalrogCapcom' 2632 | 'RetroHursty69 GPi_BisonCapcom' 2633 | 'RetroHursty69 GPi_BlankaCapcom' 2634 | 'RetroHursty69 GPi_CammyCapcom' 2635 | 'RetroHursty69 GPi_CapCommandoCapcom' 2636 | 'RetroHursty69 GPi_ChunLiCapcom' 2637 | 'RetroHursty69 GPi_DhalsimCapcom' 2638 | 'RetroHursty69 GPi_DeeJayCapcom' 2639 | 'RetroHursty69 GPi_DemitriCapcom' 2640 | 'RetroHursty69 GPi_GhoulsCapcom' 2641 | 'RetroHursty69 GPi_GuileCapcom' 2642 | 'RetroHursty69 GPi_HondaCapcom' 2643 | 'RetroHursty69 GPi_KenCapcom' 2644 | 'RetroHursty69 GPi_RyuCapcom' 2645 | 'RetroHursty69 GPi_SagatCapcom' 2646 | 'RetroHursty69 GPi_THawkCapcom' 2647 | 'RetroHursty69 GPi_ZangiefCapcom' 2648 | ) 2649 | while true; do 2650 | local theme 2651 | local installed_themes=() 2652 | local repo 2653 | local options=() 2654 | local status=() 2655 | local default 2656 | 2657 | local i=1 2658 | for theme in "${themes[@]}"; do 2659 | theme=($theme) 2660 | repo="${theme[0]}" 2661 | theme="${theme[1]}" 2662 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2663 | status+=("i") 2664 | options+=("$i" "Update or Uninstall $theme (installed)") 2665 | installed_themes+=("$theme $repo") 2666 | else 2667 | status+=("n") 2668 | options+=("$i" "Install $theme (not installed)") 2669 | fi 2670 | ((i++)) 2671 | done 2672 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 2673 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2674 | default="$choice" 2675 | [[ -z "$choice" ]] && break 2676 | case "$choice" in 2677 | *) #install or update themes 2678 | theme=(${themes[choice-1]}) 2679 | repo="${theme[0]}" 2680 | theme="${theme[1]}" 2681 | # if [[ "${status[choice]}" == "i" ]]; then 2682 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2683 | options=(1 "Update $theme" 2 "Uninstall $theme") 2684 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 2685 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2686 | case "$choice" in 2687 | 1) 2688 | install_theme_hurstythemes "$theme" "$repo" 2689 | ;; 2690 | 2) 2691 | uninstall_theme_hurstythemes "$theme" 2692 | ;; 2693 | esac 2694 | else 2695 | install_theme_hurstythemes "$theme" "$repo" 2696 | fi 2697 | ;; 2698 | esac 2699 | done 2700 | } 2701 | 2702 | function Comic_themes() { 2703 | local themes=( 2704 | 'RetroHursty69 ComicMK' 2705 | 'RetroHursty69 ComicMARVEL' 2706 | 'RetroHursty69 ComicMARIO' 2707 | 'RetroHursty69 ComicDARKSTALKERS' 2708 | 'RetroHursty69 ComicSTREETFIGHT' 2709 | 'RetroHursty69 ComicZELDA' 2710 | 'RetroHursty69 ComicXMEN' 2711 | 'RetroHursty69 ComicSONIC' 2712 | 'RetroHursty69 ComicPACMAN' 2713 | 'RetroHursty69 ComicCRASHB' 2714 | 'RetroHursty69 ComicCOVERS' 2715 | ) 2716 | while true; do 2717 | local theme 2718 | local installed_themes=() 2719 | local repo 2720 | local options=() 2721 | local status=() 2722 | local default 2723 | 2724 | local i=1 2725 | for theme in "${themes[@]}"; do 2726 | theme=($theme) 2727 | repo="${theme[0]}" 2728 | theme="${theme[1]}" 2729 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2730 | status+=("i") 2731 | options+=("$i" "Update or Uninstall $theme (installed)") 2732 | installed_themes+=("$theme $repo") 2733 | else 2734 | status+=("n") 2735 | options+=("$i" "Install $theme (not installed)") 2736 | fi 2737 | ((i++)) 2738 | done 2739 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 2740 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2741 | default="$choice" 2742 | [[ -z "$choice" ]] && break 2743 | case "$choice" in 2744 | *) #install or update themes 2745 | theme=(${themes[choice-1]}) 2746 | repo="${theme[0]}" 2747 | theme="${theme[1]}" 2748 | # if [[ "${status[choice]}" == "i" ]]; then 2749 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2750 | options=(1 "Update $theme" 2 "Uninstall $theme") 2751 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 2752 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2753 | case "$choice" in 2754 | 1) 2755 | install_theme_hurstythemes "$theme" "$repo" 2756 | ;; 2757 | 2) 2758 | uninstall_theme_hurstythemes "$theme" 2759 | ;; 2760 | esac 2761 | else 2762 | install_theme_hurstythemes "$theme" "$repo" 2763 | fi 2764 | ;; 2765 | esac 2766 | done 2767 | } 2768 | 2769 | function Adios_themes() { 2770 | local themes=( 2771 | 'RetroHursty69 Adios_007' 2772 | 'RetroHursty69 Adios_Aliens' 2773 | 'RetroHursty69 Adios_Akuma' 2774 | 'RetroHursty69 Adios_AlexKidd' 2775 | 'RetroHursty69 Adios_Assassins' 2776 | 'RetroHursty69 Adios_Axel' 2777 | 'RetroHursty69 Adios_Banjo' 2778 | 'RetroHursty69 Adios_Billy' 2779 | 'RetroHursty69 Adios_Batman' 2780 | 'RetroHursty69 Adios_Battletoads' 2781 | 'RetroHursty69 Adios_Bison' 2782 | 'RetroHursty69 Adios_BobaFett' 2783 | 'RetroHursty69 Adios_Boo' 2784 | 'RetroHursty69 Adios_BOrchid' 2785 | 'RetroHursty69 Adios_Bowser' 2786 | 'RetroHursty69 Adios_BowserJr' 2787 | 'RetroHursty69 Adios_C3PO' 2788 | 'RetroHursty69 Adios_ChunLi' 2789 | 'RetroHursty69 Adios_Crash' 2790 | 'RetroHursty69 Adios_DevilMayCry' 2791 | 'RetroHursty69 Adios_DiddyKong' 2792 | 'RetroHursty69 Adios_DonkeyKong' 2793 | 'RetroHursty69 Adios_DonkeyKongJr' 2794 | 'RetroHursty69 Adios_Doom' 2795 | 'RetroHursty69 Adios_DoubleDragon' 2796 | 'RetroHursty69 Adios_Drake' 2797 | 'RetroHursty69 Adios_Dragonball' 2798 | 'RetroHursty69 Adios_DrMario' 2799 | 'RetroHursty69 Adios_DuckHunt' 2800 | 'RetroHursty69 Adios_DukeNukem' 2801 | 'RetroHursty69 Adios_EarthwormJim' 2802 | 'RetroHursty69 Adios_Eggman' 2803 | 'RetroHursty69 Adios_Freeman' 2804 | 'RetroHursty69 Adios_Ganon' 2805 | 'RetroHursty69 Adios_Gears' 2806 | 'RetroHursty69 Adios_GodofWar' 2807 | 'RetroHursty69 Adios_Ghouls' 2808 | 'RetroHursty69 Adios_Goro' 2809 | 'RetroHursty69 Adios_GTA' 2810 | 'RetroHursty69 Adios_Halo' 2811 | 'RetroHursty69 Adios_Heichi' 2812 | 'RetroHursty69 Adios_Hulk' 2813 | 'RetroHursty69 Adios_Hwoarang' 2814 | 'RetroHursty69 Adios_Invaders' 2815 | 'RetroHursty69 Adios_Jago' 2816 | 'RetroHursty69 Adios_Jak' 2817 | 'RetroHursty69 Adios_Jin' 2818 | 'RetroHursty69 Adios_JohnnyCage' 2819 | 'RetroHursty69 Adios_Joker' 2820 | 'RetroHursty69 Adios_Ken' 2821 | 'RetroHursty69 Adios_KOF' 2822 | 'RetroHursty69 Adios_Koopa' 2823 | 'RetroHursty69 Adios_Lara' 2824 | 'RetroHursty69 Adios_Link' 2825 | 'RetroHursty69 Adios_Luigi' 2826 | 'RetroHursty69 Adios_Luke' 2827 | 'RetroHursty69 Adios_Mario' 2828 | 'RetroHursty69 Adios_MarioGolf' 2829 | 'RetroHursty69 Adios_Megaman' 2830 | 'RetroHursty69 Adios_MetalGear' 2831 | 'RetroHursty69 Adios_Monkey' 2832 | 'RetroHursty69 Adios_Nights' 2833 | 'RetroHursty69 Adios_Ninja' 2834 | 'RetroHursty69 Adios_Nook' 2835 | 'RetroHursty69 Adios_Pacman' 2836 | 'RetroHursty69 Adios_Paul' 2837 | 'RetroHursty69 Adios_Penelope' 2838 | 'RetroHursty69 Adios_PepsiMan' 2839 | 'RetroHursty69 Adios_Predator' 2840 | 'RetroHursty69 Adios_Punchout' 2841 | 'RetroHursty69 Adios_Rayman' 2842 | 'RetroHursty69 Adios_ResidentEvil' 2843 | 'RetroHursty69 Adios_Ryu' 2844 | 'RetroHursty69 Adios_SackBoy' 2845 | 'RetroHursty69 Adios_Samurai' 2846 | 'RetroHursty69 Adios_ShyGuy' 2847 | 'RetroHursty69 Adios_Sonic' 2848 | 'RetroHursty69 Adios_Spiderman' 2849 | 'RetroHursty69 Adios_Splatoon' 2850 | 'RetroHursty69 Adios_SplinterCell' 2851 | 'RetroHursty69 Adios_Spock' 2852 | 'RetroHursty69 Adios_StarFox' 2853 | 'RetroHursty69 Adios_Strikers' 2854 | 'RetroHursty69 Adios_Sully' 2855 | 'RetroHursty69 Adios_Superman' 2856 | 'RetroHursty69 Adios_Tails' 2857 | 'RetroHursty69 Adios_Terminator' 2858 | 'RetroHursty69 Adios_TerryB' 2859 | 'RetroHursty69 Adios_TMNT' 2860 | 'RetroHursty69 Adios_Toad' 2861 | 'RetroHursty69 Adios_Toadette' 2862 | 'RetroHursty69 Adios_TonyHawk' 2863 | 'RetroHursty69 Adios_Vader' 2864 | 'RetroHursty69 Adios_VirtuaFighter' 2865 | 'RetroHursty69 Adios_Wolverine' 2866 | 'RetroHursty69 Adios_WonderWoman' 2867 | 'RetroHursty69 Adios_Yoda' 2868 | 'RetroHursty69 Adios_Yoshi' 2869 | 'RetroHursty69 Adios_Zelda' 2870 | ) 2871 | while true; do 2872 | local theme 2873 | local installed_themes=() 2874 | local repo 2875 | local options=() 2876 | local status=() 2877 | local default 2878 | 2879 | local i=1 2880 | for theme in "${themes[@]}"; do 2881 | theme=($theme) 2882 | repo="${theme[0]}" 2883 | theme="${theme[1]}" 2884 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2885 | status+=("i") 2886 | options+=("$i" "Update or Uninstall $theme (installed)") 2887 | installed_themes+=("$theme $repo") 2888 | else 2889 | status+=("n") 2890 | options+=("$i" "Install $theme (not installed)") 2891 | fi 2892 | ((i++)) 2893 | done 2894 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 2895 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2896 | default="$choice" 2897 | [[ -z "$choice" ]] && break 2898 | case "$choice" in 2899 | *) #install or update themes 2900 | theme=(${themes[choice-1]}) 2901 | repo="${theme[0]}" 2902 | theme="${theme[1]}" 2903 | # if [[ "${status[choice]}" == "i" ]]; then 2904 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 2905 | options=(1 "Update $theme" 2 "Uninstall $theme") 2906 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 2907 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 2908 | case "$choice" in 2909 | 1) 2910 | install_theme_hurstythemes "$theme" "$repo" 2911 | ;; 2912 | 2) 2913 | uninstall_theme_hurstythemes "$theme" 2914 | ;; 2915 | esac 2916 | else 2917 | install_theme_hurstythemes "$theme" "$repo" 2918 | fi 2919 | ;; 2920 | esac 2921 | done 2922 | } 2923 | 2924 | function Slanty_themes() { 2925 | local themes=( 2926 | 'RetroHursty69 Slanty_Agent47' 2927 | 'RetroHursty69 Slanty_AlexKidd' 2928 | 'RetroHursty69 Slanty_Astroboy' 2929 | 'RetroHursty69 Slanty_Batman' 2930 | 'RetroHursty69 Slanty_Battletoads' 2931 | 'RetroHursty69 Slanty_Bomberman' 2932 | 'RetroHursty69 Slanty_Boogerman' 2933 | 'RetroHursty69 Slanty_BOrchid' 2934 | 'RetroHursty69 Slanty_Bowser' 2935 | 'RetroHursty69 Slanty_BubbleBobble' 2936 | 'RetroHursty69 Slanty_Castlevania' 2937 | 'RetroHursty69 Slanty_CrashBandicoot' 2938 | 'RetroHursty69 Slanty_DarkStalkers' 2939 | 'RetroHursty69 Slanty_DigDug' 2940 | 'RetroHursty69 Slanty_DKJunior' 2941 | 'RetroHursty69 Slanty_DonkeyKong' 2942 | 'RetroHursty69 Slanty_Doom' 2943 | 'RetroHursty69 Slanty_DrMario' 2944 | 'RetroHursty69 Slanty_Earthbound' 2945 | 'RetroHursty69 Slanty_EarthwormJim' 2946 | 'RetroHursty69 Slanty_Eggman' 2947 | 'RetroHursty69 Slanty_FinalFantasy' 2948 | 'RetroHursty69 Slanty_FZero' 2949 | 'RetroHursty69 Slanty_GameWatch' 2950 | 'RetroHursty69 Slanty_Ganon' 2951 | 'RetroHursty69 Slanty_GoW' 2952 | 'RetroHursty69 Slanty_Halo' 2953 | 'RetroHursty69 Slanty_Heichi' 2954 | 'RetroHursty69 Slanty_Hulk' 2955 | 'RetroHursty69 Slanty_Jin' 2956 | 'RetroHursty69 Slanty_King' 2957 | 'RetroHursty69 Slanty_KingdomHearts' 2958 | 'RetroHursty69 Slanty_Kirby' 2959 | 'RetroHursty69 Slanty_KoF' 2960 | 'RetroHursty69 Slanty_Koopa' 2961 | 'RetroHursty69 Slanty_Lego' 2962 | 'RetroHursty69 Slanty_Lemmings' 2963 | 'RetroHursty69 Slanty_Link' 2964 | 'RetroHursty69 Slanty_Luigi' 2965 | 'RetroHursty69 Slanty_Mario' 2966 | 'RetroHursty69 Slanty_Megaman' 2967 | 'RetroHursty69 Slanty_Metroid' 2968 | 'RetroHursty69 Slanty_MKGoro' 2969 | 'RetroHursty69 Slanty_MKScorpion' 2970 | 'RetroHursty69 Slanty_MKSubZero' 2971 | 'RetroHursty69 Slanty_Nights' 2972 | 'RetroHursty69 Slanty_NinjaGaiden' 2973 | 'RetroHursty69 Slanty_Nook' 2974 | 'RetroHursty69 Slanty_Pacman' 2975 | 'RetroHursty69 Slanty_Pikachu' 2976 | 'RetroHursty69 Slanty_Piranha' 2977 | 'RetroHursty69 Slanty_PrincePersia' 2978 | 'RetroHursty69 Slanty_Punchout' 2979 | 'RetroHursty69 Slanty_QBert' 2980 | 'RetroHursty69 Slanty_Robotron' 2981 | 'RetroHursty69 Slanty_SackBoy' 2982 | 'RetroHursty69 Slanty_SFBison' 2983 | 'RetroHursty69 Slanty_SFChunLi' 2984 | 'RetroHursty69 Slanty_SFRyu' 2985 | 'RetroHursty69 Slanty_Simpsons' 2986 | 'RetroHursty69 Slanty_Sonic' 2987 | 'RetroHursty69 Slanty_SoR' 2988 | 'RetroHursty69 Slanty_Spiderman' 2989 | 'RetroHursty69 Slanty_SplinterCell' 2990 | 'RetroHursty69 Slanty_SpongeBob' 2991 | 'RetroHursty69 Slanty_Spyro' 2992 | 'RetroHursty69 Slanty_StarFox' 2993 | 'RetroHursty69 Slanty_TMNT' 2994 | 'RetroHursty69 Slanty_Toad' 2995 | 'RetroHursty69 Slanty_TombRaider' 2996 | 'RetroHursty69 Slanty_VirtuaFighter' 2997 | 'RetroHursty69 Slanty_Wario' 2998 | 'RetroHursty69 Slanty_WonderBoy' 2999 | 'RetroHursty69 Slanty_Wrestling' 3000 | 'RetroHursty69 Slanty_XMen' 3001 | 'RetroHursty69 Slanty_Yoshi' 3002 | 'RetroHursty69 Slanty_Zelda' 3003 | ) 3004 | while true; do 3005 | local theme 3006 | local installed_themes=() 3007 | local repo 3008 | local options=() 3009 | local status=() 3010 | local default 3011 | 3012 | local i=1 3013 | for theme in "${themes[@]}"; do 3014 | theme=($theme) 3015 | repo="${theme[0]}" 3016 | theme="${theme[1]}" 3017 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 3018 | status+=("i") 3019 | options+=("$i" "Update or Uninstall $theme (installed)") 3020 | installed_themes+=("$theme $repo") 3021 | else 3022 | status+=("n") 3023 | options+=("$i" "Install $theme (not installed)") 3024 | fi 3025 | ((i++)) 3026 | done 3027 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 3028 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 3029 | default="$choice" 3030 | [[ -z "$choice" ]] && break 3031 | case "$choice" in 3032 | *) #install or update themes 3033 | theme=(${themes[choice-1]}) 3034 | repo="${theme[0]}" 3035 | theme="${theme[1]}" 3036 | # if [[ "${status[choice]}" == "i" ]]; then 3037 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 3038 | options=(1 "Update $theme" 2 "Uninstall $theme") 3039 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 3040 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 3041 | case "$choice" in 3042 | 1) 3043 | install_theme_hurstythemes "$theme" "$repo" 3044 | ;; 3045 | 2) 3046 | uninstall_theme_hurstythemes "$theme" 3047 | ;; 3048 | esac 3049 | else 3050 | install_theme_hurstythemes "$theme" "$repo" 3051 | fi 3052 | ;; 3053 | esac 3054 | done 3055 | } 3056 | 3057 | function Community_themes() { 3058 | local themes=( 3059 | 'RetroPie carbon' 3060 | 'RetroPie carbon-centered' 3061 | 'RetroPie carbon-nometa' 3062 | 'RetroPie simple' 3063 | 'RetroPie simple-dark' 3064 | 'RetroPie clean-look' 3065 | 'RetroPie color-pi' 3066 | 'RetroPie nbba' 3067 | 'RetroPie simplified-static-canela' 3068 | 'RetroPie turtle-pi' 3069 | 'RetroPie zoid' 3070 | 'ehettervik pixel' 3071 | 'ehettervik pixel-metadata' 3072 | 'ehettervik pixel-tft' 3073 | 'ehettervik luminous' 3074 | 'ehettervik minilumi' 3075 | 'ehettervik workbench' 3076 | 'AmadhiX eudora' 3077 | 'AmadhiX eudora-bigshot' 3078 | 'AmadhiX eudora-concise' 3079 | 'Omnija simpler-turtlepi' 3080 | 'Omnija simpler-turtlemini' 3081 | 'Omnija metro' 3082 | 'lilbud material' 3083 | 'mattrixk io' 3084 | 'mattrixk metapixel' 3085 | 'mattrixk spare' 3086 | 'robertybob space' 3087 | 'robertybob simplebigart' 3088 | 'robertybob tv' 3089 | 'HerbFargus tronkyfran' 3090 | 'lilbud flat' 3091 | 'lilbud flat-dark' 3092 | 'lilbud minimal' 3093 | 'lilbud switch' 3094 | 'lilbud angular' 3095 | 'FlyingTomahawk futura-V' 3096 | 'FlyingTomahawk futura-dark-V' 3097 | 'G-rila fundamental' 3098 | 'ruckage nes-mini' 3099 | 'ruckage famicom-mini' 3100 | 'ruckage snes-mini' 3101 | 'anthonycaccese crt' 3102 | 'anthonycaccese crt-centered' 3103 | 'anthonycaccese art-book' 3104 | 'anthonycaccese art-book-4-3' 3105 | 'anthonycaccese art-book-pocket' 3106 | 'anthonycaccese art-book-micro' 3107 | 'anthonycaccese tft' 3108 | 'anthonycaccese picade' 3109 | 'TMNTturtleguy ComicBook' 3110 | 'TMNTturtleguy ComicBook_4-3' 3111 | 'TMNTturtleguy ComicBook_SE-Wheelart' 3112 | 'TMNTturtleguy ComicBook_4-3_SE-Wheelart' 3113 | 'ChoccyHobNob cygnus' 3114 | 'DTEAM-1 cygnus-blue-flames' 3115 | 'dmmarti steampunk' 3116 | 'dmmarti hurstyblue' 3117 | 'dmmarti maximuspie' 3118 | 'dmmarti showcase' 3119 | 'dmmarti kidz' 3120 | 'dmmarti unified' 3121 | 'dmmarti gamehat' 3122 | 'rxbrad freeplay' 3123 | 'rxbrad gbz35' 3124 | 'rxbrad gbz35-dark' 3125 | 'garaine marioblue' 3126 | 'garaine bigwood' 3127 | 'MrTomixf Royal_Primicia' 3128 | 'lostless playstation' 3129 | 'mrharias superdisplay' 3130 | 'coinjunkie synthwave' 3131 | 'nickearl retrowave' 3132 | 'nickearl retrowave_4_3' 3133 | 'pacdude minijawn' 3134 | 'Saracade scv720' 3135 | 'chicueloarcade Chicuelo' 3136 | 'SuperMagicom nostalgic' 3137 | 'lipebello retrorama' 3138 | 'lipebello retrorama-turbo' 3139 | 'lipebello strangerstuff' 3140 | 'lipebello spaceoddity' 3141 | 'lipebello spaceoddity-43' 3142 | 'lipebello spaceoddity-wide' 3143 | 'lipebello swineapple' 3144 | 'waweedman pii-wii' 3145 | 'waweedman Blade-360' 3146 | 'waweedman Venom' 3147 | 'waweedman Spider-Man' 3148 | 'blowfinger77 locomotion' 3149 | 'justincaseurskynet Arcade1up-5x4-Horizontal' 3150 | 'KALEL1981 Super-Retroboy' 3151 | 'xovox RetroCRT-240p' 3152 | 'xovox RetroCRT-240p-Rainbow' 3153 | 'xovox RetroCRT-240p-Vertical' 3154 | 'arcadeforge push-a' 3155 | 'arcadeforge push-a-v' 3156 | 'arcadeforge pixel-heaven' 3157 | 'arcadeforge pixel-heaven-text' 3158 | 'arcadeforge 240p_Bubblegum' 3159 | 'arcadeforge 240p-honey' 3160 | 'dionmunk clean' 3161 | 'c64-dev epicnoir' 3162 | 'AndreaMav arcade-crt' 3163 | 'AndreaMav arcade-crt2020' 3164 | 'Zechariel VectorPie' 3165 | 'KALEL1981 nes-box' 3166 | 'KALEL1981 super-arcade1up-5x4' 3167 | 'KALEL1981 gold-standard' 3168 | 'Elratauru angular-artwork' 3169 | 'cjonasw raspixel-320-240' 3170 | 'crxone 3twenty2fourty' 3171 | 'leochely Guilty-Gear' 3172 | ) 3173 | while true; do 3174 | local theme 3175 | local installed_themes=() 3176 | local repo 3177 | local options=() 3178 | local status=() 3179 | local default 3180 | 3181 | local i=1 3182 | for theme in "${themes[@]}"; do 3183 | theme=($theme) 3184 | repo="${theme[0]}" 3185 | theme="${theme[1]}" 3186 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 3187 | status+=("i") 3188 | options+=("$i" "Update or Uninstall $theme (installed)") 3189 | installed_themes+=("$theme $repo") 3190 | else 3191 | status+=("n") 3192 | options+=("$i" "Install $theme (not installed)") 3193 | fi 3194 | ((i++)) 3195 | done 3196 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 3197 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 3198 | default="$choice" 3199 | [[ -z "$choice" ]] && break 3200 | case "$choice" in 3201 | *) #install or update themes 3202 | theme=(${themes[choice-1]}) 3203 | repo="${theme[0]}" 3204 | theme="${theme[1]}" 3205 | # if [[ "${status[choice]}" == "i" ]]; then 3206 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 3207 | options=(1 "Update $theme" 2 "Uninstall $theme") 3208 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 3209 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 3210 | case "$choice" in 3211 | 1) 3212 | install_theme_hurstythemes "$theme" "$repo" 3213 | ;; 3214 | 2) 3215 | uninstall_theme_hurstythemes "$theme" 3216 | ;; 3217 | esac 3218 | else 3219 | install_theme_hurstythemes "$theme" "$repo" 3220 | fi 3221 | ;; 3222 | esac 3223 | done 3224 | } 3225 | 3226 | 3227 | function SmoothyUno_themes() { 3228 | local themes=( 3229 | 'RetroHursty69 007Uno' 3230 | 'RetroHursty69 AceAttorneyUno' 3231 | 'RetroHursty69 AeroAcroBatUno' 3232 | 'RetroHursty69 AladdinUno' 3233 | 'RetroHursty69 AlexKiddUno' 3234 | 'RetroHursty69 AnimalCrossingUno' 3235 | 'RetroHursty69 ArtofFightingUno' 3236 | 'RetroHursty69 AssassinsCreedUno' 3237 | 'RetroHursty69 BarbieUno' 3238 | 'RetroHursty69 BatmanMovieUno' 3239 | 'RetroHursty69 BattletoadsUno' 3240 | 'RetroHursty69 BombermanUno' 3241 | 'RetroHursty69 BoogermanUno' 3242 | 'RetroHursty69 BOrchidUno' 3243 | 'RetroHursty69 BowserUno' 3244 | 'RetroHursty69 CaptainAmericaUno' 3245 | 'RetroHursty69 CasperUno' 3246 | 'RetroHursty69 CoolSpotUno' 3247 | 'RetroHursty69 CrashBandicootUno' 3248 | 'RetroHursty69 DarkstalkersUno' 3249 | 'RetroHursty69 DeadorAliveUno' 3250 | 'RetroHursty69 DiabloUno' 3251 | 'RetroHursty69 DigDugUno' 3252 | 'RetroHursty69 DigimonUno' 3253 | 'RetroHursty69 DonkeyKongUno' 3254 | 'RetroHursty69 DoomUno' 3255 | 'RetroHursty69 DragonBallUno' 3256 | 'RetroHursty69 DrEggmanUno' 3257 | 'RetroHursty69 DrMarioUno' 3258 | 'RetroHursty69 DukeNukemUno' 3259 | 'RetroHursty69 EarthwormJimUno' 3260 | 'RetroHursty69 ElderScrollsUno' 3261 | 'RetroHursty69 FamilyGuyUno' 3262 | 'RetroHursty69 FatalFuryUno' 3263 | 'RetroHursty69 FinalFantasyUno' 3264 | 'RetroHursty69 FireEmblemUno' 3265 | 'RetroHursty69 FroggerUno' 3266 | 'RetroHursty69 FZeroUno' 3267 | 'RetroHursty69 GarfieldUno' 3268 | 'RetroHursty69 GauntletUno' 3269 | 'RetroHursty69 GexUno' 3270 | 'RetroHursty69 GhostbustersUno' 3271 | 'RetroHursty69 GhoulsnGhostsUno' 3272 | 'RetroHursty69 GodofWarUno' 3273 | 'RetroHursty69 GoldenAxeUno' 3274 | 'RetroHursty69 GoldenSunUno' 3275 | 'RetroHursty69 GrimFandangoUno' 3276 | 'RetroHursty69 GTAUno' 3277 | 'RetroHursty69 HarryPotterUno' 3278 | 'RetroHursty69 HarvestMoonUno' 3279 | 'RetroHursty69 HelloKittyUno' 3280 | 'RetroHursty69 HitmanUno' 3281 | 'RetroHursty69 HulkUno' 3282 | 'RetroHursty69 IndianaUno' 3283 | 'RetroHursty69 JakDaxterUno' 3284 | 'RetroHursty69 JetsonsUno' 3285 | 'RetroHursty69 JudgeDreddUno' 3286 | 'RetroHursty69 KingdomHeartsUno' 3287 | 'RetroHursty69 KingofFightersUno' 3288 | 'RetroHursty69 KirbyUno' 3289 | 'RetroHursty69 LegoUno' 3290 | 'RetroHursty69 LemmingsUno' 3291 | 'RetroHursty69 LufiaUno' 3292 | 'RetroHursty69 LuigisMansionUno' 3293 | 'RetroHursty69 LuigiUno' 3294 | 'RetroHursty69 MarioGolfUno' 3295 | 'RetroHursty69 MarioKartUno' 3296 | 'RetroHursty69 MarioTennisUno' 3297 | 'RetroHursty69 MarioUno' 3298 | 'RetroHursty69 MechWarriorUno' 3299 | 'RetroHursty69 MegamanUno' 3300 | 'RetroHursty69 MetalSlugUno' 3301 | 'RetroHursty69 MetroidUno' 3302 | 'RetroHursty69 MickeyMouseUno' 3303 | 'RetroHursty69 MinecraftUno' 3304 | 'RetroHursty69 MK1Uno' 3305 | 'RetroHursty69 MK2Uno' 3306 | 'RetroHursty69 MonkeyBallUno' 3307 | 'RetroHursty69 MsPacmanUno' 3308 | 'RetroHursty69 MuppetsUno' 3309 | 'RetroHursty69 NarutoUno' 3310 | 'RetroHursty69 NinjaGaidenUno' 3311 | 'RetroHursty69 OddworldUno' 3312 | 'RetroHursty69 PacmanJrUno' 3313 | 'RetroHursty69 PacmanUno' 3314 | 'RetroHursty69 PangUno' 3315 | 'RetroHursty69 ParodiusUno' 3316 | 'RetroHursty69 PinballUno' 3317 | 'RetroHursty69 PinkPantherUno' 3318 | 'RetroHursty69 PokemonUno' 3319 | 'RetroHursty69 PopeyeUno' 3320 | 'RetroHursty69 PredatorUno' 3321 | 'RetroHursty69 PrincePersiaUno' 3322 | 'RetroHursty69 PunchoutUno' 3323 | 'RetroHursty69 PunisherUno' 3324 | 'RetroHursty69 PuzzleUno' 3325 | 'RetroHursty69 QBertUno' 3326 | 'RetroHursty69 QuakeUno' 3327 | 'RetroHursty69 RacingUno' 3328 | 'RetroHursty69 RainbowSixUno' 3329 | 'RetroHursty69 RamboUno' 3330 | 'RetroHursty69 RatchetClankUno' 3331 | 'RetroHursty69 RaymanUno' 3332 | 'RetroHursty69 RenStimpyUno' 3333 | 'RetroHursty69 ResidentEvilUno' 3334 | 'RetroHursty69 RoadRunnerUno' 3335 | 'RetroHursty69 RobocopUno' 3336 | 'RetroHursty69 RobotronUno' 3337 | 'RetroHursty69 RugratsUno' 3338 | 'RetroHursty69 SailorMoonUno' 3339 | 'RetroHursty69 SamuraiShoUno' 3340 | 'RetroHursty69 ScoobyDooUno' 3341 | 'RetroHursty69 SF1Uno' 3342 | 'RetroHursty69 SF2Uno' 3343 | 'RetroHursty69 ShiningForceUno' 3344 | 'RetroHursty69 ShinobiUno' 3345 | 'RetroHursty69 ShrekUno' 3346 | 'RetroHursty69 SimpsonsUno' 3347 | 'RetroHursty69 SimsUno' 3348 | 'RetroHursty69 SmurfsUno' 3349 | 'RetroHursty69 SonicOGUno' 3350 | 'RetroHursty69 SonicUno' 3351 | 'RetroHursty69 SouthParkUno' 3352 | 'RetroHursty69 SpaceInvadersUno' 3353 | 'RetroHursty69 SpidermanUno' 3354 | 'RetroHursty69 SplatterhouseUno' 3355 | 'RetroHursty69 SplinterCellUno' 3356 | 'RetroHursty69 SpyroUno' 3357 | 'RetroHursty69 StarfoxUno' 3358 | 'RetroHursty69 StarTrekUno' 3359 | 'RetroHursty69 StarWarsUno' 3360 | 'RetroHursty69 StreetsofRageUno' 3361 | 'RetroHursty69 TamagotchiUno' 3362 | 'RetroHursty69 TekkenUno' 3363 | 'RetroHursty69 TMNTUno' 3364 | 'RetroHursty69 ToadUno' 3365 | 'RetroHursty69 TombRaiderUno' 3366 | 'RetroHursty69 TonyHawkUno' 3367 | 'RetroHursty69 ToyStoryUno' 3368 | 'RetroHursty69 TransformersUno' 3369 | 'RetroHursty69 TronUno' 3370 | 'RetroHursty69 TwistedMetalUno' 3371 | 'RetroHursty69 UnchartedUno' 3372 | 'RetroHursty69 ViewtifulJoeUno' 3373 | 'RetroHursty69 VirtuaFighterUno' 3374 | 'RetroHursty69 WolfensteinUno' 3375 | 'RetroHursty69 WonderBoyUno' 3376 | 'RetroHursty69 WorldHeroesUno' 3377 | 'RetroHursty69 WoverineUno' 3378 | 'RetroHursty69 WWFUno' 3379 | 'RetroHursty69 YoshiUno' 3380 | 'RetroHursty69 Yu-Gi-OhUno' 3381 | 'RetroHursty69 ZeldaUno' 3382 | ) 3383 | while true; do 3384 | local theme 3385 | local installed_themes=() 3386 | local repo 3387 | local options=() 3388 | local status=() 3389 | local default 3390 | 3391 | local i=1 3392 | for theme in "${themes[@]}"; do 3393 | theme=($theme) 3394 | repo="${theme[0]}" 3395 | theme="${theme[1]}" 3396 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 3397 | status+=("i") 3398 | options+=("$i" "Update or Uninstall $theme (installed)") 3399 | installed_themes+=("$theme $repo") 3400 | else 3401 | status+=("n") 3402 | options+=("$i" "Install $theme (not installed)") 3403 | fi 3404 | ((i++)) 3405 | done 3406 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 3407 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 3408 | default="$choice" 3409 | [[ -z "$choice" ]] && break 3410 | case "$choice" in 3411 | *) #install or update themes 3412 | theme=(${themes[choice-1]}) 3413 | repo="${theme[0]}" 3414 | theme="${theme[1]}" 3415 | # if [[ "${status[choice]}" == "i" ]]; then 3416 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 3417 | options=(1 "Update $theme" 2 "Uninstall $theme") 3418 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 3419 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 3420 | case "$choice" in 3421 | 1) 3422 | install_theme_hurstythemes "$theme" "$repo" 3423 | ;; 3424 | 2) 3425 | uninstall_theme_hurstythemes "$theme" 3426 | ;; 3427 | esac 3428 | else 3429 | install_theme_hurstythemes "$theme" "$repo" 3430 | fi 3431 | ;; 3432 | esac 3433 | done 3434 | } 3435 | 3436 | function SmoothyDuo_themes() { 3437 | local themes=( 3438 | 'RetroHursty69 AceAttorneyDuo' 3439 | 'RetroHursty69 AeroAcroBatDuo' 3440 | 'RetroHursty69 AladdinDuo' 3441 | 'RetroHursty69 AlexKiddDuo' 3442 | 'RetroHursty69 AnimalCrossingDuo' 3443 | 'RetroHursty69 ArtofFightingDuo' 3444 | 'RetroHursty69 AssassinsCreedDuo' 3445 | 'RetroHursty69 BarbieDuo' 3446 | 'RetroHursty69 BatmanCartoonDuo' 3447 | 'RetroHursty69 BatmanMovieDuo' 3448 | 'RetroHursty69 BattletoadsDuo' 3449 | 'RetroHursty69 BombermanDuo' 3450 | 'RetroHursty69 BoogermanDuo' 3451 | 'RetroHursty69 BowserDuo' 3452 | 'RetroHursty69 CaptAmericaDuo' 3453 | 'RetroHursty69 CasperDuo' 3454 | 'RetroHursty69 CrashBandicootDuo' 3455 | 'RetroHursty69 DarkstalkersDuo' 3456 | 'RetroHursty69 DeadorAliveDuo' 3457 | 'RetroHursty69 DigDugDuo' 3458 | 'RetroHursty69 DigimonDuo' 3459 | 'RetroHursty69 DonkeyKongDuo' 3460 | 'RetroHursty69 DoomDuo' 3461 | 'RetroHursty69 DragonBallDuo' 3462 | 'RetroHursty69 DrEggmanDuo' 3463 | 'RetroHursty69 DrMarioDuo' 3464 | 'RetroHursty69 EarthwormJimDuo' 3465 | 'RetroHursty69 FatalFuryDuo' 3466 | 'RetroHursty69 FinalFantasyDuo' 3467 | 'RetroHursty69 FireEmblemDuo' 3468 | 'RetroHursty69 FroggerDuo' 3469 | 'RetroHursty69 FZeroDuo' 3470 | 'RetroHursty69 GauntletDuo' 3471 | 'RetroHursty69 GhostbustersDuo' 3472 | 'RetroHursty69 GhoulsnGhostsDuo' 3473 | 'RetroHursty69 GodofWarDuo' 3474 | 'RetroHursty69 HitmanDuo' 3475 | 'RetroHursty69 HulkDuo' 3476 | 'RetroHursty69 IndiananDuo' 3477 | 'RetroHursty69 JakDaxterDuo' 3478 | 'RetroHursty69 JudgeDreddDuo' 3479 | 'RetroHursty69 KillerInstinctDuo' 3480 | 'RetroHursty69 KingdomHeartsDuo' 3481 | 'RetroHursty69 KingofFightersDuo' 3482 | 'RetroHursty69 KirbyDuo' 3483 | 'RetroHursty69 LegoDuo' 3484 | 'RetroHursty69 LuigiDuo' 3485 | 'RetroHursty69 LuigisMansionDuo' 3486 | 'RetroHursty69 MarioDuo' 3487 | 'RetroHursty69 MarioGolfDuo' 3488 | 'RetroHursty69 MarioKartDuo' 3489 | 'RetroHursty69 MarioTennisDuo' 3490 | 'RetroHursty69 MegaManDuo' 3491 | 'RetroHursty69 MetalSlugDuo' 3492 | 'RetroHursty69 MetroidDuo' 3493 | 'RetroHursty69 MinecraftDuo' 3494 | 'RetroHursty69 MK1Duo' 3495 | 'RetroHursty69 MK2Duo' 3496 | 'RetroHursty69 MonkeyBallDuo' 3497 | 'RetroHursty69 MsPacmanDuo' 3498 | 'RetroHursty69 NarutoDuo' 3499 | 'RetroHursty69 NinjaGaidenDuo' 3500 | 'RetroHursty69 OddworldDuo' 3501 | 'RetroHursty69 PacmanDuo' 3502 | 'RetroHursty69 ParodiusDuo' 3503 | 'RetroHursty69 PokemonDuo' 3504 | 'RetroHursty69 PopeyeDuo' 3505 | 'RetroHursty69 PrincePersiaDuo' 3506 | 'RetroHursty69 PunchOutDuo' 3507 | 'RetroHursty69 QBertDuo' 3508 | 'RetroHursty69 RatchetClankDuo' 3509 | 'RetroHursty69 RaymanDuo' 3510 | 'RetroHursty69 RenStimpyDuo' 3511 | 'RetroHursty69 ResidentEvilDuo' 3512 | 'RetroHursty69 RoadRunnerDuo' 3513 | 'RetroHursty69 RobocopDuo' 3514 | 'RetroHursty69 RugratsDuo' 3515 | 'RetroHursty69 SailorMoonDuo' 3516 | 'RetroHursty69 SamuraiShodownDuo' 3517 | 'RetroHursty69 ScoobyDooDuo' 3518 | 'RetroHursty69 SF1Duo' 3519 | 'RetroHursty69 SF2Duo' 3520 | 'RetroHursty69 ShiningForceDuo' 3521 | 'RetroHursty69 ShinobiDuo' 3522 | 'RetroHursty69 ShrekDuo' 3523 | 'RetroHursty69 SimpsonsDuo' 3524 | 'RetroHursty69 SimsDuo' 3525 | 'RetroHursty69 SmurfsDuo' 3526 | 'RetroHursty69 SonicDuo' 3527 | 'RetroHursty69 SouthParkDuo' 3528 | 'RetroHursty69 SpaceInvadersDuo' 3529 | 'RetroHursty69 SplatterhouseDuo' 3530 | 'RetroHursty69 SplinterCellDuo' 3531 | 'RetroHursty69 SpyroDuo' 3532 | 'RetroHursty69 StarfoxDuo' 3533 | 'RetroHursty69 StarTrekDuo' 3534 | 'RetroHursty69 StarWarsDuo' 3535 | 'RetroHursty69 StreetsofRageDuo' 3536 | 'RetroHursty69 TamagotchiDuo' 3537 | 'RetroHursty69 TekkenDuo' 3538 | 'RetroHursty69 TMNTDuo' 3539 | 'RetroHursty69 ToadDuo' 3540 | 'RetroHursty69 TombRaiderDuo' 3541 | 'RetroHursty69 ToyStoryDuo' 3542 | 'RetroHursty69 TransformersDuo' 3543 | 'RetroHursty69 TronDuo' 3544 | 'RetroHursty69 TwistedMetalDuo' 3545 | 'RetroHursty69 UnchartedDuo' 3546 | 'RetroHursty69 ViewtifulJoeDuo' 3547 | 'RetroHursty69 VirtuaFighterDuo' 3548 | 'RetroHursty69 WolfensteinDuo' 3549 | 'RetroHursty69 WolverineDuo' 3550 | 'RetroHursty69 WonderBoyDuo' 3551 | 'RetroHursty69 WorldHeroesDuo' 3552 | 'RetroHursty69 WWFDuo' 3553 | 'RetroHursty69 YoshiDuo' 3554 | 'RetroHursty69 Yu-Gi-OhDuo' 3555 | 'RetroHursty69 ZeldaDuo' 3556 | ) 3557 | while true; do 3558 | local theme 3559 | local installed_themes=() 3560 | local repo 3561 | local options=() 3562 | local status=() 3563 | local default 3564 | 3565 | local i=1 3566 | for theme in "${themes[@]}"; do 3567 | theme=($theme) 3568 | repo="${theme[0]}" 3569 | theme="${theme[1]}" 3570 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 3571 | status+=("i") 3572 | options+=("$i" "Update or Uninstall $theme (installed)") 3573 | installed_themes+=("$theme $repo") 3574 | else 3575 | status+=("n") 3576 | options+=("$i" "Install $theme (not installed)") 3577 | fi 3578 | ((i++)) 3579 | done 3580 | local cmd=(dialog --default-item "$default" --backtitle "Hursty's ES Themes Installer" --menu "Hursty's ES Themes Installer - Choose an option" 22 76 16) 3581 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 3582 | default="$choice" 3583 | [[ -z "$choice" ]] && break 3584 | case "$choice" in 3585 | *) #install or update themes 3586 | theme=(${themes[choice-1]}) 3587 | repo="${theme[0]}" 3588 | theme="${theme[1]}" 3589 | # if [[ "${status[choice]}" == "i" ]]; then 3590 | if [[ -d "/etc/emulationstation/themes/$theme" ]]; then 3591 | options=(1 "Update $theme" 2 "Uninstall $theme") 3592 | cmd=(dialog --backtitle "$__backtitle" --menu "Choose an option for theme" 12 40 06) 3593 | local choice=$("${cmd[@]}" "${options[@]}" 2>&1 >/dev/tty) 3594 | case "$choice" in 3595 | 1) 3596 | install_theme_hurstythemes "$theme" "$repo" 3597 | ;; 3598 | 2) 3599 | uninstall_theme_hurstythemes "$theme" 3600 | ;; 3601 | esac 3602 | else 3603 | install_theme_hurstythemes "$theme" "$repo" 3604 | fi 3605 | ;; 3606 | esac 3607 | done 3608 | } 3609 | 3610 | 3611 | 3612 | 3613 | 3614 | 3615 | gui_hurstythemes 3616 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # This script will install the 3rd party script installer 4 | # for Hursty's Themes. 5 | 6 | # These themes are to be used on a Raspberry Pi / RetroPie build 7 | 8 | # It also includes the Motion Blue Unified ES bootup themes randomizer script 9 | 10 | # Download repository 11 | 12 | rm -rf "/tmp/hursty" 13 | mkdir -p "/tmp/hursty" 14 | git clone "https://github.com/RetroHursty69/HurstyThemes.git" "/tmp/hursty" 15 | 16 | # Move files to proper directory 17 | 18 | cp /tmp/hursty/hurstythemes.sh /home/pi/RetroPie/retropiemenu 19 | chmod 777 /home/pi/RetroPie/retropiemenu/hurstythemes.sh 20 | cp /tmp/hursty/hurstythemes.png /home/pi/RetroPie/retropiemenu/icons 21 | if [[ -d "/home/pi/scripts" ]]; then 22 | echo "exists" > /dev/null 23 | else 24 | mkdir /home/pi/scripts 25 | fi 26 | cp /tmp/hursty/themerandom.sh /home/pi/scripts 27 | chmod 777 /home/pi/scripts/themerandom.sh 28 | 29 | # Update RetroPie gamelist.xml to add new entry 30 | 31 | cp /opt/retropie/configs/all/emulationstation/gamelists/retropie/gamelist.xml /opt/retropie/configs/all/emulationstation/gamelists/retropie/gamelist.xml.bkp 32 | cp /opt/retropie/configs/all/emulationstation/gamelists/retropie/gamelist.xml /tmp 33 | 34 | cat /tmp/gamelist.xml |grep -v "" > /tmp/templist.xml 35 | 36 | ifexist=`cat /tmp/templist.xml |grep hurstythemes |wc -l` 37 | if [[ ${ifexist} > 0 ]]; then 38 | echo "already in gamelist.xml" > /tmp/exists 39 | else 40 | echo " " >> /tmp/templist.xml 41 | echo " ./hurstythemes.sh" >> /tmp/templist.xml 42 | echo " Hursty's Themes" >> /tmp/templist.xml 43 | echo " Install, uninstall, or update RetroHursty69's EmulationStation themes. It also includes an ES bootup theme randomizer to automatically switch themes on bootup." >> /tmp/templist.xml 44 | echo " ./icons/hurstythemes.png" >> /tmp/templist.xml 45 | echo " 1" >> /tmp/templist.xml 46 | echo " " >> /tmp/templist.xml 47 | echo " " >> /tmp/templist.xml 48 | echo "" >> /tmp/templist.xml 49 | cp /tmp/templist.xml /opt/retropie/configs/all/emulationstation/gamelists/retropie/gamelist.xml 50 | fi 51 | 52 | -------------------------------------------------------------------------------- /themerandom.sh: -------------------------------------------------------------------------------- 1 | ################################### 2 | # Location of file in RetroPie # 3 | # # 4 | # /home/pi/scripts/themerandom.sh # 5 | # # 6 | ################################### 7 | 8 | # Get list of currently installed themes and count 9 | ls /etc/emulationstation/themes > /tmp/themes 10 | mkdir -p -- "/opt/retropie/configs/all/emulationstation/themes" 11 | ls /opt/retropie/configs/all/emulationstation/themes >> /tmp/themes 12 | themecount=`cat /tmp/themes |wc -l` 13 | 14 | # Get the currently used theme name 15 | curtheme=`cat /opt/retropie/configs/all/emulationstation/es_settings.cfg |grep ThemeSet |cut -f4 -d '"'` 16 | 17 | # Generate a random number between 1 and theme count 18 | r=$(( $RANDOM % ${themecount} +1 )) 19 | 20 | # Read the random line in the tmp file to get a new theme name 21 | newtheme=`sed -n "${r}p" /tmp/themes` 22 | 23 | # Replace the current used theme with a new one 24 | perl -pi -w -e 's///g;' /opt/retropie/configs/all/emulationstation/es_settings.cfg 25 | --------------------------------------------------------------------------------