diff --git a/flake.lock b/flake.lock index a80b6f5..8ed3eb9 100644 --- a/flake.lock +++ b/flake.lock @@ -1170,3 +1170,4 @@ "root": "root", "version": 7 } + 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..463d3ef 100644 --- a/modules/user/zsh.nix +++ b/modules/user/zsh.nix @@ -1,5 +1,6 @@ -{ config, pkgs, ... }: { +{ config, osConfig, pkgs, lib, ... }: { home.packages = [ pkgs.nh ]; + programs = { zoxide.enable = true; fzf.enable = true; @@ -62,11 +63,12 @@ cd = "z"; lg = "lazygit"; s = "nix-shell . --run zsh"; + } // lib.optionalAttrs osConfig.boot.loader.grub.useOSProber { + win = "sudo grub-reboot 2; sudo reboot"; }; - initContent = '' + initContent = /*bash*/ '' eval "$(zoxide init zsh)" - eval "$(nh completions zsh)" source "$(fzf-share)/key-bindings.zsh" source "$(fzf-share)/completion.zsh" ''; 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 = {