PageSourceSearch

https://docs.floorp.app/assets/js/87d89376.38271520.js

js floorp.app collected 2026-10-02 04:27:37 UTC 10,355 bytes, 1 lines download raw bytes

1"use strict";(globalThis.webpackChunkfloorp_docs||=[]).push([[5095],{1487(e,n,s){s.r(n),s.d(n,{assets:()=>c,contentTitle:()=>d,default:()=>b,frontMatter:()=>a,metadata:()=>i,toc:()=>h});const i=JSON.parse('{"id":"features/tab-customization","title":"Tab Behavior and Display","description":"Learn how to customize tab switching, opening positions, and other tab settings in Floorp","source":"@site/docs/features/tab-customization.mdx","sourceDirName":"features","slug":"/features/tab-customization","permalink":"/docs/features/tab-customization","draft":false,"unlisted":false,"tags":[],"version":"current","lastUpdatedBy":"Cutter","lastUpdatedAt":1781914870000,"frontMatter":{"title":"Tab Behavior and Display","description":"Learn how to customize tab switching, opening positions, and other tab settings in Floorp"},"sidebar":"tutorialSidebar","previous":{"title":"Tab Bar Layout","permalink":"/docs/features/tab-bar-layout"},"next":{"title":"Web Apps","permalink":"/docs/features/webapps"}}');var t=s(1987),o=s(7008),r=s(264);const l=s.p+"assets/images/tab-customize-476ff00f82b4c8303b4e4f57aa22dd57.webp",a={title:"Tab Behavior and Display",description:"Learn how to customize tab switching, opening positions, and other tab settings in Floorp"},d=void 0,c={},h=[{value:"Customizing Tabs in Floorp",id:"customizing-tabs-in-floorp",level:3},{value:"Customizing Tab Behavior",id:"customizing-tab-behavior",level:3},{value:"Scroll",id:"scroll",level:4},{value:"New Tab Opening Position",id:"new-tab-opening-position",level:4},{value:"Other Settings",id:"other-settings",level:4},{value:"Tab Sleep Exception",id:"tab-sleep-exception",level:4}];function p(e){const n={a:"a",admonition:"admonition",br:"br",code:"code",h3:"h3",h4:"h4",li:"li",p:"p",strong:"strong",ul:"ul",...(0,o.R)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h3,{id:"customizing-tabs-in-floorp",children:"Customizing Tabs in Floorp"}),"\n",(0,t.jsxs)(n.p,{children:["Floorp offers various options for tab pinning, scrolling, new tab opening positions, minimum tab sizes, and closing tabs via double-click.",(0,t.jsx)(n.br,{}),"\n","These options are designed to work seamlessly alongside other tab bar configurations."]}),"\n",(0,t.jsxs)(n.p,{children:["You can modify these settings by navigating to ",(0,t.jsx)(n.strong,{children:"Settings > Tab & Appearance > Tabs"}),"."]}),"\n",(0,t.jsx)("img",{src:l,width:"50%",alt:"Tab Customization"}),"\n",(0,t.jsxs)(n.admonition,{type:"tip",children:[(0,t.jsx)(n.p,{children:"For details on other sections within Floorp Hub > Tabs & Appearance, please check the following articles:"}),(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"/docs/features/interface-and-themes",children:"Interface and Themes"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"/docs/features/tab-bar-layout",children:"Tab Bar Layout"})}),"\n",(0,t.jsx)(n.li,{children:(0,t.jsx)(n.a,{href:"/docs/features/advanced-ui-customization",children:"Advanced UI Customization"})}),"\n"]})]}),"\n",(0,t.jsx)(n.h3,{id:"customizing-tab-behavior",children:"Customizing Tab Behavior"}),"\n",(0,t.jsx)(n.h4,{id:"scroll",children:"Scroll"}),"\n",(0,t.jsx)(n.p,{children:"Configure whether to switch tabs by scrolling the mouse wheel, and how that scrolling behaves."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Switch tabs by scrolling"})}),"\n",(0,t.jsxs)(n.p,{children:["When enabled, you can switch between tabs simply by scrolling on the tab bar.",(0,t.jsx)(n.br,{}),"\n","By default, this feature is disabled, and the tab bar will instead scroll horizontally when tabs overflow."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Reverse tab scroll"})}),"\n",(0,t.jsxs)(n.p,{children:["When enabled, the direction for switching tabs via scrolling is reversed.",(0,t.jsx)(n.br,{}),"\n",'This is disabled by default and requires the "Switch tabs by scrolling" option to be enabled.']}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Loop tab scroll"})}),"\n",(0,t.jsxs)(n.p,{children:["When enabled, scrolling past the last tab wraps around back to the first tab (and vice versa).",(0,t.jsx)(n.br,{}),"\n",'This is disabled by default and requires the "Switch tabs by scrolling" option to be enabled.']}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.admonition,{type:"tip",children:(0,t.jsxs)(n.p,{children:["You can also switch tabs using ",(0,t.jsx)(n.a,{href:"/docs/features/shortcuts-and-palette",children:"keyboard shortcuts"}),", ",(0,t.jsx)(n.a,{href:"/docs/features/mouse-gestures",children:"mouse gestures"}),", and the ",(0,t.jsx)(n.a,{href:"/docs/features/shortcuts-and-palette",children:"command palette"}),"."]})}),"\n",(0,t.jsx)(n.h4,{id:"new-tab-opening-position",children:"New Tab Opening Position"}),"\n",(0,t.jsx)(n.p,{children:"Set the default location where newly opened tabs are placed."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Follow Firefox's behavior"})}),"\n",(0,t.jsxs)(n.p,{children:["The location of new tabs changes dynamically based on how you open a link and your current browsing actions.",(0,t.jsx)(n.br,{}),"\n","This is the default setting."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Open at the end of the tab bar"})}),"\n",(0,t.jsx)(n.p,{children:"Always opens new tabs at the very end of the tab bar."}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Open next to the current tab"})}),"\n",(0,t.jsx)(n.p,{children:"Always opens new tabs immediately to the right of your currently active tab."}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h4,{id:"other-settings",children:"Other Settings"}),"\n",(0,t.jsx)(n.p,{children:"Configure additional preferences such as pinned tab behavior, double-click actions, and dimensions."}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Show pinned tab titles"})}),"\n",(0,t.jsxs)(n.p,{children:["When enabled, pinned tabs will display their text titles alongside their favicons, instead of showing the icon only.",(0,t.jsx)(n.br,{}),"\n","This is disabled by default."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Close tab by double-clicking"})}),"\n",(0,t.jsxs)(n.p,{children:["When enabled, double-clicking the active tab will instantly close it.",(0,t.jsx)(n.br,{}),"\n","This is disabled by default."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Minimum tab width"})}),"\n",(0,t.jsxs)(n.p,{children:["Sets the minimum width of tabs in pixels (px). Note that this is a minimum threshold; tabs may become larger depending on your layout settings.",(0,t.jsx)(n.br,{}),"\n","The default value is ",(0,t.jsx)(n.code,{children:"76"}),"."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:"Minimum tab height"})}),"\n",(0,t.jsxs)(n.p,{children:["Sets the minimum height of tabs in pixels (px). This is a minimum threshold; tabs may become taller depending on your layout settings.",(0,t.jsx)(n.br,{}),"\n","The default value is ",(0,t.jsx)(n.code,{children:"30"}),"."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(n.h4,{id:"tab-sleep-exception",children:"Tab Sleep Exception"}),"\n",(0,t.jsxs)(n.p,{children:["Firefox includes a native feature that automatically unloads tabs from memory when system RAM runs low to prevent browser crashes.",(0,t.jsx)(n.br,{}),"\n","Floorp allows you to specify certain websites to be excluded from this automatic unloading behavior."]}),"\n",(0,t.jsx)(n.p,{children:"You can enter exception patterns using the following formats:"}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.code,{children:"floorp.app"})})}),"\n",(0,t.jsxs)(n.p,{children:["Excludes all URLs containing ",(0,t.jsx)(n.code,{children:"floorp.app"})," from being automatically unloaded."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.code,{children:"*.floorp.app"})})}),"\n",(0,t.jsxs)(n.p,{children:["Excludes subdomains of ",(0,t.jsx)(n.code,{children:"floorp.app"})," (such as ",(0,t.jsx)(n.code,{children:"docs.floorp.app"})," or ",(0,t.jsx)(n.code,{children:"blog.floorp.app"}),") from being unloaded. Note that the main domain ",(0,t.jsx)(n.code,{children:"floorp.app"}
1)," itself is not excluded by this specific pattern."]}),"\n"]}),"\n",(0,t.jsxs)(n.li,{children:["\n",(0,t.jsx)(n.p,{children:(0,t.jsx)(n.strong,{children:(0,t.jsx)(n.code,{children:"https://docs.floorp.app/*"})})}),"\n",(0,t.jsxs)(n.p,{children:["Excludes all pages residing within ",(0,t.jsx)(n.code,{children:"docs.floorp.app"})," from being automatically unloaded."]}),"\n"]}),"\n"]}),"\n",(0,t.jsx)(r.A,{})]})}function b(e={}){const{wrapper:n}={...(0,o.R)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},264(e,n,s){s(1763);var i=s(8174),t=s(5915),o=s(1987);const r=()=>(0,o.jsxs)("div",{children:[(0,o.jsx)("h2",{children:(0,o.jsx)(t.A,{children:"Need Support?"})}),(0,o.jsxs)("ul",{children:[(0,o.jsx)("li",{children:(0,o.jsx)(i.A,{to:"https://discord.floorp.app",children:(0,o.jsx)(t.A,{children:"Discord (Floorp Projects)"})})}),(0,o.jsx)("li",{children:(0,o.jsx)(i.A,{to:"https://x.com/Floorp_Browser",children:"X (@Floorp_Browser)"})}),(0,o.jsx)("li",{children:(0,o.jsx)(i.A,{to:"https://reddit.com/r/Floorp",children:"Reddit (r/Floorp)"})}),(0,o.jsx)("li",{children:(0,o.jsx)(i.A,{to:"https://misskey.io/@[email protected]",children:"Misskey.io (@[email protected])"})})]})]});s.d(n,["A",0,r])},7008(e,n,s){s.d(n,{R:()=>r,x:()=>l});var i=s(1763);const t={},o=i.createContext(t);function r(e){const n=i.useContext(o);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.