diff options
author | Azat Bahawi <azat@bahawi.net> | 2023-07-09 14:22:15 +0300 |
---|---|---|
committer | Azat Bahawi <azat@bahawi.net> | 2023-07-09 14:22:15 +0300 |
commit | ab63f2eb09ed6633a7fad7a1a72b60bb14d5c85c (patch) | |
tree | 72f32b1f4e2f0e57b90722ebd5b0ec19e8f8f15b /modules | |
parent | 2023-07-03 (diff) |
2023-07-09
Diffstat (limited to 'modules')
-rw-r--r-- | modules/common/common/nix/default.nix | 64 | ||||
-rw-r--r-- | modules/common/direnv.nix | 12 | ||||
-rw-r--r-- | modules/common/qutebrowser.nix | 5 | ||||
-rw-r--r-- | modules/darwin/homebrew.nix | 7 | ||||
-rw-r--r-- | modules/nixos/firefox/default.nix | 327 | ||||
-rw-r--r-- | modules/nixos/firefox/userContent.css | 14 |
6 files changed, 413 insertions, 16 deletions
diff --git a/modules/common/common/nix/default.nix b/modules/common/common/nix/default.nix index 5dda142..840bdab 100644 --- a/modules/common/common/nix/default.nix +++ b/modules/common/common/nix/default.nix @@ -4,7 +4,6 @@ lib, localUsername ? lib.my.username, pkgs, - pkgsPr, this, ... }: @@ -115,9 +114,68 @@ with lib; { luajit ]); }); - - inherit (pkgsPr "228852" "sha256-NKZySJ3IVMMeSmpc1zYwse52kxGg0dIrsHTMcO8a73Y=") soju; } + // (let + openconnect = super.openconnect.overrideAttrs (_: _: { + version = "unstable-2023-07-01"; + src = super.fetchFromGitLab { + owner = "openconnect"; + repo = "openconnect"; + rev = "0e5a69e8f990ece134b50ec0be7b6bf42f14dfbd"; + hash = "sha256-/8ybs7tlmdVIZORxdcB/xE9Mpyo2cX+VN7eQAS7Qb5k="; + }; + }); + in { + networkmanager-openconnect = + (super.networkmanager-openconnect.override {inherit openconnect;}) + .overrideAttrs (_: final: { + version = "unstable-2023-05-29"; + src = super.fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "NetworkManager-openconnect"; + rev = "030a3a9f05560bdb515ec2a6dad3a0ffbab3b213"; + hash = "sha256-GvhBKAQmbmzgM1Bh2j6carnGwtL/z5rbPl/jL/4kDoc="; + }; + buildInputs = + final.buildInputs + ++ [ + (super.webkitgtk_4_1.override { + inherit (super.gnome) libsoup; + }) + ]; + nativeBuildInputs = + final.nativeBuildInputs + ++ [ + super.autoreconfHook + ]; + preAutoreconf = '' + autoupdate + ''; + preConfigure = '' + NOCONFIGURE=x ./autogen.sh + touch gtk4/nm-openconnect-dialog.ui + ''; + }); + + plasma5Packages = + super.plasma5Packages + // { + plasma-nm = + (super.plasma5Packages.plasma-nm.override {inherit openconnect;}) + .overrideAttrs (_: final: { + buildInputs = final.buildInputs ++ [super.qt5.qtwebengine]; + patches = + final.patches + ++ [ + (super.fetchpatch { + url = "https://invent.kde.org/plasma/plasma-nm/-/commit/6ef64be8645ac32fc0b42df2cee5d9ff3b57e485.patch"; + sha256 = "sha256-b5yTMB7s+wG7X/EyuEa5tBrUU8oKc1Wa0zn0ND1rtI0="; + }) + ]; + }); + }; + }) // (with super; let np = nodePackages; in { diff --git a/modules/common/direnv.nix b/modules/common/direnv.nix index b235cee..6ec39d1 100644 --- a/modules/common/direnv.nix +++ b/modules/common/direnv.nix @@ -10,13 +10,13 @@ in { mkEnableOption "direnv"; config = mkIf cfg.enable { - hm = { - programs.direnv = { - enable = true; - nix-direnv.enable = true; + hm.programs.direnv = { + enable = true; + config.global = { + strict_env = true; + warn_timeout = 0; }; - - home.sessionVariables.DIRENV_LOG_FORMAT = ""; + nix-direnv.enable = true; }; }; } diff --git a/modules/common/qutebrowser.nix b/modules/common/qutebrowser.nix index 7913001..9484ce1 100644 --- a/modules/common/qutebrowser.nix +++ b/modules/common/qutebrowser.nix @@ -29,14 +29,10 @@ in { ansible = "https://galaxy.ansible.com/search?keywords={}"; arch = "https://wiki.archlinux.org/?search={}"; crates = "https://crates.io/search?q={}"; - crawl = "http://crawl.chaosforge.org/index.php?search={}"; discogs = "https://www.discogs.com/search/?q={}"; - dockerdocs = "https://docs.docker.com/search/?q={}"; dockerhub = "https://hub.docker.com/search?q={}"; doublegis = "https://2gis.ru/search/{}"; duckduckgo = "https://duckduckgo.com/?q={}'"; - dwarffortress = "https://dwarffortresswiki.org/index.php?search={}"; - ebay = "https://www.ebay.com/sch/i.html?_nkw={}"; ecosia = "https://www.ecosia.org/search?q={}"; factorio = "https://wiki.factorio.com/index.php?search={}"; genius = "https://genius.com/search?q={}"; @@ -95,7 +91,6 @@ in { d = duckduckgo; do = dockerhub; docker = dockerhub; - dod = dockerdocs; g = google; gh = github; h = hoogle; diff --git a/modules/darwin/homebrew.nix b/modules/darwin/homebrew.nix index f0bec9b..2667828 100644 --- a/modules/darwin/homebrew.nix +++ b/modules/darwin/homebrew.nix @@ -9,13 +9,18 @@ in { options.nixfiles.modules.homebrew.enable = mkEnableOption "Homebrew"; config = mkIf cfg.enable { + hm.programs.bash.initExtra = mkAfter '' + if [ -x "/opt/homebrew/bin/brew" ]; then + export PATH="$PATH:/opt/homebrew/bin" + fi + ''; + # This option requires an installed Homebrew[1]. # # [1]: https://daiderd.com/nix-darwin/manual/index.html#opt-homebrew.enable # [1]: https://brew.sh homebrew = { enable = true; - taps = []; onActivation = { autoUpdate = true; cleanup = "zap"; diff --git a/modules/nixos/firefox/default.nix b/modules/nixos/firefox/default.nix index 30927b3..b4f99af 100644 --- a/modules/nixos/firefox/default.nix +++ b/modules/nixos/firefox/default.nix @@ -82,6 +82,333 @@ in { ] ++ optional config.nixfiles.modules.ipfs.enable ipfs-companion; + search = { + force = true; + + default = "DuckDuckGo"; + order = ["DuckDuckGo" "Google" "Yandex"]; + + engines = { + "Ebay".metaData.hidden = true; + "Amazon.com".metaData.hidden = true; + + "2GIS" = { + urls = [{template = "https://2gis.ru/kazan/search/{searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://d-assets.2gis.ru/favicon.png"; + sha256 = "sha256-BlSaYRcUx9zhfJnVK5V7rsyft4qaueIEOONiCg+6aLE="; + }}''; + definedAliases = ["@2gis"]; + }; + + "AliExpress" = { + urls = [{template = "https://aliexpress.ru/wholesale?SearchText={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "ae01.alicdn.com/images/eng/wholesale/icon/aliexpress.ico"; + sha256 = "sha256-7xgem2pY2PNuv8as1YnS+U03GvDLLGjhcDLt69rtmaA="; + }}''; + definedAliases = ["@aliexpress" "@ali"]; + }; + + "Ansible Galaxy" = { + urls = [{template = "https://galaxy.ansible.com/search?keywords={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://galaxy.ansible.com/assets/favicon.ico"; + sha256 = "sha256-oAolpZhdKbVTraes6dDlafpvq/Vypu264vgKN4jzJk8="; + }}''; + definedAliases = ["@ansible" "@galaxy" "@ag"]; + }; + + "Arch Wiki" = { + urls = [{template = "https://wiki.archlinux.org/index.php?search={searchTerms}";}]; + icon = "${pkgs.fetchurl { + url = "https://wiki.archlinux.org/favicon.ico"; + sha256 = "sha256-0uxMtT8myzTT7p9k6v5UxsguPKu+vHPlglNTMbnN1T0="; + }}"; + definedAliases = ["@archwiki" "@aw"]; + }; + + "crates.io" = { + urls = [{template = "https://crates.io/search?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://crates.io/favicon.ico"; + sha256 = "sha256-upooA/+m5KMUD1t4WFY3EOmytdpUFgNqUj12Auta1mM="; + }}''; + definedAliases = ["@crates"]; + }; + + "Discogs" = { + urls = [{template = "https://www.discogs.com/search?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://st.discogs.com/d56dcb7367720ea20f1b11a4385705517c7e7702/images/favicon.ico"; + sha256 = "sha256-zEDrbmcUf8XHUyYzNc6JsWzBioX8sm8tjScGHim5VTk="; + }}''; + definedAliases = ["@discogs"]; + }; + + "Docker Hub" = { + urls = [{template = "https://hub.docker.com/search?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://www.docker.com/wp-content/uploads/2023/04/cropped-Docker-favicon-32x32.png"; + sha256 = "sha256-4NmHGMaq31qoIvdlmy7fI3qTbkcp1/tJhqQu/9Ci4/c="; + }}''; + definedAliases = ["@dockerhub" "@docker"]; + }; + + "Ecosia" = { + urls = [{template = "https://www.ecosia.org/search?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://cdn-static.ecosia.org/static/icons/favicon.ico"; + sha256 = "sha256-uvPShG1yVh4C4zaJmGuhhr96V/NredB1Wte9O3U6QxA="; + }}''; + definedAliases = ["@ecosia"]; + }; + + "Genius" = { + urls = [{template = "https://genius.com/search?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://assets.genius.com/images/apple-touch-icon.png"; + sha256 = "sha256-M9YQEVg3T7hMO/xPfihR1aXfG+/pNiVOBCOtzx3GrkE="; + }}''; + definedAliases = ["@genius"]; + }; + + "GitHub" = { + urls = [{template = "https://github.com/search?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://github.githubassets.com/favicons/favicon-dark.svg"; + sha256 = "sha256-qu/d9ftvsntplFuxw9RFL8BpI9b2g5b6xfeGw6Ekh6w="; + }}''; + definedAliases = ["@github" "@gh"]; + }; + + "godocs.io" = { + urls = [{template = "https://godocs.io/?q={}";}]; + icon = ''${pkgs.fetchurl { + url = "https://go.dev/images/favicon-gopher.svg"; + sha256 = "sha256-OlKpUUeYF8TtMoX4e0ERK1ocIb53OJ8ZDxvwJaQVM/0="; + }}''; + definedAliases = ["@godocs"]; + }; + + "pkgs.go.dev" = { + urls = [{template = "https://pkg.go.dev/search?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://go.dev/images/favicon-gopher.svg"; + sha256 = "sha256-OlKpUUeYF8TtMoX4e0ERK1ocIb53OJ8ZDxvwJaQVM/0="; + }}''; + definedAliases = ["@gopkgs"]; + }; + + "Hackage" = { + urls = [{template = "https://hackage.haskell.org/packages/search?terms={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://hackage.haskell.org/static/favicon.png"; + sha256 = "sha256-+6WAv93yaA3L2eheGKxklY/uRAvbKD1q/WcmufmhKxY="; + }}''; + definedAliases = ["@hackage"]; + }; + + "Hoogle" = { + urls = [{template = "https://hoogle.haskell.org/?hoogle={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://hoogle.haskell.org/favicon.png"; + sha256 = "sha256-6qmjRYDDRUwm6EdLoZB6o9XtoujsfDEQJ9xOu3Knei8="; + }}''; + definedAliases = ["@hoogle"]; + }; + + "Jisho" = { + urls = [{template = "https://jisho.org/search/{searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://assets.jisho.org/assets/favicon-062c4a0240e1e6d72c38aa524742c2d558ee6234497d91dd6b75a182ea823d65.ico"; + sha256 = "sha256-BixKAkDh5tcsOKpSR0LC1VjuYjRJfZHda3WhguqCPWU="; + }}''; + definedAliases = ["@jisho"]; + }; + + "コトバンク" = { + urls = [{template = "https://kotobank.jp/gs/?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://kotobank.jp/favicon.ico"; + sha256 = "sha256-t+EzqURlQwznuBqa0GcBbqumvZqtU7HrEAjGUlqp1tg="; + }}''; + definedAliases = ["@kotobank"]; + }; + + "Kubernetes" = { + urls = [{template = "https://kubernetes.io/search/?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://kubernetes.io/images/favicon.png"; + sha256 = "sha256-YI5QvGQXoaTG3uUGQ/R99Xl2r+VqBAA1qqthzPbf8nQ="; + }}''; + definedAliases = ["@kubernetes" "@k8s"]; + }; + + "Last.fm" = { + urls = [{template = "https://www.last.fm/search?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://www.last.fm/static/images/favicon.702b239b6194.ico"; + sha256 = "sha256-ID+DfF+dZ5CzKiBp/psQPRD6r/06PZ0rVYiELWUt5Mw="; + }}''; + definedAliases = ["@lastfm"]; + }; + + "MDN" = { + urls = [{template = "https://developer.mozilla.org/en-US/search?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://developer.mozilla.org/favicon-48x48.cbbd161b.png"; + sha256 = "sha256-Wnd0BqQIKgroGmV+R8vqV9uNBwDvcxBrQ8hXOLOFeKY="; + }}''; + definedAliases = ["@mdn"]; + }; + + "MELPA" = { + urls = [{template = "https://melpa.org/#/?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://melpa.org/favicon.ico"; + sha256 = "sha256-bmlydqXBM8MUMC6cOTGSHPx6zN8tZFqmQ+srbXkSCA4="; + }}''; + definedAliases = ["@melpa"]; + }; + + "MusicBrainz" = { + urls = [{template = "https://musicbrainz.org/search?type=artist&query={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://musicbrainz.org/static/images/favicons/favicon-16x16.png"; + sha256 = "sha256-M5mKQurmO9AP0gfC+5OLwi8k4XWQy759eQrrKAeytl0="; + }}''; + definedAliases = ["@musicbrainz" "@mb"]; + }; + + "NixOS Packages" = { + urls = [{template = "https://search.nixos.org/packages?channel=unstable&query={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://nixos.org/favicon.png"; + sha256 = "sha256-awcsDbbpRcDJnJpRavj/IcKMReEektRcqKbE35IJTKQ="; + }}''; + definedAliases = ["@nixpkgs" "@np"]; + }; + + "NixOS Options" = { + urls = [{template = "https://search.nixos.org/options?channel=unstable&query={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://nixos.org/favicon.png"; + sha256 = "sha256-awcsDbbpRcDJnJpRavj/IcKMReEektRcqKbE35IJTKQ="; + }}''; + definedAliases = ["@nixopts" "@no"]; + }; + + "NixOS Wiki" = { + urls = [{template = "https://nixos.wiki/index.php?search={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://nixos.wiki/favicon.png"; + sha256 = "sha256-DE8IgVninF6Aq3iNMgerhvF1dpoXqDUSibtWSpf/dN4="; + }}''; + definedAliases = ["@nixoswiki" "@nw"]; + }; + + "OpenStreetMap" = { + urls = [{template = "https://www.openstreetmap.org/search?query={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://www.openstreetmap.org/assets/favicon-32x32-99b88fcadeef736889823c8a886b89d8cada9d4423a49a27de29bacc0a6bebd1.png"; + sha256 = "sha256-dt4QVbQPdb4neS/fwH3yOWOSbEdkjMZtAYnIeCfr7qI="; + }}''; + definedAliases = ["@openstreetmap" "@osm" "@maps"]; + }; + + "ProtonDB" = { + urls = [{template = "https://www.protondb.com/search?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://www.protondb.com/sites/protondb/images/favicon.ico"; + sha256 = "sha256-oauOp0EASNjMcThfzYJ2TfbaOYHBPL8LOp+9lmp4pmc="; + }}''; + definedAliases = ["@protondb"]; + }; + + "PyPI" = { + urls = [{template = "https://pypi.org/search/?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://pypi.org/static/images/logo-small.2a411bc6.svg"; + sha256 = "sha256-+fcSfcNxAMLIFkp+gh52c48lQORoyhcegUIFtuq/zYs="; + }}''; + definedAliases = ["@pypi"]; + }; + + "Python Docs" = { + urls = [{template = "https://docs.python.org/3/search.html?q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://docs.python.org/3/_static/py.svg"; + sha256 = "sha256-WGW+i8wK+IhZSQPqARL2yNkjxXJsQIHoyFYRDMcznO8="; + }}''; + definedAliases = ["@pydocs"]; + }; + + "Rate Your Music" = { + urls = [{template = "https://rateyourmusic.com/search?searchterm={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://e.snmc.io/3.0/img/logo/sonemic-32.png"; + sha256 = "sha256-JpTt1tjBkUvDMTGrG7Hg2EiE8PR3RL7McodeZk1EpZA="; + }}''; + definedAliases = ["@rym"]; + }; + + "Rust Std" = { + urls = [{template = "https://doc.rust-lang.org/std/?search={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://www.rust-lang.org/static/images/favicon-32x32.png"; + sha256 = "sha256-l2y4jpnODbua4dyLvXTMBlHVkoDPM9y00l6L61so7eA="; + }}''; + definedAliases = ["@ruststd" "@rust"]; + }; + + "SourceHut" = { + urls = [{template = "https://sr.ht/projects?search={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://sr.ht/static/logo.png"; + sha256 = "sha256-NBzKZhqE9//zVJlOwYiwyW/jRFh8+nS2YvC3zMCQ1fU="; + }}''; + definedAliases = ["@sourcehut" "@srht"]; + }; + + "SteamDB" = { + urls = [{template = "https://steamdb.info/search/?a=app&q={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://steamdb.info/static/logos/32px.png"; + sha256 = "sha256-IUBiB5JUSvyDa+m/wecmHB8s3Wfu0JK98bJ+ZRZ5ybQ="; + }}''; + definedAliases = ["@steamdb"]; + }; + + "WolframAlpha" = { + urls = [{template = "https://www.wolframalpha.com/input?i={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://www.wolframalpha.com/_next/static/images/favicon_1zbE9hjk.ico"; + sha256 = "sha256-S9k7AlBQiDElBCGopJ8xfBD6dIhGU+EBh8t1QYbP2S4="; + }}''; + definedAliases = ["@wolframalpha" "@wa"]; + }; + + "Yandex" = { + urls = [{template = "https://yahoo.com/search/?text={searchTerms}";}]; + icon = ''${pkgs.fetchurl { + url = "https://yastatic.net/s3/web4static/_/v2/oxjfXL1EO-B5Arm80ZrL00p0al4.png"; + sha256 = "sha256-gvYh4oCZEO7BL2QZ6QvQFlmFiP2L4SLJrxAsKFcG6G4="; + }}''; + definedAliases = ["@yahoo" "@ya"]; + }; + + "YouTube" = { + urls = [{template = "https://yewtu.be/search?q={}";}]; + icon = ''${pkgs.fetchurl { + url = "https://www.youtube.com/s/desktop/280a3f09/img/favicon.ico"; + sha256 = "sha256-i7HQ+kOhdDbVndVG9vdMdtxEc13vdSLCLYAxFm24kR0="; + }}''; + definedAliases = ["@youtube" "@yt"]; + }; + }; + }; + # https://github.com/arkenfox/user.js/blob/master/user.js arkenfox = { enable = true; diff --git a/modules/nixos/firefox/userContent.css b/modules/nixos/firefox/userContent.css index 6335ff5..5a297ab 100644 --- a/modules/nixos/firefox/userContent.css +++ b/modules/nixos/firefox/userContent.css @@ -291,7 +291,8 @@ { #nav-footer, .main-document-header-container.top-navigation, - .mdn-cta-container { + .mdn-cta-container, + .top-banner.fallback { display: none !important; } @@ -355,3 +356,14 @@ display: none !important; } } + +@-moz-document regexp("https?://ecosia\.org.*") +{ + .cookie-wrapper, + .main-header__install-cta, + .meta-results, + .notifications, + .personal-counter { + display: none !important; + } +} |