feat: added some exec stuff

This commit is contained in:
Nick 2025-01-11 18:53:08 -06:00
parent 569d969ecc
commit 42316e4a2a
84 changed files with 25 additions and 9 deletions

View file

@ -0,0 +1,7 @@
{
imports = [
./hypridle
./hyprland
./wpaperd
];
}

View file

@ -0,0 +1,22 @@
{pkgs, ...}: {
general = {
lock_cmd = "pidof swaylock || swaylock";
before_sleep_cmd = "loginctl lock-session";
};
listener = [
{
timeout = 150;
on-timeout = "${pkgs.brightnessctl}/bin/brightnessctl -s set 0";
on-resume = "${pkgs.brightnessctl}/bin/brightnessctl -r";
}
{
timeout = 150;
on-timeout = "${pkgs.brightnessctl}/bin/brightnessctl -sd rgb:kbd_backlight set 0";
on-resume = "${pkgs.brightnessctl}/bin/brightnessctl -rd rgb:kbd_backlight";
}
{
timeout = 300;
on-timeout = "systemctl suspend";
}
];
}

View file

@ -0,0 +1,18 @@
{
flake,
pkgs,
...
}: let
configPath = ./config;
settingsPath = import (configPath + /settings.nix) {
inherit
pkgs
;
};
in {
services.hypridle = {
enable = true;
package = flake.inputs.hypridle.packages.${pkgs.system}.hypridle;
settings = settingsPath;
};
}

View file

@ -0,0 +1,18 @@
{
enabled = true;
animation = [
"border, 1, 2.2, bounce"
"fadeIn, 1, 1, bounce"
"fadeOut, 1, 4.5, bounce"
"fadeSwitch, 1, 2.2, bounce"
"windows, 1, 2.2, bounce"
"windowsOut, 1, 1.1, bounce"
"workspaces, 1, 2.2, bounce, slide"
];
bezier = [
"wind, 0, 1, 0.5, 1"
"winIn, 0, 0.5, 0, 1"
"winOut, 0, 0.5, 0, 1"
"bounce, 0.7, 1.7, 0.5, 1"
];
}

View file

@ -0,0 +1,107 @@
{
flake,
config,
...
}: let
inherit (flake.config.people) user0 user1;
user = config.home.username;
superBinds = builtins.map (x: "SUPER, " + x) [
# Apps
"Space, exec, rm -r /home/$USER/.cache/tofi* ; tofi-drun"
"C, exec, code"
"A, exec, obsidian"
"D, exec, ghostty -e zellij a dotfiles"
"E, exec, ghostty -e nu -e y"
"T, exec, ghostty"
"G, exec, firefox https://cronometer.com/#diary"
"B, exec, firefox"
"V, exec, vesktop"
"W, exec, bitwarden"
"H, exec, feishin"
"Y, exec, scrcpy"
"R, exec, ghostty -e nu -e btm"
"N, exec, signal-desktop"
"M, exec, element-desktop"
"End, exec, hyprctl dispatch exit"
"S, exec, steam"
"period, exec, emote"
"L, exec, ${
if user == user0
then "slack"
else if user == user1
then "flatpak run org.vinegarhq.Sober"
else ""
}"
# Workspaces
"1, workspace, 1"
"2, workspace, 2"
"3, workspace, 3"
"4, workspace, 4"
"5, workspace, 5"
# Windows
"F, togglefloating"
"X, killactive"
"Tab, fullscreen, 0"
"P, pin, enable"
"equal, splitratio, 0.33"
"minus, splitratio, -0.33"
# Window Focus
"left , movefocus, l"
"down , movefocus, d"
"up , movefocus, u"
"right , movefocus, r"
# Audio
"F8, exec, playerctl next"
"F7, exec, playerctl previous"
"F6, exec, playerctl play-pause"
];
superShiftBinds = builtins.map (x: "SUPER SHIFT, " + x) [
# Super+shift binds
"S, exec, flameshot gui"
"Print, exec, grim -g \"$(slurp)\""
"ScrollDown, workspace, previous"
"left , movewindow, l"
"down , movewindow, d"
"up , movewindow, u"
"right , movewindow, r"
];
superCtrlBinds = builtins.map (x: "SUPER CTRL, " + x) [
# Super+shift binds
"Space, workspace, previous"
"S, layoutmsg, togglesplit"
"equal, splitratio, 0.33"
"minus, splitratio, -0.33"
];
altBinds = builtins.map (x: "ALT, " + x) [
# Alt binds
];
shiftBinds = builtins.map (x: "SHIFT, " + x) [
# Shift binds
];
ctrlBinds = builtins.map (x: "CTRL, " + x) [
# Ctrl binds
];
ctrlShiftBinds = builtins.map (x: "CTRL SHIFT, " + x) [
# Ctrl+shift binds
"1, movetoworkspacesilent, 1"
"2, movetoworkspacesilent, 2"
"3, movetoworkspacesilent, 3"
"4, movetoworkspacesilent, 4"
];
in
superBinds
++ superShiftBinds
++ superCtrlBinds
++ altBinds
++ ctrlBinds
++ ctrlShiftBinds
++ shiftBinds
# Docs
# https://wiki.hyprland.org/Getting-Started/Master-Tutorial/

View file

@ -0,0 +1,4 @@
[
",switch:on:Lid Switch, exec, hyprlock --immediate"
",switch:off:Lid Switch, exec, hyprlock --immediate"
]

View file

@ -0,0 +1,11 @@
let
superBinds = builtins.map (x: "SUPER, " + x) [
"mouse:272, resizewindow"
];
altBinds = builtins.map (x: "ALT, " + x) [
"mouse:272, movewindow"
];
in
superBinds
++ altBinds

View file

@ -0,0 +1,3 @@
{
"allow_workspace_cycles" = "1";
}

View file

@ -0,0 +1,36 @@
{
active_opacity = 0.95;
inactive_opacity = 0.90;
fullscreen_opacity = 1;
rounding = 10;
dim_inactive = 1;
dim_strength = 0.05;
shadow = {
enabled = true;
color = "rgba(00000055)";
ignore_window = true;
offset = "0 2";
range = 20;
render_power = 3;
scale = 0.97;
};
blur = {
enabled = true;
size = 5;
passes = 2;
brightness = 1;
contrast = 1.300000;
ignore_opacity = true;
noise = 0.011700;
new_optimizations = true;
xray = true;
popups = true;
popups_ignorealpha = 0.2;
};
}

View file

@ -0,0 +1,4 @@
{
pseudotile = true;
preserve_split = true;
}

View file

@ -0,0 +1,19 @@
[
"swaylock"
"wl-clipboard"
"wpaperd"
"gammastep"
"dunst"
"playerctrld"
"waybar"
"nm-applet"
"blueman-applet"
"easyeffects"
"pkill easyeffects"
"emote"
"flameshot"
"pactl set-default-sink alsa_output.usb-Focusrite_Scarlett_2i2_USB_Y818KFJ0C671CE-00.HiFi__Line1__sink"
"pactl set-default-source alsa_input.usb-Focusrite_Scarlett_2i2_USB_Y818KFJ0C671CE-00.HiFi__Mic1__source"
"gsettings set org.gnome.desktop.interface cursor-theme 'catppuccin-mocha-dark-cursors'"
"gsettings set org.gnome.desktop.interface cursor-size 18"
]

View file

@ -0,0 +1,7 @@
{
gaps_in = 5;
gaps_out = 5;
border_size = 2;
"col.active_border" = "rgb(c6a0f6)";
"col.inactive_border" = "0xff292a37";
}

View file

@ -0,0 +1,6 @@
{
sensitivity = 0.07;
accel_profile = "flat";
follow_mouse = 1;
numlock_by_default = true;
}

View file

@ -0,0 +1,7 @@
{
focus_on_activate = 1;
force_default_wallpaper = 0;
# disable_hyprland_logo = true;
# disable_splash_rendering = true;
# disable_hyprland_qtutils_check = true;
}

View file

@ -0,0 +1,104 @@
let
blueman = "(.blueman-manager-wrapped)";
calculator = "(org.gnome.Calculator)";
easyeffects = "(com.github.wwmm.easyeffects)";
firefox = "(firefox)";
nomacs = "(org.nomacs.ImageLounge)";
mpv = "(mpv)";
vlc = "(vlc)";
emote = "(emote)";
flameshot = "(flameshot)";
bitwarden = "(.*Bitwarden.*)";
picture = "(.*Picture-in-Picture.*)";
signal = "(signal)";
vesktop = "(vesktop)";
code = "(code)";
feishin = "(feishin)";
steam = "(steam)";
kdenlive = "(org.kde.kdenlive)";
shotcut = "(shotcut)";
scrcpy = "(.scrcpy-wrapped)";
maxsizeWindows = [
"maxsize 720 400, class:^${blueman}$"
"maxsize 360 500, class:^${calculator}$"
"maxsize 720 400, class:^${easyeffects}$"
"maxsize 720 400, class:^${scrcpy}$"
"maxsize 720 400, class:^${mpv}$"
"maxsize 720 400, class:^${vlc}$"
"maxsize 640 360, class:^${nomacs}$"
"maxsize 800 450, title:^${bitwarden}$"
"maxsize 720 400, title:^${picture}$"
];
floatWindows = builtins.map (x: "float, " + x) [
"class:^${blueman}$"
"class:^${calculator}$"
"class:^${easyeffects}$"
"class:^${emote}$"
"class:^${mpv}$"
"class:^${vlc}$"
"class:^${nomacs}$"
"class:^${flameshot}$"
"class:^${scrcpy}$"
"title:^(${picture})$"
"title:^${bitwarden}$"
];
pinWindows = builtins.map (x: "pin, " + x) [
"title:^${bitwarden}$"
"title:^${picture}$"
];
idleInhibit = builtins.map (x: "idleinhibit, " + x) [
"fullscreen, class:^${firefox}$"
];
workspaceInit1 = builtins.map (x: "workspace 1 silent, " + x) [
"class:^${signal}$"
"class:^${vesktop}$"
];
workspaceInit2 = builtins.map (x: "workspace 2 silent, " + x) [
"class:^${code}$"
"class:^${firefox}$"
];
workspaceInit3 = builtins.map (x: "workspace 3 silent, " + x) [
"class:^${steam}$"
"class:^${shotcut}$"
];
workspaceInit4 = builtins.map (x: "workspace 4 silent, " + x) [
"class:^${feishin}$"
"class:^${scrcpy}$"
];
centerWindows = builtins.map (x: "center, " + x) [
"class:^${emote}$"
"class:^${mpv}$"
"class:^${nomacs}$"
];
opaqueWindows = builtins.map (x: "opaque, " + x) [
"class:^${firefox}$"
"class:^${kdenlive}$"
"class:^(krita)$"
"class:^${shotcut}$"
"class:^${mpv}$"
"class:^(Brave-browser)$"
"class:^(Gimp-2.10)$"
"class:^(org.kde.okular)$"
"class:^${vlc}$"
];
in
maxsizeWindows
++ floatWindows
++ pinWindows
++ idleInhibit
++ workspaceInit1
++ workspaceInit2
++ workspaceInit3
++ workspaceInit4
++ centerWindows
++ opaqueWindows

View file

@ -0,0 +1,3 @@
{
force_zero_scaling = true;
}

View file

@ -0,0 +1,35 @@
{
# pkgs,
flake,
config,
...
}: let
# hostname = config.networking.hostName;
# inherit (flake.config.machines.devices) desktop laptop;
configPath = ./config;
configImports = {
animations = import (configPath + /animations.nix);
bind = import (configPath + /bind.nix) {inherit flake config;};
bindm = import (configPath + /bindm.nix);
binds = import (configPath + /binds.nix);
# bindl =
# if hostname == laptop.name
# then import (configPath + /bindl.nix)
# else null;
decoration = import (configPath + /decoration.nix);
dwindle = import (configPath + /dwindle.nix);
exec-once = import (configPath + /exec-once.nix);
general = import (configPath + /general.nix);
input = import (configPath + /input.nix);
misc = import (configPath + /misc.nix);
windowrulev2 = import (configPath + /windowrulev2.nix);
};
in {
wayland.windowManager.hyprland = {
enable = true;
# package = flake.inputs.hyprland.packages.${pkgs.system}.hyprland;
xwayland.enable = true;
systemd.enable = false;
settings = configImports;
};
}

View file

@ -0,0 +1,18 @@
{
flake,
pkgs,
...
}: {
programs.wpaperd = {
enable = true;
package = flake.inputs.wpaperd.packages.${pkgs.system}.default;
settings = {
"default" = {
path = "~/Files/Projects/dotfiles/home/modules/hypr/wpaperd/wallpaper";
apply-shadow = true;
duration = "1m";
sorting = "random";
};
};
};
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 808 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 578 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 632 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 467 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 422 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 366 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 869 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 457 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 876 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 720 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 405 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 MiB