files
This commit is contained in:
11
config/hypr/autostart.conf
Normal file
11
config/hypr/autostart.conf
Normal file
@@ -0,0 +1,11 @@
|
||||
exec-once = hyprswitch init --show-title
|
||||
exec-once = hyprpaper
|
||||
exec-once = waybar
|
||||
exec-once = awww-daemon
|
||||
exec-once = hyprctl dispatch workspace 1
|
||||
exec-once = ~/.config/hypr/scripts/replay-startup.sh
|
||||
exec-once = walker --gapplication-service
|
||||
exec-once = swaync
|
||||
exec-once = gsettings set org.gnome.desktop.interface gtk-theme "catppuccin-mocha-mauve-standard+default"
|
||||
exec-once = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
||||
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||
97
config/hypr/binds.conf
Normal file
97
config/hypr/binds.conf
Normal file
@@ -0,0 +1,97 @@
|
||||
$mainMod = SUPER
|
||||
$secMod = SUPER SHIFT
|
||||
$terminal = kitty
|
||||
$fileManager = thunar
|
||||
$menu = walker
|
||||
$menuLauncher = ~/.config/rofi/launchers/type-2/launcher.sh
|
||||
|
||||
# System
|
||||
bind = $mainMod, F4, exec, wlogout -l ~/.config/wlogout/layout -s ~/.config/wlogout/style.css -b 4 -T 350 -B 350
|
||||
bind = $mainMod, Q, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, L, exec, hyprlock
|
||||
|
||||
# Windows
|
||||
bind = $secMod, V, togglefloating
|
||||
bind = $mainMod, F11, fullscreen, 0
|
||||
bind = $mainMod, T, layoutmsg, togglesplit
|
||||
bind = $secMod, right, movewindow, r
|
||||
bind = $secMod, left, movewindow, l
|
||||
bind = $secMod, up, movewindow, u
|
||||
bind = $secMod, down, movewindow, d
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
|
||||
# Applications
|
||||
bind = $mainMod, F, exec, firefox
|
||||
bind = $mainMod, S, exec, spotify
|
||||
bind = $mainMod, N, exec, swaync-client -t -sw
|
||||
bind = $secMod, N, exec, swaync-cleint --close-all
|
||||
bind = ALT, SPACE, exec, $menu
|
||||
bind = $mainMod, V, exec, walker --provider clipboard
|
||||
bind = ALT, Tab, exec, hyprswitch gui --mod-key=alt --key=tab --close=mod-key-release --reverse-key=mod=shift
|
||||
|
||||
# Screenshots
|
||||
bind = $secMod, S, exec, hyprshot -m region -z
|
||||
|
||||
# Screen recording
|
||||
bind = $mainMod, R, exec, notify-send "Recording Started" "Screen recording has started, Press Super + Shift + R to end it."; wf-recorder -f ~/Videos/$(date +%Y%m%d_%H%M%S).mp4 -g "$(slurp)"
|
||||
bind = $mainMod SHIFT, R, exec, pkill -INT wf-recorder && notify-send "Recording Saved" "Screen recording saved to ~/Videos/"
|
||||
bind = ALT, E, exec, killall -SIGUSR1 gpu-screen-recorder && notify-send "Replay Saved" "Clip dumped to ~/Videos/Replays"
|
||||
|
||||
# Audio
|
||||
bind = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bind = , XF86AudioNext, exec, playerctl next
|
||||
bind = , XF86AudioPrev, exec, playerctl previous
|
||||
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
|
||||
# Display
|
||||
bind = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
|
||||
bind = , XF86MonBrightnessUp, exec, brightnessctl set 5%+
|
||||
|
||||
# Opacity
|
||||
bind = $secMod, mouse_down, exec, ~/.config/hypr/scripts/opacity.sh decrease
|
||||
bind = $secMod, mouse_up, exec, ~/.config/hypr/scripts/opacity.sh increase
|
||||
|
||||
# Touchpad
|
||||
bind = , XF86TouchpadToggle, exec, hyprctl keyword input:touchpad:enabled toggle
|
||||
|
||||
# Switch to workspace
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
|
||||
# Move window to workspace
|
||||
bind = $secMod, 1, movetoworkspace, 1
|
||||
bind = $secMod, 2, movetoworkspace, 2
|
||||
bind = $secMod, 3, movetoworkspace, 3
|
||||
bind = $secMod, 4, movetoworkspace, 4
|
||||
bind = $secMod, 5, movetoworkspace, 5
|
||||
bind = $secMod, 6, movetoworkspace, 6
|
||||
|
||||
# Next/previous workspace on focused monitor
|
||||
bind = $mainMod, mouse_up, workspace, m+1
|
||||
bind = $mainMod, mouse_down, workspace, m-1
|
||||
bind = $mainMod, bracketright, exec, ~/.config/hypr/workspace_next.sh
|
||||
bind = $mainMod, bracketleft, exec, ~/.config/hypr/workspace_prev.sh
|
||||
|
||||
# Pin workspaces to monitors (uncomment to use)
|
||||
#workspace = 1, monitor:DP-1
|
||||
#workspace = 2, monitor:DP-1
|
||||
#workspace = 3, monitor:DP-1
|
||||
#workspace = 1, monitor:HDMI-A-1
|
||||
#workspace = 2, monitor:HDMI-A-1
|
||||
#workspace = 3, monitor:HDMI-A-1
|
||||
#workspace = 4, monitor:eDP-2
|
||||
#workspace = 5, monitor:eDP-2
|
||||
#workspace = 6, monitor:eDP-2
|
||||
#monitor = DP-1, 1920x1080@60, 0x0, 1
|
||||
#monitor = eDP-2, 2560x1600@144, 0x1080, 1.67
|
||||
#monitor = eDP-2, disable
|
||||
6
config/hypr/env.conf
Normal file
6
config/hypr/env.conf
Normal file
@@ -0,0 +1,6 @@
|
||||
env = QT_QPA_PLATFORMTHEME, qt6ct
|
||||
env = JAVA_AWT_WM_NONPARENTING, 1
|
||||
env = GTK_THEME,catppuccin-mocha-mauve-standard+default
|
||||
env = COLOR_SCHEME, prefer-dark
|
||||
env = LIBVA_DRIVER_NAME, nvidia
|
||||
env = __GLX_VENDOR_LIBRARY_NAME, nvidia
|
||||
7
config/hypr/hyprland.conf
Normal file
7
config/hypr/hyprland.conf
Normal file
@@ -0,0 +1,7 @@
|
||||
source = ~/.config/hypr/monitors.conf
|
||||
source = ~/.config/hypr/workspaces.conf
|
||||
source = ~/.config/hypr/autostart.conf
|
||||
source = ~/.config/hypr/env.conf
|
||||
source = ~/.config/hypr/windowrules.conf
|
||||
source = ~/.config/hypr/settings.conf
|
||||
source = ~/.config/hypr/binds.conf
|
||||
83
config/hypr/hyprland.conf.bak
Normal file
83
config/hypr/hyprland.conf.bak
Normal file
@@ -0,0 +1,83 @@
|
||||
|
||||
# This config is a STUB! This should never be generated.
|
||||
# Use the default lua config from https://github.com/hyprwm/Hyprland/blob/main/example/hyprland.lua
|
||||
|
||||
exec-once = hyprswitch init --show-title
|
||||
exec-once = waybar
|
||||
|
||||
env = QT_QPA_PLATFORMTHEME, qt6ct
|
||||
env = JAVA_AWT_WM_NONPARENTING, 1
|
||||
env = GTK_THEME = Adwaita:dark
|
||||
|
||||
input {
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
}
|
||||
}
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
$mainMod = SUPER
|
||||
$secMod = SUPER SHIFT
|
||||
$terminal = kitty
|
||||
$fileManager = dolphin
|
||||
$menu = rofi
|
||||
$menuLauncher = ~/.config/rofi/launchers/type-2/launcher.sh
|
||||
|
||||
bind = $mainMod, Q, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = ALT, SPACE, exec, bash $menuLauncher
|
||||
bind = $secMod, right, movewindow, r
|
||||
bind = $secMod, left, movewindow, l
|
||||
bind = $secMod, up, movewindow, u
|
||||
bind = $secMod, down, movewindow, d
|
||||
bind = $mainMod, F11, fullscreen, 0
|
||||
bind = $mainMod, F, exec, firefox
|
||||
bind = ALT, Tab, exec, hyprswitch gui --mod-key=alt --key=tab --close=mod-key-release --reverse-key=mod=shift
|
||||
bind = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bind = $secMod, S, exec, hyprshot -m region
|
||||
|
||||
# Pin workspaces to monitors
|
||||
workspace = 1, monitor:DP-1
|
||||
workspace = 2, monitor:DP-1
|
||||
workspace = 3, monitor:DP-1
|
||||
workspace = 4, monitor:eDP-1
|
||||
workspace = 5, monitor:eDP-1
|
||||
workspace = 6, monitor:eDP-1
|
||||
|
||||
# Switch to workspace
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
|
||||
# Move window to workspace
|
||||
bind = $secMod, 1, movetoworkspace, 1
|
||||
bind = $secMod, 2, movetoworkspace, 2
|
||||
bind = $secMod, 3, movetoworkspace, 3
|
||||
bind = $secMod, 4, movetoworkspace, 4
|
||||
bind = $secMod, 5, movetoworkspace, 5
|
||||
bind = $secMod, 6, movetoworkspace, 6
|
||||
|
||||
# Next/previous workspace on focused monitor
|
||||
bind = $mainMod, mouse_down, workspace, m+1
|
||||
bind = $mainMod, mouse_up, workspace, m-1
|
||||
bind = $mainMod, bracketright, workspace, m+1
|
||||
bind = $mainMod, bracketleft, workspace, m-1
|
||||
|
||||
monitor = DP-1, 1920x1080@60, 0x0, 1
|
||||
monitor = eDP-1, 2560x1600@144, 1920x0, 1.67
|
||||
|
||||
workspace = 1, monitor:DP-1
|
||||
workspace = 2, monitor:DP-1
|
||||
workspace = 3, monitor:DP-1
|
||||
workspace = 4, monitor:eDP-1
|
||||
workspace = 5, monitor:eDP-1
|
||||
workspace = 6, monitor:eDP-1
|
||||
130
config/hypr/hyprland.conf.bak2
Normal file
130
config/hypr/hyprland.conf.bak2
Normal file
@@ -0,0 +1,130 @@
|
||||
|
||||
# This config is a STUB! This should never be generated.
|
||||
# Use the default lua config from https://github.com/hyprwm/Hyprland/blob/main/example/hyprland.lua
|
||||
|
||||
source = ~/.config/hypr/monitors.conf
|
||||
source = ~/.config/hypr/workspaces.conf
|
||||
exec-once = hyprswitch init --show-title
|
||||
exec-once = hyprpaper
|
||||
exec-once = waybar
|
||||
exec-once = awww-daemon
|
||||
exec-once = hyprctl dispatch workspace 1
|
||||
exec-once = ~/.config/hypr/scripts/replay-startup.sh
|
||||
exec-once = walker --gapplication-service
|
||||
exec-once = swaync
|
||||
env = QT_QPA_PLATFORMTHEME, qt6ct
|
||||
env = JAVA_AWT_WM_NONPARENTING, 1
|
||||
env = GTK_THEME, Adwaita:dark
|
||||
env = COLOR_SCHEME, prefer-dark
|
||||
env = LIBVA_DRIVER_NAME, nvidia
|
||||
env = __GLX_VENDOR_LIBRARY_NAME, nvidia
|
||||
|
||||
windowrule = match:class ^(steam_app_1091500)$, fullscreen 1
|
||||
windowrule = match:class ^(ArqaamAccounting)$, float true
|
||||
windowrule = match:class ^(ArqaamAccounting)$, center true
|
||||
windowrule = match:title ^(Network Manager)$, float true
|
||||
|
||||
general {
|
||||
col.active_border = rgba(6C7086ff) # focused window border
|
||||
col.inactive_border = rgba(313244ff) # unfocused windows
|
||||
gaps_out = 10,10,10,10
|
||||
}
|
||||
|
||||
input {
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
clickfinger_behavior = true
|
||||
}
|
||||
numlock_by_default = true
|
||||
kb_layout = us,ara
|
||||
kb_variant = ,
|
||||
kb_options = grp:alt_shift_toggle
|
||||
}
|
||||
|
||||
general {
|
||||
}
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
$mainMod = SUPER
|
||||
$secMod = SUPER SHIFT
|
||||
$terminal = kitty
|
||||
$fileManager = hyprfm
|
||||
$menu = walker
|
||||
$menuLauncher = ~/.config/rofi/launchers/type-2/launcher.sh
|
||||
bind = $mainMod, F4, exec, wlogout -l ~/.config/wlogout/layout -s ~/.config/wlogout/style.css -b 4 -T 350 -B 350
|
||||
bind = $mainMod, Q, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $secMod, V, togglefloating
|
||||
bind = $mainMod, V, exec, walker --provider clipboard
|
||||
bind = ALT, SPACE, exec, $menu
|
||||
bind = ALT, E, exec, killall -SIGUSR1 gpu-screen-recorder && notify-send "Replay Saved" "Clip dumped to ~/Videos/Replays"
|
||||
bind = $secMod, right, movewindow, r
|
||||
bind = $secMod, left, movewindow, l
|
||||
bind = $secMod, up, movewindow, u
|
||||
bind = $secMod, down, movewindow, d
|
||||
bind = $mainMod, F11, fullscreen, 0
|
||||
bind = $mainMod, F, exec, firefox
|
||||
bind = $mainMod, S, exec, spotify
|
||||
bind = $mainMod, N, exec, swaync-client -t -sw
|
||||
bind = $secMod, N, exec, swaync-cleint --close-all
|
||||
bind = ALT, Tab, exec, hyprswitch gui --mod-key=alt --key=tab --close=mod-key-release --reverse-key=mod=shift
|
||||
bind = $mainMod, L, exec, hyprlock
|
||||
bind = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bind = , XF86AudioNext, exec, playerctl next
|
||||
bind = , XF86AudioPrev, exec, playerctl previous
|
||||
bind = $secMod, S, exec, hyprshot -m region -z
|
||||
bind = $mainMod, T, layoutmsg, togglesplit
|
||||
# Screen recording
|
||||
bind = $mainMod, R, exec, wf-recorder -f ~/Videos/$(date +%Y%m%d_%H%M%S).mp4 -g "$(slurp)"
|
||||
bind = $mainMod SHIFT, R, exec, pkill -INT wf-recorder
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
bind = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
|
||||
bind = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
|
||||
bind = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
|
||||
bind = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
|
||||
bind = , XF86MonBrightnessUp, exec, brightnessctl set 5%+
|
||||
bind = $secMod, mouse_down, exec, ~/.config/hypr/scripts/opacity.sh decrease
|
||||
bind = $secMod, mouse_up, exec, ~/.config/hypr/scripts/opacity.sh increase
|
||||
bind = , XF86TouchpadToggle, exec, hyprctl keyword input:touchpad:enabled toggle
|
||||
# Pin workspaces to monitors
|
||||
#workspace = 1, monitor:DP-1
|
||||
#workspace = 2, monitor:DP-1
|
||||
#workspace = 3, monitor:DP-1
|
||||
#workspace = 1, monitor:HDMI-A-1
|
||||
#workspace = 2, monitor:HDMI-A-1
|
||||
#workspace = 3, monitor:HDMI-A-1
|
||||
#workspace = 4, monitor:eDP-2
|
||||
#workspace = 5, monitor:eDP-2
|
||||
#workspace = 6, monitor:eDP-2
|
||||
|
||||
# Switch to workspace
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
|
||||
# Move window to workspace
|
||||
bind = $secMod, 1, movetoworkspace, 1
|
||||
bind = $secMod, 2, movetoworkspace, 2
|
||||
bind = $secMod, 3, movetoworkspace, 3
|
||||
bind = $secMod, 4, movetoworkspace, 4
|
||||
bind = $secMod, 5, movetoworkspace, 5
|
||||
bind = $secMod, 6, movetoworkspace, 6
|
||||
|
||||
# Next/previous workspace on focused monitor
|
||||
bind = $mainMod, mouse_up, workspace, m+1
|
||||
bind = $mainMod, mouse_down, workspace, m-1
|
||||
bind = $mainMod, bracketright, exec, ~/.config/hypr/workspace_next.sh
|
||||
bind = $mainMod, bracketleft, exec, ~/.config/hypr/workspace_prev.sh
|
||||
|
||||
#monitor = DP-1, 1920x1080@60, 0x0, 1
|
||||
#monitor = eDP-2, 2560x1600@144, 0x1080, 1.67
|
||||
# monitor = eDP-2, disable
|
||||
78
config/hypr/hyprland.conf.save
Normal file
78
config/hypr/hyprland.conf.save
Normal file
@@ -0,0 +1,78 @@
|
||||
|
||||
# This config is a STUB! This should never be generated.
|
||||
# Use the default lua config from https://github.com/hyprwm/Hyprland/blob/main/example/hyprland.lua
|
||||
|
||||
exec-once = hyprswitch init --show-title
|
||||
|
||||
windowrule = match:fullscreen 1, border_size 0
|
||||
|
||||
env = QT_QPA_PLATFORMTHEME, qt6ct
|
||||
env = JAVA_AWT_WM_NONPARENTING, 1
|
||||
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
|
||||
$mainMod = SUPER
|
||||
$secMod = SUPER SHIFT
|
||||
$terminal = kitty
|
||||
$fileManager = dolphin
|
||||
$menu = rofi
|
||||
$menuLauncher = ~/.config/rofi/launchers/type-2/launcher.sh
|
||||
|
||||
bind = $mainMod, Q, exec, $terminal
|
||||
bind = $mainMod, C, killactive,
|
||||
bind = $mainMod, M, exec, command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch exit
|
||||
bind = $mainMod, E, exec, $fileManager
|
||||
bind = $mainMod, V, togglefloating,
|
||||
bind = ALT, SPACE, exec, bash $menuLauncher
|
||||
bind = $secMod, right, movewindow, r
|
||||
bind = $secMod, left, movewindow, l
|
||||
bind = $secMod, up, movewindow, u
|
||||
bind = $secMod, down, movewindow, d
|
||||
bind = $mainMod, F11, fullscreen, 1
|
||||
bind = $mainMod, F, exec, firefox
|
||||
bind = ALT, Tab, exec, hyprswitch gui --mod-key=alt --key=tab --close=mod-key-release --reverse-key=mod=shift
|
||||
bind = , XF86AudioPlay, exec, playerctl play-pause
|
||||
bind = $secMod, S, exec, hyprshot -m region
|
||||
|
||||
# Pin workspaces to monitors
|
||||
workspace = 1, monitor:DP-1
|
||||
workspace = 2, monitor:DP-1
|
||||
workspace = 3, monitor:DP-1
|
||||
workspace = 4, monitor:eDP-1
|
||||
workspace = 5, monitor:eDP-1
|
||||
workspace = 6, monitor:eDP-1
|
||||
|
||||
# Switch to workspace
|
||||
bind = $mainMod, 1, workspace, 1
|
||||
bind = $mainMod, 2, workspace, 2
|
||||
bind = $mainMod, 3, workspace, 3
|
||||
bind = $mainMod, 4, workspace, 4
|
||||
bind = $mainMod, 5, workspace, 5
|
||||
bind = $mainMod, 6, workspace, 6
|
||||
|
||||
# Move window to workspace
|
||||
bind = $secMod, 1, movetoworkspace, 1
|
||||
bind = $secMod, 2, movetoworkspace, 2
|
||||
bind = $secMod, 3, movetoworkspace, 3
|
||||
bind = $secMod, 4, movetoworkspace, 4
|
||||
bind = $secMod, 5, movetoworkspace, 5
|
||||
bind = $secMod, 6, movetoworkspace, 6
|
||||
|
||||
# Next/previous workspace on focused monitor
|
||||
bind = $mainMod, mouse_down, workspace, m+1
|
||||
bind = $mainMod, mouse_up, workspace, m-1
|
||||
bind = $mainMod, bracketright, workspace, m+1
|
||||
bind = $mainMod, bracketleft, workspace, m-1
|
||||
|
||||
monitor = DP-1, 1920x1080@60, 0x0, 1
|
||||
monitor = eDP-1, 2560x1600@144, 1920x0, 1.67
|
||||
|
||||
workspace = 1, monitor:DP-1
|
||||
workspace = 2, monitor:DP-1
|
||||
workspace = 3, monitor:DP-1
|
||||
workspace = 4, monitor:eDP-1
|
||||
workspace = 5, monitor:eDP-1
|
||||
workspace = 6, monitor:eDP-1
|
||||
108
config/hypr/hyprlock.conf
Normal file
108
config/hypr/hyprlock.conf
Normal file
@@ -0,0 +1,108 @@
|
||||
source = ~/.config/hypr/mocha.conf
|
||||
|
||||
$accent = $mauve
|
||||
$accentAlpha = $mauveAlpha
|
||||
$font = JetBrainsMono Nerd Font
|
||||
|
||||
# GENERAL
|
||||
general {
|
||||
hide_cursor = true
|
||||
}
|
||||
|
||||
# BACKGROUND
|
||||
background {
|
||||
monitor =
|
||||
path = $HOME/.config/background
|
||||
blur_passes = 0
|
||||
color = $base
|
||||
}
|
||||
|
||||
# LAYOUT
|
||||
label {
|
||||
monitor =
|
||||
text = Layout: $LAYOUT
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = 30, -30
|
||||
halign = left
|
||||
valign = top
|
||||
}
|
||||
|
||||
# TIME
|
||||
label {
|
||||
monitor =
|
||||
text = $TIME
|
||||
color = $text
|
||||
font_size = 90
|
||||
font_family = $font
|
||||
position = -30, 0
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# DATE
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:43200000] date +"%A, %d %B %Y"
|
||||
color = $text
|
||||
font_size = 25
|
||||
font_family = $font
|
||||
position = -30, -150
|
||||
halign = right
|
||||
valign = top
|
||||
}
|
||||
|
||||
# FINGERPRINT
|
||||
{
|
||||
monitor = "";
|
||||
text = "$FPRINTPROMPT";
|
||||
color = "$text";
|
||||
font_size = 14;
|
||||
font_family = $font;
|
||||
position = "0, -107";
|
||||
halign = "center";
|
||||
valign = "center";
|
||||
}
|
||||
|
||||
# USER AVATAR
|
||||
image {
|
||||
monitor =
|
||||
path = $HOME/.face
|
||||
size = 100
|
||||
border_color = $accent
|
||||
position = 0, 75
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
# INPUT FIELD
|
||||
input-field {
|
||||
monitor =
|
||||
size = 300, 60
|
||||
outline_thickness = 4
|
||||
dots_size = 0.2
|
||||
dots_spacing = 0.2
|
||||
dots_center = true
|
||||
outer_color = $accent
|
||||
inner_color = $surface0
|
||||
font_color = $text
|
||||
fade_on_empty = false
|
||||
placeholder_text = <span foreground="##$textAlpha"><i>Logged in as </i><span foreground="##$accentAlpha">$USER</span></span>
|
||||
hide_input = false
|
||||
check_color = $accent
|
||||
fail_color = $red
|
||||
fail_text = <i>$FAIL <b>($ATTEMPTS)</b></i>
|
||||
capslock_color = $yellow
|
||||
position = 0, -47
|
||||
halign = center
|
||||
valign = center
|
||||
}
|
||||
|
||||
auth {
|
||||
fingerprint {
|
||||
enabled = true
|
||||
ready_message = Scan fingerprint to unlock
|
||||
present_message = Scanning...
|
||||
}
|
||||
}
|
||||
8
config/hypr/hyprpaper.conf
Normal file
8
config/hypr/hyprpaper.conf
Normal file
@@ -0,0 +1,8 @@
|
||||
preload = /home/nouredeen/wallpapers/disco.png
|
||||
splash = false
|
||||
|
||||
wallpaper {
|
||||
monitor =
|
||||
path = /home/nouredeen/wallpapers/disco.png
|
||||
fit_mode = cover
|
||||
}
|
||||
78
config/hypr/mocha.conf
Normal file
78
config/hypr/mocha.conf
Normal file
@@ -0,0 +1,78 @@
|
||||
|
||||
$rosewater = rgb(f5e0dc)
|
||||
$rosewaterAlpha = f5e0dc
|
||||
|
||||
$flamingo = rgb(f2cdcd)
|
||||
$flamingoAlpha = f2cdcd
|
||||
|
||||
$pink = rgb(f5c2e7)
|
||||
$pinkAlpha = f5c2e7
|
||||
|
||||
$mauve = rgb(cba6f7)
|
||||
$mauveAlpha = cba6f7
|
||||
|
||||
$red = rgb(f38ba8)
|
||||
$redAlpha = f38ba8
|
||||
|
||||
$maroon = rgb(eba0ac)
|
||||
$maroonAlpha = eba0ac
|
||||
|
||||
$peach = rgb(fab387)
|
||||
$peachAlpha = fab387
|
||||
|
||||
$yellow = rgb(f9e2af)
|
||||
$yellowAlpha = f9e2af
|
||||
|
||||
$green = rgb(a6e3a1)
|
||||
$greenAlpha = a6e3a1
|
||||
|
||||
$teal = rgb(94e2d5)
|
||||
$tealAlpha = 94e2d5
|
||||
|
||||
$sky = rgb(89dceb)
|
||||
$skyAlpha = 89dceb
|
||||
|
||||
$sapphire = rgb(74c7ec)
|
||||
$sapphireAlpha = 74c7ec
|
||||
|
||||
$blue = rgb(89b4fa)
|
||||
$blueAlpha = 89b4fa
|
||||
|
||||
$lavender = rgb(b4befe)
|
||||
$lavenderAlpha = b4befe
|
||||
|
||||
$text = rgb(cdd6f4)
|
||||
$textAlpha = cdd6f4
|
||||
|
||||
$subtext1 = rgb(bac2de)
|
||||
$subtext1Alpha = bac2de
|
||||
|
||||
$subtext0 = rgb(a6adc8)
|
||||
$subtext0Alpha = a6adc8
|
||||
|
||||
$overlay2 = rgb(9399b2)
|
||||
$overlay2Alpha = 9399b2
|
||||
|
||||
$overlay1 = rgb(7f849c)
|
||||
$overlay1Alpha = 7f849c
|
||||
|
||||
$overlay0 = rgb(6c7086)
|
||||
$overlay0Alpha = 6c7086
|
||||
|
||||
$surface2 = rgb(585b70)
|
||||
$surface2Alpha = 585b70
|
||||
|
||||
$surface1 = rgb(45475a)
|
||||
$surface1Alpha = 45475a
|
||||
|
||||
$surface0 = rgb(313244)
|
||||
$surface0Alpha = 313244
|
||||
|
||||
$base = rgb(1e1e2e)
|
||||
$baseAlpha = 1e1e2e
|
||||
|
||||
$mantle = rgb(181825)
|
||||
$mantleAlpha = 181825
|
||||
|
||||
$crust = rgb(11111b)
|
||||
$crustAlpha = 11111b
|
||||
4
config/hypr/monitors.conf
Normal file
4
config/hypr/monitors.conf
Normal file
@@ -0,0 +1,4 @@
|
||||
# Generated by nwg-displays on 2026-06-05 at 18:10:13. Do not edit manually.
|
||||
|
||||
monitor=eDP-2,2560x1600@144.0,3650x898,1.67
|
||||
monitor=DP-1,1920x1080@60.0,1730x898,1.0
|
||||
14
config/hypr/monitors.lua
Normal file
14
config/hypr/monitors.lua
Normal file
@@ -0,0 +1,14 @@
|
||||
-- Generated by nwg-displays on 2026-06-05 at 18:10:13. Do not edit manually.
|
||||
|
||||
hl.monitor({
|
||||
output = "eDP-2",
|
||||
mode = "2560x1600@144.0",
|
||||
position = "3650x898",
|
||||
scale = 1.67
|
||||
})
|
||||
hl.monitor({
|
||||
output = "DP-1",
|
||||
mode = "1920x1080@60.0",
|
||||
position = "1730x898",
|
||||
scale = 1.0
|
||||
})
|
||||
20
config/hypr/scripts/dock-startup.sh
Executable file
20
config/hypr/scripts/dock-startup.sh
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Define your monitor names
|
||||
EXTERNAL="DP-1"
|
||||
LAPTOP="eDP-1"
|
||||
|
||||
# Kill any existing dock instances
|
||||
pkill -f nwg-dock-hyprland
|
||||
|
||||
# Give Wayland a little more time to clear the screen edge
|
||||
sleep 0.6
|
||||
|
||||
# Check if the external monitor is actively connected
|
||||
if hyprctl monitors | grep -q "Monitor $EXTERNAL"; then
|
||||
# Launch on external using Hyprland's native exec
|
||||
hyprctl dispatch exec "nwg-dock-hyprland -o $EXTERNAL -p bottom -a center -ml 10 -mr 10 -mb 10 -i 28 -nolauncher -x"
|
||||
else
|
||||
# Fallback to laptop
|
||||
hyprctl dispatch exec "nwg-dock-hyprland -o $LAPTOP -p bottom -a center -ml 10 -mr 10 -mb 10 -i 28 -nolauncher -x"
|
||||
fi
|
||||
21
config/hypr/scripts/opacity.sh
Executable file
21
config/hypr/scripts/opacity.sh
Executable file
@@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
# Usage: opacity.sh [increase|decrease]
|
||||
|
||||
STEP=0.1
|
||||
ADDRESS=$(hyprctl activewindow -j | grep -oP '"address": "\K[^"]+')
|
||||
CURRENT=$(hyprctl getprop active opacity | grep -oP '[\d.]+' | head -1)
|
||||
|
||||
if [[ -z "$CURRENT" ]]; then
|
||||
CURRENT=1.0
|
||||
fi
|
||||
|
||||
if [[ "$1" == "increase" ]]; then
|
||||
NEW=$(echo "$CURRENT + $STEP" | bc)
|
||||
else
|
||||
NEW=$(echo "$CURRENT - $STEP" | bc)
|
||||
fi
|
||||
|
||||
# Clamp between 0.1 and 1.0
|
||||
NEW=$(echo "if ($NEW > 1.0) 1.0 else if ($NEW < 0.1) 0.1 else $NEW" | bc)
|
||||
|
||||
hyprctl dispatch setprop active opacity "$NEW"
|
||||
25
config/hypr/scripts/replay-startup.sh
Executable file
25
config/hypr/scripts/replay-startup.sh
Executable file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Define your monitors
|
||||
EXTERNAL="DP-1"
|
||||
LAPTOP="eDP-1"
|
||||
REPLAY_DIR="$HOME/Videos/Replays"
|
||||
|
||||
# Ensure the output directory exists
|
||||
mkdir -p "$REPLAY_DIR"
|
||||
|
||||
# Kill any existing recorder instances to prevent duplicates/errors
|
||||
# 2>/dev/null hides the "no process found" message if it wasn't running
|
||||
killall gpu-screen-recorder 2>/dev/null
|
||||
# Give the hardware encoder a fraction of a second to free up
|
||||
sleep 0.5
|
||||
|
||||
# Check if the external monitor is actively connected
|
||||
if hyprctl monitors | grep -q "Monitor $EXTERNAL"; then
|
||||
TARGET_MONITOR=$EXTERNAL
|
||||
else
|
||||
TARGET_MONITOR=$LAPTOP
|
||||
fi
|
||||
|
||||
# Launch the recorder on the chosen monitor in the background
|
||||
gpu-screen-recorder -w "$TARGET_MONITOR" -f 60 -r 120 -c mp4 -a default_output -a "alsa_input.pci-0000_00_1f.3.analog-stereo" -o "$REPLAY_DIR" &
|
||||
20
config/hypr/settings.conf
Normal file
20
config/hypr/settings.conf
Normal file
@@ -0,0 +1,20 @@
|
||||
general {
|
||||
col.active_border = rgba(6C7086ff) # focused window border
|
||||
col.inactive_border = rgba(313244ff) # unfocused windows
|
||||
gaps_out = 10,10,10,10
|
||||
}
|
||||
|
||||
input {
|
||||
touchpad {
|
||||
natural_scroll = true
|
||||
clickfinger_behavior = true
|
||||
}
|
||||
numlock_by_default = true
|
||||
kb_layout = us,ara
|
||||
kb_variant = ,
|
||||
kb_options = grp:alt_shift_toggle
|
||||
}
|
||||
|
||||
xwayland {
|
||||
force_zero_scaling = true
|
||||
}
|
||||
6
config/hypr/windowrules.conf
Normal file
6
config/hypr/windowrules.conf
Normal file
@@ -0,0 +1,6 @@
|
||||
windowrule = match:class ^(steam_app_1091500)$, fullscreen 1
|
||||
windowrule = match:class ^(ArqaamAccounting)$, float true
|
||||
windowrule = match:class ^(ArqaamAccounting)$, center true
|
||||
windowrule = match:title ^(Network Manager)$, float true
|
||||
windowrule = match:title ^(File Operation Progress)$, float true
|
||||
windowrule = match:class ^(blueman-manager)$, float true
|
||||
5
config/hypr/workspace_next.sh
Executable file
5
config/hypr/workspace_next.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
current=$(hyprctl activeworkspace -j | jq '.id')
|
||||
if [ "$current" -lt 5 ]; then
|
||||
hyprctl dispatch workspace $(( current + 1 ))
|
||||
fi
|
||||
5
config/hypr/workspace_prev.sh
Executable file
5
config/hypr/workspace_prev.sh
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
current=$(hyprctl activeworkspace -j | jq '.id')
|
||||
if [ "$current" -gt 1 ]; then
|
||||
hyprctl dispatch workspace $(( current - 1 ))
|
||||
fi
|
||||
8
config/hypr/workspaces.conf
Normal file
8
config/hypr/workspaces.conf
Normal file
@@ -0,0 +1,8 @@
|
||||
# Generated by nwg-displays on 2026-06-05 at 18:10:26. Do not edit manually.
|
||||
|
||||
workspace=1,monitor:DP-1,default:true
|
||||
workspace=2,monitor:DP-1
|
||||
workspace=3,monitor:DP-1
|
||||
workspace=4,monitor:eDP-2,default:true
|
||||
workspace=5,monitor:eDP-2
|
||||
workspace=6,monitor:eDP-2
|
||||
28
config/hypr/workspaces.lua
Normal file
28
config/hypr/workspaces.lua
Normal file
@@ -0,0 +1,28 @@
|
||||
-- Generated by nwg-displays on 2026-06-05 at 18:10:26. Do not edit manually.
|
||||
|
||||
hl.workspace_rule({
|
||||
workspace = "1",
|
||||
monitor = "DP-1",
|
||||
default = true
|
||||
})
|
||||
hl.workspace_rule({
|
||||
workspace = "2",
|
||||
monitor = "DP-1"
|
||||
})
|
||||
hl.workspace_rule({
|
||||
workspace = "3",
|
||||
monitor = "DP-1"
|
||||
})
|
||||
hl.workspace_rule({
|
||||
workspace = "4",
|
||||
monitor = "eDP-2",
|
||||
default = true
|
||||
})
|
||||
hl.workspace_rule({
|
||||
workspace = "5",
|
||||
monitor = "eDP-2"
|
||||
})
|
||||
hl.workspace_rule({
|
||||
workspace = "6",
|
||||
monitor = "eDP-2"
|
||||
})
|
||||
66
config/swaync/config.json
Normal file
66
config/swaync/config.json
Normal file
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"$schema": "/etc/xdg/swaync/configSchema.json",
|
||||
"positionX": "right",
|
||||
"positionY": "top",
|
||||
"cssPriority": "user",
|
||||
"layer": "overlay",
|
||||
"layer-shell": true,
|
||||
|
||||
"control-center-layer": "top",
|
||||
"control-center-width": 380,
|
||||
"control-center-height": 750,
|
||||
"control-center-margin-top": 5,
|
||||
"control-center-margin-bottom": 0,
|
||||
"control-center-margin-right": 5,
|
||||
"control-center-margin-left": 0,
|
||||
|
||||
"notification-window-width": 350,
|
||||
"notification-window-height": 200,
|
||||
"notification-icon-size": 70,
|
||||
"notification-body-image-height": 200,
|
||||
"notification-body-image-width": 200,
|
||||
"notification-2fa-action": true,
|
||||
"notifications-inline-replies": true,
|
||||
|
||||
"timeout": 4,
|
||||
"timeout-low": 4,
|
||||
"timeout-critical": 4,
|
||||
|
||||
"fit-to-screen": false,
|
||||
"relative-timestamps": true,
|
||||
"keyboard-shortcuts": true,
|
||||
"image-visibility": "when-available",
|
||||
"transition-time": 200,
|
||||
"hide-on-clear": false,
|
||||
"hide-on-action": true,
|
||||
"script-fail-notify": true,
|
||||
"widgets": ["mpris", "title", "dnd", "notifications"],
|
||||
|
||||
"widget-config": {
|
||||
"title": {
|
||||
"text": "NOTIFICATIONS",
|
||||
"clear-all-button": true,
|
||||
"button-text": "CLEAR"
|
||||
},
|
||||
|
||||
"dnd": {
|
||||
"text": "Do Not Disturb"
|
||||
},
|
||||
|
||||
"mpris": {
|
||||
"blacklist": [],
|
||||
"autohide": true,
|
||||
"show-album-art": "always",
|
||||
"loop-carousel": true,
|
||||
"image-radius": 10
|
||||
},
|
||||
"backlight": {
|
||||
"label": "",
|
||||
"device": "amdgpu_bl2",
|
||||
"min": 10
|
||||
},
|
||||
"volume": {
|
||||
"label": ""
|
||||
}
|
||||
}
|
||||
}
|
||||
101
config/swaync/config.json.bak
Normal file
101
config/swaync/config.json.bak
Normal file
@@ -0,0 +1,101 @@
|
||||
{
|
||||
"$schema": "/etc/xdg/swaync/configSchema.json",
|
||||
"ignore-gtk-theme": true,
|
||||
"positionX": "right",
|
||||
"positionY": "top",
|
||||
"layer": "overlay",
|
||||
"control-center-layer": "top",
|
||||
"layer-shell": true,
|
||||
"layer-shell-cover-screen": true,
|
||||
"cssPriority": "user",
|
||||
"control-center-margin-top": 0,
|
||||
"control-center-margin-bottom": 0,
|
||||
"control-center-margin-right": 0,
|
||||
"control-center-margin-left": 0,
|
||||
"notification-2fa-action": true,
|
||||
"notification-inline-replies": false,
|
||||
"notification-body-image-height": 100,
|
||||
"notification-body-image-width": 200,
|
||||
"timeout": 10,
|
||||
"timeout-low": 5,
|
||||
"timeout-critical": 0,
|
||||
"fit-to-screen": true,
|
||||
"relative-timestamps": true,
|
||||
"control-center-width": 500,
|
||||
"control-center-height": 600,
|
||||
"notification-window-width": 500,
|
||||
"keyboard-shortcuts": true,
|
||||
"notification-grouping": true,
|
||||
"image-visibility": "when-available",
|
||||
"transition-time": 200,
|
||||
"hide-on-clear": false,
|
||||
"hide-on-action": true,
|
||||
"text-empty": "No Notifications",
|
||||
"script-fail-notify": true,
|
||||
"scripts": {
|
||||
"example-script": {
|
||||
"app-name": "example.app.id",
|
||||
"exec": "echo 'Do something...'",
|
||||
"urgency": "Normal"
|
||||
},
|
||||
"example-action-script": {
|
||||
"app-name": "example.app.id",
|
||||
"exec": "echo 'Do something actionable!'",
|
||||
"urgency": "Normal",
|
||||
"run-on": "action"
|
||||
}
|
||||
},
|
||||
"notification-visibility": {
|
||||
"example-name": {
|
||||
"state": "muted",
|
||||
"urgency": "Normal",
|
||||
"app-name": "example.app.id"
|
||||
}
|
||||
},
|
||||
"widgets": [
|
||||
"inhibitors",
|
||||
"title",
|
||||
"dnd",
|
||||
"notifications"
|
||||
],
|
||||
"widget-config": {
|
||||
"notifications": {
|
||||
"vexpand": true
|
||||
},
|
||||
"inhibitors": {
|
||||
"text": "Inhibitors",
|
||||
"button-text": "Clear All",
|
||||
"clear-all-button": true
|
||||
},
|
||||
"title": {
|
||||
"text": "Notifications",
|
||||
"clear-all-button": true,
|
||||
"button-text": "Clear All"
|
||||
},
|
||||
"dnd": {
|
||||
"text": "Do Not Disturb"
|
||||
},
|
||||
"label": {
|
||||
"max-lines": 5,
|
||||
"text": "Label Text"
|
||||
},
|
||||
"mpris": {
|
||||
"blacklist": [],
|
||||
"autohide": false,
|
||||
"show-album-art": "always",
|
||||
"loop-carousel": false
|
||||
},
|
||||
"buttons-grid": {
|
||||
"buttons-per-row": 7,
|
||||
"actions": [
|
||||
{
|
||||
"label": "直",
|
||||
"type": "toggle",
|
||||
"active": true,
|
||||
"command": "sh -c '[[ $SWAYNC_TOGGLE_STATE == true ]] && nmcli radio wifi on || nmcli radio wifi off'",
|
||||
"update-command": "sh -c '[[ $(nmcli radio wifi) == \"enabled\" ]] && echo true || echo false'"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
330
config/swaync/style.css
Normal file
330
config/swaync/style.css
Normal file
@@ -0,0 +1,330 @@
|
||||
/* === Catppuccin Mocha Hardcoded === */
|
||||
|
||||
* {
|
||||
all: unset;
|
||||
font-size: 15px;
|
||||
font-weight: bold;
|
||||
color: #cdd6f4; /* Text */
|
||||
transition: 200ms;
|
||||
}
|
||||
|
||||
.blank-window {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
/* ===================== FLOATING NOTIFICATIONS ===================== */
|
||||
|
||||
.notification-row {
|
||||
outline: none;
|
||||
margin: 0;
|
||||
padding: 0px;
|
||||
}
|
||||
|
||||
.floating-notifications.background .notification-row .notification-background {
|
||||
background: rgba(30, 30, 46, 0.7); /* base alpha */
|
||||
border: 2px solid rgba(180, 190, 254, 0.2); /* lavender alpha */
|
||||
border-radius: 6px;
|
||||
margin: 16px;
|
||||
padding: 0;
|
||||
transition: background 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification {
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification.critical {
|
||||
border: 2px solid #f38ba8; /* red */
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification.critical
|
||||
.summary {
|
||||
color: #f38ba8; /* red */
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
.notification-content {
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action {
|
||||
border-radius: 8px;
|
||||
background-color: rgba(30, 30, 46, 0.7); /* base alpha */
|
||||
margin: 6px;
|
||||
border: 1px solid transparent;
|
||||
transition: background 0.15s ease-in-out;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:hover {
|
||||
background-color: rgba(137, 180, 250, 0.5); /* blue hover */
|
||||
border: 1px solid #89b4fa; /* blue */
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action:active {
|
||||
background-color: #89b4fa; /* blue */
|
||||
color: #1e1e2e; /* base */
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button {
|
||||
margin: 6px;
|
||||
padding: 2px;
|
||||
border-radius: 6px;
|
||||
background-color: transparent;
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
.floating-notifications.background
|
||||
.notification-row
|
||||
.notification-background
|
||||
.close-button:hover {
|
||||
background-color: #89b4fa; /* blue */
|
||||
}
|
||||
|
||||
/* ===================== CONTROL CENTER ===================== */
|
||||
|
||||
.control-center {
|
||||
background: rgba(30, 30, 46, 0.8); /* base alpha */
|
||||
border-radius: 6px;
|
||||
border: 2px solid rgba(69, 71, 90, 0.3); /* surface1 alpha */
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
/* ------------------- Notifications ---------------------- */
|
||||
|
||||
.control-center .notification-row .notification-background {
|
||||
background-color: #313244;
|
||||
border: 2px solid rgba(137, 180, 250, 0.5);
|
||||
border-radius: 6px;
|
||||
margin: 4px 20px;
|
||||
padding: 2px;
|
||||
}
|
||||
|
||||
.control-center
|
||||
.notification-row
|
||||
.notification-background
|
||||
.notification
|
||||
> *:last-child
|
||||
> *
|
||||
.notification-action {
|
||||
background: rgba(137, 180, 250, 0.6); /* blue alpha */
|
||||
color: #cdd6f4; /* text */
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.notification-content {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
.notification-content:hover {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/* ------------ Notifications expanded-group -------------- */
|
||||
|
||||
.notification-group-headers {
|
||||
font-weight: bold;
|
||||
font-size: 1.25rem;
|
||||
color: #b4befe; /* lavender */
|
||||
letter-spacing: 2px;
|
||||
margin: 0 20px;
|
||||
}
|
||||
|
||||
.notification-group-icon {
|
||||
color: #b4befe; /* lavender */
|
||||
}
|
||||
|
||||
/* ===================== SHARED ELEMENTS ===================== */
|
||||
|
||||
.summary {
|
||||
font-weight: bold;
|
||||
font-size: 18px;
|
||||
color: #b4befe; /* lavender */
|
||||
padding-bottom: 3px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.body {
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
color: #cdd6f4;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
trough {
|
||||
background-color: rgba(0, 60, 255, 0.1); /* text alpha */
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
progress {
|
||||
background-color: #89b4fa; /* blue */
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: x-small;
|
||||
}
|
||||
.message {
|
||||
font-size: small;
|
||||
}
|
||||
|
||||
/* ===================== WIDGETS ===================== */
|
||||
|
||||
.widget-title {
|
||||
font-weight: bold;
|
||||
|
||||
color: #b4befe; /* lavender */
|
||||
margin: 6px;
|
||||
padding: 0px 20px;
|
||||
}
|
||||
|
||||
.widget-title > label {
|
||||
color: #b4befe;
|
||||
font-size: large;
|
||||
}
|
||||
|
||||
.widget-title > button > label {
|
||||
background: #313244;
|
||||
color: #b4befe;
|
||||
border-radius: 6px;
|
||||
padding: 3px 8px;
|
||||
}
|
||||
|
||||
.widget-title > button:hover > label {
|
||||
background: #b4befe;
|
||||
color: #1e1e2e;
|
||||
}
|
||||
|
||||
/* Do not disturb */
|
||||
.widget-dnd {
|
||||
margin: 6px 6px 20px;
|
||||
font-size: medium;
|
||||
font-weight: bold;
|
||||
color: #b4befe;
|
||||
padding: 0px 20px;
|
||||
}
|
||||
|
||||
.widget-dnd > switch {
|
||||
background: #b4befe6c;
|
||||
border-radius: 6px;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.widget-dnd > switch:checked {
|
||||
background: #b4befe;
|
||||
}
|
||||
|
||||
.widget-dnd > switch slider {
|
||||
background: #cdd6f4; /* text */
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.widget-dnd > switch:checked slider {
|
||||
background: #313244;
|
||||
}
|
||||
|
||||
switch slider {
|
||||
min-width: 15px;
|
||||
min-height: 15px;
|
||||
}
|
||||
|
||||
/* -------------------- Music player ---------------------- */
|
||||
|
||||
:root {
|
||||
--mpris-album-art-overlay: rgba(0, 0, 0, 0.55);
|
||||
--mpris-button-hover: rgba(180, 190, 254, 0.5);
|
||||
--mpris-album-art-icon-size: 96px;
|
||||
--mpris-album-art-shadow: 0px 0px 10px rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
.widget-mpris {
|
||||
color: #cdd6f4;
|
||||
padding: 10px;
|
||||
margin: 10px;
|
||||
}
|
||||
|
||||
.widget-mpris button {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
.widget-mpris button:hover {
|
||||
background: rgba(180, 190, 254, 0.5);
|
||||
color: #1e1e2e; /* base */
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.widget-mpris > box > button {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player {
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
border-radius: 6px;
|
||||
box-shadow: var(--mpris-album-art-shadow);
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-background {
|
||||
filter: blur(10px);
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay {
|
||||
padding: 16px;
|
||||
background-color: var(--mpris-album-art-overlay);
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay button:hover {
|
||||
background: var(--hover-button);
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-album-art {
|
||||
border-radius: var(--border-radius);
|
||||
box-shadow: var(--mpris-album-art-shadow);
|
||||
-gtk-icon-size: var(--mpris-album-art-icon-size);
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-title {
|
||||
font-weight: bold;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-subtitle {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay > box > button:hover {
|
||||
background-color: var(--mpris-button-hover);
|
||||
}
|
||||
561
config/swaync/style.css.bak
Normal file
561
config/swaync/style.css.bak
Normal file
@@ -0,0 +1,561 @@
|
||||
:root {
|
||||
--cc-bg: rgba(46, 46, 46, 0.7);
|
||||
--noti-border-color: rgba(255, 255, 255, 0.15);
|
||||
--noti-bg: 48, 48, 48;
|
||||
--noti-bg-alpha: 0.8;
|
||||
--noti-bg-darker: rgb(38, 38, 38);
|
||||
--noti-bg-hover: rgb(56, 56, 56);
|
||||
--noti-bg-focus: rgba(68, 68, 68, 0.6);
|
||||
--noti-close-bg: rgb(78, 78, 78);
|
||||
--noti-close-bg-hover: rgb(94, 94, 94);
|
||||
--text-color: rgb(255, 255, 255);
|
||||
--text-color-disabled: rgb(150, 150, 150);
|
||||
--bg-selected: rgb(0, 128, 255);
|
||||
--notification-icon-size: 64px;
|
||||
--notification-app-icon-size: calc(var(--notification-icon-size) / 3);
|
||||
--notification-group-icon-size: 32px;
|
||||
--border: 1px solid var(--noti-border-color);
|
||||
--border-radius: 12px;
|
||||
--notification-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3),
|
||||
0 1px 3px 1px rgba(0, 0, 0, 0.7), 0 2px 6px 2px rgba(0, 0, 0, 0.3);
|
||||
--font-size-body: 15px;
|
||||
--font-size-summary: 16px;
|
||||
/* Deprecated variables (because of their typos). Keeeping them around for backwards compatibility. */
|
||||
--hover-tranistion: background 0.15s ease-in-out;
|
||||
--group-collapse-tranistion: opacity 400ms ease-in-out;
|
||||
--hover-transition: var(--hover-tranistion);
|
||||
--group-collapse-transition: var(--group-collapse-tranistion);
|
||||
}
|
||||
|
||||
/* Fallback for older CSS themes */
|
||||
/* Fallback for older CSS themes */
|
||||
@define-color cc-bg rgba(46, 46, 46, 0.7);
|
||||
@define-color noti-border-color rgba(255, 255, 255, 0.15);
|
||||
@define-color noti-bg rgba(48, 48, 48, 0.8);
|
||||
@define-color noti-bg-opaque rgb(48, 48, 48);
|
||||
@define-color noti-bg-darker rgb(38, 38, 38);
|
||||
@define-color noti-bg-hover rgb(56, 56, 56);
|
||||
@define-color noti-bg-hover-opaque rgb(56, 56, 56);
|
||||
@define-color noti-bg-focus rgba(68, 68, 68, 0.6);
|
||||
@define-color noti-close-bg rgba(255, 255, 255, 0.1);
|
||||
@define-color noti-close-bg-hover rgba(255, 255, 255, 0.15);
|
||||
@define-color text-color rgb(255, 255, 255);
|
||||
@define-color text-color-disabled rgb(150, 150, 150);
|
||||
@define-color bg-selected rgb(0, 128, 255);
|
||||
notificationwindow, blankwindow {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.close-button {
|
||||
/* The notification Close Button */
|
||||
background: var(--noti-close-bg);
|
||||
color: var(--text-color);
|
||||
text-shadow: none;
|
||||
padding: 0;
|
||||
border-radius: 100%;
|
||||
margin-top: 8px;
|
||||
margin-right: 8px;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
min-width: 24px;
|
||||
min-height: 24px;
|
||||
}
|
||||
|
||||
.close-button:hover {
|
||||
box-shadow: none;
|
||||
background: var(--noti-close-bg-hover);
|
||||
transition: var(--hover-tranistion);
|
||||
border: none;
|
||||
}
|
||||
|
||||
.notification-row {
|
||||
background: none;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.notification-row:focus {
|
||||
background: var(--noti-bg-focus);
|
||||
}
|
||||
|
||||
.notification-row .notification-background {
|
||||
padding: 6px 12px;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification {
|
||||
/* The actual notification */
|
||||
border-radius: var(--border-radius);
|
||||
border: var(--border);
|
||||
padding: 0;
|
||||
transition: var(--hover-tranistion);
|
||||
background: rgba(var(--noti-bg), var(--noti-bg-alpha));
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification.low {
|
||||
/* Low Priority Notification */
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification.normal {
|
||||
/* Normal Priority Notification */
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification.critical {
|
||||
/* Critical Priority Notification */
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action {
|
||||
/* The large action that also displays the notification summary and body */
|
||||
padding: 4px;
|
||||
margin: 0;
|
||||
box-shadow: none;
|
||||
background: transparent;
|
||||
border: none;
|
||||
color: var(--text-color);
|
||||
transition: var(--hover-tranistion);
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action:hover {
|
||||
-gtk-icon-filter: none;
|
||||
background: var(--noti-bg-hover);
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action:not(:only-child) {
|
||||
/* When alternative actions are visible */
|
||||
border-bottom-left-radius: 0px;
|
||||
border-bottom-right-radius: 0px;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content {
|
||||
background: transparent;
|
||||
border-radius: var(--border-radius);
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .image {
|
||||
/* Notification Primary Image */
|
||||
-gtk-icon-filter: none;
|
||||
-gtk-icon-size: var(--notification-icon-size);
|
||||
border-radius: 100px;
|
||||
/* Size in px */
|
||||
margin: 4px;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .app-icon {
|
||||
/* Notification app icon (only visible when the primary image is set) */
|
||||
-gtk-icon-filter: none;
|
||||
-gtk-icon-size: var(--notification-app-icon-size);
|
||||
-gtk-icon-shadow: 0 1px 4px black;
|
||||
margin: 6px;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box label {
|
||||
/* Fixes base GTK 4 CSS setting a filter of opacity 50% for some odd reason */
|
||||
filter: none;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .summary {
|
||||
/* Notification summary/title */
|
||||
font-size: var(--font-size-summary);
|
||||
font-weight: bold;
|
||||
background: transparent;
|
||||
color: var(--text-color);
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .time {
|
||||
/* Notification time-ago */
|
||||
font-size: var(--font-size-summary);
|
||||
font-weight: bold;
|
||||
background: transparent;
|
||||
color: var(--text-color);
|
||||
text-shadow: none;
|
||||
margin-right: 30px;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .text-box .body {
|
||||
/* Notification body */
|
||||
font-size: var(--font-size-body);
|
||||
font-weight: normal;
|
||||
background: transparent;
|
||||
color: var(--text-color);
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content progressbar {
|
||||
/* The optional notification progress bar */
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .body-image {
|
||||
/* The "extra" optional bottom notification image */
|
||||
margin-top: 4px;
|
||||
background-color: white;
|
||||
-gtk-icon-filter: none;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply {
|
||||
/* The inline reply section */
|
||||
margin-top: 4px;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-entry {
|
||||
background: var(--noti-bg-darker);
|
||||
color: var(--text-color);
|
||||
caret-color: var(--text-color);
|
||||
border: var(--border);
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button {
|
||||
margin-left: 4px;
|
||||
background: rgba(var(--noti-bg), var(--noti-bg-alpha));
|
||||
border: var(--border);
|
||||
border-radius: var(--border-radius);
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:disabled {
|
||||
background: initial;
|
||||
color: var(--text-color-disabled);
|
||||
border: var(--border);
|
||||
border-color: transparent;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-default-action .notification-content .inline-reply .inline-reply-button:hover {
|
||||
background: var(--noti-bg-hover);
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-alt-actions {
|
||||
background: none;
|
||||
border-bottom-left-radius: var(--border-radius);
|
||||
border-bottom-right-radius: var(--border-radius);
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-action {
|
||||
/* The alternative actions below the default action */
|
||||
margin: 4px;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.notification-row .notification-background .notification .notification-action > button {
|
||||
border-radius: var(--border-radius);
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
.notification-group {
|
||||
/* Styling only for Grouped Notifications */
|
||||
transition: opacity 200ms ease-in-out;
|
||||
/* The groups close button */
|
||||
}
|
||||
|
||||
.notification-group:focus {
|
||||
background: var(--noti-bg-focus);
|
||||
}
|
||||
|
||||
.notification-group.low {
|
||||
/* Low Priority Group */
|
||||
}
|
||||
|
||||
.notification-group.normal {
|
||||
/* Low Priority Group */
|
||||
}
|
||||
|
||||
.notification-group.critical {
|
||||
/* Low Priority Group */
|
||||
}
|
||||
|
||||
.notification-group .notification-group-close-button .close-button {
|
||||
margin: 12px 20px;
|
||||
}
|
||||
|
||||
.notification-group .notification-group-buttons, .notification-group .notification-group-headers {
|
||||
margin: 0 16px;
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
.notification-group .notification-group-headers {
|
||||
/* Notification Group Headers */
|
||||
}
|
||||
|
||||
.notification-group .notification-group-headers .notification-group-icon {
|
||||
color: var(--text-color);
|
||||
-gtk-icon-size: var(--notification-group-icon-size);
|
||||
}
|
||||
|
||||
.notification-group .notification-group-headers .notification-group-header {
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
.notification-group .notification-group-buttons {
|
||||
/* Notification Group Buttons */
|
||||
}
|
||||
|
||||
.notification-group.collapsed {
|
||||
/* When another group is expanded, lower the opacity of the collapsed ones */
|
||||
}
|
||||
|
||||
.notification-group.collapsed.not-expanded {
|
||||
opacity: 0.4;
|
||||
}
|
||||
|
||||
.notification-group.collapsed .notification-row .notification {
|
||||
background-color: rgba(var(--noti-bg), 1);
|
||||
}
|
||||
|
||||
.notification-group.collapsed .notification-row:not(:last-child) {
|
||||
/* Top notification in stack */
|
||||
/* Set lower stacked notifications opacity to 0 */
|
||||
}
|
||||
|
||||
.notification-group.collapsed .notification-row:not(:last-child) .notification-action,
|
||||
.notification-group.collapsed .notification-row:not(:last-child) .notification-default-action {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.notification-group.collapsed:hover .notification-row:not(:only-child) .notification {
|
||||
background-color: var(--noti-bg-hover);
|
||||
}
|
||||
|
||||
.control-center {
|
||||
/* The Control Center which contains the old notifications + widgets */
|
||||
background: var(--cc-bg);
|
||||
color: var(--text-color);
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
.control-center .control-center-list-placeholder {
|
||||
/* The placeholder when there are no notifications */
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.control-center .control-center-list {
|
||||
/* List of notifications */
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.control-center .control-center-list .notification {
|
||||
box-shadow: var(--notification-shadow);
|
||||
}
|
||||
|
||||
.control-center .control-center-list .notification .notification-default-action,
|
||||
.control-center .control-center-list .notification .notification-action {
|
||||
transition: var(--group-collapse-tranistion), var(--hover-tranistion);
|
||||
}
|
||||
|
||||
.control-center .control-center-list .notification .notification-default-action:hover,
|
||||
.control-center .control-center-list .notification .notification-action:hover {
|
||||
background-color: var(--noti-bg-hover);
|
||||
}
|
||||
|
||||
.blank-window {
|
||||
/* Window behind control center and on all other monitors */
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.floating-notifications {
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.floating-notifications .notification {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
/*** Widgets ***/
|
||||
.widget {
|
||||
margin: 8px;
|
||||
padding: 8px;
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
/* Title widget */
|
||||
.widget-title > label {
|
||||
margin-right: 8px;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.widget-title > button {
|
||||
margin-left: 8px;
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
/* DND widget */
|
||||
.widget-dnd label {
|
||||
color: var(--text-color);
|
||||
margin-right: 8px;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.widget-dnd switch {
|
||||
border-radius: var(--border-radius);
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.widget-dnd switch slider {
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
/* Label widget */
|
||||
.widget-label > label {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
/* Mpris widget */
|
||||
:root {
|
||||
--mpris-album-art-overlay: rgba(0, 0, 0, 0.55);
|
||||
--mpris-button-hover: rgba(0, 0, 0, 0.5);
|
||||
--mpris-album-art-icon-size: 96px;
|
||||
--mpris-album-art-shadow: 0px 0px 10px rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
.widget-mpris {
|
||||
padding: 0;
|
||||
/* The parent to all players */
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player {
|
||||
margin: 16px 20px;
|
||||
border-radius: var(--border-radius);
|
||||
box-shadow: var(--mpris-album-art-shadow);
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-background {
|
||||
filter: blur(10px);
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay {
|
||||
padding: 16px;
|
||||
background-color: var(--mpris-album-art-overlay);
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay button:hover {
|
||||
/* The media player buttons (play, pause, next, etc...) */
|
||||
background: var(--noti-bg-hover);
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-album-art {
|
||||
border-radius: var(--border-radius);
|
||||
box-shadow: var(--mpris-album-art-shadow);
|
||||
-gtk-icon-size: var(--mpris-album-art-icon-size);
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-title {
|
||||
font-weight: bold;
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay .widget-mpris-subtitle {
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay > box > button {
|
||||
/* Change player control buttons */
|
||||
}
|
||||
|
||||
.widget-mpris .widget-mpris-player .mpris-overlay > box > button:hover {
|
||||
background-color: var(--mpris-button-hover);
|
||||
}
|
||||
|
||||
.widget-mpris > box > button {
|
||||
/* Change player side buttons */
|
||||
}
|
||||
|
||||
.widget-mpris > box > button:disabled {
|
||||
/* Change player side buttons insensitive */
|
||||
}
|
||||
|
||||
/* Buttons widget */
|
||||
.widget-buttons-grid flowboxchild > button {
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
.widget-buttons-grid flowboxchild > button.toggle:checked {
|
||||
/* style given to the active toggle button */
|
||||
}
|
||||
|
||||
/* Menubar widget */
|
||||
.widget-menubar {
|
||||
/* The revealer buttons */
|
||||
/* .AnyName { Name defined in config after #
|
||||
background-color: rgba(var(--noti-bg), 1.0);
|
||||
padding: 8px;
|
||||
margin: 8px;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
.AnyName>button {
|
||||
background: transparent;
|
||||
border: none;
|
||||
}
|
||||
|
||||
.AnyName>button:hover {
|
||||
background-color: var(--noti-bg-hover);
|
||||
} */
|
||||
}
|
||||
|
||||
.widget-menubar > .menu-button-bar {
|
||||
/* The left button container */
|
||||
/* The right button container */
|
||||
/* The left and right button container */
|
||||
}
|
||||
|
||||
.widget-menubar > .menu-button-bar > .start {
|
||||
margin-left: 8px;
|
||||
}
|
||||
|
||||
.widget-menubar > .menu-button-bar > .end {
|
||||
margin-right: 8px;
|
||||
}
|
||||
|
||||
.widget-menubar > .menu-button-bar > .widget-menubar-container button {
|
||||
border-radius: var(--border-radius);
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
.widget-menubar > revealer * {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.widget-menubar > revealer * button {
|
||||
border-radius: var(--border-radius);
|
||||
margin: 8px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.widget-menubar > revealer * button:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
/* Volume widget */
|
||||
:root {
|
||||
--widget-volume-row-icon-size: 24px;
|
||||
}
|
||||
|
||||
/* Each row app icon */
|
||||
.widget-volume row image {
|
||||
-gtk-icon-size: var(--widget-volume-row-icon-size);
|
||||
}
|
||||
|
||||
.per-app-volume {
|
||||
background-color: var(--noti-bg-alt);
|
||||
margin: 8px;
|
||||
margin-bottom: 0;
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
|
||||
/* Slider widget */
|
||||
.widget-slider label {
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
/* Backlight widget */
|
||||
/* Inhibitors widget */
|
||||
.widget-inhibitors > label {
|
||||
margin-right: 8px;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
|
||||
.widget-inhibitors > button {
|
||||
margin-left: 8px;
|
||||
border-radius: var(--border-radius);
|
||||
}
|
||||
11
config/walker/config.toml
Normal file
11
config/walker/config.toml
Normal file
@@ -0,0 +1,11 @@
|
||||
theme = "catppuccin-mocha"
|
||||
|
||||
[placeholders]
|
||||
"default" = { input = "Search", list = "No Results" }
|
||||
|
||||
[providers]
|
||||
default = [
|
||||
"desktopapplications",
|
||||
"calc",
|
||||
"websearch",
|
||||
]
|
||||
189
config/walker/themes/catppuccin-mocha/style.css
Normal file
189
config/walker/themes/catppuccin-mocha/style.css
Normal file
@@ -0,0 +1,189 @@
|
||||
/* Catppuccin Mocha */
|
||||
@define-color rosewater #f5e0dc;
|
||||
@define-color flamingo #f2cdcd;
|
||||
@define-color pink #f5c2e7;
|
||||
@define-color mauve #cba6f7;
|
||||
@define-color red #f38ba8;
|
||||
@define-color maroon #eba0ac;
|
||||
@define-color peach #fab387;
|
||||
@define-color yellow #f9e2af;
|
||||
@define-color green #a6e3a1;
|
||||
@define-color teal #94e2d5;
|
||||
@define-color sky #89dceb;
|
||||
@define-color sapphire #74c7ec;
|
||||
@define-color blue #89b4fa;
|
||||
@define-color lavender #b4befe;
|
||||
@define-color text #cdd6f4;
|
||||
@define-color subtext1 #bac2de;
|
||||
@define-color subtext0 #a6adc8;
|
||||
@define-color overlay2 #9399b2;
|
||||
@define-color overlay1 #7f849c;
|
||||
@define-color overlay0 #6c7086;
|
||||
@define-color surface2 #585b70;
|
||||
@define-color surface1 #45475a;
|
||||
@define-color surface0 #313244;
|
||||
@define-color base #1e1e2e;
|
||||
@define-color mantle #181825;
|
||||
@define-color crust #11111b;
|
||||
|
||||
* {
|
||||
all: unset;
|
||||
}
|
||||
|
||||
.normal-icons {
|
||||
-gtk-icon-size: 16px;
|
||||
}
|
||||
|
||||
.large-icons {
|
||||
-gtk-icon-size: 32px;
|
||||
}
|
||||
|
||||
scrollbar {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.box-wrapper {
|
||||
box-shadow:
|
||||
0 19px 38px rgba(0, 0, 0, 0.3),
|
||||
0 15px 12px rgba(0, 0, 0, 0.22);
|
||||
background: @base;
|
||||
padding: 20px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid @crust;
|
||||
}
|
||||
|
||||
.preview-box,
|
||||
.elephant-hint,
|
||||
.placeholder {
|
||||
color: @text;
|
||||
}
|
||||
|
||||
.search-container {
|
||||
border-radius: 10px;
|
||||
background: @mantle;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.input placeholder {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.input selection {
|
||||
background: @surface1;
|
||||
}
|
||||
|
||||
.input {
|
||||
caret-color: @text;
|
||||
background: none;
|
||||
padding: 10px;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
.list {
|
||||
color: @text;
|
||||
}
|
||||
|
||||
.item-box {
|
||||
border-radius: 10px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.item-quick-activation {
|
||||
background: alpha(@mauve, 0.25);
|
||||
border-radius: 5px;
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
child:selected .item-box,
|
||||
row:selected .item-box {
|
||||
background: alpha(@surface0, 0.6);
|
||||
}
|
||||
|
||||
.item-subtext {
|
||||
font-size: 12px;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.providerlist .item-subtext {
|
||||
font-size: unset;
|
||||
opacity: 0.75;
|
||||
}
|
||||
|
||||
.item-image-text {
|
||||
font-size: 28px;
|
||||
}
|
||||
|
||||
.preview {
|
||||
border: 1px solid alpha(@mauve, 0.25);
|
||||
border-radius: 10px;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
.calc .item-text {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.symbols .item-image {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.todo.done .item-text-box {
|
||||
opacity: 0.25;
|
||||
}
|
||||
|
||||
.todo.urgent {
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.todo.active {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.bluetooth.disconnected {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.preview .large-icons {
|
||||
-gtk-icon-size: 64px;
|
||||
}
|
||||
|
||||
.keybinds {
|
||||
padding-top: 10px;
|
||||
border-top: 1px solid @surface0;
|
||||
font-size: 12px;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
.keybind-button {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.keybind-button:hover {
|
||||
opacity: 0.75;
|
||||
}
|
||||
|
||||
.keybind-bind {
|
||||
text-transform: lowercase;
|
||||
opacity: 0.35;
|
||||
}
|
||||
|
||||
.keybind-label {
|
||||
padding: 2px 4px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid @text;
|
||||
}
|
||||
|
||||
.error {
|
||||
padding: 10px;
|
||||
background: @red;
|
||||
color: @base;
|
||||
}
|
||||
|
||||
:not(.calc).current {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
.preview-content.archlinuxpkgs,
|
||||
.preview-content.dnfpackages {
|
||||
font-family: monospace;
|
||||
}
|
||||
18
config/waybar/colors/catppuccin.css
Normal file
18
config/waybar/colors/catppuccin.css
Normal file
@@ -0,0 +1,18 @@
|
||||
@define-color bg0 #1e1e2e;
|
||||
@define-color bg1 #313244;
|
||||
@define-color bg2 #45475a;
|
||||
@define-color bg3 #585b70;
|
||||
@define-color bg4 #11111b;
|
||||
|
||||
@define-color red #f38ba8;
|
||||
@define-color orange #fab387;
|
||||
@define-color yellow #f9e2af;
|
||||
@define-color green #a6e3a1;
|
||||
@define-color aqua #94e2d5;
|
||||
@define-color blue #89b4fa;
|
||||
@define-color purple #cba6f7;
|
||||
|
||||
@define-color fg #cdd6f4;
|
||||
@define-color grey0 #6c7086;
|
||||
@define-color grey1 #7f849c;
|
||||
@define-color grey2 #9399b2;
|
||||
144
config/waybar/config.jsonc
Normal file
144
config/waybar/config.jsonc
Normal file
@@ -0,0 +1,144 @@
|
||||
{
|
||||
"position": "top",
|
||||
"margin-top": 6,
|
||||
"margin-right": 6,
|
||||
"margin-left": 6,
|
||||
"modules-left": ["custom/arch", "custom/separator", "hyprland/window"],
|
||||
"modules-center": ["hyprland/workspaces"],
|
||||
"modules-right": [
|
||||
"custom/cava",
|
||||
"mpris",
|
||||
"custom/separator",
|
||||
"group/tray-drawer",
|
||||
"custom/separator",
|
||||
"battery",
|
||||
"pulseaudio",
|
||||
"network",
|
||||
"custom/separator",
|
||||
"clock",
|
||||
],
|
||||
"hyprland/window": {
|
||||
"rewrite": {
|
||||
"(.*) - Firefox": "$1",
|
||||
"(.*) - kitty": "[$1]",
|
||||
},
|
||||
"separate-outputs": true,
|
||||
"max-length": 30,
|
||||
},
|
||||
"custom/arch": {
|
||||
"format": "",
|
||||
"tooltip": false,
|
||||
// "on-click": "sh -c 'pkill rofi || ~/.config/rofi/powermenu/type-1/powermenu.sh'",
|
||||
// "on-click": "eww open --toggle powermenu",
|
||||
"on-click": "wlogout -l ~/.config/wlogout/layout -s ~/.config/wlogout/style.css -b 4 -T 350 -B 350",
|
||||
},
|
||||
"custom/separator": {
|
||||
"format": "|",
|
||||
"interval": "once",
|
||||
"tooltip": false,
|
||||
},
|
||||
"clock": {
|
||||
"format": "{:%a %b %d - %I:%M %p}",
|
||||
"tooltip-format": "<tt><small>{calendar}</small></tt>",
|
||||
},
|
||||
"hyprland/workspaces": {
|
||||
"format": "{icon}",
|
||||
"on-click": "activate",
|
||||
"format-icons": {
|
||||
"active": " ",
|
||||
"default": " ",
|
||||
},
|
||||
"persistent-workspaces": {
|
||||
"*": 6, // 5 workspaces by default on every monitor
|
||||
},
|
||||
"sort-by-number": true,
|
||||
},
|
||||
"custom/cava": {
|
||||
"exec": "~/.config/waybar/scripts/waybar-cava.sh",
|
||||
"format": "{}",
|
||||
"tooltip": false,
|
||||
},
|
||||
"mpris": {
|
||||
"format": "{title} - {artist}", // {player_icon} removed
|
||||
"format-paused": "{title} - {artist}</i>", // {status_icon} and <i> removed
|
||||
"player-icons": {
|
||||
"default": "",
|
||||
"spotify": "",
|
||||
"firefox": "",
|
||||
"mpd": "",
|
||||
},
|
||||
"status-icons": {
|
||||
"paused": "",
|
||||
},
|
||||
"max-length": 23,
|
||||
},
|
||||
"pulseaudio": {
|
||||
"format": "{icon}", // {volume}% removed
|
||||
"format-bluetooth": "{volume}% {icon}",
|
||||
"format-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"phone-muted": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", ""],
|
||||
},
|
||||
"scroll-step": 1,
|
||||
"on-click": "pamixer -t",
|
||||
"on-click-right": "pavucontrol",
|
||||
"ignored-sinks": ["Easy Effects Sink"],
|
||||
},
|
||||
"network": {
|
||||
"interface": "wlp44s0",
|
||||
"format": "{ifname}",
|
||||
"format-wifi": "",
|
||||
"format-ethernet": "",
|
||||
"format-disconnected": "", //An empty format will hide the module.
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
"tooltip-format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"tooltip-format-ethernet": "{ifname} ",
|
||||
"tooltip-format-disconnected": "Disconnected",
|
||||
"max-length": 50,
|
||||
// "on-click": "exec dms ipc call control-center open",
|
||||
"on-click": "eww open --toggle control_center",
|
||||
"on-click-right": "networkmanager_dmenu",
|
||||
},
|
||||
"battery": {
|
||||
"interval": 60,
|
||||
"states": {
|
||||
"warning": 30,
|
||||
"critical": 15,
|
||||
},
|
||||
"format": "{icon}", // {capacity}% removed
|
||||
"format-icons": ["", "", "", "", ""],
|
||||
"tooltip-format": "{capacity}% - {timeTo}",
|
||||
"max-length": 25,
|
||||
"on-click": "eww open --toggle control_center",
|
||||
},
|
||||
"group/tray-drawer": {
|
||||
"orientation": "horizontal",
|
||||
"drawer": {
|
||||
"transition-duration": 500,
|
||||
"children-class": "tray-child",
|
||||
"transition-left-to-right": false,
|
||||
"click-to-reveal": true
|
||||
},
|
||||
"modules": [
|
||||
"custom/tray-icon", // This is your "toggle" button
|
||||
"tray" // The actual system tray
|
||||
]
|
||||
},
|
||||
|
||||
"custom/tray-icon": {
|
||||
"format": "", // Or use a '' or '' icon
|
||||
"tooltip": false,
|
||||
},
|
||||
|
||||
"tray": {
|
||||
"icon-size": 21,
|
||||
"spacing": 10,
|
||||
},
|
||||
}
|
||||
15
config/waybar/scripts/cava_config
Normal file
15
config/waybar/scripts/cava_config
Normal file
@@ -0,0 +1,15 @@
|
||||
[general]
|
||||
bars = 6
|
||||
|
||||
[output]
|
||||
method = raw
|
||||
raw_target = /dev/stdout
|
||||
data_format = ascii
|
||||
ascii_max_range = 7
|
||||
# Remove the 'ascii_data_format = box' lines—they don't apply to raw ascii mode.
|
||||
|
||||
[input]
|
||||
# If it stays as zeros even when music plays, try changing 'pulse' to 'pipewire'
|
||||
method = pulse
|
||||
source = auto
|
||||
|
||||
7
config/waybar/scripts/launch.sh
Executable file
7
config/waybar/scripts/launch.sh
Executable file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
killall -9 waybar
|
||||
swaync-client --reload-css
|
||||
|
||||
waybar &
|
||||
# swaync &
|
||||
22
config/waybar/scripts/waybar-cava.sh
Executable file
22
config/waybar/scripts/waybar-cava.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Define the bar icons (same ones in your config)
|
||||
icons=(" " "·" "–" "=" "≡" "≡" "≡")
|
||||
|
||||
killall -q cava
|
||||
# We read the numbers from CAVA and swap them for icons
|
||||
cava -p ~/.config/waybar/scripts/cava_config | while read -r line; do
|
||||
output=""
|
||||
# Loop through each digit in the output (e.g., '0', '1', '7')
|
||||
for ((i = 0; i < ${#line}; i++)); do
|
||||
digit="${line:$i:1}"
|
||||
# If it's a number, pick the icon. Otherwise, keep it.
|
||||
if [[ $digit =~ [0-7] ]]; then
|
||||
output+="${icons[$digit]}"
|
||||
# If it's a semicolon or anything else, just skip it
|
||||
else
|
||||
continue
|
||||
fi
|
||||
done
|
||||
echo "$output"
|
||||
done
|
||||
147
config/waybar/style.css
Normal file
147
config/waybar/style.css
Normal file
@@ -0,0 +1,147 @@
|
||||
@import "colors/catppuccin.css";
|
||||
|
||||
* {
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
color: @fg;
|
||||
font-family: "Adwaita Sans", "JetBrainsMono Nerd Font Propo", "sans-serif";
|
||||
font-weight: bold;
|
||||
min-height: 24px;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background: rgba(30, 30, 46, 0.8);
|
||||
border-radius: 24px;
|
||||
border: 2px solid @bg3;
|
||||
}
|
||||
|
||||
tooltip {
|
||||
background: @bg0;
|
||||
border: 1px solid @bg3;
|
||||
border-radius: 12px;
|
||||
}
|
||||
|
||||
tooltip label {
|
||||
color: @fg;
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
#window {
|
||||
margin: 0 0 0 12px;
|
||||
}
|
||||
|
||||
#workspaces {
|
||||
padding: 2px 3px 0px;
|
||||
color: @fg;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0px 6px;
|
||||
margin: 2px 6px;
|
||||
color: transparent;
|
||||
border-top: 3px solid @bg1;
|
||||
transition: all 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
#workspaces button.active {
|
||||
border-top: 3px solid @blue;
|
||||
color: @bg0;
|
||||
min-width: 45px;
|
||||
background-size: 400% 400%;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
border-top: 3px solid @purple;
|
||||
color: @bg0;
|
||||
min-width: 45px;
|
||||
background-size: 400% 400%;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
border-top: 3px solid @red;
|
||||
color: @bg0;
|
||||
min-width: 45px;
|
||||
background-size: 400% 400%;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#battery,
|
||||
#pulseaudio,
|
||||
#backlight,
|
||||
#network,
|
||||
#clock,
|
||||
#custom-notification,
|
||||
#custom-arch,
|
||||
#mpris {
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
#backlight {
|
||||
color: @orange;
|
||||
}
|
||||
|
||||
#mpris {
|
||||
padding: 0 8px 0 0;
|
||||
margin: 4px 0px;
|
||||
}
|
||||
|
||||
#custom-cava {
|
||||
all: unset;
|
||||
min-height: 12px;
|
||||
|
||||
margin: 10px 0px;
|
||||
|
||||
padding: 0 8px;
|
||||
color: @blue;
|
||||
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
#clock {
|
||||
color: @blue;
|
||||
}
|
||||
|
||||
#custom-notification {
|
||||
color: @fg;
|
||||
}
|
||||
|
||||
#pulseaudio {
|
||||
color: @yellow;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
#network {
|
||||
color: @purple;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
#battery {
|
||||
color: @green;
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
#custom-arch {
|
||||
color: #1793d1;
|
||||
padding-left: 24px;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
#custom-separator {
|
||||
color: rgba(255, 255, 255, 0.2);
|
||||
margin: 0;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
#custom-tray-icon {
|
||||
color: #89b4fa; /* Catppuccin Blue */
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
#tray {
|
||||
padding: 0 0 0 8px;
|
||||
}
|
||||
24
config/wlogout/layout
Normal file
24
config/wlogout/layout
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"label" : "lock",
|
||||
"action" : "hyprlock",
|
||||
"text" : "Lock",
|
||||
"keybind" : "l"
|
||||
}
|
||||
{
|
||||
"label" : "logout",
|
||||
"action" : "hyprctl dispatch exit",
|
||||
"text" : "Logout",
|
||||
"keybind" : "e"
|
||||
}
|
||||
{
|
||||
"label" : "shutdown",
|
||||
"action" : "systemctl poweroff",
|
||||
"text" : "Shutdown",
|
||||
"keybind" : "s"
|
||||
}
|
||||
{
|
||||
"label" : "reboot",
|
||||
"action" : "systemctl reboot",
|
||||
"text" : "Reboot",
|
||||
"keybind" : "r"
|
||||
}
|
||||
45
config/wlogout/style.css
Normal file
45
config/wlogout/style.css
Normal file
@@ -0,0 +1,45 @@
|
||||
* {
|
||||
background-image: none;
|
||||
font-family: "Noto Sans";
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
window {
|
||||
background-color: rgba(30, 30, 46, 0.85);
|
||||
}
|
||||
|
||||
button {
|
||||
color: #cdd6f4;
|
||||
background-color: #313244;
|
||||
border-radius: 16px;
|
||||
margin: 10px;
|
||||
padding: 15px 40px;
|
||||
border: 2px solid #45475a;
|
||||
min-width: 120px;
|
||||
min-height: 0px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 48px;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: #89b4fa;
|
||||
color: #1e1e2e;
|
||||
border-color: #89b4fa;
|
||||
}
|
||||
|
||||
#lock {
|
||||
background-image: url("/usr/share/wlogout/icons/lock.png");
|
||||
}
|
||||
|
||||
#logout {
|
||||
background-image: url("/usr/share/wlogout/icons/logout.png");
|
||||
}
|
||||
|
||||
#shutdown {
|
||||
background-image: url("/usr/share/wlogout/icons/shutdown.png");
|
||||
}
|
||||
|
||||
#reboot {
|
||||
background-image: url("/usr/share/wlogout/icons/reboot.png");
|
||||
}
|
||||
65
configuration.nix
Normal file
65
configuration.nix
Normal file
@@ -0,0 +1,65 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
# Bootloader
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
networking.hostName = "nixos";
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Note: The MT7902 WiFi driver is notorious. Your existing fix_my_wifi.sh script
|
||||
# and blacklisting strategy can still work if you run it manually, but eventually,
|
||||
# building it as an out-of-tree kernel module in Nix is the "proper" way.
|
||||
|
||||
time.timeZone = "Asia/Amman";
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
# Hardware: Intel Microcode & Nvidia PRIME
|
||||
hardware.cpu.intel.updateMicrocode = true;
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
};
|
||||
services.xserver.videoDrivers = ["nvidia"];
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
open = true; # You were using nvidia-open-dkms
|
||||
nvidiaSettings = true;
|
||||
prime = {
|
||||
intelBusId = "PCI:0:2:0"; # Verify with `lspci | grep VGA`
|
||||
nvidiaBusId = "PCI:1:0:0"; # Verify with `lspci | grep VGA`
|
||||
};
|
||||
};
|
||||
|
||||
# System Services
|
||||
services.printing.enable = true; # cups
|
||||
services.blueman.enable = true;
|
||||
hardware.bluetooth.enable = true;
|
||||
services.coolercontrol.enable = true;
|
||||
services.ollama.enable = true;
|
||||
virtualisation.libvirtd.enable = true;
|
||||
|
||||
# Display Manager & Desktop
|
||||
services.displayManager.sddm = {
|
||||
enable = true;
|
||||
wayland.enable = true;
|
||||
};
|
||||
|
||||
# Enable Hyprland at the system level to pull in XDG portals automatically
|
||||
programs.hyprland.enable = true;
|
||||
programs.zsh.enable = true;
|
||||
|
||||
# User Account
|
||||
users.users.nouredeen = {
|
||||
isNormalUser = true;
|
||||
description = "Nouredeen";
|
||||
extraGroups = [ "networkmanager" "wheel" "libvirtd" "video" "audio" ];
|
||||
shell = pkgs.zsh;
|
||||
};
|
||||
|
||||
# DO NOT CHANGE
|
||||
system.stateVersion = "24.05";
|
||||
}
|
||||
27
flake.nix
Normal file
27
flake.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{
|
||||
description = "System Flake";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, home-manager, ... }: {
|
||||
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
modules = [
|
||||
./hardware-configuration.nix # Generated during installation
|
||||
./configuration.nix
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.users.nouredeen = import ./home.nix;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
106
home.nix
Normal file
106
home.nix
Normal file
@@ -0,0 +1,106 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
home.username = "nouredeen";
|
||||
home.homeDirectory = "/home/nouredeen";
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# Development
|
||||
jetbrains.rider
|
||||
jetbrains.clion
|
||||
jetbrains.idea-ultimate
|
||||
dotnet-sdk_8
|
||||
vscode
|
||||
git
|
||||
|
||||
# Utilities
|
||||
kitty
|
||||
thunar
|
||||
fzf
|
||||
ripgrep
|
||||
bat
|
||||
yazi
|
||||
btop
|
||||
fastfetch
|
||||
|
||||
# Wayland / Hyprland specific
|
||||
waybar
|
||||
rofi-wayland
|
||||
walker
|
||||
swaynotificationcenter
|
||||
hyprpaper
|
||||
hyprlock
|
||||
hyprshot
|
||||
wlogout
|
||||
wl-clipboard
|
||||
slurp
|
||||
grim
|
||||
|
||||
# Apps
|
||||
firefox
|
||||
google-chrome
|
||||
spotify
|
||||
discord
|
||||
obsidian
|
||||
prismlauncher # Better maintained than raw minecraft-launcher in nix
|
||||
];
|
||||
|
||||
# GTK Theming (Catppuccin Mocha)
|
||||
gtk = {
|
||||
enable = true;
|
||||
theme = {
|
||||
name = "catppuccin-mocha-mauve-standard+default";
|
||||
package = pkgs.catppuccin-gtk.override {
|
||||
accents = [ "mauve" ];
|
||||
size = "standard";
|
||||
tweaks = [ "normal" ];
|
||||
variant = "mocha";
|
||||
};
|
||||
};
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
cursorTheme = {
|
||||
name = "Adwaita";
|
||||
size = 24;
|
||||
};
|
||||
};
|
||||
|
||||
# Zsh & Starship Setup
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
|
||||
shellAliases = {
|
||||
fixwifi = "sudo bash ~/mt7902_temp/fix_my_wifi.sh";
|
||||
startm = "wlogout -l ~/.config/wlogout/layout -s ~/.config/wlogout/style.css -b 4 -T 350 -B 350";
|
||||
zshconf = "nvim ~/.zshrc";
|
||||
barconf = "nvim ~/.config/waybar/config";
|
||||
ca = "cd ~/RiderProjects/ArqaamAccounting/ && clear && claude";
|
||||
arq = "cd ~/RiderProjects/ArqaamAccounting/";
|
||||
reload = "source ~/.zshrc && hyprctl reload && echo 'Reloaded'";
|
||||
mountwin = "sudo mount -t ntfs-3g -o ro /dev/nvme0n1p3 /mnt/windows";
|
||||
};
|
||||
|
||||
initExtra = ''
|
||||
bindkey "^[[1;5C" forward-word
|
||||
bindkey "^[[1;5D" backward-word
|
||||
export EDITOR=nvim
|
||||
'';
|
||||
};
|
||||
|
||||
programs.starship.enable = true;
|
||||
|
||||
# Symlink your existing raw configs!
|
||||
# Just place your folders in ~/nixos-config/dotfiles/
|
||||
home.file = {
|
||||
".config/hypr".source = ./dotfiles/hypr;
|
||||
".config/waybar".source = ./dotfiles/waybar;
|
||||
".config/swaync".source = ./dotfiles/swaync;
|
||||
};
|
||||
|
||||
home.stateVersion = "24.05";
|
||||
}
|
||||
32
starship.toml
Normal file
32
starship.toml
Normal file
@@ -0,0 +1,32 @@
|
||||
"$schema" = "https://starship.rs/config-schema.json"
|
||||
add_newline = true
|
||||
scan_timeout = 100
|
||||
|
||||
|
||||
[character]
|
||||
success_symbol = "[❯](bold green)"
|
||||
error_symbol = "[❯](bold red)"
|
||||
|
||||
[directory]
|
||||
style = "bold #89B4FA"
|
||||
truncation_length = 3
|
||||
truncate_to_repo = true
|
||||
|
||||
[git_branch]
|
||||
symbol = " "
|
||||
style = "bold #F5C2E7"
|
||||
|
||||
[git_status]
|
||||
style = "bold #F38BA8"
|
||||
|
||||
[cmd_duration]
|
||||
style = "bold #F9E2AF"
|
||||
min_time = 2_000
|
||||
|
||||
[username]
|
||||
style_user = "bold #A6E3A1"
|
||||
show_always = false
|
||||
|
||||
[hostname]
|
||||
style = "bold #94E2D5"
|
||||
ssh_only = true
|
||||
BIN
wallpapers/abstract-swirls.jpg
Normal file
BIN
wallpapers/abstract-swirls.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 408 KiB |
BIN
wallpapers/clearing.png
Normal file
BIN
wallpapers/clearing.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 358 KiB |
BIN
wallpapers/cool.jpg
Normal file
BIN
wallpapers/cool.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 324 KiB |
BIN
wallpapers/disco.png
Normal file
BIN
wallpapers/disco.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
BIN
wallpapers/idk-tbh.png
Normal file
BIN
wallpapers/idk-tbh.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 193 KiB |
57
zshrc
Normal file
57
zshrc
Normal file
@@ -0,0 +1,57 @@
|
||||
# Plugins
|
||||
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
|
||||
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
|
||||
|
||||
# Autocomplete (if installed via yay)
|
||||
source /usr/share/zsh/plugins/zsh-autocomplete/zsh-autocomplete.plugin.zsh
|
||||
|
||||
# History
|
||||
HISTSIZE=10000
|
||||
SAVEHIST=10000
|
||||
HISTFILE=~/.zsh_history
|
||||
setopt HIST_IGNORE_DUPS
|
||||
setopt SHARE_HISTORY
|
||||
# Useful options
|
||||
setopt AUTO_CD
|
||||
setopt CORRECT
|
||||
|
||||
export EDITOR=nvim
|
||||
|
||||
# Prompt — handled by Starship
|
||||
eval "$(starship init zsh)"
|
||||
|
||||
|
||||
function hyprconf() {
|
||||
local -A files=(
|
||||
main ~/.config/hypr/hyprland.conf
|
||||
binds ~/.config/hypr/binds.conf
|
||||
env ~/.config/hypr/env.conf
|
||||
settings ~/.config/hypr/settings.conf
|
||||
rules ~/.config/hypr/windowrules.conf
|
||||
autostart ~/.config/hypr/autostart.conf
|
||||
monitors ~/.config/hypr/monitors.conf
|
||||
workspaces ~/.config/hypr/workspaces.conf
|
||||
hyprlock ~/.config/hypr/hyprlock.conf
|
||||
hyprpaper ~/.config/hypr/hyprpaper.conf
|
||||
)
|
||||
local choice=$(printf '%s\n' ${(k)files} | sort | fzf --prompt='hypr config> ')
|
||||
[ -n "$choice" ] && nvim "${files[$choice]}"
|
||||
}
|
||||
alias fixwifi="sudo bash ~/mt7902_temp/fix_my_wifi.sh"
|
||||
alias startm="wlogout -l ~/.config/wlogout/layout -s ~/.config/wlogout/style.css -b 4 -T 350 -B 350"
|
||||
alias zshconf="nvim ~/.zshrc" # renamed from bashconf
|
||||
alias barconf="nvim ~/.config/waybar/config.jsonc"
|
||||
alias ca="cd ~/RiderProjects/ArqaamAccounting/ && clear && claude"
|
||||
bindkey "^[[1;5C" forward-word # Ctrl+Right
|
||||
bindkey "^[[1;5D" backward-word # Ctrl+Left
|
||||
alias reload="source ~/.zshrc && hyprctl reload && echo 'Reloaded' "
|
||||
alias arq="cd ~/RiderProjects/ArqaamAccounting/"
|
||||
alias ssh="TERM=xterm-256color ssh"
|
||||
alias mountwin="sudo mount -t ntfs-3g -o ro /dev/nvme0n1p3 /mnt/windows"
|
||||
# Created by `pipx` on 2026-06-04 11:25:25
|
||||
export PATH="$PATH:/home/nouredeen/.local/bin"
|
||||
|
||||
. "$HOME/.local/share/../bin/env"
|
||||
|
||||
# opencode
|
||||
export PATH=/home/nouredeen/.opencode/bin:$PATH
|
||||
Reference in New Issue
Block a user