initial commit for module-refactor

This commit is contained in:
pagedmov
2024-11-01 21:01:52 -04:00
parent 7bee6ebce5
commit ff2535e7a7
62 changed files with 2819 additions and 2670 deletions

View File

@@ -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
];
}

View File

@@ -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"];};
#};
};
}

View 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"
];
};
};
};
};
}

View File

@@ -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"
];
};
};
};
}

View File

@@ -1,9 +0,0 @@
{
inputs,
host,
...
}: {
imports =
[(import ./hyprland.nix)]
++ [(import ./config.nix)];
}

View File

@@ -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;
};
}

View File

@@ -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;
#};
};
};
}

View File

@@ -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";
};
};
};
};

View File

@@ -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

View File

@@ -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;
};
}

View 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;
}
'';
};
};
}

View File

@@ -1,6 +0,0 @@
{...}: {
imports =
[(import ./waybar.nix)]
++ [(import ./settings.nix)]
++ [(import ./style.nix)];
}

View File

@@ -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;
};
};
}

View File

@@ -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;
}
'';
}

View File

@@ -1,8 +0,0 @@
{pkgs, ...}: {
programs.waybar = {
enable = true;
};
programs.waybar.package = pkgs.waybar.overrideAttrs (oa: {
mesonFlags = (oa.mesonFlags or []) ++ ["-Dexperimental=true"];
});
}

View File

@@ -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."
'';
};
};
}

View File

@@ -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"
'';
};
}

View 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;
}

View File

@@ -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}";

View File

@@ -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;
};
};
}

View File

@@ -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";
};
};
};
}

View File

@@ -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];
};
}

View File

@@ -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;
};
};
}

View File

@@ -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;
};
};
}

View File

@@ -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";
'';
};
};
}

View File

@@ -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";
};
};
}

View File

@@ -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;
};
};
}

View File

@@ -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}";
};
};
}

View File

@@ -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}
'';
};
}

View File

@@ -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";
};
};
};
}

View File

@@ -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;
};
};
}

View File

@@ -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 ];
};
}