laied out the groundwork for hyprland

This commit is contained in:
2025-10-25 12:14:34 -05:00
parent 6fa11eea8f
commit 700943ab97
13 changed files with 531 additions and 39 deletions

View File

@@ -71,6 +71,8 @@
modules = [
./hosts/nixos/yveltal/configuration.nix
inputs.home-manager.nixosModules.default
inputs.disko.nixosModules.disko
./hosts/nixos/yveltal/disko.nix
];
};
vaniville = nixpkgs.lib.nixosSystem {

View File

@@ -1,4 +1,4 @@
{ config, lib, stable_pkgs, unstable_pkgs, ... }:
{ config, lib, inputs, stable_pkgs, unstable_pkgs, ... }:
let
pkgs = stable_pkgs.x86_64;
@@ -16,6 +16,10 @@ in
../../../modules/gameservers/minecraft_recpro
];
home-manager.users.blake.imports = [
../../../users/blake/dots/git
];
system = {
ssh.enable = true;
sops.enable = true;
@@ -139,7 +143,7 @@ in
# Or disable the firewall altogether.
networking.firewall.enable = true;
system.stateVersion = "25.05"; # Did you read the comment?
system.stateVersion = "25.05"; # stays here : )
}

View File

@@ -0,0 +1,57 @@
{ config, lib, inputs, stable_pkgs, unstable_pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
../../nixos
../../../modules/desktop/hypr
../../../users/blake
../../../modules/system
];
home-manager.users.blake.imports = [
../../../users/blake/hosts/yveltal
];
system = {
ssh.enable = true;
sops.enable = true;
yubikey.enable = true;
tailscale.enable = true;
};
# boot (systemd is going on me)
boot.loader.systemd-boot.enable = true; # systemd your pretty cool ya know
boot.loader.efi.canTouchEfiVariables = true;
boot.initrd.systemd.enable = true; # better logging
# setup hostname and networking stack
services.resolved = {
enable = true;
fallbackDns = [ "1.1.1.1" "9.9.9.9" ];
dnsovertls = "opportunistic";
};
networking = {
hostName = "yveltal"; # hostname
networkmanager = {
enable = true; # the goat
dns = "systemd-resolved"; # the backup dancer!
};
};
hardware.bluetooth.enable = true;
# Open ports in the firewall.
networking.firewall.allowedTCPPorts = [
22
];
networking.firewall.allowedUDPPorts = [ 51820 ];
# Or disable the firewall altogether.
networking.firewall.enable = true;
system.stateVersion = "25.05"; # stays here : )
}

View File

@@ -0,0 +1,70 @@
{
disko.devices = {
disk = {
main = {
type = "disk";
device = ""; # disk id here
content = {
type = "gpt";
partitions = {
ESP = {
size = "1G";
type = "EF00";
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [ "umask=0077" ];
};
};
luks = {
size = "100%";
content = {
type = "luks";
name = "crypted";
# disable settings.keyFile if you want to use interactive password entry
#passwordFile = "/tmp/secret.key"; # Interactive
settings = {
allowDiscards = true;
#keyFile = "/tmp/secret.key";
};
#additionalKeyFiles = [ "/tmp/additionalSecret.key" ];
content = {
type = "btrfs";
extraArgs = [ "-f" ];
subvolumes = {
"@root" = {
mountpoint = "/";
mountOptions = [
"compress=zstd"
"noatime"
];
};
"@home" = {
mountpoint = "/home";
mountOptions = [
"compress=zstd"
"noatime"
];
};
"@nix" = {
mountpoint = "/nix";
mountOptions = [
"compress=zstd"
"noatime"
];
};
"@swap" = {
mountpoint = "/.swapvol";
swap.swapfile.size = "32G";
};
};
};
};
};
};
};
};
};
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

@@ -0,0 +1,375 @@
{
pkgs,
config,
...
}: {
home.packages = with pkgs; [
nwg-displays
];
wayland.windowManager.hyprland = {
enable = true;
systemd.variables = ["--all"];
settings = {
# --- displays ---
source = [
"~/.config/hypr/monitors.conf"
"~/.config/hypr/workspaces.conf"
];
# --- environment variables ---
env = [
"MOZ_ENABLE_WAYLAND,1"
"XDG_CURRENT_DESKTOP,Hyprland"
"XDG_SESSION_TYPE,wayland"
"XDG_SESSION_DESKTOP,Hyprland"
];
# --- input ---
input = {
kb_layout = "us";
numlock_by_default = true;
follow_mouse = 2;
sensitivity = -0.6;
touchpad = {
disable_while_typing = true;
natural_scroll = true;
clickfinger_behavior = true;
tap-to-click = true;
};
};
# --- general ---
general = {
gaps_in = 2;
gaps_out = 5;
border_size = 3;
col = {
active_border = "rgba(33ccffee) rgba(00ff99ee) 45deg";
inactive_border = "rgba(595959aa)";
};
layout = "dwindle";
allow_tearing = false;
};
# --- decoration ---
decoration = {
rounding = 3;
blur = {
enabled = true;
size = 3;
passes = 1;
};
};
# --- animations ---
animations = {
enabled = true;
bezier = "myBezier, 0.05, 0.9, 0.1, 1.05";
animation = [
"windows, 1, 7, myBezier"
"windowsOut, 1, 7, default, popin 80%"
"border, 1, 10, default"
"borderangle, 1, 8, default"
"fade, 1, 7, default"
"workspaces, 1, 6, default"
];
};
# --- dwindle ---
dwindle = {
pseudotile = true;
preserve_split = true;
};
gestures = {
workspace_swipe = "on";
};
misc = {
force_default_wallpaper = -1;
disable_hyprland_logo = true;
disable_splash_rendering = true;
focus_on_activate = true;
};
# --- window rules ---
windowrulev2 = [
];
# --- binds ---
"$mainMod" = "SUPER";
bind = [
# system
"$mainMod CONTROL, Q, exec, loginctl lock-session"
# programs
"$mainMod, Return, exec, kitty"
"$mainMod, E, exec, kitty lf"
"$mainMod, R, exec, tofi-drun --drun-launch=true --prompt-text=\"launch:\""
"$mainMod, B, exec, firefox"
"$mainMod, G, exec, lutris"
"$mainMod, M, exec, thunderbird"
"$mainMod, D, exec, flatpak run com.discordapp.Discord"
"$mainMod, K, exec, hyprpicker --autocopy --format=hex"
"$mainMod, T, exec, cliphist list | tofi | cliphist decode | wl-copy"
"$mainMod CONTROL, T, exec, cliphist wipe"
# screenshots
"$mainMod SHIFT, C, exec, hyprshot --mode region --output-folder ~/pictures/screenshots"
# multimedia
", XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
", XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
", XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.5 @DEFAULT_AUDIO_SINK@ 5%+"
", XF86AudioPlay, exec, playerctl play-pause"
# brightness
", XF86MonBrightnessUp, exec, brightnessctl set +10%"
", XF86MonBrightnessDown, exec, brightnessctl set 10%- --min-value"
# scratchpad
"$mainMod, S, togglespecialworkspace, magic"
"$mainMod SHIFT, S, movetoworkspace, special:magic"
# window management
"$mainMod, Q, killactive"
"$mainMod SHIFT, M, exit"
"$mainMod, V, togglefloating"
"$mainMod, F, fullscreen, 1"
"$mainMod SHIFT, F, fullscreen, 0"
"$mainMod, P, pseudo"
"$mainMod, J, togglesplit"
# focus movement
"$mainMod, tab, cyclenext"
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
# move windows
"$mainMod SHIFT, left, swapwindow, l"
"$mainMod SHIFT, right, swapwindow, r"
"$mainMod SHIFT, up, swapwindow, u"
"$mainMod SHIFT, down, swapwindow, d"
# resize
"$mainMod CTRL, left, resizeactive, -60 0"
"$mainMod CTRL, right, resizeactive, 60 0"
"$mainMod CTRL, up, resizeactive, 0 -60"
"$mainMod CTRL, down, resizeactive, 0 60"
# workspace switching
"$mainMod, mouse_down, workspace, e+1"
"$mainMod, mouse_up, workspace, e-1"
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
# move windows between workspaces
"$mainMod SHIFT, 1, movetoworkspace, 1"
"$mainMod SHIFT, 2, movetoworkspace, 2"
"$mainMod SHIFT, 3, movetoworkspace, 3"
"$mainMod SHIFT, 4, movetoworkspace, 4"
"$mainMod SHIFT, 5, movetoworkspace, 5"
"$mainMod SHIFT, 6, movetoworkspace, 6"
"$mainMod SHIFT, 7, movetoworkspace, 7"
"$mainMod SHIFT, 8, movetoworkspace, 8"
"$mainMod SHIFT, 9, movetoworkspace, 9"
"$mainMod SHIFT, 0, movetoworkspace, 10"
# waybar
"$mainMod, N, exec, pkill -SIGUSR1 waybar"
"$mainMod SHIFT, N, exec, pkill -SIGUSR2 waybar"
];
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
};
};
# enable polkit agent
services.hyprpolkitagent.enable = true;
# wallpaper
services.hyprpaper = {
enable = true;
settings = {
preload = [ "~/.nix/user/blake/assets/wallpapers/antartica.png" ];
wallpaper = [ ",~/.nix/user/blake/assets/wallpapers/antartica.png" ];
ipc = "off";
splash = false;
};
};
# screenlocker
services.hyprlock = {
enable = true;
settings = {
general = {
disable_loading_bar = true;
hide_cursor = true;
};
background = [
{
monitor = "";
path = "~/pictures/wallpapers/antartica.png";
blur_passes = 1;
color = "rgb(0047ab)";
}
];
label = [
{
monitor = "";
text = "cmd[update:30000] echo \"$(date +'%R')\"";
color = "rgb(ffffff)";
font_size = 90;
position = "-130, -100";
halign = "right";
valign = "top";
shadow_passes = 1;
}
{
monitor = "";
text = "cmd[update:43200000] echo \"$(date +'%Y/%m/%d')\"";
color = "$text";
font_size = 25;
position = "-130, -250";
halign = "right";
valign = "top";
shadow_passes = 2;
}
{
monitor = "";
text = "$LAYOUT";
color = "rgb(ffffff)";
font_size = 20;
rotate = 0;
position = "-130, -310";
halign = "right";
valign = "top";
shadow_passes = 2;
}
];
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 = [
{
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 =
"# <span foreground=\"##$textAlpha\"><i>󰌾 Logged in as </i><span foreground=\"##$accentAlpha\">$USER</span></span>";
hide_input = false;
check_color = "rgb(0047ab)";
fail_color = "rgb(ff0000)";
fail_text = "<i>$FAIL <b>($ATTEMPTS)</b></i>";
capslock_color = "rgb(ff0000)";
position = "0, -185";
halign = "center";
valign = "center";
shadow_passes = 2;
}
];
};
};
# idle daemon
services.hypridle = {
enable = true;
settings = {
# --- general settings ---
general = {
lock_cmd = "pidof hyprlock || hyprlock"; # avoid multiple instances
before_sleep_cmd = "loginctl lock-session"; # lock before suspend
after_sleep_cmd = "hyprctl dispatch dpms on"; # wake display properly
};
# --- dim screen ---
listener = [
{
timeout = 150; # 2.5 min
on-timeout = "brightnessctl -s set 1"; # dim monitor (avoid 0 on OLED)
on-resume = "brightnessctl -r"; # restore brightness
}
# --- blank screen ---
{
timeout = 330; # 5.5 min
on-timeout = "hyprctl dispatch dpms off"; # turn off screen
on-resume = "hyprctl dispatch dpms on"; # restore screen
}
# --- lock screen ---
{
timeout = 900; # 15 min
on-timeout = "loginctl lock-session"; # lock screen
}
# --- suspend timeout ---
{
timeout = 1800; # 30 min
on-timeout = "systemctl suspend"; # suspend computer
}
# --- keyboard backlight (optional) ---
# Uncomment if your keyboard supports it
# {
# timeout = 150;
# on-timeout = "brightnessctl -sd rgb:kbd_backlight set 0";
# on-resume = "brightnessctl -rd rgb:kbd_backlight";
# }
];
};
};
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";
#};
}

View File

@@ -1,32 +0,0 @@
{
pkgs,
config,
...
}: {
home.packages = with pkgs; [
nwg-displays
hyprlock
hypridle
hyprpaper
];
wayland.windowManager.hyprland = {
enable = true;
systemd.variables = ["--all"];
settings = {
};
};
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";
#};
}

View File

@@ -3,13 +3,10 @@
lib,
pkgs,
inputs,
system,
current_system,
...
}: let
platform = if builtins.pathExists "/System/Library/CoreServices" then "darwin" else "nixos";
#platform = if current_system "x86_64-darwin" then "darwin" else "nixos";
# general config
home_linux = {
@@ -24,7 +21,7 @@ in
{
imports = [
inputs.sops-nix.homeManagerModules.sops
./os/${platform}.nix
#./os/${platform}.nix
./dots/neovim
./dots/lf
./dots/zsh
@@ -35,7 +32,7 @@ in
];
# set home manager config based on system type
home = (if pkgs.system == "x86_64-darwin" then home_darwin else home_linux) // {
home = (if platform == "darwin" then home_darwin else home_linux) // {
# cross party general packages here : )
stateVersion = "25.05";
packages = with pkgs; [

View File

@@ -0,0 +1,19 @@
{
config,
lib,
pkgs,
inputs,
...
}:
{
imports = [
../dots/hypr
../dots/kitty
];
home.packages = with pkgs; [
htop
sl
];
}