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

View file

@ -46,6 +46,11 @@
inputs.nixpkgs.follows = "nixpkgs";
};
nix-index-db = {
url = "github:nix-community/nix-index-database";
inputs.nixpkgs.follows = "nixpkgs";
};
# nix shell environment on android
nix-on-droid = {
url = "github:nix-community/nix-on-droid/release-23.11";

View file

@ -0,0 +1,19 @@
{ lib, config, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.cursor;
in
{
config = mkIf cfg.enable {
home.pointerCursor = {
package = cfg.package;
name = cfg.name;
size = cfg.size;
gtk.enable = true;
x11.enable = true;
};
};
}

View file

@ -0,0 +1,9 @@
{
imports = [
./fonts.nix
./cursor.nix
./gtk.nix
./qt.nix
./wallpaper.nix
];
}

View file

@ -0,0 +1,21 @@
{ lib, config, pkgs, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.fonts;
in
{
config = mkIf cfg.enable {
fonts.fontconfig.enable = true;
home.packages = [
cfg.monospace.package
cfg.regular.package
pkgs.noto-fonts
pkgs.noto-fonts-cjk
pkgs.noto-fonts-emoji
];
};
}

View file

@ -2,19 +2,15 @@
let
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) gtkThemeFromScheme;
cfg = config.ooknet.theme.gtk;
inherit (lib) mkIf;
cfg = config.ooknet.gtk;
in
{
options.ooknet.theme.gtk = {
enable = lib.mkEnableOption "Enable gtk theme module";
# TODO: add theme option
};
config = lib.mkIf cfg.enable (rec {
config = mkIf cfg.enable (rec {
gtk = {
enable = true;
font = {
name = config.ooknet.theme.fonts.regular.family;
name = config.ooknet.fonts.regular.family;
size = 12;
};
theme = {

View file

@ -0,0 +1,16 @@
{ config, lib, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.qt;
in
{
config = mkIf cfg.enable {
qt = {
enable = true;
platformTheme.name = "gtk";
};
};
}

View file

@ -1,26 +1,18 @@
{ lib, config, inputs, pkgs, ... }:
{ lib, config, inputs, pkgs, osConfig, ... }:
let
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) nixWallpaperFromScheme;
inherit (lib) types mkDefault mkIf mkOption mkEnableOption;
inherit (lib) mkDefault mkIf;
monitors = osConfig.ooknet.host.hardware.monitors;
cfg = config.ooknet.theme.wallpaper;
in
{
options.ooknet.theme.wallpaper = {
enable = mkEnableOption "Enable wallpaper module";
path = mkOption {
type = types.path;
default = null;
description = "Wallpaper Path";
};
};
config = mkIf cfg.enable {
ooknet.theme.wallpaper.path =
let
largest = f: xs: builtins.head (builtins.sort (a: b: a > b) (map f xs));
largestWidth = largest (x: x.width) config.monitors;
largestHeight = largest (x: x.height) config.monitors;
largestWidth = largest (x: x.width) monitors;
largestHeight = largest (x: x.height) monitors;
in
mkDefault (nixWallpaperFromScheme
{

View file

@ -0,0 +1,28 @@
{ lib, config, osConfig, ... }:
let
inherit (lib) mkDefault;
admin = osConfig.ooknet.host.admin;
in
{
programs.home-manager.enable = true;
systemd.user.startServices = "sd-switch";
home = {
username = admin.name;
homeDirectory = "/home/${config.home.username}";
stateVersion = mkDefault "22.05";
sessionPath = [ "${config.home.homeDirectory}/.local/bin" ];
sessionVariables = {
TZ = "Pacific/Auckland";
};
};
# to save space
manual = {
html.enable = false;
json.enable = false;
manpages.enable = false;
};
}

View file

@ -1,8 +1,6 @@
{ lib, config, pkgs, ... }:
let
cfg = config.ooknet.config.mimeApps;
browser = ["${config.home.sessionVariables.BROWSER}.desktop"];
zathura = ["org.pwmt.zethura.desktop.desktop"];
@ -29,12 +27,10 @@ let
};
in
{
config = lib.mkIf cfg.enable {
home.packages = [ pkgs.xdg-utils ];
xdg.mimeApps = {
enable = true;
associations.added = associations;
defaultApplications = associations;
};
home.packages = [ pkgs.xdg-utils ];
xdg.mimeApps = {
enable = true;
associations.added = associations;
defaultApplications = associations;
};
}

View file

@ -0,0 +1,22 @@
{ config, ... }:
{
xdg = {
enable = true;
configHome = "${config.home.homeDirectory}/.config";
cacheHome = "${config.home.homeDirectory}/.cache";
dataHome = "${config.home.homeDirectory}/.local/share";
stateHome = "${config.home.homeDirectory}/.local/state";
userDirs = {
enable = true;
createDirectories = true;
desktop = "${config.home.homeDirectory}/Desktop";
code = "${config.home.homeDirectory}/Code";
documents = "${config.home.homeDirectory}/Documents";
music = "${config.home.homeDirectory}/Media/Music";
videos = "${config.home.homeDirectory}/Media/Videos";
pictures = "${config.home.homeDirectory}/Media/Pictures";
};
};
}

View file

@ -1,18 +0,0 @@
{ lib, ... }:
{
imports = [
./monitors
./nix
./userDirs
./home
./mimeApps
];
options.ooknet.config = {
nix.enable = lib.mkEnableOption "enable nix configuration module";
home.enable = lib.mkEnableOption "enable home configuration module";
userDirs.enable = lib.mkEnableOption "enable userDirs configuration module";
mimeApps.enable = lib.mkEnableOption "enable mimeApps configuration module";
};
}

View file

@ -1,29 +0,0 @@
{ lib, config, ... }:
let
cfg = config.ooknet.config.home;
in
{
config = lib.mkIf cfg.enable {
programs.home-manager.enable = true;
home = {
username = lib.mkDefault "ooks";
homeDirectory = lib.mkDefault "/home/${config.home.username}";
stateVersion = lib.mkDefault "22.05";
sessionPath = [ "${config.home.homeDirectory}/.local/bin" ];
sessionVariables = {
TZ = "Pacific/Auckland";
};
};
# to save space
manual = {
html.enable = false;
json.enable = false;
manpages.enable = true;
};
};
}

View file

@ -1,26 +0,0 @@
{ lib, config, pkgs, outputs, ... }:
let
cfg = config.ooknet.config.nix;
in
{
config = lib.mkIf cfg.enable {
nixpkgs = {
overlays = builtins.attrValues outputs.overlays;
config = {
allowUnfree = true;
allowUnfreePredicate = (_: true);
};
};
nix = {
package = lib.mkDefault pkgs.nix;
settings = {
experimental-features = [ "nix-command" "flakes" "repl-flake" ];
warn-dirty = false;
};
};
};
}

View file

@ -1,27 +0,0 @@
{ lib, config, ... }:
let
cfg = config.ooknet.config.userDirs;
in
{
config = lib.mkIf cfg.enable {
xdg = {
enable = true;
configHome = "${config.home.homeDirectory}/.config";
cacheHome = "${config.home.homeDirectory}/.cache";
dataHome = "${config.home.homeDirectory}/.local/share";
stateHome = "${config.home.homeDirectory}/.local/state";
userDirs = {
enable = true;
createDirectories = true;
desktop = "${config.home.homeDirectory}/Desktop";
documents = "${config.home.homeDirectory}/Documents";
music = "${config.home.homeDirectory}/Media/Music";
videos = "${config.home.homeDirectory}/Media/Videos";
pictures = "${config.home.homeDirectory}/Media/Pictures";
};
};
};
}

View file

@ -0,0 +1,18 @@
{ lib, config, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.tools.bat;
in
{
config = mkIf cfg.enable {
programs.bat = {
enable = true;
config = {
theme = "base16";
pager = "less -FR";
};
};
};
}

View file

@ -0,0 +1,14 @@
{ lib, config, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.tools.btop;
in
{
config = mkIf cfg.enable {
programs.btop = {
enable = true;
};
};
}

View file

@ -0,0 +1,14 @@
{
imports = [
./bat.nix
./eza.nix
./btop.nix
./direnv.nix
./fzf.nix
./nixIndex.nix
./git.nix
./starship.nix
./utils.nix
./ssh.nix
];
}

View file

@ -0,0 +1,15 @@
{ lib, config, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.tools.direnv;
in
{
config = mkIf cfg.enable {
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
};
}

View file

@ -0,0 +1,14 @@
{ lib, config, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.tools.eza;
in
{
config = mkIf cfg.enable {
programs.eza = {
enable = true;
};
};
}

View file

@ -0,0 +1,25 @@
{ lib, config, osConfig, ... }:
let
inherit (lib) mkIf;
admin = osConfig.ooknet.host.admin;
cfg = config.ooknet.tools.fzf;
in
{
config = mkIf cfg.enable {
fzf = {
enable = true;
enableFishIntegration = mkIf (admin.shell == "fish") true;
defaultCommand = "rg --files --hidden";
changeDirWidgetOptions = [
"--preview 'eza --icons -L 3 -T --color always {} | head -200'"
"--exact"
];
fileWidgetCommand = "rg --files";
fileWidgetOptions = [
"--preview 'bat --color=always {}'"
];
};
};
}

View file

@ -1,14 +1,16 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, lib, osConfig, ... }:
let
cfg = config.ooknet.console.utility.git;
inherit (lib) mkIf;
cfg = config.ooknet.tools.git;
admin = osConfig.ooknet.host.admin;
in
{
config = lib.mkIf cfg.enable {
config = mkIf cfg.enable {
programs.git = {
enable = true;
package = pkgs.gitAndTools.gitFull;
userName = "ooks-io";
userEmail = "ooks@protonmail.com";
userName = admin.gitName;
userEmail = admin.gitEmail;
extraConfig = {
gpg."ssh".program = "${pkgs._1password-gui}/bin/op-ssh-sign";
};

View file

@ -0,0 +1,21 @@
{ lib, config, inputs, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.tools.nixIndex;
in
{
imports = [ inputs.nix-index-db.hmModules.nix-index ];
config = mkIf cfg.enable {
programs = {
nix-index = {
enable = true;
symlinkToCacheHome = true;
};
command-not-found.enable = false;
nix-index-database.comma.enable = true;
};
home.sessionVariables.NIX_AUTO_RUN = "1";
};
}

View file

@ -1,13 +1,12 @@
{ lib, config, ... }:
{ lib, config, osConfig, ... }:
let
cfg = config.ooknet.console.utility.ssh;
hasFish = mkIf config.ooknet.console.shell.fish.enable;
inherit (lib) mkIf;
cfg = config.ooknet.tools.ssh;
admin = osConfig.ooknet.host.admin;
in
{
config = mkIf cfg.enable {
programs.ssh = {
enable = true;
@ -16,7 +15,7 @@ in
IdentityAgent "~/.1password/agent.sock"
'';
};
programs.fish.interactiveShellInit = hasFish /* fish */ ''
programs.fish.interactiveShellInit = mkIf (admin.shell == "fish") /* fish */ ''
set -gx SSH_AUTH_SOCK ~/.1password/agent.sock
'';
};

View file

@ -1,12 +1,11 @@
{ config, lib, ... }:
let
cfg = config.ooknet.console.prompt.starship;
inherit (lib) concatStrings mkEnableOption mkIf;
cfg = config.ooknet.tools.starship;
inherit (lib) concatStrings mkIf;
in
{
options.ooknet.console.prompt.starship.enable = mkEnableOption "";
config = mkIf cfg.enable {
programs.starship = {
enable = true;

View file

@ -44,34 +44,5 @@ in
# Nix tooling
alejandra
];
programs = {
btop.enable = true;
eza.enable = true;
bat = {
enable = true;
config = {
theme = "base16";
pager = "less -FR";
};
};
direnv = {
enable = true;
nix-direnv.enable = true;
};
fzf = {
enable = true;
enableFishIntegration = lib.mkIf config.ooknet.console.shell.fish.enable true;
defaultCommand = "rg --files --hidden";
changeDirWidgetOptions = [
"--preview 'eza --icons -L 3 -T --color always {} | head -200'"
"--exact"
];
fileWidgetCommand = "rg --files";
fileWidgetOptions = [
"--preview 'bat --color=always {}'"
];
};
};
};
}

View file

@ -1,24 +0,0 @@
{ lib, ... }:
{
imports = [
./nixIndex
./git
./tools
./ssh
];
options.ooknet.console.utility = {
nixIndex = {
enable = lib.mkEnableOption "Enable nixIndex configuration";
};
git = {
enable = lib.mkEnableOption "Enable git + tools";
};
ssh = {
enable = lib.mkEnableOption "Enable various console ssh";
};
tools = {
enable = lib.mkEnableOption "Enable various console tools";
};
};
}

View file

@ -1,38 +0,0 @@
{ pkgs, config, lib, ... }:
let
cfg = config.ooknet.console.utility.nixIndex;
update-script = pkgs.writeShellApplication {
name = "fetch-nix-index-database";
runtimeInputs = with pkgs; [ wget coreutils ];
text = ''
filename="index-x86_64-linux"
mkdir -p ~/.cache/nix-index
cd ~/.cache/nix-index
wget -N "https://github.com/Mic92/nix-index-database/releases/latest/download/$filename"
ln -f "$filename" files
'';
};
in
{
config = lib.mkIf cfg.enable {
programs.nix-index.enable = true;
systemd.user.services.nix-index-database-sync = {
Unit = { Description = "fetch mic92/nix-index-database"; };
Service = {
Type = "oneshot";
ExecStart = "${update-script}/bin/fetch-nix-index-database";
Restart = "on-failure";
RestartSec = "5m";
};
};
systemd.user.timers.nix-index-database-sync = {
Unit = { Description = "Automatic github:mic92/nix-index-database fetching"; };
Timer = {
OnBootSec = "10m";
OnUnitActiveSec = "24h";
};
Install = { WantedBy = [ "timers.target" ]; };
};
};
}

View file

@ -0,0 +1,15 @@
{ lib, config, pkgs, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.gaming.bottles;
in
{
config = mkIf cfg.enable {
home.packages = with pkgs; [
bottles
];
};
}

View file

@ -1,17 +0,0 @@
{ lib, config, pkgs, ... }:
let
inherit (lib) mkEnableOption mkIf;
cfg = config.ooknet.desktop.gaming.bottles;
in
{
options.ooknet.desktop.gaming.bottles.enable = mkEnableOption "Enable bottles home-manager modules";
config = mkIf cfg.enable {
home.packages = with pkgs; [
bottles
];
};
}

View file

@ -1,17 +1,7 @@
{ lib, ... }:
{
imports = [
./factorio
./lutris
./bottles
./factorio.nix
./lutris.nix
./bottles.nix
];
options.ooknet.desktop.gaming = {
factorio = {
enable = lib.mkEnableOption "Enable factorio home module";
};
};
}

View file

@ -1,7 +1,7 @@
{ lib, config, pkgs, ... }:
let
cfg=config.ooknet.desktop.gaming.factorio;
cfg = config.ooknet.gaming.factorio;
in
{

View file

@ -1,13 +1,11 @@
{ lib, config, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.ooknet.desktop.gaming.lutris;
inherit (lib) mkIf;
cfg = config.ooknet.gaming.lutris;
in
{
options.ooknet.desktop.gaming.lutris.enable = mkEnableOption "Enable lutris home-manager module";
config = mkIf cfg.enable {
home.packages = with pkgs; [
(lutris.override {

View file

@ -0,0 +1,15 @@
{ lib, config, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.ooknet.productivity.notes.obsidian;
notes = config.ooknet.desktop.notes;
in
{
options.ooknet.productivity.notes.obsidian.enable = mkEnableOption "";
config = mkIf (cfg.enable || notes == "obsidian") {
home.packages = [ pkgs.obsidian ];
};
}

View file

@ -1,11 +0,0 @@
{ lib, config, pkgs, ... }:
let
cfg = config.ooknet.desktop.productivity.obsidian;
in
{
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [ obsidian ];
};
}

View file

@ -1,16 +0,0 @@
{ lib, config, inputs, ... }:
let
cfg = config.ooknet.desktop.wayland.bar.ags;
in
{
imports = [ inputs.ags.homeManagerModules.default ];
config = lib.mkIf cfg.enable {
programs.ags = {
enable = true;
};
};
}

View file

@ -1,14 +1,16 @@
{ config, lib, pkgs, ... }:
{ config, lib, pkgs, osConfig, ... }:
let
fonts = config.ooknet.theme.fonts;
cfg = config.ooknet.desktop.wayland.bar.waybar;
monitorWidth = (lib.head config.monitors).width - 20;
inherit (config.colorscheme) palette;
inherit (lib) mkIf head;
fonts = config.ooknet.fonts;
wayland = config.ooknet.wayland;
monitors = osConfig.ooknet.host.hardware.monitors;
monitorWidth = (head monitors).width - 20;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.bar == "waybar") {
programs.waybar = {
enable = true;
systemd.enable = true;

View file

@ -1,5 +1,5 @@
{
imports = [
./starship.nix
./hyprland
];
}

View file

@ -1,8 +1,9 @@
{ lib, config, pkgs, inputs, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland;
wayland = config.ooknet.wayland;
inherit (import ./pkgs {inherit pkgs;}) hyprbrightness hyprvolume;
inherit (inputs.ooks-scripts.packages.${pkgs.system}) powermenu zellijmenu;
inherit (lib) mkIf;
in
{
imports = [
@ -11,7 +12,7 @@ in
./extras
];
config = lib.mkIf cfg.enable {
config = mkIf (wayland.compositor == "hyprland") {
home.packages = [
pkgs.hyprpicker
hyprvolume

View file

@ -0,0 +1,6 @@
{
imports = [
./hyprcapture.nix
./hyprshade.nix
];
}

View file

@ -1,11 +1,12 @@
{ lib, config, pkgs, inputs, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland.extras.hyprcapture;
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.compositor == "hyprland") {
home.packages = with inputs; [
# Screenshot tool

View file

@ -1,11 +1,12 @@
{ lib, config, pkgs, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland.extras.hyprshade;
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.compositor == "hyprland") {
home.packages = [ pkgs.hyprshade ];
# TODO: implement hyprshade configuration
};

View file

@ -1,13 +1,14 @@
{ config, lib, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland;
wayland = config.ooknet.wayland;
pointer = config.home.pointerCursor;
inherit (config.colorscheme) palette;
inherit (lib) mkIf;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.compositor == "hyprland") {
wayland.windowManager.hyprland = {
settings = {
cursor = {

View file

@ -0,0 +1,131 @@
{ lib, config, pkgs, ... }:
let
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
in
{
config = mkIf (wayland.compositor == "hyprland") {
wayland.windowManager.hyprland.settings = {
bind = let
terminal = config.home.sessionVariables.TERMINAL;
browser = config.home.sessionVariables.BROWSER;
editor = config.home.sessionVariables.EDITOR;
locker = config.home.sessionVariables.LOCKER;
spotifyctl = "${pkgs.spotify-player}/bin/spotify_player";
discord = "${pkgs.vesktop}/bin/vesktop";
explorer = "${pkgs.cinnamon.nemo-with-extensions}/bin/nemo";
password = "${pkgs._1password-gui}/bin/1password";
in [
# Program Launch
"SUPER, b, exec, ${browser}"
"SUPER, return, exec, ${terminal}"
"SUPER, e, exec, ${terminal} ${editor}"
"SUPERSHIFT, P, exec, ${password}"
"SUPER, d, exec, ${discord}"
"SUPERSHIFT, e, exec, ${explorer}"
"SUPERSHIFT, S, exec, steam"
"SUPER, escape, exec, ${terminal} --title=BTOP btop"
"SUPER CTRL, return, exec, zellijmenu -n"
"SUPER, delete, exec, powermenu -c dmenu"
# Spotify PLayer Controls
"SUPER, bracketright, exec, ${spotifyctl} playback next"
"SUPER, bracketleft, exec, ${spotifyctl} playback previous"
"SUPER, backslash, exec, ${spotifyctl} playback play-pause"
# Brightness
",XF86MonBrightnessUp, exec, hyprbrightness up"
",XF86MonBrightnessDown, exec, hyprbrightness down"
# Volume
",XF86AudioRaiseVolume, exec, hyprvolume up"
",XF86AudioLowerVolume, exec, hyprvolume down"
",XF86AudioMute, exec, hyprvolume mute"
# Window Management
"SUPER, Q, killactive"
"SUPER CTRL, backspace, killactive"
"SUPERSHIFT ALT, delete, exec, hyprkillsession"
"SUPER, F, fullscreen"
"SUPER CTRL, F, fakefullscreen"
"SUPER, Space, togglefloating"
"SUPER, P, pseudo" # dwindle
"SUPER, S, togglesplit" # dwindle
# Focus
"SUPER, left, movefocus,l"
"SUPER, right, movefocus,r"
"SUPER, up, movefocus,u"
"SUPER, down, movefocus,d"
# Move
"SUPERSHIFT, left, movewindow,l"
"SUPERSHIFT, right, movewindow,r"
"SUPERSHIFT, up, movewindow,u"
"SUPERSHIFT, down, movewindow,d"
#Resize
"SUPER CTRL, left, resizeactive,-20 0"
"SUPERCTRL, right, resizeactive,20 0"
"SUPER CTRL, up, resizeactive,0 -20"
"SUPERCTRL, down, resizeactive,0 20"
# Switch workspace
"SUPER, 1, workspace,1"
"SUPER, 2, workspace,2"
"SUPER, 3, workspace,3"
"SUPER, 4, workspace,4"
"SUPER, 5, workspace,5"
"SUPER, 6, workspace,6"
"SUPER, 7, workspace,7"
"SUPER, 8, workspace,8"
"SUPER, 9, workspace,9"
"SUPER, 0, workspace,10"
"SUPER, comma, workspace,e+1"
"SUPER, period, workspace,e-1"
"SUPER, tab, focusCurrentOrLast"
# Move workspace
"SUPERSHIFT, 1, movetoworkspace,1"
"SUPERSHIFT, 2, movetoworkspace,2"
"SUPERSHIFT, 3, movetoworkspace,3"
"SUPERSHIFT, 4, movetoworkspace,4"
"SUPERSHIFT, 5, movetoworkspace,5"
"SUPERSHIFT, 6, movetoworkspace,6"
"SUPERSHIFT, 7, movetoworkspace,7"
"SUPERSHIFT, 8, movetoworkspace,8"
"SUPERSHIFT, 9, movetoworkspace,9"
"SUPERSHIFT, 0, movetoworkspace,10"
# Lock Screen
"SUPER, Backspace, exec, ${locker}"
];
# Mouse
bindm = [
"SUPER, mouse:272, movewindow"
"SUPER, mouse:273, resizewindow"
];
# bindr = [
# "SUPER, SUPER_L, exec, killall rofi || rofi -show drun"
# ];
};
};
}

View file

@ -1,11 +1,12 @@
{ lib, config, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland;
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.compositor == "hyprland") {
wayland.windowManager.hyprland.settings.env = [
"XDG_SESSION_DESKTOP,hyprland"
"XDG_CURRENT_DESKTOP,hyprland"

View file

@ -1,11 +1,12 @@
{ config, lib, pkgs, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland;
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.compositor == "hyprland") {
wayland.windowManager.hyprland.settings = {
exec = [
"${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1"

View file

@ -1,11 +1,12 @@
{ lib, config, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland;
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.compositor == "hyprland") {
wayland.windowManager.hyprland.settings.gestures = {
workspace_swipe = true;
workspace_swipe_forever = true;

View file

@ -0,0 +1,21 @@
{ lib, config, inputs, ... }:
let
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
wallpaperPath = config.ooknet.wallpaper.path;
in
{
config = mkIf (wayland.compositor == "hyprland") {
services.hyprpaper = {
enable = true;
};
xdg.configFile."hypr/hyprpaper.conf".text = ''
preload = ${wallpaperPath}
wallpaper = , ${wallpaperPath}
splash = false
ipc = off
'';
};
}

View file

@ -1,11 +1,12 @@
{ lib, config, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland;
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.compositor == "hyprland") {
wayland.windowManager.hyprland.settings.input = {
kb_layout = "us";
follow_mouse = 1;

View file

@ -1,11 +1,12 @@
{ lib, config, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland;
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.compositor == "hyprland") {
wayland.windowManager.hyprland.settings.misc = {
mouse_move_enables_dpms = true;
key_press_enables_dpms = true;

View file

@ -1,19 +1,21 @@
{ lib, config, ... }:
{ lib, config, osConfig, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland;
inherit (lib) mkIf concatMap;
wayland = config.ooknet.wayland;
monitors = osConfig.ooknet.host.hardware.monitors;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.compositor == "hyprland") {
wayland.windowManager.hyprland.settings = {
monitor = lib.concatMap (m: let
monitor = concatMap (m: let
resolution = "${toString m.width}x${toString m.height}@${toString m.refreshRate}";
position = "${toString m.x}x${toString m.y}";
basicConfig = "${m.name},${if m.enabled then "${resolution},${position},1" else "disable"}";
in
[ basicConfig ] ++ (if m.transform != 0 then ["${m.name},transform,${toString m.transform}"] else [])
) (config.monitors);
) (monitors);
};
};
}

View file

@ -1,10 +1,13 @@
{ lib, config, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland;
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
in
{
config = {
wayland.windowManager.hyprland.settings = lib.mkIf cfg.enable {
config = mkIf (wayland.compositor == "hyprland") {
wayland.windowManager.hyprland.settings = {
windowrulev2 = [
"float,move 191 15,size 924 396,class:^(1Password)$"

View file

@ -1,8 +1,11 @@
{ lib, config, ... }:
{ lib, config, osConfig, ... }:
let
inherit (lib) mkIf;
cfg = config.ooknet.desktop.wayland;
gpu = osConfig.ooknet.host.hardware.gpu;
in
{
imports = [
./bar
@ -13,16 +16,7 @@ in
./launcher
];
options.ooknet.desktop.wayland = {
enable = lib.mkEnableOption "Enable wayland specific confurations";
nvidia = lib.mkOption {
type = lib.types.bool;
default = false;
description = "Enable nvidia wayland configuration";
};
};
config = lib.mkIf cfg.enable {
config = mkIf cfg.enable {
home.sessionVariables = {
CLUTTER_BACKEND = "wayland";
NIXOS_OZONE_WL = "1";
@ -33,7 +27,7 @@ in
MOZ_DBUS_REMOTE = "1";
XDG_SESSION_TYPE = "wayland";
SDL_VIDEODRIVER = "wayland";
} // lib.mkIf cfg.nvidia {
} // mkIf (gpu == "nvidia") {
LIBVA_DRIVER_NAME = "nvidia";
GBM_BACKEND = "nvidia-drm";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";

View file

@ -1,34 +0,0 @@
{ config, lib, inputs, pkgs, ... }:
let
cfg = config.ooknet.desktop.wayland.launcher.anyrun;
in
{
imports = [
inputs.anyrun.homeManagerModules.default
];
config = lib.mkIf cfg.enable {
programs.anyrun = {
enable = true;
config = {
plugins = with inputs.anyrun.packages.${pkgs.system}; [
applications
randr
shell
rink
symbols
];
};
extraCss = /* css */ ''
* {
font-family: JetBrains Mono Nerd Font;
}
'';
};
};
}

View file

@ -1,21 +1,6 @@
{ lib, ... }:
{
imports = [
# ./anyrun
./rofi
./tofi
./rofi.nix
./tofi.nix
];
options.ooknet.desktop.wayland.launcher = {
anyrun = {
enable = lib.mkEnableOption "enable anyrun launcher module";
};
rofi = {
enable = lib.mkEnableOption "enable rofi launcher module";
};
tofi = {
enable = lib.mkEnableOption "enable tofi launcher module";
};
};
}

View file

@ -1,12 +1,13 @@
{ lib, config, pkgs, ... }:
let
fonts = config.ooknet.theme.fonts;
cfg = config.ooknet.desktop.wayland.launcher.rofi;
inherit (lib) mkIf;
fonts = config.ooknet.fonts;
wayland = config.ooknet.wayland;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.launcher == "rofi") {
programs.rofi = {
enable = true;
font = "${fonts.monospace.family}";

View file

@ -1,14 +1,14 @@
{ lib, config, pkgs, ... }:
let
cfg = config.ooknet.desktop.wayland.launcher.tofi;
fonts = config.ooknet.theme.fonts;
inherit (config.colorscheme) palette;
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
fonts = config.ooknet.fonts;
in
{
config = lib.mkIf cfg.enable {
config = mkIf (wayland.launcher == "tofi") {
home.packages = [pkgs.tofi];
xdg.configFile."tofi/config".text = /* config */ ''
history = false
@ -37,6 +37,5 @@ in
selection-color = ${palette.base04}
'';
};
}

View file

@ -1,21 +1,7 @@
{ lib, ... }:
{
imports = [
#./gtkLock --- still needs to be implemented
./swaylock
./hyprlock
./swaylock.nix
./hyprlock.nix
];
options.ooknet.desktop.wayland.lockscreen = {
swaylock = {
enable = lib.mkEnableOption "Enable Swaylock screen";
};
hyprlock = {
enable = lib.mkEnableOption "Enable hyprlock screen";
};
};
#TODO: make assertion to prevent 2 lockscreens
}

View file

@ -1,19 +1,15 @@
{ lib, config, inputs, pkgs, ... }:
let
cfg = config.ooknet.desktop.wayland.lockscreen.hyprlock;
fonts = config.ooknet.theme.fonts;
inherit (config.colorscheme) palette;
inherit (lib) mkIf;
wayland = config.ooknet.wayland;
fonts = config.ooknet.fonts;
in
{
imports = [
# inputs.hyprlock.homeManagerModules.default
# inputs.hypridle.homeManagerModules.default
];
config = lib.mkIf cfg.enable {
home.sessionVariables.LOCKER = "hyprlock";
config = mkIf (wayland.locker == "hyprlock") {
ooknet.binds.locker = "hyprlock";
programs.hyprlock = {
settings = {
enable = true;

View file

@ -2,13 +2,14 @@
let
inherit (config.colorscheme) palette;
fonts = config.ooknet.theme.fonts;
wallpaperPath = config.ooknet.theme.wallpaper.path;
cfg = config.ooknet.desktop.wayland.lockscreen.swaylock;
inherit (lib) mkIf;
fonts = config.ooknet.fonts;
wallpaperPath = config.ooknet.wallpaper.path;
wayland = config.ooknet.wayland;
in
{
config = lib.mkIf cfg.enable {
home.sessionVariables.LOCKER = "swaylock";
config = mkIf (wayland.locker == "swaylock") {
ooknet.binds.locker = "swaylock";
programs.swaylock = {
enable = true;
settings = {

View file

@ -1,14 +1,5 @@
{ lib, ... }:
{
imports = [
./mako
#./dunst -- still needs to be implemented
./mako.nix
];
options.ooknet.desktop.wayland.notification = {
mako = {
enable = lib.mkEnableOption "Enable mako notification daemon";
};
};
}

View file

@ -1,10 +1,14 @@
{ config, lib, ... }:
let
inherit (config.colorscheme) palette variant;
fonts = config.ooknet.theme.fonts;
cfg = config.ooknet.desktop.wayland.notification.mako;
in {
config = lib.mkIf cfg.enable {
inherit (lib) mkIf;
fonts = config.ooknet.fonts;
wayland = config.ooknet.wayland;
in
{
config = mkIf (wayland.notification == "mako") {
services.mako = {
enable = true;
iconPath =

View file

@ -1,17 +1,6 @@
{ lib, ... }:
{
imports = [
./gammastep
./tools
./gammastep.nix
./tools.nix
];
options.ooknet.desktop.wayland.utility = {
tools = {
enable = lib.mkEnableOption "Enable wayland specific tools";
};
gammastep = {
enable = lib.mkEnableOption "Enable gammastep module";
};
};
}

View file

@ -1,11 +1,12 @@
{ lib, config, ... }:
let
cfg = config.ooknet.desktop.wayland.utility.gammastep;
inherit (lib) mkIf;
cfg = config.ooknet.wayland;
in
{
config = lib.mkIf cfg.enable {
config = mkIf cfg.enable {
services.gammastep = {
enable = true;
enableVerboseLogging = true;

View file

@ -1,7 +1,8 @@
{ lib, config, pkgs, ... }:
let
cfg = config.ooknet.desktop.wayland.utility.tools;
inherit (lib) mkIf;
cfg = config.ooknet.wayland;
in
{

View file

@ -1,14 +0,0 @@
{ lib, ... }:
{
imports = [
./hyprland
];
options.ooknet.desktop.wayland.windowManager = {
hyprland = {
enable = lib.mkEnableOption "Enable Hyprland window-manager";
};
};
}

View file

@ -1,17 +0,0 @@
{ lib, ... }:
{
imports = [
./hyprcapture
./hyprshade
];
options.ooknet.desktop.wayland.windowManager.hyprland.extras = {
hyprcapture = {
enable = lib.mkEnableOption "Enable hyprcapture screenshot/recording module";
};
hyprshade = {
enable = lib.mkEnableOption "Enable hyprshade tool module";
};
};
}

View file

@ -1,128 +0,0 @@
{ lib, config, pkgs, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland;
in
{
wayland.windowManager.hyprland.settings = lib.mkIf cfg.enable {
bind = let
terminal = config.home.sessionVariables.TERMINAL;
browser = config.home.sessionVariables.BROWSER;
editor = config.home.sessionVariables.EDITOR;
locker = config.home.sessionVariables.LOCKER;
spotifyctl = "${pkgs.spotify-player}/bin/spotify_player";
discord = "${pkgs.vesktop}/bin/vesktop";
explorer = "${pkgs.cinnamon.nemo-with-extensions}/bin/nemo";
password = "${pkgs._1password-gui}/bin/1password";
in [
# Program Launch
"SUPER, b, exec, ${browser}"
"SUPER, return, exec, ${terminal}"
"SUPER, e, exec, ${terminal} ${editor}"
"SUPERSHIFT, P, exec, ${password}"
"SUPER, d, exec, ${discord}"
"SUPERSHIFT, e, exec, ${explorer}"
"SUPERSHIFT, S, exec, steam"
"SUPER, escape, exec, ${terminal} --title=BTOP btop"
"SUPER CTRL, return, exec, zellijmenu -n"
"SUPER, delete, exec, powermenu -c dmenu"
# Spotify PLayer Controls
"SUPER, bracketright, exec, ${spotifyctl} playback next"
"SUPER, bracketleft, exec, ${spotifyctl} playback previous"
"SUPER, backslash, exec, ${spotifyctl} playback play-pause"
# Brightness
",XF86MonBrightnessUp, exec, hyprbrightness up"
",XF86MonBrightnessDown, exec, hyprbrightness down"
# Volume
",XF86AudioRaiseVolume, exec, hyprvolume up"
",XF86AudioLowerVolume, exec, hyprvolume down"
",XF86AudioMute, exec, hyprvolume mute"
# Window Management
"SUPER, Q, killactive"
"SUPER CTRL, backspace, killactive"
"SUPERSHIFT ALT, delete, exec, hyprkillsession"
"SUPER, F, fullscreen"
"SUPER CTRL, F, fakefullscreen"
"SUPER, Space, togglefloating"
"SUPER, P, pseudo" # dwindle
"SUPER, S, togglesplit" # dwindle
# Focus
"SUPER, left, movefocus,l"
"SUPER, right, movefocus,r"
"SUPER, up, movefocus,u"
"SUPER, down, movefocus,d"
# Move
"SUPERSHIFT, left, movewindow,l"
"SUPERSHIFT, right, movewindow,r"
"SUPERSHIFT, up, movewindow,u"
"SUPERSHIFT, down, movewindow,d"
#Resize
"SUPER CTRL, left, resizeactive,-20 0"
"SUPERCTRL, right, resizeactive,20 0"
"SUPER CTRL, up, resizeactive,0 -20"
"SUPERCTRL, down, resizeactive,0 20"
# Switch workspace
"SUPER, 1, workspace,1"
"SUPER, 2, workspace,2"
"SUPER, 3, workspace,3"
"SUPER, 4, workspace,4"
"SUPER, 5, workspace,5"
"SUPER, 6, workspace,6"
"SUPER, 7, workspace,7"
"SUPER, 8, workspace,8"
"SUPER, 9, workspace,9"
"SUPER, 0, workspace,10"
"SUPER, comma, workspace,e+1"
"SUPER, period, workspace,e-1"
"SUPER, tab, focusCurrentOrLast"
# Move workspace
"SUPERSHIFT, 1, movetoworkspace,1"
"SUPERSHIFT, 2, movetoworkspace,2"
"SUPERSHIFT, 3, movetoworkspace,3"
"SUPERSHIFT, 4, movetoworkspace,4"
"SUPERSHIFT, 5, movetoworkspace,5"
"SUPERSHIFT, 6, movetoworkspace,6"
"SUPERSHIFT, 7, movetoworkspace,7"
"SUPERSHIFT, 8, movetoworkspace,8"
"SUPERSHIFT, 9, movetoworkspace,9"
"SUPERSHIFT, 0, movetoworkspace,10"
# Lock Screen
"SUPER, Backspace, exec, ${locker}"
];
# Mouse
bindm = [
"SUPER, mouse:272, movewindow"
"SUPER, mouse:273, resizewindow"
];
# bindr = [
# "SUPER, SUPER_L, exec, killall rofi || rofi -show drun"
# ];
};
}

View file

@ -1,20 +0,0 @@
{ lib, config, inputs, ... }:
let
cfg = config.ooknet.desktop.wayland.windowManager.hyprland;
wallpaperPath = config.ooknet.theme.wallpaper.path;
in
{
config = lib.mkIf cfg.enable {
services.hyprpaper = {
enable = true;
};
xdg.configFile."hypr/hyprpaper.conf".text = ''
preload = ${wallpaperPath}
wallpaper = , ${wallpaperPath}
splash = false
ipc = off
'';
};
}

View file

@ -0,0 +1,29 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption mkOption types;
in
{
options.ooknet.cursor = {
enable = mkEnableOption "Enable cursor module";
package = mkOption {
type = types.package;
default = null;
description = "Package for cursor";
example = "pkgs.bibata-cursors";
};
name = mkOption {
type = types.str;
default = "";
description = "Name of cursor";
example = "Bibata-Modern-Ice";
};
size = lib.mkOption {
type = types.int;
default = 22;
description = "Size of cursor";
example = "22";
};
};
}

View file

@ -1,4 +1,4 @@
{ lib, config, pkgs, ... }:
{ lib, ... }:
let
mkFontOption = kind: {
@ -15,7 +15,6 @@ let
example = "pkgs.fira-code";
};
};
cfg = config.ooknet.theme.fonts;
in
{
options.ooknet.theme.fonts = {
@ -23,18 +22,4 @@ in
monospace = mkFontOption "monospace";
regular = mkFontOption "regular";
};
config = lib.mkIf cfg.enable {
fonts.fontconfig.enable = true;
home.packages = [
cfg.monospace.package
cfg.regular.package
pkgs.noto-fonts
pkgs.noto-fonts-cjk
pkgs.noto-fonts-emoji
];
};
}

View file

@ -0,0 +1,9 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.gtk.enable = mkEnableOption;
}

View file

@ -0,0 +1,9 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.qt.enable = mkEnableOption "";
}

View file

@ -0,0 +1,13 @@
{ lib, config, ... }:
let
inherit (lib) mkOption;
inherit (lib.types) nullOr enum;
in
{
options.ooknet.theme = mkOption {
type = nullOr (enum [ "minimal" "phone" ]);
default = null;
};
}

View file

@ -0,0 +1,16 @@
{ lib, ... }:
let
inherit (lib) types mkEnableOption mkOption;
in
{
options.ooknet.wallpaper = {
enable = mkEnableOption "";
path = mkOption {
type = types.path;
default = null;
description = "Wallpaper Path";
};
};
}

View file

@ -0,0 +1,12 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.editor = {
helix.enable = mkEnableOption "";
nvim.enable = mkEnableOption "";
};
}

View file

@ -0,0 +1,12 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.multiplexer = {
zellij.enable = mkEnableOption "";
tmux.enable = mkEnableOption "";
};
}

View file

@ -0,0 +1,13 @@
{ lib , ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.shell = {
fish.enable = mkEnableOption "";
zsh.enable = mkEnableOption "";
bash.enable = mkEnableOption "";
};
}

View file

@ -0,0 +1,20 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.tools = {
btop.enable = mkEnableOption "";
eza.enable = mkEnableOption "";
bat.enable = mkEnableOption "";
direnv.enable = mkEnableOption "";
fzf.enable = mkEnableOption "";
git.enable = mkEnableOption "";
ssh.enable = mkEnableOption "";
nixIndex.enable = mkEnableOption "";
starship.enable = mkEnableOption "";
utils.enable = mkEnableOption "";
};
}

View file

@ -0,0 +1,56 @@
{ lib, ... }:
let
inherit (lib) mkOption types;
inherit (types) str;
mkWarn = message: "notify-send --urgency=normal 'warning' '${message}'";
in
{
options.ooknet.binds = {
browser = mkOption {
type = str;
default = mkWarn "No browser is enabled";
};
terminal = mkOption {
type = str;
default = mkWarn "No terminal is enabled";
};
terminalLaunch = mkOption {
type = str;
default = mkWarn "Failed to launch tui";
};
fileManager = mkOption {
type = str;
default = mkWarn "No file manager is enabled.";
};
notes = mkOption {
type = str;
default = mkWarn "No notes app is enabled";
};
discord = mkOption {
type = str;
default = mkWarn "No discord app is enabled";
};
steam = mkOption {
type = str;
default = mkWarn "Steam is not enabled";
};
powerMenu = mkOption {
type = str;
default = mkWarn "No power menu is enabled";
};
locker = mkOption {
type = str;
default = mkWarn "No screen locker enabled";
};
};
}

View file

@ -0,0 +1,12 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.browser = {
firefox.enable = mkEnableOption "";
brave.enable = mkEnableOption "";
};
}

View file

@ -0,0 +1,11 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.communication = {
discord.enable = mkEnableOption "";
};
}

View file

@ -0,0 +1,12 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.creative = {
inkscape.enable = mkEnableOption "";
audacity.enable = mkEnableOption "";
};
}

View file

@ -0,0 +1,13 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.gaming = {
factorio.enable = mkEnableOption "";
bottles.enable = mkEnableOption "";
lutris.enable = mkEnableOption "";
};
}

View file

@ -0,0 +1,21 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.media = {
image = {
imv.enable = mkEnableOption "";
};
video = {
mpv.enable = mkEnableOption "";
jellyfinPlayer.enable = mkEnableOption "";
youtube.enable = mkEnableOption "";
};
music = {
spotifyCli.enable = mkEnableOption "";
};
};
}

View file

@ -0,0 +1,19 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.productivity = {
notes = {
obsidian.enable = mkEnableOption "";
};
office = {
libreoffice.enable = mkEnableOption "";
};
pdf = {
zathura.enable = mkEnableOption "";
};
};
}

View file

@ -0,0 +1,11 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.terminal = {
foot.enable = mkEnableOption "";
};
}

View file

@ -0,0 +1,11 @@
{ lib, ... }:
let
inherit (lib) mkEnableOption;
in
{
options.ooknet.tools = {
kdeconnect.enable = mkEnableOption "";
};
}

View file

@ -0,0 +1,31 @@
{ lib, ... }:
let
inherit (lib) mkOption mkEnableOption types;
inherit (types) nullOr enum;
in
{
ooknet.wayland = {
enable = mkEnableOption "";
compositor = mkOption {
type = nullOr (enum [ "hyprland" ]);
};
launcher = mkOption {
type = nullOr (enum [ "rofi" "tofi" ]);
default = null;
};
locker = mkOption {
type = nullOr (enum [ "hyprlock" "swaylock" ]);
default = null;
};
notification = mkOption {
type = nullOr (enum [ "mako" ]);
default = null;
};
bar = mkOption {
type = nullOr (enum [ "waybar" ]);
default = null;
};
};
}

View file

@ -0,0 +1,27 @@
{ lib, ... }:
let
inherit (lib) mkOption types;
inherit (types) nullOr enum;
in
{
options.ooknet.console = {
editor = mkOption {
type = nullOr (enum ["helix" "nvim"]);
default = "helix";
};
shell = mkOption {
type = nullOr (enum ["fish" "bash" "zsh"]);
default = "zsh";
};
multiplexer = mkOption {
type = nullOr (enum ["tmux" "zellij"]);
default = null;
};
fileManager = mkOption {
type = nullOr (enum ["yazi" "ranger" "lf"]);
default = null;
};
};
}

View file

@ -0,0 +1,51 @@
{ lib, ... }:
let
inherit (lib) mkOption types;
inherit (types) enum nullOr listOf;
in
{
options.ooknet.desktop = {
environment = mkOption {
type = nullOr (enum [ "hyprland" ]);
default = "hyprland";
};
browser = mkOption {
type = nullOr (enum [ "firefox" "brave" ]);
default = null;
};
terminal = mkOption {
type = nullOr (enum [ "foot" "kitty" "wezterm" ]);
default = "foot";
};
fileManager = mkOption {
type = nullOr (enum [ "nemo" ]);
default = null;
};
notes = mkOption {
type = nullOr (enum [ "obsidian" ]);
default = null;
};
pdf = mkOption {
type = nullOr (enum [ "zathura" ]);
default = null;
};
discord = mkOption {
type = nullOr (enum [ "vesktop" ]);
default = null;
};
suites = mkOption {
type = listOf (enum [ "gaming" "tools" "media" "creative" ]);
default = [ ];
};
};
}

View file

@ -1,38 +0,0 @@
{ lib, config, ... }:
let
cfg = config.ooknet.theme.cursor;
in
{
options.ooknet.theme.cursor = {
enable = lib.mkEnableOption "Enable cursor module";
package = lib.mkOption {
type = lib.types.package;
default = null;
description = "Package for cursor";
example = "pkgs.bibata-cursors";
};
name = lib.mkOption {
type = lib.types.str;
default = "";
description = "Name of cursor";
example = "Bibata-Modern-Ice";
};
size = lib.mkOption {
type = lib.types.int;
default = 22;
description = "Size of cursor";
example = "22";
};
};
config = lib.mkIf cfg.enable {
home.pointerCursor = {
package = cfg.package;
name = cfg.name;
size = cfg.size;
gtk.enable = true;
x11.enable = true;
};
};
}

View file

@ -1,9 +0,0 @@
{
imports = [
./fonts
./cursor
./gtk
./qt
./wallpaper
];
}

View file

@ -1,15 +0,0 @@
{ config, lib, ... }:
let
cfg = config.ooknet.theme.qt;
in
{
options.ooknet.theme.qt.enable = lib.mkEnableOption "Enable qt module";
config = lib.mkIf cfg.enable {
qt = {
enable = true;
platformTheme.name = "gtk";
};
};
}

View file

@ -1,42 +0,0 @@
{ lib, config, ... }:
let
cfg = config.profiles.base;
inherit (lib) mkDefault;
in
{
imports = [
../../modules
];
config = lib.mkIf cfg.enable {
systemd.user.startServices = mkDefault "sd-switch";
ooknet = {
config = {
home.enable = true;
userDirs.enable = true;
mimeApps.enable = true;
};
console = {
editor.helix = {
enable = true;
default = true;
};
prompt.starship.enable = true;
shell = {
fish.enable = true;
bash.enable = true;
};
multiplexer.zellij.enable = true;
utility = {
ssh.enable = true;
nixIndex.enable = true;
git.enable = true;
tools.enable = true;
};
};
};
};
}

Some files were not shown because too many files have changed in this diff Show more