From 2782572111b4e6c1f5af90ea1a232df72e43d362 Mon Sep 17 00:00:00 2001 From: Doloro1978 Date: Mon, 10 Aug 2026 19:21:14 +0100 Subject: [PATCH] mreow --- config/hosts/aspects/doloro-desktop/home.nix | 33 ++++---- config/modules/nixvim/default.nix | 41 +++++++--- config/modules/printing.nix | 27 +++++++ config/modules/wivrn.nix | 31 ++++++-- flake.lock | 82 ++++++++++---------- 5 files changed, 137 insertions(+), 77 deletions(-) create mode 100644 config/modules/printing.nix diff --git a/config/hosts/aspects/doloro-desktop/home.nix b/config/hosts/aspects/doloro-desktop/home.nix index d776c5c..97ca98a 100644 --- a/config/hosts/aspects/doloro-desktop/home.nix +++ b/config/hosts/aspects/doloro-desktop/home.nix @@ -20,6 +20,7 @@ modules.nikpkgs modules.fonts modules.unity + modules.printing (modules.obs { audio = true; @@ -78,23 +79,23 @@ ... }: { - xdg.configFile."hypr/hyprland-local.lua" = { - text = '' - -- Host overrides (desktop): pin workspaces to monitors. - -- HDMI-A-1 (left) shows workspace 1, DP-2 (right) shows workspace 2. - hl.workspace_rule({ workspace = "name:1", monitor = "HDMI-A-1" }) - hl.workspace_rule({ workspace = "name:2", monitor = "DP-2" }) + xdg.configFile."hypr/hyprland-local.lua" = { + text = '' + -- Host overrides (desktop): pin workspaces to monitors. + -- HDMI-A-1 (left) shows workspace 1, DP-2 (right) shows workspace 2. + hl.workspace_rule({ workspace = "name:1", monitor = "HDMI-A-1" }) + hl.workspace_rule({ workspace = "name:2", monitor = "DP-2" }) - -- Autostart (workspace placement applies only to these spawned windows) - hl.on("hyprland.start", function() - hl.exec_cmd("steam", { workspace = "6 silent" }) - hl.exec_cmd("telegram-desktop", { workspace = "8 silent" }) - hl.exec_cmd("equibop", { workspace = "8 silent" }) - hl.exec_cmd("spotify", { workspace = "9 silent" }) - hl.exec_cmd("obs", { workspace = "10 silent" }) - end) - ''; - }; + -- Autostart (workspace placement applies only to these spawned windows) + hl.on("hyprland.start", function() + hl.exec_cmd("steam", { workspace = "6 silent" }) + hl.exec_cmd("telegram-desktop", { workspace = "8 silent" }) + hl.exec_cmd("equibop", { workspace = "8 silent" }) + hl.exec_cmd("spotify", { workspace = "9 silent" }) + hl.exec_cmd("obs", { workspace = "10 silent" }) + end) + ''; + }; home.packages = with pkgs; [ equibop telegram-desktop diff --git a/config/modules/nixvim/default.nix b/config/modules/nixvim/default.nix index 4b2981b..b4a260d 100644 --- a/config/modules/nixvim/default.nix +++ b/config/modules/nixvim/default.nix @@ -29,9 +29,20 @@ rev = "0d040ed81f7953118b81cd12681fcdfcac069803"; hash = "sha256-UF9zeO5Uujdt2MEwy2d2Lhk6JRnEN4vrEvYslv0/zaA"; }; - nvimSkipModules = [ "tiny-code-action.previewers.snacks" ]; - }; - in + nvimSkipModules = [ "tiny-code-action.previewers.snacks" ]; + }; + cmp-lsp-rs = pkgs.vimUtils.buildVimPlugin { + name = "nvim-cmp-lsp-rs"; + src = pkgs.fetchFromGitHub { + owner = "zjp-CN"; + repo = "nvim-cmp-lsp-rs"; + rev = "329075b806deb719d3ce4f55a7e443541ce5289d"; + hash = "sha256-rBABhsShCrx7Gofm1mC6DQAL0KeNtQidW9eMr9kfwGI="; + }; + # nvim-cmp on rtp during the require check (cmp_lsp_rs requires cmp.types.lsp at load time) + dependencies = [ pkgs.vimPlugins.nvim-cmp ]; + }; + in { imports = [ inputs.nixvim.homeModules.nixvim @@ -222,7 +233,6 @@ ":" = { mapping.__raw = "cmp.mapping.preset.cmdline()"; sources = [ - { name = "path"; } { name = "cmdline"; } ]; }; @@ -239,6 +249,7 @@ { name = "nvim_lsp"; priority = 100; + entry_filter = "require('cmp_lsp_rs').filter_out.rust_entry_filter"; } { name = "luasnip"; @@ -248,10 +259,6 @@ name = "buffer"; priority = 50; } - { - name = "path"; - priority = 40; - } ]; mapping = { "" = "cmp.mapping.complete()"; @@ -264,8 +271,16 @@ "" = "cmp.mapping(function(fallback) if cmp.visible() then cmp.select_next_item() elseif require('luasnip').expand_or_jumpable() then require('luasnip').expand_or_jump() else fallback() end end, {'i', 's'})"; }; - window = { - completion = { + sorting = { + comparators = [ + "require('cmp.config.compare').exact" + "require('cmp.config.compare').score" + "require('cmp_lsp_rs').comparators.inscope_inherent_import" + "require('cmp_lsp_rs').comparators.sort_by_label_but_underscore_last" + ]; + }; + window = { + completion = { border = "rounded"; winhighlight = "Normal:Pmenu,FloatBorder:Pmenu,CursorLine:PmenuSel,Search:None"; }; @@ -312,6 +327,7 @@ }; extraPlugins = with pkgs; [ tiny-code-action + cmp-lsp-rs ]; opts = { number = true; @@ -325,8 +341,9 @@ mapleader = " "; }; extraConfigLua = '' - -- LSP client writes server stderr + errors to disk on the main loop; nixd spams info logs -> 5MB+ logs. Kill it. - vim.lsp.set_log_level("off") + -- LSP client writes server stderr + errors to disk on the main loop; nixd spams info logs -> 5MB+ logs. + -- warn level: captures server stderr (incl. rust-analyzer slow-request timing) without nixd's info spam. + vim.lsp.set_log_level("warn") -- tree-sitter-nix uses (#is-not? local) which the new nvim-treesitter main branch no longer registers vim.treesitter.query.add_predicate("is-not?", function() return true end, { force = true }) diff --git a/config/modules/printing.nix b/config/modules/printing.nix new file mode 100644 index 0000000..caf3c97 --- /dev/null +++ b/config/modules/printing.nix @@ -0,0 +1,27 @@ +{ modules, ... }: +{ + modules.printing = { + nixos = + { pkgs, ... }: + { + services.avahi = { + enable = true; + nssmdns4 = true; + openFirewall = true; + }; + + services.printing = { + enable = true; + drivers = with pkgs; [ + cups-filters + cups-browsed + ]; + }; + }; + homeManager = + { ... }: + { + + }; + }; +} diff --git a/config/modules/wivrn.nix b/config/modules/wivrn.nix index 4aba3f3..bbe84cd 100644 --- a/config/modules/wivrn.nix +++ b/config/modules/wivrn.nix @@ -1,18 +1,33 @@ { den, modules, ... }: { modules.wivrn = { - homeManager = - { pkgs, ... }: - { - home.packages = with pkgs; [ - wivrn - wayvr - ]; - }; + homeManager = + { pkgs, ... }: + { + # nixpkgs builds wivrn with NVENC off (WIVRN_USE_NVENC follows cudaSupport); + # without it "nvenc" in config.json fails with "Failed to find a suitable video encoder" + nixpkgs.overlays = [ + (final: prev: { + wivrn = prev.wivrn.override { cudaSupport = true; }; + }) + ]; + home.packages = with pkgs; [ + wivrn + wayvr + ]; + }; nixos = { pkgs, lib, ... }: { + # nixpkgs only enables the NVENC encoder (WIVRN_USE_NVENC) when cudaSupport is set; + # without it "nvenc" in config.json fails with "Failed to find a suitable video encoder" + nixpkgs.overlays = [ + (final: prev: { + wivrn = prev.wivrn.override { cudaSupport = true; }; + }) + ]; + services.wivrn = { enable = true; openFirewall = true; diff --git a/flake.lock b/flake.lock index 3035b8b..c1cc00c 100644 --- a/flake.lock +++ b/flake.lock @@ -482,11 +482,11 @@ "utils": "utils" }, "locked": { - "lastModified": 1786018481, - "narHash": "sha256-EXAFX1ynjvC6LaWysOXDTg5UqotJ+OW84poGe4mKrKw=", + "lastModified": 1786241105, + "narHash": "sha256-q/iBiqM4g029hhjsQcNyObWBsPrwAxtQo21bkXjeu0E=", "owner": "vikingnope", "repo": "helium-browser-nix-flake", - "rev": "abd8c2de2a67db7371388edfc5f6c080012d6adf", + "rev": "88eb5c7ee75ef26ebaec8987274102063f34745b", "type": "github" }, "original": { @@ -502,11 +502,11 @@ ] }, "locked": { - "lastModified": 1786031233, - "narHash": "sha256-TIDlLTLI1/pB7IqgjzcKQjpODQsZE2oII4XGG9B6KjI=", + "lastModified": 1786356609, + "narHash": "sha256-ou8fYz5w9yhXC8YbvvExybFIa19MyW5G/8dEPqa90hM=", "owner": "nix-community", "repo": "home-manager", - "rev": "7834e82588860aaf780cec1366524456a70898d7", + "rev": "c30c7955cec30d664a9baced6bc0112e263d4647", "type": "github" }, "original": { @@ -590,11 +590,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1786137477, - "narHash": "sha256-H2BW655hSVJUVB1TpkQb+Is77heIg9Vjh/64sEqRzds=", + "lastModified": 1786298417, + "narHash": "sha256-nJZCCA1YXQqnLQSNVrtY+IxK0pnVLV5qJSw79axtpCo=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "65be579e9c4486d1b2a96914ece96ac1f669c892", + "rev": "f7daeb7f79d48745a2894367e9e73229ac162abe", "type": "github" }, "original": { @@ -839,11 +839,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1785342502, - "narHash": "sha256-qu4abwEmOHOzpdBUigpLfmHObkRgJp5sRjbnnyEKzSo=", + "lastModified": 1786205183, + "narHash": "sha256-+mhhWk6V7jmLW7kXkFRYQ3yDNVxQzuiAwkD6Nwb9LnE=", "owner": "JPyke3", "repo": "hytale-launcher-nix", - "rev": "2bc2d0dd6fcd4c4a61d9ab33b2149b21286e79d1", + "rev": "34131e0812cde0b9335f1acafbedfa17431325e8", "type": "github" }, "original": { @@ -1153,11 +1153,11 @@ }, "nixpkgs-master": { "locked": { - "lastModified": 1786178086, - "narHash": "sha256-/qg82qBl7I7SVb8tmu8JZyasakhasEBH2GSiBY/zev8=", + "lastModified": 1786363475, + "narHash": "sha256-YU0FKw3bKh/t8bx9Sb/vNG7hVaLzK5Wqy4QcZGm6624=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fd9d47a04c10e84befb7fb5d9cf9808ca3c7ef9d", + "rev": "6f90103c0e9f8c317e1c85d54467c1bd1a636190", "type": "github" }, "original": { @@ -1201,11 +1201,11 @@ }, "nixpkgs_11": { "locked": { - "lastModified": 1785967620, - "narHash": "sha256-IItrdb7Puk05RqOBWZYFC5X6Wl1sJmCfh5MWVHw5iMM=", + "lastModified": 1786106723, + "narHash": "sha256-zDSUbpoeo/9ZmD2+wXnzxoo1+uhL8vxc0b8yuYMKYq0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "b7c2ada94fe99c15b0dbcf4d11fd7850b957a436", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", "type": "github" }, "original": { @@ -1265,11 +1265,11 @@ }, "nixpkgs_15": { "locked": { - "lastModified": 1785571196, - "narHash": "sha256-xwSqxTsama0YTtS78+4YyCm6jJg09v78QWfP1cAyoVA=", - "rev": "148bab9c1c3c53136ecb44a6ea356a0ed5b39b06", + "lastModified": 1786106723, + "narHash": "sha256-CgKDSHL6rqAAQkkvg1xaZDQXb77+4XW73iGcUMJ+2w0=", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1045728.148bab9c1c3c/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1049422.f13ff45afd1b/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -1323,11 +1323,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1785828668, - "narHash": "sha256-8fsyqeO+mJqvIzeO4xIpgJe/f7MTbbVTEC6RT6WSXNs=", + "lastModified": 1786106723, + "narHash": "sha256-zDSUbpoeo/9ZmD2+wXnzxoo1+uhL8vxc0b8yuYMKYq0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "e72e4f299401a3689d4b3d5fc6496b11db7064eb", + "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", "type": "github" }, "original": { @@ -1339,11 +1339,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1785090369, - "narHash": "sha256-m0pDuRJG7EDo9ri+4Ksu83VsI+PlxNC9lNBfydejce4=", + "lastModified": 1785967620, + "narHash": "sha256-IItrdb7Puk05RqOBWZYFC5X6Wl1sJmCfh5MWVHw5iMM=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "624af665418d3c65d544145b4d34ad696439570e", + "rev": "b7c2ada94fe99c15b0dbcf4d11fd7850b957a436", "type": "github" }, "original": { @@ -1448,11 +1448,11 @@ "nixpkgs": "nixpkgs_13" }, "locked": { - "lastModified": 1786143836, - "narHash": "sha256-YIj1rNf9ubzbhEpJbaCarFLrK4wxy0oYV0ttkIOvcuM=", + "lastModified": 1786241080, + "narHash": "sha256-Ho4UwswLVt7caOnLcwmWLgBeqAsp5Vyd/YOZlZQiKVM=", "ref": "main", - "rev": "530a0e8c78cf7bf20e4b58f859274218d8aabdc9", - "revCount": 361, + "rev": "c1af41588796514252420f67c5f994df7dad155d", + "revCount": 364, "type": "git", "url": "https://git.molez.org/mandlm/omp-nix" }, @@ -1653,11 +1653,11 @@ "systems": "systems_5" }, "locked": { - "lastModified": 1785652745, - "narHash": "sha256-pD0VE/XwjQ3tLyxTzXKdm6JuIEWr/Jaote6xpXGZrXk=", + "lastModified": 1786252193, + "narHash": "sha256-a9SbkJWloPso00G4zIUkerd9n2qRyDYoDPeUc4O3ME8=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "802040514e09bb8539237f52f68cf053b987c65e", + "rev": "a87616995724d27079b495ca07318512af799449", "type": "github" }, "original": { @@ -1686,11 +1686,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1786144742, - "narHash": "sha256-ROqWcNC1qYU2p0EY1d9BHnZbcl0ZDaCmXtojENSqL18=", + "lastModified": 1786216702, + "narHash": "sha256-fOOmw9tUYeqWVnK2w2NiuMTmGIbluj8xiBFTTFDCcEE=", "owner": "nix-community", "repo": "stylix", - "rev": "d18ba6834c7f1141429b6d4cf148fff6c8c41139", + "rev": "b67debfd2db1eb1f0fd8740b950f598bbaf74b8f", "type": "github" }, "original": { @@ -1954,11 +1954,11 @@ ] }, "locked": { - "lastModified": 1785846792, - "narHash": "sha256-sNIGmqZJiOM/lCWUuslV53zuk/p5sGCRcS3kHKfxQvA=", + "lastModified": 1786032767, + "narHash": "sha256-C5K27sF/jaQe1BgB1/575r01oTAvw6mrDWPS1qUl6X0=", "owner": "hyprwm", "repo": "xdg-desktop-portal-hyprland", - "rev": "b653ab53a435e92cc00f34771e6823bc59f2f740", + "rev": "688feb3d88404598f12440a668136e74044391de", "type": "github" }, "original": {