diff --git a/flake.nix b/flake.nix index 10e0548..24449e4 100755 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,11 @@ url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + + nur = { + url = "github:nix-community/NUR"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = diff --git a/modules/web/default.nix b/modules/web/default.nix index f8d6f9a..85d40a5 100644 --- a/modules/web/default.nix +++ b/modules/web/default.nix @@ -1,17 +1,8 @@ { pkgs, inputs, ... }: { - # TODO: switch to home manager - # then configure plugins n shi here too - # make a shared section (about:config sections, plugins, profiles) and then have two separate configs in firefox.nix and librewolf.nix - # https://wiki.nixos.org/wiki/Librewolf - # https://wiki.nixos.org/wiki/Firefox/en imports = [ ./firefox.nix - ]; - - users.users.djai.packages = with pkgs; [ - librewolf - firefox + ./librewolf.nix ]; } diff --git a/modules/web/extensions/darkreader.nix b/modules/web/extensions/darkreader.nix new file mode 100644 index 0000000..6e8f800 --- /dev/null +++ b/modules/web/extensions/darkreader.nix @@ -0,0 +1,55 @@ +{ pkgs, ... }: + +{ + extensions = { + packages = [ pkgs.nur.repos.rycee.firefox-addons.darkreader ]; + settings = { + "darkreader".settings = { # TODO: Check id + enabled = true; + fetchNews = true; + theme = { + mode = 1; + brightness = 100; + contrast = 100; + grayscale = 0; + sepia = 0; + useFont = false; + fontFamily = "Open Sans"; + textStroke = 0; + engine = "dynamicTheme"; + stylesheet = ""; + darkSchemeBackgroundColor = "#24273a"; + darkSchemeTextColor = "#cad3f5"; + lightSchemeBackgroundColor = "#eff1f5"; + lightSchemeTextColor = "#4c4f69"; + scrollbarColor = "auto"; + selectionColor = "#5b6078"; + styleSystemControls = false; + lightColorScheme = "Default"; + darkColorScheme = "Default"; + immediateModify = false; + }; + enabledByDefault = true; + changeBrowserTheme = false; + syncSettings = false; + syncSitesFixes = false; + automation = { + enabled = false; + mode = "system"; + behavior = "OnOff"; + enable = false; + }; + time = { + activation = "18:00"; + deactivation = "9:00"; + }; + previewNewDesign = true; + previewNewestDesign = false; + enableForPDF = true; + enableForProtectedPages = false; + enableContextMenus = false; + detectDarkTheme = false; + }; + }; + }; +} diff --git a/modules/web/extensions/default.nix b/modules/web/extensions/default.nix new file mode 100644 index 0000000..75a7b82 --- /dev/null +++ b/modules/web/extensions/default.nix @@ -0,0 +1,21 @@ +{ ... }: + +{ + imports = [ + ./darkeader.nix + ./sidebery.nix + ./ublock.nix + ./vimium.nix + # ./sponsorblock.nix + # ./xkit.nix + ]; + + extensions.packages = with pkgs.nur.repos.rycee.firefox-addons [ + # no settings + tablissng + firefox-color + + # no exportable settings + bitwarden + ]; +} diff --git a/modules/web/extensions/sidebery.css b/modules/web/extensions/sidebery.css new file mode 100644 index 0000000..af55dfd --- /dev/null +++ b/modules/web/extensions/sidebery.css @@ -0,0 +1,46 @@ +#root.root {--tabs-activated-bg: var(--ctp-surface2);} +#root.root {--tabs-normal-fg: var(--ctp-text);} +#root.root {--tabs-activated-fg: var(--ctp-subtext1);} +#root.root {--tabs-notification-badge-dot-bg: var(--ctp-maroon);} +#root.root {--tabs-notification-badge-count-bg: var(--ctp-red);} +#root.root {--badge-bg: var(--ctp-blue);} +#root.root {--badge-fg: var(--ctp-text);} +#root.root {--badge-urgent-bg: var(--ctp-maroon);} +#root.root {--border: var(--ctp-maroon);} +#root.root {--status-ok: var(--ctp-green);} +#root.root {--status-err: var(--ctp-maroon);} +#root.root {--status-active: var(--ctp-teal);} +#root.root {--status-notice: var(--ctp-sky);} +#root.root {--bookmarks-node-activated-fg: var(--ctp-surface2);} +#root.root {--bookmarks-expanded-folder-bg: var(--ctp-mantle);} +#root.root {--frame-fg: var(--ctp-text);} +#root.root {--frame-bg: var(--ctp-mantle);} + +:root { + --ctp-rosewater: #f4dbd6; + --ctp-flamingo: #f0c6c6; + --ctp-pink: #f5bde6; + --ctp-mauve: #c6a0f6; + --ctp-red: #ed8796; + --ctp-maroon: #ee99a0; + --ctp-peach: #f5a97f; + --ctp-yellow: #eed49f; + --ctp-green: #a6da95; + --ctp-teal: #8bd5ca; + --ctp-sky: #91d7e3; + --ctp-sapphire: #7dc4e4; + --ctp-blue: #8aadf4; + --ctp-lavender: #b7bdf8; + --ctp-text: #c5cff5; + --ctp-subtext1: #b3bce0; + --ctp-subtext0: #a1aacb; + --ctp-overlay2: #8f97b7; + --ctp-overlay1: #7d84a2; + --ctp-overlay0: #6c728d; + --ctp-surface2: #5a5f78; + --ctp-surface1: #484c64; + --ctp-surface0: #363a4f; + --ctp-base: #24273a; + --ctp-mantle: #1e2030; + --ctp-crust: #181926; +} diff --git a/modules/web/extensions/sidebery.nix b/modules/web/extensions/sidebery.nix new file mode 100644 index 0000000..ace3a9f --- /dev/null +++ b/modules/web/extensions/sidebery.nix @@ -0,0 +1,304 @@ +{ pkgs, ... }: + +{ + extensions = { + packages = [ pkgs.nur.repos.rycee.firefox-addons.sidebery ]; + settings = { + "sidebery".settings = { # TODO: Check id + settings = { + nativeScrollbars = true; + nativeScrollbarsThin = true; + nativeScrollbarsLeft = false; + selWinScreenshots = false; + updateSidebarTitle = true; + markWindow = false; + markWindowPreface = "[Sidebery] "; + copyTemplates = "HTML:%B%CT\nMarkdown:%B[%CT](%U)"; + updTooltipDelay = 100; + selLen = true; + ctxMenuNative = false; + ctxMenuRenderInact = true; + ctxMenuRenderIcons = true; + omniReopenInCtr = true; + omniSwitchToPanel = true; + omniMoveToPanel = true; + omniMoveToGroup = true; + navBarLayout = "horizontal"; + navBarInline = true; + navBarSide = "left"; + navBtnCount = true; + hideEmptyPanels = true; + hideDiscardedTabPanels = false; + navActTabsPanelLeftClickAction = "none"; + navActTabsPanelLeftClickTabPos = "general"; + navActBookmarksPanelLeftClickAction = "none"; + navTabsPanelMidClickAction = "discard"; + navBookmarksPanelMidClickAction = "none"; + navSwitchPanelsWheel = true; + subPanelRecentlyClosedBar = true; + subPanelBookmarks = true; + subPanelHistory = true; + subPanelSync = false; + groupLayout = "grid"; + containersSortByName = false; + skipEmptyPanels = false; + dndTabAct = true; + dndTabActDelay = 750; + dndTabActMod = "none"; + dndExp = "pointer"; + dndExpDelay = 750; + dndExpMod = "none"; + dndOutside = "win"; + dndOutsideThresholdTimeout = 350; + dndActTabFromLink = true; + dndActSearchTab = true; + dndMoveTabs = false; + dndMoveBookmarks = false; + dndTabToPanelPos = "end"; + searchBarMode = "dynamic"; + searchPanelSwitch = "same_type"; + searchTabSwitch = false; + searchMenuTrig = false; + searchInputTimeout = 300; + warnOnMultiTabClose = "collapsed"; + activateLastTabOnPanelSwitching = true; + activateLastTabOnPanelSwitchingLoadedOnly = true; + switchPanelAfterSwitchingTab = "always"; + scrollPanelAfterSwitchingTab = "always"; + tabRmBtn = "hover"; + activateAfterClosing = "next"; + activateAfterClosingStayInPanel = false; + activateAfterClosingGlobal = false; + activateAfterClosingNoFolded = true; + activateAfterClosingNoDiscarded = true; + askNewBookmarkPlace = true; + tabsRmUndoNote = true; + tabsUnreadMark = false; + tabsBadge = true; + tabsBadgeRules = "minIdleTime:5000; urgent"; + tabsReloadLimit = 5; + tabsReloadLimitNotif = true; + showNewTabBtns = true; + newTabBarPosition = "after_tabs"; + tabsPanelSwitchActMove = false; + tabsPanelSwitchActMoveAuto = true; + tabsUrlInTooltip = "full"; + tabsContainerInTooltip = true; + newTabCtxReopen = false; + tabWarmupOnHover = true; + tabSwitchDelay = 0; + forceDiscard = true; + tabUpdDelay = 150; + forceUpdTooltip = false; + moveNewTabPin = "start"; + moveNewTabParent = "first_child"; + moveNewTabParentIndent = false; + moveNewTabParentActPanel = false; + moveNewTabButton = "end"; + moveNewTabButtonActivePin = "start"; + moveNewTab = "end"; + moveNewTabActivePin = "start"; + autoScrollToNewTab = true; + pinnedTabsPosition = "panel"; + pinnedTabsList = false; + pinnedAutoGroup = false; + pinnedNoUnload = false; + pinnedNoUnloadExplicit = true; + pinnedForcedDiscard = false; + tabsTree = true; + tabsTreeLimit = "none"; + autoFoldTabs = false; + autoFoldTabsExcept = "none"; + autoExpandTabs = false; + autoExpandTabsOnNew = false; + rmChildTabs = "folded"; + tabsLvlDots = true; + discardFolded = false; + discardFoldedDelay = 0; + discardFoldedDelayUnit = "sec"; + tabsTreeBookmarks = true; + treeRmOutdent = "branch"; + autoGroupOnClose = false; + autoGroupOnClose0Lvl = false; + autoGroupOnCloseMouseOnly = false; + ignoreFoldedParent = false; + showNewGroupConf = true; + sortGroupsFirst = true; + colorizeTabs = false; + colorizeTabsSrc = "domain"; + colorizeTabsBranches = true; + colorizeTabsBranchesSrc = "domain"; + inheritCustomColor = true; + previewTabs = false; + previewTabsMode = "p"; + previewTabsPageModeFallback = "n"; + previewTabsInlineHeight = 70; + previewTabsPopupWidth = 280; + previewTabsTitle = 2; + previewTabsUrl = 1; + previewTabsSide = "right"; + previewTabsDelay = 500; + previewTabsFollowMouse = true; + previewTabsInPageOffsetY = 0; + previewTabsInPageOffsetX = 0; + previewTabsCropRight = 0; + hideInact = false; + hideFoldedTabs = false; + hideFoldedParent = "none"; + hideUnloadedTabs = false; + nativeHighlight = true; + warnOnMultiBookmarkDelete = "collapsed"; + autoCloseBookmarks = false; + autoRemoveOther = false; + highlightOpenBookmarks = false; + activateOpenBookmarkTab = false; + showBookmarkLen = true; + bookmarksRmUndoNote = true; + loadBookmarksOnDemand = true; + pinOpenedBookmarksFolder = true; + oldBookmarksAfterSave = "ask"; + historyTitleUpdInterval = 1100; + fontSize = "m"; + animations = true; + animationSpeed = "norm"; + theme = "proton"; + density = "default"; + colorScheme = "ff"; + snapNotify = true; + snapExcludePrivate = false; + snapInterval = 0; + snapIntervalUnit = "min"; + snapLimit = 0; + snapLimitUnit = "snap"; + snapAutoExport = false; + snapAutoExportType = "json"; + snapAutoExportPath = "Sidebery/snapshot-%Y.%M.%D-%h.%m.%s"; + snapMdFullTree = false; + hScrollAction = "none"; + onePanelSwitchPerScroll = false; + wheelAccumulationX = true; + wheelAccumulationY = true; + navSwitchPanelsDelay = 128; + scrollThroughTabs = "none"; + scrollThroughTabsGlobPinIsolate = true; + scrollThroughVisibleTabs = true; + scrollThroughTabsSkipDiscarded = true; + scrollThroughTabsExceptOverflow = true; + scrollThroughTabsCyclic = false; + scrollThroughTabsScrollArea = 0; + scrollThroughTabsPreselAct = false; + scrollThroughTabsPreselDelay = 0; + autoMenuMultiSel = true; + multipleMiddleClose = false; + longClickDelay = 500; + wheelThreshold = false; + wheelThresholdX = 10; + wheelThresholdY = 60; + tabDoubleClick = "none"; + tabsSecondClickActPrev = false; + tabsSecondClickActPrevPanelOnly = false; + tabsSecondClickActPrevNoUnload = false; + shiftSelAct = true; + ctrlSelAct = true; + activateOnMouseUp = false; + tabCloseOnMouseUp = true; + tabLongLeftClick = "none"; + tabLongRightClick = "none"; + tabMiddleClick = "close"; + tabPinnedMiddleClick = "discard"; + tabMiddleClickCtrl = "discard"; + tabMiddleClickShift = "duplicate"; + tabCloseMiddleClick = "close"; + tabsPanelLeftClickAction = "none"; + tabsPanelLeftClickTabPos = "general"; + tabsPanelDoubleClickAction = "tab"; + tabsPanelDoubleClickTabPos = "general"; + tabsPanelRightClickAction = "menu"; + tabsPanelMiddleClickAction = "tab"; + tabsPanelMiddleClickTabPos = "general"; + newTabMiddleClickAction = "new_child"; + bookmarksLeftClickAction = "open_in_act"; + bookmarksLeftClickActivate = false; + bookmarksLeftClickPos = "default"; + bookmarksMidClickAction = "open_in_new"; + bookmarksMidClickActivate = false; + bookmarksMidClickRemove = false; + bookmarksMidClickPos = "default"; + historyLeftClickAction = "open_in_act"; + historyLeftClickActivate = false; + historyLeftClickPos = "default"; + historyMidClickAction = "open_in_new"; + historyMidClickActivate = false; + historyMidClickPos = "default"; + syncUseFirefox = false; + syncUseGoogleDrive = false; + syncUseGoogleDriveApi = false; + syncSaveSettings = false; + syncSaveCtxMenu = false; + syncSaveStyles = false; + syncSaveKeybindings = false; + selectActiveTabFirst = true; + selectCyclic = false; + loopPanelsIgnoreHidden = false; + kbNewTabInPanelPos = "general" + }; + sidebar = { + panels = { + XAC10qlx5Gg2 = { + type = 2; + id = "XAC10qlx5Gg2"; + name = "Default"; + color = "toolbar"; + iconSVG = "icon_tabs"; + lockedPanel = false; + skipOnSwitching = false; + noEmpty = false; + newTabCtx = "none"; + dropTabCtx = "none"; + moveExcludedTo = -1; + bookmarksFolderId = "PHhiPLb-YBcr"; + srcPanelConfig = { + id = "WmRe539DYInZ"; + autoConvert = true; + tempMode = false; + viewMode = "tree" + } + } + }; + nav = [ + "XAC10qlx5Gg2"; + "add_tp"; + "sp-0"; + "settings"; + "remute_audio_tabs"; + "create_snapshot" + ]; + }; + sidebarCSS = builtins.readFile ./sidebery.css; + keybindings = { + _execute_sidebar_action = "Ctrl+E"; + activate = "Alt+Space"; + reset_selection = "Alt+R"; + next_panel = "Alt+K"; + prev_panel = "Alt+J"; + up = "Alt+Up"; + down = "Alt+Down"; + up_shift = "Alt+Shift+Up"; + down_shift = "Alt+Shift+Down"; + sel_child_tabs = "Alt+C"; + unload_tabs = "Alt+Q"; + unload_other_tabs_in_panel = "Ctrl+Shift+Q"; + unload_all_tabs_in_inact_panels = "Alt+Shift+Q"; + switch_to_panel_0 = "Alt+1"; + switch_to_panel_1 = "Alt+2"; + switch_to_panel_2 = "Alt+3"; + switch_to_panel_3 = "Alt+4"; + switch_to_panel_4 = "Alt+5"; + switch_to_panel_5 = "Alt+6"; + switch_to_panel_6 = "Alt+7" + }; + }; + }; + }; +} + diff --git a/modules/web/extensions/sponsorblock.nix b/modules/web/extensions/sponsorblock.nix new file mode 100644 index 0000000..d8831fd --- /dev/null +++ b/modules/web/extensions/sponsorblock.nix @@ -0,0 +1,122 @@ +{ pkgs, ... }: + +{ + extensions = { + packages = [ pkgs.nur.repos.rycee.firefox-addons.sponsorblock ]; + settings = { + "sponsorblock".settings = { # TODO: Check id + changeChapterColor = true; + showZoomToFillError2 = false; + autoSkipOnMusicVideosUpdate = true; + categoryPillUpdate = true; + chapterCategoryAdded = true; + barTypes = { + preview-chooseACategory = { color = "#ffffff"; opacity = "0.7" }; + sponsor = { color = "#62a0ea"; opacity = "0.7"; }; + preview-sponsor = { color = "#007800"; opacity = "0.7"; }; + selfpromo = { color = "#f8e45c"; opacity = "0.7"; }; + preview-selfpromo = { color = "#bfbf35"; opacity = "0.7"; }; + exclusive_access = { color = "#a51d2d"; opacity = "0.7"; }; + interaction = { color = "#57e389"; opacity = "0.7"; }; + preview-interaction = { color = "#6c0087"; opacity = "0.7"; }; + intro = { color = "#ffa348"; opacity = "0.7"; }; + preview-intro = { color = "#008080"; opacity = "0.7"; }; + outro = { color = "#ffa348"; opacity = "0.7"; }; + preview-outro = { color = "#000070"; opacity = "0.7"; }; + preview = { color = "#ffa348"; opacity = "0.7"; }; + preview-preview = { color = "#005799"; opacity = "0.7"; }; + hook = { color = "#395699"; opacity = "0.8"; }; + preview-hook = { color = "#273963"; opacity = "0.7"; }; + music_offtopic = { color = "#ff9900"; opacity = "0.7"; }; + preview-music_offtopic = { color = "#a6634a"; opacity = "0.7"; }; + poi_highlight = { color = "#ff1684"; opacity = "0.7"; }; + preview-poi_highlight = { color = "#9b044c"; opacity = "0.7"; }; + filler = { color = "#7300FF"; opacity = "0.9"; }; + preview-filler = { color = "#2E0066"; opacity = "0.7"; }; + chapter = { color = "#ffd983"; opacity = "0.0"; }; + categorySelections = [ + { name = "sponsor"; option = 2; } + { name = "chapter"; option = 0; } + { name = "selfpromo"; option = 2; } + { name = "preview"; option = 0; } + { name = "outro"; option = 0; } + { name = "intro"; option = 0; } + { name = "interaction"; option = 2; } + ]; + permissions = { + sponsor = true; + selfpromo = true; + exclusive_access = true; + interaction = true; + intro = true; + outro = true; + preview = true; + hook = true; + music_offtopic = true; + filler = true; + poi_highlight = true; + chapter = false + }; + individiousInstances = ["yewtu.be" "invidious.djairo.dev" "invidious.tiekotter.dev" ]; + showDeArrowPromotion = false; + segmentListDefaultTab = 0; + renderSegmentsAsChapters = false; + forceChannelCheck = false; + sponsorTimesContributed = 0; + submissionCountSinceCategories = 0; + showTimeWithSkips = true; + disableSkipping = false; + muteSegments = true; + fullVideoSegments = true; + fullVideoLabelsOnThumbnails = true; + manualSkipOnFullVideo = false; + trackViewCount = true; + trackViewCountInPrivate = true; + trackDownvotes = true; + trackDownvotesInPrivate = false; + dontShowNotice = false; + showUpcomingNotice = false; + noticeVisibilityMode = 3; + hideVideoPlayerControls = false; + hideInfoButtonPlayerControls = false; + hideDeleteButtonPlayerControls = false; + hideUploadButtonPlayerControls = false; + hideSkipButtonPlayerControls = false; + hideDiscordLaunches = 0; + hideDiscordLink = false; + supportInvidious = true; + serverAddress = "https =//sponsor.ajay.app"; + minDuration = 0; + skipNoticeDuration = 4; + audioNotificationOnSkip = false; + checkForUnlistedVideos = false; + testingServer = false; + ytInfoPermissionGranted = false; + allowExpirements = true; + showDonationLink = true; + showPopupDonationCount = 0; + showUpsells = true; + showNewFeaturePopups = true; + donateClicked = 0; + autoHideInfoButton = true; + showChapterInfoMessage = true; + darkMode = true; + showCategoryGuidelines = true; + showSegmentNameInChapterBar = true; + showAutogeneratedChapters = true; + showCreatorChapters = true; + useVirtualTime = true; + showSegmentFailedToFetchWarning = true; + allowScrollingToEdit = true; + showDeArrowInSettings = false; + colorPalette = { + red = "#780303"; + white = "#ffffff"; + locked = "#ffc83d"; + }; + }; + }; + }; + +} + diff --git a/modules/web/extensions/ublock.nix b/modules/web/extensions/ublock.nix new file mode 100644 index 0000000..86aaa62 --- /dev/null +++ b/modules/web/extensions/ublock.nix @@ -0,0 +1,93 @@ +{ pkgs, ... }: + +{ + extensions = { + packages = [ pkgs.nur.repos.rycee.firefox-addons.ublock-origin ]; + settings = { + "uBlock0@raymondhill.net".settings = { + userSettings = { + externalLists = "https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/main/list.txt"; + importedLists = [ + "https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/main/list.txt" + ]; + popupPanelSections: 31; + }; + selectedFilterLists = [ + "user-filters" + "ublock-filters" + "ublock-badware" + "ublock-privacy" + "ublock-quick-fixes" + "ublock-unbreak" + "easylist" + "easyprivacy" + "LegitimateURLShortener" + "adguard-spyware-url" + "urlhaus-1" + "curben-phishing" + "plowe-0" + "fanboy-cookiemonster" + "ublock-cookies-easylist" + "fanboy-social" + "fanboy-thirdparty_social" + "easylist-chat" + "easylist-newsletters" + "easylist-notifications" + "ublock-annoyances" + "https://raw.githubusercontent.com/laylavish/uBlockOrigin-HUGE-AI-Blocklist/main/list.txt" + ]; + whitelist = [ + "chrome-extension-scheme" + "moz-extension-scheme" + ]; + dynamicFilteringString = '' + behind-the-scene * * noop + behind-the-scene * inline-script noop + behind-the-scene * 1p-script noop + behind-the-scene * 3p-script noop + behind-the-scene * 3p-frame noop + behind-the-scene * image noop + behind-the-scene * 3p noop + ''; + hostnameSwitchesString = '' + no-large-media: behind-the-scene false + no-csp-reports: * true + no-scripting: * true + no-scripting: duckduckgo.com false + no-scripting: html.duckduckgo.com false + no-scripting: groningenhuurt.mijndak.nl false + no-scripting: brightspace.rug.nl false + no-scripting: signon.rug.nl false + no-scripting: docs.djairo.dev false + no-scripting: git.djairo.dev false + no-scripting: www.buienradar.nl false + no-scripting: www.openstreetmap.org false + no-scripting: qbittorrent.djairo.dev false + no-scripting: backrest.djairo.dev false + no-scripting: dozzle.djairo.dev false + no-scripting: opencloud.djairo.dev false + no-scripting: backrest.m.djairo.dev false + no-scripting: dozzle.m.djairo.dev false + no-scripting: vault.m.djairo.dev false + no-scripting: wg-easy.u.djairo.dev false + no-scripting: invidious.djairo.dev false + no-scripting: radarr.m.djairo.dev false + no-scripting: sonarr.m.djairo.dev false + no-scripting: navidrome.djairo.dev false + no-scripting: navidrome.u.djairo.dev false + no-scripting: mijnzakelijk.belastingdienst.nl false + no-scripting: www.belastingdienst.nl false + no-scripting: www.overleaf.com false + no-scripting: sci-hub.box false + no-scripting: riichi.djairo.dev false + no-scripting: riichi.garfield.sh false + no-scripting: ocasys.rug.nl false + no-scripting: rooster.rug.nl false + no-scripting: www.tumblr.com false + no-scripting: music.youtube.com false + ''; + }; + }; + }; + +} diff --git a/modules/web/extensions/vimium.css b/modules/web/extensions/vimium.css new file mode 100644 index 0000000..6cb5742 --- /dev/null +++ b/modules/web/extensions/vimium.css @@ -0,0 +1,216 @@ +/* Catppuccin Macchiato Palette */ + +:root { + --vimium-rosewater: #f4dbd6; + --vimium-peach: #f5a97f; + --vimium-green: #a6da95; + --vimium-blue: #8aadf4; + --vimium-lavender: #b7bdf8; + --vimium-text: #cad3f5; + --vimium-mauve: #c6a0f6; + --vimium-subtext0: #a5adcb + --vimium-subtext1: #b8c0e0 + --vimium-surface2: #5b6078; + --vimium-surface1: #494d64; + --vimium-surface0: #363a4f; + --vimium-base: #24273a; + --vimium-mantle: #1e2030; + --vimium-crust: #181926; + + --vimium-foreground-text-color: var(--vimium-text); + --vimium-background-text-color: var(--vimium-text); + --vimium-foreground-color: var(--vimium-mantle); +} + +/* link hints */ + +#vimium-hint-marker-container div.internal-vimium-hint-marker, +#vimium-hint-marker-container div.vimiumHintMarker { + padding: 3px 4px; + background: var(--vimium-mauve); + border: 10px; + border-color: var(--vimium-mantle); + box-shadow: none; +} + +#vimium-hint-marker-container div span { + color: var(--vimium-mantle); + text-shadow: none; +} + +#vimium-hint-marker-container div span.matchingCharacter { + color: var(--vimium-surface2); +} + +/* vomnibar */ + +#vomnibar { + background: var(--vimium-base); + border: 2px solid var(--vimium-lavender); + animation: show 200ms cubic-bezier(0, 0, 0.2, 1) forwards; + max-height: calc(100vh - 70px); + overflow: hidden; + border-radius: 10px; +} + +@keyframes show { + 0% { + transform: translateY(50px); + opacity: 0; + } + 100% { + transform: translateY(0); + opacity: 1; + } +} + +#vomnibar input { + color: var(--vimium-text); + background: var(--vimium-base); + border: none; + box-shadow: none; + height: unset; + padding: 16px 30px; +} + +#vomnibar #vomnibar-search-area { + border: none; + padding: unset; + background: var(--vimium-base); +} + +#vomnibar ul { + padding: 0; + margin: 0; + background: var(--vimium-base); + border-top: 1px solid var(--vimium-surface0); +} + +#vomnibar li { + padding: 10px; + border-bottom: 1px solid var(--vimium-surface0); +} + +#vomnibar li .top-half, +#vomnibar li .bottom-half { + padding: 3px 0; +} + +#vomnibar li .source { + color: var(--vimium-mauve); +} + +#vomnibar li em, +#vomnibar li .title { + color: var(--vimium-blue); + font-weight: bold; +} + +#vomnibar li .url { + color: var(--vimium-rosewater); +} + +#vomnibar li .match { + color: var(--vimium-green); + font-weight: bold; +} + +#vomnibar li .title .match { + color: var(--vimium-blue); +} + +#vomnibar li.selected { + background-color: var(--vimium-surface0); +} + +/* search/find hud */ + +div#hud-container { + background: var(--vimium-base); + border: 1px solid var(--vimium-text); + box-shadow: none; +} + +div#hud-container span#hud-find-input, +div#hud-container div#hud { + color: var(--vimium-text); +} + +div#hud-container .hud-find, +div#hud-container #search-area { + background-color: var(--vimium-base); +} + +::selection { + background-color: var(--vimium-peach) !important; + color: var(--vimium-mantle) !important; +} + +/* vimium settings */ + +body.vimium-body header, +body.vimium-body label, +body.vimium-body { + color: var(--vimium-text); + background-color: var(--vimium-base); +} + +body.vimium-body button, +body.vimium-body footer, +body.vimium-body textarea, +body.vimium-body input { + scrollbar-color: var(--vimium-surface2) var(--vimium-surface0); + background-color: var(--vimium-mantle); +} + +body.vimium-body #wrapper .example { + color: var(--vimium-subtext1); +} + +body.vimium-body a { + color: var(--vimium-lavender); +} + +body.vimium-body input, +body.vimium-body button { + border-color: var(--vimium-crust); +} + +body.vimium-body button:focus { + border-color: var(--vimium-blue); +} + +/* help dialog */ + +#dialog { + color: var(--vimium-text); + background: var(--vimium-mantle); +} + +#dialog .divider { + background: var(--vimium-text); +} + +#dialog a, +#dialog span.vim { + color: var(--vimium-blue); +} + +#dialog div.help-description, +#dialog h2, +#dialog h1, +#dialog a#close { + color: var(--vimium-text); +} + +#dialog a#close:hover { + color: var(--vimium-surface0); +} + +#dialog .key, +body.vimium-body .key { + color: var(--vimium-text); + background: var(--vimium-mantle); + border-color: var(--vimium-surface1); +} + diff --git a/modules/web/extensions/vimium.nix b/modules/web/extensions/vimium.nix new file mode 100644 index 0000000..aa1a597 --- /dev/null +++ b/modules/web/extensions/vimium.nix @@ -0,0 +1,54 @@ +{ pkgs, ...}: + +{ + extensions = { + packages = [ pkgs.nur.repos.rycee.firefox-addons.vimium ]; + settings = { + "vimium".settings = { # TODO: check correct + exclusionRules = [ + { passKeys = ""; pattern = "https?://www.overleaf.com/*"} + { passKeys = ""; pattern = "https?://neetcode.io/*"} + ]; + keyMappings = '' + # defaults + unmap R + unmap + map c LinkHints.activateMode action=hover + + # swap local and global marks + map m Marks.activateCreateMode swap + map ' Marks.activateGotoMode swap + + # move tab all the way left/right + map moveTabLeft count=99 + map moveTabRight count=99 + + # scrolling + map D scrollFullPageDown + map U scrollFullPageUp + map a scrollDown count=5 + map d scrollUp count=5 + map J scrollDown count=5 + map K scrollUp count=5 + ''; + newTabCustomUrl = "web.tabliss.io"; + newTabDestination = "customUrl"; + regexFindMode = true; + searchEngines = '' + b: https://bulbapedia.bulbagarden.net/w/index.php?title=Special%3ASearch&search=%s&go=Go Bulbapedia + w: https://www.wikipedia.org/w/index.php?title=Special:Search&search=%s Wikipedia + d: https://duckduckgo.com/?q=%s Duckduckgo + o: https://www.openstreetmap.org/search?query=%s Openstreetmap + g: https://www.google.com/search?q=%s Google + y: https://www.youtube.com/results?search_query=%s Youtube + e: https://www.ecosia.org/search?method=index&q=%s Ecosia + a: https://wiki.archlinux.org/index.php?search=%s Archwiki + ym: https://music.youtube.com/search?q=%s Youtube Music + m: https://www.google.com/maps?q=%s Google maps + ''; + userDefinedLinkHintCss = builtins.readFile ./vimium.css; + }; + }; + }; + +} diff --git a/modules/web/extensions/xkit.nix b/modules/web/extensions/xkit.nix new file mode 100644 index 0000000..bcc459e --- /dev/null +++ b/modules/web/extensions/xkit.nix @@ -0,0 +1,109 @@ +{ pkgs, ...}: + +{ + extensions = { + packages = [ pkgs.nur.repos.rycee.firefox-addons.xkit-rewritten ]; + settings = { + "xkit-rewritten".settings = { # TODO: check correct + enabledScripts = [ + "anti_capitalism" + "vanilla_video" + "vanilla_audio" + "classic_search" + "mass_unliker" + "mutual_checker" + "no_recommended" + "notificationblock" + "open_in_tabs" + "quote_replies" + "trim_reblogs" + "tweaks" + "limit_checker" + "postblock" + "quick_reblog" + ]; + anti_capitalism.preferences.includeBlazed = true; + classic_search.preferences.newTab = false, + collapsed_queue.preferences = { + runInDrafts = false; + runInQueue = true; + }; + mutual_checker.preferences = { + showOnlyMutualNotifications = false; + showOnlyMutuals = false; + }; + no_recommended.preferences = { + hide_answertime = true; + hide_blog_carousels = true; + hide_community_carousels = true; + hide_lightbox_related = true; + hide_radar = true; + hide_recommended_blogs = true; + hide_recommended_blogs_modal = true; + hide_recommended_community_posts = false; + hide_recommended_posts = true; + hide_search_communities = false; + hide_search_community_posts = false; + hide_tag_carousels = true; + }; + panorama.preferences = { + communitiesEnable = true; + expandPostMedia = true; + mainEnable = true; + maxPostWidth = "1280px"; + patioEnable = true; + }; + quick_reblog.preferences = { + alreadyRebloggedEnabled = true; + alreadyRebloggedLimit = "10000"; + popupPosition = "below"; + queueTag = ""; + quickTagsIntegration = true; + reblogTag = ""; + rememberLastBlog = false; + showBlogSelector = true; + showCommentInput = false; + showTagSuggestions = false; + showTagsInput = true; + }; + quote_replies.preferences = { + newTab = false; + tagReplyingBlog = false; + }; + seen_posts.preferences = { + hideSeenPosts = false; + onlyDimAvatars = false; + }; + tweaks.preferences = { + caught_up_line = false; + create_button_no_bubbles = false; + following_tab = false; + hide_activity_mutuals = false; + hide_activity_notification_badge = false; + hide_blaze_tip_labels = true; + hide_blocked_blogs = false; + hide_communities_notification_badge = false; + hide_filtered_posts = false; + hide_follower_counts = false; + hide_following_notification_badge = false; + hide_footer_tooltips = false; + hide_liked_posts = false; + hide_mini_follow = true; + hide_my_posts = false; + hide_new_posts_indicator = true; + highlight_contributed_content = false; + no_focus_shadow = false; + no_live = true; + no_where_were_we = true; + restore_attribution_links = false; + show_all_tags = true; + slim_filtered_screens = false; + subtle_activity_mutuals = false; + unsticky_post_avatars = false; + unsticky_tab_bar = false; + }; + }; + }; + }; + +} diff --git a/modules/web/firefox.nix b/modules/web/firefox.nix index ed24d03..260548a 100644 --- a/modules/web/firefox.nix +++ b/modules/web/firefox.nix @@ -1,46 +1,40 @@ { lib, pkgs, ... }: { - programs.firefox = { + home-manager.users.djai.programs.firefox = { enable = true; - preferences = { - "browser.resistFingerPrinting" = true; - "browser.ipProtection.hasSeenFeature" = true; - "browser.newtab.extensionController" = true; - "browser.startup.homepage" = "moz-extension://cb0256df-d9d4-4624-94a2-b3e2ddc4a3e0/index.html"; - "browser.bookmarks.visibility" = "never"; - "browser.translations.popup" = false; - "privacy.bounceTrackingProtection.mode" = "1"; - "privacy.donottrackheader.enabled" = true; - "privacy.fingerprintingProtection" = true; - "privacy.fingerprintingProtection.overrides" = "+AllTargets,-JSDateTimeUTC"; - "privacy.trackingprotection.enabled" = true; - "reader.color_scheme" = "dark"; - }; - - policies = { - DisableTelemetry = true; - ExtensionSettings = { - "uBlock0@raymondhill.net" = { - installation_mode = "force_installed"; - install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; - }; - - "vimium@vimium.org" = { - installation_mode = "force_installed"; - install_url = "https://addons.mozilla.org/firefox/downloads/latest/vimium/latest.xpi"; - }; - - "addon@darkreader.org" = { # FIXME: does not work - installation_mode = "force_installed"; - install_url = "https://addons.mozilla.org/firefox/downloads/latest/darkreader/latest.xpi"; - }; - - "{446900e4-71c2-419f-a6a7-df9c091e268b}" = { - installation_mode = "force_installed"; - install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi"; + policies.DisableTelemetry = true; + profiles = { + default = { + imports = [ ./extensions ]; + userChrome = builtins.readFile ./userChrome.css; + settings = { + browser = { + resistFingerPrinting = true; + ipProtection.hasSeenFeature = true; + newtab.extensionController = true; + bookmarks.visibility = "never"; + translations.popup = false; + }; + privacy = { + bounceTrackingProtection.mode = 1; + donottrackheader.enabled = true; + baselineFingerprintingProtection = true; + fingerprintingProtection.overrides = "+AllTargets,-JSDateTimeUTC"; + trackingprotection.enabled = true; + }; }; + bookmarks.settings = [ + { name = "Buienalarm Groningen"; url = "https://www.buienalarm.nl/nederland/groningen/10226"; } + { name = "piracy"; + toolbar = false; + bookmarks = [ ]; # TODO: update these + } + ]; + # TODO: test works + extensions.settings."uBlock0@raymondhill.net".settings.hostnameSwitchesString = ""; # override so we don't disable javascript }; }; + }; } diff --git a/modules/web/librewolf.nix b/modules/web/librewolf.nix new file mode 100644 index 0000000..95a0689 --- /dev/null +++ b/modules/web/librewolf.nix @@ -0,0 +1,60 @@ +{ pkgs, ... }: + +let + subdomains = [ + "backrest" + "docs" + "dozzle" + "git" + "git" + "invidious" + "navidrome" + "opencloud" + "qbittorrent" + "radarr" + "riichi" + "sonarr" + "vault" + "wg-easy" + ]; + + generateSelfHosted = urls: [ map (url: { name = url; url ="https://{$url}.djairo.dev"; } ) urls ]; +in +{ + home-manager.users.djai.programs.librewolf = { + enable = true; + profiles = { + default = { + imports = [ + ./extensions + ./extensions/xkit.nix + ./extensions/sponsorblock.nix + ]; + # FIXME: palettes for tumblr does not exist in NUR + extensions.packages = with pkgs.nur.repos.rycee.firefox-addons [ privacy-redirect ]; + userChrome = builtins.readFile ./userChrome.css; + bookmarks.settings = [ + { + name = "self-hosted"; + toolbar = false; + bookmarks = (generateSelfHosted subdomains); + } + { name = "links"; + toolbar = false; + bookmarks = [ + { name = "rooster"; url = "https://rooster.rug.nl"; } + { name = "themis"; url = "https://themis.rug.nl"; } + { name = "brightspace"; url = "https://brightspace.rug.nl"; } + { name = "overleaf"; url = "https://overleaf.com/institutional-login"; } + { name = "doeksen"; url = "https://rederij-doeksen.nl"; } + { name = "tumblr"; url = "https://tumblr.com"; } + { name = "Buienalarm Groningen"; url = "https://www.buienalarm.nl/nederland/groningen/10226"; } + { name = "xkcd"; url = "https://xkcd.com"; } + ]; + } + ]; + }; + }; + + }; +} diff --git a/modules/web/userChrome.css b/modules/web/userChrome.css new file mode 100644 index 0000000..ca762ea --- /dev/null +++ b/modules/web/userChrome.css @@ -0,0 +1,522 @@ +/*---+---+---+---+---+---+ + | G | L | O | B | A | L | + +---+---+---+---+---+---*/ + +:root { + /* Global Border Radius + * applied to ALL UI elements + */ + --uc-border-radius: 8px; + + /* The distance the Statuspanel floats + * away from the window border + * 0 places directly in the corner + */ + --uc-status-panel-spacing: 12px; +} + +/* remove window control buttons */ +.titlebar-buttonbox-container { + display: none !important; +} + +#pageActionButton { + display: none !important; +} + +#PanelUI-menu-button { + padding: 0px !important; +} +#PanelUI-menu-button .toolbarbutton-icon { + width: 1px !important; +} +#PanelUI-menu-button .toolbarbutton-badge-stack { + padding: 0px !important; +} + +/*---+---+---+---+---+---+---+ + | T | O | O | L | B | A | R | + +---+---+---+---+---+---+---*/ + +/* Position of the Personal Toolbar + * possible values: + * 0 – toolbar on top + * 4 – toolbar on bottom + */ +:root { + --uc-toolbar-position: 4; +} + +/* Darken the Personal Toolbar by X amount + * where X = 1 means pure black + * and X = 0 means no darkening at all + */ +@media (prefers-color-scheme: dark) { + :root { + --uc-darken-toolbar: 0.2; + } +} +@media (prefers-color-scheme: light) { + :root { + --uc-darken-toolbar: 0; + } +} + +/*---+---+---+---+---+---+---+ + | U | R | L | — | B | A | R | + +---+---+---+---+---+---+---*/ + +:root { + /* Width of the URL Bar for the Oneline layout + * If enabled the max-width is applied on focus + * otherwise the URL Bar will always be it's min-width + */ + --uc-urlbar-min-width: 100vw; + --uc-urlbar-max-width: 100vw; + + /* Position of the URL Bar + * possible values: + * 1 – tabs on the right + * 3 – tabs on the left + */ + --uc-urlbar-position: 1; + + /* Firefox can be a little wonky with the vertical + * URL Bar placement. Change this variable to adapt + * to this when necessary. + */ + --uc-urlbar-top-spacing: 1px; +} + +/* Disable the Navigation Buttons */ +#back-button, +#forward-button { + display: none !important; +} + +/* Disables the Tracking Protection Shield */ +/* #tracking-protection-icon-container { display: none !important; } */ + +/* Encryption and Permissions icons */ +/* Only hides permission items */ +#identity-permission-box { + display: none !important; +} +/* Hides extension page box */ +#identity-box.extensionPage { + display: none !important; +} +/* Hides encryption AND permission items */ +/* #identity-box { display: none !important } */ + +/* Hide everything BUT the zoom indicator within the URL Bar */ +/* #page-action-buttons > :not(#urlbar-zoom-button) { display: none !important; } */ + +/* Hide the »Go«-arrow in the URL Bar */ +#urlbar-go-button { + display: none !important; +} + +/* Hides the Extensions Menu Icon */ +/* #unified-extensions-button { display: none !important; } */ + +/*---+---+---+---+---+---+---+ + | T | A | B | — | B | A | R | + +---+---+---+---+---+---+---*/ + +:root { + /* Allow tabs to have dynamic widths based on + * the Tab Bars maximum width + */ + --uc-active-tab-width: clamp(100px, 30vw, 300px); + --uc-inactive-tab-width: clamp(100px, 20vw, 200px); + + /* Enable this to always show the Tab Close button + * possible values: + * show: -moz-inline-block + * hide: none + */ + --show-tab-close-button: none; + + /* Enable this to only show the Tab Close button on tab hover + * possible values: + * show: -moz-inline-block + * hide: none + */ + --show-tab-close-button-hover: none; + + /* Hide the all Tabs button from the Tab Bar + * possible values: + * show: -moz-box + * hide: none + */ + --uc-show-all-tabs-button: none; + + /* Left and Right "dip" of the container indicator + * 0px equals tab width + * higer values make the indicator smaller + */ + --container-tabs-indicator-margin: 10px; + + /* Amount of Glow to add to the container indicator + * Setting it to 0 disables the Glow + */ + --uc-identity-glow: 0 1px 10px 1px; +} + +/* Hide the secondary Tab Label + * e.g. playing indicator (the text, not the icon) */ +.tab-secondary-label { + display: none !important; +} + + + +/*---+---+---+---+---+---+---+ + | C | O | L | O | U | R | S | + +---+---+---+---+---+---+---*/ + + +@media (prefers-color-scheme: dark) { :root { + + /* These colours are (mainly) used by the + Container Tabs Plugin */ + --uc-identity-colour-blue: #7ED6DF; + --uc-identity-colour-turquoise: #55E6C1; + --uc-identity-colour-green: #B8E994; + --uc-identity-colour-yellow: #F7D794; + --uc-identity-colour-orange: #F19066; + --uc-identity-colour-red: #FC5C65; + --uc-identity-colour-pink: #F78FB3; + --uc-identity-colour-purple: #786FA6; + + /* Cascades main Colour Scheme */ + --uc-base-colour: #1E2021; + --uc-highlight-colour: #191B1C; + --uc-inverted-colour: #FAFAFC; + --uc-muted-colour: #AAAAAC; + --uc-accent-colour: var(--uc-identity-colour-purple); + +}} + + +@media (prefers-color-scheme: light) { :root { + + /* These colours are (mainly) used by the + Container Tabs Plugin */ + --uc-identity-colour-blue: #1D65F5; + --uc-identity-colour-turquoise: #209FB5; + --uc-identity-colour-green: #40A02B; + --uc-identity-colour-yellow: #E49320; + --uc-identity-colour-orange: #FE640B; + --uc-identity-colour-red: #FC5C65; + --uc-identity-colour-pink: #EC83D0; + --uc-identity-colour-purple: #822FEE; + + /* Cascades main Colour Scheme */ + --uc-base-colour: #FAFAFC; + --uc-highlight-colour: #DADADC; + --uc-inverted-colour: #1E2021; + --uc-muted-colour: #191B1C; + --uc-accent-colour: var(--uc-identity-colour-purple); + +}} + + + + + + +/* Down here I'm just reassigning variables based on the colours set above. + Feel free to play around with these but there is no editing necessary below this line. c: + */ + +:root { + + --lwt-frame: var(--uc-base-colour) !important; + --lwt-accent-color: var(--lwt-frame) !important; + --lwt-text-color: var(--uc-inverted-colour) !important; + + --toolbar-field-color: var(--uc-inverted-colour) !important; + + --toolbar-field-focus-color: var(--uc-inverted-colour) !important; + --toolbar-field-focus-background-color: var(--uc-highlight-colour) !important; + --toolbar-field-focus-border-color: transparent !important; + + --toolbar-field-background-color: var(--lwt-frame) !important; + --lwt-toolbar-field-highlight: var(--uc-inverted-colour) !important; + --lwt-toolbar-field-highlight-text: var(--uc-highlight-colour) !important; + --urlbar-popup-url-color: var(--uc-accent-colour) !important; + + --lwt-tab-text: var(--lwt-text-colour) !important; + + --lwt-selected-tab-background-color: var(--uc-highlight-colour) !important; + + --toolbar-bgcolor: var(--lwt-frame) !important; + --toolbar-color: var(--lwt-text-color) !important; + --toolbarseparator-color: var(--uc-accent-colour) !important; + --toolbarbutton-hover-background: var(--uc-highlight-colour) !important; + --toolbarbutton-active-background: var(--toolbarbutton-hover-background) !important; + + --lwt-sidebar-background-color: var(--lwt-frame) !important; + --sidebar-background-color: var(--lwt-sidebar-background-color) !important; + + --urlbar-box-bgcolor: var(--uc-highlight-colour) !important; + --urlbar-box-text-color: var(--uc-muted-colour) !important; + --urlbar-box-hover-bgcolor: var(--uc-highlight-colour) !important; + --urlbar-box-hover-text-color: var(--uc-inverted-colour) !important; + --urlbar-box-focus-bgcolor: var(--uc-highlight-colour) !important; + +} + + + +.identity-color-blue { --identity-tab-color: var(--uc-identity-colour-blue) !important; --identity-icon-color: var(--uc-identity-colour-blue) !important; } +.identity-color-turquoise { --identity-tab-color: var(--uc-identity-colour-turquoise) !important; --identity-icon-color: var(--uc-identity-colour-turquoise) !important; } +.identity-color-green { --identity-tab-color: var(--uc-identity-colour-green) !important; --identity-icon-color: var(--uc-identity-colour-green) !important; } +.identity-color-yellow { --identity-tab-color: var(--uc-identity-colour-yellow) !important; --identity-icon-color: var(--uc-identity-colour-yellow) !important; } +.identity-color-orange { --identity-tab-color: var(--uc-identity-colour-orange) !important; --identity-icon-color: var(--uc-identity-colour-orange) !important; } +.identity-color-red { --identity-tab-color: var(--uc-identity-colour-red) !important; --identity-icon-color: var(--uc-identity-colour-red) !important; } +.identity-color-pink { --identity-tab-color: var(--uc-identity-colour-pink) !important; --identity-icon-color: var(--uc-identity-colour-pink) !important; } +.identity-color-purple { --identity-tab-color: var(--uc-identity-colour-purple) !important; --identity-icon-color: var(--uc-identity-colour-purple) !important; } + + +/*---+---+---+---+---+---+ + | L | A | Y | O | U | T | + +---+---+---+---+---+---*/ + +:root { + --toolbarbutton-border-radius: var(--uc-border-radius) !important; + --tab-border-radius: var(--uc-border-radius) !important; + --arrowpanel-border-radius: var(--uc-border-radius) !important; +} + +#toolbar-menubar { + &[autohide="true"] { + &[inactive]:not([customizing]) { + width: 0px; + } + } +} + +#main-window, +#toolbar-menubar, +#TabsToolbar, +#navigator-toolbox, +#sidebar-box, +#nav-bar { + box-shadow: none !important; +} + +#main-window, +#toolbar-menubar, +#TabsToolbar, +#PersonalToolbar, +#navigator-toolbox, +#sidebar-box, +#nav-bar { + border: none !important; +} + +/* remove "padding" left and right from tabs */ +.titlebar-spacer { + display: none !important; +} + +/* fix Shield Icon padding */ +#urlbar-input-container[pageproxystate="valid"] + > #tracking-protection-icon-container + > #tracking-protection-icon-box + > #tracking-protection-icon { + padding-bottom: 1px; +} + +#TabsToolbar { + order: 2; +} +#nav-bar { + order: 3; +} + +#PersonalToolbar { + padding: 6px !important; + box-shadow: inset 0 0 50vh rgba(0, 0, 0, var(--uc-darken-toolbar)) !important; + order: var(--uc-toolbar-position); + width: 100%; +} + +#statuspanel #statuspanel-label { + border: none !important; + border-radius: var(--uc-border-radius) !important; +} + + +/*---+---+---+---+---+---+---+---+---+ + | R | E | S | P | O | N | I | V | E | + +---+---+---+---+---+---+---+---+---*/ + +@media (min-width: 1000px) { + #navigator-toolbox { + display: flex; + flex-wrap: wrap; + flex-direction: row; + } + + #nav-bar { + order: var(--uc-urlbar-position); + width: var(--uc-urlbar-min-width); + } + + #nav-bar #urlbar-container { + min-width: 0px !important; + width: auto !important; + } + + #TabsToolbar { + width: calc(100vw - var(--uc-urlbar-min-width) - 1px); + } + + #navigator-toolbox:focus-within #nav-bar { + width: var(--uc-urlbar-max-width); + } + #navigator-toolbox:focus-within #titlebar { + width: calc(100vw - var(--uc-urlbar-max-width) - 1px); + } +} + +/*---+---+---+---+---+---+---+---+ + | F | L | O | A | T | I | N | G | + +---+---+---+---+---+---+---+---*/ + +#statuspanel #statuspanel-label { + margin: 0 0 var(--uc-status-panel-spacing) var(--uc-status-panel-spacing) !important; +} + + + +/*---+---+---+---+---+---+ + | N | A | V | B | A | R | + +---+---+---+---+---+---*/ + +#navigator-toolbox:not(:-moz-lwtheme) { + background: var(--toolbar-field-background-color) !important; +} + +#nav-bar { + padding-block-start: 0px !important; + + border: none !important; + box-shadow: none !important; + background: transparent !important; +} + +#urlbar, +#urlbar * { + outline: none !important; + box-shadow: none !important; +} + +#urlbar-background { + border: transparent !important; +} + +#urlbar[focused="true"] > #urlbar-background, +#urlbar:not([open]) > #urlbar-background { + background: var(--toolbar-field-background-color) !important; +} + +#urlbar[open] > #urlbar-background { + background: var(--toolbar-field-background-color) !important; +} + +.urlbarView-row:hover > .urlbarView-row-inner, +.urlbarView-row[selected] > .urlbarView-row-inner { + background: var(--toolbar-field-focus-background-color) !important; +} + +.urlbar-icon, +#urlbar-go-button { + margin: auto; +} +.urlbar-page-action { + padding: 0 inherit !important; +} + +/* #page-action-buttons, */ +#home-button, +#stop-reload-button { + display: none !important; +} + + +/*---+---+---+---+---+---+ + | N | O | T | A | B | S | + +---+---+---+---+---+---*/ +/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/hide_tabs_toolbar.css made available under Mozilla Public License v. 2.0 +See the above repository for updates as well as full license text. */ + +/* Hides tabs toolbar */ +/* For OSX use hide_tabs_toolbar_osx.css instead */ + +/* Note, if you have either native titlebar or menubar enabled, then you don't really need this style. + * In those cases you can just use: #TabsToolbar{ visibility: collapse !important } + */ + +/* IMPORTANT */ +/* +Get window_control_placeholder_support.css +Window controls will be all wrong without it +*/ + +:root[tabsintitlebar]{ --uc-toolbar-height: 40px; } +:root[tabsintitlebar][uidensity="compact"]{ --uc-toolbar-height: 32px } +#titlebar{ + will-change: unset !important; + transition: none !important; + opacity: 1 !important; +} +#TabsToolbar{ visibility: collapse !important } +:root[sizemode="fullscreen"] #titlebar{ position: relative } + +:root[sizemode="fullscreen"] #TabsToolbar > .titlebar-buttonbox-container{ + visibility: visible !important; + z-index: 2; +} + +:root:not([inFullscreen]) #nav-bar{ + margin-top: calc(0px - var(--uc-toolbar-height,0px)); +} + +:root[tabsintitlebar] #toolbar-menubar[autohide="true"]{ + min-height: unset !important; + height: var(--uc-toolbar-height,0px) !important; + position: relative; +} + +#toolbar-menubar[autohide="false"]{ + margin-bottom: var(--uc-toolbar-height,0px) +} + +:root[tabsintitlebar] #toolbar-menubar[autohide="true"] #main-menubar{ + flex-grow: 1; + align-items: stretch; + background-attachment: scroll, fixed, fixed; + background-position: 0 0, var(--lwt-background-alignment), right top; + background-repeat: repeat-x, var(--lwt-background-tiling), no-repeat; + background-size: auto 100%, var(--lwt-background-size, auto auto), auto auto; + padding-right: 20px; +} +:root[tabsintitlebar] #toolbar-menubar[autohide="true"]:not([inactive]) #main-menubar{ + background-color: var(--lwt-accent-color); + background-image: linear-gradient(var(--toolbar-bgcolor,--toolbar-non-lwt-bgcolor),var(--toolbar-bgcolor,--toolbar-non-lwt-bgcolor)), var(--lwt-additional-images,none), var(--lwt-header-image, none); + mask-image: linear-gradient(to left, transparent, black 20px); +} + +#toolbar-menubar:not([inactive]){ z-index: 2 } +#toolbar-menubar[autohide="true"][inactive] > #menubar-items { + opacity: 0; + pointer-events: none; + margin-left: var(--uc-window-drag-space-pre,0px) +} + +