refactor *started*

This commit is contained in:
martyTF 2026-03-30 22:03:03 +02:00
parent d0413cb830
commit db2103a37d
103 changed files with 1008 additions and 786 deletions

View file

@ -1,3 +0,0 @@
# HOME
only for dotfiles, no longer installing stuff from here

View file

@ -1,22 +0,0 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
desktop = {
audio.enable = lib.mkEnableOption "enable audio";
};
};
config = lib.mkIf config.desktop.audio.enable {
home.packages = with pkgs; [
pavucontrol
playerctl
];
};
}

View file

@ -7,16 +7,9 @@
{
imports = [
./hyprland.nix
./walker.nix
./waybar.nix
./rofi.nix
./wallpaper.nix
./grimblast.nix
./audio.nix
./noctalia.nix
];
home.packages = with pkgs; [
wl-clipboard
./utilities
./window-managers
./shell
./display-manager.nix
];
}

View file

@ -0,0 +1,51 @@
{
config,
pkgs,
lib,
inputs,
...
}:
{
services = {
xserver = {
xkb = {
layout = builtins.substring 0 2 config.system.locale;
variant = "";
};
};
power-profiles-daemon = {
enable = true;
};
upower = {
enable = true;
};
displayManager = {
gdm = {
enable = true;
autoSuspend = false;
};
};
};
programs = {
uwsm = {
waylandCompositors = {
hyprland = lib.mkIf config.desktop.window-managers.hyprland.enable {
prettyName = "Hyprland";
comment = "Hyprland";
binPath = "${config.programs.hyprland.package}/bin/start-hyprland";
};
sway = lib.mkIf config.desktop.window-managers.sway.enable {
prettyName = "Sway";
comment = "Sway";
binPath = "${config.programs.sway.package}/bin/sway --session";
};
niri = lib.mkIf config.desktop.window-managers.niri.enable {
prettyName = "Niri";
comment = "Niri";
binPath = "${config.programs.niri.package}/bin/niri-session";
};
};
};
};
}

View file

@ -1,211 +0,0 @@
{
config,
lib,
pkgs,
inputs,
...
}:
{
options = {
desktop = {
hyprland = {
enable = lib.mkEnableOption "enable hyprland";
monitors = lib.mkOption {
default = [
",preferred,auto,1"
];
description = "declare monitors";
};
workspaces = {
workspaces = lib.mkOption {
default = (
builtins.concatLists (
builtins.genList (
i:
let
ws = i + 1;
in
[
"${toString i},persistent:true"
]
) config.desktop.hyprland.workspaces.amount
)
);
description = "declare workspace";
};
amount = lib.mkOption {
default = 9;
description = "declare workspace amount";
};
};
numlock = lib.mkEnableOption "numlock by default";
};
};
};
config = lib.mkIf config.desktop.hyprland.enable {
xdg.portal = {
enable = true;
configPackages = [
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
];
extraPortals = [
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland
pkgs.xdg-desktop-portal-xapp
pkgs.xdg-desktop-portal-gtk
];
config.common = {
"org.freedesktop.portal.OpenURI" = [
"*"
"hyprland"
];
};
};
programs = {
hyprlock = {
enable = true;
};
};
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
systemd.enable = false;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
settings = {
monitor = config.desktop.hyprland.monitors;
workspace = config.desktop.hyprland.workspaces.workspaces;
env = [
"XDG_CURRENT_DESKTOP,Hyprland"
"XDG_SESSION_TYPE,wayland"
"XDG_SESSION_DESKTOP,Hyprland"
];
exec-once = [
#"hyprctl plugin load "
(lib.mkIf (config.desktop.walker.enable) "elephant")
(lib.mkIf (config.desktop.waybar.enable) "waybar")
(lib.mkIf (config.desktop.noctalia.enable) "noctalia-shell")
(lib.mkIf (config.desktop.noctalia.enable) "noctalia-shell ipc call wallpaper random")
(lib.mkIf (config.desktop.wallpaper.enable) "waypaper --restore --random")
(lib.mkIf (config.gaming.steam.enable) "adwaita-steam-gtk -u; steam -silent")
(lib.mkIf (config.internet.mail.providers.protonmail.enable) "protonmail-bridge -n")
"echo $HYPRLAND_INSTANCE_SIGNATURE > ~/.config/hypr/instance_signature"
];
"$mod" = "SUPER";
"$shiftmod" = "SUPER_SHIFT";
"$controlmod" = "SUPER_CTRL";
bind = [
(lib.mkIf (config.desktop.walker.enable) "$mod, D, exec, walker")
(lib.mkIf (config.desktop.rofi.enable) "$mod, D, exec, rofi -show drun")
(lib.mkIf (config.terminal.kitty.enable) "$mod, return, exec, kitty")
(lib.mkIf (config.desktop.grimblast.enable) ", print, exec, GRIMBLAST_EDITOR=gradia grimblast edit area")
(lib.mkIf (config.desktop.rofi.enable) (
lib.mkIf (config.misc.bitwarden.enable) "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; rofi-rbw; sleep 30; rbw lock"
))
(lib.mkIf (config.desktop.walker.enable) (
lib.mkIf (config.misc.bitwarden.enable) "$mod, B, exec, rbw unlocked || kitty --class kitty-floating -e rbw unlock; selected=$(rbw list | walker -d); wl-copy $(rbw get \"$selected\"); sleep 30; rbw lock"
))
"$mod, F, fullscreen, 1"
"$shiftmod, F, fullscreen, 0"
"$shiftmod, Q, killactive,"
"$mod, S, togglespecialworkspace, magic"
"$mod, O, exec, zen"
"$shiftmod, S, movetoworkspace, special:magic"
"$controlmod, right, workspace, m+1"
"$controlmod, left, workspace, m-1"
"$mod, mouse_down, workspace, m-1"
"$mod, mouse_up, workspace, m+1"
"$mod, left, movefocus, l"
"$mod, right, movefocus, r"
"$mod, up, movefocus, u"
"$mod, down, movefocus, d"
"$mod, J, exec, playerctl previous"
"$mod, K, exec, playerctl play-pause"
"$mod, L, exec, playerctl next"
"$mod, G, togglefloating,"
# "$mod, H, hyprexpo:expo, toggle"
"$mod, F1, exec, hyprlock"
"$shiftmod, E, exec, codium"
"$controlmod, up, exec, light -A 10"
"$controlmod, down, exec, light -U 10"
"$controlmod, Q, exec, hyprctl kill"
]
++ (builtins.concatLists (
builtins.genList (
i:
let
ws = i + 1;
in
[
"$mod, code:1${toString i}, workspace, ${toString ws}"
"$shiftmod, code:1${toString i}, movetoworkspacesilent, ${toString ws}"
]
) config.desktop.hyprland.workspaces.amount
));
bindm = [
"$mod, mouse:272, movewindow"
"$mod, mouse:273, resizewindow"
];
bindel = [
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
];
input = {
kb_layout = "de";
numlock_by_default = config.desktop.hyprland.numlock;
follow_mouse = 2;
mouse_refocus = false;
accel_profile = "flat";
sensitivity = 0.2;
touchpad = {
natural_scroll = "no";
disable_while_typing = true;
};
};
cursor = {
inactive_timeout = 0;
no_warps = true;
};
decoration = {
rounding = 20;
blur = {
enabled = true;
size = 3;
passes = 1;
};
shadow = {
range = 4;
render_power = 3;
color = "rgba(1a1a1aee)";
};
};
# plugin = {
# hyprexpo = {
# columns = 2;
# gap_size = 20;
# bg_col = "rgb(e1e1e2)";
# workspace_method = "first 1";
# enable_gesture = true;
# gesture_distance = 300;
# gesture_positive = true;
# gesture_negative = true;
# };
# hyprtrails = {
# color = "rgba(1a1a1aee)";
# };
# };
};
plugins = [
# inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprtrails
# inputs.hyprland-plugins.packages.${pkgs.stdenv.hostPlatform.system}.hyprexpo
];
};
home.sessionVariables.NIXOS_OZONE_WL = "1";
};
}

View file

@ -1,22 +0,0 @@
{
pkgs,
inputs,
lib,
config,
...
}:
{
options = {
desktop = {
noctalia.enable = lib.mkEnableOption "enable noctalia";
};
};
config = lib.mkIf config.desktop.noctalia.enable {
programs.noctalia-shell = {
enable = true;
};
};
}

View file

@ -1,29 +0,0 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
desktop = {
rofi.enable = lib.mkEnableOption "enable rofi";
};
};
config = lib.mkIf config.desktop.rofi.enable {
programs = {
rofi = {
enable = true;
modes = [
"drun"
"run"
"ssh"
];
};
};
};
}

View file

@ -0,0 +1,15 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./noctalia.nix
./swww.nix
./walker.nix
./waybar.nix
];
}

View file

@ -0,0 +1,24 @@
{
pkgs,
inputs,
lib,
config,
...
}:
{
options = {
desktop.shell = {
noctalia.enable = lib.mkEnableOption "enable noctalia";
};
};
imports = lib.mkIf config.desktop.shell.noctalia.enable [
inputs.noctalia.homeModules.default
];
config = lib.mkIf config.desktop.shell.noctalia.enable {
desktop.shell.swww.enable = lib.mkDefault false;
programs.noctalia-shell = {
enable = true;
};
};
}

View file

@ -0,0 +1,22 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
desktop.shell = {
swww.enable = lib.mkEnableOption "enable swww";
};
};
config = lib.mkIf config.desktop.shell.swww.enable {
environment.systemPackages = with pkgs; [
waypaper
swww
];
};
}

View file

@ -8,19 +8,15 @@
{
options = {
desktop = {
desktop.shell = {
walker.enable = lib.mkEnableOption "enable walker";
};
};
config = lib.mkIf config.desktop.walker.enable {
config = lib.mkIf config.desktop.shell.walker.enable {
programs = {
walker = {
enable = true;
runAsService = true;
config = {
theme = "noctalia";
};
};
};
};

View file

@ -7,12 +7,12 @@
{
options = {
desktop = {
desktop.shell = {
waybar.enable = lib.mkEnableOption "enable waybar";
};
};
config = lib.mkIf config.desktop.waybar.enable {
config = lib.mkIf config.desktop.shell.waybar.enable {
programs = {
waybar = {
enable = true;

View file

@ -1,33 +0,0 @@
{
config,
pkgs,
lib,
...
}:
{
options = {
desktop = {
sway = {
enable = lib.mkEnableOption "enable sway";
};
};
};
config = lib.mkIf config.desktop.sway.enable {
environment.systemPackages = with pkgs; [
grim # screenshot functionality
slurp # screenshot functionality
wl-clipboard # wl-copy and wl-paste for copy/paste from stdin / stdout
];
# Enable the gnome-keyring secrets vault.
# Will be exposed through DBus to programs willing to store secrets.
services.gnome.gnome-keyring.enable = true;
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
package = null;
};
};
}

View file

@ -0,0 +1,12 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./grimblast.nix
];
}

View file

@ -8,13 +8,13 @@
{
options = {
desktop = {
desktop.utilities = {
grimblast.enable = lib.mkEnableOption "enable grimblast";
};
};
config = lib.mkIf config.desktop.grimblast.enable {
home.packages = with pkgs; [
config = lib.mkIf config.desktop.utilities.grimblast.enable {
environment.systemPackages = with pkgs; [
grimblast
gradia
];

View file

@ -1,22 +0,0 @@
{
config,
pkgs,
inputs,
lib,
...
}:
{
options = {
desktop = {
wallpaper.enable = lib.mkEnableOption "enable wallpapers";
};
};
config = lib.mkIf config.desktop.wallpaper.enable {
home.packages = with pkgs; [
waypaper
swww
];
};
}

View file

@ -0,0 +1,14 @@
{
config,
lib,
pkgs,
...
}:
{
imports = [
./hyprland.nix
./niri.nix
./sway.nix
];
}

View file

@ -0,0 +1,27 @@
{
config,
pkgs,
lib,
inputs,
...
}:
{
options = {
desktop.window-managers = {
hyprland = {
enable = lib.mkEnableOption "enable hyprland";
};
};
};
config = lib.mkIf config.desktop.window-managers.hyprland.enable {
programs.hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.hyprland;
portalPackage =
inputs.hyprland.packages.${pkgs.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
};
};
}

View file

@ -7,21 +7,17 @@
{
options = {
desktop = {
desktop.window-managers = {
niri = {
enable = lib.mkEnableOption "enable niri";
};
};
};
config = lib.mkIf config.desktop.niri.enable {
# Enable the gnome-keyring secrets vault.
# Will be exposed through DBus to programs willing to store secrets.
config = lib.mkIf config.desktop.window-managers.niri.enable {
services.gnome.gnome-keyring.enable = true;
environment.systemPackages = with pkgs; [
xwayland-satellite
niri
];
xwayland-satellite
];
programs.niri = {
enable = true;
};

View file

@ -0,0 +1,24 @@
{
config,
pkgs,
lib,
...
}:
{
options = {
desktop.window-managers = {
sway = {
enable = lib.mkEnableOption "enable sway";
};
};
};
config = lib.mkIf config.desktop.window-managers.sway.enable {
services.gnome.gnome-keyring.enable = true;
programs.sway = {
enable = true;
wrapperFeatures.gtk = true;
package = null;
};
};
}