• Stars
    star
    250
  • Rank 161,597 (Top 4 %)
  • Language
    CSS
  • License
    MIT License
  • Created about 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Sweet_Pop! Beautify, Customize Firefox. Minimalist animated oneliner theme for Firefox perfectly matching Sweet Dark.

Sweet_Pop!

A minimalist animated oneliner theme for Firefox perfectly matching Sweet Dark

Floating Navigation with Animated Background

Auto-hide Scrollbars

Context Menu

Library

Folder structure

 .
├──  assets
│  └──  preview images
├──  css
│  ├──  myChanges.css
│  ├──  icons.css
│  ├──  reddit.css
│  ├──  discordCatppuccin.css
│  ├──  responsiveNavbar.css
│  └──  other .css files
├──  icons
│  ├──  animation.svg
│  └──  many icons in .svg format
├──  LICENSE
├──  programs
│  ├──  install-cfg.sh
│  ├──  install-curl.sh
│  ├──  install.sh
│  ├──  install-curl.bat
│  ├──  install.bat
│  ├──  local-settings.js
│  ├──  mozilla.cfg
│  └──  user.js
├──  README.md
├──  script
│  ├──  floatingToolbox.uc.js
│  └──  hideScrollbar.uc.js
├──  userChrome.css
├──  userContent.css
└──  utils
   ├──  boot.jsm
   └──  chrome.manifest

userChrome.css

This helps to customize Firefox User Interface.

userContent.css

This helps to customize web content like a specific site.

floatingToolbox.css

Makes the toolbox float. Can be accessed via hovering over top of browser.
All imports are present in css folder as well.

hideScrollbar.uc.js

It's now possible to autohide scrollbars.

floatingToolbox.uc.js

Enable disable floating toolbox from menubar/about:config.

navbarToolbarButtonSlider.uc.js

As this is a one-liner theme, one must drop some buttons to add sufficient space for urlbar and tabbar. That's why I mentioned in issue 2 to move the add-ons to overflow menu. But this messed up with their widths. Take a look here. I did some temporary fix(which was not that good). But u/MotherStylus came up with an awesome uc.js script.
So basically this adds a button slider to navbar toolbar. This is how it looks. Read the file description to configure it properly.

user.js

Contains required user preferences. Change these before copying it to it's location because your default preferences will be overridden by this once you restart your browser.

But how does it work?

Custom startup-script (aka mozilla.cfg here) is loaded using local-settings.js. This startup-script adds "loader" scripts from utils folder that loads arbitrary javascript files from the script folder into Firefox
mozilla.cfg also helps in setting local webpage as your homepage. Details in Installation.

Note

Firefox team has removed XBL from Firefox starting with version 72, so userChrome.js would not work :/

Installation

Note

If you are planning to set a local page as home page then in mozilla.cfg, uncomment line 12, 13, 14 and at line 13 change newTabURL_ to the local page location or any other URL.

Script Installation
  1. Clone the repository and enter folder:

    $ git clone https://github.com/PROxZIMA/Sweet-Pop.git && cd Sweet-Pop
  2. Run installation script

    This script will lookup default Firefox profile location and install the theme with default configurations.

    Linux/MacOS
    $ ./programs/install.sh # Standard
    $ ./programs/install.sh -f ~/.var/app/org.mozilla.firefox/.mozilla/firefox # Flatpak
    Windows
    > programs\install.bat REM Standard
    > programs\install.bat -e -b "C:\Program Files (x86)\Mozilla Firefox" REM Disable fx-autoconfig and Custom binary folder

    Script options

    • -b <binary_folder> optional

      • Set custom Firefox binary folder path, for example /usr/lib32/firefox
      • Default: Auto detects in linux. C:\Program Files\Mozilla Firefox in windows
    • -f <firefox_folder> optional

      • Set custom Firefox folder path, for example ~/.mozilla/icecat/
      • Default: ~/.mozilla/firefox/ in linux. %APPDATA%\Mozilla\Firefox in windows
    • -p <profile_name> optional

      • Set custom profile name, for example 4htgy4pu.app
      • Default: Profile folder name found in profiles.ini at ->
      [Install4F96D1932A9F858E]
      Default=1yrah0xg.default-release
      Locked=1
      
    • -e optional

      • Install fx-autoconfig
      • Runs sudo to copy mozilla.cfg and local-settings.js to Application Binary folder
      • Default: True
    • -h optional

      • Shows help message with flags info
Curl based Installation
  • You can also install this theme with one command:

    Linux/MacOS
    $ curl -s -o- https://raw.githubusercontent.com/PROxZIMA/Sweet-Pop/master/programs/install-curl.sh | bash # Standard
    $ curl -s -o- https://raw.githubusercontent.com/PROxZIMA/Sweet-Pop/master/programs/install-curl.sh | bash -s -- -f ~/.var/app/org.mozilla.firefox/.mozilla/firefox # Flatpak
    Windows
    > curl -sL "https://raw.githubusercontent.com/PROxZIMA/Sweet-Pop/master/programs/install-curl.bat" > %TEMP%\install-curl.bat && %TEMP%\install-curl.bat REM Standard
    > curl -sL "https://raw.githubusercontent.com/PROxZIMA/Sweet-Pop/master/programs/install-curl.bat" > %TEMP%\install-curl.bat && %TEMP%\install-curl.bat -b "C:\Program Files (x86)\Mozilla Firefox" REM Custom binary folder
    

    This will download the master branch and run the installation script. mozilla.cfg can be configured after complete installation

Manual Installation
  1. Open about:support in new tab and click Open Directory near Profile Directory.

  2. Open this directory in terminal and clone the repository

    Note: If you already have a chrome folder under Profile Directory, rename it to chrome_bak or anything else to preserve your old theme.

    $ cd {Your profile directory}
    
    $ git clone https://github.com/PROxZIMA/Sweet-Pop.git chrome
    
    $ cd chrome
  3. Install boot.jsm file from fx-autoconfig in the chrome/utils folder (make sure it matches above Folder Structure).

    $ curl -sL "https://raw.githubusercontent.com/MrOtherGuy/fx-autoconfig/master/profile/chrome/utils/boot.jsm" > "utils/boot.jsm"
  4. Move user.js, mozilla.cfg and local-settings.js to their destination.

    Linux
    • about:support > Application Binary > {Installation folder}firefox-bin
      Generally Installation folder is /usr/lib/firefox/
    $ ln -s "`pwd`/programs/user.js" ../user.js
    
    $ cp ./programs/mozilla.cfg /usr/lib/firefox/
    
    $ cp ./programs/local-settings.js /usr/lib/firefox/defaults/pref/
    MacOS
    • about:support > Application Binary > {Installation folder}firefox
      Generally Installation folder is /Applications/Firefox.app/Contents/MacOS/ (Firefox Nightly for Nightly version)

      For MacOS, our destination folder is /Applications/Firefox.app/Contents/Resources/

    $ ln -s "`pwd`/programs/user.js" ../user.js
    
    $ cp ./programs/mozilla.cfg /Applications/Firefox.app/Contents/Resources/
    
    $ cp ./programs/local-settings.js /Applications/Firefox.app/Contents/Resources/defaults/pref/
    Windows
    • about:support > Application Binary > {Installation folder}firefox.exe
      Generally Installation folder is C:\Program Files\Mozilla Firefox\
    > mklink ..\user.js "%cd%\programs\user.js"
    
    > copy .\programs\mozilla.cfg "C:\Program Files\Mozilla Firefox\"
    
    > copy .\programs\local-settings.js "C:\Program Files\Mozilla Firefox\defaults\pref\"
  5. Download navbarToolbarButtonSlider.uc.js and place it in script folder along with hideScrollbar.uc.js.

    $ curl -sL "https://raw.githubusercontent.com/aminomancer/uc.css.js/master/JS/navbarToolbarButtonSlider.uc.js" > "script/navbarToolbarButtonSlider.uc.js"

Follow-up changes

  1. In Firefox

    • Right click hamburger button > customize toolbar disable Title Bar, Drag Space.
    • Remove Flexible Space from urlbar.
    • Set Density to Compact/Normal/Touch and Themes to Dark or Light (Compact is buggy in Windows).
  2. Open about:support > Clear startup cache... > Restart twice

  3. Voilà

Configuration

  1. programs/user.js contains user preferences that are automatically loaded at startup. So no need to manually set them during installation

  2. You can set any background in the toolbox. Edit --tabbar-gradient-color in userChrome.css to a static color or linear-background or any SVG ¯\_༼ •́ ͜ʖ •̀ ༽_/¯.

  3. You can change --tab-radius and --tab-border-width to increase/decrease tab border radius and width respectively to match normal and touch density.

  4. Hide menu icons by commenting Line 9 in userChrome.css.

  5. You can disable any of the script/*.uc.js from Toolbar Menu > Tools > userscripts > script. Restart twice, every time you enable/disable the script.

  6. You can also edit hideScrollbar.uc.js to customize the scrollbars according to your taste.

  7. For adding your own customizations make changes in myChanges.css file under css folder.

  8. If something breaks on your system then please raise a issue

  9. @ArataKamikaze mentioned in #5 that Firefox Color breaks/overwrite existing theme so disable the extension if you face similar issue.

Credits


Stargazers over time

Stargazers over time

Back to top


Made with ❤️

ARIGATOU

More Repositories

1

.dotfiles

FBI, Open up ~/
Lua
340
star
2

Academic-Codes

This repository contains academic codes from experiments and labs I did during my academic years.
Jupyter Notebook
61
star
3

prism

A beautiful, minimalist, static startpage
CSS
45
star
4

DarkSpider

Anatomy and Visualization of the Network structure of the Dark web using multi-threaded crawler
Python
34
star
5

proxzima-plymouth

A techno Plymouth theme with crazy ass animation.
Shell
34
star
6

sweet-dracula

Sweet Dracula — A beautiful, darker - Dracula fork.
Makefile
26
star
7

TimetableScheduler

An intelligent timetable generator that generates University timetable using Genetic Algorithm
CSS
25
star
8

caway

Cava in waybar
Shell
12
star
9

proxzima.github.io

Hey! Welcome to my Teminal based home page!
TypeScript
6
star
10

Python-Projects

Various small and moderate level python codes
Python
2
star
11

Terminal-Themes

Awesome themes for Powershell/ Gnome/ Tilix
PowerShell
2
star
12

PROxZIMA

GitHub public profile readme
Python
2
star
13

Competitive-Coding

Solved questions from all major competitive coding platforms
Python
1
star
14

My-Scripts

Random scripts which I made and use (almost) daily.
Shell
1
star
15

Skin-Cancer-MNIST-HAM10000

Skin Cancer MNIST: HAM10000 - ResNet50 vs Inception-V3 vs VGG-19 vs VGG-16 vs GoogLeNet (Inception-V1)
Jupyter Notebook
1
star
16

Museum-Gallery

This is a VR based Museum application made for enjoying museum from home!!!
Java
1
star
17

resume

Resume | Pratik Pingale
TeX
1
star
18

Corona-Data

This Python 3.8 based program provides a Two-dimensional tabular data as well as a graph of Cases in India and of the respective states
Python
1
star
19

Movie-Recommendation-System

Movie recommendation system using TfidfVectorizer, NearestNeighbors
Jupyter Notebook
1
star