diff --git a/config/nvim/init.lua b/config/nvim/init.lua index 3dfc8e0..43ec7b1 100644 --- a/config/nvim/init.lua +++ b/config/nvim/init.lua @@ -37,8 +37,8 @@ vim.opt.undodir = vim.fn.stdpath("cache") .. "/undo" vim.opt.undofile = true -- Tab stuff -vim.opt.tabstop = 4 -vim.opt.shiftwidth = 4 +vim.opt.tabstop = 8 +vim.opt.shiftwidth = 8 vim.opt.expandtab = true vim.opt.autoindent = true @@ -150,7 +150,7 @@ require("Comment").setup() -- NB: Make sure to add more from this list! -- https://github.com/nvim-treesitter/nvim-treesitter/tree/master#supported-languages require("nvim-treesitter.configs").setup({ - ensure_installed = { "typescript", "python", "rust", "go", "bash", "lua" }, + ensure_installed = { "typescript", "python", "rust", "go", "bash", "json", "lua" }, sync_install = false, auto_install = true, highlight = { enable = true }, @@ -166,11 +166,12 @@ vim.opt.foldlevel = 99 -- NB: Make sure to add more from this list! -- https://github.com/neovim/nvim-lspconfig/blob/master/doc/configs.md require("mason").setup() -require("mason-lspconfig").setup({ ensure_installed = { "gopls", "bashls", "stylua" } }) +require("mason-lspconfig").setup({ ensure_installed = { "gopls", "bashls", "stylua", "jsonls" } }) require("conform").setup({ default_format_opts = { lsp_format = "fallback" }, -- Many languages can be formatted directly by their LSP formatters_by_ft = { -- but some can't, so conform is for those ones + -- json = { "ixjson" }, sh = { "shfmt" }, bash = { "shfmt" }, lua = { "stylua" }, @@ -178,7 +179,7 @@ require("conform").setup({ javascriptreact = { "prettier" }, typescript = { "prettier" }, typescriptreact = { "prettier" }, - json = { "prettier" }, + -- json = { "prettier" }, html = { "prettier" }, css = { "prettier" }, }, diff --git a/librewolf/user.js b/librewolf/user.js index 765d3f2..48ed88d 100644 --- a/librewolf/user.js +++ b/librewolf/user.js @@ -678,3 +678,74 @@ user_pref("sidebar.revam", true); user_pref("sidebar.verticalTabs", true); user_pref("browser.engagement.sidebar-button.has-used", true); + + +// GPTd performance stuff + +// Reduce animation and UI overhead +user_pref("toolkit.cosmeticAnimations.enabled", false); +user_pref("ui.prefersReducedMotion", 1); + +// Lower process count (less RAM) +user_pref("dom.ipc.processCount", 2); // default is usually 8 +user_pref("dom.ipc.processCount.webIsolated", 1); + +// Disable prefetching and speculative connections +user_pref("network.prefetch-next", false); +user_pref("network.dns.disablePrefetch", true); +user_pref("network.predictor.enabled", false); +user_pref("network.http.speculative-parallel-limit", 0); +user_pref("network.predictor.enable-prefetch", false); + +// Disable Firefox Services (LibreWolf already strips many) +user_pref("browser.aboutHomeSnippets.updateUrl", ""); +user_pref("browser.discovery.enabled", false); +user_pref("browser.newtabpage.activity-stream.feeds.section.topstories", false); +user_pref("browser.newtabpage.activity-stream.feeds.snippets", false); +user_pref("browser.newtabpage.activity-stream.feeds.telemetry", false); +user_pref("browser.newtabpage.activity-stream.telemetry", false); + +// Lower session restore overhead +user_pref("browser.sessionstore.interval", 300000); // save every 5 min instead of 15s +user_pref("browser.sessionstore.max_tabs_undo", 2); + +// Disable crash reports and health reporting (should already be off) +user_pref("datareporting.healthreport.uploadEnabled", false); +user_pref("browser.crashReports.unsubmittedCheck.enabled", false); +user_pref("breakpad.reportURL", ""); + +// Disable Pocket, Activity Stream recommendations +user_pref("extensions.pocket.enabled", false); +user_pref("extensions.recommendations.enabled", false); + +// Disable disk cache or limit it +user_pref("browser.cache.disk.enable", true); +user_pref("browser.cache.disk.capacity", 256000); // 256 MB cap +user_pref("browser.cache.memory.capacity", -1); // auto-adjust (don’t disable entirely) + +// Reduce history & form data +user_pref("places.history.enabled", true); +user_pref("browser.formfill.enable", false); +user_pref("signon.rememberSignons", false); + +// Limit notifications and background updates +user_pref("dom.webnotifications.enabled", false); +user_pref("app.update.auto", false); +user_pref("app.update.background.scheduling.enabled", false); +user_pref("extensions.update.autoUpdateDefault", false); + +// Disable media autoplay and large buffering +user_pref("media.autoplay.default", 1); +user_pref("media.cache_size", 51200); // smaller media cache +user_pref("media.hardware-video-decoding.enabled", true); // keep GPU decode for efficiency + +// Limit DOM timers / background tabs +user_pref("dom.min_background_timeout_value", 1000); +user_pref("dom.timeout.enable_budget_timer_throttling", true); +user_pref("dom.background_budget.enabled", true); +user_pref("dom.ipc.processPriorityManager.enabled", true); +user_pref("dom.ipc.processPriorityManager.backgroundGracePeriodMS", 3000); + +// Disable accessibility service if not needed +user_pref("accessibility.force_disabled", 1); + diff --git a/setup.sh b/setup.sh index 24b11a8..5da4d65 100644 --- a/setup.sh +++ b/setup.sh @@ -6,3 +6,11 @@ sudo pacman-key --lsign-key 56C464BAAC421453 # sudo pacman -Syu # sudo pacman -S linux-surface linux-surface-headers iptsd + +# docker setup +systemctl start docker.service +systemctl enable docker.service +sudo groupadd docker +sudo usermod -aG docker $USER + +