diff --git a/config/fonts/JetBrainsMono.ttf b/config/fonts/JetBrainsMono.ttf
new file mode 100644
index 0000000..31e03a2
Binary files /dev/null and b/config/fonts/JetBrainsMono.ttf differ
diff --git a/config/fonts/NotoColorEmoji.ttf b/config/fonts/NotoColorEmoji.ttf
new file mode 100644
index 0000000..cf7a47e
Binary files /dev/null and b/config/fonts/NotoColorEmoji.ttf differ
diff --git a/config/fonts/Symbols-Regular.ttf b/config/fonts/Symbols-Regular.ttf
new file mode 100644
index 0000000..7ef73a9
Binary files /dev/null and b/config/fonts/Symbols-Regular.ttf differ
diff --git a/config/fonts/UniSans-Heavy.otf b/config/fonts/UniSans-Heavy.otf
new file mode 100644
index 0000000..facd333
Binary files /dev/null and b/config/fonts/UniSans-Heavy.otf differ
diff --git a/config/hyprland.nix b/config/hyprland.nix
index 3602ae0..0680ec0 100644
--- a/config/hyprland.nix
+++ b/config/hyprland.nix
@@ -1,11 +1,24 @@
-{ pkgs, config, lib, inputs, host, ... }:
+{
+ pkgs,
+ config,
+ lib,
+ inputs,
+ host,
+ ...
+}:
let
theme = config.colorScheme.palette;
hyprplugins = inputs.hyprland-plugins.packages.${pkgs.system};
- inherit (import ../hosts/${host}/variables.nix)
- browser borderAnim terminal extraMonitorSettings;
-in with lib; {
+ inherit (import ../hosts/${host}/variables.nix)
+ browser
+ borderAnim
+ terminal
+ extraMonitorSettings
+ ;
+in
+with lib;
+{
wayland.windowManager.hyprland = {
enable = true;
xwayland.enable = true;
@@ -13,178 +26,190 @@ in with lib; {
plugins = [
# hyprplugins.hyprtrails
];
- extraConfig = let
- modifier = "SUPER";
- in concatStrings [ ''
- monitor=,preferred,auto,1
- ${extraMonitorSettings}
- general {
- gaps_in = 6
- gaps_out = 8
- border_size = 2
- col.active_border = rgba(${theme.base0C}ff) rgba(${theme.base0D}ff) rgba(${theme.base0B}ff) rgba(${theme.base0E}ff) 45deg
- col.inactive_border = rgba(${theme.base00}cc) rgba(${theme.base01}cc) 45deg
- layout = dwindle
- resize_on_border = true
- }
+ extraConfig =
+ let
+ modifier = "SUPER";
+ in
+ concatStrings [
+ ''
+ monitor=,preferred,auto,1
+ ${extraMonitorSettings}
+ general {
+ gaps_in = 6
+ gaps_out = 8
+ border_size = 2
+ col.active_border = rgba(${theme.base0C}ff) rgba(${theme.base0D}ff) rgba(${theme.base0B}ff) rgba(${theme.base0E}ff) 45deg
+ col.inactive_border = rgba(${theme.base00}cc) rgba(${theme.base01}cc) 45deg
+ layout = dwindle
+ resize_on_border = true
+ }
- input {
- kb_layout = us
- kb_options = grp:alt_shift_toggle
- kb_options=caps:super
- follow_mouse = 1
- touchpad {
- natural_scroll = false
- }
- sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
- accel_profile = flat
- }
- env = NIXOS_OZONE_WL, 1
- env = NIXPKGS_ALLOW_UNFREE, 1
- env = XDG_CURRENT_DESKTOP, Hyprland
- env = XDG_SESSION_TYPE, wayland
- env = XDG_SESSION_DESKTOP, Hyprland
- env = GDK_BACKEND, wayland
- env = CLUTTER_BACKEND, wayland
- env = QT_QPA_PLATFORM, wayland
- env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1
- env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
- env = MOZ_ENABLE_WAYLAND, 1
- gestures {
- workspace_swipe = true
- workspace_swipe_fingers = 3
- }
- misc {
- mouse_move_enables_dpms = true
- key_press_enables_dpms = false
- }
- animations {
- enabled = yes
- bezier = wind, 0.05, 0.9, 0.1, 1.05
- bezier = winIn, 0.1, 1.1, 0.1, 1.1
- bezier = winOut, 0.3, -0.3, 0, 1
- bezier = liner, 1, 1, 1, 1
- animation = windows, 1, 6, wind, slide
- animation = windowsIn, 1, 6, winIn, slide
- animation = windowsOut, 1, 5, winOut, slide
- animation = windowsMove, 1, 5, wind, slide
- animation = border, 1, 1, liner
- ${if borderAnim == true then ''
- animation = borderangle, 1, 30, liner, loop
- '' else ''
- ''}
- animation = fade, 1, 10, default
- animation = workspaces, 1, 5, wind
- }
- decoration {
- rounding = 10
- drop_shadow = false
- blur {
- enabled = true
- size = 5
- passes = 3
- new_optimizations = on
- ignore_opacity = on
- }
- }
- plugin {
- hyprtrails {
- color = rgba(${theme.base0A}ff)
- }
- }
- exec-once = dbus-update-activation-environment --systemd --all
- exec-once = systemctl --user import-environment QT_QPA_PLATFORMTHEME WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
- exec-once = swww init
- exec-once = waybar
- exec-once = swaync
- exec-once = wallsetter
- exec-once = nm-applet --indicator
- dwindle {
- pseudotile = true
- preserve_split = true
- }
- master {
- new_is_master = true
- }
- bind = ${modifier},Return,exec,${terminal}
- bind = ${modifier}SHIFT,Return,exec,rofi-launcher
- bind = ${modifier}SHIFT,W,exec,web-search
- bind = ${modifier}SHIFT,N,exec,swaync-client -rs
- ${if browser == "google-chrome" then ''
- bind = ${modifier},W,exec,google-chrome-stable
- '' else ''
- bind = ${modifier},W,exec,${browser}
- ''}
- bind = ${modifier},E,exec,emopicker9000
- bind = ${modifier},S,exec,screenshootin
- bind = ${modifier},D,exec,discord
- bind = ${modifier},O,exec,obs
- bind = ${modifier},G,exec,gimp
- bind = ${modifier}SHIFT,G,exec,godot4
- bind = ${modifier},T,exec,thunar
- bind = ${modifier},M,exec,spotify
- bind = ${modifier},Q,killactive,
- bind = ${modifier},P,pseudo,
- bind = ${modifier}SHIFT,I,togglesplit,
- bind = ${modifier},F,fullscreen,
- bind = ${modifier}SHIFT,F,togglefloating,
- bind = ${modifier}SHIFT,C,exit,
- bind = ${modifier}SHIFT,left,movewindow,l
- bind = ${modifier}SHIFT,right,movewindow,r
- bind = ${modifier}SHIFT,up,movewindow,u
- bind = ${modifier}SHIFT,down,movewindow,d
- bind = ${modifier}SHIFT,h,movewindow,l
- bind = ${modifier}SHIFT,l,movewindow,r
- bind = ${modifier}SHIFT,k,movewindow,u
- bind = ${modifier}SHIFT,j,movewindow,d
- bind = ${modifier},left,movefocus,l
- bind = ${modifier},right,movefocus,r
- bind = ${modifier},up,movefocus,u
- bind = ${modifier},down,movefocus,d
- bind = ${modifier},h,movefocus,l
- bind = ${modifier},l,movefocus,r
- bind = ${modifier},k,movefocus,u
- bind = ${modifier},j,movefocus,d
- bind = ${modifier},1,workspace,1
- bind = ${modifier},2,workspace,2
- bind = ${modifier},3,workspace,3
- bind = ${modifier},4,workspace,4
- bind = ${modifier},5,workspace,5
- bind = ${modifier},6,workspace,6
- bind = ${modifier},7,workspace,7
- bind = ${modifier},8,workspace,8
- bind = ${modifier},9,workspace,9
- bind = ${modifier},0,workspace,10
- bind = ${modifier}SHIFT,SPACE,movetoworkspace,special
- bind = ${modifier},SPACE,togglespecialworkspace
- bind = ${modifier}SHIFT,1,movetoworkspace,1
- bind = ${modifier}SHIFT,2,movetoworkspace,2
- bind = ${modifier}SHIFT,3,movetoworkspace,3
- bind = ${modifier}SHIFT,4,movetoworkspace,4
- bind = ${modifier}SHIFT,5,movetoworkspace,5
- bind = ${modifier}SHIFT,6,movetoworkspace,6
- bind = ${modifier}SHIFT,7,movetoworkspace,7
- bind = ${modifier}SHIFT,8,movetoworkspace,8
- bind = ${modifier}SHIFT,9,movetoworkspace,9
- bind = ${modifier}SHIFT,0,movetoworkspace,10
- bind = ${modifier}CONTROL,right,workspace,e+1
- bind = ${modifier}CONTROL,left,workspace,e-1
- bind = ${modifier},mouse_down,workspace, e+1
- bind = ${modifier},mouse_up,workspace, e-1
- bindm = ${modifier},mouse:272,movewindow
- bindm = ${modifier},mouse:273,resizewindow
- bind = ALT,Tab,cyclenext
- bind = ALT,Tab,bringactivetotop
- bind = ,XF86AudioRaiseVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
- bind = ,XF86AudioLowerVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
- binde = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
- bind = ,XF86AudioPlay, exec, playerctl play-pause
- bind = ,XF86AudioPause, exec, playerctl play-pause
- bind = ,XF86AudioNext, exec, playerctl next
- bind = ,XF86AudioPrev, exec, playerctl previous
- bind = ,XF86MonBrightnessDown,exec,brightnessctl set 5%-
- bind = ,XF86MonBrightnessUp,exec,brightnessctl set +5%
- '' ];
+ input {
+ kb_layout = us
+ kb_options = grp:alt_shift_toggle
+ kb_options=caps:super
+ follow_mouse = 1
+ touchpad {
+ natural_scroll = false
+ }
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+ accel_profile = flat
+ }
+ env = NIXOS_OZONE_WL, 1
+ env = NIXPKGS_ALLOW_UNFREE, 1
+ env = XDG_CURRENT_DESKTOP, Hyprland
+ env = XDG_SESSION_TYPE, wayland
+ env = XDG_SESSION_DESKTOP, Hyprland
+ env = GDK_BACKEND, wayland
+ env = CLUTTER_BACKEND, wayland
+ env = QT_QPA_PLATFORM, wayland
+ env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1
+ env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
+ env = MOZ_ENABLE_WAYLAND, 1
+ gestures {
+ workspace_swipe = true
+ workspace_swipe_fingers = 3
+ }
+ misc {
+ mouse_move_enables_dpms = true
+ key_press_enables_dpms = false
+ }
+ animations {
+ enabled = yes
+ bezier = wind, 0.05, 0.9, 0.1, 1.05
+ bezier = winIn, 0.1, 1.1, 0.1, 1.1
+ bezier = winOut, 0.3, -0.3, 0, 1
+ bezier = liner, 1, 1, 1, 1
+ animation = windows, 1, 6, wind, slide
+ animation = windowsIn, 1, 6, winIn, slide
+ animation = windowsOut, 1, 5, winOut, slide
+ animation = windowsMove, 1, 5, wind, slide
+ animation = border, 1, 1, liner
+ ${
+ if borderAnim == true then
+ ''
+ animation = borderangle, 1, 30, liner, loop
+ ''
+ else
+ ''''
+ }
+ animation = fade, 1, 10, default
+ animation = workspaces, 1, 5, wind
+ }
+ decoration {
+ rounding = 10
+ drop_shadow = false
+ blur {
+ enabled = true
+ size = 5
+ passes = 3
+ new_optimizations = on
+ ignore_opacity = on
+ }
+ }
+ plugin {
+ hyprtrails {
+ color = rgba(${theme.base0A}ff)
+ }
+ }
+ exec-once = dbus-update-activation-environment --systemd --all
+ exec-once = systemctl --user import-environment QT_QPA_PLATFORMTHEME WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+ exec-once = swww init
+ exec-once = waybar
+ exec-once = swaync
+ exec-once = nm-applet --indicator
+ exec-once = lxqt-policykit-agent
+ dwindle {
+ pseudotile = true
+ preserve_split = true
+ }
+ master {
+ new_is_master = true
+ }
+ bind = ${modifier},Return,exec,${terminal}
+ bind = ${modifier}SHIFT,Return,exec,rofi-launcher
+ bind = ${modifier}SHIFT,W,exec,web-search
+ bind = ${modifier}SHIFT,N,exec,swaync-client -rs
+ ${
+ if browser == "google-chrome" then
+ ''
+ bind = ${modifier},W,exec,google-chrome-stable
+ ''
+ else
+ ''
+ bind = ${modifier},W,exec,${browser}
+ ''
+ }
+ bind = ${modifier},E,exec,emopicker9000
+ bind = ${modifier},S,exec,screenshootin
+ bind = ${modifier},D,exec,discord
+ bind = ${modifier},O,exec,obs
+ bind = ${modifier},G,exec,gimp
+ bind = ${modifier}SHIFT,G,exec,godot4
+ bind = ${modifier},T,exec,thunar
+ bind = ${modifier},M,exec,spotify
+ bind = ${modifier},Q,killactive,
+ bind = ${modifier},P,pseudo,
+ bind = ${modifier}SHIFT,I,togglesplit,
+ bind = ${modifier},F,fullscreen,
+ bind = ${modifier}SHIFT,F,togglefloating,
+ bind = ${modifier}SHIFT,C,exit,
+ bind = ${modifier}SHIFT,left,movewindow,l
+ bind = ${modifier}SHIFT,right,movewindow,r
+ bind = ${modifier}SHIFT,up,movewindow,u
+ bind = ${modifier}SHIFT,down,movewindow,d
+ bind = ${modifier}SHIFT,h,movewindow,l
+ bind = ${modifier}SHIFT,l,movewindow,r
+ bind = ${modifier}SHIFT,k,movewindow,u
+ bind = ${modifier}SHIFT,j,movewindow,d
+ bind = ${modifier},left,movefocus,l
+ bind = ${modifier},right,movefocus,r
+ bind = ${modifier},up,movefocus,u
+ bind = ${modifier},down,movefocus,d
+ bind = ${modifier},h,movefocus,l
+ bind = ${modifier},l,movefocus,r
+ bind = ${modifier},k,movefocus,u
+ bind = ${modifier},j,movefocus,d
+ bind = ${modifier},1,workspace,1
+ bind = ${modifier},2,workspace,2
+ bind = ${modifier},3,workspace,3
+ bind = ${modifier},4,workspace,4
+ bind = ${modifier},5,workspace,5
+ bind = ${modifier},6,workspace,6
+ bind = ${modifier},7,workspace,7
+ bind = ${modifier},8,workspace,8
+ bind = ${modifier},9,workspace,9
+ bind = ${modifier},0,workspace,10
+ bind = ${modifier}SHIFT,SPACE,movetoworkspace,special
+ bind = ${modifier},SPACE,togglespecialworkspace
+ bind = ${modifier}SHIFT,1,movetoworkspace,1
+ bind = ${modifier}SHIFT,2,movetoworkspace,2
+ bind = ${modifier}SHIFT,3,movetoworkspace,3
+ bind = ${modifier}SHIFT,4,movetoworkspace,4
+ bind = ${modifier}SHIFT,5,movetoworkspace,5
+ bind = ${modifier}SHIFT,6,movetoworkspace,6
+ bind = ${modifier}SHIFT,7,movetoworkspace,7
+ bind = ${modifier}SHIFT,8,movetoworkspace,8
+ bind = ${modifier}SHIFT,9,movetoworkspace,9
+ bind = ${modifier}SHIFT,0,movetoworkspace,10
+ bind = ${modifier}CONTROL,right,workspace,e+1
+ bind = ${modifier}CONTROL,left,workspace,e-1
+ bind = ${modifier},mouse_down,workspace, e+1
+ bind = ${modifier},mouse_up,workspace, e-1
+ bindm = ${modifier},mouse:272,movewindow
+ bindm = ${modifier},mouse:273,resizewindow
+ bind = ALT,Tab,cyclenext
+ bind = ALT,Tab,bringactivetotop
+ bind = ,XF86AudioRaiseVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
+ bind = ,XF86AudioLowerVolume,exec,wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+ binde = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+ bind = ,XF86AudioPlay, exec, playerctl play-pause
+ bind = ,XF86AudioPause, exec, playerctl play-pause
+ bind = ,XF86AudioNext, exec, playerctl next
+ bind = ,XF86AudioPrev, exec, playerctl previous
+ bind = ,XF86MonBrightnessDown,exec,brightnessctl set 5%-
+ bind = ,XF86MonBrightnessUp,exec,brightnessctl set +5%
+ ''
+ ];
};
}
-
diff --git a/config/wallpapers/zaney-wallpaper.jpg b/config/wallpapers/zaney-wallpaper.jpg
new file mode 100644
index 0000000..b1f40db
Binary files /dev/null and b/config/wallpapers/zaney-wallpaper.jpg differ
diff --git a/config/waybar.nix b/config/waybar.nix
new file mode 100644
index 0000000..13a19c8
--- /dev/null
+++ b/config/waybar.nix
@@ -0,0 +1,384 @@
+{
+ pkgs,
+ config,
+ lib,
+ host,
+ ...
+}:
+
+let
+ palette = config.colorScheme.palette;
+ betterTransition = "all 0.3s cubic-bezier(.55,-0.68,.48,1.682)";
+ inherit (import ../hosts/${host}/variables.nix) clock24h;
+in
+with lib;
+{
+ # Configure & Theme Waybar
+ programs.waybar = {
+ enable = true;
+ package = pkgs.waybar;
+ settings = [
+ {
+ layer = "top";
+ position = "top";
+ modules-center = [ "hyprland/workspaces" ];
+ modules-left = [
+ "custom/startmenu"
+ "hyprland/window"
+ "pulseaudio"
+ "cpu"
+ "memory"
+ ];
+ modules-right = [
+ "custom/hyprbindings"
+ "custom/exit"
+ "idle_inhibitor"
+ "custom/themeselector"
+ "custom/notification"
+ "battery"
+ "clock"
+ "tray"
+ ];
+
+ "hyprland/workspaces" = {
+ format = "{name}";
+ format-icons = {
+ default = " ";
+ active = " ";
+ urgent = " ";
+ };
+ on-scroll-up = "hyprctl dispatch workspace e+1";
+ on-scroll-down = "hyprctl dispatch workspace e-1";
+ };
+ "clock" = {
+ format = if clock24h == true then '' {:L%H:%M}'' else '' {:L%I:%M %p}'';
+ tooltip = true;
+ tooltip-format = "{:%A, %d.%B %Y }
{calendar}";
+ };
+ "hyprland/window" = {
+ max-length = 25;
+ separate-outputs = false;
+ rewrite = {
+ "" = " 🙈 No Windows? ";
+ };
+ };
+ "memory" = {
+ interval = 5;
+ format = " {}%";
+ tooltip = true;
+ };
+ "cpu" = {
+ interval = 5;
+ format = " {usage:2}%";
+ tooltip = true;
+ };
+ "disk" = {
+ format = " {free}";
+ tooltip = true;
+ };
+ "network" = {
+ format-icons = [
+ ""
+ ""
+ ""
+ ""
+ ""
+ ];
+ format-ethernet = " {bandwidthDownOctets}";
+ format-wifi = "{icon} {signalStrength}%";
+ format-disconnected = "";
+ tooltip = false;
+ };
+ "tray" = {
+ spacing = 12;
+ };
+ "pulseaudio" = {
+ format = "{icon} {volume}% {format_source}";
+ format-bluetooth = "{volume}% {icon} {format_source}";
+ format-bluetooth-muted = " {icon} {format_source}";
+ format-muted = " {format_source}";
+ format-source = " {volume}%";
+ format-source-muted = "";
+ format-icons = {
+ headphone = "";
+ hands-free = "";
+ headset = "";
+ phone = "";
+ portable = "";
+ car = "";
+ default = [
+ ""
+ ""
+ ""
+ ];
+ };
+ on-click = "sleep 0.1 && pavucontrol";
+ };
+ "custom/themeselector" = {
+ tooltip = false;
+ format = "";
+ on-click = "sleep 0.1 && theme-selector";
+ };
+ "custom/exit" = {
+ tooltip = false;
+ format = "";
+ on-click = "sleep 0.1 && wlogout";
+ };
+ "custom/startmenu" = {
+ tooltip = false;
+ format = " ";
+ # exec = "rofi -show drun";
+ on-click = "sleep 0.1 && rofi-launcher";
+ };
+ "custom/hyprbindings" = {
+ tooltip = false;
+ format = " Bindings";
+ on-click = "sleep 0.1 && list-hypr-bindings";
+ };
+ "idle_inhibitor" = {
+ format = "{icon}";
+ format-icons = {
+ activated = "";
+ deactivated = "";
+ };
+ tooltip = "true";
+ };
+ "custom/notification" = {
+ tooltip = false;
+ format = "{icon} {}";
+ format-icons = {
+ notification = "";
+ none = "";
+ dnd-notification = "";
+ dnd-none = "";
+ inhibited-notification = "";
+ inhibited-none = "";
+ dnd-inhibited-notification = "";
+ dnd-inhibited-none = "";
+ };
+ return-type = "json";
+ exec-if = "which swaync-client";
+ exec = "swaync-client -swb";
+ on-click = "sleep 0.1 && task-waybar";
+ escape = true;
+ };
+ "battery" = {
+ states = {
+ warning = 30;
+ critical = 15;
+ };
+ format = "{icon} {capacity}%";
+ format-charging = " {capacity}%";
+ format-plugged = " {capacity}%";
+ format-icons = [
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ""
+ ];
+ on-click = "";
+ tooltip = false;
+ };
+ }
+ ];
+ style = concatStrings [
+ ''
+ * {
+ font-size: 16px;
+ font-family: JetBrainsMono Nerd Font, Font Awesome, sans-serif;
+ font-weight: bold;
+ }
+ window#waybar {
+ background-color: #${palette.base00};
+ border-bottom: 1px solid rgba(26,27,38,0);
+ border-radius: 0px;
+ color: #${palette.base0F};
+ }
+ #workspaces {
+ background: #${palette.base01};
+ margin: 2px;
+ padding: 0px 1px;
+ border-radius: 15px;
+ border: 0px;
+ font-style: normal;
+ color: #${palette.base00};
+ }
+ #workspaces button {
+ padding: 0px 5px;
+ margin: 4px 3px;
+ border-radius: 10px;
+ border: 0px;
+ color: #${palette.base00};
+ background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09});
+ background-size: 300% 300%;
+ animation: gradient_horizontal 15s ease infinite;
+ opacity: 0.5;
+ transition: ${betterTransition};
+ }
+ #workspaces button.active {
+ padding: 0px 5px;
+ margin: 4px 3px;
+ border-radius: 10px;
+ border: 0px;
+ color: #${palette.base00};
+ background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09});
+ background-size: 300% 300%;
+ animation: gradient_horizontal 15s ease infinite;
+ transition: ${betterTransition};
+ opacity: 1.0;
+ min-width: 40px;
+ }
+ #workspaces button:hover {
+ border-radius: 10px;
+ color: #${palette.base00};
+ background: linear-gradient(45deg, #${palette.base0E}, #${palette.base0F}, #${palette.base0D}, #${palette.base09});
+ background-size: 300% 300%;
+ animation: gradient_horizontal 15s ease infinite;
+ opacity: 0.8;
+ transition: ${betterTransition};
+ }
+ @keyframes gradient_horizontal {
+ 0% {
+ background-position: 0% 50%;
+ }
+ 50% {
+ background-position: 100% 50%;
+ }
+ 100% {
+ background-position: 0% 50%;
+ }
+ }
+ @keyframes swiping {
+ 0% {
+ background-position: 0% 200%;
+ }
+ 100% {
+ background-position: 200% 200%;
+ }
+ }
+ tooltip {
+ background: #${palette.base00};
+ border: 1px solid #${palette.base0E};
+ border-radius: 10px;
+ }
+ tooltip label {
+ color: #${palette.base07};
+ }
+ #window {
+ margin: 4px;
+ padding: 2px 10px;
+ color: #${palette.base05};
+ background: #${palette.base01};
+ border-radius: 10px;
+ }
+ #memory {
+ color: #${palette.base0F};
+ background: #${palette.base01};
+ margin: 4px;
+ padding: 2px 10px;
+ border-radius: 10px;
+ }
+ #clock {
+ color: #${palette.base01};
+ background: linear-gradient(45deg, #${palette.base0C}, #${palette.base0F}, #${palette.base0B}, #${palette.base08});
+ background-size: 300% 300%;
+ animation: gradient_horizontal 15s ease infinite;
+ margin: 4px;
+ padding: 2px 10px;
+ border-radius: 10px;
+ }
+ #cpu {
+ color: #${palette.base07};
+ background: #${palette.base01};
+ margin: 4px;
+ padding: 2px 10px;
+ border-radius: 10px;
+ }
+ #disk {
+ color: #${palette.base03};
+ background: #${palette.base01};
+ margin: 4px;
+ padding: 2px 10px;
+ border-radius: 10px;
+ }
+ #battery {
+ color: #${palette.base08};
+ background: #${palette.base01};
+ margin: 4px;
+ padding: 2px 10px;
+ border-radius: 10px;
+ }
+ #network {
+ color: #${palette.base09};
+ background: #${palette.base01};
+ margin: 4px;
+ padding: 2px 10px;
+ border-radius: 10px;
+ }
+ #custom-hyprbindings {
+ color: #${palette.base0E};
+ background: #${palette.base01};
+ margin: 4px;
+ padding: 2px 10px;
+ border-radius: 10px;
+ }
+ #tray {
+ color: #${palette.base05};
+ background: #${palette.base01};
+ margin: 4px;
+ padding: 2px 10px;
+ border-radius: 10px;
+ }
+ #pulseaudio {
+ color: #${palette.base0D};
+ background: #${palette.base01};
+ margin: 4px;
+ padding: 2px 10px;
+ border-radius: 10px;
+ }
+ #custom-notification {
+ color: #${palette.base0C};
+ background: #${palette.base01};
+ margin: 4px;
+ padding: 2px 10px;
+ border-radius: 10px;
+ }
+ #custom-themeselector {
+ color: #${palette.base0D};
+ background: #${palette.base01};
+ margin: 4px 0px;
+ padding: 2px 10px 2px 5px;
+ border-radius: 0px 10px 10px 0px;
+ }
+ #custom-startmenu {
+ color: #${palette.base00};
+ background: linear-gradient(45deg, #${palette.base09}, #${palette.base03}, #${palette.base0C}, #${palette.base07});
+ background-size: 300% 300%;
+ animation: gradient_horizontal 15s ease infinite;
+ margin: 4px;
+ padding: 2px 10px;
+ border-radius: 10px;
+ }
+ #idle_inhibitor {
+ color: #${palette.base09};
+ background: #${palette.base01};
+ margin: 4px 0px;
+ padding: 2px 14px;
+ border-radius: 0px;
+ }
+ #custom-exit {
+ color: #${palette.base0E};
+ background: #${palette.base01};
+ border-radius: 10px 0px 0px 10px;
+ margin: 4px 0px;
+ padding: 2px 5px 2px 15px;
+ } ''
+ ];
+ };
+}
diff --git a/flake.nix b/flake.nix
index 61e91f2..c074b7e 100644
--- a/flake.nix
+++ b/flake.nix
@@ -14,11 +14,7 @@
};
outputs =
- inputs@{
- nixpkgs,
- home-manager,
- ...
- }:
+ inputs@{ nixpkgs, home-manager, ... }:
let
system = "x86_64-linux";
host = "familypc";
diff --git a/hosts/familypc/config.nix b/hosts/familypc/config.nix
index 1d60b38..9275036 100644
--- a/hosts/familypc/config.nix
+++ b/hosts/familypc/config.nix
@@ -7,6 +7,9 @@
...
}:
+let
+ inherit (import ./variables.nix) browser;
+in
{
imports = [
./hardware.nix
@@ -16,7 +19,9 @@
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
- boot.kernel.sysctl = { "vm.max_map_count" = 2147483642; };
+ boot.kernel.sysctl = {
+ "vm.max_map_count" = 2147483642;
+ };
boot.tmp.useTmpfs = false;
boot.tmp.tmpfsSize = "30%";
@@ -24,8 +29,7 @@
boot.kernelModules = [ "v4l2loopback" ];
boot.extraModulePackages = [ config.boot.kernelPackages.v4l2loopback ];
- networking.hostName = "${host}"; # Define your hostname.
- # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
+ networking.hostName = "${host}";
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
@@ -66,7 +70,31 @@
pulse.enable = true;
};
- programs.firefox.enable = true;
+ programs = {
+ hyprland = {
+ enable = true;
+ package = inputs.hyprland.packages.${pkgs.system}.hyprland;
+ xwayland.enable = true;
+ };
+ firefox.enable = true;
+ dconf.enable = true;
+ seahorse.enable = true;
+ fuse.userAllowOther = true;
+ mtr.enable = true;
+ gnupg.agent = {
+ enable = true;
+ enableSSHSupport = true;
+ };
+ virt-manager.enable = true;
+ };
+
+ # Steam Configuration
+ programs.steam = {
+ enable = true;
+ gamescopeSession.enable = true;
+ remotePlay.openFirewall = true;
+ dedicatedServer.openFirewall = true;
+ };
nixpkgs.config.allowUnfree = true;
@@ -78,13 +106,74 @@
vim
wget
git
+ cmatrix
+ lolcat
+ neofetch
+ htop
+ btop
+ libvirt
+ lxqt.lxqt-policykit
+ lm_sensors
+ unzip
+ unrar
+ libnotify
+ eza
+ v4l-utils
+ ydotool
+ wl-clipboard
+ socat
+ cowsay
+ lsd
+ lshw
+ pkg-config
+ meson
+ hugo
+ gnumake
+ ninja
+ go
+ nodejs
+ symbola
+ noto-fonts-color-emoji
+ material-icons
+ brightnessctl
+ virt-viewer
+ swappy
+ ripgrep
+ appimage-run
+ networkmanagerapplet
+ yad
+ playerctl
+ nh
+ nixfmt
+ discord
+ libvirt
+ swww
+ grim
+ slurp
+ gnome.file-roller
+ swaynotificationcenter
+ rofi-wayland
+ imv
+ transmission-gtk
+ mpv
+ gimp
+ obs-studio
+ rustup
+ audacity
+ pavucontrol
+ tree
+ protonup-qt
+ font-awesome
+ spotify
+ swayidle
+ neovide
+ (nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
];
environment.variables = {
- ZANEYOS_VERSION="2.0";
+ ZANEYOS_VERSION = "2.0";
};
-
# List services that you want to enable:
# Enable the X11 windowing system.
services.xserver = {
@@ -103,11 +192,12 @@
nix = {
settings = {
auto-optimise-store = true;
- experimental-features = [ "nix-command" "flakes" ];
- substituters = ["https://hyprland.cachix.org"];
- trusted-public-keys = [
- "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc="
+ experimental-features = [
+ "nix-command"
+ "flakes"
];
+ substituters = [ "https://hyprland.cachix.org" ];
+ trusted-public-keys = [ "hyprland.cachix.org-1:a7pgxzMz7+chwVL3/pzj6jIBMioiJM7ypFP8PwtkuGc=" ];
};
gc = {
automatic = true;
@@ -116,6 +206,14 @@
};
};
+ virtualisation.libvirtd.enable = true;
+
+ # OpenGL
+ hardware.opengl = {
+ enable = true;
+ driSupport = true;
+ driSupport32Bit = true;
+ };
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
diff --git a/hosts/familypc/home.nix b/hosts/familypc/home.nix
index bccc7b6..2f36e71 100644
--- a/hosts/familypc/home.nix
+++ b/hosts/familypc/home.nix
@@ -36,6 +36,16 @@ in
"Xcursor.size" = 24;
};
+ # Place Files Inside Home Directory
+ home.file.".config/wallpapers" = {
+ source = ../../config/wallpapers;
+ recursive = true;
+ };
+ home.file.".local/share/fonts" = {
+ source = ../../config/fonts;
+ recursive = true;
+ };
+
# Install & Configure Git
programs.git = {
enable = true;
@@ -58,38 +68,70 @@ in
};
};
- programs.bash = {
- enable = true;
- enableCompletion = true;
- profileExtra = ''
- #if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
- # exec Hyprland
- #fi
- '';
- initExtra = ''
- neofetch
- if [ -f $HOME/.bashrc-personal ]; then
- source $HOME/.bashrc-personal
- fi
- '';
- sessionVariables = {
- ZANEYOS = true;
+ programs = {
+ bash = {
+ enable = true;
+ enableCompletion = true;
+ profileExtra = ''
+ #if [ -z "$DISPLAY" ] && [ "$XDG_VTNR" = 1 ]; then
+ # exec Hyprland
+ #fi
+ '';
+ initExtra = ''
+ neofetch
+ if [ -f $HOME/.bashrc-personal ]; then
+ source $HOME/.bashrc-personal
+ fi
+ '';
+ sessionVariables = {
+ ZANEYOS = true;
+ };
+ shellAliases = {
+ sv = "sudo nvim";
+ flake-rebuild = "nh os switch --hostname ${host}";
+ flake-update = "nh os switch --hostname ${host} --update";
+ gcCleanup = "nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
+ v = "nvim";
+ ls = "lsd";
+ ll = "lsd -l";
+ la = "lsd -a";
+ lal = "lsd -al";
+ ".." = "cd ..";
+ };
};
- shellAliases = {
- sv="sudo nvim";
- flake-rebuild="nh os switch --hostname ${host}";
- flake-update="nh os switch --hostname ${host} --update";
- gcCleanup="nix-collect-garbage --delete-old && sudo nix-collect-garbage -d && sudo /run/current-system/bin/switch-to-configuration boot";
- v="nvim";
- ls="lsd";
- ll="lsd -l";
- la="lsd -a";
- lal="lsd -al";
- ".."="cd ..";
- neofetch="neofetch --ascii ~/.config/ascii-neofetch";
+ home-manager.enable = true;
+ hyprlock = {
+ enable = true;
+ settings = {
+ general = {
+ disable_loading_bar = true;
+ grace = 300;
+ hide_cursor = true;
+ no_fade_in = false;
+ };
+ background = [
+ {
+ path = "/home/${username}/.config/wallpapers/zaney-wallpaper.jpg";
+ blur_passes = 3;
+ blur_size = 8;
+ }
+ ];
+ input-field = [
+ {
+ size = "200, 50";
+ position = "0, -80";
+ monitor = "";
+ dots_center = true;
+ fade_on_empty = false;
+ font_color = "rgb(202, 211, 245)";
+ inner_color = "rgb(91, 96, 120)";
+ outer_color = "rgb(24, 25, 38)";
+ outline_thickness = 5;
+ placeholder_text = "Password...";
+ shadow_passes = 2;
+ }
+ ];
+ };
};
};
-
-
- programs.home-manager.enable = true;
}
diff --git a/hosts/familypc/variables.nix b/hosts/familypc/variables.nix
index b8c5b05..6646d83 100644
--- a/hosts/familypc/variables.nix
+++ b/hosts/familypc/variables.nix
@@ -10,8 +10,10 @@
borderAnim = true; # Enable / Disable Hyprland Border Animation
extraMonitorSettings = "";
+ # Waybar Settings
+ clock24h = false;
+
# Program Options
browser = "firefox"; # Set Default Browser
- terminal = "kitty"; # Set Default System Terminal
+ terminal = "kitty"; # Set Default System Terminal
}
-