diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf index 6437f78..4ebb6aa 100644 --- a/.config/hypr/hyprland.conf +++ b/.config/hypr/hyprland.conf @@ -97,7 +97,7 @@ exec = gsettings set org.gnome.desktop.interface font-name "IosevkaNerdFont" general { gaps_in = 0 # I don't care about seeing the wallpaper all the time. I prefer more # surface area for actual applications - gaps_out = 5 + gaps_out = 0 border_size = 2 @@ -205,10 +205,10 @@ misc { # https://wiki.hyprland.org/Configuring/Variables/#input input { - kb_layout = us + kb_layout = us, pl kb_variant = kb_model = - kb_options = + kb_options = grp:caps_toggle # As someone mentioned this is a pretty good switching mechanism, never really use capsLCK anyway kb_rules = follow_mouse = 1 @@ -249,6 +249,7 @@ bind = $mainMod, V, togglefloating, bind = $mainMod, D, exec, $menu bind = $mainMod, P, pseudo, # dwindle # bind = $mainMod, J, togglesplit, # dwindle +bind = $mainMod, F, exec, hyprctl dispatch toggleWindowFullscreen # Move focus with mainMod + arrow keys bind = $mainMod, left, movefocus, l @@ -317,6 +318,10 @@ bindl = , XF86AudioPlay, exec, playerctl play-pause bindl = , XF86AudioPrev, exec, playerctl previous bind = $mainMod SHIFT, R, exec, pkill waybar & hyprctl dispatch exec waybar & blueman-applet # Blueman applet likes to crash + +bind = $mainMod, G, exec, ~/.config/hypr/scripts/gaps.sh 25 # A toggle gaps option for experimentation +bind = $mainMod, W, exec, ~/.config/hypr/scripts/wallpaper.sh ~/.config/hypr/scripts/Wallpapers contain +exec = ~/.config/hypr/scripts/wallpaper.sh ~/.config/hypr/scripts/Wallpapers contain ############################## ### WINDOWS AND WORKSPACES ### ############################## diff --git a/.config/hypr/hyprpaper.conf b/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..3c5814a --- /dev/null +++ b/.config/hypr/hyprpaper.conf @@ -0,0 +1,2 @@ +# NOTE: All the actual wallpaper loading is handled in the ./scripts/wallpaper.sh script +splash = false diff --git a/.config/hypr/scripts/Wallpapers/Music/C - A swarm of the sun - An Empire.jpg b/.config/hypr/scripts/Wallpapers/Music/C - A swarm of the sun - An Empire.jpg new file mode 100755 index 0000000..8a40a53 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/C - A swarm of the sun - An Empire.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/C - Cult of Luna - Mariner.jpg b/.config/hypr/scripts/Wallpapers/Music/C - Cult of Luna - Mariner.jpg new file mode 100755 index 0000000..fc87881 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/C - Cult of Luna - Mariner.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/E - Hakita - Ultrakill_ Encores.jpg b/.config/hypr/scripts/Wallpapers/Music/E - Hakita - Ultrakill_ Encores.jpg new file mode 100755 index 0000000..ff483a4 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/E - Hakita - Ultrakill_ Encores.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/E - Hakita - Ultrakill_ Imperfect Hatred.jpg b/.config/hypr/scripts/Wallpapers/Music/E - Hakita - Ultrakill_ Imperfect Hatred.jpg new file mode 100755 index 0000000..3d3fa18 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/E - Hakita - Ultrakill_ Imperfect Hatred.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/E - Marzuku - Colliding Stars.jpg b/.config/hypr/scripts/Wallpapers/Music/E - Marzuku - Colliding Stars.jpg new file mode 100755 index 0000000..6bc188e Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/E - Marzuku - Colliding Stars.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/E - Marzuku - Impius Arcem.jpg b/.config/hypr/scripts/Wallpapers/Music/E - Marzuku - Impius Arcem.jpg new file mode 100755 index 0000000..7bae760 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/E - Marzuku - Impius Arcem.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/E - ej lake - I AM YOUR BEATS.jpg b/.config/hypr/scripts/Wallpapers/Music/E - ej lake - I AM YOUR BEATS.jpg new file mode 100755 index 0000000..2b02b27 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/E - ej lake - I AM YOUR BEATS.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/ELC - Whiteweek - i hate my generation, we seem to stand for nothing.jpg b/.config/hypr/scripts/Wallpapers/Music/ELC - Whiteweek - i hate my generation, we seem to stand for nothing.jpg new file mode 100755 index 0000000..ffc1534 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/ELC - Whiteweek - i hate my generation, we seem to stand for nothing.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/ELC - Whiteweek - spring demo 2k25.jpg b/.config/hypr/scripts/Wallpapers/Music/ELC - Whiteweek - spring demo 2k25.jpg new file mode 100755 index 0000000..ddb8adb Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/ELC - Whiteweek - spring demo 2k25.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/J - Casey Edwards - DMC5.jpg b/.config/hypr/scripts/Wallpapers/Music/J - Casey Edwards - DMC5.jpg new file mode 100755 index 0000000..180171e Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/J - Casey Edwards - DMC5.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/J - DragonForce - Inhuman rampage.jpg b/.config/hypr/scripts/Wallpapers/Music/J - DragonForce - Inhuman rampage.jpg new file mode 100755 index 0000000..0f2829b Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/J - DragonForce - Inhuman rampage.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/J - I will never be the same - Standby.jpg b/.config/hypr/scripts/Wallpapers/Music/J - I will never be the same - Standby.jpg new file mode 100755 index 0000000..8c2a5b0 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/J - I will never be the same - Standby.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/L - Covox - Strike EP.jpg b/.config/hypr/scripts/Wallpapers/Music/L - Covox - Strike EP.jpg new file mode 100755 index 0000000..0f5e82b Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/L - Covox - Strike EP.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/L - MBR - Hardwarez.jpg b/.config/hypr/scripts/Wallpapers/Music/L - MBR - Hardwarez.jpg new file mode 100755 index 0000000..5e70124 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/L - MBR - Hardwarez.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/L - MBR - VIRTUAVERSE.OST.jpg b/.config/hypr/scripts/Wallpapers/Music/L - MBR - VIRTUAVERSE.OST.jpg new file mode 100755 index 0000000..18e4133 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/L - MBR - VIRTUAVERSE.OST.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/L - MBR - Virus.Dos.jpg b/.config/hypr/scripts/Wallpapers/Music/L - MBR - Virus.Dos.jpg new file mode 100755 index 0000000..20a5ec0 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/L - MBR - Virus.Dos.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/LC - 65daysofstatic - Mimik.jpg b/.config/hypr/scripts/Wallpapers/Music/LC - 65daysofstatic - Mimik.jpg new file mode 100755 index 0000000..726c76a Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/LC - 65daysofstatic - Mimik.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/R - AZALI - CHAOS CONSTRUCT.jpg b/.config/hypr/scripts/Wallpapers/Music/R - AZALI - CHAOS CONSTRUCT.jpg new file mode 100755 index 0000000..bdd22dd Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/R - AZALI - CHAOS CONSTRUCT.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/R - AZALI - Voices From the True World VII.jpg b/.config/hypr/scripts/Wallpapers/Music/R - AZALI - Voices From the True World VII.jpg new file mode 100755 index 0000000..76799a7 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/R - AZALI - Voices From the True World VII.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/R - Christopher Larkin - Hollow Knight.jpg b/.config/hypr/scripts/Wallpapers/Music/R - Christopher Larkin - Hollow Knight.jpg new file mode 100755 index 0000000..9359efc Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/R - Christopher Larkin - Hollow Knight.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/R - Desolo Zantas - Void Termina.jpg b/.config/hypr/scripts/Wallpapers/Music/R - Desolo Zantas - Void Termina.jpg new file mode 100755 index 0000000..18848b1 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/R - Desolo Zantas - Void Termina.jpg differ diff --git a/.config/hypr/scripts/Wallpapers/Music/R - Tokyo Philharmonic Orchestra - Kirby 25th anniversary Concert.jpg b/.config/hypr/scripts/Wallpapers/Music/R - Tokyo Philharmonic Orchestra - Kirby 25th anniversary Concert.jpg new file mode 100755 index 0000000..7585134 Binary files /dev/null and b/.config/hypr/scripts/Wallpapers/Music/R - Tokyo Philharmonic Orchestra - Kirby 25th anniversary Concert.jpg differ diff --git a/.config/hypr/scripts/gaps.sh b/.config/hypr/scripts/gaps.sh new file mode 100755 index 0000000..6a5e67d --- /dev/null +++ b/.config/hypr/scripts/gaps.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +TARGET=${1:-20} + +current=$( + hyprctl getoption general:gaps_in 2>/dev/null \ + | grep -oE '[0-9]+' \ + | head -n1 \ + || echo 0 +) + +if [ "$current" -eq 0 ]; then + hyprctl keyword general:gaps_in $TARGET + hyprctl keyword general:gaps_out $TARGET +else + hyprctl keyword general:gaps_in 0 + hyprctl keyword general:gaps_out 0 +fi diff --git a/.config/hypr/scripts/wallpaper.sh b/.config/hypr/scripts/wallpaper.sh new file mode 100755 index 0000000..157c6e7 --- /dev/null +++ b/.config/hypr/scripts/wallpaper.sh @@ -0,0 +1,48 @@ +#!/usr/bin/env bash + +usage() { + echo "Usage: $(basename "$0") (mode) + + Picks a random file under (recursively) and sets it + as the wallpaper on all monitors via 'hyprctl hyprpaper'. + + Example: + $(basename "$0") ~/Pictures/Wallpapers contain" + exit 1 +} + +if [[ $# -eq 0 ]]; then + usage +fi + +DIR="$1" +if [[ -n $2 ]]; then + MODE="$2:" + echo "Info: Mode set to '$MODE'" +else + MODE="" +fi + +if [[ ! -d "$DIR" ]]; then + echo "Error: '$DIR' is not a directory." >&2 + exit 2 +fi + +FILE=$(find "$DIR" -type f | shuf -n1) + +if [[ -z "$FILE" ]]; then + echo "Error: No files found in '$DIR'." >&2 + exit 3 +fi + +echo "Info: Chosen file '$FILE' from '$DIR'." + +echo "Info: Preloading wallpaper" +hyprctl hyprpaper preload "$FILE" +echo "Info: Selecting wallpaper" +for monitor in $(hyprctl monitors | grep 'Monitor' | awk '{ print $2 }'); do + echo " Info: Selecting wallpaper for: '$monitor'" + hyprctl hyprpaper wallpaper "eDP-1,$MODE$FILE" +done +echo "Info: Unloading unused wallpapers" +hyprctl hyprpaper unload all diff --git a/nix/modules/genericpkgs.nix b/nix/modules/genericpkgs.nix index 31e586c..8fee431 100644 --- a/nix/modules/genericpkgs.nix +++ b/nix/modules/genericpkgs.nix @@ -15,10 +15,14 @@ nerd-fonts.iosevka-term ]; + programs.steam.enable = true; + environment.systemPackages = with pkgs; [ firefox spotify vesktop + obsidian + neovim brightnessctl networkmanagerapplet gh # Github CLI @@ -26,6 +30,10 @@ gcc clang + clang-tools + unzip stow + distrobox + podman ]; }