From 670a756cff661ae687159488f546c5d51e501074 Mon Sep 17 00:00:00 2001 From: Anish Lakhwara Date: Tue, 27 Sep 2022 22:13:16 +1000 Subject: [PATCH] various updates - nvim fixes - firefox updates - stop breaking sxhkdrc --- profiles/desktop/default.nix | 8 + users/profiles/desktop/sxhkdrc | 15 +- users/profiles/firefox/default.nix | 9 +- users/profiles/firefox/sidebery.css | 135 ++++++++ users/profiles/firefox/userChrome.css | 395 +++++++--------------- users/profiles/firefox/userChrome.css.bak | 275 +++++++++++++++ users/profiles/nvim/default.nix | 45 ++- 7 files changed, 591 insertions(+), 291 deletions(-) create mode 100644 users/profiles/firefox/sidebery.css create mode 100644 users/profiles/firefox/userChrome.css.bak diff --git a/profiles/desktop/default.nix b/profiles/desktop/default.nix index 5b74f204..bf3ab557 100644 --- a/profiles/desktop/default.nix +++ b/profiles/desktop/default.nix @@ -1,5 +1,12 @@ { config, pkgs, lib, ... }: let + tex = (pkgs.texlive.combine { + inherit (pkgs.texlive) scheme-basic + dvisvgm dvipng# for preview and export as html + wrapfig amsmath ulem hyperref capt-of; + #(setq org-latex-compiler "lualatex") + #(setq org-preview-latex-default-process 'dvisvgm) + }); dracula-gtk = pkgs.fetchFromGitHub { owner = "dracula"; repo = "gtk"; @@ -72,6 +79,7 @@ in calendar-cli wyrd tootle + tex ]; diff --git a/users/profiles/desktop/sxhkdrc b/users/profiles/desktop/sxhkdrc index 107384f4..21f3101b 100644 --- a/users/profiles/desktop/sxhkdrc +++ b/users/profiles/desktop/sxhkdrc @@ -18,15 +18,6 @@ super + Return ctrl + super + Return xst -e bash -c "(tmux ls | grep -qEv 'attached|scratch' && tmux at) || tmux" -# Open a disposable, floating terminal window, for quick shell commands. -super + grave - scratch - -# Open a disposable scratch buffer in a floating Emacs window, to run arbitrary -# code or quickly note something down. -super + shift + grave - emacsclient --eval "(open-scratch-frame)" - super + space rofi -show drun -modi drun,run -show-icons -theme theme/appmenu.rasi @@ -34,7 +25,7 @@ super + Tab rofi -show window -show-icons -theme theme/windowmenu.rasi super + e - rofimoji --rofi-args "-theme theme/emojimenu.rasi" --skin-tone moderate --action copy + rofimoji --selector-args "-theme theme/emojimenu.rasi" --skin-tone moderate --action copy super + p passmenu @@ -45,8 +36,8 @@ super + s super + o screenshot -super + Escape - pkill -USR1 -x sxhkd +# super + Escape +# pkill -USR1 -x sxhkd super + n xkblayout-state set +1 diff --git a/users/profiles/firefox/default.nix b/users/profiles/firefox/default.nix index 709dde8d..37410245 100644 --- a/users/profiles/firefox/default.nix +++ b/users/profiles/firefox/default.nix @@ -4,7 +4,8 @@ # Imperative steps: # - Enable & configure plugins # - Run :colourscheme --url https://raw.githubusercontent.com/lonepie/dracula-tridactyl/main/dracula.css dracula for tridactyl theme - # - Import css for tree style tabs from treestyletabs.css + # - Import css for sidebery from sidebery.css + # - Configure wallabagger, shaarli, grasp programs.browserpass.enable = true; programs.browserpass.browsers = [ "firefox" ]; @@ -12,15 +13,17 @@ programs.firefox = { enable = true; extensions = with pkgs.nur.repos.rycee.firefox-addons; [ + # Find extensions: https://github.com/nix-community/nur-combined/blob/master/repos/rycee/pkgs/firefox-addons/generated-firefox-addons.nix ublock-origin wallabagger - tree-style-tab + # tree-style-tab tridactyl promnesia + sidebery (buildFirefoxXpiAddon { pname = "shaarli"; version = "2.0.0"; - addonId = "{f59a7028-b71f-490d-844e-f781a11ffbc7}"; + addonId = "shaarli@imirhil.fr"; url = "https://addons.mozilla.org/firefox/downloads/file/815126/shaarli-2.0.0.xpi"; sha256 = "W/OpvOfMclibP6LeG573/DlMs0p8fF0efyd+i8Sudgg="; meta = { }; diff --git a/users/profiles/firefox/sidebery.css b/users/profiles/firefox/sidebery.css new file mode 100644 index 00000000..9f2188ea --- /dev/null +++ b/users/profiles/firefox/sidebery.css @@ -0,0 +1,135 @@ +/* ROOT */ + +#root { + /* Tab and PinnedTab height adjustment */ + --tabs-height: 33px; + --tabs-pinned-height: var(--tabs-height); + /* Dark Theme base settings */ + --bg: #1f2430 !important; + --tabs-fg: #d4d4d4 !important; + --tabs-bg-hover: #3b3948 !important; + --tabs-activated-bg: #5b5b66 !important; + --nav-btn-activated-bg: #1f222f !important; +} + +#root .Tab { + --tabs-indent: 7px; +} + +/* TABS */ + +.Tab .lvl-wrapper:after { + display: none; +} + +.Tab { +margin: auto; + width: 94%; + border-radius: 3px; +} + +.Tab .close > svg:hover { + /* Styling the tab close button */ + border-radius: 3px; + background: #492121 !important; + opacity: 100%; +} + +.Tab .title { + overflow: hidden !important; +} + + +/* PINNED TABS */ + +.PinnedDock { + background-color: var(--bg) !important; +} + +.PinnedTab { + margin: 5px 0px 4px 6px; + border-radius: 3px; +} + + +/* NAV BAR */ + +.NavigationBar { + height: 41px !important; + padding: 4.5px 0px 0px 4.5px !important; + background-color: #2B2A33 !important; + margin-bottom: 5px; +} + +.NavigationBar .panel-btn:hover { + border-radius: 3px !important; + background-color: var(--tabs-bg-hover) !important; +} + +.NavigationBar .panel-btn[data-active="true"] { + border-radius: 3px !important; + background-color: var(--bg) !important; +} + +.NavigationBar .panel-btn[data-active="true"]:hover { + border-radius: 3px !important; + background-color: var(--tabs-bg-hover) !important; +} + +.NavigationBar .panel-btn > svg, +.NavigationBar .panel-btn > img { + fill: #f2f2f2 !important; +} + + +/* SIDEBAR HACK PATCHES */ + +@media (max-width: 50px) { + /* Fix to tab tree identation when minimised */ + #root:not(:hover) .Tab { + --tabs-indent: 0px; + } + + .Tab[data-lvl] > div.lvl-wrapper { + right: -2px; + } + + .Tab { + max-width: 34px; + } + + .Tab .fav { + z-index: 1; + } + + .Tab .audio { + z-index: 1; + margin-left: -12px; + height: 26px; + } + + .Tab .title { + display: none; + } + + .PinnedTab { + margin-left: 5px; + } + + .NavigationBar .settings-btn { + display: none; + } +} + + +/* OPTIONS */ + +/* Disable these two snippets below to make pinned tabs wrap when minimised */ +.PinnedDock { + flex-wrap: nowrap! important; +} + +.PinnedTab { + overflow: hidden !important; + min-width: var(--tabs-pinned-width) !important; +} diff --git a/users/profiles/firefox/userChrome.css b/users/profiles/firefox/userChrome.css index 57997e6f..49fa8230 100644 --- a/users/profiles/firefox/userChrome.css +++ b/users/profiles/firefox/userChrome.css @@ -1,276 +1,125 @@ -/* @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); */ +@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); -@-moz-document url(chrome://browser/content/browser.xul), - url(chrome://browser/content/browser.xhtml) -{ - /*** TREE STYLE TABS ***/ - /* Hide main tabs toolbar */ - #TabsToolbar { - visibility: collapse !important; - } - /* Sidebar min and max width removal */ - :root { - /* expanded width of the sidebar. - used for userChrome-static, and hover */ - --sidebar-width: 250px; - /* initial width of the sidebar. - advised not to change since tst css relies on this value*/ - --sidebar-collapsed-width: 60px; - } - - #sidebar-box { - z-index: 1000 !important; - position: relative !important; - min-width: var(--sidebar-collapsed-width) !important; - max-width: var(--sidebar-collapsed-width) !important; - } - - #sidebar-header, - #sidebar-splitter { - display: none !important; - } - - /* inner width = expanded width & move inner to only show initial-width long section */ - #sidebar-box #sidebar { - position: absolute !important; - min-width: var(--sidebar-width) !important; - max-width: var(--sidebar-width) !important; - width: var(--sidebar-width) !important; - transform: translateX(calc(var(--sidebar-collapsed-width) - var(--sidebar-width))); - transition: all var(--transition-time) var(--ease-out); - } - - /* move inner to show entire sidebar */ - #sidebar-box #sidebar:hover { - transform: translateX(0) !important; - box-shadow: 2px 0 33px -3px var(--sidebar-shadow-color); - } - - #sidebar-box[sidebarcommand="viewBookmarksSidebar"] #sidebar { - transform: translateX(0) !important; - box-shadow: 2px 0 33px -3px var(--sidebar-shadow-color); - } - /* hide sidebar header for tree style tabs sidebar */ - #sidebar-box #sidebar-header { - display: none; - } - - #sidebar { - border-right: solid var(--dividers) var(--sidebar-shadow-color) !important; - } - - toolbar { - border: none !important; - } - - #tabbrowser-arrowscrollbox { - margin: 7px 14px 7px 14px; - } - - .tabbrowser-tab::after { - border: none !important; - } - - .tab-background .tab-line, - .tab-background .tab-bottom-line { - display: none; - } - - tab[selected="true"] > .tab-stack > .tab-background { - background: var(--tl-tab-background-gradient, var(--arrowpanel-dimmed-further)) !important; - } - - tab:not([selected="true"]) > .tab-stack:hover > .tab-background { - background: var(--arrowpanel-background) !important; - } - - .tab-stack { - border-radius: 7px; - margin-right: 5px; - overflow: hidden; - } - - .tab-stack .tab-icon-image, - .tab-stack .tab-label-container { - transform: translateX(0px); - transition: all var(--tl-animation-duration) var(--ease-out) !important; - } - - .tab-stack .tab-icon-image { - transition-duration: calc(var(--tl-animation-duration) * 2) !important; - } - - tab:not([pinned="true"]) .tab-stack:hover .tab-icon-image { - transform: translateX(-25px) !important; - } - - .tab-stack:hover .tab-label-container { - transform: translateX(-23px) !important; - } - - /* containers */ - tab:not([selected="true"]).identity-color-blue > .tab-stack, - tab:not([selected="true"]).identity-color-orange > .tab-stack, - tab:not([selected="true"]).identity-color-green > .tab-stack, - tab:not([selected="true"]).identity-color-pink > .tab-stack{ - border-radius: 0 0 7px 7px !important; - } - - tab[selected="true"].identity-color-blue > .tab-stack .tab-label-container, - tab[selected="true"].identity-color-orange > .tab-stack .tab-label-container, - tab[selected="true"].identity-color-green > .tab-stack .tab-label-container, - tab[selected="true"].identity-color-pink > .tab-stack .tab-label-container{ - color: #000 !important; - } - - /* blue */ - tab[selected="true"].identity-color-blue > .tab-stack > .tab-background{ - background: linear-gradient(to right, #3182CE , #0BC5EA) !important; - } - - tab:not([selected="true"]).identity-color-blue > .tab-stack > .tab-background{ - border-top: solid 4px #63B3ED !important; - } - - /* orange */ - tab[selected="true"].identity-color-orange > .tab-stack > .tab-background{ - background: linear-gradient(to right, #DD6B20 , #F56565) !important; - } - - tab:not([selected="true"]).identity-color-orange > .tab-stack > .tab-background{ - border-top: solid 4px #F6AD55 !important; - } - - /* green */ - tab[selected="true"].identity-color-green > .tab-stack > .tab-background{ - background: linear-gradient(to right, #38A169 , #38B2AC) !important; - } - - tab:not([selected="true"]).identity-color-green > .tab-stack > .tab-background{ - border-top: solid 4px #68D391 !important; - } - - /* pink */ - tab[selected="true"].identity-color-pink > .tab-stack > .tab-background{ - background: linear-gradient(to right, #D53F8C , #9F7AEA) !important; - } - - tab:not([selected="true"]).identity-color-pink > .tab-stack > .tab-background{ - border-top: solid 4px #F687B3 !important; - } - - - .tab-stack .tab-close-button { - border-radius: 50%; - margin-left: -20px !important; - background: var(--lwt-text-color); - fill: var(--lwt-accent-color) !important; - transform: translateX(30px) !important; - transition: all var(--tl-animation-duration) var(--ease-out) !important; - } - - .tab-stack:hover .tab-close-button { - transform: translateX(0px) !important; - } - -#tabbrowser-tabs[closebuttons="activetab"] > #tabbrowser-arrowscrollbox > -.tabbrowser-tab > .tab-stack > .tab-content > .tab-close-button:not([selected="true"]){ - display: block !important; -} - - /* hide tabs */ - .tabbrowser-tab { - display: none; - } - - #tabs-newtab-button { - display: none; - } - - .titlebar-spacer { - display: none !important; - } - - - /*** TAB BAR ***/ - /* Ensure tab doesn't show through auto-completion popup */ - .tabbrowser-tab { z-index: 0 !important; } - /* Ensure tab "spacers" don't show through the completion window */ - #tabbrowser-arrowscrollbox > spacer { z-index: -1 !important; } - #mainPopupSet { z-index: 9999 !important; } - - /* Hide tabbar if only one tab */ - @import url(./css/tabs-hide-if-only-one.css); - - - /* Remove the colored overline on the focused tab */ - .tabbrowser-tab .tab-line { background: none !important; } - - /* Replace favicon on tabs with close button on mouse hover */ - .tabbrowser-tab:not(:hover) .tab-close-button, - .tabbrowser-tab:not([pinned]):hover .tab-icon-image { display: none !important; } - .tabbrowser-tab:not([pinned]):hover .tab-close-button { display:block !important; } - - .tabbrowser-tab:hover .tab-throbber, - .tabbrowser-tab:hover .tab-icon-image, - .tabbrowser-tab:hover .tab-sharing-icon-overlay, - .tabbrowser-tab:hover .tab-icon-overlay, - .tabbrowser-tab:hover .tab-label-container, - .tabbrowser-tab:hover .tab-icon-sound { - -moz-box-ordinal-group: 2 !important; - } - - .tabbrowser-tab .tab-close-button { - margin-left: -2px !important; - margin-right: 4px !important; - } - - .tab-close-button:hover { - fill-opacity: 0 !important; - } - - .tabbrowser-tab::after, - .tabbrowser-tab::before { - border-left: none !important; - border-right: none !important; - } - - .scrollbutton-up[orient="horizontal"]~spacer { border-width: 0px; opacity: 0 } - - - /*** NAV BAR ***/ - /* Hide urlbar */ - #nav-bar { - position: relative !important; - z-index: 2 !important; - height: 2px !important; - min-height: 2px !important; - margin-bottom: -2px !important; - opacity: 0 !important; - border: none !important; - } - - /* But unfocus it when we invoke it with ctrl+L */ - #nav-bar:focus-within { - height: auto !important; - margin-bottom: 0px !important; - opacity: 1 !important; - overflow: show !important; - } - - #urlbar-container { - min-height: 0 !important; - } - - #urlbar { - top: 0 !important; - } - - #urlbar-input-container { - height: 28px !important; - } - - /*** Load local overrides ***/ - @import url(./userChrome.local.css); +/* Hide main tabs toolbar */ +#TabsToolbar { + visibility: collapse !important; } +/*** NAV BAR ***/ +/* Hide urlbar */ +#nav-bar { + position: relative !important; + z-index: 2 !important; + height: 2px !important; + min-height: 2px !important; + margin-bottom: -2px !important; + opacity: 0 !important; + border: none !important; +} + +/* But unfocus it when we invoke it with ctrl+L */ +#nav-bar:focus-within { + height: auto !important; + margin-bottom: 0px !important; + opacity: 1 !important; + overflow: show !important; +} + +#urlbar-container { + min-height: 0 !important; +} + +#urlbar { + top: 0 !important; +} + +#urlbar-input-container { + height: 28px !important; +} + +/* hides the sidebar header */ +#sidebar-header { + display: none !important; +} + +.tab[selected="true"] { + visibility: collapse; +} + +.tabbrowser-tab { + visibility: collapse; +} + +.tabbrowser-tab[visuallyselected="true"] { + visibility: collapse; +} + +/* Credits to https://github.com/MrOtherGuy for hthe following snippet*/ + +/* Source file https://github.com/MrOtherGuy/firefox-csshacks/tree/master/chrome/autohide_sidebar.css made available under Mozilla Public License v. 2.0 +See the above repository for updates as well as full license text. */ + +/* Show sidebar only when the cursor is over it */ +/* The border controlling sidebar width will be removed so you'll need to modify these values to change width */ + +#sidebar-box{ + --uc-sidebar-width: 44px; /* Only thing I (gale) changed */ + --uc-sidebar-hover-width: 210px; + --uc-autohide-sidebar-delay: 600ms; /* Wait 0.6s before hiding sidebar */ + position: relative; + min-width: var(--uc-sidebar-width) !important; + width: var(--uc-sidebar-width) !important; + max-width: var(--uc-sidebar-width) !important; + z-index:1; +} + +#sidebar-box[positionend]{ direction: rtl } +#sidebar-box[positionend] > *{ direction: ltr } + +#sidebar-box[positionend]:-moz-locale-dir(rtl){ direction: ltr } +#sidebar-box[positionend]:-moz-locale-dir(rtl) > *{ direction: rtl } + +#main-window[sizemode="fullscreen"] #sidebar-box{ --uc-sidebar-width: 1px; } + +#sidebar-splitter{ display: none } + +#sidebar-header{ overflow: hidden; /*color: var(--chrome-color, inherit) !important*/} + +#sidebar{ + transition: min-width 115ms linear var(--uc-autohide-sidebar-delay) !important; + min-width: var(--uc-sidebar-width) !important; + will-change: min-width; +} + +#sidebar-box:hover > #sidebar{ min-width: var(--uc-sidebar-hover-width) !important; transition-delay: 0ms !important } + +.sidebar-panel{ + /*background-color: transparent !important; + color: var(--newtab-text-primary-color) !important;*/ +} + +.sidebar-panel #search-box{ + -moz-appearance: none !important; + /*background-color: rgba(249,249,250,0.1) !important; + color: inherit !important; + */ +} + +/* Add sidebar divider and give it background */ + +#sidebar, +#sidebar-header{ + /*background-color: inherit !important;*/ + border-inline: 1px solid rgb(80,80,80); + border-inline-width: 0px 1px; +} + +#sidebar-box:not([positionend]) > :-moz-locale-dir(rtl), +#sidebar-box[positionend] > *{ + border-inline-width: 1px 0px; +} + +/* Move statuspanel to the other side when sidebar is hovered so it doesn't get covered by sidebar */ + +#sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel{ inset-inline: auto 0px !important; } +#sidebar-box:not([positionend]):hover ~ #appcontent #statuspanel-label{ margin-inline: 0px !important; border-left-style: solid !important; } diff --git a/users/profiles/firefox/userChrome.css.bak b/users/profiles/firefox/userChrome.css.bak new file mode 100644 index 00000000..35680185 --- /dev/null +++ b/users/profiles/firefox/userChrome.css.bak @@ -0,0 +1,275 @@ +/* @namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"); */ + +@-moz-document url(chrome://browser/content/browser.xul), + url(chrome://browser/content/browser.xhtml) +{ + /*** TREE STYLE TABS ***/ + /* Hide main tabs toolbar */ + #TabsToolbar { + visibility: collapse !important; + } + /* Sidebar min and max width removal */ + :root { + /* expanded width of the sidebar. + used for userChrome-static, and hover */ + --sidebar-width: 250px; + /* initial width of the sidebar. + advised not to change since tst css relies on this value*/ + --sidebar-collapsed-width: 60px; + } + + #sidebar-box { + z-index: 1000 !important; + position: relative !important; + min-width: var(--sidebar-collapsed-width) !important; + max-width: var(--sidebar-collapsed-width) !important; + } + + #sidebar-header, + #sidebar-splitter { + display: none !important; + } + + /* inner width = expanded width & move inner to only show initial-width long section */ + #sidebar-box #sidebar { + position: absolute !important; + min-width: var(--sidebar-width) !important; + max-width: var(--sidebar-width) !important; + width: var(--sidebar-width) !important; + transform: translateX(calc(var(--sidebar-collapsed-width) - var(--sidebar-width))); + transition: all var(--transition-time) var(--ease-out); + } + + /* move inner to show entire sidebar */ + #sidebar-box #sidebar:hover { + transform: translateX(0) !important; + box-shadow: 2px 0 33px -3px var(--sidebar-shadow-color); + } + + #sidebar-box[sidebarcommand="viewBookmarksSidebar"] #sidebar { + transform: translateX(0) !important; + box-shadow: 2px 0 33px -3px var(--sidebar-shadow-color); + } + /* hide sidebar header for tree style tabs sidebar */ + #sidebar-box #sidebar-header { + display: none; + } + + #sidebar { + border-right: solid var(--dividers) var(--sidebar-shadow-color) !important; + } + + toolbar { + border: none !important; + } + + #tabbrowser-arrowscrollbox { + margin: 7px 14px 7px 14px; + } + + .tabbrowser-tab::after { + border: none !important; + } + + .tab-background .tab-line, + .tab-background .tab-bottom-line { + display: none; + } + + tab[selected="true"] > .tab-stack > .tab-background { + background: var(--tl-tab-background-gradient, var(--arrowpanel-dimmed-further)) !important; + } + + tab:not([selected="true"]) > .tab-stack:hover > .tab-background { + background: var(--arrowpanel-background) !important; + } + + .tab-stack { + border-radius: 7px; + margin-right: 5px; + overflow: hidden; + } + + .tab-stack .tab-icon-image, + .tab-stack .tab-label-container { + transform: translateX(0px); + transition: all var(--tl-animation-duration) var(--ease-out) !important; + } + + .tab-stack .tab-icon-image { + transition-duration: calc(var(--tl-animation-duration) * 2) !important; + } + + tab:not([pinned="true"]) .tab-stack:hover .tab-icon-image { + transform: translateX(-25px) !important; + } + + .tab-stack:hover .tab-label-container { + transform: translateX(-23px) !important; + } + + /* containers */ + tab:not([selected="true"]).identity-color-blue > .tab-stack, + tab:not([selected="true"]).identity-color-orange > .tab-stack, + tab:not([selected="true"]).identity-color-green > .tab-stack, + tab:not([selected="true"]).identity-color-pink > .tab-stack{ + border-radius: 0 0 7px 7px !important; + } + + tab[selected="true"].identity-color-blue > .tab-stack .tab-label-container, + tab[selected="true"].identity-color-orange > .tab-stack .tab-label-container, + tab[selected="true"].identity-color-green > .tab-stack .tab-label-container, + tab[selected="true"].identity-color-pink > .tab-stack .tab-label-container{ + color: #000 !important; + } + + /* blue */ + tab[selected="true"].identity-color-blue > .tab-stack > .tab-background{ + background: linear-gradient(to right, #3182CE , #0BC5EA) !important; + } + + tab:not([selected="true"]).identity-color-blue > .tab-stack > .tab-background{ + border-top: solid 4px #63B3ED !important; + } + + /* orange */ + tab[selected="true"].identity-color-orange > .tab-stack > .tab-background{ + background: linear-gradient(to right, #DD6B20 , #F56565) !important; + } + + tab:not([selected="true"]).identity-color-orange > .tab-stack > .tab-background{ + border-top: solid 4px #F6AD55 !important; + } + + /* green */ + tab[selected="true"].identity-color-green > .tab-stack > .tab-background{ + background: linear-gradient(to right, #38A169 , #38B2AC) !important; + } + + tab:not([selected="true"]).identity-color-green > .tab-stack > .tab-background{ + border-top: solid 4px #68D391 !important; + } + + /* pink */ + tab[selected="true"].identity-color-pink > .tab-stack > .tab-background{ + background: linear-gradient(to right, #D53F8C , #9F7AEA) !important; + } + + tab:not([selected="true"]).identity-color-pink > .tab-stack > .tab-background{ + border-top: solid 4px #F687B3 !important; + } + + + .tab-stack .tab-close-button { + border-radius: 50%; + margin-left: -20px !important; + background: var(--lwt-text-color); + fill: var(--lwt-accent-color) !important; + transform: translateX(30px) !important; + transition: all var(--tl-animation-duration) var(--ease-out) !important; + } + + .tab-stack:hover .tab-close-button { + transform: translateX(0px) !important; + } + +#tabbrowser-tabs[closebuttons="activetab"] > #tabbrowser-arrowscrollbox > +.tabbrowser-tab > .tab-stack > .tab-content > .tab-close-button:not([selected="true"]){ + display: block !important; +} + + /* hide tabs */ + .tabbrowser-tab { + display: none; + } + + #tabs-newtab-button { + display: none; + } + + .titlebar-spacer { + display: none !important; + } + + + /*** TAB BAR ***/ + /* Ensure tab doesn't show through auto-completion popup */ + .tabbrowser-tab { z-index: 0 !important; } + /* Ensure tab "spacers" don't show through the completion window */ + #tabbrowser-arrowscrollbox > spacer { z-index: -1 !important; } + #mainPopupSet { z-index: 9999 !important; } + + /* Hide tabbar if only one tab */ + @import url(./css/tabs-hide-if-only-one.css); + + + /* Remove the colored overline on the focused tab */ + .tabbrowser-tab .tab-line { background: none !important; } + + /* Replace favicon on tabs with close button on mouse hover */ + .tabbrowser-tab:not(:hover) .tab-close-button, + .tabbrowser-tab:not([pinned]):hover .tab-icon-image { display: none !important; } + .tabbrowser-tab:not([pinned]):hover .tab-close-button { display:block !important; } + + .tabbrowser-tab:hover .tab-throbber, + .tabbrowser-tab:hover .tab-icon-image, + .tabbrowser-tab:hover .tab-sharing-icon-overlay, + .tabbrowser-tab:hover .tab-icon-overlay, + .tabbrowser-tab:hover .tab-label-container, + .tabbrowser-tab:hover .tab-icon-sound { + -moz-box-ordinal-group: 2 !important; + } + + .tabbrowser-tab .tab-close-button { + margin-left: -2px !important; + margin-right: 4px !important; + } + + .tab-close-button:hover { + fill-opacity: 0 !important; + } + + .tabbrowser-tab::after, + .tabbrowser-tab::before { + border-left: none !important; + border-right: none !important; + } + + .scrollbutton-up[orient="horizontal"]~spacer { border-width: 0px; opacity: 0 } + + + /*** NAV BAR ***/ + /* Hide urlbar */ + #nav-bar { + position: relative !important; + z-index: 2 !important; + height: 2px !important; + min-height: 2px !important; + margin-bottom: -2px !important; + opacity: 0 !important; + border: none !important; + } + + /* But unfocus it when we invoke it with ctrl+L */ + #nav-bar:focus-within { + height: auto !important; + margin-bottom: 0px !important; + opacity: 1 !important; + overflow: show !important; + } + + #urlbar-container { + min-height: 0 !important; + } + + #urlbar { + top: 0 !important; + } + + #urlbar-input-container { + height: 28px !important; + } + + /*** Load local overrides ***/ + @import url(./userChrome.local.css); +} diff --git a/users/profiles/nvim/default.nix b/users/profiles/nvim/default.nix index 70eee425..fb09bd15 100644 --- a/users/profiles/nvim/default.nix +++ b/users/profiles/nvim/default.nix @@ -108,6 +108,36 @@ let sha256 = "Dlzfp3CZTzq8zQeHByWf3ER6/Em+KNGYNI4Z17ui8Lc="; }; }; + my-marks = pkgs.vimUtils.buildVimPluginFrom2Nix { + pname = "marks"; + version = "2022-08-31"; + src = pkgs.fetchFromGitHub { + owner = "chentoast"; + repo = "marks.nvim"; + rev = "b27cbb78e9082229590b396d3ae4fe07f1aeafe0"; + sha256 = "XdbgIWuAHNdTfyKDrKmQVq5oSbBoi56DpwtgOqhScAk="; + }; + }; + my-gitsigns = pkgs.vimUtils.buildVimPluginFrom2Nix { + pname = "gitsigns"; + version = "v0.5"; + src = pkgs.fetchFromGitHub { + owner = "lewis6991"; + repo = "gitsigns.nvim"; + rev = "f98c85e7c3d65a51f45863a34feb4849c82f240f"; + sha256 = "FgNSwvW7Bk+eKutMj0zqEorJ3+ijCALtOXs2OYiSX1I="; + }; + }; + my-fterm = pkgs.vimUtils.buildVimPluginFrom2Nix { + pname = "fterm"; + version = "2022-07-22"; + src = pkgs.fetchFromGitHub { + owner = "numToStr"; + repo = "FTerm.nvim"; + rev = "efd10656724a269e21ba68d65e2b058a4e606424"; + sha256 = "rR6KDwj58aYfyaSsoUy75536SdBhk394yspCUl/hzfE="; + }; + }; }; my-python-packages = python-packages: with python-packages; [ @@ -220,6 +250,13 @@ in " tidal nvim terminal let g:tidal_target = "terminal" + " latex + " let g:tex_flavor='latex' + " let g:vimtex_view_method='zathura' + " let g:vimtex_quickfix_mode=0 + " set conceallevel=1 + " let g:tex_conceal='abdmg' + " telescope " Find files using Telescope command-line sugar. nnoremap ff Telescope find_files @@ -714,6 +751,7 @@ in nodePackages.typescript nodePackages.typescript-language-server ]; + plugins = with pkgs.vimPlugins // customPlugins; [ # ui fzf-vim @@ -731,10 +769,10 @@ in nvim-gps nvim-treesitter nvim-treesitter-context - FTerm-nvim + my-fterm barbar-nvim auto-session - marks-nvim + my-marks # language vim-nix @@ -770,7 +808,7 @@ in # git stuff vim-fugitive - gitsigns-nvim + my-gitsigns fzf-checkout-vim # Clojure stuff @@ -786,6 +824,7 @@ in scnvim leap vim-beancount + # vimtex # TODO break with nvim 0.8.0 # these are here until i upgrade my nixos channnel in the flake my-which-key-nvim