Les sessions hermes ouvertes dans un pane herdr tournent sous marc, pas sous le compte de service : HERMES_HOME=/var/lib/hermes/.hermes (users/marc/home.nix) pour qu'elles lisent et écrivent le même état (sessions, mémoire, lazy-python) que le service hermes-agent. Accès : groupe secondaire hermes pour marc (users.nix) et ACL tmpfiles sur /var/lib/hermes (traversée) puis .hermes et .hermes/plugins (rwx + défauts ACL), pour que les fichiers créés par marc restent lisibles côté service. C'est ce qui rend le plugin herdr-agent-state utilisable : il parle au socket herdr de marc.
189 lines
5.4 KiB
Nix
189 lines
5.4 KiB
Nix
{
|
|
inputs,
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
...
|
|
}: {
|
|
imports = [
|
|
./packages.nix
|
|
|
|
inputs.catppuccin.homeModules.catppuccin
|
|
inputs.nixvim.homeModules.default
|
|
inputs.sops.homeManagerModules.sops
|
|
inputs.sopswarden.homeManagerModules.default
|
|
inputs.niri.homeModules.niri
|
|
inputs.nix-flatpak.homeManagerModules.nix-flatpak
|
|
inputs.spicetify.homeManagerModules.spicetify
|
|
|
|
# inputs.backtest.packages.${pkgs.system}.default
|
|
# inputs.option-pricer.packages.${pkgs.system}.default
|
|
|
|
../../modules/home/git
|
|
../../modules/home/zsh
|
|
../../modules/home/ssh
|
|
../../modules/home/eternal-terminal
|
|
../../modules/home/tealdeer
|
|
../../modules/home/neovim
|
|
../../modules/home/gh
|
|
../../modules/home/starship
|
|
../../modules/home/topgrade
|
|
../../modules/home/rbw
|
|
../../modules/home/yt-dlp
|
|
../../modules/home/claude-commit
|
|
../../modules/home/niri
|
|
../../modules/home/wayvnc
|
|
../../modules/home/alacritty
|
|
../../modules/home/kitty
|
|
../../modules/home/wallpapers
|
|
../../modules/home/syncthing
|
|
../../modules/home/gtk
|
|
../../modules/home/xdg
|
|
../../modules/home/satty
|
|
../../modules/home/pgcli
|
|
../../modules/home/gpg
|
|
../../modules/home/wofi
|
|
../../modules/home/dconf
|
|
../../modules/home/ironbar
|
|
../../modules/home/mako
|
|
../../modules/home/gammastep
|
|
../../modules/home/udiskie
|
|
../../modules/home/kodi
|
|
../../modules/home/mpv
|
|
../../modules/home/zen-browser
|
|
../../modules/home/tor-browser
|
|
# ../../modules/home/nxbt
|
|
../../modules/home/batsignal
|
|
../../modules/home/playsched
|
|
../../modules/home/zathura
|
|
../../modules/home/spicetify
|
|
../../modules/home/watt-monitor
|
|
../../modules/home/deepfilter
|
|
../../modules/home/tewi
|
|
../../modules/home/ytui-music
|
|
../../modules/home/ytm-player
|
|
../../modules/home/yututui
|
|
../../modules/home/yt-collate
|
|
../../modules/home/youtube-music-cli
|
|
../../modules/home/geminicommit
|
|
../../modules/home/herdr
|
|
|
|
../../modules/home/backtest
|
|
../../modules/home/portfolio-optimizer
|
|
../../modules/home/option-pricer
|
|
];
|
|
|
|
nixpkgs.config.electron.commandLineArgs =
|
|
"--ozone-platform-hint=auto "
|
|
+ "--ozone-platform=wayland "
|
|
+ "--disable-gpu-sandbox "
|
|
+ "--no-sandbox "
|
|
+ "--enable-features=WaylandWindowDecorations";
|
|
|
|
sops.age.keyFile = "/home/marc/.config/sops/age/keys.txt";
|
|
sops.defaultSopsFile = lib.mkForce ../../secrets/tower.yml;
|
|
|
|
home = {
|
|
username = "marc";
|
|
homeDirectory = "/home/marc";
|
|
};
|
|
|
|
home.sessionVariables = {
|
|
EDITOR = "nvim";
|
|
VISUAL = "nvim";
|
|
# Sessions hermes lancees par marc (panes herdr) : partager l'etat du
|
|
# service au lieu de /home/marc/.hermes. C'est ce qui rend l'integration
|
|
# herdr utilisable : hermes tourne alors sous marc, meme utilisateur que le
|
|
# serveur herdr, donc HERDR_ENV/HERDR_PANE_ID survivent et le socket
|
|
# ~/.config/herdr/herdr.sock est accessible.
|
|
# Acces au state dir : groupe hermes (users.nix) + ACL declarees dans
|
|
# profiles/tower/configuration.nix.
|
|
HERMES_HOME = "/var/lib/hermes/.hermes";
|
|
GSETTINGS_SCHEMA_DIR = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}";
|
|
DEFAULT_BROWSER = "${inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default}/bin/zen";
|
|
BROWSER = "${inputs.zen-browser.packages.${pkgs.stdenv.hostPlatform.system}.default}/bin/zen";
|
|
ELECTRON_OZONE_PLATFORM_HINT = "wayland";
|
|
NIXOS_OZONE_WL = "1";
|
|
GTK_USE_PORTAL = "1";
|
|
GDK_BACKEND = "wayland";
|
|
XDG_SESSION_TYPE = "wayland";
|
|
QT_QPA_PLATFORM = "wayland";
|
|
};
|
|
|
|
xdg.enable = true;
|
|
xdg.mimeApps = {
|
|
enable = true;
|
|
defaultApplications = {
|
|
"text/html" = ["zen.desktop"];
|
|
"x-scheme-handler/http" = ["zen.desktop"];
|
|
"x-scheme-handler/https" = ["zen.desktop"];
|
|
"x-scheme-handler/about" = ["zen.desktop"];
|
|
"x-scheme-handler/unknown" = ["zen.desktop"];
|
|
"video/mp4" = ["mpv.desktop"];
|
|
};
|
|
};
|
|
|
|
xdg.systemDirs.data = [
|
|
"/var/lib/flatpak/exports/share"
|
|
"/home/marc/.local/share/flatpak/exports/share"
|
|
"/run/current-system/sw/share"
|
|
"/nix/var/nix/profiles/default/share"
|
|
"/etc/profiles/per-user/marc/share"
|
|
"/home/marc/.local/state/nix/profile/share"
|
|
"/nix/profile/share"
|
|
"/home/marc/.nix-profile/share"
|
|
];
|
|
|
|
services.darkman = {
|
|
enable = true;
|
|
settings = {
|
|
lat = 48.8;
|
|
lng = 2.3;
|
|
};
|
|
};
|
|
|
|
services.gnome-keyring = {
|
|
enable = true;
|
|
components = ["secrets" "ssh"];
|
|
};
|
|
|
|
# Connexions Eternal Terminal : `et <hôte>` = zellij + enregistrement asciinema
|
|
# (fonctions ettower / ettowerlocal / ets générées, cf. modules/home/eternal-terminal)
|
|
my.et = {
|
|
enable = true;
|
|
hosts = {
|
|
tower = { };
|
|
towerlocal = { };
|
|
};
|
|
};
|
|
|
|
programs.direnv = {
|
|
enable = true;
|
|
enableZshIntegration = true;
|
|
nix-direnv.enable = true;
|
|
};
|
|
|
|
home.file."Desktop/return-to-gaming-mode.desktop" = {
|
|
executable = true;
|
|
text = ''
|
|
[Desktop Entry]
|
|
Name=Return to Gaming Mode
|
|
Exec=steamos-session-select gamescope
|
|
Icon=steam
|
|
Terminal=false
|
|
Type=Application
|
|
'';
|
|
};
|
|
|
|
# home.file.${config.gtk.gtk2.configLocation}.force = true;
|
|
xdg.configFile = {
|
|
"gtk-3.0/settings.ini".force = true;
|
|
"gtk-4.0/settings.ini".force = true;
|
|
"gtk-4.0/gtk.css".force = true;
|
|
};
|
|
|
|
programs.home-manager.enable = true;
|
|
|
|
home.stateVersion = "25.11";
|
|
}
|