From c4c77bec1b284aaabe2d337b02592d54ec890cbd Mon Sep 17 00:00:00 2001 From: Sweetbread Date: Fri, 6 Mar 2026 06:06:10 +0300 Subject: [PATCH] Update system --- flake.lock | 66 +++++++++++++++---------------- modules/host/vpn.nix | 4 +- modules/host/xdg-portal.nix | 40 +++++++++++++++++++ modules/user.nix | 1 - modules/user/packages/coding.nix | 6 --- modules/user/packages/desktop.nix | 1 + modules/user/zsh.nix | 21 +++++----- user/chest/home.nix | 3 +- user/sweetbread/home.nix | 2 + 9 files changed, 91 insertions(+), 53 deletions(-) create mode 100644 modules/host/xdg-portal.nix delete mode 100644 modules/user/packages/coding.nix diff --git a/flake.lock b/flake.lock index a80b6f5..6b4b217 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1771029844, - "narHash": "sha256-fY6UGNKCQcYkflnkdzNRbuGNJiavQzokZjMCMVfUgCg=", + "lastModified": 1772290697, + "narHash": "sha256-MyLNx13P+pv1RszO1rMd3144NEeU/oU4iL+xOTpRoaU=", "owner": "ezKEa", "repo": "aagl-gtk-on-nix", - "rev": "c3b9c0ab9e24d1648ed29040164704a1cd8fa3c9", + "rev": "dcb53a4cb4cb09ef7f08328428ba559be5b9f01b", "type": "github" }, "original": { @@ -313,11 +313,11 @@ ] }, "locked": { - "lastModified": 1771037579, - "narHash": "sha256-NX5XuhGcsmk0oEII2PEtMRgvh2KaAv3/WWQsOpxAgR4=", + "lastModified": 1772633327, + "narHash": "sha256-jl+DJB2DUx7EbWLRng+6HNWW/1/VQOnf0NsQB4PlA7I=", "owner": "nix-community", "repo": "home-manager", - "rev": "05e6dc0f6ed936f918cb6f0f21f1dad1e4c53150", + "rev": "5a75730e6f21ee624cbf86f4915c6e7489c74acc", "type": "github" }, "original": { @@ -473,11 +473,11 @@ ] }, "locked": { - "lastModified": 1770899531, - "narHash": "sha256-UBrWjh0DR8db60aLNkTnZTJ9F4kWK0Y7rUDNJC88W7A=", + "lastModified": 1771865848, + "narHash": "sha256-xwNa+1D8WPsDnJtUofDrtyDCZKZotbUymzV/R5s+M0I=", "owner": "hyprwm", "repo": "hyprland-plugins", - "rev": "e03c34ccd51280a44ea6d1f5c040cd81ecca25ed", + "rev": "b85a56b9531013c79f2f3846fd6ee2ff014b8960", "type": "github" }, "original": { @@ -701,11 +701,11 @@ }, "nixpkgs-stable": { "locked": { - "lastModified": 1770770419, - "narHash": "sha256-iKZMkr6Cm9JzWlRYW/VPoL0A9jVKtZYiU4zSrVeetIs=", + "lastModified": 1772598333, + "narHash": "sha256-YaHht/C35INEX3DeJQNWjNaTcPjYmBwwjFJ2jdtr+5U=", "owner": "nixos", "repo": "nixpkgs", - "rev": "6c5e707c6b5339359a9a9e215c5e66d6d802fd7a", + "rev": "fabb8c9deee281e50b1065002c9828f2cf7b2239", "type": "github" }, "original": { @@ -765,11 +765,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1771008912, - "narHash": "sha256-gf2AmWVTs8lEq7z/3ZAsgnZDhWIckkb+ZnAo5RzSxJg=", + "lastModified": 1772624091, + "narHash": "sha256-QKyJ0QGWBn6r0invrMAK8dmJoBYWoOWy7lN+UHzW1jc=", "owner": "nixos", "repo": "nixpkgs", - "rev": "a82ccc39b39b621151d6732718e3e250109076fa", + "rev": "80bdc1e5ce51f56b19791b52b2901187931f5353", "type": "github" }, "original": { @@ -781,11 +781,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1770380644, - "narHash": "sha256-P7dWMHRUWG5m4G+06jDyThXO7kwSk46C1kgjEWcybkE=", + "lastModified": 1772173633, + "narHash": "sha256-MOH58F4AIbCkh6qlQcwMycyk5SWvsqnS/TCfnqDlpj4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ae67888ff7ef9dff69b3cf0cc0fbfbcd3a722abe", + "rev": "c0f3d81a7ddbc2b1332be0d8481a672b4f6004d6", "type": "github" }, "original": { @@ -813,11 +813,11 @@ }, "nixpkgs_8": { "locked": { - "lastModified": 1768875095, - "narHash": "sha256-dYP3DjiL7oIiiq3H65tGIXXIT1Waiadmv93JS0sS+8A=", + "lastModified": 1772419343, + "narHash": "sha256-QU3Cd5DJH7dHyMnGEFfPcZDaCAsJQ6tUD+JuUsYqnKU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ed142ab1b3a092c4d149245d0c4126a5d7ea00b0", + "rev": "93178f6a00c22fcdee1c6f5f9ab92f2072072ea9", "type": "github" }, "original": { @@ -916,11 +916,11 @@ ] }, "locked": { - "lastModified": 1769091129, - "narHash": "sha256-Jj/vIHjiu4OdDIrDXZ3xOPCJrMZZKzhE2UIVXV/NYzY=", + "lastModified": 1772420823, + "narHash": "sha256-q3oVwz1Rx41D1D+F6vg41kpOkk3Zi3KwnkHEZp7DCGs=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "131e22d6a6d54ab72aeef6a5a661ab7005b4c596", + "rev": "458eea8d905c609e9d889423e6b8a1c7bc2f792c", "type": "github" }, "original": { @@ -934,11 +934,11 @@ "nixpkgs": "nixpkgs_6" }, "locked": { - "lastModified": 1770683991, - "narHash": "sha256-xVfPvXDf9QN3Eh9dV+Lw6IkWG42KSuQ1u2260HKvpnc=", + "lastModified": 1772495394, + "narHash": "sha256-hmIvE/slLKEFKNEJz27IZ8BKlAaZDcjIHmkZ7GCEjfw=", "owner": "Mic92", "repo": "sops-nix", - "rev": "8b89f44c2cc4581e402111d928869fe7ba9f7033", + "rev": "1d9b98a29a45abe9c4d3174bd36de9f28755e3ff", "type": "github" }, "original": { @@ -966,11 +966,11 @@ "tinted-zed": "tinted-zed" }, "locked": { - "lastModified": 1770914701, - "narHash": "sha256-QHFYyngohNhih4w+3IqQty5DV+p1txsx1kkk6XJWar8=", + "lastModified": 1772296853, + "narHash": "sha256-pAtzPsgHRKw/2Kv8HgAjSJg450FDldHPWsP3AKG/Xj0=", "owner": "danth", "repo": "stylix", - "rev": "db03fed72e5ca02be34e1d24789345a943329738", + "rev": "c4b8e80a1020e09a1f081ad0f98ce804a6e85acf", "type": "github" }, "original": { @@ -1153,11 +1153,11 @@ "rust-overlay": "rust-overlay_2" }, "locked": { - "lastModified": 1770959024, - "narHash": "sha256-r2fZFW+xZxEdyORsAipCrnuxQblGGldtZcx0iSQI1ZQ=", + "lastModified": 1772712963, + "narHash": "sha256-Hic9c6owAhT9avgCrV0+9UzCQT7v0urKsc7KYnCMTbo=", "owner": "sxyazi", "repo": "yazi", - "rev": "13bdb164a473091b46e857d37599e7e1ae22665e", + "rev": "be91b4111c6d063cd2d9cc0685337b8700263b86", "type": "github" }, "original": { diff --git a/modules/host/vpn.nix b/modules/host/vpn.nix index 003ad37..5c0b88b 100644 --- a/modules/host/vpn.nix +++ b/modules/host/vpn.nix @@ -19,8 +19,8 @@ environment.etc = { "v2raya/ru_geoip.dat".source = pkgs.fetchurl { name = "geoip.dat"; - url = "https://github.com/runetfreedom/russia-blocked-geoip/releases/download/202602271541/geoip.dat"; - hash = "sha256-j+Cjq8OeZFWTyb+QvXTbWDoLaVHPcqQLNSc5Y+p5c/8="; + url = "https://github.com/runetfreedom/russia-blocked-geoip/releases/download/202603040949/geoip.dat"; + hash = "sha256-TmWQqoC26+vrJ2xaRrIiPM2kp9xhrw9h9H8yjq4CA7U="; }; "v2raya/bolt.db".source = config.sops.secrets.vpn_bolt.path; diff --git a/modules/host/xdg-portal.nix b/modules/host/xdg-portal.nix new file mode 100644 index 0000000..818e391 --- /dev/null +++ b/modules/host/xdg-portal.nix @@ -0,0 +1,40 @@ +{ pkgs, inputs, ... }: + +{ + # Важно: портал должен быть собран под тот же Hyprland, что и сам Hyprland + # (есть отдельная опция именно для этого). + programs.hyprland = { + package = inputs.hyprland.packages.${pkgs.system}.hyprland; + portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland; + }; + + xdg.portal = { + enable = true; + + # Делает так, что xdg-open идёт через портал (часто полезно для sandbox/FHS/wrappers). + # Опция есть в NixOS как xdg.portal.xdgOpenUsePortal :contentReference[oaicite:2]{index=2} + xdgOpenUsePortal = true; + + # Два бэкенда: Hyprland (композитор-специфичное) + GTK (интеграция/диалоги/OpenURI) + extraPortals = [ + inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland + pkgs.xdg-desktop-portal-gtk + ]; + + # Роутинг интерфейсов по portals.conf(5): + # xdg-desktop-portal выбирает конфиг по XDG_CURRENT_DESKTOP (с lower-case) :contentReference[oaicite:3]{index=3} + config = { + common = { + default = [ "gtk" ]; + "org.freedesktop.impl.portal.FileChooser" = [ "gtk" ]; + "org.freedesktop.impl.portal.ScreenCast" = [ "hyprland" ]; + "org.freedesktop.impl.portal.Screenshot" = [ "hyprland" ]; + "org.freedesktop.impl.portal.GlobalShortcuts" = [ "hyprland" ]; + }; + + # Если XDG_CURRENT_DESKTOP=Hyprland присутствует — предпочитаем Hyprland, + # но оставляем gtk как fallback для интерфейсов, которых нет у hyprland-портала. + hyprland.default = [ "hyprland" "gtk" ]; + }; + }; +} \ No newline at end of file diff --git a/modules/user.nix b/modules/user.nix index c481113..eb4bf82 100644 --- a/modules/user.nix +++ b/modules/user.nix @@ -16,7 +16,6 @@ ./user/packages/art.nix ./user/packages/desktop.nix - ./user/packages/coding.nix ./user/packages/utils.nix ]; } diff --git a/modules/user/packages/coding.nix b/modules/user/packages/coding.nix deleted file mode 100644 index ea7ac72..0000000 --- a/modules/user/packages/coding.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ pkgs, ... }: { - home.packages = with pkgs; [ - jetbrains.idea-oss - android-studio - ]; -} diff --git a/modules/user/packages/desktop.nix b/modules/user/packages/desktop.nix index b36d7bb..28b99b6 100644 --- a/modules/user/packages/desktop.nix +++ b/modules/user/packages/desktop.nix @@ -4,6 +4,7 @@ vesktop obs-studio mpv + imhex obsidian qbittorrent thunderbird diff --git a/modules/user/zsh.nix b/modules/user/zsh.nix index 3875889..2fdd812 100644 --- a/modules/user/zsh.nix +++ b/modules/user/zsh.nix @@ -1,5 +1,4 @@ -{ config, pkgs, ... }: { - home.packages = [ pkgs.nh ]; +{ config, osConfig, pkgs, lib, ... }: { programs = { zoxide.enable = true; fzf.enable = true; @@ -51,22 +50,21 @@ autosuggestion.enable = true; syntaxHighlighting.enable = true; - shellAliases = let - flakeDir = "~/nix"; - in { - rb = "nh os switch ${flakeDir}"; - trb = "nh os test ${flakeDir}"; - upd = "nix flake update --flake ${flakeDir}"; + shellAliases = { + rb = "nh os switch"; + trb = "nh os test"; + upd = "nix flake update --flake ~/nix"; cat = "${pkgs.lib.getExe pkgs.bat}"; cd = "z"; lg = "lazygit"; s = "nix-shell . --run zsh"; + } // lib.optionalAttrs osConfig.boot.loader.grub.useOSProber { + win = "sudo grub-reboot 2; sudo reboot"; }; initContent = '' eval "$(zoxide init zsh)" - eval "$(nh completions zsh)" source "$(fzf-share)/key-bindings.zsh" source "$(fzf-share)/completion.zsh" ''; @@ -84,5 +82,10 @@ oh-my-zsh.enable = true; }; + + nh = { + enable = true; + flake = "nix"; + }; }; } diff --git a/user/chest/home.nix b/user/chest/home.nix index f6a91bd..6a97f32 100644 --- a/user/chest/home.nix +++ b/user/chest/home.nix @@ -2,11 +2,10 @@ imports = [ ../../modules/user/packages/cs_utils.nix ]; - disabledModules = [ ../../modules/user/packages/art.nix - ../../modules/user/packages/coding.nix ]; + home.packages = with pkgs; [ nautilus python3 diff --git a/user/sweetbread/home.nix b/user/sweetbread/home.nix index e92ee7c..46e5388 100644 --- a/user/sweetbread/home.nix +++ b/user/sweetbread/home.nix @@ -4,7 +4,9 @@ ]; programs.hyprlock.enable = true; home.packages = with pkgs; [ + android-studio vivaldi + weechat ]; xdg.mimeApps = {