diff --git a/flake.nix b/flake.nix
index c36651e..4b331a0 100644
--- a/flake.nix
+++ b/flake.nix
@@ -62,6 +62,14 @@
inputs.home-manager.nixosModules.default
];
};
+ yveltal = nixpkgs.lib.nixosSystem {
+ system = systems.x86_64;
+ specialArgs = {inherit inputs stable_pkgs unstable_pkgs current_system;};
+ modules = [
+ ./hosts/nixos/yveltal/configuration.nix
+ inputs.home-manager.nixosModules.default
+ ];
+ };
vaniville = nixpkgs.lib.nixosSystem {
system = systems.x86_64;
specialArgs = {inherit inputs stable_pkgs unstable_pkgs;};
diff --git a/modules/desktop/hyprland/default.nix b/modules/desktop/hyprland/default.nix
new file mode 100644
index 0000000..a2b9a6f
--- /dev/null
+++ b/modules/desktop/hyprland/default.nix
@@ -0,0 +1,15 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: {
+
+ # enable hyprland
+ programs.hyprland.enable = true;
+
+ # hint to election apps wayland is in use
+ environment.sessionVariables.NIXOS_OZONE_WL = "1";
+
+
+}
diff --git a/users/blake/dots/hyprland/default.nix b/users/blake/dots/hyprland/default.nix
index f788c45..e8046e0 100644
--- a/users/blake/dots/hyprland/default.nix
+++ b/users/blake/dots/hyprland/default.nix
@@ -3,14 +3,24 @@
config,
...
}: {
- home.packages = with pkgs; [];
+ home.packages = with pkgs; [nwg-displays];
- wayland.windowManager.hyprland = if pkgs.system == "x86_64-darwin" then {} else {
+ wayland.windowManager.hyprland = {
enable = true;
+ systemd.variables = ["--all"];
};
- #
- home.sessionVariables = if pkgs.system == "x86_64-darwin" then {} else {
+ home.pointerCursor = {
+ gtk.enable = true;
+ # x11.enable = true;
+ package = pkgs.posy-cursors;
+ name = "posy";
+ size = 48;
};
+ xdg.configFile."hypr/hyprland.conf" = {
+ source = config.lib.file.mkOutOfStoreSymlink "/home/blake/.nix/users/blake/dots/hypr/hyprland.conf";
+ };
+
+
}
diff --git a/users/blake/dots/hyprland/hypridle.conf b/users/blake/dots/hyprland/hypridle.conf
new file mode 100644
index 0000000..f0ebb71
--- /dev/null
+++ b/users/blake/dots/hyprland/hypridle.conf
@@ -0,0 +1,40 @@
+# --- general settings ---
+general {
+ lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances.
+ before_sleep_cmd = loginctl lock-session # lock before suspend.
+ after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
+}
+
+# --- dim screen ---
+listener {
+ timeout = 150 # 2.5min.
+ on-timeout = brightnessctl -s set 1 # set monitor backlight to minimum, avoid 0 on OLED monitor.
+ on-resume = brightnessctl -r # monitor backlight restore.
+}
+
+# --- blank screen ---
+listener {
+ timeout = 330 # 5.5min
+ on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
+ on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
+}
+
+# --- lock screen ---
+listener {
+ timeout = 900 # 15min
+ on-timeout = loginctl lock-session # lock screen when timeout has passed
+}
+
+# --- suspend timeout ---
+listener {
+ timeout = 1800 # 30min
+ on-timeout = systemctl suspend # suspend pc
+}
+
+# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
+#listener {
+# timeout = 150 # 2.5min.
+# on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
+# on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
+#}
+
diff --git a/users/blake/dots/hyprland/hyprland.conf b/users/blake/dots/hyprland/hyprland.conf
new file mode 100644
index 0000000..42c70f8
--- /dev/null
+++ b/users/blake/dots/hyprland/hyprland.conf
@@ -0,0 +1,279 @@
+# blake's hyprland config
+
+# Please note not all available settings / options are set here.
+# For a full list, see the wiki ; )
+
+# --- displays ---
+
+# See https://wiki.hyprland.org/Configuring/Monitors/
+# currently being managed by nwg-displays
+source = ~/.config/hypr/monitors.conf
+#monitor = eDP-1,preferred,0x0,1
+#monitor = HDMI-A-1,3840x2160@60,auto-left,1.5
+#monitor = HDMI-A-1,3840x2160@60,-2560x0,1.5
+#monitor = DP-6,1920x1080@120,auto,1
+#monitor = HDMI-A-1,referred,0x-1080,1
+
+# workspaces
+# currently being managed by nwg-displays
+source = ~/.config/hypr/workspaces.conf
+#workspace = 1, monitor:eDP-1
+#workspace = 2, monitor:desc:Philips Consumer Electronics Company PHL 278E1 0x0000032B
+
+# --- auto-launch ---
+exec-once = hyprpaper
+exec-once = waybar
+exec-once = dunst
+exec-once = hypridle
+exec-once = wl-paste --type text --watch cliphist store #clipboard history text data
+exec-once = wl-paste --type image --watch cliphist store #clipboard history image data
+exec-once = /usr/lib/polkit-kde-authentication-agent-1
+
+# --- settings ---
+
+# Source a file (multi-file configs)
+# source = ~/.config/hypr/myColors.conf
+
+# Set programs that you use
+$terminal = kitty
+$fileManager = lf
+$menu = tofi-drun --drun-launch=true --prompt-text="launch:"
+$browser = firefox
+
+
+# --- enviroment variables ---
+
+# sharp text in firefox
+env = MOZ_ENABLE_WAYLAND,1
+
+# xdg info
+env = XDG_CURRENT_DESKTOP,Hyprland
+env = XDG_SESSION_TYPE,wayland
+env = XDG_SESSION_DESKTOP,Hyprland
+
+# cursors
+env = HYPRCURSOR_THEME,posy-hypr
+env = HYPRCURSOR_SIZE,48
+env = XCURSOR_THEME,posy
+env = XCURSOR_SIZE,48
+
+# themes
+env = GTK_THEME,gradient-dark-gtk
+env = QT_QPA_PLATFORMTHEME,qt6ct # change to qt6ct if you have that
+env = QT_STYLE_OVERRIDE,gtk2
+
+# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
+input {
+ kb_layout = us
+ kb_variant =
+ kb_model =
+ kb_options =
+ kb_rules =
+ numlock_by_default = true
+
+ follow_mouse = 2
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+
+ touchpad {
+ disable_while_typing = yes
+ natural_scroll = yes
+ clickfinger_behavior = yes
+ tap-to-click = yes
+ }
+
+}
+
+general {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+
+ gaps_in = 2
+ gaps_out = 5
+ border_size = 3
+ col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ col.inactive_border = rgba(595959aa)
+
+ layout = dwindle
+
+ # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
+ allow_tearing = false
+
+ # disables cursor warping to focused window
+
+}
+
+decoration {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+
+ rounding = 3
+
+ blur {
+ enabled = true
+ size = 3
+ passes = 1
+ }
+
+# drop_shadow = yes
+# shadow_range = 4
+# shadow_render_power = 3
+# col.shadow = rgba(1a1a1aee)
+}
+
+animations {
+ enabled = yes
+
+ # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+
+ bezier = myBezier, 0.05, 0.9, 0.1, 1.05
+
+ animation = windows, 1, 7, myBezier
+ animation = windowsOut, 1, 7, default, popin 80%
+ animation = border, 1, 10, default
+ animation = borderangle, 1, 8, default
+ animation = fade, 1, 7, default
+ animation = workspaces, 1, 6, default
+}
+
+dwindle {
+ # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+ pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = yes # you probably want this
+}
+
+master {
+ # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+# new_is_master = true
+}
+
+gestures {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ workspace_swipe = on
+}
+
+misc {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ force_default_wallpaper = -1 # Set to 0 to disable the anime mascot wallpapers
+ disable_hyprland_logo = true
+ disable_splash_rendering = true
+ focus_on_activate = true
+}
+
+# --- window rules ---
+windowrulev2 = float,class:(kitty),title:(pulsemixer)
+#windowrulev2 = float,center,size 30%,class:(kitty),title:(bluetuith)
+
+
+# floating audio controls
+
+#windowrulev2 = float,class:(kitty),title:(pulsemixer)
+#windowrulev2 = center,class:(kitty),title:(pulsemixer)
+#windowrulev2 = size 80%,class:(kitty),title:(pulsemixer)
+
+# floating network controls
+#windowrulev2 = float,class:floating
+#windowrulev2 = float,class:(kitty),title:(nmtui)
+#windowrulev2 = size 100 100,class:(kitty),title:(nmtui)
+#windowrulev2 = center,class:(kitty),title:(nmtui)
+
+# floating bluetooth controls
+#windowrulev2 = float,class:(kitty),title:(bluetuith)
+#windowrulev2 = size 70%,class:(kitty),title:(bluetuith)
+#windowrulev2 = center,class:(kitty),title:(bluetuith)
+
+
+# --- bindings ---
+
+# See https://wiki.hyprland.org/Configuring/Keywords/ for more
+$mainMod = SUPER
+
+
+# system
+bind = $mainMod, Q, exec, loginctl lock-session
+
+# programs
+bind = $mainMod, Return, exec, $terminal
+bind = $mainMod, E, exec, kitty $fileManager
+bind = $mainMod, R, exec, $menu
+bind = $mainMod, B, exec, $browser
+bind = $mainMod, K, exec, hyprpicker --autocopy --format=hex
+bind = $mainMod, T, exec, cliphist list | tofi | cliphist decode | wl-copy # clipboard history
+
+# screenshots
+bind = , print, exec, hyprshot --mode region --output-folder ~/pictures/screenshots # region capture
+bind = $mainMod, print, exec, hyprshot --mode window --output-folder ~/pictures/screenshots # window capture
+bind = shift, print, exec, hyprshot --mode output --output-folder ~/pictures/screenshots # monitor capture
+
+# multimedia
+bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
+bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
+bind = , XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+
+bind = , XF86AudioPlay, exec, playerctl play-pause
+
+# brightness
+bind = , XF86MonBrightnessUp, exec, brightnessctl set +10%
+bind = , XF86MonBrightnessDown, exec, brightnessctl set 10%- --min-value
+
+# scratch pad
+bind = $mainMod, S, togglespecialworkspace, magic
+bind = $mainMod SHIFT, S, movetoworkspace, special:magic
+
+# general window management (https://wiki.hyprland.org/Configuring/Binds/ for more)
+bind = $mainMod, C, killactive
+bind = $mainMod SHIFT, M, exit
+bind = $mainMod, V, togglefloating
+bind = $mainMod, F, fullscreen, 1 # maximize
+bind = $mainMod SHIFT, F, fullscreen, 0 # full screen proper
+bind = $mainMod, P, pseudo # dwindle
+bind = $mainMod, J, togglesplit # dwindle
+
+# window switching
+bind = $mainMod, tab, cyclenext
+bind = $mainMod, left, movefocus, l
+bind = $mainMod, right, movefocus, r
+bind = $mainMod, up, movefocus, u
+bind = $mainMod, down, movefocus, d
+
+# window moving
+bind = $mainMod SHIFT, left, swapwindow, l
+bind = $mainMod SHIFT, right, swapwindow, r
+bind = $mainMod SHIFT, up, swapwindow, u
+bind = $mainMod SHIFT, down, swapwindow, d
+
+# window resizing X Y
+bind = $mainMod CTRL, left, resizeactive, -60 0
+bind = $mainMod CTRL, right, resizeactive, 60 0
+bind = $mainMod CTRL, up, resizeactive, 0 -60
+bind = $mainMod CTRL, down, resizeactive, 0 60
+
+# workspace switching
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+bind = $mainMod, 1, workspace, 1
+bind = $mainMod, 2, workspace, 2
+bind = $mainMod, 3, workspace, 3
+bind = $mainMod, 4, workspace, 4
+bind = $mainMod, 5, workspace, 5
+bind = $mainMod, 6, workspace, 6
+bind = $mainMod, 7, workspace, 7
+bind = $mainMod, 8, workspace, 8
+bind = $mainMod, 9, workspace, 9
+bind = $mainMod, 0, workspace, 10
+
+# window workspace moving
+bind = $mainMod SHIFT, 1, movetoworkspace, 1
+bind = $mainMod SHIFT, 2, movetoworkspace, 2
+bind = $mainMod SHIFT, 3, movetoworkspace, 3
+bind = $mainMod SHIFT, 4, movetoworkspace, 4
+bind = $mainMod SHIFT, 5, movetoworkspace, 5
+bind = $mainMod SHIFT, 6, movetoworkspace, 6
+bind = $mainMod SHIFT, 7, movetoworkspace, 7
+bind = $mainMod SHIFT, 8, movetoworkspace, 8
+bind = $mainMod SHIFT, 9, movetoworkspace, 9
+bind = $mainMod SHIFT, 0, movetoworkspace, 10
+
+# window managment with mouse
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+# waybar
+bind = $mainMod, N, exec, pkill -SIGUSR1 waybar # hide waybar
+bind = $mainMod SHIFT, N, exec, pkill -SIGUSR2 waybar # reload waybar
diff --git a/users/blake/dots/hyprland/hyprlock.conf b/users/blake/dots/hyprland/hyprlock.conf
new file mode 100644
index 0000000..2bf52fe
--- /dev/null
+++ b/users/blake/dots/hyprland/hyprlock.conf
@@ -0,0 +1,94 @@
+$font = Ubuntu Mono Regular
+
+# GENERAL
+general {
+ disable_loading_bar = true
+ hide_cursor = true
+}
+
+# BACKGROUND
+background {
+ monitor =
+ path = ~/pictures/wallpapers/antartica.png
+ blur_passes = 1
+ color = rgb(0047ab)
+}
+
+# TIME
+label {
+ monitor =
+ text = cmd[update:30000] echo "$(date +"%R")"
+ color = rgb(ffffff)
+ font_size = 90
+ font_family = $font
+ position = -130, -100
+ halign = right
+ valign = top
+ shadow_passes = 1
+}
+
+# DATE
+label {
+ monitor =
+ text = cmd[update:43200000] echo "$(date +"%Y/%m/%d")"
+ color = $text
+ font_size = 25
+ font_family = $font
+ position = -130, -250
+ halign = right
+ valign = top
+ shadow_passes = 2
+}
+
+# KEYBOARD LAYOUT
+label {
+ monitor =
+ text = $LAYOUT
+ color = rbg(ffffff)
+ font_size = 20
+ font_family = $font
+ rotate = 0 # degrees, counter-clockwise
+
+ position = -130, -310
+ halign = right
+ valign = top
+ shadow_passes = 2
+}
+
+# USER AVATAR
+image {
+ monitor =
+ path = ~/pictures/pfps/pikacig.png
+ size = 350
+ border_color = rgb(0047ab)
+ rounding = -1
+
+ position = 0, 85
+ halign = center
+ valign = center
+ shadow_passes = 2
+}
+
+# INPUT FIELD
+input-field {
+ monitor =
+ size = 400, 70
+ outline_thickness = 4
+ dots_size = 0.2
+ dots_spacing = 0.2
+ dots_center = true
+ outer_color = $accent
+ inner_color = $surface0
+ font_color = $text
+ fade_on_empty = false
+ placeholder_text = # Logged in as $USER
+ hide_input = false
+ check_color = rgb(0047ab)
+ fail_color = rgb(ff0000)
+ fail_text = $FAIL ($ATTEMPTS)
+ capslock_color = rgb(ff0000)
+ position = 0, -185
+ halign = center
+ valign = center
+ shadow_passes = 2
+}
diff --git a/users/blake/dots/hyprland/hyprpaper.conf b/users/blake/dots/hyprland/hyprpaper.conf
new file mode 100644
index 0000000..3793f9f
--- /dev/null
+++ b/users/blake/dots/hyprland/hyprpaper.conf
@@ -0,0 +1,5 @@
+preload = ~/pictures/wallpapers/antartica.png
+# wallpaper = eDP-1,~/pictures/wallpapers/antartica.png
+wallpaper = ,~/pictures/wallpapers/antartica.png
+ipc = off
+splash = false