initial commit for module-refactor
This commit is contained in:
31
modules/default.nix
Normal file
31
modules/default.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{
|
||||
inputs,
|
||||
nixpkgs,
|
||||
config,
|
||||
self,
|
||||
username,
|
||||
host,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./sys/hardware
|
||||
./sys/software
|
||||
./sys/environment
|
||||
./home/home-manager.nix
|
||||
];
|
||||
|
||||
networkModule.enable = lib.mkDefault true;
|
||||
nixSettings.enable = lib.mkDefault true;
|
||||
bootLoader.enable = lib.mkDefault true;
|
||||
issue.enable = lib.mkDefault true;
|
||||
sddmOpts.enable = lib.mkDefault true;
|
||||
stylixOpts.enable = lib.mkDefault true;
|
||||
gamingPkgs.enable = lib.mkDefault true;
|
||||
steamOpts.enable = lib.mkDefault true;
|
||||
sysPkgs.enable = lib.mkDefault true;
|
||||
sysProgs.enable = lib.mkDefault true;
|
||||
sysServices.enable = lib.mkDefault true;
|
||||
virtOpts.enable = lib.mkDefault true;
|
||||
powerProfiles.enable = lib.mkDefault false;
|
||||
}
|
||||
@@ -9,14 +9,15 @@
|
||||
home-manager,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
[(import ./gtk.nix)]
|
||||
++ [(import ./spicetify.nix)]
|
||||
++ [(import ./stylix.nix)]
|
||||
++ [(import ./starship.nix)]
|
||||
++ [(import ./userpkgs.nix)]
|
||||
++ [(import ./zshell.nix)]
|
||||
++ [(import ./swaync.nix)]
|
||||
++ [(import ./waybar)]
|
||||
++ [(import ./hyprland)];
|
||||
imports = [
|
||||
./gtk.nix
|
||||
./spicetify.nix
|
||||
./stylix.nix
|
||||
./starship.nix
|
||||
./userpkgs.nix
|
||||
./zshell.nix
|
||||
./swaync.nix
|
||||
./hyprland.nix
|
||||
./waybar.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,35 +1,36 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
fonts.fontconfig.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
"JetBrainsMono"
|
||||
"CascadiaCode"
|
||||
"NerdFontsSymbolsOnly"
|
||||
];
|
||||
})
|
||||
];
|
||||
{lib, config, pkgs, ... }: {
|
||||
options = {
|
||||
gtkOpts.enable = lib.mkEnableOption "enable my gtk options";
|
||||
};
|
||||
config = lib.mkIf config.gtkOpts.enable {
|
||||
fonts.fontconfig.enable = true;
|
||||
home.packages = with pkgs; [
|
||||
(nerdfonts.override {
|
||||
fonts = [
|
||||
"JetBrainsMono"
|
||||
"CascadiaCode"
|
||||
"NerdFontsSymbolsOnly"
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-nord.override {
|
||||
accent = "frostblue4";
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-nord.override {
|
||||
accent = "frostblue4";
|
||||
};
|
||||
};
|
||||
#cursorTheme = {
|
||||
# name = "Bibata-Modern-Ice";
|
||||
# package = pkgs.bibata-cursors;
|
||||
# size = 16;
|
||||
#};
|
||||
#font = {
|
||||
# name = "Iosevka Nerd Font";
|
||||
# package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
|
||||
#};
|
||||
};
|
||||
#cursorTheme = {
|
||||
# name = "Bibata-Modern-Ice";
|
||||
# package = pkgs.bibata-cursors;
|
||||
# size = 16;
|
||||
#};
|
||||
#font = {
|
||||
# name = "Iosevka Nerd Font";
|
||||
# package = pkgs.nerdfonts.override {fonts = ["Iosevka"];};
|
||||
#};
|
||||
};
|
||||
}
|
||||
|
||||
242
modules/home/environment/hyprland.nix
Normal file
242
modules/home/environment/hyprland.nix
Normal file
@@ -0,0 +1,242 @@
|
||||
{inputs, pkgs, lib, config, username, host, ... }: let
|
||||
desktop = host == "oganesson";
|
||||
screenshot_bind =
|
||||
if desktop
|
||||
then [
|
||||
# My laptop does not have a printscreen button
|
||||
"super, print, exec, grimblast copy area"
|
||||
]
|
||||
else [
|
||||
"super, insert, exec, grimblast copy area"
|
||||
];
|
||||
in {
|
||||
options = {
|
||||
hyprlandConfig.enable = lib.mkEnableOption "enables my hyprland config";
|
||||
};
|
||||
config = lib.mkIf config.hyprlandConfig.enable {
|
||||
home.packages = with pkgs; [
|
||||
swaybg
|
||||
inputs.hypr-contrib.packages.${pkgs.system}.grimblast
|
||||
hyprpicker
|
||||
grim
|
||||
slurp
|
||||
wl-clip-persist
|
||||
wf-recorder
|
||||
glib
|
||||
wayland
|
||||
direnv
|
||||
];
|
||||
systemd.user.targets.hyprland-session.Unit.Wants = ["xdg-desktop-autostart.target"];
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland = {
|
||||
enable = true;
|
||||
};
|
||||
systemd.enable = true;
|
||||
};
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
monitor =
|
||||
if (host == "oganesson")
|
||||
then [
|
||||
"DP-1, 1920x1080@144, 1920x0, 1"
|
||||
"HDMI-A-1, 1920x1080, 0x0, 1"
|
||||
]
|
||||
else [
|
||||
"eDP-1, 1600x900, 0x0, 1"
|
||||
];
|
||||
|
||||
exec-once = [
|
||||
"waybar &"
|
||||
"swaync &"
|
||||
"wl-paste --type text --watch cliphist store &"
|
||||
"wl-paste --type image --watch cliphist store &"
|
||||
"wl-clip-persist --clipboard both"
|
||||
"systemctl --user import-environment &"
|
||||
"hash dbus-update-activation-environment 2>/dev/null &"
|
||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
|
||||
"aplay /home/${username}/sound/sys/login.wav &"
|
||||
];
|
||||
|
||||
workspace =
|
||||
if desktop
|
||||
then [
|
||||
"1,persistent=true,monitor:HDMI-A-1"
|
||||
"2,persistent=true,monitor:HDMI-A-1"
|
||||
"3,persistent=true,monitor:HDMI-A-1"
|
||||
"4,persistent=true,monitor:DP-1"
|
||||
"5,persistent=true,monitor:DP-1"
|
||||
"6,persistent=true,monitor:DP-1"
|
||||
]
|
||||
else [
|
||||
"1,persistent=true,monitor:eDP-1"
|
||||
"2,persistent=true,monitor:eDP-1"
|
||||
"3,persistent=true,monitor:eDP-1"
|
||||
"4,persistent=true,monitor:eDP-1"
|
||||
];
|
||||
|
||||
env = [
|
||||
"XDG_CONFIG_HOME,$HOME/.config"
|
||||
"XDG_DATA_HOME,$HOME/.local/share"
|
||||
"XDG_CACHE_HOME,$HOME/.cache"
|
||||
];
|
||||
layerrule = [
|
||||
"blur,waybar"
|
||||
"ignorezero,waybar"
|
||||
"blur,launcher"
|
||||
];
|
||||
windowrule = [
|
||||
"opacity 0.8,nemo"
|
||||
];
|
||||
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
follow_mouse = 1;
|
||||
accel_profile = "flat";
|
||||
force_no_accel = 1;
|
||||
sensitivity = 0;
|
||||
};
|
||||
general = {
|
||||
"$mainMod" = "super";
|
||||
layout = "dwindle";
|
||||
gaps_in = 4;
|
||||
gaps_out = 8;
|
||||
border_size = 2;
|
||||
#"col.inactive_border" = "0xff${scheme.base01}";
|
||||
#"col.active_border" = "0xff${scheme.base0F}";
|
||||
border_part_of_window = false;
|
||||
no_border_on_floating = false;
|
||||
};
|
||||
misc = {
|
||||
disable_autoreload = true;
|
||||
disable_hyprland_logo = true;
|
||||
always_follow_on_dnd = true;
|
||||
layers_hog_keyboard_focus = true;
|
||||
animate_manual_resizes = false;
|
||||
enable_swallow = true;
|
||||
focus_on_activate = true;
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
no_gaps_when_only = false;
|
||||
force_split = 0;
|
||||
special_scale_factor = 1.0;
|
||||
split_width_multiplier = 1.0;
|
||||
use_active_for_splits = true;
|
||||
pseudotile = "yes";
|
||||
preserve_split = "yes";
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
special_scale_factor = 1;
|
||||
no_gaps_when_only = false;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 7;
|
||||
# active_opacity = 0.90;
|
||||
# inactive_opacity = 0.90;
|
||||
# fullscreen_opacity = 1.0;
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
# size = 1;
|
||||
# passes = 1;
|
||||
size = 4;
|
||||
passes = 1;
|
||||
brightness = 1;
|
||||
contrast = 1.400;
|
||||
ignore_opacity = true;
|
||||
popups = true;
|
||||
noise = 0;
|
||||
new_optimizations = true;
|
||||
xray = true;
|
||||
};
|
||||
|
||||
drop_shadow = true;
|
||||
|
||||
shadow_ignore_window = true;
|
||||
shadow_offset = "0 2";
|
||||
shadow_range = 20;
|
||||
shadow_render_power = 3;
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
|
||||
bezier = [
|
||||
"fluent_decel, 0, 0.2, 0.4, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutCubic, 0.33, 1, 0.68, 1"
|
||||
"easeinoutsine, 0.37, 0, 0.63, 1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
# Windows
|
||||
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
|
||||
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
|
||||
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
|
||||
|
||||
# Fade
|
||||
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
|
||||
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
|
||||
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
|
||||
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
|
||||
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
|
||||
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
|
||||
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
|
||||
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
|
||||
];
|
||||
|
||||
bind =
|
||||
[
|
||||
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
|
||||
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
|
||||
"super, t, exec, swaync-client -t -sw"
|
||||
"super, a, exec, firefox"
|
||||
"super, q, exec, kitty --title Kitty"
|
||||
"super shift, q, exec, [float;size 40% 30%;move onscreen cursor -50% -50%] kitty --title Kitty"
|
||||
"super, c, killactive,"
|
||||
"super, e, exec, nemo"
|
||||
"super, p, exec, [float;size 40% 25%;move onscreen cursor] [ ! -f /tmp/keyringfile ] && kitty toolbelt"
|
||||
"super shift, m, exit,"
|
||||
"super, m, exec, fuzzel"
|
||||
"super, r, exec, neovide"
|
||||
"super, b, togglesplit, # dwindle"
|
||||
"super, f, togglefloating"
|
||||
"super, g, fullscreen"
|
||||
"super, h, movefocus, l"
|
||||
"super, l, movefocus, r"
|
||||
"super, k, movefocus, u"
|
||||
"super, j, movefocus, d"
|
||||
"super shift, h, movewindow, l"
|
||||
"super shift, l, movewindow, r"
|
||||
"super shift, k, movewindow, u"
|
||||
"super shift, j, movewindow, d"
|
||||
"super, d, exec, switchmon"
|
||||
"super, 1, exec, hyprctl 'dispatch workspace 1'"
|
||||
"super, 2, exec, hyprctl 'dispatch workspace 2'"
|
||||
"super, 3, exec, hyprctl 'dispatch workspace 3'"
|
||||
"super, 4, exec, hyprctl 'dispatch workspace 4'"
|
||||
"super, 5, exec, hyprctl 'dispatch workspace 5'"
|
||||
"super, 6, exec, hyprctl 'dispatch workspace 6'"
|
||||
"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, s, togglespecialworkspace, magic"
|
||||
"super shift, s, movetoworkspace, special:magic"
|
||||
]
|
||||
++ screenshot_bind;
|
||||
bindm = [
|
||||
"super, mouse:272, movewindow"
|
||||
"super, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,221 +0,0 @@
|
||||
{
|
||||
username,
|
||||
host,
|
||||
...
|
||||
}: let
|
||||
desktop = host == "oganesson";
|
||||
screenshot_bind =
|
||||
if desktop
|
||||
then [
|
||||
# My laptop does not have a printscreen button
|
||||
"super, print, exec, grimblast copy area"
|
||||
]
|
||||
else [
|
||||
"super, insert, exec, grimblast copy area"
|
||||
];
|
||||
in {
|
||||
wayland.windowManager.hyprland = {
|
||||
settings = {
|
||||
monitor =
|
||||
if (host == "oganesson")
|
||||
then [
|
||||
"DP-1, 1920x1080@144, 1920x0, 1"
|
||||
"HDMI-A-1, 1920x1080, 0x0, 1"
|
||||
]
|
||||
else [
|
||||
"eDP-1, 1600x900, 0x0, 1"
|
||||
];
|
||||
|
||||
exec-once = [
|
||||
"waybar &"
|
||||
"swaync &"
|
||||
"wl-paste --type text --watch cliphist store &"
|
||||
"wl-paste --type image --watch cliphist store &"
|
||||
"wl-clip-persist --clipboard both"
|
||||
"systemctl --user import-environment &"
|
||||
"hash dbus-update-activation-environment 2>/dev/null &"
|
||||
"dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP &"
|
||||
"aplay /home/${username}/sound/sys/login.wav &"
|
||||
];
|
||||
|
||||
workspace =
|
||||
if desktop
|
||||
then [
|
||||
"1,persistent=true,monitor:HDMI-A-1"
|
||||
"2,persistent=true,monitor:HDMI-A-1"
|
||||
"3,persistent=true,monitor:HDMI-A-1"
|
||||
"4,persistent=true,monitor:DP-1"
|
||||
"5,persistent=true,monitor:DP-1"
|
||||
"6,persistent=true,monitor:DP-1"
|
||||
]
|
||||
else [
|
||||
"1,persistent=true,monitor:eDP-1"
|
||||
"2,persistent=true,monitor:eDP-1"
|
||||
"3,persistent=true,monitor:eDP-1"
|
||||
"4,persistent=true,monitor:eDP-1"
|
||||
];
|
||||
|
||||
env = [
|
||||
"XDG_CONFIG_HOME,$HOME/.config"
|
||||
"XDG_DATA_HOME,$HOME/.local/share"
|
||||
"XDG_CACHE_HOME,$HOME/.cache"
|
||||
];
|
||||
layerrule = [
|
||||
"blur,waybar"
|
||||
"ignorezero,waybar"
|
||||
"blur,launcher"
|
||||
];
|
||||
windowrule = [
|
||||
"opacity 0.8,nemo"
|
||||
];
|
||||
|
||||
input = {
|
||||
kb_layout = "us";
|
||||
follow_mouse = 1;
|
||||
accel_profile = "flat";
|
||||
force_no_accel = 1;
|
||||
sensitivity = 0;
|
||||
};
|
||||
general = {
|
||||
"$mainMod" = "super";
|
||||
layout = "dwindle";
|
||||
gaps_in = 4;
|
||||
gaps_out = 8;
|
||||
border_size = 2;
|
||||
#"col.inactive_border" = "0xff${scheme.base01}";
|
||||
#"col.active_border" = "0xff${scheme.base0F}";
|
||||
border_part_of_window = false;
|
||||
no_border_on_floating = false;
|
||||
};
|
||||
misc = {
|
||||
disable_autoreload = true;
|
||||
disable_hyprland_logo = true;
|
||||
always_follow_on_dnd = true;
|
||||
layers_hog_keyboard_focus = true;
|
||||
animate_manual_resizes = false;
|
||||
enable_swallow = true;
|
||||
focus_on_activate = true;
|
||||
};
|
||||
|
||||
dwindle = {
|
||||
no_gaps_when_only = false;
|
||||
force_split = 0;
|
||||
special_scale_factor = 1.0;
|
||||
split_width_multiplier = 1.0;
|
||||
use_active_for_splits = true;
|
||||
pseudotile = "yes";
|
||||
preserve_split = "yes";
|
||||
};
|
||||
|
||||
master = {
|
||||
new_status = "master";
|
||||
special_scale_factor = 1;
|
||||
no_gaps_when_only = false;
|
||||
};
|
||||
|
||||
decoration = {
|
||||
rounding = 7;
|
||||
# active_opacity = 0.90;
|
||||
# inactive_opacity = 0.90;
|
||||
# fullscreen_opacity = 1.0;
|
||||
|
||||
blur = {
|
||||
enabled = true;
|
||||
# size = 1;
|
||||
# passes = 1;
|
||||
size = 4;
|
||||
passes = 1;
|
||||
brightness = 1;
|
||||
contrast = 1.400;
|
||||
ignore_opacity = true;
|
||||
popups = true;
|
||||
noise = 0;
|
||||
new_optimizations = true;
|
||||
xray = true;
|
||||
};
|
||||
|
||||
drop_shadow = true;
|
||||
|
||||
shadow_ignore_window = true;
|
||||
shadow_offset = "0 2";
|
||||
shadow_range = 20;
|
||||
shadow_render_power = 3;
|
||||
};
|
||||
|
||||
animations = {
|
||||
enabled = true;
|
||||
|
||||
bezier = [
|
||||
"fluent_decel, 0, 0.2, 0.4, 1"
|
||||
"easeOutCirc, 0, 0.55, 0.45, 1"
|
||||
"easeOutCubic, 0.33, 1, 0.68, 1"
|
||||
"easeinoutsine, 0.37, 0, 0.63, 1"
|
||||
];
|
||||
|
||||
animation = [
|
||||
# Windows
|
||||
"windowsIn, 1, 3, easeOutCubic, popin 30%" # window open
|
||||
"windowsOut, 1, 3, fluent_decel, popin 70%" # window close.
|
||||
"windowsMove, 1, 2, easeinoutsine, slide" # everything in between, moving, dragging, resizing.
|
||||
|
||||
# Fade
|
||||
"fadeIn, 1, 3, easeOutCubic" # fade in (open) -> layers and windows
|
||||
"fadeOut, 1, 2, easeOutCubic" # fade out (close) -> layers and windows
|
||||
"fadeSwitch, 0, 1, easeOutCirc" # fade on changing activewindow and its opacity
|
||||
"fadeShadow, 1, 10, easeOutCirc" # fade on changing activewindow for shadows
|
||||
"fadeDim, 1, 4, fluent_decel" # the easing of the dimming of inactive windows
|
||||
"border, 1, 2.7, easeOutCirc" # for animating the border's color switch speed
|
||||
"borderangle, 1, 30, fluent_decel, once" # for animating the border's gradient angle - styles: once (default), loop
|
||||
"workspaces, 1, 4, easeOutCubic, fade" # styles: slide, slidevert, fade, slidefade, slidefadevert
|
||||
];
|
||||
|
||||
bind =
|
||||
[
|
||||
"super, up, exec, pactl set-sink-volume @default_sink@ +10%"
|
||||
"super, down, exec, pactl set-sink-volume @default_sink@ -10%"
|
||||
"super, t, exec, swaync-client -t -sw"
|
||||
"super, a, exec, firefox"
|
||||
"super, q, exec, kitty --title Kitty"
|
||||
"super shift, q, exec, [float;size 40% 30%;move onscreen cursor -50% -50%] kitty --title Kitty"
|
||||
"super, c, killactive,"
|
||||
"super, e, exec, nemo"
|
||||
"super, p, exec, [float;size 40% 25%;move onscreen cursor] [ ! -f /tmp/keyringfile ] && kitty toolbelt"
|
||||
"super shift, m, exit,"
|
||||
"super, m, exec, fuzzel"
|
||||
"super, r, exec, neovide"
|
||||
"super, b, togglesplit, # dwindle"
|
||||
"super, f, togglefloating"
|
||||
"super, g, fullscreen"
|
||||
"super, h, movefocus, l"
|
||||
"super, l, movefocus, r"
|
||||
"super, k, movefocus, u"
|
||||
"super, j, movefocus, d"
|
||||
"super shift, h, movewindow, l"
|
||||
"super shift, l, movewindow, r"
|
||||
"super shift, k, movewindow, u"
|
||||
"super shift, j, movewindow, d"
|
||||
"super, d, exec, switchmon"
|
||||
"super, 1, exec, hyprctl 'dispatch workspace 1'"
|
||||
"super, 2, exec, hyprctl 'dispatch workspace 2'"
|
||||
"super, 3, exec, hyprctl 'dispatch workspace 3'"
|
||||
"super, 4, exec, hyprctl 'dispatch workspace 4'"
|
||||
"super, 5, exec, hyprctl 'dispatch workspace 5'"
|
||||
"super, 6, exec, hyprctl 'dispatch workspace 6'"
|
||||
"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, s, togglespecialworkspace, magic"
|
||||
"super shift, s, movetoworkspace, special:magic"
|
||||
]
|
||||
++ screenshot_bind;
|
||||
bindm = [
|
||||
"super, mouse:272, movewindow"
|
||||
"super, mouse:273, resizewindow"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
host,
|
||||
...
|
||||
}: {
|
||||
imports =
|
||||
[(import ./hyprland.nix)]
|
||||
++ [(import ./config.nix)];
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
swaybg
|
||||
inputs.hypr-contrib.packages.${pkgs.system}.grimblast
|
||||
hyprpicker
|
||||
grim
|
||||
slurp
|
||||
wl-clip-persist
|
||||
wf-recorder
|
||||
glib
|
||||
wayland
|
||||
direnv
|
||||
];
|
||||
systemd.user.targets.hyprland-session.Unit.Wants = ["xdg-desktop-autostart.target"];
|
||||
wayland.windowManager.hyprland = {
|
||||
enable = true;
|
||||
xwayland = {
|
||||
enable = true;
|
||||
};
|
||||
systemd.enable = true;
|
||||
};
|
||||
}
|
||||
@@ -1,43 +1,40 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
inputs,
|
||||
scheme,
|
||||
...
|
||||
}: let
|
||||
{lib, config, pkgs, inputs, scheme, ... }: let
|
||||
spicePkgs = inputs.spicetify-nix.legacyPackages.${pkgs.system};
|
||||
in {
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) [
|
||||
"spotify"
|
||||
];
|
||||
options = {
|
||||
spicetifyOpts.enable = lib.mkEnableOption "enable my spicetify options";
|
||||
};
|
||||
config = lib.mkIf config.spicetifyOpts.enable {
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) [
|
||||
"spotify"
|
||||
];
|
||||
|
||||
imports = [inputs.spicetify-nix.homeManagerModules.default];
|
||||
programs.spicetify = {
|
||||
enable = true;
|
||||
enabledExtensions = with spicePkgs.extensions; [
|
||||
adblock
|
||||
hidePodcasts
|
||||
shuffle # shuffle+ (special characters are sanitized out of extension names)
|
||||
];
|
||||
#colorScheme = "custom";
|
||||
|
||||
programs.spicetify = {
|
||||
enable = true;
|
||||
enabledExtensions = with spicePkgs.extensions; [
|
||||
adblock
|
||||
hidePodcasts
|
||||
shuffle # shuffle+ (special characters are sanitized out of extension names)
|
||||
];
|
||||
#colorScheme = "custom";
|
||||
|
||||
#customColorScheme = {
|
||||
# text = scheme.base06;
|
||||
# subtext = scheme.base04;
|
||||
# sidebar-text = scheme.base04;
|
||||
# main = scheme.base00;
|
||||
# sidebar = scheme.base01;
|
||||
# shadow = scheme.base01;
|
||||
# selected-row = scheme.base08;
|
||||
# button = scheme.base0D;
|
||||
# button-active = scheme.base0C;
|
||||
# button-disabled = scheme.base02;
|
||||
# tab-active = scheme.base0E;
|
||||
# notification = scheme.base0A;
|
||||
# notification-error = scheme.base09;
|
||||
# misc = scheme.base0F;
|
||||
#};
|
||||
#customColorScheme = {
|
||||
# text = scheme.base06;
|
||||
# subtext = scheme.base04;
|
||||
# sidebar-text = scheme.base04;
|
||||
# main = scheme.base00;
|
||||
# sidebar = scheme.base01;
|
||||
# shadow = scheme.base01;
|
||||
# selected-row = scheme.base08;
|
||||
# button = scheme.base0D;
|
||||
# button-active = scheme.base0C;
|
||||
# button-disabled = scheme.base02;
|
||||
# tab-active = scheme.base0E;
|
||||
# notification = scheme.base0A;
|
||||
# notification-error = scheme.base09;
|
||||
# misc = scheme.base0F;
|
||||
#};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,58 +1,59 @@
|
||||
{
|
||||
lib,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = false;
|
||||
settings = {
|
||||
add_newline = true;
|
||||
right_format = "($custom)";
|
||||
{config, lib, inputs, ... }: {
|
||||
options = {
|
||||
starshipConfig.enable = lib.mkEnableOption "enables my starship configuration";
|
||||
};
|
||||
config = lib.mkIf config.starshipConfig.enable {
|
||||
programs.starship = {
|
||||
enable = true;
|
||||
enableZshIntegration = false;
|
||||
settings = {
|
||||
add_newline = true;
|
||||
right_format = "($custom)";
|
||||
|
||||
format = lib.concatStrings [
|
||||
"($username)($ssh_symbol)($hostname)(bold white)($cmd_duration)($character)"
|
||||
"($git_branch)($git_status)($rust)($nix-shell)"
|
||||
"($directory)"
|
||||
"$line_break[ > ](bold #89b4fa)"
|
||||
];
|
||||
format = lib.concatStrings [
|
||||
"($username)($ssh_symbol)($hostname)(bold white)($cmd_duration)($character)"
|
||||
"($git_branch)($git_status)($rust)($nix-shell)"
|
||||
"($directory)"
|
||||
"$line_break[ > ](bold #89b4fa)"
|
||||
];
|
||||
|
||||
username = {
|
||||
show_always = true;
|
||||
style_user = "bold white";
|
||||
format = "[$user]($style)";
|
||||
};
|
||||
directory = {
|
||||
format = "\n[$path](bold cyan)[/](bold green) ";
|
||||
style = "bold #b4befe";
|
||||
};
|
||||
username = {
|
||||
show_always = true;
|
||||
style_user = "bold white";
|
||||
format = "[$user]($style)";
|
||||
};
|
||||
directory = {
|
||||
format = "\n[$path](bold cyan)[/](bold green) ";
|
||||
style = "bold #b4befe";
|
||||
};
|
||||
|
||||
character = {
|
||||
success_symbol = "[ -> ](bold green)";
|
||||
error_symbol = "[ -> ✗](bold red)";
|
||||
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
|
||||
};
|
||||
character = {
|
||||
success_symbol = "[ -> ](bold green)";
|
||||
error_symbol = "[ -> ✗](bold red)";
|
||||
# error_symbol = "[ ](bold #89dceb)[ ✗](bold red)";
|
||||
};
|
||||
|
||||
cmd_duration = {
|
||||
format = "[ $duration]($style)";
|
||||
disabled = false;
|
||||
style = "bg:none fg:#f9e2af";
|
||||
show_notifications = false;
|
||||
min_time_to_notify = 60000;
|
||||
};
|
||||
cmd_duration = {
|
||||
format = "[ $duration]($style)";
|
||||
disabled = false;
|
||||
style = "bg:none fg:#f9e2af";
|
||||
show_notifications = false;
|
||||
min_time_to_notify = 60000;
|
||||
};
|
||||
|
||||
git_branch = {
|
||||
format = "\non [$symbol$branch](bold purple)";
|
||||
symbol = " ";
|
||||
truncation_length = 15;
|
||||
style = "bold purple";
|
||||
};
|
||||
git_branch = {
|
||||
format = "\non [$symbol$branch](bold purple)";
|
||||
symbol = " ";
|
||||
truncation_length = 15;
|
||||
style = "bold purple";
|
||||
};
|
||||
|
||||
custom.shellver = {
|
||||
command = "zsh --version";
|
||||
when = ''test $SHELL = "/run/current-system/sw/bin/zsh"'';
|
||||
symbol = "";
|
||||
style = "bold magenta";
|
||||
custom.shellver = {
|
||||
command = "zsh --version";
|
||||
when = ''test $SHELL = "/run/current-system/sw/bin/zsh"'';
|
||||
symbol = "";
|
||||
style = "bold magenta";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
{
|
||||
pkgs,
|
||||
scheme,
|
||||
wallpaper,
|
||||
...
|
||||
}: {
|
||||
stylix = {
|
||||
enable = true;
|
||||
autoEnable = true;
|
||||
targets = {
|
||||
# fzf.enable = true;
|
||||
# kitty.enable = true;
|
||||
# vesktop.enable = true;
|
||||
waybar.enable = false;
|
||||
btop.enable = false;
|
||||
{lib, config, pkgs, scheme, wallpaper, ... }: {
|
||||
options = {
|
||||
stylixHomeOpts.enable = lib.mkEnableOption "enables my stylix Home-Manager options";
|
||||
};
|
||||
config = lib.mkIf config.stylixHomeOpts.enable {
|
||||
stylix = {
|
||||
enable = true;
|
||||
autoEnable = true;
|
||||
targets = {
|
||||
# fzf.enable = true;
|
||||
# kitty.enable = true;
|
||||
# vesktop.enable = true;
|
||||
waybar.enable = false;
|
||||
btop.enable = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,8 +1,4 @@
|
||||
{
|
||||
pkgs,
|
||||
host,
|
||||
...
|
||||
}: let
|
||||
{lib, config, pkgs, host, ... }: let
|
||||
desktop = host == "oganesson";
|
||||
extraFigletFonts = pkgs.fetchFromGitHub {
|
||||
owner = "xero";
|
||||
@@ -32,35 +28,40 @@
|
||||
]
|
||||
else [];
|
||||
in {
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
chafa
|
||||
nemo
|
||||
flavours
|
||||
ags
|
||||
sassc
|
||||
gtk3
|
||||
sqlite
|
||||
gimp
|
||||
imagemagick
|
||||
yt-dlp
|
||||
vlc
|
||||
lolcat
|
||||
speedtest-cli
|
||||
vesktop
|
||||
qbittorrent
|
||||
neovide
|
||||
zsh
|
||||
zsh-syntax-highlighting
|
||||
zsh-history-substring-search
|
||||
zsh-autosuggestions
|
||||
audacity
|
||||
rustup
|
||||
libreoffice
|
||||
gtrash
|
||||
ripgrep
|
||||
toilet-extrafonts
|
||||
python3
|
||||
]
|
||||
++ desktop_pkgs;
|
||||
options = {
|
||||
userPkgs.enable = lib.mkEnableOption "enables my default user packages";
|
||||
};
|
||||
config = lib.mkIf config.userPkgs.enable {
|
||||
home.packages = with pkgs;
|
||||
[
|
||||
chafa
|
||||
nemo
|
||||
flavours
|
||||
ags
|
||||
sassc
|
||||
gtk3
|
||||
sqlite
|
||||
gimp
|
||||
imagemagick
|
||||
yt-dlp
|
||||
vlc
|
||||
lolcat
|
||||
speedtest-cli
|
||||
vesktop
|
||||
qbittorrent
|
||||
neovide
|
||||
zsh
|
||||
zsh-syntax-highlighting
|
||||
zsh-history-substring-search
|
||||
zsh-autosuggestions
|
||||
audacity
|
||||
rustup
|
||||
libreoffice
|
||||
gtrash
|
||||
ripgrep
|
||||
toilet-extrafonts
|
||||
python3
|
||||
]
|
||||
++ desktop_pkgs;
|
||||
};
|
||||
}
|
||||
|
||||
518
modules/home/environment/waybar.nix
Normal file
518
modules/home/environment/waybar.nix
Normal file
@@ -0,0 +1,518 @@
|
||||
{pkgs, scheme, host, lib, config, ...}:
|
||||
|
||||
let
|
||||
desktop = host == "oganesson";
|
||||
workspaces = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
"1" = "一";
|
||||
"2" = "二";
|
||||
"3" = "三";
|
||||
"4" = "四";
|
||||
"5" = "五";
|
||||
"6" = "六";
|
||||
};
|
||||
persistent-workspaces =
|
||||
if desktop
|
||||
then {
|
||||
"HDMI-A-1" = [1 2 3];
|
||||
"DP-1" = [4 5 6];
|
||||
}
|
||||
else {
|
||||
"eDP-1" = [1 2 3 4];
|
||||
};
|
||||
};
|
||||
bg = {
|
||||
darkester = scheme.base00;
|
||||
darkest = scheme.base01;
|
||||
darker = scheme.base02;
|
||||
dark = scheme.base03;
|
||||
};
|
||||
fg = {
|
||||
lightester = scheme.base07;
|
||||
lightest = scheme.base06;
|
||||
lighter = scheme.base05;
|
||||
light = scheme.base04;
|
||||
};
|
||||
colors = {
|
||||
color0 = scheme.base08;
|
||||
color1 = scheme.base09;
|
||||
color2 = scheme.base0A;
|
||||
color3 = scheme.base0B;
|
||||
color4 = scheme.base0C;
|
||||
color5 = scheme.base0D;
|
||||
color6 = scheme.base0E;
|
||||
color7 = scheme.base0F;
|
||||
};
|
||||
monitors =
|
||||
if desktop
|
||||
then [
|
||||
"DP-1"
|
||||
"HDMI-A-1"
|
||||
]
|
||||
else [
|
||||
"eDP-1"
|
||||
];
|
||||
in {
|
||||
options = {
|
||||
waybarConfig.enable = lib.mkEnableOption "enables my waybar configuration";
|
||||
};
|
||||
config = {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
package = pkgs.waybar.overrideAttrs (oa: {
|
||||
mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];
|
||||
});
|
||||
settings = {
|
||||
mainBar = {
|
||||
layer = "bottom";
|
||||
output = builtins.elemAt monitors 0;
|
||||
position = "top";
|
||||
name = "mainBar";
|
||||
margin-left = 8;
|
||||
margin-top = 5;
|
||||
margin-right =
|
||||
if desktop
|
||||
then 8
|
||||
else 5;
|
||||
mode = "dock";
|
||||
"gtk-layer-shell" = true;
|
||||
|
||||
modules-left = [
|
||||
"hyprland/workspaces"
|
||||
"cava"
|
||||
];
|
||||
modules-center = [
|
||||
"hyprland/window"
|
||||
];
|
||||
modules-right = [
|
||||
"group/hardware"
|
||||
"clock"
|
||||
"group/powerbtns"
|
||||
];
|
||||
|
||||
"hyprland/workspaces" = workspaces;
|
||||
|
||||
cava = {
|
||||
framerate = 30;
|
||||
autosens = 1;
|
||||
sensitivity = 1;
|
||||
bars = 14;
|
||||
lower_cutoff_freq = 50;
|
||||
higher_cutoff_freq = 10000;
|
||||
method = "pulse";
|
||||
source = "auto";
|
||||
hide_on_silence = true;
|
||||
stereo = true;
|
||||
reverse = true;
|
||||
bar_delimiter = 0;
|
||||
monstercat = false;
|
||||
waves = false;
|
||||
noise_reduction = 0.77;
|
||||
input_delay = 2;
|
||||
format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"];
|
||||
};
|
||||
|
||||
"group/hardware" = {
|
||||
orientation = "inherit";
|
||||
modules = [
|
||||
"custom/disk-icon"
|
||||
"memory"
|
||||
"cpu"
|
||||
];
|
||||
};
|
||||
|
||||
"custom/disk-icon" = {
|
||||
exec = ''
|
||||
df /dev/disk/by-partlabel/disk-main-home /dev/disk/by-partlabel/disk-main-nix | awk '
|
||||
function format(size) {
|
||||
if (size >= 1024) return sprintf("%.1fTB", size / 1024)
|
||||
else return sprintf("%.1fGB", size)
|
||||
}
|
||||
$6 == "/home" {
|
||||
home_usage = $3 / 1024 / 1024
|
||||
home_total = $2 / 1024 / 1024
|
||||
home_percent = $5
|
||||
sub(/%/,"",home_percent)
|
||||
}
|
||||
$6 == "/nix" {
|
||||
nix_usage = $3 / 1024 / 1024
|
||||
nix_total = $2 / 1024 / 1024
|
||||
nix_percent = $5
|
||||
}
|
||||
END {
|
||||
printf "{\"class\": \"disk-icon\", \"tooltip\": \"/home: %s / %s\\n/nix: %s / %s\", \"percentage\": \"%s\"}\n",
|
||||
format(home_usage), format(home_total), format(nix_usage), format(nix_total), home_percent
|
||||
}' | jq --unbuffered --compact-output
|
||||
'';
|
||||
interval = 60;
|
||||
return-type = "json";
|
||||
rotate = 270;
|
||||
format = "{icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
|
||||
memory = {
|
||||
interval = 1;
|
||||
rotate = 270;
|
||||
format = "{icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
max-length = 10;
|
||||
tooltip-format = "RAM: {used:0.1f} GB / {total:0.1f} GB";
|
||||
};
|
||||
|
||||
cpu = {
|
||||
interval = 1;
|
||||
rotate = 270;
|
||||
format = "{icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
tooltip-format = "CPU: {usage:0.1f}%";
|
||||
};
|
||||
|
||||
"custom/power" = {
|
||||
on-click = "shutdown now";
|
||||
tooltip = false;
|
||||
format = " ";
|
||||
};
|
||||
|
||||
"custom/logout" = {
|
||||
on-click = "hyprctl dispatch exit";
|
||||
tooltip = false;
|
||||
format = " ";
|
||||
};
|
||||
|
||||
"custom/reboot" = {
|
||||
on-click = "reboot";
|
||||
tooltip = false;
|
||||
format = " ";
|
||||
};
|
||||
|
||||
"group/powerbtns" = {
|
||||
orientation = "horizontal";
|
||||
drawer = {
|
||||
transition-duration = 500;
|
||||
children-class = "power-drawer";
|
||||
transition-left-to-right = false;
|
||||
};
|
||||
modules = [
|
||||
"custom/power"
|
||||
"custom/logout"
|
||||
"custom/reboot"
|
||||
];
|
||||
};
|
||||
|
||||
clock = {
|
||||
format = "{:%I:%M %p}";
|
||||
tooltip = false;
|
||||
};
|
||||
};
|
||||
sideBar = {
|
||||
layer = "bottom";
|
||||
output =
|
||||
if desktop
|
||||
then builtins.elemAt monitors 1
|
||||
else builtins.elemAt monitors 0;
|
||||
position = "right";
|
||||
margin-top = 8;
|
||||
margin-right = 5;
|
||||
margin-bottom = 8;
|
||||
name = "sideBar";
|
||||
mode = "dock";
|
||||
"gtk-layer-shell" = true;
|
||||
|
||||
modules-left =
|
||||
if desktop
|
||||
then [
|
||||
"hyprland/workspaces"
|
||||
]
|
||||
else [
|
||||
"group/brightness"
|
||||
"battery"
|
||||
];
|
||||
modules-center = [
|
||||
];
|
||||
modules-right = [
|
||||
"network"
|
||||
"group/audio"
|
||||
];
|
||||
|
||||
"hyprland/workspaces" = workspaces;
|
||||
|
||||
"pulseaudio/slider" = {
|
||||
orientation = "vertical";
|
||||
};
|
||||
|
||||
"group/audio" = {
|
||||
orientation = "vertical";
|
||||
modules = [
|
||||
"pulseaudio/slider"
|
||||
"pulseaudio"
|
||||
];
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
format = "{icon}";
|
||||
format-muted = " ";
|
||||
format-icons = {
|
||||
default = [
|
||||
" "
|
||||
" "
|
||||
];
|
||||
};
|
||||
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||||
on-click-right = "hyprctl dispatch exec '[float;size 40% 55%] pavucontrol'";
|
||||
};
|
||||
|
||||
network = {
|
||||
interval = 30;
|
||||
format-wifi = " ";
|
||||
tooltip-format-wifi = "{essid} ({signalStrength}%)";
|
||||
format-ethernet = " ";
|
||||
tooltip-format-ethernet = "{ifname}";
|
||||
format-disconnected = " ";
|
||||
tooltip-format-disconnected = "Disconnected";
|
||||
on-click = "hyprctl dispatch exec '[float;size 40% 55%] kitty nmtui'";
|
||||
};
|
||||
|
||||
battery = {
|
||||
bat = "BAT1";
|
||||
interval = 1;
|
||||
tooltip-format = "{capacity}%\nTil empty: {time}";
|
||||
tooltip-format-charging = "{capacity}%\nTil full: {time}";
|
||||
format = "{icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
format-charging = "";
|
||||
};
|
||||
|
||||
"group/brightness" = {
|
||||
orientation = "vertical";
|
||||
modules = [
|
||||
"backlight"
|
||||
"backlight/slider"
|
||||
];
|
||||
};
|
||||
backlight = {
|
||||
format = "";
|
||||
tooltip = "{percentage}%";
|
||||
};
|
||||
"backlight/slider" = {
|
||||
min = 10;
|
||||
max = 100;
|
||||
orientation = "vertical";
|
||||
rotate = 180;
|
||||
};
|
||||
};
|
||||
};
|
||||
style = ''
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-size: 16px;
|
||||
font-family: "JetBrains Mono Nerd Font";
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
border-radius: 20px;
|
||||
border: 3px solid #${colors.color7};
|
||||
background: rgba(46,52,64,0.15);
|
||||
margin: 20px;
|
||||
}
|
||||
window#waybar.empty #window {
|
||||
background: none;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin: 3px;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: #${fg.lightester};
|
||||
border-radius: 20px;
|
||||
color: #${bg.darkest};
|
||||
}
|
||||
|
||||
#cava {
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px 3px 3px 6px;
|
||||
padding: 0px 15px 0px 15px;
|
||||
color: #${colors.color6};
|
||||
}
|
||||
|
||||
#window {
|
||||
margin: 3px;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
padding: 0 15px 0 15px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#hardware {
|
||||
margin: 3px;
|
||||
padding: 0 10px 0 10px;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
#custom-disk-icon, #cpu, #memory {
|
||||
margin-bottom: 4px;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#custom-disk-icon {
|
||||
color: #${colors.color4};
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: #${colors.color1};
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color: #${colors.color3};
|
||||
}
|
||||
|
||||
#clock {
|
||||
font-weight: bold;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 0 10px 0 10px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#powerbtns {
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 0 5px 0 10px;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
color: #${colors.color0};
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#custom-logout {
|
||||
color: #${colors.color4};
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#custom-reboot {
|
||||
color: #${colors.color2};
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#audio {
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 0 10px 0;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: #${colors.color4};
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#backlight-slider slider,
|
||||
#pulseaudio-slider slider {
|
||||
background: #${colors.color4};
|
||||
background-color: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
#backlight-slider trough,
|
||||
#pulseaudio-slider trough {
|
||||
min-width: 9px;
|
||||
min-height: 90px;
|
||||
border-radius: 8px;
|
||||
background: #343434;
|
||||
}
|
||||
|
||||
#backlight-slider highlight,
|
||||
#pulseaudio-slider highlight {
|
||||
border-radius: 8px;
|
||||
background-color: #2096C0;
|
||||
}
|
||||
|
||||
#network {
|
||||
color: #${colors.color3};
|
||||
font-size: 20px;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 0 5px 6px;
|
||||
}
|
||||
|
||||
#brightness {
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 10px 0px 5px 0;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
color: #${colors.color2};
|
||||
font-size: 18px;
|
||||
padding: 0 4px 0 0;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: #${colors.color4};
|
||||
font-size: 20px;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 0 5px 0px;
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{...}: {
|
||||
imports =
|
||||
[(import ./waybar.nix)]
|
||||
++ [(import ./settings.nix)]
|
||||
++ [(import ./style.nix)];
|
||||
}
|
||||
@@ -1,323 +0,0 @@
|
||||
{host, ...}:
|
||||
# Grocery list:
|
||||
# Clock
|
||||
# CPU/MEM meters
|
||||
# Home folder and Nix store storage tracking?
|
||||
# Workspaces (per monitor would be nice)
|
||||
# A separate bar for both monitors
|
||||
# secondary monitor will have a vertical bar on the left side
|
||||
# Can contain more info with two bars
|
||||
let
|
||||
desktop = host == "oganesson";
|
||||
workspaces = {
|
||||
format = "{icon}";
|
||||
format-icons = {
|
||||
"1" = "一";
|
||||
"2" = "二";
|
||||
"3" = "三";
|
||||
"4" = "四";
|
||||
"5" = "五";
|
||||
"6" = "六";
|
||||
};
|
||||
persistent-workspaces =
|
||||
if desktop
|
||||
then {
|
||||
"HDMI-A-1" = [1 2 3];
|
||||
"DP-1" = [4 5 6];
|
||||
}
|
||||
else {
|
||||
"eDP-1" = [1 2 3 4];
|
||||
};
|
||||
};
|
||||
monitors =
|
||||
if desktop
|
||||
then [
|
||||
"DP-1"
|
||||
"HDMI-A-1"
|
||||
]
|
||||
else [
|
||||
"eDP-1"
|
||||
];
|
||||
in {
|
||||
programs.waybar.settings.mainBar = {
|
||||
layer = "bottom";
|
||||
output = builtins.elemAt monitors 0;
|
||||
position = "top";
|
||||
name = "mainBar";
|
||||
margin-left = 8;
|
||||
margin-top = 5;
|
||||
margin-right =
|
||||
if desktop
|
||||
then 8
|
||||
else 5;
|
||||
mode = "dock";
|
||||
"gtk-layer-shell" = true;
|
||||
|
||||
modules-left = [
|
||||
"hyprland/workspaces"
|
||||
"cava"
|
||||
];
|
||||
modules-center = [
|
||||
"hyprland/window"
|
||||
];
|
||||
modules-right = [
|
||||
"group/hardware"
|
||||
"clock"
|
||||
"group/powerbtns"
|
||||
];
|
||||
|
||||
"hyprland/workspaces" = workspaces;
|
||||
|
||||
cava = {
|
||||
framerate = 30;
|
||||
autosens = 1;
|
||||
sensitivity = 1;
|
||||
bars = 14;
|
||||
lower_cutoff_freq = 50;
|
||||
higher_cutoff_freq = 10000;
|
||||
method = "pulse";
|
||||
source = "auto";
|
||||
hide_on_silence = true;
|
||||
stereo = true;
|
||||
reverse = true;
|
||||
bar_delimiter = 0;
|
||||
monstercat = false;
|
||||
waves = false;
|
||||
noise_reduction = 0.77;
|
||||
input_delay = 2;
|
||||
format-icons = ["▁" "▂" "▃" "▄" "▅" "▆" "▇" "█"];
|
||||
};
|
||||
|
||||
"group/hardware" = {
|
||||
orientation = "inherit";
|
||||
modules = [
|
||||
"custom/disk-icon"
|
||||
"memory"
|
||||
"cpu"
|
||||
];
|
||||
};
|
||||
|
||||
"custom/disk-icon" = {
|
||||
exec = ''
|
||||
df /dev/disk/by-partlabel/disk-main-home /dev/disk/by-partlabel/disk-main-nix | awk '
|
||||
function format(size) {
|
||||
if (size >= 1024) return sprintf("%.1fTB", size / 1024)
|
||||
else return sprintf("%.1fGB", size)
|
||||
}
|
||||
$6 == "/home" {
|
||||
home_usage = $3 / 1024 / 1024
|
||||
home_total = $2 / 1024 / 1024
|
||||
home_percent = $5
|
||||
sub(/%/,"",home_percent)
|
||||
}
|
||||
$6 == "/nix" {
|
||||
nix_usage = $3 / 1024 / 1024
|
||||
nix_total = $2 / 1024 / 1024
|
||||
nix_percent = $5
|
||||
}
|
||||
END {
|
||||
printf "{\"class\": \"disk-icon\", \"tooltip\": \"/home: %s / %s\\n/nix: %s / %s\", \"percentage\": \"%s\"}\n",
|
||||
format(home_usage), format(home_total), format(nix_usage), format(nix_total), home_percent
|
||||
}' | jq --unbuffered --compact-output
|
||||
'';
|
||||
interval = 60;
|
||||
return-type = "json";
|
||||
rotate = 270;
|
||||
format = "{icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
};
|
||||
|
||||
memory = {
|
||||
interval = 1;
|
||||
rotate = 270;
|
||||
format = "{icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
max-length = 10;
|
||||
tooltip-format = "RAM: {used:0.1f} GB / {total:0.1f} GB";
|
||||
};
|
||||
|
||||
cpu = {
|
||||
interval = 1;
|
||||
rotate = 270;
|
||||
format = "{icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
tooltip-format = "CPU: {usage:0.1f}%";
|
||||
};
|
||||
|
||||
"custom/power" = {
|
||||
on-click = "shutdown now";
|
||||
tooltip = false;
|
||||
format = " ";
|
||||
};
|
||||
|
||||
"custom/logout" = {
|
||||
on-click = "hyprctl dispatch exit";
|
||||
tooltip = false;
|
||||
format = " ";
|
||||
};
|
||||
|
||||
"custom/reboot" = {
|
||||
on-click = "reboot";
|
||||
tooltip = false;
|
||||
format = " ";
|
||||
};
|
||||
|
||||
"group/powerbtns" = {
|
||||
orientation = "horizontal";
|
||||
drawer = {
|
||||
transition-duration = 500;
|
||||
children-class = "power-drawer";
|
||||
transition-left-to-right = false;
|
||||
};
|
||||
modules = [
|
||||
"custom/power"
|
||||
"custom/logout"
|
||||
"custom/reboot"
|
||||
];
|
||||
};
|
||||
|
||||
clock = {
|
||||
format = "{:%I:%M %p}";
|
||||
tooltip = false;
|
||||
};
|
||||
};
|
||||
|
||||
# ------------------------------------------
|
||||
|
||||
programs.waybar.settings.sideBar = {
|
||||
layer = "bottom";
|
||||
output =
|
||||
if desktop
|
||||
then builtins.elemAt monitors 1
|
||||
else builtins.elemAt monitors 0;
|
||||
position = "right";
|
||||
margin-top = 8;
|
||||
margin-right = 5;
|
||||
margin-bottom = 8;
|
||||
name = "sideBar";
|
||||
mode = "dock";
|
||||
"gtk-layer-shell" = true;
|
||||
|
||||
modules-left =
|
||||
if desktop
|
||||
then [
|
||||
"hyprland/workspaces"
|
||||
]
|
||||
else [
|
||||
"group/brightness"
|
||||
"battery"
|
||||
];
|
||||
modules-center = [
|
||||
];
|
||||
modules-right = [
|
||||
"network"
|
||||
"group/audio"
|
||||
];
|
||||
|
||||
"hyprland/workspaces" = workspaces;
|
||||
|
||||
"pulseaudio/slider" = {
|
||||
orientation = "vertical";
|
||||
};
|
||||
|
||||
"group/audio" = {
|
||||
orientation = "vertical";
|
||||
modules = [
|
||||
"pulseaudio/slider"
|
||||
"pulseaudio"
|
||||
];
|
||||
};
|
||||
|
||||
pulseaudio = {
|
||||
format = "{icon}";
|
||||
format-muted = " ";
|
||||
format-icons = {
|
||||
default = [
|
||||
" "
|
||||
" "
|
||||
];
|
||||
};
|
||||
on-click = "pactl set-sink-mute @DEFAULT_SINK@ toggle";
|
||||
on-click-right = "hyprctl dispatch exec '[float;size 40% 55%] pavucontrol'";
|
||||
};
|
||||
|
||||
network = {
|
||||
interval = 30;
|
||||
format-wifi = " ";
|
||||
tooltip-format-wifi = "{essid} ({signalStrength}%)";
|
||||
format-ethernet = " ";
|
||||
tooltip-format-ethernet = "{ifname}";
|
||||
format-disconnected = " ";
|
||||
tooltip-format-disconnected = "Disconnected";
|
||||
on-click = "hyprctl dispatch exec '[float;size 40% 55%] kitty nmtui'";
|
||||
};
|
||||
|
||||
battery = {
|
||||
bat = "BAT1";
|
||||
interval = 1;
|
||||
tooltip-format = "{capacity}%\nTil empty: {time}";
|
||||
tooltip-format-charging = "{capacity}%\nTil full: {time}";
|
||||
format = "{icon}";
|
||||
format-icons = [
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
""
|
||||
];
|
||||
format-charging = "";
|
||||
};
|
||||
|
||||
"group/brightness" = {
|
||||
orientation = "vertical";
|
||||
modules = [
|
||||
"backlight"
|
||||
"backlight/slider"
|
||||
];
|
||||
};
|
||||
backlight = {
|
||||
format = "";
|
||||
tooltip = "{percentage}%";
|
||||
};
|
||||
"backlight/slider" = {
|
||||
min = 10;
|
||||
max = 100;
|
||||
orientation = "vertical";
|
||||
rotate = 180;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,195 +0,0 @@
|
||||
{scheme, ...}: let
|
||||
bg = {
|
||||
darkester = scheme.base00;
|
||||
darkest = scheme.base01;
|
||||
darker = scheme.base02;
|
||||
dark = scheme.base03;
|
||||
};
|
||||
fg = {
|
||||
lightester = scheme.base07;
|
||||
lightest = scheme.base06;
|
||||
lighter = scheme.base05;
|
||||
light = scheme.base04;
|
||||
};
|
||||
colors = {
|
||||
color0 = scheme.base08;
|
||||
color1 = scheme.base09;
|
||||
color2 = scheme.base0A;
|
||||
color3 = scheme.base0B;
|
||||
color4 = scheme.base0C;
|
||||
color5 = scheme.base0D;
|
||||
color6 = scheme.base0E;
|
||||
color7 = scheme.base0F;
|
||||
};
|
||||
in {
|
||||
programs.waybar.style = ''
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
font-size: 16px;
|
||||
font-family: "JetBrains Mono Nerd Font";
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
border-radius: 20px;
|
||||
border: 3px solid #${colors.color7};
|
||||
background: rgba(46,52,64,0.15);
|
||||
margin: 20px;
|
||||
}
|
||||
window#waybar.empty #window {
|
||||
background: none;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
margin: 3px;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
background: #${fg.lightester};
|
||||
border-radius: 20px;
|
||||
color: #${bg.darkest};
|
||||
}
|
||||
|
||||
#cava {
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px 3px 3px 6px;
|
||||
padding: 0px 15px 0px 15px;
|
||||
color: #${colors.color6};
|
||||
}
|
||||
|
||||
#window {
|
||||
margin: 3px;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
padding: 0 15px 0 15px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#hardware {
|
||||
margin: 3px;
|
||||
padding: 0 10px 0 10px;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
#custom-disk-icon, #cpu, #memory {
|
||||
margin-bottom: 4px;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#custom-disk-icon {
|
||||
color: #${colors.color4};
|
||||
}
|
||||
|
||||
#memory {
|
||||
color: #${colors.color1};
|
||||
}
|
||||
|
||||
#cpu {
|
||||
color: #${colors.color3};
|
||||
}
|
||||
|
||||
#clock {
|
||||
font-weight: bold;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 0 10px 0 10px;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#powerbtns {
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 0 5px 0 10px;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
color: #${colors.color0};
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#custom-logout {
|
||||
color: #${colors.color4};
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#custom-reboot {
|
||||
color: #${colors.color2};
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#audio {
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 0 10px 0;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: #${colors.color4};
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
#backlight-slider slider,
|
||||
#pulseaudio-slider slider {
|
||||
background: #${colors.color4};
|
||||
background-color: transparent;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
#backlight-slider trough,
|
||||
#pulseaudio-slider trough {
|
||||
min-width: 9px;
|
||||
min-height: 90px;
|
||||
border-radius: 8px;
|
||||
background: #343434;
|
||||
}
|
||||
|
||||
#backlight-slider highlight,
|
||||
#pulseaudio-slider highlight {
|
||||
border-radius: 8px;
|
||||
background-color: #2096C0;
|
||||
}
|
||||
|
||||
#network {
|
||||
color: #${colors.color3};
|
||||
font-size: 20px;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 0 5px 6px;
|
||||
}
|
||||
|
||||
#brightness {
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 10px 0px 5px 0;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
color: #${colors.color2};
|
||||
font-size: 18px;
|
||||
padding: 0 4px 0 0;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: #${colors.color4};
|
||||
font-size: 20px;
|
||||
background: #${bg.dark};
|
||||
border-radius: 20px;
|
||||
margin: 3px;
|
||||
padding: 5px 0 5px 0px;
|
||||
}
|
||||
'';
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
};
|
||||
programs.waybar.package = pkgs.waybar.overrideAttrs (oa: {
|
||||
mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];
|
||||
});
|
||||
}
|
||||
@@ -1,187 +1,192 @@
|
||||
{self, ...}: {
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
{lib, config, self, ...}: {
|
||||
options = {
|
||||
zshConfig.enable = lib.mkEnableOption "enables my zsh configuration";
|
||||
};
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
|
||||
sessionVariables = {
|
||||
SOUNDS_ENABLED = "1";
|
||||
EDITOR = "nvim";
|
||||
SUDO_EDITOR = "nvim";
|
||||
VISUAL = "nvim";
|
||||
LANG = "en_US.UTF-8";
|
||||
BROWSER = "firefox";
|
||||
FLAKEPATH = "$HOME/.sysflake";
|
||||
};
|
||||
|
||||
oh-my-zsh = {
|
||||
config = lib.mkIf config.zshConfig.enable {
|
||||
programs.zoxide = {
|
||||
enable = true;
|
||||
plugins = ["git" "fzf"];
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
enableCompletion = true;
|
||||
history = {
|
||||
path = "$HOME/.zsh_history";
|
||||
save = 10000;
|
||||
size = 10000;
|
||||
share = true;
|
||||
};
|
||||
|
||||
autosuggestion = {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
highlight = "fg=#4C566A,underline";
|
||||
};
|
||||
|
||||
shellAliases = {
|
||||
grep = "grep --color=auto";
|
||||
yazi = "y";
|
||||
vi = "nvim";
|
||||
mv = "mv -v";
|
||||
cp = "cp -vr";
|
||||
gt = "gtrash";
|
||||
gtp = "playshellsound ${self}/assets/sound/rm.wav; gtrash put";
|
||||
sr = "source ~/.zshrc";
|
||||
".." = "cd ..";
|
||||
rm = "echo 'use \"gtp\" instead'";
|
||||
psg = "ps aux | grep -v grep | grep -i -e VSZ -e";
|
||||
mkdir = "mkdir -p";
|
||||
pk = "pkill -9 -f";
|
||||
svcu = "systemctl --user";
|
||||
svc = "sudo systemctl";
|
||||
viflake = "nvim flake.nix";
|
||||
|
||||
#git
|
||||
"ga" = "playshellsound ${self}/assets/sound/gitadd.wav; git add";
|
||||
gcomm = "gitcommit_sfx";
|
||||
gpush = "gitpush_sfx";
|
||||
gpull = "gitpull_sfx";
|
||||
greb = "gitrebase_sfx";
|
||||
};
|
||||
initExtra = ''
|
||||
playshellsound() {
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "Usage: playshellsound <path/to/sound>"
|
||||
return 1
|
||||
fi
|
||||
if ! scheck; then
|
||||
return 0
|
||||
else
|
||||
runbg aplay "$1"
|
||||
fi
|
||||
}
|
||||
gitrebase_sfx() {
|
||||
if git rebase "$@"; then
|
||||
playshellsound ${self}/assets/sound/gitrebase.wav
|
||||
return 0
|
||||
else
|
||||
playshellsound ${self}/assets/sound/error.wav
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
gitcommit_sfx() {
|
||||
if git commit "$@"; then
|
||||
playshellsound ${self}/assets/sound/gitcommit.wav
|
||||
return 0
|
||||
else
|
||||
playshellsound ${self}/assets/sound/error.wav
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
gitpush_sfx() {
|
||||
if git push "$@"; then
|
||||
playshellsound ${self}/assets/sound/gitpush.wav
|
||||
return 0
|
||||
else
|
||||
playshellsound ${self}/assets/sound/error.wav
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
gitpull_sfx() {
|
||||
if git pull "$@"; then
|
||||
playshellsound ${self}/assets/sound/gitpull.wav
|
||||
return 0
|
||||
else
|
||||
playshellsound ${self}/assets/sound/error.wav
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
unalias ls
|
||||
ls() {
|
||||
eza -1 --group-directories-first --icons "$@"
|
||||
playshellsound ${self}/assets/sound/ls.wav
|
||||
return 0
|
||||
}
|
||||
|
||||
mkcd() {
|
||||
mkdir -p "$1" && cd "$1"
|
||||
}
|
||||
|
||||
y() {
|
||||
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
|
||||
yazi "$@" --cwd-file="$tmp"
|
||||
if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
||||
builtin cd -- "$cwd"
|
||||
fi
|
||||
rm -f -- "$tmp"
|
||||
}
|
||||
|
||||
cd() {
|
||||
local prev_sounds_enabled="$SOUNDS_ENABLED"
|
||||
SOUNDS_ENABLED=0
|
||||
eza -1 --group-directories-first --icons "$@"
|
||||
SOUNDS_ENABLED=$prev_sounds_enabled
|
||||
builtin cd "$@"
|
||||
playshellsound /nix/store/7a9w7np3qrvmzxjbs7xj05qq2yccgfsj-source/assets/sound/cd.wav
|
||||
return 0
|
||||
}
|
||||
if [ ! -e $HOME/.zsh_history ]; then
|
||||
touch $HOME/.zsh_history
|
||||
chmod 600 $HOME/.zsh_history
|
||||
fi
|
||||
setopt APPEND_HISTORY # Append history to the history file (don't overwrite)
|
||||
setopt INC_APPEND_HISTORY # Append to the history file incrementally
|
||||
setopt SHARE_HISTORY # Share history between all zsh sessions
|
||||
|
||||
sessionVariables = {
|
||||
setopt CORRECT
|
||||
setopt NO_NOMATCH
|
||||
setopt LIST_PACKED
|
||||
setopt ALWAYS_TO_END
|
||||
setopt GLOB_COMPLETE
|
||||
setopt COMPLETE_ALIASES
|
||||
setopt COMPLETE_IN_WORD
|
||||
setopt AUTO_CD
|
||||
setopt AUTO_CONTINUE
|
||||
setopt LONG_LIST_JOBS
|
||||
setopt HIST_VERIFY
|
||||
setopt SHARE_HISTORY
|
||||
setopt HIST_IGNORE_SPACE
|
||||
setopt HIST_SAVE_NO_DUPS
|
||||
setopt HIST_IGNORE_ALL_DUPS
|
||||
setopt EXTENDED_GLOB
|
||||
setopt TRANSIENT_RPROMPT
|
||||
setopt INTERACTIVE_COMMENTS
|
||||
SOUNDS_ENABLED = "1";
|
||||
EDITOR = "nvim";
|
||||
SUDO_EDITOR = "nvim";
|
||||
VISUAL = "nvim";
|
||||
LANG = "en_US.UTF-8";
|
||||
BROWSER = "firefox";
|
||||
FLAKEPATH = "$HOME/.sysflake";
|
||||
};
|
||||
|
||||
autoload -U compinit # completion
|
||||
autoload -U terminfo # terminfo keys
|
||||
zmodload -i zsh/complist # menu completion
|
||||
autoload -U promptinit # prompt
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = ["git" "fzf"];
|
||||
};
|
||||
|
||||
autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search
|
||||
autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search
|
||||
enableCompletion = true;
|
||||
history = {
|
||||
path = "$HOME/.zsh_history";
|
||||
save = 10000;
|
||||
size = 10000;
|
||||
share = true;
|
||||
};
|
||||
|
||||
bindkey -v
|
||||
type starship_zle-keymap-select >/dev/null || \
|
||||
{
|
||||
eval "$(starship init zsh)"
|
||||
}
|
||||
unalias ls
|
||||
clear
|
||||
splash
|
||||
playshellsound ${self}/assets/sound/sh-source.wav
|
||||
[ ! -f $FLAKEPATH/flake.nix ] && echo "WARNING: flake.nix not found at \$FLAKEPATH. Shell aliases for editing config files won't work correctly!" && echo "Edit the FLAKEPATH session variable in zshell.nix to point to the path where you saved the system configuration flake."
|
||||
'';
|
||||
autosuggestion = {
|
||||
enable = true;
|
||||
highlight = "fg=#4C566A,underline";
|
||||
};
|
||||
|
||||
shellAliases = {
|
||||
grep = "grep --color=auto";
|
||||
yazi = "y";
|
||||
vi = "nvim";
|
||||
mv = "mv -v";
|
||||
cp = "cp -vr";
|
||||
gt = "gtrash";
|
||||
gtp = "playshellsound ${self}/assets/sound/rm.wav; gtrash put";
|
||||
sr = "source ~/.zshrc";
|
||||
".." = "cd ..";
|
||||
rm = "echo 'use \"gtp\" instead'";
|
||||
psg = "ps aux | grep -v grep | grep -i -e VSZ -e";
|
||||
mkdir = "mkdir -p";
|
||||
pk = "pkill -9 -f";
|
||||
svcu = "systemctl --user";
|
||||
svc = "sudo systemctl";
|
||||
viflake = "nvim flake.nix";
|
||||
|
||||
#git
|
||||
"ga" = "playshellsound ${self}/assets/sound/gitadd.wav; git add";
|
||||
gcomm = "gitcommit_sfx";
|
||||
gpush = "gitpush_sfx";
|
||||
gpull = "gitpull_sfx";
|
||||
greb = "gitrebase_sfx";
|
||||
};
|
||||
initExtra = ''
|
||||
playshellsound() {
|
||||
if [ $# -ne 1 ]; then
|
||||
echo "Usage: playshellsound <path/to/sound>"
|
||||
return 1
|
||||
fi
|
||||
if ! scheck; then
|
||||
return 0
|
||||
else
|
||||
runbg aplay "$1"
|
||||
fi
|
||||
}
|
||||
gitrebase_sfx() {
|
||||
if git rebase "$@"; then
|
||||
playshellsound ${self}/assets/sound/gitrebase.wav
|
||||
return 0
|
||||
else
|
||||
playshellsound ${self}/assets/sound/error.wav
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
gitcommit_sfx() {
|
||||
if git commit "$@"; then
|
||||
playshellsound ${self}/assets/sound/gitcommit.wav
|
||||
return 0
|
||||
else
|
||||
playshellsound ${self}/assets/sound/error.wav
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
gitpush_sfx() {
|
||||
if git push "$@"; then
|
||||
playshellsound ${self}/assets/sound/gitpush.wav
|
||||
return 0
|
||||
else
|
||||
playshellsound ${self}/assets/sound/error.wav
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
gitpull_sfx() {
|
||||
if git pull "$@"; then
|
||||
playshellsound ${self}/assets/sound/gitpull.wav
|
||||
return 0
|
||||
else
|
||||
playshellsound ${self}/assets/sound/error.wav
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
unalias ls
|
||||
ls() {
|
||||
eza -1 --group-directories-first --icons "$@"
|
||||
playshellsound ${self}/assets/sound/ls.wav
|
||||
return 0
|
||||
}
|
||||
|
||||
mkcd() {
|
||||
mkdir -p "$1" && cd "$1"
|
||||
}
|
||||
|
||||
y() {
|
||||
local tmp="$(mktemp -t "yazi-cwd.XXXXXX")"
|
||||
yazi "$@" --cwd-file="$tmp"
|
||||
if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
|
||||
builtin cd -- "$cwd"
|
||||
fi
|
||||
rm -f -- "$tmp"
|
||||
}
|
||||
|
||||
cd() {
|
||||
local prev_sounds_enabled="$SOUNDS_ENABLED"
|
||||
SOUNDS_ENABLED=0
|
||||
eza -1 --group-directories-first --icons "$@"
|
||||
SOUNDS_ENABLED=$prev_sounds_enabled
|
||||
builtin cd "$@"
|
||||
playshellsound /nix/store/7a9w7np3qrvmzxjbs7xj05qq2yccgfsj-source/assets/sound/cd.wav
|
||||
return 0
|
||||
}
|
||||
if [ ! -e $HOME/.zsh_history ]; then
|
||||
touch $HOME/.zsh_history
|
||||
chmod 600 $HOME/.zsh_history
|
||||
fi
|
||||
setopt APPEND_HISTORY # Append history to the history file (don't overwrite)
|
||||
setopt INC_APPEND_HISTORY # Append to the history file incrementally
|
||||
setopt SHARE_HISTORY # Share history between all zsh sessions
|
||||
|
||||
sessionVariables = {
|
||||
setopt CORRECT
|
||||
setopt NO_NOMATCH
|
||||
setopt LIST_PACKED
|
||||
setopt ALWAYS_TO_END
|
||||
setopt GLOB_COMPLETE
|
||||
setopt COMPLETE_ALIASES
|
||||
setopt COMPLETE_IN_WORD
|
||||
setopt AUTO_CD
|
||||
setopt AUTO_CONTINUE
|
||||
setopt LONG_LIST_JOBS
|
||||
setopt HIST_VERIFY
|
||||
setopt SHARE_HISTORY
|
||||
setopt HIST_IGNORE_SPACE
|
||||
setopt HIST_SAVE_NO_DUPS
|
||||
setopt HIST_IGNORE_ALL_DUPS
|
||||
setopt EXTENDED_GLOB
|
||||
setopt TRANSIENT_RPROMPT
|
||||
setopt INTERACTIVE_COMMENTS
|
||||
|
||||
autoload -U compinit # completion
|
||||
autoload -U terminfo # terminfo keys
|
||||
zmodload -i zsh/complist # menu completion
|
||||
autoload -U promptinit # prompt
|
||||
|
||||
autoload -U up-line-or-beginning-search; zle -N up-line-or-beginning-search
|
||||
autoload -U down-line-or-beginning-search; zle -N down-line-or-beginning-search
|
||||
|
||||
bindkey -v
|
||||
type starship_zle-keymap-select >/dev/null || \
|
||||
{
|
||||
eval "$(starship init zsh)"
|
||||
}
|
||||
unalias ls
|
||||
clear
|
||||
splash
|
||||
playshellsound ${self}/assets/sound/sh-source.wav
|
||||
[ ! -f $FLAKEPATH/flake.nix ] && echo "WARNING: flake.nix not found at \$FLAKEPATH. Shell aliases for editing config files won't work correctly!" && echo "Edit the FLAKEPATH session variable in zshell.nix to point to the path where you saved the system configuration flake."
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,109 +1,114 @@
|
||||
{self, ...}: {
|
||||
home.file.".config/neofetch/config.conf".text = ''
|
||||
username=$(whoami)
|
||||
name_length=''${#username}
|
||||
total_width=40
|
||||
side_length=$(( (total_width - name_length - 2) / 2 ))
|
||||
{lib, config, self, ...}: {
|
||||
options = {
|
||||
homeFiles.enable = lib.mkEnableOption "enables declared custom files";
|
||||
};
|
||||
config = lib.mkIf config.homeFiles.enable {
|
||||
home.file.".config/neofetch/config.conf".text = ''
|
||||
username=$(whoami)
|
||||
name_length=''${#username}
|
||||
total_width=40
|
||||
side_length=$(( (total_width - name_length - 2) / 2 ))
|
||||
|
||||
top_line=$(printf "─%.0s" $(seq 1 $side_length))
|
||||
top_line="$top_line $username "
|
||||
top_line+=$(printf "─%.0s" $(seq 1 $side_length))
|
||||
top_line=$(printf "─%.0s" $(seq 1 $side_length))
|
||||
top_line="$top_line $username "
|
||||
top_line+=$(printf "─%.0s" $(seq 1 $side_length))
|
||||
|
||||
if (( (total_width - name_length) % 2 != 0 )); then
|
||||
top_line+="─"
|
||||
fi
|
||||
if (( (total_width - name_length) % 2 != 0 )); then
|
||||
top_line+="─"
|
||||
fi
|
||||
|
||||
print_info() {
|
||||
prin "┌$top_line┐"
|
||||
info " " distro
|
||||
info " " kernel
|
||||
info " " wm
|
||||
info " " shell
|
||||
info " " term
|
||||
info " " term_font
|
||||
info " " packages
|
||||
prin "└────────────────────────────────────────┘"
|
||||
info cols
|
||||
prin "\n \n \n \n \n ''${cl3} \n \n ''${cl5} \n \n ''${cl2} \n \n ''${cl6} \n \n ''${cl4} \n \n ''${cl1} \n \n ''${cl7} \n \n ''${cl0}"
|
||||
}
|
||||
print_info() {
|
||||
prin "┌$top_line┐"
|
||||
info " " distro
|
||||
info " " kernel
|
||||
info " " wm
|
||||
info " " shell
|
||||
info " " term
|
||||
info " " term_font
|
||||
info " " packages
|
||||
prin "└────────────────────────────────────────┘"
|
||||
info cols
|
||||
prin "\n \n \n \n \n ''${cl3} \n \n ''${cl5} \n \n ''${cl2} \n \n ''${cl6} \n \n ''${cl4} \n \n ''${cl1} \n \n ''${cl7} \n \n ''${cl0}"
|
||||
}
|
||||
|
||||
kernel_shorthand="on"
|
||||
distro_shorthand="on"
|
||||
os_arch="off"
|
||||
uptime_shorthand="on"
|
||||
memory_percent="on"
|
||||
package_managers="off"
|
||||
shell_path="off"
|
||||
shell_version="on"
|
||||
speed_type="bios_limit"
|
||||
speed_shorthand="on"
|
||||
gtk_shorthand="on"
|
||||
gtk2="on"
|
||||
gtk3="on"
|
||||
colors=(distro)
|
||||
bold="on"
|
||||
underline_enabled="on"
|
||||
underline_char="-"
|
||||
separator=" "
|
||||
color_blocks="off"
|
||||
block_range=(0 15) # Colorblocks
|
||||
kernel_shorthand="on"
|
||||
distro_shorthand="on"
|
||||
os_arch="off"
|
||||
uptime_shorthand="on"
|
||||
memory_percent="on"
|
||||
package_managers="off"
|
||||
shell_path="off"
|
||||
shell_version="on"
|
||||
speed_type="bios_limit"
|
||||
speed_shorthand="on"
|
||||
gtk_shorthand="on"
|
||||
gtk2="on"
|
||||
gtk3="on"
|
||||
colors=(distro)
|
||||
bold="on"
|
||||
underline_enabled="on"
|
||||
underline_char="-"
|
||||
separator=" "
|
||||
color_blocks="off"
|
||||
block_range=(0 15) # Colorblocks
|
||||
|
||||
# Colors for custom colorblocks
|
||||
magenta="\033[1;35m"
|
||||
green="\033[1;32m"
|
||||
white="\033[1;37m"
|
||||
blue="\033[1;34m"
|
||||
red="\033[1;31m"
|
||||
black="\033[1;40;30m"
|
||||
yellow="\033[1;33m"
|
||||
cyan="\033[1;36m"
|
||||
reset="\033[0m"
|
||||
bgyellow="\033[1;43;33m"
|
||||
bgwhite="\033[1;47;37m"
|
||||
cl0="''${reset}"
|
||||
cl1="''${magenta}"
|
||||
cl2="''${green}"
|
||||
cl3="''${white}"
|
||||
cl4="''${blue}"
|
||||
cl5="''${red}"
|
||||
cl6="''${yellow}"
|
||||
cl7="''${cyan}"
|
||||
cl8="''${black}"
|
||||
cl9="''${bgyellow}"
|
||||
cl10="''${bgwhite}"
|
||||
# Colors for custom colorblocks
|
||||
magenta="\033[1;35m"
|
||||
green="\033[1;32m"
|
||||
white="\033[1;37m"
|
||||
blue="\033[1;34m"
|
||||
red="\033[1;31m"
|
||||
black="\033[1;40;30m"
|
||||
yellow="\033[1;33m"
|
||||
cyan="\033[1;36m"
|
||||
reset="\033[0m"
|
||||
bgyellow="\033[1;43;33m"
|
||||
bgwhite="\033[1;47;37m"
|
||||
cl0="''${reset}"
|
||||
cl1="''${magenta}"
|
||||
cl2="''${green}"
|
||||
cl3="''${white}"
|
||||
cl4="''${blue}"
|
||||
cl5="''${red}"
|
||||
cl6="''${yellow}"
|
||||
cl7="''${cyan}"
|
||||
cl8="''${black}"
|
||||
cl9="''${bgyellow}"
|
||||
cl10="''${bgwhite}"
|
||||
|
||||
block_width=4
|
||||
block_height=1
|
||||
block_width=4
|
||||
block_height=1
|
||||
|
||||
bar_char_elapsed="-"
|
||||
bar_char_total="="
|
||||
bar_border="on"
|
||||
bar_length=15
|
||||
bar_color_elapsed="distro"
|
||||
bar_color_total="distro"
|
||||
bar_char_elapsed="-"
|
||||
bar_char_total="="
|
||||
bar_border="on"
|
||||
bar_length=15
|
||||
bar_color_elapsed="distro"
|
||||
bar_color_total="distro"
|
||||
|
||||
cpu_display="on"
|
||||
memory_display="on"
|
||||
battery_display="on"
|
||||
disk_display="on"
|
||||
cpu_display="on"
|
||||
memory_display="on"
|
||||
battery_display="on"
|
||||
disk_display="on"
|
||||
|
||||
image_backend="kitty"
|
||||
image_source="${self}/assets/images/nixos-logo.png"
|
||||
image_size="250px"
|
||||
image_loop="off"
|
||||
image_backend="kitty"
|
||||
image_source="${self}/assets/images/nixos-logo.png"
|
||||
image_size="250px"
|
||||
image_loop="off"
|
||||
|
||||
aascii_distro="auto"
|
||||
ascii_colors=(distro)
|
||||
ascii_bold="on"
|
||||
aascii_distro="auto"
|
||||
ascii_colors=(distro)
|
||||
ascii_bold="on"
|
||||
|
||||
crop_mode="normal"
|
||||
crop_offset="center"
|
||||
crop_mode="normal"
|
||||
crop_offset="center"
|
||||
|
||||
gap=2
|
||||
gap=2
|
||||
|
||||
yoffset=0
|
||||
xoffset=0
|
||||
yoffset=0
|
||||
xoffset=0
|
||||
|
||||
stdout="off"
|
||||
'';
|
||||
stdout="off"
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
58
modules/home/hm-modules.nix
Normal file
58
modules/home/hm-modules.nix
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
inputs,
|
||||
nixpkgs,
|
||||
config,
|
||||
self,
|
||||
username,
|
||||
host,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./programs
|
||||
./environment
|
||||
./scripts
|
||||
./files.nix
|
||||
];
|
||||
|
||||
hyprlandConfig.enable = lib.mkDefault true;
|
||||
autojumpOpts.enable = lib.mkDefault true;
|
||||
stylixHomeOpts.enable = lib.mkDefault true;
|
||||
waybarConfig.enable = lib.mkDefault true;
|
||||
gtkOpts.enable = lib.mkDefault true;
|
||||
spicetifyOpts.enable = lib.mkDefault true;
|
||||
starshipConfig.enable = lib.mkDefault true;
|
||||
btopConfig.enable = lib.mkDefault true;
|
||||
swayncConfig.enable = lib.mkDefault true;
|
||||
userPkgs.enable = lib.mkDefault true;
|
||||
cavaOpts.enable = lib.mkDefault true;
|
||||
ezaOpts.enable = lib.mkDefault true;
|
||||
firefoxConfig.enable = lib.mkDefault true;
|
||||
fuzzelConfig.enable = lib.mkDefault true;
|
||||
fzfOpts.enable = lib.mkDefault true;
|
||||
gitConfig.enable = lib.mkDefault true;
|
||||
kittyConfig.enable = lib.mkDefault true;
|
||||
yaziConfig.enable = lib.mkDefault true;
|
||||
zshConfig.enable = lib.mkDefault true;
|
||||
homeFiles.enable = lib.mkDefault true;
|
||||
passConfig.enable = lib.mkDefault true;
|
||||
batOpts.enable = lib.mkDefault true;
|
||||
|
||||
pagedmovScripts.enable = lib.mkDefault true;
|
||||
pagedmovScripts.commandScripts.invoke.enable = lib.mkDefault true;
|
||||
pagedmovScripts.commandScripts.runbg.enable = lib.mkDefault true;
|
||||
pagedmovScripts.commandScripts.splash.enable = lib.mkDefault true;
|
||||
pagedmovScripts.commandScripts.toolbelt.enable = lib.mkDefault true;
|
||||
pagedmovScripts.commandScripts.viconf.enable = lib.mkDefault true;
|
||||
|
||||
pagedmovScripts.hyprlandControls.chpaper.enable = lib.mkDefault true;
|
||||
pagedmovScripts.hyprlandControls.scheck.enable = lib.mkDefault true;
|
||||
pagedmovScripts.hyprlandControls.chscheme.enable = lib.mkDefault true;
|
||||
pagedmovScripts.hyprlandControls.keyring.enable = lib.mkDefault true;
|
||||
pagedmovScripts.hyprlandControls.moveonscreen.enable = lib.mkDefault true;
|
||||
pagedmovScripts.hyprlandControls.switchmon.enable = lib.mkDefault true;
|
||||
|
||||
pagedmovScripts.nixShortcuts.garbage-collect.enable = lib.mkDefault true;
|
||||
pagedmovScripts.nixShortcuts.nsp.enable = lib.mkDefault true;
|
||||
pagedmovScripts.nixShortcuts.rebuild.enable = lib.mkDefault true;
|
||||
}
|
||||
@@ -27,10 +27,8 @@ in {
|
||||
} else {};
|
||||
programs.home-manager.enable = true;
|
||||
imports = [
|
||||
./programs
|
||||
./environment
|
||||
./scripts
|
||||
./files.nix
|
||||
inputs.spicetify-nix.homeManagerModules.default
|
||||
./hm-modules.nix
|
||||
];
|
||||
home = {
|
||||
username = "${username}";
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
{...}: {
|
||||
programs.autojump = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
{lib, config, ...}: {
|
||||
options = {
|
||||
autojumpOpts.enable = lib.mkEnableOption "enables my autojump options";
|
||||
};
|
||||
config = lib.mkIf config.autojumpOpts.enable {
|
||||
programs.autojump = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
{inputs, ...}: {
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
pager = "less -FR";
|
||||
{lib, config, inputs, ...}: {
|
||||
options = {
|
||||
batOpts.enable = lib.mkEnableOption "enables my bat options";
|
||||
};
|
||||
config = lib.mkIf config.batOpts.enable {
|
||||
programs.bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
pager = "less -FR";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,19 +1,24 @@
|
||||
{pkgs, ...}: {
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
update_ms = 500;
|
||||
vim_keys = true;
|
||||
color_theme = "nord";
|
||||
theme_background = true;
|
||||
temp_scale = "fahrenheit";
|
||||
graph_symbol = "block";
|
||||
disks_filter = "exclude=/boot /";
|
||||
show_swap = false;
|
||||
swap_disk = false;
|
||||
};
|
||||
{lib, config, pkgs, ...}: {
|
||||
options = {
|
||||
btopConfig.enable = lib.mkEnableOption "enables my btop config";
|
||||
};
|
||||
config = lib.mkIf config.btopConfig.enable {
|
||||
programs.btop = {
|
||||
enable = true;
|
||||
|
||||
home.packages = with pkgs; [nvtopPackages.intel];
|
||||
settings = {
|
||||
update_ms = 500;
|
||||
vim_keys = true;
|
||||
color_theme = "nord";
|
||||
theme_background = true;
|
||||
temp_scale = "fahrenheit";
|
||||
graph_symbol = "block";
|
||||
disks_filter = "exclude=/boot /";
|
||||
show_swap = false;
|
||||
swap_disk = false;
|
||||
};
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [nvtopPackages.intel];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
programs.cava = {
|
||||
enable = true;
|
||||
{lib, config, inputs, pkgs, ... }: {
|
||||
options = {
|
||||
cavaOpts.enable = lib.mkEnableOption "enables my cava settings";
|
||||
};
|
||||
config = lib.mkIf config.cavaOpts.enable {
|
||||
programs.cava = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
{...}: {
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableZshIntegration = false;
|
||||
extraOptions = ["-1" "-h" "--group-directories-first"];
|
||||
icons = "auto";
|
||||
git = true;
|
||||
{lib, config, ...}: {
|
||||
options = {
|
||||
ezaOpts.enable = lib.mkEnableOption "enables my eza options";
|
||||
};
|
||||
config = lib.mkIf config.ezaOpts.enable {
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
enableZshIntegration = false;
|
||||
extraOptions = ["-1" "-h" "--group-directories-first"];
|
||||
icons = "auto";
|
||||
git = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,127 +1,127 @@
|
||||
{
|
||||
nur,
|
||||
username,
|
||||
self,
|
||||
...
|
||||
}: {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
{lib, config, nur, username, self, ... }: {
|
||||
options = {
|
||||
firefoxConfig.enable = lib.mkEnableOption "enables my firefox configuration";
|
||||
};
|
||||
config = lib.mkIf config.firefoxConfig.enable {
|
||||
programs.firefox = {
|
||||
enable = true;
|
||||
policies = {
|
||||
DisableTelemetry = true;
|
||||
DisableFirefoxStudies = true;
|
||||
EnableTrackingProtection = {
|
||||
Value = true;
|
||||
Locked = true;
|
||||
Cryptomining = true;
|
||||
Fingerprinting = true;
|
||||
};
|
||||
DisablePocket = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableAccounts = true;
|
||||
DisableFirefoxScreenshots = true;
|
||||
OverrideFirstRunPage = "";
|
||||
OverridePostUpdatePage = "";
|
||||
DontCheckDefaultBrowser = true;
|
||||
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
|
||||
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||
SearchBar = "unified"; # alternative: "separate" isDefault = true;
|
||||
};
|
||||
profiles.${username} = {
|
||||
name = "${username}";
|
||||
bookmarks = [
|
||||
{
|
||||
name = "Nix Sites";
|
||||
toolbar = true;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "NixOS Wiki";
|
||||
url = "https://nixos.wiki/wiki/Main_Page";
|
||||
}
|
||||
{
|
||||
name = "Nixpkgs Reference Manual";
|
||||
url = "https://nixos.org/manual/nixpkgs/stable/";
|
||||
}
|
||||
{
|
||||
name = "NixOS Manual";
|
||||
url = "https://nixos.org/manual/nixos/stable/";
|
||||
}
|
||||
{
|
||||
name = "NixOS Options";
|
||||
url = "https://search.nixos.org/options";
|
||||
}
|
||||
{
|
||||
name = "Home Manager Options";
|
||||
url = "https://home-manager-options.extranix.com/";
|
||||
}
|
||||
{
|
||||
name = "Nixpkgs Package Search";
|
||||
url = "https://search.nixos.org/packages";
|
||||
}
|
||||
{
|
||||
name = "Noogle - Nixpkgs Function Docs";
|
||||
url = "https://noogle.dev";
|
||||
}
|
||||
{
|
||||
name = "Nixvim Docs";
|
||||
url = "https://nix-community.github.io/nixvim/";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "Rust Manual";
|
||||
url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html";
|
||||
}
|
||||
{
|
||||
name = "ChatGPT";
|
||||
url = "https://chatgpt.com/";
|
||||
}
|
||||
{
|
||||
name = "DataAnnotation";
|
||||
url = "https://app.dataannotation.tech/users/sign_in";
|
||||
}
|
||||
{
|
||||
name = "Nerd Fonts Cheatsheet";
|
||||
url = "https://www.nerdfonts.com/cheat-sheet";
|
||||
}
|
||||
];
|
||||
extensions = with nur.repos.rycee.firefox-addons; [
|
||||
darkreader
|
||||
adnauseam
|
||||
cookie-autodelete
|
||||
disconnect
|
||||
firefox-color
|
||||
vimium
|
||||
firenvim
|
||||
privacy-badger
|
||||
new-tab-override
|
||||
];
|
||||
extraConfig = ''
|
||||
"browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html";
|
||||
"browser.active_color" = "#EE0000";
|
||||
"browser.active_color.dark" = "#FF6666";
|
||||
"browser.anchor_color" = "#0000EE";
|
||||
"browser.anchor_color.dark" = "#8C8CFF";
|
||||
"browser.display.background_color" = "#FFFFFF";
|
||||
"browser.display.background_color.dark" = "#1C1B22";
|
||||
"browser.display.document_color_use" = "1";
|
||||
"browser.display.foreground_color" = "#000000";
|
||||
"browser.display.foreground_color.dark" = "#FBFBFE";
|
||||
"browser.display.suppress_canvas_background_image_on_forced_colors" = "true";
|
||||
"browser.display.use_system_colors" = "false";
|
||||
"browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A";
|
||||
"browser.theme.colorway-closet" = "true";
|
||||
"browser.theme.colorway-migration" = "true";
|
||||
"browser.theme.windows.accent-color-in-tabs.enabled" = "false";
|
||||
"browser.visited_color" = "#551A8B";
|
||||
"browser.visited_color.dark" = "#FFADFF";
|
||||
"browser.newtabpage.pinned" = [{
|
||||
title = "Homepage";
|
||||
url = "${self}/glasshouse-desktop/home/firefox/homepage.html";
|
||||
}];
|
||||
"devtools.defaultColorUnit" = "authored";
|
||||
"editor.background_color" = "#FFFFFF";
|
||||
"editor.use_custom_colors" = "false";
|
||||
'';
|
||||
};
|
||||
DisablePocket = true;
|
||||
DisableFirefoxAccounts = true;
|
||||
DisableAccounts = true;
|
||||
DisableFirefoxScreenshots = true;
|
||||
OverrideFirstRunPage = "";
|
||||
OverridePostUpdatePage = "";
|
||||
DontCheckDefaultBrowser = true;
|
||||
DisplayBookmarksToolbar = "always"; # alternatives: "always" or "newtab"
|
||||
DisplayMenuBar = "default-off"; # alternatives: "always", "never" or "default-on"
|
||||
SearchBar = "unified"; # alternative: "separate" isDefault = true;
|
||||
};
|
||||
profiles.${username} = {
|
||||
name = "${username}";
|
||||
bookmarks = [
|
||||
{
|
||||
name = "Nix Sites";
|
||||
toolbar = true;
|
||||
bookmarks = [
|
||||
{
|
||||
name = "NixOS Wiki";
|
||||
url = "https://nixos.wiki/wiki/Main_Page";
|
||||
}
|
||||
{
|
||||
name = "Nixpkgs Reference Manual";
|
||||
url = "https://nixos.org/manual/nixpkgs/stable/";
|
||||
}
|
||||
{
|
||||
name = "NixOS Manual";
|
||||
url = "https://nixos.org/manual/nixos/stable/";
|
||||
}
|
||||
{
|
||||
name = "NixOS Options";
|
||||
url = "https://search.nixos.org/options";
|
||||
}
|
||||
{
|
||||
name = "Home Manager Options";
|
||||
url = "https://home-manager-options.extranix.com/";
|
||||
}
|
||||
{
|
||||
name = "Nixpkgs Package Search";
|
||||
url = "https://search.nixos.org/packages";
|
||||
}
|
||||
{
|
||||
name = "Noogle - Nixpkgs Function Docs";
|
||||
url = "https://noogle.dev";
|
||||
}
|
||||
{
|
||||
name = "Nixvim Docs";
|
||||
url = "https://nix-community.github.io/nixvim/";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "Rust Manual";
|
||||
url = "https://doc.rust-lang.org/book/ch01-03-hello-cargo.html";
|
||||
}
|
||||
{
|
||||
name = "ChatGPT";
|
||||
url = "https://chatgpt.com/";
|
||||
}
|
||||
{
|
||||
name = "DataAnnotation";
|
||||
url = "https://app.dataannotation.tech/users/sign_in";
|
||||
}
|
||||
{
|
||||
name = "Nerd Fonts Cheatsheet";
|
||||
url = "https://www.nerdfonts.com/cheat-sheet";
|
||||
}
|
||||
];
|
||||
extensions = with nur.repos.rycee.firefox-addons; [
|
||||
darkreader
|
||||
adnauseam
|
||||
cookie-autodelete
|
||||
disconnect
|
||||
firefox-color
|
||||
vimium
|
||||
firenvim
|
||||
privacy-badger
|
||||
new-tab-override
|
||||
];
|
||||
extraConfig = ''
|
||||
"browser.startup.homepage" = "${self}/glasshouse-desktop/home/firefox/homepage.html";
|
||||
"browser.active_color" = "#EE0000";
|
||||
"browser.active_color.dark" = "#FF6666";
|
||||
"browser.anchor_color" = "#0000EE";
|
||||
"browser.anchor_color.dark" = "#8C8CFF";
|
||||
"browser.display.background_color" = "#FFFFFF";
|
||||
"browser.display.background_color.dark" = "#1C1B22";
|
||||
"browser.display.document_color_use" = "1";
|
||||
"browser.display.foreground_color" = "#000000";
|
||||
"browser.display.foreground_color.dark" = "#FBFBFE";
|
||||
"browser.display.suppress_canvas_background_image_on_forced_colors" = "true";
|
||||
"browser.display.use_system_colors" = "false";
|
||||
"browser.newtabpage.activity-stream.newNewtabExperience.colors" = "#0090ED,#FF4F5F,#2AC3A2,#FF7139,#A172FF,#FFA437,#FF2A8A";
|
||||
"browser.theme.colorway-closet" = "true";
|
||||
"browser.theme.colorway-migration" = "true";
|
||||
"browser.theme.windows.accent-color-in-tabs.enabled" = "false";
|
||||
"browser.visited_color" = "#551A8B";
|
||||
"browser.visited_color.dark" = "#FFADFF";
|
||||
"browser.newtabpage.pinned" = [{
|
||||
title = "Homepage";
|
||||
url = "${self}/glasshouse-desktop/home/firefox/homepage.html";
|
||||
}];
|
||||
"devtools.defaultColorUnit" = "authored";
|
||||
"editor.background_color" = "#FFFFFF";
|
||||
"editor.use_custom_colors" = "false";
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,23 +1,28 @@
|
||||
{lib, ...}: {
|
||||
programs.fuzzel = {
|
||||
enable = true;
|
||||
settings = {
|
||||
main = {
|
||||
line-height = 25;
|
||||
fields = "name,generic,comment,categories,filename,keywords";
|
||||
terminal = "kitty";
|
||||
prompt = "' ➜ '";
|
||||
layer = "top";
|
||||
lines = 10;
|
||||
width = 35;
|
||||
horizontal-pad = 25;
|
||||
inner-pad = 5;
|
||||
{config, lib, ...}: {
|
||||
options = {
|
||||
fuzzelConfig.enable = lib.mkEnableOption "enables my fuzzel configuration";
|
||||
};
|
||||
config = lib.mkIf config.fuzzelConfig.enable {
|
||||
programs.fuzzel = {
|
||||
enable = true;
|
||||
settings = {
|
||||
main = {
|
||||
line-height = 25;
|
||||
fields = "name,generic,comment,categories,filename,keywords";
|
||||
terminal = "kitty";
|
||||
prompt = "' ➜ '";
|
||||
layer = "top";
|
||||
lines = 10;
|
||||
width = 35;
|
||||
horizontal-pad = 25;
|
||||
inner-pad = 5;
|
||||
};
|
||||
border = {
|
||||
radius = 15;
|
||||
width = 3;
|
||||
};
|
||||
colors.background = lib.mkForce "2e344080";
|
||||
};
|
||||
border = {
|
||||
radius = 15;
|
||||
width = 3;
|
||||
};
|
||||
colors.background = lib.mkForce "2e344080";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
{...}: {
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
{lib, config, ...}: {
|
||||
options = {
|
||||
fzfOpts.enable = lib.mkEnableOption "enables my fzf options";
|
||||
};
|
||||
config = lib.mkIf config.fzfOpts.enable {
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,12 @@
|
||||
{username, ...}: {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userEmail = "${username}@gmail.com";
|
||||
userName = "${username}";
|
||||
{lib, config, username, ...}: {
|
||||
options = {
|
||||
gitConfig.enable = lib.mkEnableOption "enables my git configuration";
|
||||
};
|
||||
config = lib.mkIf config.gitConfig.enable {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
userEmail = "${username}@gmail.com";
|
||||
userName = "${username}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,73 +1,74 @@
|
||||
{
|
||||
pkgs,
|
||||
scheme,
|
||||
...
|
||||
}: {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
{lib, config, pkgs, scheme, ... }: {
|
||||
options = {
|
||||
kittyConfig.enable = lib.mkEnableOption "enables my kitty configuration";
|
||||
};
|
||||
config = lib.mkIf config.kittyConfig.enable {
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
confirm_os_window_close = 0;
|
||||
window_padding_width = 4;
|
||||
scrollback_lines = 10000;
|
||||
enable_audio_bell = false;
|
||||
allow_remote_control = true;
|
||||
mouse_hide_wait = 60;
|
||||
settings = {
|
||||
confirm_os_window_close = 0;
|
||||
window_padding_width = 4;
|
||||
scrollback_lines = 10000;
|
||||
enable_audio_bell = false;
|
||||
allow_remote_control = true;
|
||||
mouse_hide_wait = 60;
|
||||
|
||||
## Tabs
|
||||
tab_title_template = "{index}";
|
||||
active_tab_font_style = "normal";
|
||||
inactive_tab_font_style = "normal";
|
||||
tab_bar_style = "powerline";
|
||||
tab_powerline_style = "round";
|
||||
## Tabs
|
||||
tab_title_template = "{index}";
|
||||
active_tab_font_style = "normal";
|
||||
inactive_tab_font_style = "normal";
|
||||
tab_bar_style = "powerline";
|
||||
tab_powerline_style = "round";
|
||||
};
|
||||
|
||||
keybindings = {
|
||||
## Tabs
|
||||
"alt+1" = "goto_tab 1";
|
||||
"alt+2" = "goto_tab 2";
|
||||
"alt+3" = "goto_tab 3";
|
||||
"alt+4" = "goto_tab 4";
|
||||
|
||||
## Unbind
|
||||
"ctrl+shift+left" = "no_op";
|
||||
"ctrl+shift+right" = "no_op";
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
background #${scheme.base00}
|
||||
foreground #${scheme.base05}
|
||||
selection_background #${scheme.base05}
|
||||
selection_foreground #${scheme.base00}
|
||||
url_color #${scheme.base04}
|
||||
cursor #${scheme.base05}
|
||||
active_border_color #${scheme.base03}
|
||||
inactive_border_color #${scheme.base01}
|
||||
active_tab_background #${scheme.base00}
|
||||
active_tab_foreground #${scheme.base05}
|
||||
inactive_tab_background #${scheme.base01}
|
||||
inactive_tab_foreground #${scheme.base04}
|
||||
tab_bar_background #${scheme.base01}
|
||||
|
||||
# normal
|
||||
color0 #${scheme.base01}
|
||||
color1 #${scheme.base08}
|
||||
color2 #${scheme.base0B}
|
||||
color3 #${scheme.base0A}
|
||||
color4 #${scheme.base0D}
|
||||
color5 #${scheme.base0E}
|
||||
color6 #${scheme.base0C}
|
||||
color7 #${scheme.base05}
|
||||
|
||||
# bright
|
||||
color8 #${scheme.base03}
|
||||
color9 #${scheme.base09}
|
||||
color10 #${scheme.base01}
|
||||
color11 #${scheme.base02}
|
||||
color12 #${scheme.base04}
|
||||
color13 #${scheme.base06}
|
||||
color14 #${scheme.base0F}
|
||||
color15 #${scheme.base07}
|
||||
'';
|
||||
};
|
||||
|
||||
keybindings = {
|
||||
## Tabs
|
||||
"alt+1" = "goto_tab 1";
|
||||
"alt+2" = "goto_tab 2";
|
||||
"alt+3" = "goto_tab 3";
|
||||
"alt+4" = "goto_tab 4";
|
||||
|
||||
## Unbind
|
||||
"ctrl+shift+left" = "no_op";
|
||||
"ctrl+shift+right" = "no_op";
|
||||
};
|
||||
|
||||
extraConfig = ''
|
||||
background #${scheme.base00}
|
||||
foreground #${scheme.base05}
|
||||
selection_background #${scheme.base05}
|
||||
selection_foreground #${scheme.base00}
|
||||
url_color #${scheme.base04}
|
||||
cursor #${scheme.base05}
|
||||
active_border_color #${scheme.base03}
|
||||
inactive_border_color #${scheme.base01}
|
||||
active_tab_background #${scheme.base00}
|
||||
active_tab_foreground #${scheme.base05}
|
||||
inactive_tab_background #${scheme.base01}
|
||||
inactive_tab_foreground #${scheme.base04}
|
||||
tab_bar_background #${scheme.base01}
|
||||
|
||||
# normal
|
||||
color0 #${scheme.base01}
|
||||
color1 #${scheme.base08}
|
||||
color2 #${scheme.base0B}
|
||||
color3 #${scheme.base0A}
|
||||
color4 #${scheme.base0D}
|
||||
color5 #${scheme.base0E}
|
||||
color6 #${scheme.base0C}
|
||||
color7 #${scheme.base05}
|
||||
|
||||
# bright
|
||||
color8 #${scheme.base03}
|
||||
color9 #${scheme.base09}
|
||||
color10 #${scheme.base01}
|
||||
color11 #${scheme.base02}
|
||||
color12 #${scheme.base04}
|
||||
color13 #${scheme.base06}
|
||||
color14 #${scheme.base0F}
|
||||
color15 #${scheme.base07}
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
{username, ...}: let
|
||||
{lib, config, username, ...}: let
|
||||
home = "/home/${username}";
|
||||
in {
|
||||
programs.password-store = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PASSWORD_STORE_DIR = "${home}/.password-store";
|
||||
options = {
|
||||
passConfig.enable = lib.mkEnableOption "enables my pass config";
|
||||
};
|
||||
config = lib.mkIf config.passConfig.enable {
|
||||
programs.password-store = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PASSWORD_STORE_DIR = "${home}/.password-store";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
{...}: {
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
{lib, config, ...}: {
|
||||
options = {
|
||||
yaziConfig.enable = lib.mkEnableOption "enables my yazi config";
|
||||
};
|
||||
config = lib.mkIf config.yaziConfig.enable {
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
{
|
||||
host,
|
||||
lib,
|
||||
config,
|
||||
self,
|
||||
pkgs,
|
||||
...
|
||||
@@ -16,10 +18,6 @@
|
||||
self = self;
|
||||
pkgs = pkgs;
|
||||
};
|
||||
scheck = import ./commands/s_check.nix {
|
||||
self = self;
|
||||
pkgs = pkgs;
|
||||
};
|
||||
runbg = import ./commands/runbg.nix {
|
||||
self = self;
|
||||
pkgs = pkgs;
|
||||
@@ -32,6 +30,7 @@
|
||||
self = self;
|
||||
pkgs = pkgs;
|
||||
};
|
||||
scheck = import ./wm-controls/s_check.nix { self = self; pkgs = pkgs;};
|
||||
switchmon = import ./wm-controls/switchmon.nix {
|
||||
self = self;
|
||||
pkgs = pkgs;
|
||||
@@ -51,20 +50,56 @@
|
||||
};
|
||||
chpaper = import ./wm-controls/chpaper.nix {pkgs = pkgs;};
|
||||
in {
|
||||
home.packages = [
|
||||
chpaper
|
||||
chscheme
|
||||
keyring
|
||||
garbage-collect
|
||||
invoke
|
||||
rebuild
|
||||
nsp
|
||||
runbg
|
||||
scheck
|
||||
splash
|
||||
switchmon
|
||||
moveonscreen
|
||||
toolbelt
|
||||
viconf
|
||||
];
|
||||
options = {
|
||||
pagedmovScripts.enable = lib.mkEnableOption "enables pagedmov's scripts";
|
||||
|
||||
pagedmovScripts.commandScripts.invoke.enable =
|
||||
lib.mkEnableOption "enables the invoke command";
|
||||
pagedmovScripts.commandScripts.runbg.enable =
|
||||
lib.mkEnableOption "enables the runbg command - written by FrostPhoenix";
|
||||
pagedmovScripts.commandScripts.splash.enable =
|
||||
lib.mkEnableOption "enables the splash screen when opening a terminal";
|
||||
pagedmovScripts.commandScripts.toolbelt.enable =
|
||||
lib.mkEnableOption "enables the toolbelt command";
|
||||
pagedmovScripts.commandScripts.viconf.enable =
|
||||
lib.mkEnableOption "enables the viconf command";
|
||||
|
||||
pagedmovScripts.hyprlandControls.chpaper.enable =
|
||||
lib.mkEnableOption "enables the chpaper command";
|
||||
pagedmovScripts.hyprlandControls.scheck.enable =
|
||||
lib.mkEnableOption "enables the chpaper command";
|
||||
pagedmovScripts.hyprlandControls.chscheme.enable =
|
||||
lib.mkEnableOption "enables the chscheme command";
|
||||
pagedmovScripts.hyprlandControls.keyring.enable =
|
||||
lib.mkEnableOption "enables the keyring command";
|
||||
pagedmovScripts.hyprlandControls.moveonscreen.enable =
|
||||
lib.mkEnableOption "enables the moveonscreen command, makes sure that the edges of floating windows are always on screen";
|
||||
pagedmovScripts.hyprlandControls.switchmon.enable =
|
||||
lib.mkEnableOption "moves your cursor to the center of your second monitor; currently only supports two monitors";
|
||||
|
||||
pagedmovScripts.nixShortcuts.garbage-collect.enable =
|
||||
lib.mkEnableOption "enables the garbage-collect script, runs nixos garbage collection and empties the gtrash bin";
|
||||
pagedmovScripts.nixShortcuts.nsp.enable =
|
||||
lib.mkEnableOption "enables nsp, essentially an alias for 'nix-shell -p'";
|
||||
pagedmovScripts.nixShortcuts.rebuild.enable =
|
||||
lib.mkEnableOption "enables rebuild, an alias for 'sudo nixos-rebuild switch --flake $FLAKEPATH#$(hostname)'";
|
||||
};
|
||||
config = lib.mkIf config.pagedmovScripts.enable {
|
||||
home.packages = lib.optionals config.pagedmovScripts.commandScripts.invoke.enable [ invoke ]
|
||||
++ lib.optionals config.pagedmovScripts.commandScripts.runbg.enable [ runbg ]
|
||||
++ lib.optionals config.pagedmovScripts.commandScripts.splash.enable [ splash ]
|
||||
++ lib.optionals config.pagedmovScripts.commandScripts.toolbelt.enable [ toolbelt ]
|
||||
++ lib.optionals config.pagedmovScripts.commandScripts.viconf.enable [ viconf ]
|
||||
|
||||
++ lib.optionals config.pagedmovScripts.hyprlandControls.chpaper.enable [ chpaper ]
|
||||
++ lib.optionals config.pagedmovScripts.hyprlandControls.chpaper.enable [ scheck ]
|
||||
++ lib.optionals config.pagedmovScripts.hyprlandControls.chscheme.enable [ chscheme ]
|
||||
++ lib.optionals config.pagedmovScripts.hyprlandControls.keyring.enable [ keyring ]
|
||||
++ lib.optionals config.pagedmovScripts.hyprlandControls.moveonscreen.enable [ moveonscreen ]
|
||||
++ lib.optionals config.pagedmovScripts.hyprlandControls.switchmon.enable [ switchmon ]
|
||||
|
||||
++ lib.optionals config.pagedmovScripts.nixShortcuts.garbage-collect.enable [ garbage-collect ]
|
||||
++ lib.optionals config.pagedmovScripts.nixShortcuts.nsp.enable [ nsp ]
|
||||
++ lib.optionals config.pagedmovScripts.nixShortcuts.rebuild.enable [ rebuild ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,29 +1,34 @@
|
||||
{...}: {
|
||||
environment.etc."issue".text = ''
|
||||
{lib, config, ...}: {
|
||||
options = {
|
||||
issue.enable = lib.mkEnableOption "enables custom /etc/issue splash screen for the tty";
|
||||
};
|
||||
config = lib.mkIf config.issue.enable {
|
||||
environment.etc."issue".text = ''
|
||||
|
||||
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒ ▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒ ▒▒▒▒ \e[38;5;27m ▓▓▓
|
||||
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓ ▓▓ ▓▓▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\e[38;5;81m▒▒▒▒▒▒ \e[38;5;27m▓▓ \e[38;5;27m ▓▓▓▓▓ ▓▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓ \e[38;5;27m ▓▓▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒ \e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒ ▒▒▒▒ ▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒ \e[38;5;81m▒▒▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;81m▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒
|
||||
\e[38;5;81m ▒▒▒▒▒▒▒▒▒\e[38;5;27m \e[38;5;27m▓▓▓▓▓▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒\e[38;5;27m▓▓ \e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓▓ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒
|
||||
\e[38;5;81m▒▒▒ \e[38;5;27m▓▓▓▓\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ \e[38;5;81m ▒▒▒▒ ▒▒▒▒ ▒▒▒▒
|
||||
\e[38;5;81m▒▒ \e[38;5;27m▓▓▓▓▓▓\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓▓▓▓▓ \e[38;5;81m▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓ ▓▓▓▓ \e[38;5;81m▒▒▒▒ \e[38;5;27m ▓▓ ▓▓▓ ▓▓▓ ▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓ ▓▓▓▓ \e[38;5;81m▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒ ▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒ ▒▒▒▒ \e[38;5;27m ▓▓▓
|
||||
\e[38;5;27m▓▓▓▓ \e[38;5;81m▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓ ▓▓ ▓▓▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\e[38;5;81m▒▒▒▒▒▒ \e[38;5;27m▓▓ \e[38;5;27m ▓▓▓▓▓ ▓▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓\e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓ \e[38;5;27m ▓▓▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒ ▒▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒ \e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒ ▒▒▒▒ ▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒ \e[38;5;81m▒▒▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;81m▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒
|
||||
\e[38;5;81m ▒▒▒▒▒▒▒▒▒\e[38;5;27m \e[38;5;27m▓▓▓▓▓▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒\e[38;5;27m▓▓ \e[38;5;27m▓▓▓▓▓▓▓▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒\e[38;5;27m▓▓▓▓ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒▒
|
||||
\e[38;5;81m▒▒▒▒ \e[38;5;27m▓▓▓▓ \e[38;5;27m▓▓▓▓ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓ \e[38;5;81m ▒▒▒ ▒▒▒ ▒▒▒▒
|
||||
\e[38;5;81m▒▒▒ \e[38;5;27m▓▓▓▓\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓▓ ▓▓▓ ▓▓▓▓▓▓▓▓ \e[38;5;81m ▒▒▒▒ ▒▒▒▒ ▒▒▒▒
|
||||
\e[38;5;81m▒▒ \e[38;5;27m▓▓▓▓▓▓\e[38;5;81m▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓▓▓▓▓ \e[38;5;81m▒▒▒▒ \e[38;5;27m ▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓▓ ▓▓▓▓ ▓▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓ ▓▓▓▓ \e[38;5;81m▒▒▒▒ \e[38;5;27m ▓▓ ▓▓▓ ▓▓▓ ▓▓▓ ▓▓▓ \e[38;5;81m ▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
|
||||
\e[38;5;27m▓▓▓▓ ▓▓▓▓ \e[38;5;81m▒▒▒▒
|
||||
|
||||
\e[1;32mSystem Maintainer\e[0m: Kyler Clay
|
||||
\e[1;32mContact\e[0m: kylerclay@proton.me
|
||||
470-403-8522
|
||||
\e[1;32mSystem Maintainer\e[0m: Kyler Clay
|
||||
\e[1;32mContact\e[0m: kylerclay@proton.me
|
||||
470-403-8522
|
||||
|
||||
Run '\e[1;35mnixos-help\e[0m' for the NixOS manual.
|
||||
Run '\e[1;35mHyprland\e[0m' to enter the desktop environment.
|
||||
'';
|
||||
Run '\e[1;35mnixos-help\e[0m' for the NixOS manual.
|
||||
Run '\e[1;35mHyprland\e[0m' to enter the desktop environment.
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
||||
21
modules/sys/environment/nix.nix
Normal file
21
modules/sys/environment/nix.nix
Normal file
@@ -0,0 +1,21 @@
|
||||
{lib, config, ... }: {
|
||||
options = {
|
||||
nixSettings.enable = lib.mkEnableOption "enables my nixos settings";
|
||||
};
|
||||
config = lib.mkIf config.nixSettings.enable {
|
||||
nix = {
|
||||
settings = {
|
||||
auto-optimise-store = true;
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
substituters = ["https://nix-gaming.cachix.org"];
|
||||
};
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = "--delete-older-than 7d";
|
||||
};
|
||||
};
|
||||
time.timeZone = "America/New_York";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
};
|
||||
}
|
||||
@@ -1,24 +1,30 @@
|
||||
{
|
||||
pkgs,
|
||||
self,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = [
|
||||
(
|
||||
pkgs.catppuccin-sddm.override {
|
||||
flavor = "mocha";
|
||||
font = "JetBrains Mono Nerd Font";
|
||||
fontSize = "14";
|
||||
loginBackground = true;
|
||||
background = "${self}/assets/wallpapers/dark-waves.jpg";
|
||||
}
|
||||
)
|
||||
];
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
theme = "catppuccin-mocha";
|
||||
package = pkgs.kdePackages.sddm;
|
||||
options = {
|
||||
sddmOpts.enable = lib.mkEnableOption "enables custom sddm configuration";
|
||||
};
|
||||
config = lib.mkIf config.sddmOpts.enable {
|
||||
environment.systemPackages = [
|
||||
(
|
||||
pkgs.catppuccin-sddm.override {
|
||||
flavor = "mocha";
|
||||
font = "JetBrains Mono Nerd Font";
|
||||
fontSize = "14";
|
||||
loginBackground = true;
|
||||
background = "${self}/assets/wallpapers/dark-waves.jpg";
|
||||
}
|
||||
)
|
||||
];
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
theme = "catppuccin-mocha";
|
||||
package = pkgs.kdePackages.sddm;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -2,44 +2,51 @@
|
||||
pkgs,
|
||||
scheme,
|
||||
wallpaper,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
stylix = {
|
||||
enable = true;
|
||||
base16Scheme = scheme;
|
||||
image = wallpaper;
|
||||
polarity = "dark";
|
||||
autoEnable = true;
|
||||
opacity.terminal = 0.5;
|
||||
targets = {
|
||||
console.enable = true;
|
||||
feh.enable = true;
|
||||
grub.enable = true;
|
||||
gtk.enable = true;
|
||||
nixos-icons.enable = true;
|
||||
};
|
||||
cursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Ice";
|
||||
};
|
||||
fonts = {
|
||||
monospace = {
|
||||
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||
name = "JetBrains Mono Nerd Font";
|
||||
options = {
|
||||
stylixOpts.enable = lib.mkEnableOption "enables custom stylix options";
|
||||
};
|
||||
config = lib.mkIf config.stylixOpts.enable {
|
||||
stylix = {
|
||||
enable = true;
|
||||
base16Scheme = scheme;
|
||||
image = wallpaper;
|
||||
polarity = "dark";
|
||||
autoEnable = true;
|
||||
opacity.terminal = 0.5;
|
||||
targets = {
|
||||
console.enable = true;
|
||||
feh.enable = true;
|
||||
grub.enable = true;
|
||||
gtk.enable = true;
|
||||
nixos-icons.enable = true;
|
||||
};
|
||||
sansSerif = {
|
||||
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||
name = "JetBrains Mono Nerd Font";
|
||||
cursor = {
|
||||
package = pkgs.bibata-cursors;
|
||||
name = "Bibata-Modern-Ice";
|
||||
};
|
||||
serif = {
|
||||
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||
name = "JetBrains Mono Nerd Font";
|
||||
};
|
||||
sizes = {
|
||||
desktop = 10;
|
||||
applications = 14;
|
||||
terminal = 14;
|
||||
popups = 16;
|
||||
fonts = {
|
||||
monospace = {
|
||||
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||
name = "JetBrains Mono Nerd Font";
|
||||
};
|
||||
sansSerif = {
|
||||
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||
name = "JetBrains Mono Nerd Font";
|
||||
};
|
||||
serif = {
|
||||
package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
|
||||
name = "JetBrains Mono Nerd Font";
|
||||
};
|
||||
sizes = {
|
||||
desktop = 10;
|
||||
applications = 14;
|
||||
terminal = 14;
|
||||
popups = 16;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
{pkgs, ...}: {
|
||||
boot = {
|
||||
loader.systemd-boot.enable = true;
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
loader.systemd-boot.configurationLimit = 10;
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
{pkgs, lib, config, ...}: {
|
||||
options = {
|
||||
# make this enabled by default!!!
|
||||
bootLoader.enable = lib.mkEnableOption "enables bootloader config";
|
||||
};
|
||||
config = lib.mkIf config.bootLoader.enable {
|
||||
boot = {
|
||||
loader.systemd-boot.enable = true;
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
loader.systemd-boot.configurationLimit = 10;
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -10,5 +10,6 @@
|
||||
}: {
|
||||
imports =
|
||||
[(import ./bootloader.nix)]
|
||||
++ [(import ./network.nix)];
|
||||
++ [(import ./network.nix)]
|
||||
++ [(import ./powerprofiles.nix)];
|
||||
}
|
||||
|
||||
@@ -1,20 +1,24 @@
|
||||
{host, ...}: let
|
||||
{host, lib, config, ...}: let
|
||||
desktop = host == "oganesson";
|
||||
in {
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
hostName =
|
||||
if desktop
|
||||
then "oganesson"
|
||||
else "mercury";
|
||||
hosts = {
|
||||
"192.168.1.201" = ["glasshaus"];
|
||||
"192.168.1.111" = ["argon"];
|
||||
"192.168.1.223" = ["mercury"];
|
||||
};
|
||||
firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [30000];
|
||||
options = {
|
||||
networkModule.enable = lib.mkEnableOption "enables network configuration";
|
||||
};
|
||||
config = lib.mkIf config.networkModule.enable {
|
||||
networking = {
|
||||
networkmanager.enable = true;
|
||||
hostName =
|
||||
if desktop
|
||||
then "oganesson"
|
||||
else "mercury";
|
||||
hosts = {
|
||||
"192.168.1.201" = ["xenon"];
|
||||
"192.168.1.111" = ["argon"];
|
||||
"192.168.1.223" = ["mercury"];
|
||||
};
|
||||
firewall = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
51
modules/sys/hardware/powerprofiles.nix
Normal file
51
modules/sys/hardware/powerprofiles.nix
Normal file
@@ -0,0 +1,51 @@
|
||||
{lib, config, ... }: {
|
||||
options = {
|
||||
powerProfiles.enable = lib.mkEnableOption "enables power profiles";
|
||||
};
|
||||
config = lib.mkIf config.powerProfiles.enable {
|
||||
services = {
|
||||
keyd = {
|
||||
enable = true;
|
||||
keyboards.default = {
|
||||
ids = ["*"];
|
||||
settings.main = {
|
||||
capslock = "esc";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
power-profiles-daemon.enable = true;
|
||||
|
||||
upower = {
|
||||
enable = true;
|
||||
percentageLow = 20;
|
||||
percentageCritical = 5;
|
||||
percentageAction = 3;
|
||||
criticalPowerAction = "PowerOff";
|
||||
};
|
||||
|
||||
tlp.settings = {
|
||||
CPU_ENERGY_PERF_POLICY_ON_AC = "power";
|
||||
CPU_ENERGY_PERF_POLICY_ON_BAT = "power";
|
||||
|
||||
CPU_BOOST_ON_AC = 1;
|
||||
CPU_BOOST_ON_BAT = 1;
|
||||
|
||||
CPU_HWP_DYN_BOOST_ON_AC = 1;
|
||||
CPU_HWP_DYN_BOOST_ON_BAT = 1;
|
||||
|
||||
PLATFORM_PROFILE_ON_AC = "performance";
|
||||
PLATFORM_PROFILE_ON_BAT = "performance";
|
||||
|
||||
INTEL_GPU_MIN_FREQ_ON_AC = 500;
|
||||
INTEL_GPU_MIN_FREQ_ON_BAT = 500;
|
||||
# INTEL_GPU_MAX_FREQ_ON_AC=0;
|
||||
# INTEL_GPU_MAX_FREQ_ON_BAT=0;
|
||||
# INTEL_GPU_BOOST_FREQ_ON_AC=0;
|
||||
# INTEL_GPU_BOOST_FREQ_ON_BAT=0;
|
||||
|
||||
PCIE_ASPM_ON_AC = "default";
|
||||
PCIE_ASPM_ON_BAT = "powersupersave";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -18,5 +18,6 @@ in {
|
||||
++ [(import ./programs.nix)]
|
||||
++ [(import ./services.nix)]
|
||||
++ [(import ./nixvim)]
|
||||
++ [(import ./module-test.nix)]
|
||||
++ desktop_modules;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
{pkgs, ...}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
snes9x-gtk
|
||||
];
|
||||
{lib, config, pkgs, ...}: {
|
||||
options = {
|
||||
gamingPkgs.enable = lib.mkEnableOption "enables gaming packages";
|
||||
};
|
||||
config = lib.mkIf config.gamingPkgs.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
snes9x-gtk
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
{...}: {
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
{lib, config, ...}: {
|
||||
options = {
|
||||
steamOpts.enable = lib.mkEnableOption "enables steam configuration";
|
||||
};
|
||||
config = lib.mkIf config.steamOpts.enable {
|
||||
programs.steam = {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
11
modules/sys/software/module-test.nix
Normal file
11
modules/sys/software/module-test.nix
Normal file
@@ -0,0 +1,11 @@
|
||||
{ pkgs, lib, config, ... }:
|
||||
{
|
||||
options = {
|
||||
testmodule.enable = lib.mkEnableOption "enables test module";
|
||||
};
|
||||
config = lib.mkIf config.testmodule.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
hello
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,79 +1,79 @@
|
||||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
alejandra
|
||||
alsa-lib
|
||||
alsa-utils
|
||||
bc
|
||||
cava
|
||||
cabal-install
|
||||
clang
|
||||
clang-tools
|
||||
cliphist
|
||||
cmake
|
||||
fail2ban
|
||||
feh
|
||||
ffmpeg-full
|
||||
fuse
|
||||
git
|
||||
gnumake
|
||||
gst_all_1.gstreamer
|
||||
htop
|
||||
hyprland
|
||||
hyprland-workspaces
|
||||
hyprpicker
|
||||
imagemagick
|
||||
inetutils
|
||||
kitty
|
||||
libclang
|
||||
libcxx
|
||||
lolcat
|
||||
lsof
|
||||
lua-language-server
|
||||
luarocks
|
||||
mesa
|
||||
mpd
|
||||
mullvad
|
||||
mesa
|
||||
neofetch
|
||||
nh
|
||||
nix-index
|
||||
nix-output-monitor
|
||||
nix-prefetch-scripts
|
||||
nixos-option
|
||||
nix-search-cli
|
||||
nvd
|
||||
openssl
|
||||
p7zip
|
||||
jq
|
||||
pamixer
|
||||
parted
|
||||
pavucontrol
|
||||
pkg-config
|
||||
playerctl
|
||||
protonmail-bridge
|
||||
protontricks
|
||||
pyright
|
||||
socat
|
||||
sox
|
||||
stress
|
||||
tor
|
||||
tree
|
||||
unrar
|
||||
unzip
|
||||
usbutils
|
||||
vim
|
||||
vscode-langservers-extracted
|
||||
vulkan-loader
|
||||
wget
|
||||
wine
|
||||
wl-clipboard
|
||||
xpad
|
||||
libnotify
|
||||
file
|
||||
libvirt-glib
|
||||
];
|
||||
{lib, config, pkgs, inputs, ... }: {
|
||||
options = {
|
||||
sysPkgs.enable = lib.mkEnableOption "enables default system packages";
|
||||
};
|
||||
config = lib.mkIf config.sysPkgs.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
alejandra
|
||||
alsa-lib
|
||||
alsa-utils
|
||||
bc
|
||||
cava
|
||||
cabal-install
|
||||
clang
|
||||
clang-tools
|
||||
cliphist
|
||||
cmake
|
||||
fail2ban
|
||||
feh
|
||||
ffmpeg-full
|
||||
fuse
|
||||
git
|
||||
gnumake
|
||||
gst_all_1.gstreamer
|
||||
htop
|
||||
hyprland-workspaces
|
||||
hyprpicker
|
||||
imagemagick
|
||||
inetutils
|
||||
kitty
|
||||
libclang
|
||||
libcxx
|
||||
lolcat
|
||||
lsof
|
||||
lua-language-server
|
||||
luarocks
|
||||
mesa
|
||||
mpd
|
||||
mullvad
|
||||
mesa
|
||||
neofetch
|
||||
nh
|
||||
nix-index
|
||||
nix-output-monitor
|
||||
nix-prefetch-scripts
|
||||
nixos-option
|
||||
nix-search-cli
|
||||
nvd
|
||||
openssl
|
||||
p7zip
|
||||
jq
|
||||
pamixer
|
||||
parted
|
||||
pavucontrol
|
||||
pkg-config
|
||||
playerctl
|
||||
protonmail-bridge
|
||||
protontricks
|
||||
pyright
|
||||
socat
|
||||
sox
|
||||
stress
|
||||
tor
|
||||
tree
|
||||
unrar
|
||||
unzip
|
||||
usbutils
|
||||
vim
|
||||
vscode-langservers-extracted
|
||||
vulkan-loader
|
||||
wget
|
||||
wine
|
||||
wl-clipboard
|
||||
xpad
|
||||
libnotify
|
||||
file
|
||||
libvirt-glib
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,17 +1,22 @@
|
||||
{pkgs, ...}: {
|
||||
programs = {
|
||||
hyprland.enable = true;
|
||||
zsh.enable = true;
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [
|
||||
stdenv.cc.cc
|
||||
ffmpeg-full
|
||||
];
|
||||
};
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
{lib, config, pkgs, ...}: {
|
||||
options = {
|
||||
sysProgs.enable = lib.mkEnableOption "enables default system programs";
|
||||
};
|
||||
config = lib.mkIf config.sysProgs.enable {
|
||||
programs = {
|
||||
hyprland.enable = true;
|
||||
zsh.enable = true;
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs; [
|
||||
stdenv.cc.cc
|
||||
ffmpeg-full
|
||||
];
|
||||
};
|
||||
gnupg.agent = {
|
||||
enable = true;
|
||||
enableSSHSupport = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,19 +1,24 @@
|
||||
{...}: {
|
||||
services = {
|
||||
pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
wireplumber.enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
};
|
||||
udev.enable = true;
|
||||
dbus.enable = true;
|
||||
mullvad-vpn.enable = true;
|
||||
blueman.enable = true;
|
||||
openssh = {
|
||||
enable = true;
|
||||
allowSFTP = true;
|
||||
{lib, config, ...}: {
|
||||
options = {
|
||||
sysServices.enable = lib.mkEnableOption "enables default system services";
|
||||
};
|
||||
config = lib.mkIf config.sysServices.enable {
|
||||
services = {
|
||||
pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
wireplumber.enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
};
|
||||
udev.enable = true;
|
||||
dbus.enable = true;
|
||||
mullvad-vpn.enable = true;
|
||||
blueman.enable = true;
|
||||
openssh = {
|
||||
enable = true;
|
||||
allowSFTP = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
{username, ...}: {
|
||||
virtualisation.libvirtd.enable = true;
|
||||
programs.virt-manager.enable = true;
|
||||
{lib, config, username, ...}: {
|
||||
options = {
|
||||
virtOpts.enable = lib.mkEnableOption "enables virtualization";
|
||||
};
|
||||
config = lib.mkIf config.virtOpts.enable {
|
||||
virtualisation.libvirtd.enable = true;
|
||||
programs.virt-manager.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user