Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,8 +111,13 @@ jobs:
COMMITS=$(git log --pretty=format:"%s|%h" ${LATEST_TAG}..HEAD)
fi

BREAKING=""
while IFS='|' read -r msg hash; do
if echo "$msg" | grep -qE "^feat(\(.+\))?:"; then
# Check for breaking changes first (feat!, fix!, etc.)
if echo "$msg" | grep -qE "^(feat|fix|refactor)(\(.+\))?!:"; then
CLEAN_MSG=$(echo "$msg" | sed -E 's/^(feat|fix|refactor)(\([^)]+\))?!:\s*//')
BREAKING="${BREAKING}- ${CLEAN_MSG} (${hash})\n"
elif echo "$msg" | grep -qE "^feat(\(.+\))?:"; then
CLEAN_MSG=$(echo "$msg" | sed -E 's/^feat(\([^)]+\))?:\s*//')
FEATURES="${FEATURES}- ${CLEAN_MSG} (${hash})\n"
elif echo "$msg" | grep -qE "^fix(\(.+\))?:"; then
Expand All @@ -125,6 +130,9 @@ jobs:
done <<< "$COMMITS"

# Build release notes
if [ -n "$BREAKING" ]; then
NOTES="${NOTES}## ⚠️ Breaking Changes\n${BREAKING}\n"
fi
if [ -n "$FEATURES" ]; then
NOTES="${NOTES}## Features\n${FEATURES}\n"
fi
Expand Down
5 changes: 1 addition & 4 deletions configs/i3/config
Original file line number Diff line number Diff line change
Expand Up @@ -308,9 +308,8 @@ bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'Exit i3?' -B 'Yes' 'i3-msg e

# Always float certain windows
for_window [class="Pavucontrol"] floating enable
for_window [class="Arandr"] floating enable
for_window [class="Lxappearance"] floating enable
for_window [class="Nitrogen"] floating enable
for_window [class="Arandr"] floating enable
for_window [window_role="pop-up"] floating enable
for_window [window_role="task_dialog"] floating enable
for_window [window_role="Preferences"] floating enable
Expand Down Expand Up @@ -356,8 +355,6 @@ exec_always --no-startup-id feh --bg-fill ~/.config/wallpaper.png
# Blue light filter (Thrissur, Kerala, India)
exec --no-startup-id redshift -l 10.5276:76.2144

# Restore last wallpaper (if using nitrogen)
# exec --no-startup-id nitrogen --restore

# Polkit authentication agent
exec --no-startup-id /usr/libexec/xfce-polkit
Expand Down
1 change: 1 addition & 0 deletions configs/picom/picom.conf
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ inactive-opacity-override = false;
opacity-rule = [
"100:class_g = 'firefox'",
"100:class_g = 'Google-chrome'",
"100:class_g = 'Brave-browser'",
"95:class_g = 'Code'",
"95:class_g = 'VSCodium'",
"100:class_g = 'Gimp'",
Expand Down
82 changes: 50 additions & 32 deletions configs/polybar/config.ini
Original file line number Diff line number Diff line change
Expand Up @@ -118,22 +118,22 @@ label-padding = 2
type = internal/fs
interval = 25
mount-0 = /
format-mounted-prefix = "DISK "
format-mounted-prefix = " "
format-mounted-prefix-foreground = ${colors.primary}
label-mounted = %percentage_used%% %used%/%total%

[module/cpu]
type = internal/cpu
interval = 2

format-prefix = "CPU "
format-prefix = ""
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%

[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix = " "
format-prefix-foreground = ${colors.primary}
label = %percentage_used%% %used%/%total%

Expand All @@ -146,20 +146,20 @@ interval = 3.0

; Connected state
format-connected = <ramp-signal> <label-connected>
label-connected = %essid% ↓%downspeed% ↑%upspeed%
label-connected = %essid% ↓%downspeed% ↑%upspeed%
label-connected-foreground = ${colors.foreground}

; Disconnected state
format-disconnected = <label-disconnected>
label-disconnected = NET Disconnected
label-disconnected = Disconnected
label-disconnected-foreground = ${colors.alert}

; WiFi signal strength
ramp-signal-0 = NET
ramp-signal-1 = NET
ramp-signal-2 = NET
ramp-signal-3 = NET
ramp-signal-4 = NET
; WiFi signal strength icons
ramp-signal-0 =
ramp-signal-1 =
ramp-signal-2 =
ramp-signal-3 =
ramp-signal-4 =
ramp-signal-foreground = ${colors.primary}

; Click to open network settings
Expand All @@ -176,29 +176,32 @@ date-alt = "%Y-%m-%d"
time = %I:%M %p
time-alt = %I:%M:%S %p

; format-prefix = "DATE "
format-prefix-foreground = ${colors.primary}

label = %date% %time%

[module/calendar]
type = custom/text
content = CAL
content-foreground = ${colors.primary}
format =
format-foreground = ${colors.primary}
click-left = yad --calendar --no-buttons --undecorated --close-on-unfocus --skip-taskbar --on-top --fixed --geometry=+960+30

[module/pulseaudio]
type = internal/pulseaudio

format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <ramp-volume> <label-volume>
label-volume = %percentage%%

format-muted-prefix = "VOL "
format-muted-prefix-foreground = ${colors.primary}
format-muted-prefix = " "
format-muted-prefix-foreground = ${colors.alert}
label-muted = MUTED
label-muted-foreground = ${colors.alert}

ramp-volume-0 = 
ramp-volume-1 = 
ramp-volume-2 = 
ramp-volume-foreground = ${colors.primary}

; Click to open volume control
click-right = pavucontrol

Expand All @@ -208,38 +211,53 @@ battery = BAT1
adapter = ACAD
full-at = 98

format-charging-prefix = "BAT "
format-charging-prefix-foreground = ${colors.primary}
label-charging = %percentage%% CHR
format-charging = <animation-charging> <label-charging>
label-charging = %percentage%%
label-charging-foreground = ${colors.success}

format-discharging-prefix = "BAT "
format-discharging-prefix-foreground = ${colors.primary}
format-discharging = <ramp-capacity> <label-discharging>
label-discharging = %percentage%%

format-full-prefix = "BAT "
format-full-prefix-foreground = ${colors.primary}
format-full-prefix = " "
format-full-prefix-foreground = ${colors.success}
label-full = FULL
label-full-foreground = ${colors.success}

; Battery capacity icons
ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-3 = 
ramp-capacity-4 = 
ramp-capacity-foreground = ${colors.primary}

; Charging animation
animation-charging-0 = 
animation-charging-1 = 
animation-charging-2 = 
animation-charging-3 = 
animation-charging-4 = 
animation-charging-foreground = ${colors.success}
animation-charging-framerate = 750

[module/powermenu]
type = custom/menu

expand-right = true
expand-right = false
format-spacing = 1

label-open = POWER
label-open =
label-open-foreground = ${colors.primary}
label-close = " CANCEL"
label-close =
label-close-foreground = ${colors.alert}
label-separator = |
label-separator-foreground = ${colors.foreground-alt}

menu-0-0 = reboot
menu-0-0 =
menu-0-0-exec = systemctl reboot
menu-0-1 = poweroff
menu-0-1 =
menu-0-1-exec = systemctl poweroff
menu-0-2 = logout
menu-0-2 =
menu-0-2-exec = i3-msg exit

[module/tray]
Expand All @@ -255,4 +273,4 @@ pseudo-transparency = false

[global/wm]
margin-top = 0
margin-bottom = 0
margin-bottom = 0
21 changes: 11 additions & 10 deletions install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -212,25 +212,25 @@ install_packages() {

# Packages based on official Fedora i3 Spin + draphyOS customizations
PACKAGES=(
# === Fedora i3 Spin Official (Minimal) ===
# Core
i3 i3lock i3status dmenu dunst lightdm
# Terminal (official: urxvt)
# === Core ===
i3 i3lock dunst lightdm
# Terminal
rxvt-unicode
# Networking
NetworkManager network-manager-applet firefox
# Audio
pulseaudio-utils pavucontrol
# Misc
# Utilities
brightnessctl htop mousepad Thunar

# === Fedora i3 Spin Official (Extended) ===
rofi powertop arandr tmux xarchiver nitrogen lxappearance
# App launcher
rofi
# Productivity & GUI tools
lxappearance powertop arandr tmux

# === draphyOS Customizations ===
# Shell
fish
# Status bar (replaces i3status)
# Status bar
polybar
# Compositor
picom
Expand All @@ -246,7 +246,8 @@ install_packages() {
# Night light
redshift geoclue2
# Fonts
fira-code-fonts google-noto-sans-mono-vf-fonts fontawesome4-fonts
fira-code-fonts google-noto-sans-mono-vf-fonts
fontawesome-6-free-fonts fontawesome-6-brands-fonts
# Icons & Themes
mint-y-icons adwaita-cursor-theme
# Calendar popup
Expand Down
31 changes: 24 additions & 7 deletions uninstall.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
# https://github.com/draphy/draphyOS
#

set -e

# Colors (with fallback for non-color terminals)
if [[ -t 1 ]] && [[ "${TERM:-dumb}" != "dumb" ]]; then
Expand Down Expand Up @@ -109,10 +108,20 @@ remove_configs() {
# Remove wallpaper (copied, not symlinked)
rm -f "$HOME/.config/wallpaper.png" 2>/dev/null || true

# Remove empty directories created by install
# Remove empty directories created by install (only if empty)
rmdir "$HOME/.config/i3/scripts" 2>/dev/null || true
rmdir "$HOME/.config/i3" 2>/dev/null || true
rmdir "$HOME/.config/polybar/scripts" 2>/dev/null || true
rmdir "$HOME/.config/polybar" 2>/dev/null || true
rmdir "$HOME/.config/rofi" 2>/dev/null || true
rmdir "$HOME/.config/dunst" 2>/dev/null || true
rmdir "$HOME/.config/picom" 2>/dev/null || true
rmdir "$HOME/.config/fish" 2>/dev/null || true
rmdir "$HOME/.config/gtk-3.0" 2>/dev/null || true
rmdir "$HOME/.config/redshift" 2>/dev/null || true
rmdir "$HOME/.config/xfce4/xfconf/xfce-perchannel-xml" 2>/dev/null || true
rmdir "$HOME/.config/xfce4/xfconf" 2>/dev/null || true
rmdir "$HOME/.config/xfce4" 2>/dev/null || true

print_success "Configs removed"
}
Expand All @@ -125,15 +134,21 @@ revert_shell() {
if [ "$current_shell" = "fish" ]; then
echo -e "Your default shell is currently ${YELLOW}fish${NC}."
echo -e "Do you want to revert to ${GREEN}bash${NC}? (y/n)"
read -r response
read -r response </dev/tty || response="n"

if [[ "$response" =~ ^[Yy]$ ]]; then
local bash_path
bash_path=$(command -v bash)
local fish_path
fish_path=$(command -v fish)
if [ -n "$bash_path" ]; then
print_step "Reverting shell to bash..."
if sudo chsh -s "$bash_path" "$USER" 2>/dev/null || chsh -s "$bash_path" 2>/dev/null; then
print_success "Shell reverted to bash"
# Remove fish from /etc/shells if it was added by draphyOS
if [ -n "$fish_path" ] && grep -q "$fish_path" /etc/shells 2>/dev/null; then
sudo sed -i "\|$fish_path|d" /etc/shells 2>/dev/null || true
fi
else
print_warning "Could not change shell. Run manually: chsh -s $bash_path"
fi
Expand All @@ -149,18 +164,20 @@ remove_packages() {
echo -e "Do you want to ${RED}remove draphyOS packages${NC}? (y/n)"
echo -e "${YELLOW}Warning: This will remove polybar, picom, redshift, etc.${NC}"
echo -e "${YELLOW}Core packages (i3, rofi, dunst, etc.) will be kept.${NC}"
read -r response
read -r response </dev/tty || response="n"

if [[ "$response" =~ ^[Yy]$ ]]; then
print_step "Removing draphyOS-specific packages..."

# Only remove packages that are draphyOS additions, not core i3 spin
PACKAGES=(
polybar picom
polybar picom fish
feh flameshot playerctl
xss-lock xdotool xclip
redshift yad qt5ct
mint-y-icons
ImageMagick
fontawesome-6-free-fonts fontawesome-6-brands-fonts
)

sudo dnf remove -y "${PACKAGES[@]}" 2>/dev/null || true
Expand Down Expand Up @@ -213,7 +230,7 @@ restore_backup() {
if [ -n "$LATEST_BACKUP" ] && [ -d "$LATEST_BACKUP" ]; then
echo -e "Found backup: ${YELLOW}$LATEST_BACKUP${NC}"
echo -e "Do you want to ${GREEN}restore${NC} this backup? (y/n)"
read -r response
read -r response </dev/tty || response="n"

if [[ "$response" =~ ^[Yy]$ ]]; then
print_step "Restoring backup..."
Expand Down Expand Up @@ -280,7 +297,7 @@ main() {
echo " - Restoring your backup"
echo ""
echo -e "Do you want to continue? (y/n)"
read -r response
read -r response </dev/tty || response="n"

if [[ ! "$response" =~ ^[Yy]$ ]]; then
echo "Uninstall cancelled."
Expand Down