From 8323681c70757afb944fa096e0417adbc65c03df Mon Sep 17 00:00:00 2001 From: Jurn Wubben Date: Sat, 22 Feb 2025 00:35:15 +0100 Subject: [PATCH] Firefox config, neovim config, tailscale, polkit, updated binds --- flake.lock | 250 +++++++++++++++++++++---------- flake.nix | 4 +- home/default.nix | 1 + home/programs/default.nix | 5 + home/programs/firefox.nix | 79 ++++++++++ home/shell/default.nix | 1 + home/shell/neovim/default.nix | 102 +++++++++++++ home/wayland/hyprland/binds.nix | 2 +- hosts/laptop/default.nix | 2 + system/programs/default.nix | 1 + system/programs/home-manager.nix | 7 +- system/programs/polkit.nix | 17 +++ system/services/default.nix | 1 + system/services/tailscale.nix | 3 + 14 files changed, 392 insertions(+), 83 deletions(-) create mode 100644 home/programs/default.nix create mode 100644 home/shell/neovim/default.nix create mode 100644 system/programs/polkit.nix create mode 100644 system/services/tailscale.nix diff --git a/flake.lock b/flake.lock index 3d23df8..b2e93db 100644 --- a/flake.lock +++ b/flake.lock @@ -67,21 +67,6 @@ "type": "github" } }, - "crane": { - "locked": { - "lastModified": 1737689766, - "narHash": "sha256-ivVXYaYlShxYoKfSo5+y5930qMKKJ8CLcAoIBPQfJ6s=", - "owner": "ipetkov", - "repo": "crane", - "rev": "6fe74265bbb6d016d663b1091f015e2976c4a527", - "type": "github" - }, - "original": { - "owner": "ipetkov", - "repo": "crane", - "type": "github" - } - }, "firefox-gnome-theme": { "flake": false, "locked": { @@ -132,7 +117,43 @@ "type": "github" } }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib_2" + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { "inputs": { "systems": [ "stylix", @@ -276,74 +297,48 @@ "type": "github" } }, - "ironbar": { + "mnw": { + "locked": { + "lastModified": 1735150973, + "narHash": "sha256-OJhcCAoaMMXeD6o4qI/hxBCNELJp4dN8D5LJZc8w8XA=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "40cd0b006cc48dffd0f8698ad7f54cf1d56779a6", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, + "nil": { "inputs": { - "crane": "crane", - "naersk": "naersk", + "flake-utils": [ + "nvf", + "flake-utils" + ], "nixpkgs": [ + "nvf", "nixpkgs" ], "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1739360499, - "narHash": "sha256-f04my7eNvG4HwMWag9R08IVgddkopKXsypym88Oe9L4=", - "owner": "JakeStanger", - "repo": "ironbar", - "rev": "39153e04b38e675c02df98316b2be039517fd407", + "lastModified": 1732053863, + "narHash": "sha256-DCIVdlb81Fct2uwzbtnawLBC/U03U2hqx8trqTJB7WA=", + "owner": "oxalica", + "repo": "nil", + "rev": "2e24c9834e3bb5aa2a3701d3713b43a6fb106362", "type": "github" }, "original": { - "owner": "JakeStanger", - "repo": "ironbar", - "type": "github" - } - }, - "naersk": { - "inputs": { - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1736429655, - "narHash": "sha256-BwMekRuVlSB9C0QgwKMICiJ5EVbLGjfe4qyueyNQyGI=", - "owner": "nix-community", - "repo": "naersk", - "rev": "0621e47bd95542b8e1ce2ee2d65d6a1f887a13ce", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "naersk", + "owner": "oxalica", + "repo": "nil", "type": "github" } }, "nixpkgs": { - "locked": { - "lastModified": 1738297584, - "narHash": "sha256-AYvaFBzt8dU0fcSK2jKD0Vg23K2eIRxfsVXIPCW9a0E=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "9189ac18287c599860e878e905da550aa6dec1cd", - "type": "github" - }, - "original": { - "id": "nixpkgs", - "type": "indirect" - } - }, - "nixpkgs-lib": { - "locked": { - "lastModified": 1738452942, - "narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" - } - }, - "nixpkgs_2": { "locked": { "lastModified": 1739478914, "narHash": "sha256-qljqSeAWOFbd6HNg8Ey28RdZYdVN8bMb6HJK7uqCKZ0=", @@ -359,7 +354,31 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs-lib": { + "locked": { + "lastModified": 1738452942, + "narHash": "sha256-vJzFZGaCpnmo7I6i416HaBLpC+hvcURh/BQwROcGIp8=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/072a6db25e947df2f31aab9eccd0ab75d5b2da11.tar.gz" + } + }, + "nixpkgs-lib_2": { + "locked": { + "lastModified": 1733096140, + "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + } + }, + "nixpkgs_2": { "locked": { "lastModified": 1736798957, "narHash": "sha256-qwpCtZhSsSNQtK4xYGzMiyEDhkNzOCz/Vfu4oL2ETsQ=", @@ -375,28 +394,71 @@ "type": "github" } }, + "nmd": { + "flake": false, + "locked": { + "lastModified": 1705050560, + "narHash": "sha256-x3zzcdvhJpodsmdjqB4t5mkVW22V3wqHLOun0KRBzUI=", + "owner": "~rycee", + "repo": "nmd", + "rev": "66d9334933119c36f91a78d565c152a4fdc8d3d3", + "type": "sourcehut" + }, + "original": { + "owner": "~rycee", + "repo": "nmd", + "type": "sourcehut" + } + }, + "nvf": { + "inputs": { + "flake-parts": "flake-parts_2", + "flake-utils": "flake-utils", + "mnw": "mnw", + "nil": "nil", + "nixpkgs": [ + "nixpkgs" + ], + "nmd": "nmd", + "systems": "systems_2" + }, + "locked": { + "lastModified": 1740070226, + "narHash": "sha256-+NtuaiNf3YNTDeMTHW6MVK86Bdkgh1vveWojDC/dRaM=", + "owner": "notashelf", + "repo": "nvf", + "rev": "54476b5a8bea713eb0480b4f3a66478cc15ef813", + "type": "github" + }, + "original": { + "owner": "notashelf", + "repo": "nvf", + "type": "github" + } + }, "root": { "inputs": { "flake-parts": "flake-parts", "hm": "hm", - "ironbar": "ironbar", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs", + "nvf": "nvf", "stylix": "stylix" } }, "rust-overlay": { "inputs": { "nixpkgs": [ - "ironbar", + "nvf", + "nil", "nixpkgs" ] }, "locked": { - "lastModified": 1738290352, - "narHash": "sha256-YKOHUmc0Clm4tMV8grnxYL4IIwtjTayoq/3nqk0QM7k=", + "lastModified": 1731983527, + "narHash": "sha256-JECaBgC0pQ91Hq3W4unH6K9to8s2Zl2sPNu7bLOv4ek=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "b031b584125d33d23a0182f91ddbaf3ab4880236", + "rev": "71287228d96e9568e1e70c6bbfa3f992d145947b", "type": "github" }, "original": { @@ -413,12 +475,12 @@ "base16-vim": "base16-vim", "firefox-gnome-theme": "firefox-gnome-theme", "flake-compat": "flake-compat", - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "git-hooks": "git-hooks", "gnome-shell": "gnome-shell", "home-manager": "home-manager", - "nixpkgs": "nixpkgs_3", - "systems": "systems", + "nixpkgs": "nixpkgs_2", + "systems": "systems_3", "tinted-foot": "tinted-foot", "tinted-kitty": "tinted-kitty", "tinted-schemes": "tinted-schemes", @@ -454,6 +516,36 @@ "type": "github" } }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_3": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, "tinted-foot": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index 0af31e8..096a508 100644 --- a/flake.nix +++ b/flake.nix @@ -39,8 +39,8 @@ # Ricing stylix.url = "github:danth/stylix"; - ironbar = { - url = "github:JakeStanger/ironbar"; + nvf = { + url = "github:notashelf/nvf"; inputs.nixpkgs.follows = "nixpkgs"; }; }; diff --git a/home/default.nix b/home/default.nix index 7a64878..51fc930 100644 --- a/home/default.nix +++ b/home/default.nix @@ -3,6 +3,7 @@ ./wayland ./shell ./style + ./programs ]; home = { diff --git a/home/programs/default.nix b/home/programs/default.nix new file mode 100644 index 0000000..1c7c3ee --- /dev/null +++ b/home/programs/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./firefox.nix + ]; +} diff --git a/home/programs/firefox.nix b/home/programs/firefox.nix index e69de29..0cbcdd7 100644 --- a/home/programs/firefox.nix +++ b/home/programs/firefox.nix @@ -0,0 +1,79 @@ +{pkgs, ...}: { + programs.firefox = { + enable = true; + package = pkgs.wrapFirefox pkgs.firefox-unwrapped { + extraPolicies = { + DisableFirefoxStudies = true; + DisablePocket = true; + DisableTelemetry = true; + DisableFirefoxAccounts = true; + PasswordManagerEnabled = false; + PromptForDownloadLocation = true; + OverrideFirstRunPage = ""; + OverridePostUpdatePage = ""; + DisableProfileImport = true; # Nix profiles only! + DisableProfileRefresh = true; + DisableSetDesktopBackground = true; + EnableTrackingProtection = { + Value = true; + Locked = true; + Cryptomining = true; + Fingerprinting = true; + EmailTracking = true; + }; + FirefoxHome = { + "Search" = true; + "TopSites" = true; + "SponsoredTopSites" = false; + "Highlights" = false; + "Pocket" = false; + "SponsoredPocket" = false; + }; + FirefoxSuggest = { + "WebSuggestions" = true; + }; + + ExtensionSettings = let + mkForceInstalled = extensions: + builtins.mapAttrs + (_: cfg: {installation_mode = "force_installed";} // cfg) + extensions; + in + mkForceInstalled { + # You can find the addon-ids using this extension: https://github.com/mkaply/queryamoid/releases/tag/v0.1 + #"".install_url = ""; # Extension info here. + + "queryamoid@kaply.com".install_url = "https://github.com/mkaply/queryamoid/releases/download/v0.2/query_amo_addon_id-0.2-fx.xpi"; + "uBlock0@raymondhill.net".install_url = "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi"; # Ublock Origin + "{446900e4-71c2-419f-a6a7-df9c091e268b}".install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi"; # Bitwarden + "jid1-QoFqdK4qzUfGWQ@jetpack".install_url = "https://addons.mozilla.org/firefox/downloads/latest/dark-background-light-text/latest.xpi"; # Dark reader alternative + "{34daeb50-c2d2-4f14-886a-7160b24d66a4}".install_url = "https://addons.mozilla.org/firefox/downloads/latest/youtube-shorts-block/latest.xpi"; # Youtube short blocker + "vimium-c@gdh1995.cn".install_url = "https://addons.mozilla.org/firefox/downloads/latest/vimium-c/latest.xpi"; # Extension info here. + }; + }; + }; + + profiles."jsw.nixos-default" = { + id = 0; + name = "nixos-default"; + isDefault = true; + + search = { + default = "DuckDuckGo"; + order = [ + "DuckDuckGo" + "Google" + ]; + }; + + settings = { + "middlemouse.paste" = false; + + "gfx.webrender.all" = true; + "media.ffmpeg.vaapi.enabled" = true; + + "browser.uiCustomization.state" = ''{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":["ublock0_raymondhill_net-browser-action","queryamoid_kaply_com-browser-action","_34daeb50-c2d2-4f14-886a-7160b24d66a4_-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","customizableui-special-spring1","vertical-spacer","urlbar-container","customizableui-special-spring2","save-to-pocket-button","downloads-button","fxa-toolbar-menu-button","unified-extensions-button","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","jid1-qofqdk4qzufgwq_jetpack-browser-action"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["firefox-view-button","tabbrowser-tabs","new-tab-button","alltabs-button"],"vertical-tabs":[],"PersonalToolbar":["import-button","personal-bookmarks"]},"seen":["save-to-pocket-button","developer-button","jid1-qofqdk4qzufgwq_jetpack-browser-action","ublock0_raymondhill_net-browser-action","queryamoid_kaply_com-browser-action","_34daeb50-c2d2-4f14-886a-7160b24d66a4_-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action"],"dirtyAreaCache":["nav-bar","vertical-tabs","PersonalToolbar","toolbar-menubar","TabsToolbar","unified-extensions-area"],"currentVersion":21,"newElementCount":2}''; + }; + }; + }; +} diff --git a/home/shell/default.nix b/home/shell/default.nix index 799dac2..37f1c01 100644 --- a/home/shell/default.nix +++ b/home/shell/default.nix @@ -4,5 +4,6 @@ ./starship.nix ./yazi.nix ./zoxide.nix + ./neovim ]; } diff --git a/home/shell/neovim/default.nix b/home/shell/neovim/default.nix new file mode 100644 index 0000000..20eed5b --- /dev/null +++ b/home/shell/neovim/default.nix @@ -0,0 +1,102 @@ +{ + config, + inputs, + pkgs, + ... +}: { + imports = [inputs.nvf.homeManagerModules.default]; + + programs.nvf = { + enable = true; + settings.vim = { + viAlias = true; + vimAlias = true; + + keymaps = + [ + # alt backspace to delete word backwards + { + key = ""; + mode = ["n"]; + action = "nohlsearch"; + } + { + key = "q"; + mode = ["n"]; + action = ":lua vim.diagnostic.setloclist()"; + } + + { + key = ""; + mode = ["t"]; + action = ""; + } + ] + ++ builtins.map (x: { + key = ""; + action = ""; + mode = "n"; + }) ["h" "j" "k" "l"]; + useSystemClipboard = true; + + ui = { + smartcolumn.enable = true; # Changes cursor color depending on mode. + illuminate.enable = true; # + modes-nvim.enable = true; + noice.enable = true; + }; + treesitter.enable = true; + + lsp = { + lspconfig.enable = true; + enable = true; + formatOnSave = true; + lightbulb.enable = true; + lspSignature.enable = true; + mappings = { + hover = "h"; + codeAction = "."; + }; + }; + languages = { + nix = { + enable = true; + format.enable = true; + lsp.enable = true; + treesitter.enable = true; + }; + ts = { + enable = true; + lsp.enable = true; + treesitter.enable = true; + extensions.ts-error-translator.enable = true; + }; + }; + + telescope = { + enable = true; + setupOpts.defaults.vimgrep_arguments = [ + "${pkgs.ripgrep}/bin/rg" + "--color=never" + "--no-heading" + "--with-filename" + "--line-number" + "--column" + "--smart-case" + "--hidden" + ]; + mappings.liveGrep = "/"; + }; + + utility = { + motion.precognition.enable = true; + ccc.enable = true; + }; + mini.surround.enable = true; + autopairs.nvim-autopairs.enable = true; + binds.whichKey.enable = true; + + theme.enable = true; + }; + }; +} diff --git a/home/wayland/hyprland/binds.nix b/home/wayland/hyprland/binds.nix index f6b0e58..d1559de 100644 --- a/home/wayland/hyprland/binds.nix +++ b/home/wayland/hyprland/binds.nix @@ -21,7 +21,7 @@ foot = appE pkgs.foot; fuzzel = appE config.programs.fuzzel.package; - firefox = appE pkgs.firefox; + firefox = appE config.programs.firefox.package; playerctl = appE pkgs.playerctl; brightnessctl = appE pkgs.brightnessctl; wpctl = app "${pkgs.wireplumber}/bin/wpctl"; diff --git a/hosts/laptop/default.nix b/hosts/laptop/default.nix index 5bd566f..b819b4f 100644 --- a/hosts/laptop/default.nix +++ b/hosts/laptop/default.nix @@ -4,6 +4,8 @@ ./virt.nix ]; + virtualisation.docker.enable = true; + services = { fprintd.enable = true; udev.extraRules = '' diff --git a/system/programs/default.nix b/system/programs/default.nix index 452a60c..27952b7 100644 --- a/system/programs/default.nix +++ b/system/programs/default.nix @@ -5,6 +5,7 @@ ./games.nix ./home-manager.nix ./hyprland.nix + ./polkit.nix ./xdg.nix ]; } diff --git a/system/programs/home-manager.nix b/system/programs/home-manager.nix index 35db2a1..45bef32 100644 --- a/system/programs/home-manager.nix +++ b/system/programs/home-manager.nix @@ -1,4 +1,8 @@ -{inputs, specialArgs, config, ...}: { +{ + inputs, + specialArgs, + ... +}: { imports = [ inputs.hm.nixosModules.default ]; @@ -7,6 +11,7 @@ useGlobalPkgs = true; useUserPackages = true; extraSpecialArgs = specialArgs; + backupFileExtension = "backup"; users.jsw = import ../../home; }; diff --git a/system/programs/polkit.nix b/system/programs/polkit.nix new file mode 100644 index 0000000..25aaa8e --- /dev/null +++ b/system/programs/polkit.nix @@ -0,0 +1,17 @@ +{pkgs, ...}: { + systemd = { + user.services.polkit-gnome-authentication-agent-1 = { + description = "polkit-gnome-authentication-agent-1"; + wantedBy = ["graphical-session.target"]; + wants = ["graphical-session.target"]; + after = ["graphical-session.target"]; + serviceConfig = { + Type = "simple"; + ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"; + Restart = "on-failure"; + RestartSec = 1; + TimeoutStopSec = 10; + }; + }; + }; +} diff --git a/system/services/default.nix b/system/services/default.nix index 401cbb3..8700217 100644 --- a/system/services/default.nix +++ b/system/services/default.nix @@ -4,5 +4,6 @@ ./kanata.nix ./pipewire.nix ./power.nix + ./tailscale.nix ]; } diff --git a/system/services/tailscale.nix b/system/services/tailscale.nix new file mode 100644 index 0000000..d886410 --- /dev/null +++ b/system/services/tailscale.nix @@ -0,0 +1,3 @@ +{ + services.tailscale.enable = true; +}