Compare commits
10 Commits
d78bd2f08c
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| fab1b3a175 | |||
| 2d25b86d8e | |||
| 47af1cc086 | |||
| 03aea8a340 | |||
| 4fc9a1d838 | |||
| 4b0671287c | |||
| 20f6bede8e | |||
| 2af53f29a6 | |||
| 8474908d14 | |||
| 316d7f4c19 |
@@ -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
|
||||||
|
|||||||
1
.config/hypr/hyprpaper.conf
Normal file
1
.config/hypr/hyprpaper.conf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
splash = false
|
||||||
@@ -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
1
.config/kitty/kitty.conf
Normal file
@@ -0,0 +1 @@
|
|||||||
|
confirm_os_window_close 0
|
||||||
@@ -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;
|
||||||
|
|||||||
91
.config/wofi/scripts/wallpaper.sh
Executable file
91
.config/wofi/scripts/wallpaper.sh
Executable 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
|
||||||
18
.config/wofi/wallpaper.conf
Normal file
18
.config/wofi/wallpaper.conf
Normal 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
|
||||||
47
.config/wofi/wallpaper.css
Normal file
47
.config/wofi/wallpaper.css
Normal 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
BIN
.wallpapers/1345972534.avif
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 54 KiB |
BIN
.wallpapers/city.png
Normal file
BIN
.wallpapers/city.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.5 MiB |
BIN
.wallpapers/cpu.jpg
Normal file
BIN
.wallpapers/cpu.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 298 KiB |
BIN
.wallpapers/liminal.png
Normal file
BIN
.wallpapers/liminal.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
BIN
.wallpapers/monochrome.png
Normal file
BIN
.wallpapers/monochrome.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
BIN
.wallpapers/sanFran.jpg
Normal file
BIN
.wallpapers/sanFran.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 787 KiB |
11
.zshrc
11
.zshrc
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user