Compare commits

...

10 Commits

16 changed files with 181 additions and 10 deletions

View File

@@ -8,8 +8,7 @@ $browser = brave
exec-once = /usr/lib/xdg-desktop-portal-hyprland & exec-once = /usr/lib/xdg-desktop-portal-hyprland &
exec-once = /usr/lib/xdg-desktop-portal & exec-once = /usr/lib/xdg-desktop-portal &
exec-once = swww-daemon exec-once = hyprpaper
exec-once = swww img ~/.wallpapers/liminal.png
exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" # for GTK4 apps
exec = gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3-dark" # for GTK3 apps exec = gsettings set org.gnome.desktop.interface gtk-theme "adw-gtk3-dark" # for GTK3 apps
@@ -82,7 +81,7 @@ input {
accel_profile = flat accel_profile = flat
force_no_accel=2 force_no_accel=2
sensitivity = 0 # -1.0 - 1.0, 0 means no modification. sensitivity = 1 # -1.0 - 1.0, 0 means no modification.
touchpad { touchpad {
natural_scroll = true natural_scroll = true
@@ -102,3 +101,4 @@ source = ~/.config/hypr/keybinds.conf
source = ~/.config/hypr/applications.conf source = ~/.config/hypr/applications.conf
source = ~/.config/hypr/decoration.conf source = ~/.config/hypr/decoration.conf
source = ~/.config/hypr/workspaces.conf source = ~/.config/hypr/workspaces.conf
source = ~/.config/hypr/hyprpaper.conf

View File

@@ -0,0 +1 @@
splash = false

View File

@@ -40,6 +40,9 @@ bind = $mainMod, mouse_up, workspace, e-1
bindm = $mainMod, mouse:272, movewindow bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow bindm = $mainMod, mouse:273, resizewindow
# Change wallpaper
bind = $mainMod, W, exec, ~/.config/wofi/scripts/wallpaper.sh
# Laptop multimedia keys for volume and LCD brightness # Laptop multimedia keys for volume and LCD brightness
bindel = $mainMod, P, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+ bindel = $mainMod, P, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+
bindel = $mainMod, O, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%- bindel = $mainMod, O, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-

1
.config/kitty/kitty.conf Normal file
View File

@@ -0,0 +1 @@
confirm_os_window_close 0

View File

@@ -76,7 +76,7 @@
background-color: @Buttons; background-color: @Buttons;
padding: 0.3rem 0.7rem; padding: 0.3rem 0.7rem;
margin: 5px 0px; margin: 5px 0px;
margin-left: 20px; margin-left: 7px;
margin-right: 10px; margin-right: 10px;
border-radius: 10px; /* This module is always rounded */ border-radius: 10px; /* This module is always rounded */
min-width: 0; min-width: 0;
@@ -118,6 +118,9 @@
transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out; transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
} }
#custom-power {
margin-right: 11px;
}
#battery { #battery {
color: @Text; color: @Text;

View File

@@ -0,0 +1,91 @@
#!/usr/bin/env bash
# Configuration
WALLPAPER_DIR="$HOME/.wallpapers" # Change this to your wallpaper directory
CACHE_DIR="$HOME/.cache/wallpaper-selector"
THUMBNAIL_WIDTH="250" # Size of thumbnails in pixels (16:9)
THUMBNAIL_HEIGHT="141"
# Create cache directory if it doesn't exist
mkdir -p "$CACHE_DIR"
# Function to generate thumbnail
generate_thumbnail() {
local input="$1"
local output="$2"
magick "$input" -thumbnail "${THUMBNAIL_WIDTH}x${THUMBNAIL_HEIGHT}^" -gravity center -extent "${THUMBNAIL_WIDTH}x${THUMBNAIL_HEIGHT}" "$output"
}
# Create shuffle icon thumbnail on the fly
SHUFFLE_ICON="$CACHE_DIR/shuffle_thumbnail.png"
# Create a properly sized shuffle icon thumbnail
# magick -size "${THUMBNAIL_WIDTH}x${THUMBNAIL_HEIGHT}" xc:#1e1e2e \
# "$HOME/Repos/wallpaper-selector/assets/shuffle.png" -resize "120x120" -gravity center -composite \
# "$SHUFFLE_ICON"
magick -size "${THUMBNAIL_WIDTH}x${THUMBNAIL_HEIGHT}" xc:#1e1e2e \
\( "$HOME/Repos/wallpaper-selector/assets/shuffle.png" -resize "80x80" \) \
-gravity center -composite "$SHUFFLE_ICON"
# Generate thumbnails and create menu items
generate_menu() {
# Add random/shuffle option with a name that sorts first (using ! prefix)
echo -en "img:$SHUFFLE_ICON\x00info:!Random Wallpaper\x1fRANDOM\n"
# Then add all wallpapers
for img in "$WALLPAPER_DIR"/*.{jpg,jpeg,png}; do
# Skip if no matches found
[[ -f "$img" ]] || continue
# Generate thumbnail filename
thumbnail="$CACHE_DIR/$(basename "${img%.*}").png"
# Generate thumbnail if it doesn't exist or is older than source
if [[ ! -f "$thumbnail" ]] || [[ "$img" -nt "$thumbnail" ]]; then
generate_thumbnail "$img" "$thumbnail"
fi
# Output menu item (filename and path)
echo -en "img:$thumbnail\x00info:$(basename "$img")\x1f$img\n"
done
}
# Use wofi to display grid of wallpapers - IMPORTANT: added --sort-order=default
selected=$(generate_menu | wofi --show dmenu \
--cache-file /dev/null \
--define "image-size=${THUMBNAIL_WIDTH}x${THUMBNAIL_HEIGHT}" \
--columns 3 \
--allow-images \
--insensitive \
--sort-order=default \
--prompt "Select Wallpaper" \
--conf ~/.config/wofi/wallpaper.conf \
)
# Set wallpaper if one was selected
if [ -n "$selected" ]; then
# Remove the img: prefix to get the cached thumbnail path
thumbnail_path="${selected#img:}"
# Check if random wallpaper was selected
if [[ "$thumbnail_path" == "$SHUFFLE_ICON" ]]; then
# Select a random wallpaper from the directory
original_path=$(find "$WALLPAPER_DIR" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.png" \) | shuf -n 1)
else
# Get the original filename from the thumbnail path
original_filename=$(basename "${thumbnail_path%.*}")
# Find the corresponding original file in the wallpaper directory
original_path=$(find "$WALLPAPER_DIR" -type f -name "${original_filename}.*" | head -n1)
fi
# Ensure a valid wallpaper was found before proceeding
if [ -n "$original_path" ]; then
hyprctl hyprpaper wallpaper ",$original_path"
# Save the selection for persistence
echo "$original_path" > "$HOME/.cache/current_wallpaper"
# Optional: Notify user
notify-send "Wallpaper" "Wallpaper has been updated" -i "$original_path"
else
notify-send "Wallpaper Error" "Could not find the original wallpaper file."
fi
fi

View File

@@ -0,0 +1,18 @@
# Window settings
width=800
height=600
location=center
show=dmenu
prompt=Select Wallpaper
layer=overlay
# Layout
columns=3
image_size=250x141 # 16:9
allow_images=true
insensitive=true
hide_scroll=true
sort_order=alphabetical
# Style
style_path=~/.config/wofi/wallpaper.css

View File

@@ -0,0 +1,47 @@
window {
background-color: #1e1e2e;
border-radius: 8px;
border: 2px solid #313244;
}
#input {
margin: 2px;
padding: 4px;
border-radius: 4px;
border: none;
background-color: #313244;
color: #cdd6f4;
}
#inner-box {
margin: 0px;
}
#outer-box {
margin: 0px;
}
#scroll {
margin: 0px;
}
#text {
margin: 2px;
color: #cdd6f4;
}
#entry {
padding: 2px;
margin: 0px;
border-radius: 4px;
}
#entry:selected {
background-color: #313244;
}
#img {
margin: 2px;
padding-left: 4px;
border-radius: 4px;
}

BIN
.wallpapers/1345972534.avif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

BIN
.wallpapers/city.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 MiB

BIN
.wallpapers/cpu.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 298 KiB

BIN
.wallpapers/liminal.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

BIN
.wallpapers/monochrome.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

BIN
.wallpapers/sanFran.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 KiB

11
.zshrc
View File

@@ -1,7 +1,6 @@
# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. # Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc.
# Initialization code that may require console input (password prompts, [y/n] # Initialization code that may require console input (password prompts, [y/n]
# confirmations, etc.) must go above this block; everything else may go below. # confirmations, etc.) must go above this block; everything else may go below.
neofetch neofetch
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
@@ -15,11 +14,13 @@ export QT_QPA_PLATFORMTHEME=qt6ct # for Qt6
alias dotfiles="git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME" alias dotfiles="git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME"
source ~/powerlevel10k/powerlevel10k.zsh-theme source ~/powerlevel10k/powerlevel10k.zsh-theme
# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh.
[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
# Created by `pipx` on 2026-01-15 16:32:17 # Path updates
export PATH="$PATH:/home/dylan/.local/bin" export PATH="$PATH:/home/dylan/.local/bin"
export PATH=/home/dylan/.opencode/bin:$PATH
# Env Variables
export EDITOR=nvim
export VISUAL=nvim

View File

@@ -1,11 +1,17 @@
# Requirements # Requirements
- hyprland (Desktop Env) - hyprland (Desktop Env)
- hyprpaper (Wallpapers)
- kitty (Terminal) - kitty (Terminal)
- thunar (File Manager) - thunar (File Manager)
- wofi (Application Select Menu) - wofi (Menus)
- adw-gtk-theme - adw-gtk-theme
- zsh-syntax-highlighting - zsh-syntax-highlighting
- mako (Notifications) - mako (Notifications)
- nvim (Text Editor)
## System Reqs
- wpctl (Audio config)
- imagemagick (Wallpaper caching)
# Setup # Setup
1) Ensure each requirement is installed 1) Ensure each requirement is installed