wip(home): refactor home modules *WILL NOT BUILD*

This commit is contained in:
ooks-io 2024-06-04 21:19:35 +12:00
parent 2033810429
commit 6a591ecbf7
115 changed files with 1028 additions and 791 deletions

42
home/profiles/default.nix Normal file
View file

@ -0,0 +1,42 @@
{ lib, config, ... }:
let
profileEnabler = let
reducer = l: r: {"${r}".enable = true;} // l;
in
builtins.foldl' reducer {} config.activeProfiles;
in
{
imports = [
./base
./hyprland
#./creative
./productivity
./gaming
./themes
];
options = {
activeProfiles = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [];
};
profiles = {
base = {
enable = lib.mkEnableOption "Enable the base profile";
};
hyprland = {
enable = lib.mkEnableOption "Enable the hyprland profile";
};
gaming = {
enable = lib.mkEnableOption "Enable the gaming profile";
};
productivity = {
enable = lib.mkEnableOption "Enable the productivity profile";
};
};
};
config.profiles = profileEnabler;
}

View file

@ -0,0 +1,19 @@
{ lib, config, ... }:
let
inherit (lib) mkIf;
desktop = config.ooknet.desktop;
in
{
config = mkIf (desktop.environment == "hyprland") {
ooknet.wayland = {
enable = true;
compositor = "hyprland";
launcher = "rofi";
locker = "hyprlock";
notification = "mako";
bar = "waybar";
};
};
}

View file

@ -0,0 +1,69 @@
{ config, lib, ... }:
let
cfg = config.profiles.hyprland;
in
{
imports = [
../../modules
];
config = lib.mkIf cfg.enable {
homeModules.desktop = {
wayland = {
enable = true;
windowManager.hyprland = {
enable = true;
extras = {
hyprcapture.enable = true;
hyprshade.enable = true;
};
};
lockscreen.hyprlock.enable = true;
notification.mako.enable = true;
bar.waybar.enable = true;
launcher.rofi.enable = true;
utility = {
tools.enable = true;
gammastep.enable = true;
};
};
security.polkit = "pantheon";
communication = {
discord.enable = true;
};
creative = {
audio = {
audacity.enable = true;
};
};
browser.firefox= {
enable = true;
default = true;
};
terminal = {
foot = {
enable = true;
default = true;
};
};
media = {
music.tui.enable = true;
music.easyeffects.enable = true;
image.imv.enable = true;
video = {
mpv.enable = true;
youtube.enable = true;
jellyfin.enable = true;
};
};
};
};
}

View file

View file

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
let
cfg = config.profiles.gaming;
in
{
imports = [
../../modules
];
config = lib.mkIf cfg.enable {
homeModules.desktop = {
gaming = {
lutris.enable = false;
};
};
home.packages = with pkgs; [
bottles
winetricks
protontricks
protonup-qt
wineWowPackages.full
];
};
}

View file

@ -0,0 +1,20 @@
{ config, lib, ... }:
let
cfg = config.profiles.productivity;
in
{
imports = [
../../modules
];
config = lib.mkIf cfg.enable {
homeModules.desktop = {
productivity = {
obsidian.enable = true;
zathura.enable = true;
office.enable = true;
};
};
};
}

View file

@ -0,0 +1,29 @@
{ lib, config, ... }:
# let
# cfg = config.theme;
# in
{
imports = [
./minimal
./phone
];
options.theme = {
minimal.enable = lib.mkEnableOption "enable minimal theme";
phone.enable = lib.mkEnableOption "Enable phone theme";
};
# config = {
# assertions = [
# {
# assertion =
# (lib.length (lib.filter (x: x) [
# cfg.minimal or false
# cfg.OTHERTHEMEHERE or false
# ]) <= 1);
# }
# ];
# };
}

View file

@ -0,0 +1,43 @@
{ lib, config, pkgs, inputs, ... }:
let
inherit (inputs.nix-colors) colorSchemes;
inherit (lib) mkIf;
theme = config.ooknet.theme;
in
{
imports = [ inputs.nix-colors.homeManagerModule ];
config = mkIf (theme == "minimal") {
colorscheme = colorSchemes.gruvbox-material-dark-soft;
home.file.".colorscheme".text = config.colorscheme.slug;
home.sessionVariables.COLOR_SCHEME = "${config.colorscheme.slug}";
ooknet = {
fonts.enable = true;
fonts.regular = {
family = "Fira Sans";
package = pkgs.fira;
};
fonts.monospace = {
family = "JetBrainsMono Nerd Font";
package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
};
cursor.enable = true;
cursor = {
name = "Bibata-Modern-Ice";
package = pkgs.bibata-cursors;
size = 22;
};
wallpaper = {
enable = true;
};
gtk.enable = true;
qt.enable = true;
};
};
}

View file

@ -0,0 +1,29 @@
{ lib, config, pkgs, inputs, ... }:
let
inherit (inputs.nix-colors) colorSchemes;
inherit (lib) mkIf;
theme = config.ooknet.theme;
in
{
imports = [ inputs.nix-colors.homeManagerModule ];
config = mkIf (theme == "phone") {
colorscheme = colorSchemes.gruvbox-material-dark-soft;
home.file.".colorscheme".text = config.colorscheme.slug;
home.sessionVariables.COLOR_SCHEME = "${config.colorscheme.slug}";
ooknet.theme = {
fonts.enable = true;
fonts.regular = {
family = "Fira Sans";
package = pkgs.fira;
};
fonts.monospace = {
family = "JetBrainsMono Nerd Font";
package = pkgs.nerdfonts.override { fonts = [ "JetBrainsMono" ]; };
};
};
};
}