this configuration currently will build 2 hosts, apollo and absolution, however these are not completed yet, they will build using alyx configs for niri, etc and alyx git settings. this will be fixed in due course. todo: add all hosts to flake.nix, add in waybar configuration for maya, change keyboard layout based on username for gb on alyx and us on maya, configuration comb through, add in files like firewall.nix and monado.nix, and generally complete home manager configuration

This commit is contained in:
cydiralis 2025-06-25 04:05:38 +01:00
parent b43b8f0464
commit 2a4af3bd83
No known key found for this signature in database
36 changed files with 3418 additions and 17 deletions

116
home/default.nix Normal file
View file

@ -0,0 +1,116 @@
{config, pkgs, lib, inputs, vars, ...}:{
imports = [
#home-manager modules
inputs.nix-index-database.hmModules.nix-index
inputs.nixvim.homeManagerModules.default
inputs.catppuccin.homeModules.catppuccin
inputs.niri.homeModules.niri
#aux files to make finding specific things easier
./theming.nix
./nixvim
#./sway.nix
#./hyprland.nix
./niri.nix
./packages.nix #general user packages not managed by home-manager but i want to install via hm anyways
];
home = rec {
username = vars.user; #this is set in flake.nix
homeDirectory = "/home/${username}"; #change this if you use a non-standard home dir
stateVersion = "23.11";
file = {
".config/waybar/config".source = config.lib.file.mkOutOfStoreSymlink "${homeDirectory}/.config/nixos/home/waybar/config";
".config/waybar/style.css".source = config.lib.file.mkOutOfStoreSymlink "${homeDirectory}/.config/nixos/home/waybar/style.css";
# ".config/hypr/hyprlock.conf".source = config.lib.file.mkOutOfStoreSymlink "${homeDirectory}/.config/nixos/home/locking/hyprlock.conf";
};
};
programs.home-manager.enable = (!vars.isNixOS); #value is set in flake.nix
programs.foot = {
enable = true;
settings.main.font = "monospace:size=14";
settings.colors.alpha = "0.9";
};
programs.ncmpcpp = {
enable = (vars.class != "handheld");
settings = {
tags_separator = ";";
};
};
services.mpd = {
enable = (vars.class != "handheld");
musicDirectory = "/home/${vars.user}/Music";
extraConfig = ''
audio_output {
type "pipewire"
name "default pipewire"
}
'';
};
services.mpd-mpris = {
enable = (vars.class != "handheld");
};
services.mpd-discord-rpc.enable = true;
programs.waybar = {
enable = (vars.class != "handheld");
};
programs.git = {
enable = true;
userName = "cydiralis";
userEmail = "cydiralis@proton.me";
extraConfig = {
commit.gpgsign = true;
gpg.format = "ssh";
user.signingkey = "~/.ssh/id_ed25519.pub";
init.defaultBranch = "main";
};
};
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.opencomposite}/lib/opencomposite"
],
"version" : 1
}
'';
programs.irssi = {
enable = true;
networks = {
classicconnect = {
nick = "alyx";
server = {
address = "irc.classicconnect.net";
port = 6677;
autoConnect = true;
};
channels = {
nick.autoJoin = true;
};
};
};
};
programs.obs-studio = {
enable = true;
plugins = with pkgs.obs-studio-plugins; [
wlrobs
obs-backgroundremoval
obs-pipewire-audio-capture
];
};
}