diff --git a/hosts/nb/channel b/hosts/nb/channel index 93f5df5..57f31e7 100644 --- a/hosts/nb/channel +++ b/hosts/nb/channel @@ -1 +1 @@ -https://channels.nixos.org/nixos-25.05 +https://channels.nixos.org/nixos-25.11 diff --git a/hosts/nb/configuration.nix b/hosts/nb/configuration.nix index 430764f..8b20710 100644 --- a/hosts/nb/configuration.nix +++ b/hosts/nb/configuration.nix @@ -307,7 +307,7 @@ in { ''; }; - services.xserver.desktopManager.gnome.extraGSettingsOverrides = '' + services.desktopManager.gnome.extraGSettingsOverrides = '' [org.gnome.desktop.interface] cursor-size=24 ''; diff --git a/hosts/nb/hardware-configuration.nix b/hosts/nb/hardware-configuration.nix index e9fc49d..0ae27a3 100644 --- a/hosts/nb/hardware-configuration.nix +++ b/hosts/nb/hardware-configuration.nix @@ -115,7 +115,7 @@ hardware.graphics = { enable = true; extraPackages = with pkgs; [ - vaapiVdpau + libva-vdpau-driver libvdpau-va-gl libva libva-utils diff --git a/hosts/nb/modules/desktop/bitwarden.nix b/hosts/nb/modules/desktop/bitwarden.nix index fbe3db6..9de4724 100644 --- a/hosts/nb/modules/desktop/bitwarden.nix +++ b/hosts/nb/modules/desktop/bitwarden.nix @@ -26,14 +26,13 @@ in description = "Bitwarden Desktop"; after = [ "graphical-session.target" "network-online.target" ]; wantedBy = [ "graphical-session.target" ]; - serviceConfig.ExecStart = "${pkgs.bitwarden}/bin/bitwarden"; + serviceConfig.ExecStart = "${pkgs.bitwarden-desktop}/bin/bitwarden-desktop"; serviceConfig.Restart = "on-abort"; }; #### Handy tools ############################################################# environment.systemPackages = with pkgs; [ - goldwarden - bitwarden + bitwarden-desktop bitwarden-cli fprintd lxqt.lxqt-policykit diff --git a/hosts/nb/modules/desktop/default.nix b/hosts/nb/modules/desktop/default.nix index 32088d1..b58ada7 100644 --- a/hosts/nb/modules/desktop/default.nix +++ b/hosts/nb/modules/desktop/default.nix @@ -57,10 +57,10 @@ in { netflix networkmanagerapplet nextcloud-client - onlyoffice-bin + onlyoffice-desktopeditors obs-studio pavucontrol - pinentry + pinentry-gnome3 rbw rofi-rbw swayimg @@ -103,7 +103,7 @@ in { fonts.packages = with pkgs; [ noto-fonts noto-fonts-cjk-sans - noto-fonts-emoji + noto-fonts-color-emoji nerd-fonts._0xproto nerd-fonts.droid-sans-mono open-sans diff --git a/hosts/nb/modules/development/coding.nix b/hosts/nb/modules/development/coding.nix index 482d8a5..fa8c109 100644 --- a/hosts/nb/modules/development/coding.nix +++ b/hosts/nb/modules/development/coding.nix @@ -20,7 +20,7 @@ in { nixpkgs.config.android_sdk.accept_license = true; programs.adb.enable = true; # sets up udev + adb group - services.udev.packages = [ pkgs.android-udev-rules ]; + # android-udev-rules removed in 25.11 - superseded by built-in systemd uaccess rules users.users.dominik.extraGroups = [ "adbusers" ]; } diff --git a/hosts/nb/modules/development/default.nix b/hosts/nb/modules/development/default.nix index eb94961..969fff5 100644 --- a/hosts/nb/modules/development/default.nix +++ b/hosts/nb/modules/development/default.nix @@ -52,11 +52,6 @@ in { # Socket activation - only start when needed to save battery onBoot = "ignore"; onShutdown = "shutdown"; - qemu = { - ovmf = { - enable = true; # Enable OVMF firmware support - }; - # swtpm.enable = true; # enable if you need TPM emulation, etc. - }; + # qemu.swtpm.enable = true; # enable if you need TPM emulation, etc. }; } diff --git a/hosts/nb/modules/development/nvim/config/init.lua b/hosts/nb/modules/development/nvim/config/init.lua index a4af92c..0212e85 100644 --- a/hosts/nb/modules/development/nvim/config/init.lua +++ b/hosts/nb/modules/development/nvim/config/init.lua @@ -1,3 +1,6 @@ +-- Set leader key before any other mappings +vim.g.mapleader = " " + -- vim.opt.expandtab = true -- vim.opt.hidden = true -- vim.opt.incsearch = true diff --git a/hosts/nb/modules/development/nvim/config/lspconfig.lua b/hosts/nb/modules/development/nvim/config/lspconfig.lua index 94238e9..72b90ee 100644 --- a/hosts/nb/modules/development/nvim/config/lspconfig.lua +++ b/hosts/nb/modules/development/nvim/config/lspconfig.lua @@ -1,54 +1,31 @@ -local status, lspc = pcall(require, 'lspconfig') -if (not status) then return end - -lspc.clangd.setup{} - -local buf_map = function(bufnr, mode, lhs, rhs, opts) - vim.api.nvim_buf_set_keymap(bufnr, mode, lhs, rhs, opts or { - silent = true, - }) -end - -local protocol = require('vim.lsp.protocol') - -local on_attach = function(client, buffnr) - if client.server.capabilities.documentFormattingProvider then - vim.api.nvim_create_autocmd("BufWritePre", { - group = vim.api.nvim_create_augroup("format", { clear = true }), - buffer = buffnr, - callback = function() vim.lsp.buf.formatting_seq_sync() end - }) - end -end - +-- LSP Capabilities (for nvim-cmp integration) local capabilities = vim.lsp.protocol.make_client_capabilities() capabilities.textDocument.completion.completionItem.snippetSupport = true capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) -local servers = { 'ts_ls', 'lua_ls', 'cssls', 'yamlls', 'intelephense', 'gopls' } -for _, lsp in pairs(servers) do - require('lspconfig')[lsp].setup { - -- on_attach = on_attach, - capabilities = capabilities, - } -end +-- Global LSP configuration +vim.lsp.config('*', { + capabilities = capabilities, +}) -lspc.yamlls.setup({ +-- Server-specific configurations +vim.lsp.config('clangd', {}) + +vim.lsp.config('yamlls', { settings = { yaml = { keyOrdering = false, }, }, -}); - --- autoformat json files with jq -vim.api.nvim_create_autocmd("FileType", { - pattern = "json", - callback = function(ev) - vim.bo[ev.buf].formatprg = "jq" - print("It's a json file") - end, }) +-- Enable all LSP servers +vim.lsp.enable({ 'clangd', 'ts_ls', 'lua_ls', 'cssls', 'yamlls', 'intelephense', 'gopls' }) --- lspc.intelephense.setup() +-- JSON file formatting with jq +vim.api.nvim_create_autocmd("FileType", { + pattern = "json", + callback = function(ev) + vim.bo[ev.buf].formatprg = "jq" + end, +}) diff --git a/hosts/nb/modules/development/nvim/config/project.lua b/hosts/nb/modules/development/nvim/config/project.lua index f56e374..42cd790 100644 --- a/hosts/nb/modules/development/nvim/config/project.lua +++ b/hosts/nb/modules/development/nvim/config/project.lua @@ -32,7 +32,7 @@ config = { ignore_lsp = {}, } -local status_ok, project = pcall(require, "project_nvim") +local status_ok, project = pcall(require, "project") if not status_ok then return end diff --git a/hosts/nb/modules/development/nvim/config/which-key.lua b/hosts/nb/modules/development/nvim/config/which-key.lua index 6b67e89..c510b8f 100644 --- a/hosts/nb/modules/development/nvim/config/which-key.lua +++ b/hosts/nb/modules/development/nvim/config/which-key.lua @@ -1,5 +1,3 @@ -vim.g.mapleader = " " - local function smart_quit() local bufnr = vim.api.nvim_get_current_buf() local modified = vim.api.nvim_buf_get_option(bufnr, "modified") @@ -27,122 +25,77 @@ end local wk = require("which-key") -wk.setup({}) - -wk.register({ - [""] = { - - [";"] = { "Alpha", "Dashboard" }, - ["w"] = { "w!", "Save" }, - ["q"] = { "smart_quit()", "Quit" }, - ["/"] = { "(comment_toggle_linewise_current)", "Comment toggle current line" }, - ["c"] = { "BufferKill", "Close Buffer" }, - ["f"] = { find_project_files, "Find File" }, - ["h"] = { "nohlsearch", "No Highlight" }, - ["t"] = { "TodoTelescope keywords=TODO,FIX", "Find TODO,FIX" }, - b = { - name = "Buffers", - j = { "BufferLinePick", "Jump" }, - f = { "Telescope buffers", "Find" }, - b = { "BufferLineCyclePrev", "Previous" }, - n = { "BufferLineCycleNext", "Next" }, - -- w = { "BufferWipeout", "Wipeout" }, -- TODO: implement this for bufferline - e = { - "BufferLinePickClose", - "Pick which buffer to close", - }, - h = { "BufferLineCloseLeft", "Close all to the left" }, - l = { - "BufferLineCloseRight", - "Close all to the right", - }, - D = { - "BufferLineSortByDirectory", - "Sort by directory", - }, - L = { - "BufferLineSortByExtension", - "Sort by language", - }, - }, - -- " Available Debug Adapters: - -- " https://microsoft.github.io/debug-adapter-protocol/implementors/adapters/ - -- " Adapter configuration and installation instructions: - -- " https://github.com/mfussenegger/nvim-dap/wiki/Debug-Adapter-installation - -- " Debug Adapter protocol: - -- " https://microsoft.github.io/debug-adapter-protocol/ - -- " Debugging - g = { - name = "Git", - g = { Lazygit_toggle, "Lazygit" }, - j = { "lua require 'gitsigns'.next_hunk({navigation_message = false})", "Next Hunk" }, - k = { "lua require 'gitsigns'.prev_hunk({navigation_message = false})", "Prev Hunk" }, - l = { "lua require 'gitsigns'.blame_line()", "Blame" }, - p = { "lua require 'gitsigns'.preview_hunk()", "Preview Hunk" }, - r = { "lua require 'gitsigns'.reset_hunk()", "Reset Hunk" }, - R = { "lua require 'gitsigns'.reset_buffer()", "Reset Buffer" }, - s = { "lua require 'gitsigns'.stage_hunk()", "Stage Hunk" }, - u = { - "lua require 'gitsigns'.undo_stage_hunk()", - "Undo Stage Hunk", - }, - o = { "Telescope git_status", "Open changed file" }, - b = { "Telescope git_branches", "Checkout branch" }, - c = { "Telescope git_commits", "Checkout commit" }, - C = { - "Telescope git_bcommits", - "Checkout commit(for current file)", - }, - d = { - "Gitsigns diffthis HEAD", - "Git Diff", - }, - }, - l = { - name = "LSP", - a = { "lua vim.lsp.buf.code_action()", "Code Action" }, - d = { "Telescope diagnostics bufnr=0 theme=get_ivy", "Buffer Diagnostics" }, - w = { "Telescope diagnostics", "Diagnostics" }, - -- f = { require("lvim.lsp.utils").format, "Format" }, - i = { "LspInfo", "Info" }, - I = { "Mason", "Mason Info" }, - j = { - vim.diagnostic.goto_next, - "Next Diagnostic", - }, - k = { - vim.diagnostic.goto_prev, - "Prev Diagnostic", - }, - l = { vim.lsp.codelens.run, "CodeLens Action" }, - q = { vim.diagnostic.setloclist, "Quickfix" }, - r = { vim.lsp.buf.rename, "Rename" }, - s = { "Telescope lsp_document_symbols", "Document Symbols" }, - S = { - "Telescope lsp_dynamic_workspace_symbols", - "Workspace Symbols", - }, - e = { "Telescope quickfix", "Telescope Quickfix" }, - }, - - - a = { "lua require('telescope.builtin').lsp_code_actions()", "Code Actions" }, - d = { "lua require('telescope.builtin').lsp_document_diagnostics()", "LSP Diagnostics" }, - k = { "lua vim.lsp.buf.signature_help()", "Signature Help" }, - P = { "lua require'telescope'.extensions.projects.projects{}", "Signature Help" }, - } +wk.setup({ + preset = "classic", + delay = 0, + triggers = { + { "", mode = "nxso" }, + { " ", mode = "n" }, -- literal space character + }, }) -wk.register( - { - ["/"] = { "(comment_toggle_linewise_visual)", "Comment toggle linewise (visual)" }, - }, - { - mode = "v", -- VISUAL mode - prefix = "", - buffer = nil, -- Global mappings. Specify a buffer number for buffer local mappings - silent = true, -- use `silent` when creating keymaps - noremap = true, -- use `noremap` when creating keymaps - nowait = true, -- use `nowait` when creating keymaps - } -) +wk.add({ + -- Single key mappings + { ";", "Alpha", desc = "Dashboard" }, + { "w", "w!", desc = "Save" }, + { "q", smart_quit, desc = "Quit" }, + { "/", "(comment_toggle_linewise_current)", desc = "Comment toggle current line" }, + { "c", "BufferKill", desc = "Close Buffer" }, + { "f", find_project_files, desc = "Find File" }, + { "h", "nohlsearch", desc = "No Highlight" }, + { "t", "TodoTelescope keywords=TODO,FIX", desc = "Find TODO,FIX" }, + + -- Buffers group + { "b", group = "Buffers" }, + { "bj", "BufferLinePick", desc = "Jump" }, + { "bf", "Telescope buffers", desc = "Find" }, + { "bb", "BufferLineCyclePrev", desc = "Previous" }, + { "bn", "BufferLineCycleNext", desc = "Next" }, + { "be", "BufferLinePickClose", desc = "Pick which buffer to close" }, + { "bh", "BufferLineCloseLeft", desc = "Close all to the left" }, + { "bl", "BufferLineCloseRight", desc = "Close all to the right" }, + { "bD", "BufferLineSortByDirectory", desc = "Sort by directory" }, + { "bL", "BufferLineSortByExtension", desc = "Sort by language" }, + + -- Git group + { "g", group = "Git" }, + { "gg", Lazygit_toggle, desc = "Lazygit" }, + { "gj", "lua require 'gitsigns'.next_hunk({navigation_message = false})", desc = "Next Hunk" }, + { "gk", "lua require 'gitsigns'.prev_hunk({navigation_message = false})", desc = "Prev Hunk" }, + { "gl", "lua require 'gitsigns'.blame_line()", desc = "Blame" }, + { "gp", "lua require 'gitsigns'.preview_hunk()", desc = "Preview Hunk" }, + { "gr", "lua require 'gitsigns'.reset_hunk()", desc = "Reset Hunk" }, + { "gR", "lua require 'gitsigns'.reset_buffer()", desc = "Reset Buffer" }, + { "gs", "lua require 'gitsigns'.stage_hunk()", desc = "Stage Hunk" }, + { "gu", "lua require 'gitsigns'.undo_stage_hunk()", desc = "Undo Stage Hunk" }, + { "go", "Telescope git_status", desc = "Open changed file" }, + { "gb", "Telescope git_branches", desc = "Checkout branch" }, + { "gc", "Telescope git_commits", desc = "Checkout commit" }, + { "gC", "Telescope git_bcommits", desc = "Checkout commit(for current file)" }, + { "gd", "Gitsigns diffthis HEAD", desc = "Git Diff" }, + + -- LSP group + { "l", group = "LSP" }, + { "la", "lua vim.lsp.buf.code_action()", desc = "Code Action" }, + { "ld", "Telescope diagnostics bufnr=0 theme=get_ivy", desc = "Buffer Diagnostics" }, + { "lw", "Telescope diagnostics", desc = "Diagnostics" }, + { "li", "LspInfo", desc = "Info" }, + { "lI", "Mason", desc = "Mason Info" }, + { "lj", vim.diagnostic.goto_next, desc = "Next Diagnostic" }, + { "lk", vim.diagnostic.goto_prev, desc = "Prev Diagnostic" }, + { "ll", vim.lsp.codelens.run, desc = "CodeLens Action" }, + { "lq", vim.diagnostic.setloclist, desc = "Quickfix" }, + { "lr", vim.lsp.buf.rename, desc = "Rename" }, + { "ls", "Telescope lsp_document_symbols", desc = "Document Symbols" }, + { "lS", "Telescope lsp_dynamic_workspace_symbols", desc = "Workspace Symbols" }, + { "le", "Telescope quickfix", desc = "Telescope Quickfix" }, + + -- Direct LSP shortcuts + { "a", "lua require('telescope.builtin').lsp_code_actions()", desc = "Code Actions" }, + { "d", "lua require('telescope.builtin').lsp_document_diagnostics()", desc = "LSP Diagnostics" }, + { "k", "lua vim.lsp.buf.signature_help()", desc = "Signature Help" }, + { "P", "lua require'telescope'.extensions.projects.projects{}", desc = "Projects" }, + + -- Visual mode mappings + { "/", "(comment_toggle_linewise_visual)", desc = "Comment toggle linewise (visual)", mode = "v" }, +}) diff --git a/hosts/nb/modules/development/nvim/default.nix b/hosts/nb/modules/development/nvim/default.nix index 17f7d5c..9352643 100644 --- a/hosts/nb/modules/development/nvim/default.nix +++ b/hosts/nb/modules/development/nvim/default.nix @@ -13,7 +13,7 @@ in environment.systemPackages = with pkgs; [ nodePackages.typescript-language-server - sumneko-lua-language-server + lua-language-server nest nodePackages.intelephense nodePackages.vscode-langservers-extracted @@ -105,9 +105,9 @@ in "sops" ]); in '' - lua << EOF - ${luaConfig} - EOF +lua << EOF +${luaConfig} +EOF ''; }; extraLuaPackages = luaPackages: [ luaPackages.lyaml ]; diff --git a/hosts/nb/users/default.nix b/hosts/nb/users/default.nix index 8b0d8cb..07bddc1 100644 --- a/hosts/nb/users/default.nix +++ b/hosts/nb/users/default.nix @@ -1,6 +1,6 @@ { config, pkgs, ... }: let - home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz"; + home-manager = builtins.fetchTarball "https://github.com/nix-community/home-manager/archive/release-25.11.tar.gz"; in diff --git a/hosts/nb/users/dominik.nix b/hosts/nb/users/dominik.nix index 4a330f2..b97ae50 100644 --- a/hosts/nb/users/dominik.nix +++ b/hosts/nb/users/dominik.nix @@ -135,11 +135,11 @@ let { name = "q"; value = "{searchTerms}"; } ]; }]; - iconUpdateURL = "https://perplexity.ai/favicon.ico"; + icon = "https://perplexity.ai/favicon.ico"; definedAliases = [ "@perplexity" ]; }; - "Google".metaData.hidden = true; - "Bing".metaData.hidden = true; + "google".metaData.hidden = true; + "bing".metaData.hidden = true; }; }; @@ -301,26 +301,23 @@ in programs.git = { enable = true; lfs.enable = true; - package = pkgs.gitAndTools.gitFull; - userName = "Dominik Polakovics"; - userEmail = "dominik.polakovics@cloonar.com"; + package = pkgs.gitFull; # signing = { # key = "dominik.polakovics@cloonar.com"; # signByDefault = false; # }; - iniContent = { + settings = { + user.name = "Dominik Polakovics"; + user.email = "dominik.polakovics@cloonar.com"; # Branch with most recent change comes first branch.sort = "-committerdate"; # Remember and auto-resolve merge conflicts # https://git-scm.com/book/en/v2/Git-Tools-Rerere rerere.enabled = true; - }; - extraConfig = { - "url.gitea@git.cloonar.com:" = { + "url \"gitea@git.cloonar.com:\"" = { insteadOf = "https://git.cloonar.com/"; }; }; - }; programs.thunderbird = { @@ -525,7 +522,7 @@ in settings = firefoxSettings; # userChrome = firefoxUserChrome; search = firefoxSearchSettings; - extensions = firefoxExtensions; + extensions.packages = firefoxExtensions; }; social = { id = 1; @@ -560,7 +557,7 @@ in id = 3; }; }; - extensions = firefoxExtensions; + extensions.packages = firefoxExtensions; }; }; };