all repos — nixfiles @ ba1167b2724041aa89a96bf89280cd7ee7c68f02

System and user configuration, managed by nix and home-manager

user/settings/development/web.nix (view raw)

{
  pkgs,
  lib,
  ...
}:
{
  home.packages =
    with pkgs.nodePackages;
    [
      vscode-langservers-extracted
      csslint
      stylelint
    ]
    ++ (with pkgs; [
      emmet-language-server
      flyctl
    ]);
  home.shellAliases = {
    # 0.2.25 current completion command only affects `flyctl`, although `fly` is a link to `flyctl`
    fly = "flyctl";
  };
  programs.chromium = lib.mkIf pkgs.stdenv.isLinux {
    enable = true;
    package = pkgs.ungoogled-chromium;
    extensions = [
      # # uBlock origin
      { id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; }
      {
        id = "ocaahdebbfolfmndjeplogmgcagdmblk";
        updateUrl = "https://raw.githubusercontent.com/NeverDecaf/chromium-web-store/master/updates.xml";
      }
    ];
    dictionaries = with pkgs.hunspellDictsChromium; [
      en-gb
      de-de
    ];
  };
  programs.firefox = {
    enable = pkgs.stdenv.isLinux;
    package = pkgs.firefox-devedition;
    profiles.dev-edition-default = {
      search.default = "ddg";
      extensions.packages = with pkgs.nur.repos.rycee.firefox-addons; [
        a11ycss
        disable-javascript
        laboratory-by-mozilla
        side-view
        ublock-origin
      ];
      settings = {
        "browser.aboutConfig.showWarning" = false;
        "browser.theme.content-theme" = 1;
        "browser.theme.toolbar-theme" = 1;
        "browser.tabs.firefox-view" = false;
        "extensions.activeThemeID" = "firefox-compact-light@mozilla.org";
      };
    };
    policies = {
      AutoFillCreditCardEnabled = false;
      CaptivePortal = false;
      Cookies = {
        Behavior = "reject-foreign";
      };
      SanitizeOnShutdown = {
        Cache = true;
        Cookies = true;
        FormData = true;
      };
      DisableFirefoxAccounts = true;
      DisableFirefoxScreenShots = true;
      DisableFirefoxStudies = true;
      DisableMasterPasswordCreation = true;
      DisablePasswordReveal = true;
      DisablePocket = true;
      DisableTelemetry = true;
      DNSOverHTTPS.Enabled = false;
      DontCheckDefaultBrowser = true;
      EnableTrackingProtection = true;
      GoToIntranetSiteForSingleWordEntryInAddressBar = true;
      Homepage.URL = "http://localhost:7331";
      NewTabPage = false;
      NoDefaultBookmarks = true;
      OfferToSaveLogins = false;
      OverrideFirstRunPage = "";
      OverridePostUpdatePage = "";
      PasswordManagerEnabled = false;
      PrintingEnabled = false;
      SearchBar = "separate";
      ShowHomeButton = true;
      UserMessaging = {
        ExtensionRecommendations = false;
        FeatureRecommendations = false;
        UrlbarInterventions = false;
        SkipOnboarding = true;
        MoreFromMozilla = false;
      };
    };
  };
  programs.emacs.extraPackages =
    epkgs:
    (with epkgs; [
      caddyfile-mode
      emmet-mode
      nginx-mode
      web-mode
      (treesit-grammars.with-grammars (
        grammars: with grammars; [
          tree-sitter-css
          tree-sitter-html
        ]
      ))
    ]);
  programs.nixvim.plugins = {
    lsp.servers = {
      emmet_language_server.enable = true;
      cssls.enable = true;
      html.enable = true;
      jsonls.enable = true;
    };
  };
}