Mobile-Friendly Firefox Customizations for Librem 5

Do you currently use Mobile-Friendly-Firefox? If so, then you should be able to notice that the text in the URL Bar becomes bigger when you select it. The proposed change is to make the text stay the same size when selected. Both options have pros and cons, but I don’t expect most people to care enough to warrant yet another user selection option in the install.sh script.

1 Like

I voted for keeping the font size as-is, but then again I directly changed the css along time ago, so I won’t benefit from an extra option in the install script :wink:
I often modify URLs in the address bar, so I need to see what I’m doing. The huge font made that nearly impossible (I actually thought it was a bug triggered by the particular combination I had chosen)

1 Like

Thank you for voting. With 7 votes in, only 14% selected the current behavior, with the other two options each getting 43%. So I have opted to close the poll and implement the proposed update. I have also updated the README.md on my repo with additional information and re-organization.

2 Likes

Updates:

Introducing a new desktop button! Say hi to FriendlyFox! It features a menu to conveniently activate scripts without the need to type terminal commands. Just tap&hold/secondary-click the FriendlyFox icon and tap/click the script you want to run. There is also an option to Launch Firefox, and the Customize option allows you to choose the tap/click behavior of the button itself. The default is Install and can be changed to Update or Launch Firefox. Oh, and did I mention that I made the FriendlyFox logo myself using LibreOffice Draw? It’s a cute little Red Panda, otherwise known as a Fire Fox. I also used GIMP to modify my avatar. Yay free software! I hope everyone enjoys the new update!

  • Transitioned branch (master to main)

  • Added new files:

    • “Before/After” image (Before_After.png)
    • logo image (friendlyfox.png)
    • desktop file (friendlyfox.desktop)
    • wrapper script (friendlyfox.sh)
    • customize script for desktop file (customize.sh)
    • update script (update.sh)
    • script to remove old repo (.mff-rm-old.sh)
  • Modified friendlyfox.desktop, friendlyfox.sh, customize.sh, update.sh, and .mff-rm-old.sh:

    • fixed copyright date
  • Modified customize.sh, update.sh, and uninstall.sh:

    • fixed variable
  • Modified update.sh:

    • fixed clone command
    • updated to remove old repo
    • restore old directory if cloning failed
    • minor modification for failed update
  • Modified install.sh and uninstall.sh:

    • updated for compatibility with new files
  • Modified install.sh:

    • fixed variable
  • Modified custom_rules.css, fenix_fox-alt.css, fenix_fox.css, fenix_one-alt.css, and fenix_one.css:

    • disabled URL Bar font enlarging*
  • Modified README.md:

    • added “Dependencies” section*
    • updated image link
    • added and modified instructions
    • modified to look better
    • re-organized sections
    • added note recommending uninstall of mobile-config-firefox to preserve customizations*

*Thanks to magdesign for submitting and solving a few issues that have been implemented in this release.

5 Likes

Currently with mobile friendly settings the font is much too large and should be edited to be much smaller when entering URL field to edit.
Also not sure if that is possible but when entering URL field to edit it would be good to hide the back button, reload button, window tab button, and add-on button so the url field expands.

1 Like

This has already been addressed, as noted in my previous comment detailing the latest updates. After updating, you will need to run the install.sh script again in order to apply the changes.

It doesn’t appear to be possible to hide an element based on the condition of a completely different element. The way to implement your suggestion would be to expand the URL Bar to cover the other elements. This is what the standard mobile-config-firefox does (or at least it used to do this), but my code additions seem to override this behavior in a way that I haven’t been able to fix yet. I’ll probably look into it again, but I’m currently doing lots of other things and bouncing back and forth between different projects. Thank you for the suggestion though.

3 Likes

Firstly, this is amazing work so thank you so much. FF was on the verge of not being viable for me on the L5. Just difficult UX for me. Your work has made it viable now!

Second, your codeberg codebase worked great for me before this last update. Now, when I try to run any command I get a long scrolling set of “permission denied” for the waydroid folders? And then the script just stops.

I have deleted your folder and re downloaded, but get the same response. Is anyone else getting this behaviour? Basically, I can’t modify my customization anymore using the script.

I have tried running from CLI as well as the Friendly Fox icon with the same result.

Third, incredible work on the Friendly Fox icon! I really love it! :slight_smile:

Thx again, and appreciate any insight into why your script isn’t working for me now.

2 Likes

That’s really odd. I don’t use Waydroid (still waiting for it to be fully de-googled), so I don’t know which folders you’re talking about. Could you post a screenshot of the error message? If the script is closing itself (also odd), you could take a screen-recording, play the video in a media player, and then pause it at the error message and take a screenshot.

Make sure you have completely deleted the old folder by empying the trash, as that could also cause problems.

Thanks :blush: I’m not much of an artist, so I used LibreOffice Draw to build the icon using simple shapes.

Thank you for the appreciation, and I will definitely investigate this issue. I just need that error message to get started.

1 Like

Thanks for your help! I ran the customize.sh script and the last bit of output I copied from the terminal and pasted below. The waydroid app installs waydroid in the home folder with sudo privileges.

your script seems to want to read home folders and can’t read these.

I think the real problem is the last line that says the Mobile-Friendly-Firefox is a folder and then stops.

I get this same response from any of the scripts. install.sh uninstall.sh, etc.

Hope this helps?

oid/data/apex/sessions’: Permission denied
find: ‘/home/purism/.local/share/waydroid/data/ssh’: Permission denied
find: ‘/home/purism/.local/share/waydroid/data/drm’: Permission denied
find: ‘/home/purism/.local/share/waydroid/data/misc_de/0/apexrollback’: Permission denied
find: ‘/home/purism/.local/share/waydroid/data/misc_de/0/storaged’: Permission denied
find: ‘/home/purism/.local/share/waydroid/data/misc_de/0/vold’: Permission denied
find: ‘/home/purism/.local/share/waydroid/data/misc_de/0/apexdata’: Permission denied
find: ‘/home/purism/.local/share/waydroid/data/misc_de/0/rollback’: Permission denied
find: ‘/home/purism/.local/share/waydroid/data/media’: Permission denied
/home/purism/Mobile-Friendly-Firefox: /home/purism/Mobile-Friendly-Firefox: Is a directory

2 Likes

Damn, I didn’t consider this. One of the first things that my scripts do is to search the home directory for a directory with the name Mobile-Friendly-Firefox and assign that location to a variable, and the scripts do not run as root or with sudo permissions. I could hard-code the directory location assignment, but then the scripts wouldn’t work if the user moved the Mobile-Friendly-Firefox directory somewhere else. I don’t actually know if anyone does this, but I had coded it this way just in case.

I need to think about this to determine the best way to handle the issue.

For now, you can modify the scripts to hard-code the location.

At the top of the scripts, in the # Directories & Files section, change this:

# Mobile-Friendly-Firefox directory
REPO=$(find ~/ -ipath '*/Mobile-Friendly-Firefox')

to this:

# Mobile-Friendly-Firefox directory
REPO=~/Mobile-Friendly-Firefox

and change this:

# FriendlyFox directory
FRIENDLYFOX=$(find ~/ -ipath '*/FriendlyFox')

to this:

# FriendlyFox directory
FRIENDLYFOX=~/FriendlyFox

That should solve the problem for you while I consider what I should do.

2 Likes

Thanks @user0 that did the trick.

I do like to holistic approach you take to developing your code, so I can understand your approach to how scan for the folder. Is it an option to just check for the default location and if it is not their, provide an input box for the user to enter where it is located?

2 Likes

It is possible that judiciously using -prune with the find command will solve this problem but even if it works, it will make things more complicated.

You can also use 2>/dev/null to send errors to the bitbucket.

2 Likes

Yes, that is a valid option to consider.

How does that work in practice? Would this essentially ignore the error and continue the script? What’s the syntax to implement this?

1 Like

You just put that on the find command! (or in your case on both find commands) e.g.

REPO=$(find ~/ -ipath '*/Mobile-Friendly-Firefox' 2>/dev/null)

2 Likes

It’s that easy? Could there be any issues caused by adding this?

1 Like

Well, yeah, if there are unexpected errors then you won’t see them. So it’s a trade-off.

1 Like

Is there a way to specify the type of error (permission error in this case)?

1 Like

Not directly, no.

My suggestion would be: ignore any errors and just make sure that “REPO” ended up non-empty.

3 Likes

Okay, I have implemented this solution. Thank you very much for the help @irvinewade.

@kms, you should update FriendlyFox to pull this fix. And thank you for alerting me to this problem. If there are any other issues, please let me know, and I will investigate them.

3 Likes

Hum, I gave a different name to the folder in my phone because I already had a mobile-config-firefox folder from the previous repository, so the script wasn’t working. I immediately changed the REPO initialisation to this and then it worked fine:

REPO=$(dirname `realpath $0`)/src

I think that’s much better that trying to find the script from the home directory. It might not even be in the home directory if people clone the repo on the SD card. ($0 allows to get the name of the script as it was executed, realpath to make it absolute, dirname to remove the script name and get the parent directory)

1 Like