diff --git a/.config/nvim/plugin/lsp.lua b/.config/nvim/plugin/lsp.lua index 087193b5..ab37b57d 100644 --- a/.config/nvim/plugin/lsp.lua +++ b/.config/nvim/plugin/lsp.lua @@ -24,6 +24,8 @@ local servers = { ["nil"] = { formatting = { command = { "nixfmt" } } }, }, }, + + zls = {}, } vim.diagnostic.config { diff --git a/nix/configurations/vanadium/home/dev.nix b/nix/configurations/vanadium/home/dev.nix index 034946b3..dddef0f0 100644 --- a/nix/configurations/vanadium/home/dev.nix +++ b/nix/configurations/vanadium/home/dev.nix @@ -75,6 +75,7 @@ "https://haskell-language-server.cachix.org" "https://helix.cachix.org" "https://cache.iog.io" + "https://ghostty.cachix.org" ]; extra-trusted-public-keys = [ "ghc-nix.cachix.org-1:ziC/I4BPqeA4VbtOFpFpu6D1t6ymFvRWke/lc2+qjcg=" @@ -82,6 +83,7 @@ "haskell-language-server.cachix.org-1:juFfHrwkOxqIOZShtC4YC1uT1bBcq2RSvC7OMKx0Nz8=" "helix.cachix.org-1:ejp9KQpR1FBI2onstMQ34yogDm4OgU2ru6lIwPvuCVs=" "hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ=" + "ghostty.cachix.org-1:QB389yTa6gTyneehvqG58y0WnHjQOqgnA+wBnpWWxns=" ]; }; }; diff --git a/nix/configurations/vanadium/nixos/connectivity.nix b/nix/configurations/vanadium/nixos/connectivity.nix index 37d8c312..92c3453b 100644 --- a/nix/configurations/vanadium/nixos/connectivity.nix +++ b/nix/configurations/vanadium/nixos/connectivity.nix @@ -84,7 +84,6 @@ hardware.bluetooth.enable = true; - # Printing and auto-discovery of Wi-Fi printers services.avahi = { enable = true; diff --git a/nix/configurations/vanadium/nixos/remote-builders.nix b/nix/configurations/vanadium/nixos/remote-builders.nix index 48195f91..b94c066a 100644 --- a/nix/configurations/vanadium/nixos/remote-builders.nix +++ b/nix/configurations/vanadium/nixos/remote-builders.nix @@ -6,7 +6,7 @@ let "kvm" ]; in -{pkgs, ...}: +{ pkgs, ... }: { nix.buildMachines = [ # NOTE: these hosts need to be put in the .ssh/config of root. diff --git a/nix/homeModules/common/firefox.nix b/nix/homeModules/common/firefox.nix index 194206bf..27d93132 100644 --- a/nix/homeModules/common/firefox.nix +++ b/nix/homeModules/common/firefox.nix @@ -53,10 +53,14 @@ in "browser.tabs.loadInBackground" = true; "browser.ctrlTab.sortByRecentlyUsed" = false; "layout.css.devPixelsPerPx" = 1.1; - - # open links in new window - # this works a lot better with xmonad where I have a bunch of windows - "browser.link.open_newwindow" = 2; + "browser.startup.page" = 1; + "browser.link.open_newwindow" = 2; # open in new tab + "browser.translations.automaticallyPopup" = false; + "browser.tabs.closeWindowWithLastTab" = true; + "general.smoothScroll" = false; # makes me dizzy + "accessibility.typeaheadfind" = true; # type to find + "layout.css.always_underline_links" = true; + "media.videocontrols.picture-in-picture.enable-when-switching-tabs.enabled" = true; # Sponsored crap # Yes diff --git a/nix/homeModules/common/git.nix b/nix/homeModules/common/git.nix index 9b694bb4..920de2a8 100644 --- a/nix/homeModules/common/git.nix +++ b/nix/homeModules/common/git.nix @@ -20,7 +20,11 @@ in lib.mkIf patdiffCfg.enable { settings = { - git.paging.externalDiffCommand = "${lib.getExe' patdiffCfg.package "patdiff-git-wrapper"}"; + git.paging = [ + { + externalDiffCommand = "${lib.getExe' patdiffCfg.package "patdiff-git-wrapper"}"; + } + ]; }; }; diff --git a/nix/homeModules/common/zen-browser.nix b/nix/homeModules/common/zen-browser.nix index 4b2e2fbc..a9cecff2 100644 --- a/nix/homeModules/common/zen-browser.nix +++ b/nix/homeModules/common/zen-browser.nix @@ -1,53 +1,17 @@ { - pkgs, config, lib, ... }: let - inherit (pkgs) nur; - cfg = config.programs.zen-browser; + + firefoxCfg = config.programs.firefox; in { programs.zen-browser = { - # https://mozilla.github.io/policy-templates - # The following have more complex logic, keep them as policies and not profiles - policies = { - RequestedLocales = [ - "fr-FR" # for fuck sake stop showing me translated version of French gov sites - "zh-TW" - "en-US" - ]; + policies = firefoxCfg.policies; - SearchEngines = { - Remove = [ - "Google" - "Bing" - "DuckDuckGo" - "Qwant" - "eBay" - "Perplexity" - ]; - Default = "DuckDuckGo Lite"; - Add = [ - { - Name = "DuckDuckGo Lite"; - URLTemplate = "https://lite.duckduckgo.com/lite/search?q={searchTerms}"; - } - ]; - }; - NoDefaultBookmarks = true; - DisplayMenuBar = "never"; - DisplayBookmarksToolbar = "never"; - DNSOverHTTPS = { - Enabled = false; - }; - }; - - # https://searchfox.org/mozilla-central/source/browser/components/enterprisepolicies/Policies.sys.mjs - # Some policies can be rewritten to profiles configuration - # # "locked" semantic from zen (doesn't seem to be doing anything, attempted for zen-twilight 1.18t) # https://github.com/0xc000022070/zen-browser-flake/tree/main#preferences # @@ -57,91 +21,20 @@ in # - click the buttons # - diff it # diff .zen/default/prefs.js{.bk,} - profiles.default = { - settings = { + profiles.default = lib.mkMerge [ + firefoxCfg.profiles.default + { # Zen specific - "zen.theme.content-element-separation" = 0; # Remove "borders" around window - - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - "browser.tabs.loadInBackground" = true; - "browser.ctrlTab.sortByRecentlyUsed" = false; - "layout.css.devPixelsPerPx" = 1.1; - "browser.startup.page" = 1; - "browser.translations.automaticallyPopup" = false; - "browser.tabs.closeWindowWithLastTab" = true; - "general.smoothScroll" = false; - - # open links in new window - # this works a lot better with xmonad where I have a bunch of windows - "browser.link.open_newwindow" = 2; - - # Sponsored crap - # Yes - "browser.newtabpage.activity-stream.showSearch" = true; - "browser.newtabpage.activity-stream.feeds.topsites" = true; - # No - "browser.newtabpage.activity-stream.showSponsoredTopSites" = false; - "browser.newtabpage.activity-stream.feeds.section.highlights" = false; - "browser.newtabpage.activity-stream.feeds.system.topstories" = false; - "browser.newtabpage.activity-stream.feeds.section.topstories" = false; - "browser.newtabpage.activity-stream.showSponsored" = false; - - # URL - # Yes - "browser.urlbar.suggest.quicksuggest.nonsponsored" = true; - # No - "browser.urlbar.suggest.quicksuggest.sponsored" = false; - - # Pasword manager - "signon.rememberSignons" = false; - "services.passwordSavingEnabled" = false; - "pref.privacy.disable_button.view_passwords" = false; - - # Hardware acceleration - "layers.acceleration.disabled" = false; - - # Screenshot - "screenshots.browser.component.enabled" = true; - - # Recommendations - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.addons" = false; - "browser.newtabpage.activity-stream.asrouter.userprefs.cfr.features" = false; - "extensions.htmlaboutaddons.recommendations.enabled" = false; # Addons - - # Onboarding - "browser.aboutwelcome.enabled" = false; - - # AI crap - "browser.ml.chat.enabled" = false; - "browser.ml.chat.page" = false; - "browser.ml.chat.shortcuts" = false; - "browser.ml.chat.sidebar" = false; - - # Prevent WebRTC leak - # https://mullvad.net/en/help/webrtc - "media.peerconnection.enabled" = false; - }; - - extensions.packages = - let - addons = nur.repos.rycee.firefox-addons; - in - [ - addons.ublock-origin - addons.privacy-badger - addons.user-agent-string-switcher - - /* - Here's to you who want to remove news feed eradicator because you find it annoying: - It is here to annoy you so it is less likely for you to be on the agency inversion path. - DO NOT REMOVE IT. I repeat, DO NOT REMOVE IT. - - If you think it's annoying, go do some jump rope, sing, live. - */ - addons.news-feed-eradicator # did you read the comment above? - addons.multi-account-containers - ]; - }; + settings = { + "zen.theme.content-element-separation" = 0; # Remove "borders" around window + "zen.tabs.show-newtab-vertical" = false; + "zen.view.compact.toolbar-flash-popup" = true; + "zen.view.show-newtab-button-top" = false; + "zen.view.use-single-toolbar" = false; + "zen.tabs.ctrl-tab.ignore-pending-tabs" = true; # ctrl-tab ignore unloaded tabs + }; + } + ]; }; xdg.mimeApps = diff --git a/nix/nixosModules/common/system-nixconf.nix b/nix/nixosModules/common/system-nixconf.nix index fdfb8d20..cbce71b6 100644 --- a/nix/nixosModules/common/system-nixconf.nix +++ b/nix/nixosModules/common/system-nixconf.nix @@ -8,6 +8,10 @@ package = lib.mkDefault pkgs.nix; settings = { + # it is impossible to anser in nix-direnv, so we force it to off. + # https://github.com/nix-community/nix-direnv/issues/678 + accept-flake-config = lib.mkForce false; + # Try to have at least 10GB of space by default min-free = lib.mkDefault (5 * 1024 * 1024 * 1024); max-free = lib.mkDefault (10 * 1024 * 1024 * 1024);