❄️ my cosy setup powered by nix

use proper zen flake; add back cord.nvim :3

Diogo abd226cb bf335f9e

Changed files
+270 -120
home
modules
+44 -1
flake.lock
··· 130 130 "type": "github" 131 131 } 132 132 }, 133 + "home-manager_2": { 134 + "inputs": { 135 + "nixpkgs": [ 136 + "zen-browser", 137 + "nixpkgs" 138 + ] 139 + }, 140 + "locked": { 141 + "lastModified": 1762351818, 142 + "narHash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0=", 143 + "owner": "nix-community", 144 + "repo": "home-manager", 145 + "rev": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea", 146 + "type": "github" 147 + }, 148 + "original": { 149 + "owner": "nix-community", 150 + "repo": "home-manager", 151 + "type": "github" 152 + } 153 + }, 133 154 "homebrew": { 134 155 "inputs": { 135 156 "brew-src": "brew-src" ··· 185 206 "homebrew": "homebrew", 186 207 "nixpkgs": "nixpkgs_2", 187 208 "sops": "sops", 188 - "systems": "systems" 209 + "systems": "systems", 210 + "zen-browser": "zen-browser" 189 211 } 190 212 }, 191 213 "sops": { ··· 220 242 "original": { 221 243 "owner": "nix-systems", 222 244 "repo": "default", 245 + "type": "github" 246 + } 247 + }, 248 + "zen-browser": { 249 + "inputs": { 250 + "home-manager": "home-manager_2", 251 + "nixpkgs": [ 252 + "nixpkgs" 253 + ] 254 + }, 255 + "locked": { 256 + "lastModified": 1762665515, 257 + "narHash": "sha256-0+A0nHL1+x1H4NL5bE6GyA252JOpUK6kvfHg/g75260=", 258 + "owner": "0xc000022070", 259 + "repo": "zen-browser-flake", 260 + "rev": "1bea5e777dd0b99158c504da1fb2913ff119e96c", 261 + "type": "github" 262 + }, 263 + "original": { 264 + "owner": "0xc000022070", 265 + "repo": "zen-browser-flake", 223 266 "type": "github" 224 267 } 225 268 }
+7
flake.nix
··· 61 61 type = "git"; 62 62 url = "https://codeberg.org/diogocastro/website.git"; 63 63 }; 64 + 65 + zen-browser = { 66 + type = "github"; 67 + owner = "0xc000022070"; 68 + repo = "zen-browser-flake"; 69 + inputs.nixpkgs.follows = "nixpkgs"; 70 + }; 64 71 }; 65 72 66 73 outputs =
+1 -1
home/diogo/programs/default.nix
··· 8 8 ./btop.nix 9 9 ./neovim 10 10 ./tmux.nix 11 - ./firefox.nix 11 + ./zen.nix 12 12 ./fzf.nix 13 13 ./ripgrep.nix 14 14 ./vesktop.nix
-109
home/diogo/programs/firefox.nix
··· 1 - { 2 - pkgs, 3 - lib, 4 - ... 5 - }: 6 - let 7 - policies = { 8 - policies = { 9 - AppAutoUpdate = false; 10 - DisableAppUpdate = true; 11 - ManualAppUpdateOnly = true; 12 - DisableFirefoxStudies = true; 13 - DisablePocket = true; 14 - DisableTelemetry = true; 15 - DontCheckDefaultBrowser = true; 16 - OfferToSaveLogins = false; 17 - NoDefaultBookmarks = true; 18 - Cookies = { 19 - Allow = [ 20 - "https://bsky.app" 21 - "https://github.com" 22 - "https://steamcommunity.com" 23 - "https://steampowered.com" 24 - "https://1password.com" 25 - "https://1password.eu" 26 - "https://google.com" 27 - "https://youtube.com" 28 - "https://cloudflare.com" 29 - "https://bunny.net" 30 - "https://twitch.tv" 31 - "https://apple.com" 32 - "https://icloud.com" 33 - "https://instagram.com" 34 - "https://porkbun.com" 35 - "https://ovh.com" 36 - "https://ovh.pt" 37 - "https://ovhcloud.com" 38 - "https://amazon.es" 39 - "https://hetzner.com" 40 - "https://upcloud.com" 41 - "https://chatgpt.com" 42 - "https://openai.com" 43 - "https://codeberg.org" 44 - "https://revolut.com" 45 - "https://proton.me" 46 - "https://bitwarden.com" 47 - "https://bitwarden.eu" 48 - "http://10.100.0.1" 49 - "http://[fd00:1:1:1::1]" 50 - ]; 51 - }; 52 - SanitizeOnShutdown = { 53 - Cache = true; 54 - Cookies = true; 55 - FormData = true; 56 - }; 57 - DisableFirefoxAccounts = true; 58 - DNSOverHTTPS = { 59 - Enabled = true; 60 - ProviderURL = "https://security.cloudflare-dns.com/dns-query"; 61 - Fallback = true; 62 - Locked = true; 63 - }; 64 - EnableTrackingProtection = { 65 - Value = true; 66 - Locked = true; 67 - Cryptomining = true; 68 - Fingerprinting = true; 69 - EmailTracking = true; 70 - }; 71 - HttpsOnlyMode = "force_enabled"; 72 - SkipTermsOfUse = true; 73 - Extensions = { 74 - Install = [ 75 - "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi" 76 - "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-web-file-icons/latest.xpi" 77 - "https://addons.mozilla.org/firefox/downloads/latest/clearurls/latest.xpi" 78 - "https://addons.mozilla.org/firefox/downloads/latest/return-youtube-dislikes/latest.xpi" 79 - "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi" 80 - "https://addons.mozilla.org/firefox/downloads/latest/steam-database/latest.xpi" 81 - "https://addons.mozilla.org/firefox/downloads/latest/styl-us/latest.xpi" 82 - "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi" 83 - "https://addons.mozilla.org/firefox/downloads/latest/refined-github-/latest.xpi" 84 - ]; 85 - }; 86 - SearchEngines = { 87 - Add = [ 88 - { 89 - Name = "Qwant"; 90 - IconURL = "https://www.qwant.com/favicon.ico"; 91 - URLTemplate = "https://www.qwant.com/?q={searchTerms}"; 92 - Alias = "qwant"; 93 - SuggestURLTemplate = "https://api.qwant.com/api/suggest/?q={searchTerms}"; 94 - } 95 - ]; 96 - Default = "Qwant"; 97 - }; 98 - }; 99 - }; 100 - in 101 - 102 - { 103 - home.activation.installFirefoxPolicies = lib.mkIf (pkgs.stdenv.hostPlatform.isDarwin) ( 104 - lib.hm.dag.entryAfter [ "writeBoundary" ] '' 105 - mkdir -p "/Applications/Zen.app/Contents/Resources/distribution" 106 - echo '${builtins.toJSON policies}' > "/Applications/Zen.app/Contents/Resources/distribution/policies.json" 107 - '' 108 - ); 109 - }
+2
home/diogo/programs/neovim/default.nix
··· 25 25 telescope-nvim 26 26 which-key-nvim 27 27 nvim-treesitter.withAllGrammars 28 + cord-nvim 28 29 ]; 29 30 extraPackages = with pkgs; [ 30 31 nixd ··· 40 41 tailwindcss-language-server 41 42 emmet-language-server 42 43 gopls 44 + sourcekit-lsp 43 45 ]; 44 46 45 47 extraLuaConfig = ''
+10 -7
home/diogo/programs/neovim/init.lua
··· 31 31 return entry.completion_item.label:match("^@") 32 32 elseif cursor_before_line:sub(-1) == ":" then 33 33 return entry.completion_item.label:match("^:") 34 - and not entry.completion_item.label:match("^:on%-") 34 + and not entry.completion_item.label:match("^:on%-") 35 35 else 36 36 return true 37 37 end ··· 130 130 }, 131 131 schemas = { 132 132 ["https://www.schemastore.org/github-workflow.json"] = ".github/workflows/*", 133 - ["https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json"] = 134 - "docker-compose*.{yml,yaml}", 133 + ["https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json"] = "docker-compose*.{yml,yaml}", 135 134 }, 136 135 }, 137 136 redhat = { ··· 222 221 }, 223 222 224 223 gopls = {}, 224 + 225 + sourcekit = {}, 225 226 } 226 227 227 228 vim.diagnostic.config({ ··· 363 364 364 365 require("mini.surround").setup({ 365 366 mappings = { 366 - add = "S", -- Add surrounding in Normal and Visual modes 367 - delete = "ds", -- Delete surrounding 368 - find = "sf", -- Find surrounding (to the right) 367 + add = "S", -- Add surrounding in Normal and Visual modes 368 + delete = "ds", -- Delete surrounding 369 + find = "sf", -- Find surrounding (to the right) 369 370 find_left = "sF", -- Find surrounding (to the left) 370 371 highlight = "sh", -- Highlight surrounding 371 - replace = "cs", -- Replace surrounding 372 + replace = "cs", -- Replace surrounding 372 373 }, 373 374 }) 374 375 ··· 466 467 vim.keymap.set("n", "<leader>?", function() 467 468 require("which-key").show({ global = false }) 468 469 end, { desc = "Buffer Local Keymaps (which-key)" }) 470 + 471 + require("cord").setup({}) 469 472 470 473 require("catppuccin").setup({ 471 474 flavour = "mocha",
+203
home/diogo/programs/zen.nix
··· 1 + { 2 + inputs, 3 + pkgs, 4 + ... 5 + }: 6 + { 7 + imports = [ 8 + inputs.zen-browser.homeModules.beta 9 + ]; 10 + 11 + programs.zen-browser = { 12 + enable = true; 13 + 14 + policies = { 15 + AppAutoUpdate = false; 16 + DisableAppUpdate = true; 17 + ManualAppUpdateOnly = true; 18 + DisableFirefoxStudies = true; 19 + DisablePocket = true; 20 + DisableTelemetry = true; 21 + DontCheckDefaultBrowser = true; 22 + OfferToSaveLogins = false; 23 + NoDefaultBookmarks = true; 24 + Cookies = { 25 + Allow = [ 26 + "https://bsky.app" 27 + "https://github.com" 28 + "https://steamcommunity.com" 29 + "https://steampowered.com" 30 + "https://1password.com" 31 + "https://1password.eu" 32 + "https://google.com" 33 + "https://youtube.com" 34 + "https://cloudflare.com" 35 + "https://bunny.net" 36 + "https://twitch.tv" 37 + "https://apple.com" 38 + "https://icloud.com" 39 + "https://instagram.com" 40 + "https://porkbun.com" 41 + "https://ovh.com" 42 + "https://ovh.pt" 43 + "https://ovhcloud.com" 44 + "https://amazon.es" 45 + "https://hetzner.com" 46 + "https://upcloud.com" 47 + "https://chatgpt.com" 48 + "https://openai.com" 49 + "https://codeberg.org" 50 + "https://revolut.com" 51 + "https://proton.me" 52 + "https://bitwarden.com" 53 + "https://bitwarden.eu" 54 + "http://10.100.0.1" 55 + "http://[fd00:1:1:1::1]" 56 + ]; 57 + }; 58 + SanitizeOnShutdown = { 59 + Cache = true; 60 + Cookies = true; 61 + FormData = true; 62 + }; 63 + DisableFirefoxAccounts = true; 64 + DNSOverHTTPS = { 65 + Enabled = true; 66 + ProviderURL = "https://security.cloudflare-dns.com/dns-query"; 67 + Fallback = true; 68 + Locked = true; 69 + }; 70 + EnableTrackingProtection = { 71 + Value = true; 72 + Locked = true; 73 + Cryptomining = true; 74 + Fingerprinting = true; 75 + EmailTracking = true; 76 + }; 77 + HttpsOnlyMode = "force_enabled"; 78 + SkipTermsOfUse = true; 79 + Extensions = { 80 + Install = [ 81 + "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi" 82 + "https://addons.mozilla.org/firefox/downloads/latest/catppuccin-web-file-icons/latest.xpi" 83 + "https://addons.mozilla.org/firefox/downloads/latest/clearurls/latest.xpi" 84 + "https://addons.mozilla.org/firefox/downloads/latest/return-youtube-dislikes/latest.xpi" 85 + "https://addons.mozilla.org/firefox/downloads/latest/sponsorblock/latest.xpi" 86 + "https://addons.mozilla.org/firefox/downloads/latest/steam-database/latest.xpi" 87 + "https://addons.mozilla.org/firefox/downloads/latest/styl-us/latest.xpi" 88 + "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi" 89 + "https://addons.mozilla.org/firefox/downloads/latest/refined-github-/latest.xpi" 90 + ]; 91 + }; 92 + SearchEngines = { 93 + Add = [ 94 + { 95 + Name = "Qwant"; 96 + IconURL = "https://www.qwant.com/favicon.ico"; 97 + URLTemplate = "https://www.qwant.com/?q={searchTerms}"; 98 + Alias = "qwant"; 99 + SuggestURLTemplate = "https://api.qwant.com/api/suggest/?q={searchTerms}"; 100 + } 101 + ]; 102 + Default = "Qwant"; 103 + }; 104 + }; 105 + 106 + profiles.default = rec { 107 + settings = { 108 + "zen.workspaces.continue-where-left-off" = true; 109 + "zen.welcome-screen.seen" = true; 110 + "zen.tabs.vertical.right-side" = true; 111 + "zen.urlbar.behavior" = "float"; 112 + "zen.view.sidebar-expanded" = false; 113 + "zen.view.use-single-toolbar" = false; 114 + }; 115 + 116 + pinsForce = true; 117 + pins = { 118 + "YouTube" = { 119 + id = "8a04d7cc-950d-487c-b777-03913eb0c848"; 120 + workspace = spaces."Me".id; 121 + url = "https://youtube.com"; 122 + position = 101; 123 + isEssential = true; 124 + }; 125 + "GitHub" = { 126 + id = "22dad8df-c7ac-46f3-a021-ccc09be936e9"; 127 + workspace = spaces."Me".id; 128 + url = "https://github.com"; 129 + position = 102; 130 + isEssential = true; 131 + }; 132 + "Bluesky" = { 133 + id = "b7d09abd-4b35-404c-8c65-54f9a56d4a1c"; 134 + workspace = spaces."Me".id; 135 + url = "https://bsky.app"; 136 + position = 103; 137 + isEssential = true; 138 + }; 139 + 140 + "Codeberg" = { 141 + id = "ab8562c8-9052-4758-89e4-0ed72bd25d3b"; 142 + workspace = spaces."Me".id; 143 + url = "https://codeberg.org"; 144 + position = 104; 145 + isEssential = false; 146 + }; 147 + "Bunny" = { 148 + id = "3c43eb68-b3f9-4a24-9415-9d62d619cd46"; 149 + workspace = spaces."Me".id; 150 + url = "https://dash.bunny.net"; 151 + position = 105; 152 + isEssential = false; 153 + }; 154 + "Porkbun" = { 155 + id = "7df1ae5e-946d-4b19-bc23-72b990a3d2aa"; 156 + workspace = spaces."Me".id; 157 + url = "https://porkbun.com"; 158 + position = 106; 159 + isEssential = false; 160 + }; 161 + "UpCloud" = { 162 + id = "515bf804-32e1-4201-be5b-e5f15297da69"; 163 + workspace = spaces."Me".id; 164 + url = "https://hub.upcloud.com"; 165 + position = 107; 166 + isEssential = false; 167 + }; 168 + }; 169 + 170 + containersForce = true; 171 + containers = { 172 + Shopping = { 173 + color = "yellow"; 174 + icon = "dollar"; 175 + id = 2; 176 + }; 177 + }; 178 + 179 + spacesForce = true; 180 + spaces = { 181 + "Me" = { 182 + id = "def11a0e-d618-4af6-8b3b-2e00d3d128cc"; 183 + icon = "🌷"; 184 + position = 1000; 185 + theme = { 186 + type = "gradient"; 187 + colors = [ 188 + { 189 + red = 216; 190 + green = 204; 191 + blue = 235; 192 + algorithm = "floating"; 193 + type = "explicit-lightness"; 194 + } 195 + ]; 196 + opacity = 0.8; 197 + texture = 0.5; 198 + }; 199 + }; 200 + }; 201 + }; 202 + }; 203 + }
-1
modules/darwin/brew.nix
··· 64 64 "font-maple-mono" 65 65 "signal" 66 66 "raycast" 67 - "zen" 68 67 "sketch@beta" 69 68 ] 70 69 ++ lib.optionals config.sys.profiles.gaming.enable [
+3 -1
modules/darwin/preferences.nix
··· 8 8 minimize-to-application = true; 9 9 mru-spaces = false; 10 10 persistent-apps = [ 11 - { app = "/Applications/Zen.app"; } 11 + { 12 + app = "/nix/store/mdmg740y6983qw34nd85ljbi7z0g3n7w-zen-beta-1.17.6b/Applications/Zen Browser (Beta).app"; 13 + } 12 14 { app = "/System/Applications/Mail.app"; } 13 15 { app = "/nix/store/cb89wc26l0fzaywsr1y8ds0vwsxi9mr0-ghostty-bin-1.2.3/Applications/Ghostty.app"; } 14 16 { app = "/nix/store/xcwka2yvbvip4lmc1m15gyq99wfwbahn-vesktop-1.6.1/Applications/Vesktop.app"; }