rename myOptions to modules

This commit is contained in:
Dragyx 2024-04-12 22:03:29 +02:00
commit 6961d2bd8c
45 changed files with 1065 additions and 89 deletions

View file

@ -4,10 +4,10 @@
pkgs,
...
}: with lib; let
cfg = config.myOptions.programs.git;
username = config.myOptions.other.system.username;
cfg = config.modules.programs.git;
username = config.modules.other.system.username;
in {
options.myOptions.programs.git = {
options.modules.programs.git = {
enable = mkEnableOption "git";
userName = mkOption {
type = types.str;

View file

@ -3,16 +3,16 @@
lib,
...
}: with lib; let
cfg = config.myOptions.programs.starship;
username = config.myOptions.other.system.username;
cfg = config.modules.programs.starship;
username = config.modules.other.system.username;
in {
options.myOptions.programs.starship.enable = mkEnableOption "starship";
options.modules.programs.starship.enable = mkEnableOption "starship";
config = mkIf cfg.enable {
home-manager.users.${username} = {
programs.starship = {
enable = true;
enableZshIntegration = config.myOptions.programs.zsh.enable;
enableZshIntegration = config.modules.programs.zsh.enable;
settings = {
add_newline = false;
command_timeout = 1000;

View file

@ -1,11 +1,11 @@
{ config, lib, pkgs, ... }:
with lib; let
cfg = config.myOptions.programs.zsh;
username = config.myOptions.other.system.username;
hostname = config.myOptions.other.system.hostname;
gitPath = config.myOptions.other.system.gitPath;
cfg = config.modules.programs.zsh;
username = config.modules.other.system.username;
hostname = config.modules.other.system.hostname;
gitPath = config.modules.other.system.gitPath;
in {
options.myOptions.programs.zsh = {
options.modules.programs.zsh = {
enable = mkEnableOption "zsh";
extraAliases = mkOption {
type = types.attrs;

View file

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

185
modules/gui/WM/hyprland.nix Normal file
View file

@ -0,0 +1,185 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.modules.WM.hyprland;
username = config.modules.other.system.username;
monitors = config.modules.other.system.monitors;
in
{
options.modules.WM.hyprland = {
enable = mkEnableOption "hyprland";
gnome-keyring = mkEnableOption "gnome-keyring";
};
config = mkIf cfg.enable {
programs.xwayland.enable = true;
/*
programs.hyprland = {
enable = true;
xwayland = true;
};
*/
services.gnome.gnome-keyring.enable = mkDefault cfg.gnome-keyring;
systemd.user.services.polkit-gnome-authentication-agent-1 = mkIf cfg.gnome-keyring {
description = "polkit-gnome-authentication-agent-1";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
home-manager.users.${username} = {
home.packages = with pkgs; [
rofi
waybar
hyprpaper
hyprlock
hyprland
hyprshade
lxqt.lxqt-openssh-askpass
dunst
# wireplumber
unstable.xwayland
pciutils # lspci is needed by hyprland
# from some obscure tutorial on youtube
# xorg.libxcb
# mesa
libglvnd
egl-wayland
libdrm
vulkan-tools
dunst
swww
flameshot
bluetuith
brightnessctl
# needed for wayland copy / paste support in neovim
wl-clipboard
];
programs.hyprland = {
enable = true;
settings = {
exec-once = mkIf cfg.gnome-keyring "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
monitor = map (
m: "${m.device},${m.resolution.x}x${m.resolution.y}@${m.refresh_rate},${m.position.x}x${m.position.y},${m.scale},transform,${m.transform}"
) monitors; #TODO: default value
input = {
kb_layout = console.keyMap;
natural_scroll = true;
sensitivity = 0;
};
general = {
gaps_in = 2;
gaps_out = 1;
border_size = 1;
col.active_border = "rgba(33ccffee) rgba(00ff99ee) 45deg";
col.inactive_border = "rgba(595959aa)";
layout = dwindle;
};
decoration.rounding = 5;
misc.disable_hyprland_logo = true;
animations = {
enabled = true;
# Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = ["myBezier, 0.05, 0.9, 0.1, 1.05"];
animation = [
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
"windows, 1, 7, myBezier"
];
};
gestures.workspace_swipe = true;
debug.enable_stdout_logs = true;
bind = [
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
"SUPER, RETURN, exec, alacritty"
"SUPER SHIFT, RETURN, exec, rofi -show drun"
"SUPER SHIFT, Q, killactive,"
"SUPER, M, exit, "
"SUPER, B, exec, firefox"
"SUPER, f, fullscreen"
"SUPER, E, exec, nautilus --new-window "
"SUPER, V, togglefloating, "
"SUPER, P, pseudo, # dwindle"
"SUPER, S, togglesplit, # dwindle"
"SUPER, C, exec, /home/vali/.config/wallpaper/colorscheme-setter"
",PRINT, exec, flameshot"
"binde = ,XF86MonBrightnessUp, exec, brightnessctl set 10%+"
"binde = ,XF86MonBrightnessDown, exec, brightnessctl set 10%-"
# Example volume button that allows press and hold, volume limited to 150%"
"binde = ,XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
# Example volume button that will activate even while an input inhibitor is active"
"binde = ,XF86AudioLowerVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%-"
",XF86AudioMute, exec, $ wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
# Move focus with mainMod + arrow keys"
"SUPER, h, movefocus, l"
"SUPER, l, movefocus, r"
"SUPER, k, movefocus, u"
"SUPER, j, movefocus, d"
# move window to next / previous workspace"
"SUPER CTRL, h, movetoworkspace, -1"
"SUPER CTRL, l, movetoworkspace, +1"
# move to next / previous workspace"
"SUPER CTRL, h, workspace, -1"
"SUPER CTRL, l, workspace, +1"
# Switch workspaces with mainMod + [0-9]"
"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"
# Move active window to a workspace with mainMod + SHIFT + [0-9]"
"SUPER SHIFT, 1, movetoworkspace, 1"
"SUPER SHIFT, 2, movetoworkspace, 2"
"SUPER SHIFT, 3, movetoworkspace, 3"
"SUPER SHIFT, 4, movetoworkspace, 4"
"SUPER SHIFT, 5, movetoworkspace, 5"
"SUPER SHIFT, 6, movetoworkspace, 6"
"SUPER SHIFT, 7, movetoworkspace, 7"
"SUPER SHIFT, 8, movetoworkspace, 8"
"SUPER SHIFT, 9, movetoworkspace, 9"
"SUPER SHIFT, 0, movetoworkspace, 10"
# Scroll through existing workspaces with mainMod + scroll"
"SUPER, mouse_down, workspace, e+1"
"SUPER, mouse_up, workspace, e-1"
"
# Move/resize windows with mainMod + LMB/RMB and dragging"
#bindm = SUPER, mouse:272, movewindow"
#bindm = SUPER, mouse:273, resizewindow"
];
};
};
};
};
}

View file

@ -3,10 +3,10 @@
lib,
...
}: with lib; let
cfg = config.myOptions.themes.cursor;
username = config.myOptions.other.system.username;
cfg = config.modules.themes.cursor;
username = config.modules.other.system.username;
in {
options.myOptions.themes.cursor = {
options.modules.themes.cursor = {
enable = mkEnableOption "cursor theming";
package = mkOption {
description = "cursor theme package";

View file

@ -10,5 +10,6 @@ _: {
./obs.nix
./foot.nix
# ./vivado.nix
./WM
];
}

View file

@ -5,10 +5,10 @@
pkgs,
...
}: with lib; let
cfg = config.myOptions.programs.foot;
username = config.myOptions.other.system.username;
cfg = config.modules.programs.foot;
username = config.modules.other.system.username;
in {
options.myOptions.programs.foot = {
options.modules.programs.foot = {
enable = mkEnableOption "foot";
server = mkEnableOption "foot server mode";
};

View file

@ -3,11 +3,11 @@
lib,
...
}: with lib; let
cfg = config.myOptions.themes.gtk;
username = config.myOptions.other.system.username;
cfg = config.modules.themes.gtk;
username = config.modules.other.system.username;
hmCfg = config.home-manager.users.${username};
in {
options.myOptions.themes.gtk = {
options.modules.themes.gtk = {
enable = mkEnableOption "gtk theming";
name = mkOption {
description = "gtk theme name";

View file

@ -4,10 +4,10 @@
pkgs,
...
}: with lib; let
cfg = config.myOptions.programs.mpv;
username = config.myOptions.other.system.username;
cfg = config.modules.programs.mpv;
username = config.modules.other.system.username;
in {
options.myOptions.programs.mpv.enable = mkEnableOption "mpv";
options.modules.programs.mpv.enable = mkEnableOption "mpv";
config = mkIf cfg.enable {
home-manager.users.${username} = {

View file

@ -1,9 +1,9 @@
{ config, lib, pkgs, ... }:
with lib; let
cfg = config.myOptions.programs.obs;
username = config.myOptions.other.system.username;
cfg = config.modules.programs.obs;
username = config.modules.other.system.username;
in {
options.myOptions.programs.obs.enable = mkEnableOption "obs";
options.modules.programs.obs.enable = mkEnableOption "obs";
config = mkIf cfg.enable {
home-manager.users.${username} = {

View file

@ -4,10 +4,10 @@
pkgs,
...
}: with lib; let
cfg = config.myOptions.themes.qt;
username = config.myOptions.other.system.username;
cfg = config.modules.themes.qt;
username = config.modules.other.system.username;
in {
options.myOptions.themes.qt = {
options.modules.themes.qt = {
enable = mkEnableOption "qt theming";
name = mkOption {
description = "qt theme name";

View file

@ -1,9 +1,9 @@
{ config, inputs, lib, ... }:
with lib; let
cfg = config.myOptions.programs.schizofox;
username = config.myOptions.other.system.username;
cfg = config.modules.programs.schizofox;
username = config.modules.other.system.username;
in {
options.myOptions.programs.schizofox = {
options.modules.programs.schizofox = {
enable = mkEnableOption "schizofox";
};

View file

@ -4,10 +4,10 @@
pkgs,
...
}: with lib; let
cfg = config.myOptions.programs.vesktop;
username = config.myOptions.other.system.username;
cfg = config.modules.programs.vesktop;
username = config.modules.other.system.username;
in {
options.myOptions.programs.vesktop = {
options.modules.programs.vesktop = {
enable = mkEnableOption "vesktop";
};

View file

@ -6,11 +6,11 @@ let
desktopName = "Vivado";
exec = "${pkgs.nur.repos.lschuermann.vivado-2022_2}/bin/vivado";
};
cfg = with lib; [ config.myOptions.programs.vivado ];
username = with lib; [ config.myOptions.other.system.username ];
cfg = with lib; [ config.modules.programs.vivado ];
username = with lib; [ config.modules.other.system.username ];
in
{
options.myOptions.programs.vivado.enable = mkEnableOption "vivado";
options.modules.programs.vivado.enable = mkEnableOption "vivado";
config = mkIf cfg.enable {
home-manager.users.${username} = {

View file

@ -4,10 +4,10 @@
pkgs,
...
}: with lib; let
cfg = config.myOptions.programs.zathura;
username = config.myOptions.other.system.username;
cfg = config.modules.programs.zathura;
username = config.modules.other.system.username;
in {
options.myOptions.programs.zathura.enable = mkEnableOption "zathura";
options.modules.programs.zathura.enable = mkEnableOption "zathura";
config = mkIf cfg.enable {
home-manager.users.${username} = {

View file

@ -1,8 +1,8 @@
{pkgs, lib, config, ...}:
with lib; let
cfg = config.myOptions.programs.displaymanager;
cfg = config.modules.programs.displaymanager;
in {
options.myOptions.programs.displaymanager.enable = mkEnableOption "displaymanager";
options.modules.programs.displaymanager.enable = mkEnableOption "displaymanager";
config = mkIf cfg.enable {
services.xserver.displayManager = {

View file

@ -5,10 +5,10 @@
self,
...
}: with lib; let
cfg = config.myOptions.other.home-manager;
username = config.myOptions.other.system.username;
cfg = config.modules.other.home-manager;
username = config.modules.other.system.username;
in {
options.myOptions.other.home-manager = {
options.modules.other.home-manager = {
enable = mkEnableOption "home-manager";
enableDirenv = mkEnableOption "direnv";
};

View file

@ -3,9 +3,9 @@
lib,
...
}: with lib; let
cfg = config.myOptions.other.system;
cfg = config.modules.other.system;
in {
options.myOptions.other.system = {
options.modules.other.system = {
hostname = mkOption {
description = "hostname for this system";
type = types.str;

View file

@ -2,7 +2,7 @@
config,
...
}: let
username = config.myOptions.other.system.username;
username = config.modules.other.system.username;
hmCfg = config.home-manager.users.${username};
primary_browser = "firefox-schizo.desktop";
@ -31,7 +31,7 @@ in {
XAUTHORITY = "\$XDG_RUNTIME_DIR/Xauthority";
};
*/
myOptions.programs.zsh.extraAliases = {
modules.programs.zsh.extraAliases = {
gdb = "gdb -n -x ${hmCfg.xdg.configHome}/gdb/init";
pidgin = "pidgin --config=${hmCfg.xdg.dataHome}/purple";
svn = "svn --config-dir ${hmCfg.xdg.configHome}/subversion";

View file

@ -1,8 +1,8 @@
{ config, lib, ... }:
with lib; let
cfg = config.myOptions.services.pipewire;
cfg = config.modules.services.pipewire;
in {
options.myOptions.services.pipewire.enable = mkEnableOption "pipewire";
options.modules.services.pipewire.enable = mkEnableOption "pipewire";
config = mkIf cfg.enable {
hardware.pulseaudio.enable = false;

View file

@ -1,9 +1,9 @@
{ config, lib, ... }:
with lib; let
cfg = config.myOptions.programs.btop;
username = config.myOptions.other.system.username;
cfg = config.modules.programs.btop;
username = config.modules.other.system.username;
in {
options.myOptions.programs.btop.enable = mkEnableOption "btop";
options.modules.programs.btop.enable = mkEnableOption "btop";
config = mkIf cfg.enable {
home-manager.users.${username} = {

View file

@ -5,10 +5,10 @@
pkgs,
...
}: with lib; let
cfg = config.myOptions.programs.neovim;
username = config.myOptions.other.system.username;
cfg = config.modules.programs.neovim;
username = config.modules.other.system.username;
in {
options.myOptions.programs.neovim.enable = mkEnableOption "neovim";
options.modules.programs.neovim.enable = mkEnableOption "neovim";
config = mkIf cfg.enable {
nixpkgs.overlays = [ inputs.neovim-nightly-overlay.overlay ];