March 27Mar 27 Quick Favorites PluginCurrently Listed in Community Application.Plugin Name: Quick FavoritesDescription: A custom favorites menu for the unRAID header. Easily navigate to pages, Docker containers, and User Scripts with live previews and icon support.Install URL:https://raw.githubusercontent.com/hernandito/quick.favorites/main/quick.favorites.plgGitHub Repo: https://github.com/hernandito/quick.favoritesSupercharge your unRAID navigation! Quick Favorites allows you to build a beautifully customized, lightning-fast pop-up menu right into your unRAID header. This takes the existing "Favorites" and replaces it with a Quick Favorites pop-up.Stop clicking through endless tabs to find your most-used settings, Docker containers, or User Scripts. Put them all in one place, accessible from anywhere in your Unraid dashboard.✨ Features:Everywhere You Need It: The menu attaches to the Star icon in the top right of your unRAID header, making it accessible from any page.Fully Customizable Look: Change the width, grid layout, colors, and borders to perfectly match your unRAID theme.Icon Support: Use standard FontAwesome icons, native Emojis, or paste a URL to a custom image!User Scripts Integration: Don't just navigate—execute! You can map buttons to run your favorite User Scripts directly from the menu.Settings Page:In addition to being able to define the UI's look, the plugin also supports CSS customization for finer detail control:The Actions ExplainedWhen adding a new link in the Quick Favorites settings, you have access to powerful "Actions" that change how the link behaves. Here is what they do:Standard NavigationSave Tab (Same Window): Perfect for navigating to internal Unraid pages (e.g., /Dashboard or /Settings/DockerSettings). It opens the link in your current tab.New Tab (New Window): Ideal for external web GUIs (like Sonarr, Plex, or your router's IP). It opens the link in a brand new browser tab.User Scripts MagicYou must have the "User Scripts" plugin installed to use these features.Run Script (Console) (Run in Console Window): Click the button, and the traditional UserScripts script console window will pop up showing the script running in real-time.Run Script (Background) (Run in Background): Same as the UserScripts, the script will run silently in the background without interrupting your workflow.User Script Log (View you scheduled Logs): Instantly pops open a clean, formatted window to show the output logs of a specific script.🛠️ How to InstallInstalling is incredibly simple. Search for Quick Favorites in Community Applications.DISCLAIMER:I am NOT a seasoned programmer. And this is my first plugin. I got this done purely with the help of Gemini AI and most recently Claude AI. I will do my best to support, but I encourage someone to fork what I have created and take over the reigns. Similarly, when it come to issues, anyone with more technical expertise please chime in, it would be greatly appreciated. Edited August 27Aug 27 by hernandito typo
August 27Aug 27 Author To complement Quick.Favorites, I have created a UserScript for my own personal use. This script allows me to HIDE existing menu items. In my case, I wanted to hide the "Favorites", "Stats", and "Shares" menu since I rarely go to these pages. I am able to relegate "less-used" menu items to the QF menu. See screenshot below:The script is customizable to either restore the default menu, or disable it. There is a toggle setting that you change in the script (MODE="install" or MODE="remove" ).It also allows you to specify which menu items to "hide". Since I use my tablet mainly, I chose to hide the "Favorites", "Stats", and "Shares" menu items. In the script, comment out, add, or remove, the items you want under HIDE_HREFS=(WARNING:This script changes unRAID's defaults menu file. This is not a feature that would be allowed to be built in into the plugin by unRAID's Community Application standards. I am pasting it here only if someone wants to do this. In order for this to survive a reboot, in UserScripts, enable this script to be schedule to "At First Array Start Only". Here is the script to use in USerScripts:#!/bin/bash## Hide unwanted Unraid navigation tabs## Removes chosen items from the WebUI navigation bar (Dashboard, Main, Shares...).# Hiding a tab does NOT disable the page - it only stops the tab being drawn.# The page still loads fine if you reach it another way.## ----------------------------------------------------------------------------# HOW IT WORKS# Creates one small folder of its own containing a single file:# /usr/local/emhttp/plugins/hide.nav.tabs/HideNavTabs.page# That file holds a few lines of CSS telling the browser not to display the# tabs you list below. Unraid picks it up automatically on every page.## No Unraid file is modified, so there is nothing to back up, nothing to# restore, and an Unraid update cannot break it.## SETUP# Paste into User Scripts, set the schedule to "At First Array Start Only",# then click "Run Script" once. Refresh the browser with Ctrl-F5.## The schedule matters because /usr/local/emhttp is wiped on every reboot,# so the script has to re-create its file each time the server starts.## TO UNDO# Set MODE="remove" below and run once, then set the schedule to Disabled.# Or from the console:# rm -rf /usr/local/emhttp/plugins/hide.nav.tabs# ...then refresh the browser.# ----------------------------------------------------------------------------set -euo pipefail# ============================ CONFIGURATION =================================MODE="install" # "install" to hide tabs, "remove" to restore them# Tabs to hide. Use the URL path, NOT the label shown on screen:# click the tab and copy the part after the address, e.g.# http://tower/Shares -> "/Shares"# Capitalisation matters. Add or remove lines freely.HIDE_HREFS=("/Stats""/Favorites""/Shares""/Tools"# "/Apps")# ============================================================================PLUGDIR="/usr/local/emhttp/plugins/hide.nav.tabs"PAGEFILE="$PLUGDIR/HideNavTabs.page"echo "--------------------------------------------"echo " Hide Unraid nav tabs - mode: $MODE"echo "--------------------------------------------"if [[ "$MODE" == "remove" ]]; thenrm -rf "$PLUGDIR"echo "Removed: $PLUGDIR"echo "All tabs restored. Refresh the WebUI (Ctrl-F5)."echo "Remember to set this script's schedule to Disabled."echo "--------------------------------------------"exit 0fiif [[ ${#HIDE_HREFS[@]} -eq 0 ]]; thenecho "HIDE_HREFS is empty - nothing to hide. Nothing changed."exit 0fimkdir -p "$PLUGDIR"# One CSS rule per tab. :has() targets the wrapper that holds the link, because# the whole tile has to go - hiding just the link would leave its padding behind.RULES=""for href in "${HIDE_HREFS[@]}"; doRULES+="#menu .nav-item:has(> a[href=\"$href\"]) { display: none !important; }"$'\n'donecat > "$PAGEFILE" <<EOFMenu="Buttons:100"Title="Hide Nav Tabs"Link="hide-nav-tabs"---<style>/* Personal customization: hide selected navigation tabs. */$RULES</style>EOFchown -R root:root "$PLUGDIR"chmod -R 755 "$PLUGDIR"echo "Created: $PAGEFILE"echo ""echo "Now hiding:"for href in "${HIDE_HREFS[@]}"; doecho " $href"doneecho ""echo "Refresh the WebUI (Ctrl-F5) to see the change."echo "--------------------------------------------" Edited August 27Aug 27 by hernandito
September 23Sep 23 Possible bug with User Scripts after rebootHi hernandito,I think I found a bug in Quick Favorites when launching scripts from the CA User Scripts plugin.After an Unraid reboot, Quick Favorites cannot launch a User Script that has not yet been executed by CA User Scripts since that reboot.Steps to reproduce:1. Reboot Unraid.2. Add a User Script to Quick Favorites that is NOT configured to run at "At Startup of Array".3. Try to run it from Quick Favorites.4. Quick Favorites tries to execute:/tmp/user.scripts/tmpScripts/SCRIPT_NAME/script5. The script does not exist there yet, so execution fails with:No such file or directory6. Run the same script once manually from CA User Scripts.7. CA User Scripts now creates the script under /tmp/user.scripts/tmpScripts/.8. From this point on, launching it from Quick Favorites works correctly until the next reboot.I tested this with several scripts.Scripts configured as "At Startup of Array" work immediately after boot because their entries in /tmp/user.scripts/tmpScripts/ are created automatically during startup.I also noticed another related issue:When using "Run Script (Background)", Quick Favorites can display:Now starting the script in the backgroundeven though the script does not exist in tmpScripts and therefore is not actually started.It looks like Quick Favorites relies on the temporary copy created by CA User Scripts.Could Quick Favorites perhaps check/create the temporary script first, or launch the User Script from its persistent location instead?Thanks for the plugin!Frank
September 30Sep 30 I was a bit confused because nothing was working, and I didn't see the action drop-down at the far right of the rows.My only suggestion would be to re-format the page so action drop-down is the first thing you see on the left, it's sort of the set-up for the rest of the row, so it should probably the most prominent. Edited September 30Sep 30 by Nogami
October 2Oct 2 On 9/23/2026 at 1:01 AM, Vvei_61 said:Possible bug with User Scripts after rebootHi hernandito,I think I found a bug in Quick Favorites when launching scripts from the CA User Scripts plugin.After an Unraid reboot, Quick Favorites cannot launch a User Script that has not yet been executed by CA User Scripts since that reboot.Steps to reproduce:1. Reboot Unraid.2. Add a User Script to Quick Favorites that is NOT configured to run at "At Startup of Array".3. Try to run it from Quick Favorites.4. Quick Favorites tries to execute:/tmp/user.scripts/tmpScripts/SCRIPT_NAME/script5. The script does not exist there yet, so execution fails with:No such file or directory6. Run the same script once manually from CA User Scripts.7. CA User Scripts now creates the script under /tmp/user.scripts/tmpScripts/.8. From this point on, launching it from Quick Favorites works correctly until the next reboot.I tested this with several scripts.Scripts configured as "At Startup of Array" work immediately after boot because their entries in /tmp/user.scripts/tmpScripts/ are created automatically during startup.I also noticed another related issue:When using "Run Script (Background)", Quick Favorites can display:Now starting the script in the backgroundeven though the script does not exist in tmpScripts and therefore is not actually started.It looks like Quick Favorites relies on the temporary copy created by CA User Scripts.Could Quick Favorites perhaps check/create the temporary script first, or launch the User Script from its persistent location instead?Thanks for the plugin!FrankI'm a novice programmer at best, but I found this patch suggested by chatgpt seems to work. Not sure how to incorporate it into the source code online though:-Quick Favorites is calling the wrong User Scripts API action.-The problem is that intermediate isn't an action handled by the current User Scripts exec.php. The relevant action is convertScript.-So Quick Favorites should simply use the path returned by convertScript.And convertScript does exactly what you were asking for:Takes the persistent script from /boot/config/plugins/user.scripts/scripts/...Creates the corresponding /tmp/user.scripts/tmpScripts/... directory.Copies the script there.Adds #!/bin/bash if necessary.Removes CR characters.Makes the temporary copy executable.in favs.jsfindvar fullScriptPath = '/boot/config/plugins/user.scripts/scripts/' + path + '/script';$.post('/plugins/user.scripts/exec.php', {script: fullScriptPath,action: 'intermediate',csrf_token: token}, function () {var tmpScriptPath = '/tmp/user.scripts/tmpScripts/' + path + '/script';var targetUrl = (action === 'script_modal')? '/plugins/user.scripts/startScript.sh&arg1=' + tmpScriptPath: '/plugins/user.scripts/backgroundScript.sh&arg1=' + tmpScriptPath;openBox(targetUrl, 'Executing: ' + path, 600, 900, true);window.qfCloseMenu && window.qfCloseMenu();});replace withvar fullScriptPath = '/boot/config/plugins/user.scripts/scripts/' + path + '/script';$.post('/plugins/user.scripts/exec.php', {path: fullScriptPath,action: 'convertScript',csrf_token: token}, function (tmpScriptPath) {tmpScriptPath = String(tmpScriptPath || '').trim();// User Scripts creates the temporary copy and returns its actual path.// Don't attempt to execute anything until conversion has completed.if (!tmpScriptPath ||tmpScriptPath.indexOf('/tmp/user.scripts/tmpScripts/') !== 0) {console.error('[QuickFavorites] User Scripts failed to prepare script:',tmpScriptPath);alert('Unable to prepare script: ' + path);return;}var targetUrl = (action === 'script_modal')? '/plugins/user.scripts/startScript.sh&arg1=' + tmpScriptPath: '/plugins/user.scripts/backgroundScript.sh&arg1=' + tmpScriptPath;openBox(targetUrl, 'Executing: ' + path, 600, 900, true);window.qfCloseMenu && window.qfCloseMenu();}).fail(function (xhr, status, error) {console.error('[QuickFavorites] User Scripts conversion failed:',status,error);alert('Unable to prepare script: ' + path);});Tested on my server, 7.4.0-beta 3 and seems to work OK. Please feel free to use or tear apart if you like. I'm not sure how to make this persistent across reboots though. I manually patched it in from the command line. Edited October 2Oct 2 by Nogami
October 2Oct 2 Author @Nogami @Vvei_61 Thanks for reporting the issue. It has been fixed and update is available.Thanks again.
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.