Files
nixfiles/home.nix
2025-12-08 18:13:58 -05:00

138 lines
3.7 KiB
Nix

{ config, pkgs, inputs, system ? "x86_64-linux", username ? "abby", use_syncthing ? false , ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = username;
home.homeDirectory = "/home/${username}";
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "25.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.packages = with pkgs; [
tmux
inputs.oscgoesbrrr.packages.${system}.default
oscavmgr
vrcadvert
alcom
vesktop
mpv
vlc
moonlight-qt
starship
#inputs.ragenix.packges.${system}.default
# htop
#inputs.baballonia.${system}.default
] ++ lib.optionals (system == "x86-linux")
(import ./unity_vrchat.nix {pkgs = pkgs; }).packages
++ lib.optionals (system == "x86-linux") [ vrcx ]
++ lib.optionals (false) [
inputs.nixgl.nixGLIntel
] ++ [
stardust-xr-server
stardust-xr-sphereland
stardust-xr-protostar
stardust-xr-magnetar
stardust-xr-kiara
stardust-xr-gravity
stardust-xr-flatland
stardust-xr-atmosphere
];
# importing secrets
age.secrets = {
syncthing_tin.file = ./secrets/syncthing_tin.age;
syncthing_nicrosil.file = ./secrets/syncthing_nicrosil.age;
};
# Wayvr customization
xdg.configFile."wlxoverlay/openxr_actions.json5" = {
source = ./xdg/wlxoverlay_openxr_actions.json5;
};
# For wayvr-dashboard/wlx integration
xdg.configFile."wlxoverlay/wayvr.conf.d/dashboard.yaml".text = ''
dashboard:
exec: "/run/current-system/sw/bin/wayvr-dashboard"
args: ""
env: []
'';
# Make vrchat pictures folder more accessable
home.file."Pictures/VRChat".source = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/.local/share/Steam/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/Pictures/VRChat";
# For Monado:
xdg.configFile."openxr/1/active_runtime.json".source = "${pkgs.monado}/share/openxr/1/openxr_monado.json";
xdg.configFile."openvr/openvrpaths.vrpath".text = ''
{
"config" :
[
"${config.xdg.dataHome}/Steam/config"
],
"external_drivers" : null,
"jsonid" : "vrpathreg",
"log" :
[
"${config.xdg.dataHome}/Steam/logs"
],
"runtime" :
[
"${pkgs.xrizer}/lib/xrizer"
],
"version" : 1
}
'';
# For bsb2e cameras
systemd.user.services.go-bsb-cams = {
Unit = {
Description = "Go bsb cams";
};
Install = {
WantedBy = [ "default.target" ];
};
unitConfig = {
Type = "simple";
};
Service = {
ExecStart = "${inputs.go-bsb-cam.packages.${system}.default}/bin/go-bsb-cams";
};
};
# Emacs stuff - ported from dotfiles repo
services.emacs = {
enable = false;
package = with pkgs; (
(emacsPackagesFor emacs-pgtk).emacsWithPackages(
epkgs: [epkgs.vterm]
)
);
defaultEditor = true;
};
xdg.configFile."emacs" = {
source = ./xdg/emacs;
recursive = true;
};
# Other misc conf files
xdg.configFile."kitty/kitty.conf".source = ./xdg/kitty/kitty.conf;
xdg.configFile."starship.toml".source = ./xdg/starship.toml;
home.file.".zshrc".source = xdg/zshrc;
services.syncthing = pkgs.lib.mkIf use_syncthing (import ./syncthing.nix { config = config; });
# services.syncthing = pkgs.lib.mkIf use_syncthing import ./syncthing.nix { config = config; };
}