diff --git a/flake.nix b/flake.nix index a594f80..50c3ce0 100644 --- a/flake.nix +++ b/flake.nix @@ -27,9 +27,10 @@ url = "github:guibou/nixGL"; inputs.nixpkgs.follows = "nixpkgs"; }; + nur.url = "github:nix-community/NUR"; }; - outputs = { self, nixpkgs, disko, nixos-hardware, home-manager, stylix, nixvim, nixgl, ... }: + outputs = { self, nixpkgs, disko, nixos-hardware, home-manager, stylix, nixvim, nixgl, nur, ... }: let sharedOverlays = [ nixgl.overlay @@ -68,6 +69,7 @@ ./hm stylix.homeManagerModules.stylix nixvim.homeManagerModules.nixvim + nur.hmModules.nur ]; }; nixosConfigurations.curacao = lib.nixosSystem { diff --git a/hm/desktop/browser/default.nix b/hm/desktop/browser/default.nix new file mode 100644 index 0000000..6aa7fef --- /dev/null +++ b/hm/desktop/browser/default.nix @@ -0,0 +1,162 @@ +{ pkgs, lib, config, ... }: +{ + config = lib.mkIf config.frogeye.desktop.xorg { + home.sessionVariables = { + BROWSER = "qutebrowser"; + }; + programs = { + firefox = { + enable = true; + package = pkgs.firefox.override { + nativeMessagingHosts = [ + pkgs.tridactyl-native + ]; + }; + + profiles.hm = { + extensions = with config.nur.repos.rycee.firefox-addons; + [ + (buildFirefoxXpiAddon { + + pname = "onetab"; + version = "0.1.0"; + addonId = "onetab@nated"; + url = "https://addons.mozilla.org/firefox/downloads/file/4118712/one_tab_per_window-0.1.0.xpi"; + sha256 = "sha256-64DeL2xgXpqz32LJWDx4jhS2Fvbld8re3z8fdwnNTw0="; + meta = with lib; + { + homepage = "https://git.sr.ht/~nated/onetab"; + description = "When a new tab is opened, redirects it to a new window instead."; + license = licenses.unfree; + mozPermissions = [ "tabs" ]; + platforms = platforms.all; + }; + }) + tridactyl + ublock-origin + ]; + search = { + default = "DuckDuckGo"; + engines = { + # TODO Harmonize with qutebrowser search engines + "Nix Packages" = { + urls = [ + { + template = "https://search.nixos.org/packages"; + params = [ + { name = "type"; value = "packages"; } + { name = "query"; value = "{searchTerms}"; } + ]; + } + ]; + icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg"; + definedAliases = [ "@np" ]; + }; + "NixOS Wiki" = { + urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }]; + iconUpdateURL = "https://nixos.wiki/favicon.png"; + updateInterval = 24 * 60 * 60 * 1000; # every day + definedAliases = [ "@nw" ]; + }; + "Bing".metaData.hidden = true; + "Google".metaData.alias = "@g"; # builtin engines only support specifying one additional alias + }; + force = true; + }; + }; + }; + qutebrowser = { + enable = true; + keyBindings = { + normal = { + # Match tab behaviour to i3. Not that I use tabs. + "H" = "tab-prev"; + "J" = "back"; + "K" = "forward"; + "L" = "tab-next"; + # "T" = null; + "af" = "spawn --userscript freshrss"; # TODO Broken? + "as" = "spawn --userscript shaarli"; # TODO I don't use shaarli anymore + # "d" = null; + "u" = "undo --window"; + # TODO Unbind d and T (?) + }; + }; + loadAutoconfig = true; + searchEngines = rec { + DEFAULT = ecosia; + alpinep = "https://pkgs.alpinelinux.org/packages?name={}&branch=edge"; + ampwhat = "http://www.amp-what.com/unicode/search/{}"; + arch = "https://wiki.archlinux.org/?search={}"; + archp = "https://www.archlinux.org/packages/?q={}"; + aur = "https://aur.archlinux.org/packages/?K={}"; + aw = ampwhat; + ddg = duckduckgo; + dockerhub = "https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q={}&starCount=0"; + duckduckgo = "https://duckduckgo.com/?q={}&ia=web"; + ecosia = "https://www.ecosia.org/search?q={}"; + gfr = "https://www.google.fr/search?hl=fr&q={}"; + g = google; + gh = github; + gi = "http://images.google.com/search?q={}"; + giphy = "https://giphy.com/search/{}"; + github = "https://github.com/search?q={}"; + google = "https://www.google.fr/search?q={}"; + hm = homemanager; + homemanager = "https://mipmip.github.io/home-manager-option-search/?query={}"; + invidious = "https://invidious.frogeye.fr/search?q={}"; + inv = invidious; + nixos = "https://search.nixos.org/options?channel=${config.home.version.release}&query={}"; + nixpkgs = "https://search.nixos.org/packages?channel=${config.home.version.release}&query={}"; + npm = "https://www.npmjs.com/search?q={}"; + os = nixos; + pkgs = nixpkgs; + q = qwant; + qwant = "https://www.qwant.com/?t=web&q={}"; + wolfram = "https://www.wolframalpha.com/input/?i={}"; + youtube = "https://www.youtube.com/results?search_query={}"; + yt = youtube; + }; + settings = { + downloads.location.prompt = false; + tabs = { + show = "never"; + tabs_are_windows = true; + }; + url = rec { + open_base_url = true; + start_pages = lib.mkDefault "https://geoffrey.frogeye.fr/blank.html"; + default_page = start_pages; + }; + content = { + # I had this setting below, not sure if it did something special + # config.set("content.cookies.accept", "no-3rdparty", "chrome://*/*") + cookies.accept = "no-3rdparty"; + prefers_reduced_motion = true; + headers.accept_language = "fr-FR, fr;q=0.9, en-GB;q=0.8, en-US;q=0.7, en;q=0.6"; + tls.certificate_errors = "ask-block-thirdparty"; + }; + editor.command = [ "${pkgs.neovide}/bin/neovide" "--" "-f" "{file}" "-c" "normal {line}G{column0}l" ]; + # TODO Doesn't work on Arch. Does it even load the right profile on Nix? + # TODO spellcheck.languages = ["fr-FR" "en-GB" "en-US"]; + }; + }; + }; + xdg = { + configFile."tridactyl/tridactylrc".source = ./tridactylrc; # TODO Improve that :) + mimeApps = { + enable = true; + defaultApplications = { + "text/html" = "org.qutebrowser.qutebrowser.desktop"; + "x-scheme-handler/http" = "org.qutebrowser.qutebrowser.desktop"; + "x-scheme-handler/https" = "org.qutebrowser.qutebrowser.desktop"; + "x-scheme-handler/about" = "org.qutebrowser.qutebrowser.desktop"; + "x-scheme-handler/unknown" = "org.qutebrowser.qutebrowser.desktop"; + }; + }; + }; + xsession.windowManager.i3.config.keybindings = { + "${config.xsession.windowManager.i3.config.modifier}+m" = "exec ${config.programs.qutebrowser.package}/bin/qutebrowser --override-restore"; + }; + }; +} diff --git a/unprocessed/config/tridactyl/tridactylrc b/hm/desktop/browser/tridactylrc similarity index 97% rename from unprocessed/config/tridactyl/tridactylrc rename to hm/desktop/browser/tridactylrc index e9fd789..91df840 100644 --- a/unprocessed/config/tridactyl/tridactylrc +++ b/hm/desktop/browser/tridactylrc @@ -79,14 +79,14 @@ set searchurls.npm https://www.npmjs.com/search?q=%s set searchurls.pypi https://pypi.org/search/?q=%s set searchurls.python https://docs.python.org/3/search.html?q=%s set searchurls.qwant https://www.qwant.com/?t=web&q=%s -set searchurls.invidious https://invidious.drycat.fr/search?q=%s +set searchurls.invidious https://invidious.frogeye.fr/search?q=%s set searchurls.id https://invidious.drycat.fr/search?q=%s set searchurls.wa https://www.wolframalpha.com/input/?i=%s set searchurls.yt https://www.youtube.com/results?search_query=%s " Firefox GUI " This can still be shown with F6! -" guiset_quiet gui none +guiset_quiet gui none " Never autofocus set allowautofocus false diff --git a/hm/desktop/default.nix b/hm/desktop/default.nix index 9e38204..fa2fd34 100644 --- a/hm/desktop/default.nix +++ b/hm/desktop/default.nix @@ -8,12 +8,12 @@ in ./audio ./autorandr ./background + ./browser ./frobar ./i3.nix ./lock ./mpd ./presentation - ./qutebrowser.nix ./redness ./screenshots ./terminal @@ -67,7 +67,6 @@ in }; }; }; - qutebrowser.enable = true; }; xdg = { @@ -143,9 +142,7 @@ in # data management freefilesync - # browsers - firefox - + # misc gnome.gedit feh zbar diff --git a/hm/desktop/qutebrowser.nix b/hm/desktop/qutebrowser.nix deleted file mode 100644 index 10441b6..0000000 --- a/hm/desktop/qutebrowser.nix +++ /dev/null @@ -1,96 +0,0 @@ -{ pkgs, lib, config, ... }: -{ - config = lib.mkIf config.programs.qutebrowser.enable { - home.sessionVariables = { - BROWSER = "qutebrowser"; - }; - programs.qutebrowser = { - keyBindings = { - normal = { - # Match tab behaviour to i3. Not that I use tabs. - "H" = "tab-prev"; - "J" = "back"; - "K" = "forward"; - "L" = "tab-next"; - # "T" = null; - "af" = "spawn --userscript freshrss"; # TODO Broken? - "as" = "spawn --userscript shaarli"; # TODO I don't use shaarli anymore - # "d" = null; - "u" = "undo --window"; - # TODO Unbind d and T (?) - }; - }; - loadAutoconfig = true; - searchEngines = rec { - DEFAULT = ecosia; - alpinep = "https://pkgs.alpinelinux.org/packages?name={}&branch=edge"; - ampwhat = "http://www.amp-what.com/unicode/search/{}"; - arch = "https://wiki.archlinux.org/?search={}"; - archp = "https://www.archlinux.org/packages/?q={}"; - aur = "https://aur.archlinux.org/packages/?K={}"; - aw = ampwhat; - ddg = duckduckgo; - dockerhub = "https://hub.docker.com/search/?isAutomated=0&isOfficial=0&page=1&pullCount=0&q={}&starCount=0"; - duckduckgo = "https://duckduckgo.com/?q={}&ia=web"; - ecosia = "https://www.ecosia.org/search?q={}"; - gfr = "https://www.google.fr/search?hl=fr&q={}"; - g = google; - gh = github; - gi = "http://images.google.com/search?q={}"; - giphy = "https://giphy.com/search/{}"; - github = "https://github.com/search?q={}"; - google = "https://www.google.fr/search?q={}"; - hm = homemanager; - homemanager = "https://mipmip.github.io/home-manager-option-search/?query={}"; - invidious = "https://invidious.frogeye.fr/search?q={}"; - inv = invidious; - nixos = "https://search.nixos.org/options?channel=${config.home.version.release}&query={}"; - nixpkgs = "https://search.nixos.org/packages?channel=${config.home.version.release}&query={}"; - npm = "https://www.npmjs.com/search?q={}"; - os = nixos; - pkgs = nixpkgs; - q = qwant; - qwant = "https://www.qwant.com/?t=web&q={}"; - wolfram = "https://www.wolframalpha.com/input/?i={}"; - youtube = "https://www.youtube.com/results?search_query={}"; - yt = youtube; - }; - settings = { - downloads.location.prompt = false; - tabs = { - show = "never"; - tabs_are_windows = true; - }; - url = rec { - open_base_url = true; - start_pages = lib.mkDefault "https://geoffrey.frogeye.fr/blank.html"; - default_page = start_pages; - }; - content = { - # I had this setting below, not sure if it did something special - # config.set("content.cookies.accept", "no-3rdparty", "chrome://*/*") - cookies.accept = "no-3rdparty"; - prefers_reduced_motion = true; - headers.accept_language = "fr-FR, fr;q=0.9, en-GB;q=0.8, en-US;q=0.7, en;q=0.6"; - tls.certificate_errors = "ask-block-thirdparty"; - }; - editor.command = [ "${pkgs.neovide}/bin/neovide" "--" "-f" "{file}" "-c" "normal {line}G{column0}l" ]; - # TODO Doesn't work on Arch. Does it even load the right profile on Nix? - # TODO spellcheck.languages = ["fr-FR" "en-GB" "en-US"]; - }; - }; - xdg.mimeApps = { - enable = true; - defaultApplications = { - "text/html" = "org.qutebrowser.qutebrowser.desktop"; - "x-scheme-handler/http" = "org.qutebrowser.qutebrowser.desktop"; - "x-scheme-handler/https" = "org.qutebrowser.qutebrowser.desktop"; - "x-scheme-handler/about" = "org.qutebrowser.qutebrowser.desktop"; - "x-scheme-handler/unknown" = "org.qutebrowser.qutebrowser.desktop"; - }; - }; - xsession.windowManager.i3.config.keybindings = { - "${config.xsession.windowManager.i3.config.modifier}+m" = "exec ${config.programs.qutebrowser.package}/bin/qutebrowser --override-restore"; - }; - }; -}