feat: replace i3wm with hyprland
@@ -4,7 +4,7 @@
|
||||
|
||||
imports = [
|
||||
./fcitx5
|
||||
./i3
|
||||
./hyprland
|
||||
./programs
|
||||
./rofi
|
||||
./shell
|
||||
|
||||
38
home/hyprland/default.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
# hyprland configs, based on https://github.com/notwidow/hyprland
|
||||
home.file.".config/hypr" = {
|
||||
source = ./hypr-conf;
|
||||
# copy the scripts directory recursively
|
||||
recursive = true;
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [
|
||||
waybar # for the status bar
|
||||
swaybg # for setting the wallpaper
|
||||
swayidle # for setting the idle timeout
|
||||
swaylock # for locking the screen
|
||||
wl-clipboard # for copying and pasting
|
||||
wf-recorder # for screen recording
|
||||
|
||||
xfce.xfce4-appfinder # for the application launcher
|
||||
|
||||
wofi # for the application launcher
|
||||
mako # for the notification daemon
|
||||
grim # for taking screenshots
|
||||
slurp # for selecting a region to screenshot
|
||||
|
||||
light # for changing the screen brightness
|
||||
yad # for the brightness popup
|
||||
|
||||
# 用于播放系统音效
|
||||
mpd # for playing system sounds
|
||||
mpc-cli # command-line mpd client
|
||||
ncmpcpp # a mpd client with a UI
|
||||
|
||||
viewnior # Elegant Image Viewer
|
||||
];
|
||||
}
|
||||
219
home/hyprland/hypr-conf/hyprland.conf
Normal file
@@ -0,0 +1,219 @@
|
||||
## Hyprland configuration file for Archcraft
|
||||
|
||||
#-- Output ----------------------------------------------------
|
||||
# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info.
|
||||
|
||||
# format:
|
||||
# monitor=name,resolution,position,scale
|
||||
monitor=DP-2,3840x2160@144,0x0,1.5
|
||||
workspace=DP-2,1
|
||||
|
||||
#-- Input ----------------------------------------------------
|
||||
# Configure mouse and touchpad here.
|
||||
input {
|
||||
kb_layout=us
|
||||
kb_variant=
|
||||
kb_model=
|
||||
kb_options=
|
||||
kb_rules=
|
||||
follow_mouse=1
|
||||
natural_scroll=0
|
||||
force_no_accel=0
|
||||
# repeat_rate=
|
||||
# repeat_delay=
|
||||
numlock_by_default=1
|
||||
}
|
||||
|
||||
#-- General ----------------------------------------------------
|
||||
# General settings like MOD key, Gaps, Colors, etc.
|
||||
general {
|
||||
sensitivity=2.0
|
||||
apply_sens_to_raw=0
|
||||
|
||||
gaps_in=5
|
||||
gaps_out=10
|
||||
|
||||
border_size=4
|
||||
col.active_border=0xFFB4A1DB
|
||||
col.inactive_border=0xFF343A40
|
||||
}
|
||||
|
||||
#-- Decoration ----------------------------------------------------
|
||||
# Decoration settings like Rounded Corners, Opacity, Blur, etc.
|
||||
decoration {
|
||||
rounding=8 # Original: rounding=-1
|
||||
multisample_edges=0
|
||||
|
||||
active_opacity=1.0
|
||||
inactive_opacity=0.9
|
||||
fullscreen_opacity=1.0
|
||||
|
||||
blur=0
|
||||
blur_size=3 # minimum 1
|
||||
blur_passes=1 # minimum 1, more passes = more resource intensive.
|
||||
blur_ignore_opacity=0
|
||||
|
||||
# Your blur "amount" is blur_size * blur_passes, but high blur_size (over around 5-ish) will produce artifacts.
|
||||
# if you want heavy blur, you need to up the blur_passes.
|
||||
# the more passes, the more you can up the blur_size without noticing artifacts.
|
||||
}
|
||||
|
||||
#-- Animations ----------------------------------------------------
|
||||
animations {
|
||||
enabled=1
|
||||
animation=windows,1,8,default,popin 80%
|
||||
animation=fadeOut,1,8,default
|
||||
animation=fadeIn,1,8,default
|
||||
animation=workspaces,1,8,default
|
||||
#animation=workspaces,1,6,overshot
|
||||
}
|
||||
|
||||
#-- Dwindle ----------------------------------------------------
|
||||
dwindle {
|
||||
pseudotile=0 # enable pseudotiling on dwindle
|
||||
}
|
||||
|
||||
#-- Window Rules ----------------------------------------------------
|
||||
windowrule=float,foot-float
|
||||
windowrule=float,yad|nm-connection-editor|pavucontrolk
|
||||
windowrule=float,xfce-polkit|kvantummanager|qt5ct
|
||||
windowrule=float,feh|Viewnior|Gpicview|Gimp|nomacs
|
||||
windowrule=float,VirtualBox Manager|qemu|Qemu-system-x86_64
|
||||
windowrule=float,xfce4-appfinder
|
||||
|
||||
windowrule=float,foot-full
|
||||
windowrule=move 0 0,foot-full
|
||||
windowrule=size 100% 100%,foot-full
|
||||
|
||||
windowrule=float,wlogout
|
||||
windowrule=move 0 0,wlogout
|
||||
windowrule=size 100% 100%,wlogout
|
||||
windowrule=animation slide,wlogout
|
||||
|
||||
#windowrule=move 69 420,abc
|
||||
#windowrule=size 420 69,abc
|
||||
#windowrule=tile,xyz
|
||||
#windowrule=pseudo,abc
|
||||
#windowrule=monitor 0,xyz
|
||||
#windowrule=workspace 12,abc
|
||||
#windowrule=opacity 1.0,abc
|
||||
#windowrule=animation slide left,abc
|
||||
#windowrule=rounding 10,abc
|
||||
|
||||
#-- Keybindings ----------------------------------------------------
|
||||
$term = alacritty
|
||||
$menu1 = xfce4-appfinder --collapsed
|
||||
$menu2 = ~/.config/hypr/scripts/menu
|
||||
$menu3 = xfce4-appfinder
|
||||
$powermenu = ~/.config/hypr/scripts/powermenu
|
||||
$volume = ~/.config/hypr/scripts/volume
|
||||
$backlight = ~/.config/hypr/scripts/brightness
|
||||
$screenshot = ~/.config/hypr/scripts/screenshot
|
||||
$lockscreen = ~/.config/hypr/scripts/lockscreen
|
||||
$wlogout = ~/.config/hypr/scripts/wlogout
|
||||
$colorpicker = ~/.config/hypr/scripts/colorpicker
|
||||
$files = thunar
|
||||
$editor = geany
|
||||
$browser = firefox
|
||||
|
||||
# -- Terminal --
|
||||
bind=SUPER,Return,exec,$term
|
||||
bind=SUPERSHIFT,Return,exec,$term -s
|
||||
bind=SUPERALT,Return,exec,$term -f
|
||||
bind=SUPER,T,exec,$term -F
|
||||
|
||||
# -- Apps --
|
||||
bind=SUPERSHIFT,F,exec,$files
|
||||
bind=SUPERSHIFT,E,exec,$editor
|
||||
bind=SUPERSHIFT,W,exec,$browser
|
||||
|
||||
# -- Wofi --
|
||||
bind=ALT,F1,exec,$menu1
|
||||
bind=SUPER,D,exec,$menu2
|
||||
bind=ALT,F3,exec,$menu3
|
||||
#bind=SUPER,X,exec,$powermenu
|
||||
|
||||
# -- Hyprland --
|
||||
bind=SUPER,Q,killactive,
|
||||
bind=SUPER,C,killactive,
|
||||
bind=CTRLALT,Delete,exit,
|
||||
bind=SUPER,F,fullscreen,
|
||||
bind=SUPER,Space,togglefloating,
|
||||
bind=SUPER,S,pseudo,
|
||||
|
||||
# -- Misc --
|
||||
bind=SUPER,N,exec,nm-connection-editor
|
||||
bind=SUPER,P,exec,$colorpicker
|
||||
bind=SUPER,X,exec,$wlogout
|
||||
bind=CTRLALT,L,exec,$lockscreen
|
||||
|
||||
# -- Some nice mouse binds --
|
||||
bindm=SUPER,mouse:272,movewindow
|
||||
bindm=SUPER,mouse:273,resizewindow
|
||||
|
||||
# -- Function keys --
|
||||
bind=,XF86MonBrightnessUp,exec,$backlight --inc
|
||||
bind=,XF86MonBrightnessDown,exec,$backlight --dec
|
||||
bind=,XF86AudioRaiseVolume,exec,$volume --inc
|
||||
bind=,XF86AudioLowerVolume,exec,$volume --dec
|
||||
bind=,XF86AudioMute,exec,$volume --toggle
|
||||
bind=,XF86AudioMicMute,exec,$volume --toggle-mic
|
||||
bind=,XF86AudioNext,exec,mpc next
|
||||
bind=,XF86AudioPrev,exec,mpc prev
|
||||
bind=,XF86AudioPlay,exec,mpc toggle
|
||||
bind=,XF86AudioStop,exec,mpc stop
|
||||
|
||||
# -- Screenshots --
|
||||
bind=,Print,exec,$screenshot --now
|
||||
bind=SUPER,Print,exec,$screenshot --in5
|
||||
bind=SHIFT,Print,exec,$screenshot --in10
|
||||
bind=CTRL,Print,exec,$screenshot --win
|
||||
bind=SUPERCTRL,Print,exec,$screenshot --area
|
||||
|
||||
# Focus
|
||||
bind=SUPER,left,movefocus,l
|
||||
bind=SUPER,right,movefocus,r
|
||||
bind=SUPER,up,movefocus,u
|
||||
bind=SUPER,down,movefocus,d
|
||||
|
||||
# Move
|
||||
bind=SUPERSHIFT,left,movewindow,l
|
||||
bind=SUPERSHIFT,right,movewindow,r
|
||||
bind=SUPERSHIFT,up,movewindow,u
|
||||
bind=SUPERSHIFT,down,movewindow,d
|
||||
|
||||
# Resize
|
||||
bind=SUPERCTRL,left,resizeactive,-20 0
|
||||
bind=SUPERCTRL,right,resizeactive,20 0
|
||||
bind=SUPERCTRL,up,resizeactive,0 -20
|
||||
bind=SUPERCTRL,down,resizeactive,0 20
|
||||
|
||||
# Workspaces
|
||||
bind=SUPER,1,workspace,1
|
||||
bind=SUPER,2,workspace,2
|
||||
bind=SUPER,3,workspace,3
|
||||
bind=SUPER,4,workspace,4
|
||||
bind=SUPER,5,workspace,5
|
||||
bind=SUPER,6,workspace,6
|
||||
bind=SUPER,7,workspace,7
|
||||
bind=SUPER,8,workspace,8
|
||||
bind=SUPER,9,workspace,9
|
||||
bind=SUPER,0,workspace,10
|
||||
|
||||
# Send to Workspaces
|
||||
bind=ALT,1,movetoworkspace,1
|
||||
bind=ALT,2,movetoworkspace,2
|
||||
bind=ALT,3,movetoworkspace,3
|
||||
bind=ALT,4,movetoworkspace,4
|
||||
bind=ALT,5,movetoworkspace,5
|
||||
bind=ALT,6,movetoworkspace,6
|
||||
bind=ALT,7,movetoworkspace,7
|
||||
bind=ALT,8,movetoworkspace,8
|
||||
bind=ALT,9,movetoworkspace,9
|
||||
bind=ALT,0,movetoworkspace,10
|
||||
|
||||
bind=SUPER,mouse_down,workspace,e+1
|
||||
bind=SUPER,mouse_up,workspace,e-1
|
||||
|
||||
#-- Startup ----------------------------------------------------
|
||||
exec-once=~/.config/hypr/scripts/startup
|
||||
56
home/hyprland/hypr-conf/mako/config
Normal file
@@ -0,0 +1,56 @@
|
||||
## Mako configuration file
|
||||
|
||||
# GLOBAL CONFIGURATION OPTIONS
|
||||
max-history=100
|
||||
sort=-time
|
||||
|
||||
# BINDING OPTIONS
|
||||
on-button-left=dismiss
|
||||
on-button-middle=none
|
||||
on-button-right=dismiss-all
|
||||
on-touch=dismiss
|
||||
on-notify=exec mpv /usr/share/sounds/freedesktop/stereo/message.oga
|
||||
|
||||
# STYLE OPTIONS
|
||||
font=JetBrains Mono 10
|
||||
width=300
|
||||
height=100
|
||||
margin=10
|
||||
padding=15
|
||||
border-size=2
|
||||
border-radius=0
|
||||
icons=1
|
||||
max-icon-size=48
|
||||
icon-location=left
|
||||
markup=1
|
||||
actions=1
|
||||
history=1
|
||||
text-alignment=left
|
||||
default-timeout=5000
|
||||
ignore-timeout=0
|
||||
max-visible=5
|
||||
layer=overlay
|
||||
anchor=top-right
|
||||
|
||||
background-color=#1e1e2e
|
||||
text-color=#d9e0ee
|
||||
border-color=#313244
|
||||
progress-color=over #89b4fa
|
||||
|
||||
[urgency=low]
|
||||
border-color=#313244
|
||||
default-timeout=2000
|
||||
|
||||
[urgency=normal]
|
||||
border-color=#313244
|
||||
default-timeout=5000
|
||||
|
||||
[urgency=high]
|
||||
border-color=#f38ba8
|
||||
text-color=#f38ba8
|
||||
default-timeout=0
|
||||
|
||||
[category=mpd]
|
||||
border-color=#f9e2af
|
||||
default-timeout=2000
|
||||
group-by=category
|
||||
BIN
home/hyprland/hypr-conf/mako/icons/brightness-100.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/brightness-20.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/brightness-40.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/brightness-60.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/brightness-80.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/dropper.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/microphone-mute.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/microphone.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/music.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/palette.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/picture.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/timer.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/volume-high.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/volume-low.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/volume-mid.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
home/hyprland/hypr-conf/mako/icons/volume-mute.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
54
home/hyprland/hypr-conf/scripts/brightness
Executable file
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Script To Manage Brightness For Archcraft (in Wayland).
|
||||
|
||||
iDIR="$HOME/.config/hypr/mako/icons"
|
||||
|
||||
# Get brightness
|
||||
get_backlight() {
|
||||
LIGHT=$(printf "%.0f\n" $(light -G))
|
||||
echo "${LIGHT}%"
|
||||
}
|
||||
|
||||
# Get icons
|
||||
get_icon() {
|
||||
backlight="$(get_backlight)"
|
||||
current="${backlight%%%}"
|
||||
if [[ ("$current" -ge "0") && ("$current" -le "20") ]]; then
|
||||
icon="$iDIR/brightness-20.png"
|
||||
elif [[ ("$current" -ge "20") && ("$current" -le "40") ]]; then
|
||||
icon="$iDIR/brightness-40.png"
|
||||
elif [[ ("$current" -ge "40") && ("$current" -le "60") ]]; then
|
||||
icon="$iDIR/brightness-60.png"
|
||||
elif [[ ("$current" -ge "60") && ("$current" -le "80") ]]; then
|
||||
icon="$iDIR/brightness-80.png"
|
||||
elif [[ ("$current" -ge "80") && ("$current" -le "100") ]]; then
|
||||
icon="$iDIR/brightness-100.png"
|
||||
fi
|
||||
}
|
||||
|
||||
# Notify
|
||||
notify_user() {
|
||||
notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$icon" "Brightness : $(get_backlight)"
|
||||
}
|
||||
|
||||
# Increase brightness
|
||||
inc_backlight() {
|
||||
light -A 5 && get_icon && notify_user
|
||||
}
|
||||
|
||||
# Decrease brightness
|
||||
dec_backlight() {
|
||||
light -U 5 && get_icon && notify_user
|
||||
}
|
||||
|
||||
# Execute accordingly
|
||||
if [[ "$1" == "--get" ]]; then
|
||||
get_backlight
|
||||
elif [[ "$1" == "--inc" ]]; then
|
||||
inc_backlight
|
||||
elif [[ "$1" == "--dec" ]]; then
|
||||
dec_backlight
|
||||
else
|
||||
get_backlight
|
||||
fi
|
||||
20
home/hyprland/hypr-conf/scripts/colorpicker
Executable file
@@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Simple Script To Pick Color Quickly.
|
||||
|
||||
color=$(grim -g "$(slurp -b 1B1F2800 -p)" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:- | tail -n1 | cut -d' ' -f4)
|
||||
image=/tmp/${color}.png
|
||||
|
||||
main() {
|
||||
if [[ "$color" ]]; then
|
||||
# copy color code to clipboard
|
||||
echo $color | tr -d "\n" | wl-copy
|
||||
# generate preview
|
||||
convert -size 48x48 xc:"$color" ${image}
|
||||
# notify about it
|
||||
notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i ${image} "$color, copied to clipboard."
|
||||
fi
|
||||
}
|
||||
|
||||
# Run the script
|
||||
main
|
||||
19
home/hyprland/hypr-conf/scripts/gtkthemes-bkp
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Set GTK Themes, Icons, Cursor and Fonts
|
||||
|
||||
THEME='Arc-Dark'
|
||||
ICONS='Zafiro-Blue'
|
||||
FONT='Noto Sans 9'
|
||||
CURSOR='Qogirr'
|
||||
|
||||
SCHEMA='gsettings set org.gnome.desktop.interface'
|
||||
|
||||
apply_themes () {
|
||||
${SCHEMA} gtk-theme "$THEME"
|
||||
${SCHEMA} icon-theme "$ICONS"
|
||||
${SCHEMA} cursor-theme "$CURSOR"
|
||||
${SCHEMA} font-name "$FONT"
|
||||
}
|
||||
|
||||
apply_themes
|
||||
70
home/hyprland/hypr-conf/scripts/lockscreen
Executable file
@@ -0,0 +1,70 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Background Image
|
||||
IMAGE="$HOME/.config/hypr/wallpapers/lockscreen.png"
|
||||
|
||||
# Colors
|
||||
bg='1e1e2e' bgl='313244' fg='d9e0ee'
|
||||
red='f38ba8' green='a6e3a1' yellow='f9e2af'
|
||||
blue='89b4fa' magenta='cba6f7' cyan='89dceb'
|
||||
alpha='00000000'
|
||||
|
||||
# CMD
|
||||
swaylock -f \
|
||||
\
|
||||
`# General` \
|
||||
--ignore-empty-password \
|
||||
--show-failed-attempts \
|
||||
--hide-keyboard-layout \
|
||||
--indicator-caps-lock \
|
||||
\
|
||||
`# Appearance` \
|
||||
--color ${bg}E6 \
|
||||
`#--image ${IMAGE} --scaling fill` \
|
||||
--font 'JetBrainsMono Nerd Font' --font-size 18 \
|
||||
\
|
||||
`# Backspace Key` \
|
||||
--key-hl-color ${green} \
|
||||
--caps-lock-key-hl-color ${blue} \
|
||||
--bs-hl-color ${red} \
|
||||
--caps-lock-bs-hl-color ${red} \
|
||||
\
|
||||
`# Indicator` \
|
||||
--indicator-radius 120 \
|
||||
--indicator-thickness 10 \
|
||||
\
|
||||
`# Inside Circle Colors` \
|
||||
--inside-color ${alpha} \
|
||||
--inside-clear-color ${alpha} \
|
||||
--inside-caps-lock-color ${alpha} \
|
||||
--inside-ver-color ${blue} \
|
||||
--inside-wrong-color ${red} \
|
||||
\
|
||||
`# Layout Colors` \
|
||||
--layout-bg-color ${cyan} \
|
||||
--layout-border-color ${cyan} \
|
||||
--layout-text-color ${bg} \
|
||||
\
|
||||
`# Line Colors` \
|
||||
--line-color ${bg} \
|
||||
--line-clear-color ${red} \
|
||||
--line-caps-lock-color ${bg} \
|
||||
--line-ver-color ${bg} \
|
||||
--line-wrong-color ${bg} \
|
||||
\
|
||||
`# Ring Colors` \
|
||||
--ring-color ${cyan} \
|
||||
--ring-clear-color ${bg} \
|
||||
--ring-caps-lock-color ${magenta} \
|
||||
--ring-ver-color ${blue} \
|
||||
--ring-wrong-color ${red} \
|
||||
\
|
||||
`# Separator Color` \
|
||||
--separator-color ${bg} \
|
||||
\
|
||||
`# Text Colors` \
|
||||
--text-color ${fg} \
|
||||
--text-clear-color ${fg} \
|
||||
--text-caps-lock-color ${fg} \
|
||||
--text-ver-color ${bg} \
|
||||
--text-wrong-color ${bg}
|
||||
13
home/hyprland/hypr-conf/scripts/menu
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## launch wofi with alt config
|
||||
|
||||
CONFIG="$HOME/.config/hypr/wofi/config"
|
||||
STYLE="$HOME/.config/hypr/wofi/style.css"
|
||||
COLORS="$HOME/.config/hypr/wofi/colors"
|
||||
|
||||
if [[ ! $(pidof wofi) ]]; then
|
||||
wofi --show drun --prompt 'Search...' --conf ${CONFIG} --style ${STYLE} --color ${COLORS}
|
||||
else
|
||||
pkill wofi
|
||||
fi
|
||||
9
home/hyprland/hypr-conf/scripts/notifications
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## launch mako with alt config
|
||||
|
||||
CONFIG="$HOME/.config/hypr/mako/config"
|
||||
|
||||
if [[ ! $(pidof mako) ]]; then
|
||||
mako --config ${CONFIG}
|
||||
fi
|
||||
83
home/hyprland/hypr-conf/scripts/powermenu
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Wofi Powermenu
|
||||
|
||||
## Files
|
||||
CONFIG="$HOME/.config/hypr/wofi/config"
|
||||
STYLE="$HOME/.config/hypr/wofi/style.css"
|
||||
COLORS="$HOME/.config/hypr/wofi/colors"
|
||||
|
||||
## Wofi Command
|
||||
wofi_command="wofi --show dmenu \
|
||||
--conf ${CONFIG} --style ${STYLE} --color ${COLORS} \
|
||||
--width=300 --height=165 \
|
||||
--cache-file=/dev/null \
|
||||
--hide-scroll --no-actions \
|
||||
--define=matching=fuzzy"
|
||||
|
||||
uptime=$(uptime -p | sed -e 's/up //g')
|
||||
|
||||
## Entries
|
||||
shutdown=" Shutdown"
|
||||
reboot=" Restart"
|
||||
lock=" Lock"
|
||||
suspend=" Sleep"
|
||||
logout=" Logout"
|
||||
|
||||
# Ask for confirmation
|
||||
cdialog () {
|
||||
yad --title='Confirm?' --borders=15 --center --fixed --undecorated --button=Yes:0 --button=No:1 --text="Are you sure?" --text-align=center
|
||||
}
|
||||
|
||||
# Variable passed to rofi
|
||||
open_menu () {
|
||||
options="$lock\n$suspend\n$logout\n$reboot\n$shutdown"
|
||||
|
||||
chosen="$(echo -e "$options" | $wofi_command --prompt "UP - $uptime")"
|
||||
case $chosen in
|
||||
$shutdown)
|
||||
cdialog
|
||||
if [[ "$?" == 0 ]]; then
|
||||
systemctl poweroff
|
||||
else
|
||||
exit
|
||||
fi
|
||||
;;
|
||||
$reboot)
|
||||
cdialog
|
||||
if [[ "$?" == 0 ]]; then
|
||||
systemctl reboot
|
||||
else
|
||||
exit
|
||||
fi
|
||||
;;
|
||||
$lock)
|
||||
~/.config/hypr/scripts/lockscreen
|
||||
;;
|
||||
$suspend)
|
||||
cdialog
|
||||
if [[ "$?" == 0 ]]; then
|
||||
mpc -q pause
|
||||
amixer set Master mute
|
||||
~/.config/hypr/scripts/lockscreen
|
||||
systemctl suspend
|
||||
else
|
||||
exit
|
||||
fi
|
||||
;;
|
||||
$logout)
|
||||
cdialog
|
||||
if [[ "$?" == 0 ]]; then
|
||||
kill -9 -1
|
||||
else
|
||||
exit
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
if [[ ! $(pidof wofi) ]]; then
|
||||
open_menu
|
||||
else
|
||||
pkill wofi
|
||||
fi
|
||||
79
home/hyprland/hypr-conf/scripts/screenshot
Executable file
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Script to take screenshots with grim, slurp (in Wayland)
|
||||
|
||||
iDIR="$HOME/.config/hypr/mako/icons"
|
||||
|
||||
time=$(date +%Y-%m-%d-%H-%M-%S)
|
||||
dir="$(xdg-user-dir PICTURES)/Screenshots"
|
||||
file="Screenshot_${time}_${RANDOM}.png"
|
||||
|
||||
# notify and view screenshot
|
||||
notify_cmd_shot="notify-send -h string:x-canonical-private-synchronous:shot-notify -u low -i ${iDIR}/picture.png"
|
||||
notify_view () {
|
||||
${notify_cmd_shot} "Copied to clipboard."
|
||||
viewnior ${dir}/"$file"
|
||||
if [[ -e "$dir/$file" ]]; then
|
||||
${notify_cmd_shot} "Screenshot Saved."
|
||||
else
|
||||
${notify_cmd_shot} "Screenshot Deleted."
|
||||
fi
|
||||
}
|
||||
|
||||
# countdown
|
||||
countdown () {
|
||||
for sec in $(seq $1 -1 1); do
|
||||
notify-send -h string:x-canonical-private-synchronous:shot-notify -t 1000 -i "$iDIR"/timer.png "Taking shot in : $sec"
|
||||
sleep 1
|
||||
done
|
||||
}
|
||||
|
||||
# take shots
|
||||
shotnow () {
|
||||
cd ${dir} && grim - | tee "$file" | wl-copy
|
||||
notify_view
|
||||
}
|
||||
|
||||
shot5 () {
|
||||
countdown '5'
|
||||
sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy
|
||||
notify_view
|
||||
}
|
||||
|
||||
shot10 () {
|
||||
countdown '10'
|
||||
sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy
|
||||
notify_view
|
||||
}
|
||||
|
||||
shotwin () {
|
||||
w_pos=$(hyprctl activewindow | grep 'at:' | cut -d':' -f2 | tr -d ' ' | tail -n1)
|
||||
w_size=$(hyprctl activewindow | grep 'size:' | cut -d':' -f2 | tr -d ' ' | tail -n1 | sed s/,/x/g)
|
||||
cd ${dir} && grim -g "$w_pos $w_size" - | tee "$file" | wl-copy
|
||||
notify_view
|
||||
}
|
||||
|
||||
shotarea () {
|
||||
cd ${dir} && grim -g "$(slurp -b 1B1F28CC -c E06B74ff -s C778DD0D -w 2)" - | tee "$file" | wl-copy
|
||||
notify_view
|
||||
}
|
||||
|
||||
if [[ ! -d "$dir" ]]; then
|
||||
mkdir -p "$dir"
|
||||
fi
|
||||
|
||||
if [[ "$1" == "--now" ]]; then
|
||||
shotnow
|
||||
elif [[ "$1" == "--in5" ]]; then
|
||||
shot5
|
||||
elif [[ "$1" == "--in10" ]]; then
|
||||
shot10
|
||||
elif [[ "$1" == "--win" ]]; then
|
||||
shotwin
|
||||
elif [[ "$1" == "--area" ]]; then
|
||||
shotarea
|
||||
else
|
||||
echo -e "Available Options : --now --in5 --in10 --win --area"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
29
home/hyprland/hypr-conf/scripts/startup
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Autostart Programs
|
||||
|
||||
# Kill already running process
|
||||
_ps=(waybar mako mpd xfce-polkit)
|
||||
for _prs in "${_ps[@]}"; do
|
||||
if [[ $(pidof ${_prs}) ]]; then
|
||||
killall -9 ${_prs}
|
||||
fi
|
||||
done
|
||||
|
||||
# Polkit agent
|
||||
/usr/lib/xfce-polkit/xfce-polkit &
|
||||
|
||||
# Set wallpaper
|
||||
swaybg --output '*' --mode fill --image ~/.config/hypr/wallpapers/wallpaper.png &
|
||||
|
||||
# Apply themes
|
||||
~/.config/hypr/scripts/gtkthemes &
|
||||
|
||||
# Lauch notification daemon (mako)
|
||||
~/.config/hypr/scripts/notifications &
|
||||
|
||||
# Lauch statusbar (waybar)
|
||||
~/.config/hypr/scripts/statusbar &
|
||||
|
||||
# Start mpd
|
||||
exec mpd &
|
||||
10
home/hyprland/hypr-conf/scripts/statusbar
Executable file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## launch waybar with alt config
|
||||
|
||||
CONFIG="$HOME/.config/hypr/waybar/config"
|
||||
STYLE="$HOME/.config/hypr/waybar/style.css"
|
||||
|
||||
if [[ ! $(pidof waybar) ]]; then
|
||||
waybar --bar main-bar --log-level error --config ${CONFIG} --style ${STYLE}
|
||||
fi
|
||||
16
home/hyprland/hypr-conf/scripts/terminal
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## launch terminal with alt config
|
||||
|
||||
CONFIG="$HOME/.config/hypr/foot/foot.ini"
|
||||
|
||||
if [ "$1" == "-f" ]; then
|
||||
foot --app-id='foot-float' --config="$CONFIG"
|
||||
elif [ "$1" == "-F" ]; then
|
||||
foot --fullscreen --app-id='foot-full' --font="Iosevka Nerd Font:size=14" --override=pad=35x35 --config="$CONFIG"
|
||||
elif [ "$1" == "-s" ]; then
|
||||
foot --app-id='foot-float' --config="$CONFIG" \
|
||||
--window-size-pixels=$(slurp -b 1B1F28CC -c E06B74ff -s C778DD0D -w 2 -f "%wx%h")
|
||||
else
|
||||
foot --config="$CONFIG"
|
||||
fi
|
||||
76
home/hyprland/hypr-conf/scripts/volume
Executable file
@@ -0,0 +1,76 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## Script To Manage Speaker Volume For Archcraft (in Wayland).
|
||||
|
||||
iDIR="$HOME/.config/hypr/mako/icons"
|
||||
|
||||
# Get Volume
|
||||
get_volume() {
|
||||
volume=$(amixer get Master | tail -n1 | awk -F ' ' '{print $5}' | tr -d '[]')
|
||||
echo "$volume"
|
||||
}
|
||||
|
||||
# Get icons
|
||||
get_icon() {
|
||||
vol="$(get_volume)"
|
||||
current="${vol%%%}"
|
||||
if [[ "$current" -eq "0" ]]; then
|
||||
icon="$iDIR/volume-mute.png"
|
||||
elif [[ ("$current" -ge "0") && ("$current" -le "30") ]]; then
|
||||
icon="$iDIR/volume-low.png"
|
||||
elif [[ ("$current" -ge "30") && ("$current" -le "60") ]]; then
|
||||
icon="$iDIR/volume-mid.png"
|
||||
elif [[ ("$current" -ge "60") && ("$current" -le "100") ]]; then
|
||||
icon="$iDIR/volume-high.png"
|
||||
fi
|
||||
}
|
||||
|
||||
# Notify
|
||||
notify_user() {
|
||||
notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$icon" "Volume : $(get_volume)"
|
||||
}
|
||||
|
||||
# Increase Volume
|
||||
inc_volume() {
|
||||
amixer -Mq set Master,0 5%+ unmute && get_icon && notify_user
|
||||
}
|
||||
|
||||
# Decrease Volume
|
||||
dec_volume() {
|
||||
amixer -Mq set Master,0 5%- unmute && get_icon && notify_user
|
||||
}
|
||||
|
||||
# Toggle Mute
|
||||
toggle_mute() {
|
||||
amixer get Master | grep '\[on\]' &>/dev/null
|
||||
if [[ "$?" == 0 ]]; then
|
||||
amixer set Master toggle && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/volume-mute.png" "Mute"
|
||||
else
|
||||
amixer set Master toggle && get_icon && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$icon" "Unmute"
|
||||
fi
|
||||
}
|
||||
|
||||
# Toggle Mic
|
||||
toggle_mic() {
|
||||
amixer get Capture | grep '\[on\]' &>/dev/null
|
||||
if [[ "$?" == 0 ]]; then
|
||||
amixer -D pulse sset Capture toggle && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/microphone-mute.png" "Microphone Switched OFF"
|
||||
else
|
||||
amixer -D pulse sset Capture toggle && get_icon && notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i "$iDIR/microphone.png" "Microphone Switched ON"
|
||||
fi
|
||||
}
|
||||
|
||||
# Execute accordingly
|
||||
if [[ "$1" == "--get" ]]; then
|
||||
get_volume
|
||||
elif [[ "$1" == "--inc" ]]; then
|
||||
inc_volume
|
||||
elif [[ "$1" == "--dec" ]]; then
|
||||
dec_volume
|
||||
elif [[ "$1" == "--toggle" ]]; then
|
||||
toggle_mute
|
||||
elif [[ "$1" == "--toggle-mic" ]]; then
|
||||
toggle_mic
|
||||
else
|
||||
get_volume
|
||||
fi
|
||||
79
home/hyprland/hypr-conf/scripts/weather.sh
Executable file
@@ -0,0 +1,79 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
cachedir=~/.cache/rbn
|
||||
cachefile=${0##*/}-$1
|
||||
|
||||
if [ ! -d $cachedir ]; then
|
||||
mkdir -p $cachedir
|
||||
fi
|
||||
|
||||
if [ ! -f $cachedir/$cachefile ]; then
|
||||
touch $cachedir/$cachefile
|
||||
fi
|
||||
|
||||
# Save current IFS
|
||||
SAVEIFS=$IFS
|
||||
# Change IFS to new line.
|
||||
IFS=$'\n'
|
||||
|
||||
cacheage=$(($(date +%s) - $(stat -c '%Y' "$cachedir/$cachefile")))
|
||||
if [ $cacheage -gt 1740 ] || [ ! -s $cachedir/$cachefile ]; then
|
||||
data=($(curl -s https://en.wttr.in/$1\?0qnT 2>&1))
|
||||
echo ${data[0]} | cut -f1 -d, > $cachedir/$cachefile
|
||||
echo ${data[1]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile
|
||||
echo ${data[2]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile
|
||||
fi
|
||||
|
||||
weather=($(cat $cachedir/$cachefile))
|
||||
|
||||
# Restore IFSClear
|
||||
IFS=$SAVEIFS
|
||||
|
||||
temperature=$(echo ${weather[2]} | sed -E 's/([[:digit:]])+\.\./\1 to /g')
|
||||
|
||||
#echo ${weather[1]##*,}
|
||||
|
||||
# https://fontawesome.com/icons?s=solid&c=weather
|
||||
case $(echo ${weather[1]##*,} | tr '[:upper:]' '[:lower:]') in
|
||||
"clear" | "sunny")
|
||||
condition=""
|
||||
;;
|
||||
"partly cloudy")
|
||||
condition="杖"
|
||||
;;
|
||||
"cloudy")
|
||||
condition=""
|
||||
;;
|
||||
"overcast")
|
||||
condition=""
|
||||
;;
|
||||
"mist" | "fog" | "freezing fog")
|
||||
condition=""
|
||||
;;
|
||||
"patchy rain possible" | "patchy light drizzle" | "light drizzle" | "patchy light rain" | "light rain" | "light rain shower" | "rain")
|
||||
condition=""
|
||||
;;
|
||||
"moderate rain at times" | "moderate rain" | "heavy rain at times" | "heavy rain" | "moderate or heavy rain shower" | "torrential rain shower" | "rain shower")
|
||||
condition=""
|
||||
;;
|
||||
"patchy snow possible" | "patchy sleet possible" | "patchy freezing drizzle possible" | "freezing drizzle" | "heavy freezing drizzle" | "light freezing rain" | "moderate or heavy freezing rain" | "light sleet" | "ice pellets" | "light sleet showers" | "moderate or heavy sleet showers")
|
||||
condition="ﭽ"
|
||||
;;
|
||||
"blowing snow" | "moderate or heavy sleet" | "patchy light snow" | "light snow" | "light snow showers")
|
||||
condition="流"
|
||||
;;
|
||||
"blizzard" | "patchy moderate snow" | "moderate snow" | "patchy heavy snow" | "heavy snow" | "moderate or heavy snow with thunder" | "moderate or heavy snow showers")
|
||||
condition="ﰕ"
|
||||
;;
|
||||
"thundery outbreaks possible" | "patchy light rain with thunder" | "moderate or heavy rain with thunder" | "patchy light snow with thunder")
|
||||
condition=""
|
||||
;;
|
||||
*)
|
||||
condition=""
|
||||
echo -e "{\"text\":\""$condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}"
|
||||
;;
|
||||
esac
|
||||
|
||||
#echo $temp $condition
|
||||
|
||||
echo -e "{\"text\":\""$temperature $condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}"
|
||||
19
home/hyprland/hypr-conf/scripts/wlogout
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## wlogout with alt layout and style file
|
||||
|
||||
LAYOUT="$HOME/.config/hypr/wlogout/layout"
|
||||
STYLE="$HOME/.config/hypr/wlogout/style.css"
|
||||
|
||||
if [[ ! $(pidof wlogout) ]]; then
|
||||
wlogout --layout ${LAYOUT} --css ${STYLE} \
|
||||
--buttons-per-row 5 \
|
||||
--column-spacing 50 \
|
||||
--row-spacing 50 \
|
||||
--margin-top 390 \
|
||||
--margin-bottom 390 \
|
||||
--margin-left 150 \
|
||||
--margin-right 150
|
||||
else
|
||||
pkill wlogout
|
||||
fi
|
||||
BIN
home/hyprland/hypr-conf/wallpapers/lockscreen.png
Normal file
|
After Width: | Height: | Size: 149 KiB |
BIN
home/hyprland/hypr-conf/wallpapers/wallpaper.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
223
home/hyprland/hypr-conf/waybar/config
Normal file
@@ -0,0 +1,223 @@
|
||||
{
|
||||
"name": "main-bar",
|
||||
"id": "main-bar",
|
||||
"layer": "top",
|
||||
"mode": "dock",
|
||||
"exclusive": true,
|
||||
"passthrough": false,
|
||||
"height": 32,
|
||||
"spacing": 6,
|
||||
"margin": 0,
|
||||
"margin-top": 0,
|
||||
"margin-bottom": 0,
|
||||
"margin-left": 0,
|
||||
"margin-right": 0,
|
||||
"fixed-center": true,
|
||||
"ipc": true,
|
||||
|
||||
"modules-left": [
|
||||
"custom/menu",
|
||||
"wlr/workspaces",
|
||||
"cpu",
|
||||
"memory",
|
||||
"disk"
|
||||
],
|
||||
"modules-center": [
|
||||
"mpd",
|
||||
"tray"
|
||||
],
|
||||
"modules-right": [
|
||||
"pulseaudio",
|
||||
"custom/weather",
|
||||
"network",
|
||||
"battery",
|
||||
"clock",
|
||||
"custom/power"
|
||||
],
|
||||
|
||||
// waybar-backlight
|
||||
"backlight": {
|
||||
"interval": 2,
|
||||
"align": 0,
|
||||
"rotate": 0,
|
||||
//"device": "amdgpu_bl0",
|
||||
"format": "{icon} {percent}%",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
// Commands to execute on events
|
||||
"on-click": "",
|
||||
"on-click-middle": "",
|
||||
"on-click-right": "",
|
||||
"on-update": "",
|
||||
"on-scroll-up": "light -A 5%",
|
||||
"on-scroll-down": "light -U 5%",
|
||||
"smooth-scrolling-threshold": 1,
|
||||
},
|
||||
"wlr/workspaces": {
|
||||
"format": "{icon}",
|
||||
"on-click": "activate",
|
||||
"all-outputs": true,
|
||||
"format-icons": {
|
||||
"1": "",
|
||||
"2": "",
|
||||
"3": "",
|
||||
"4": "",
|
||||
"5": "ﭮ",
|
||||
"6": "",
|
||||
"7": "",
|
||||
"8": "",
|
||||
"9": "",
|
||||
"10": "﮼",
|
||||
"focused": "",
|
||||
"default": ""
|
||||
}
|
||||
},
|
||||
// waybar-battery
|
||||
"battery": {
|
||||
"interval": 60,
|
||||
"align": 0,
|
||||
"rotate": 0,
|
||||
//"bat": "BAT1",
|
||||
//"adapter": "ACAD",
|
||||
"full-at": 100,
|
||||
"design-capacity": false,
|
||||
"states": {
|
||||
"good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{icon} {capacity}%",
|
||||
"format-charging": " {capacity}%",
|
||||
"format-plugged": " {capacity}%",
|
||||
"format-full": "{icon} Full",
|
||||
//"format-good": "",
|
||||
"format-alt": "{icon} {time}",
|
||||
"format-icons": [
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
""
|
||||
],
|
||||
"format-time": "{H}h {M}min",
|
||||
"tooltip": true,
|
||||
},
|
||||
// waybar-clock
|
||||
"clock": {
|
||||
"interval": 60,
|
||||
"align": 0,
|
||||
"rotate": 0,
|
||||
//"timezone": "America/New_York",
|
||||
"tooltip-format": "<big>{:%B %Y}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"format": " {:%H:%M}",
|
||||
"format-alt": " {:%a %b %d, %G}"
|
||||
},
|
||||
// waybar-cpu
|
||||
"cpu": {
|
||||
"interval": 5,
|
||||
"format": " LOAD: {usage}%",
|
||||
},
|
||||
// waybar-custom
|
||||
"custom/menu": {
|
||||
"format": "",
|
||||
"tooltip": false,
|
||||
"on-click": "$HOME/.config/hypr/scripts/menu",
|
||||
},
|
||||
"custom/power": {
|
||||
"format": "襤",
|
||||
"tooltip": false,
|
||||
"on-click": "$HOME/.config/hypr/scripts/wlogout",
|
||||
},
|
||||
// waybar-disk
|
||||
"disk": {
|
||||
"interval": 30,
|
||||
"format": " FREE: {free}",
|
||||
},
|
||||
// waybar-memory
|
||||
"memory": {
|
||||
"interval": 10,
|
||||
"format": " USED: {used:0.1f}G",
|
||||
},
|
||||
// waybar-mpd
|
||||
"mpd": {
|
||||
"interval": 2,
|
||||
"unknown-tag": "N/A",
|
||||
"format": "{stateIcon} {artist} - {title}",
|
||||
"format-disconnected": " Disconnected",
|
||||
"format-paused": "{stateIcon} {artist} - {title}",
|
||||
"format-stopped": "Stopped ",
|
||||
"state-icons": {
|
||||
"paused": "",
|
||||
"playing": ""
|
||||
},
|
||||
"tooltip-format": "MPD (connected)",
|
||||
"tooltip-format-disconnected": "MPD (disconnected)",
|
||||
// Commands to execute on events
|
||||
"on-click": "mpc toggle",
|
||||
"on-click-middle": "mpc prev",
|
||||
"on-click-right": "mpc next",
|
||||
"on-update": "",
|
||||
"on-scroll-up": "mpc seek +00:00:01",
|
||||
"on-scroll-down": "mpc seek -00:00:01",
|
||||
"smooth-scrolling-threshold": 1,
|
||||
},
|
||||
// waybar-network
|
||||
"network": {
|
||||
"interval": 5,
|
||||
//"interface": "wlan*", // (Optional) To force the use of this interface, set it for netspeed to work
|
||||
"format-wifi": " {essid}",
|
||||
"format-ethernet": " {ipaddr}/{cidr}",
|
||||
"format-linked": " {ifname} (No IP)",
|
||||
"format-disconnected": "睊 Disconnected",
|
||||
"format-disabled": "睊 Disabled",
|
||||
"format-alt": " {bandwidthUpBits} | {bandwidthDownBits}",
|
||||
"tooltip-format": " {ifname} via {gwaddr}",
|
||||
},
|
||||
// weather-custom
|
||||
"custom/weather": {
|
||||
"format": "{}",
|
||||
"format-alt": "{alt}: {}",
|
||||
"format-alt-click": "click-right",
|
||||
"interval": 1800,
|
||||
"return-type": "json",
|
||||
"exec": "~/.config/hypr/scripts/weather.sh",
|
||||
"exec-if": "ping wttr.in -c1"
|
||||
},
|
||||
// waybar-pulseaudio
|
||||
"pulseaudio": {
|
||||
//"format": "{volume}% {icon} {format_source}",
|
||||
"format": "{icon} {volume}%",
|
||||
"format-muted": " Mute",
|
||||
"format-bluetooth": " {volume}% {format_source}",
|
||||
"format-bluetooth-muted": " Mute",
|
||||
"format-source": " {volume}%",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": [
|
||||
"",
|
||||
"",
|
||||
""
|
||||
]
|
||||
},
|
||||
"scroll-step": 5.0,
|
||||
// Commands to execute on events
|
||||
"on-click": "amixer set Master toggle",
|
||||
"on-click-right": "pavucontrol",
|
||||
"smooth-scrolling-threshold": 1,
|
||||
},
|
||||
// waybar-tray
|
||||
"tray": {
|
||||
"icon-size": 16,
|
||||
"spacing": 10
|
||||
}
|
||||
}
|
||||
184
home/hyprland/hypr-conf/waybar/style.css
Normal file
@@ -0,0 +1,184 @@
|
||||
/** ********** Fonts ********** **/
|
||||
* {
|
||||
font-family: "JetBrains Mono", "Iosevka Nerd Font", archcraft, sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/** ********** Waybar Window ********** **/
|
||||
window#waybar {
|
||||
background-color: #1e1e2e;
|
||||
color: #1e1e2e;
|
||||
border-bottom: 2px solid #313244;
|
||||
transition-property: background-color;
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
/** ********** Backlight ********** **/
|
||||
#backlight {
|
||||
background-color: #cba6f7;
|
||||
}
|
||||
|
||||
/** ********** Battery ********** **/
|
||||
#battery {
|
||||
background-color: #f9e2af;
|
||||
}
|
||||
|
||||
#battery.charging {
|
||||
}
|
||||
|
||||
#battery.plugged {
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #f38ba8;
|
||||
color: #f38ba8;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
/** ********** Clock ********** **/
|
||||
#clock {
|
||||
background-color: #a6e3a1;
|
||||
}
|
||||
|
||||
/** ********** CPU ********** **/
|
||||
#cpu {
|
||||
background-color: #89dceb;
|
||||
}
|
||||
|
||||
/** ********** Memory ********** **/
|
||||
#memory {
|
||||
background-color: #eba0ac;
|
||||
}
|
||||
|
||||
/** ********** Disk ********** **/
|
||||
#disk {
|
||||
background-color: #b4befe;
|
||||
}
|
||||
|
||||
/** ********** Tray ********** **/
|
||||
#tray {
|
||||
background-color: #cdd6f4;
|
||||
}
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
}
|
||||
#tray > .active {
|
||||
}
|
||||
|
||||
/** ********** MPD ********** **/
|
||||
#mpd {
|
||||
background-color: #94e2d5;
|
||||
}
|
||||
|
||||
#mpd.disconnected {
|
||||
background-color: #f38ba8;
|
||||
}
|
||||
|
||||
#mpd.stopped {
|
||||
background-color: #f5c2e7;
|
||||
}
|
||||
|
||||
#mpd.playing {
|
||||
background-color: #74c7ec;
|
||||
}
|
||||
|
||||
#mpd.paused {
|
||||
}
|
||||
|
||||
/** ********** Pulseaudio ********** **/
|
||||
#pulseaudio {
|
||||
background-color: #fab387;
|
||||
}
|
||||
|
||||
#pulseaudio.bluetooth {
|
||||
background-color: #f5c2e7;
|
||||
}
|
||||
#pulseaudio.muted {
|
||||
background-color: #313244;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
|
||||
/** ********** Network ********** **/
|
||||
#network {
|
||||
background-color: #89b4fa;
|
||||
}
|
||||
|
||||
#network.disconnected,#network.disabled {
|
||||
background-color: #313244;
|
||||
color: #cdd6f4;
|
||||
}
|
||||
#network.linked {
|
||||
}
|
||||
#network.ethernet {
|
||||
}
|
||||
#network.wifi {
|
||||
}
|
||||
|
||||
/** ********** Custom ********** **/
|
||||
#custom-menu, #custom-power, #custom-weather, #custom-updater {
|
||||
border-radius: 4px;
|
||||
margin: 6px 0px;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
|
||||
#custom-menu {
|
||||
background-color: #f5c2e7;
|
||||
margin-left: 6px;
|
||||
padding: 2px 6px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#custom-power {
|
||||
background-color: #f38ba8;
|
||||
margin-right: 6px;
|
||||
padding: 2px 8px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#custom-updater {
|
||||
background-color: #e6ed7b;
|
||||
margin-right: 6px;
|
||||
padding: 2px 8px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#custom-weather {
|
||||
background-color: #cba6f7;
|
||||
margin-right: 6px;
|
||||
padding: 2px 8px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
/** Common style **/
|
||||
#backlight,
|
||||
#battery,
|
||||
#clock,
|
||||
#cpu,
|
||||
#disk,
|
||||
#mode,
|
||||
#memory,
|
||||
#mpd,
|
||||
#tray,
|
||||
#pulseaudio,
|
||||
#network {
|
||||
border-radius: 4px;
|
||||
margin: 6px 0px;
|
||||
padding: 2px 8px;
|
||||
}
|
||||
50
home/hyprland/hypr-conf/wlogout/actions
Normal file
@@ -0,0 +1,50 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
## wlogout actions
|
||||
|
||||
# Ask for confirmation
|
||||
cdialog () {
|
||||
yad --title='Confirm?' --borders=15 --center --fixed --undecorated --button=Yes:0 --button=No:1 --text="Are you sure?" --text-align=center
|
||||
}
|
||||
|
||||
if [[ "$1" == '--shutdown' ]]; then
|
||||
cdialog
|
||||
if [[ "$?" == 0 ]]; then
|
||||
systemctl poweroff
|
||||
else
|
||||
exit
|
||||
fi
|
||||
elif [[ "$1" == '--reboot' ]]; then
|
||||
cdialog
|
||||
if [[ "$?" == 0 ]]; then
|
||||
systemctl reboot
|
||||
else
|
||||
exit
|
||||
fi
|
||||
elif [[ "$1" == '--hibernate' ]]; then
|
||||
cdialog
|
||||
if [[ "$?" == 0 ]]; then
|
||||
systemctl hibernate
|
||||
else
|
||||
exit
|
||||
fi
|
||||
elif [[ "$1" == '--lock' ]]; then
|
||||
~/.config/hypr/scripts/lockscreen
|
||||
elif [[ "$1" == '--suspend' ]]; then
|
||||
cdialog
|
||||
if [[ "$?" == 0 ]]; then
|
||||
mpc -q pause
|
||||
amixer set Master mute
|
||||
~/.config/hypr/scripts/lockscreen
|
||||
systemctl suspend
|
||||
else
|
||||
exit
|
||||
fi
|
||||
elif [[ "$1" == '--logout' ]]; then
|
||||
cdialog
|
||||
if [[ "$?" == 0 ]]; then
|
||||
kill -9 -1
|
||||
else
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
BIN
home/hyprland/hypr-conf/wlogout/icons/hibernate.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
BIN
home/hyprland/hypr-conf/wlogout/icons/lock.png
Normal file
|
After Width: | Height: | Size: 3.5 KiB |
BIN
home/hyprland/hypr-conf/wlogout/icons/logout.png
Normal file
|
After Width: | Height: | Size: 5.8 KiB |
BIN
home/hyprland/hypr-conf/wlogout/icons/reboot.png
Normal file
|
After Width: | Height: | Size: 7.8 KiB |
BIN
home/hyprland/hypr-conf/wlogout/icons/shutdown.png
Normal file
|
After Width: | Height: | Size: 5.7 KiB |
BIN
home/hyprland/hypr-conf/wlogout/icons/suspend.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |
30
home/hyprland/hypr-conf/wlogout/layout
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"label" : "suspend",
|
||||
"text" : "Suspend",
|
||||
"action" : "~/.config/hypr/wlogout/actions --suspend",
|
||||
"keybind" : "u"
|
||||
}
|
||||
{
|
||||
"label" : "logout",
|
||||
"text" : "Logout",
|
||||
"action" : "~/.config/hypr/wlogout/actions --logout",
|
||||
"keybind" : "e"
|
||||
}
|
||||
{
|
||||
"label" : "lock",
|
||||
"text" : "Lock",
|
||||
"action" : "~/.config/hypr/wlogout/actions --lock",
|
||||
"keybind" : "l"
|
||||
}
|
||||
{
|
||||
"label" : "reboot",
|
||||
"text" : "Reboot",
|
||||
"action" : "~/.config/hypr/wlogout/actions --reboot",
|
||||
"keybind" : "r"
|
||||
}
|
||||
{
|
||||
"label" : "shutdown",
|
||||
"text" : "Shutdown",
|
||||
"action" : "~/.config/hypr/wlogout/actions --shutdown",
|
||||
"keybind" : "s"
|
||||
}
|
||||
52
home/hyprland/hypr-conf/wlogout/style.css
Normal file
@@ -0,0 +1,52 @@
|
||||
/** ********** Fonts ********** **/
|
||||
* {
|
||||
font-family: "JetBrains Mono", "Iosevka Nerd Font", archcraft, sans-serif;
|
||||
font-size: 14px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
/** ********** Main Window ********** **/
|
||||
window {
|
||||
background-color: #1E1E2E;
|
||||
}
|
||||
|
||||
/** ********** Buttons ********** **/
|
||||
button {
|
||||
background-color: #242434;
|
||||
color: #FFFFFF;
|
||||
border: 2px solid #282838;
|
||||
border-radius: 20px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center;
|
||||
background-size: 35%;
|
||||
}
|
||||
|
||||
button:focus, button:active, button:hover {
|
||||
background-color: #89B4FA;
|
||||
outline-style: none;
|
||||
}
|
||||
|
||||
/** ********** Icons ********** **/
|
||||
#lock {
|
||||
background-image: image(url("icons/lock.png"), url("/usr/share/wlogout/icons/lock.png"));
|
||||
}
|
||||
|
||||
#logout {
|
||||
background-image: image(url("icons/logout.png"), url("/usr/share/wlogout/icons/logout.png"));
|
||||
}
|
||||
|
||||
#suspend {
|
||||
background-image: image(url("icons/suspend.png"), url("/usr/share/wlogout/icons/suspend.png"));
|
||||
}
|
||||
|
||||
#hibernate {
|
||||
background-image: image(url("icons/hibernate.png"), url("/usr/share/wlogout/icons/hibernate.png"));
|
||||
}
|
||||
|
||||
#shutdown {
|
||||
background-image: image(url("icons/shutdown.png"), url("/usr/share/wlogout/icons/shutdown.png"));
|
||||
}
|
||||
|
||||
#reboot {
|
||||
background-image: image(url("icons/reboot.png"), url("/usr/share/wlogout/icons/reboot.png"));
|
||||
}
|
||||
6
home/hyprland/hypr-conf/wofi/colors
Normal file
@@ -0,0 +1,6 @@
|
||||
#1e1e2e
|
||||
#262636
|
||||
#d9e0ee
|
||||
#89b4fa
|
||||
#f38ba8
|
||||
#cba6f7
|
||||
39
home/hyprland/hypr-conf/wofi/config
Normal file
@@ -0,0 +1,39 @@
|
||||
## Wofi Config
|
||||
|
||||
## General
|
||||
show=drun
|
||||
prompt=Apps
|
||||
normal_window=true
|
||||
layer=top
|
||||
term=alacritty
|
||||
|
||||
## Geometry
|
||||
width=500px
|
||||
height=305px
|
||||
location=0
|
||||
orientation=vertical
|
||||
halign=fill
|
||||
line_wrap=off
|
||||
dynamic_lines=false
|
||||
|
||||
## Images
|
||||
allow_markup=true
|
||||
allow_images=true
|
||||
image_size=24
|
||||
|
||||
## Search
|
||||
exec_search=false
|
||||
hide_search=false
|
||||
parse_search=false
|
||||
insensitive=false
|
||||
|
||||
## Other
|
||||
hide_scroll=true
|
||||
no_actions=true
|
||||
sort_order=default
|
||||
gtk_dark=true
|
||||
filter_rate=100
|
||||
|
||||
## Keys
|
||||
key_expand=Tab
|
||||
key_exit=Escape
|
||||
60
home/hyprland/hypr-conf/wofi/style.css
Normal file
@@ -0,0 +1,60 @@
|
||||
/** ********** Fonts ********** **/
|
||||
* {
|
||||
font-family: "JetBrains Mono", "Iosevka Nerd Font", archcraft, sans-serif;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
#window {
|
||||
background-color: --wofi-color0;
|
||||
color: --wofi-color2;
|
||||
border: 2px solid --wofi-color1;
|
||||
border-radius: 0px;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
#input {
|
||||
background-color: --wofi-color1;
|
||||
border: 0px solid --wofi-color3;
|
||||
padding: 8px 12px;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
#inner-box {
|
||||
}
|
||||
|
||||
#img {
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
#text {
|
||||
color: --wofi-color2;
|
||||
}
|
||||
|
||||
#text:selected {
|
||||
color: --wofi-color0;
|
||||
}
|
||||
|
||||
#entry {
|
||||
padding: 6px;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
background-color: --wofi-color3;
|
||||
color: --wofi-color0;
|
||||
}
|
||||
|
||||
#unselected {
|
||||
}
|
||||
|
||||
#selected {
|
||||
}
|
||||
|
||||
#input, #entry:selected {
|
||||
border-radius: 4px;
|
||||
}
|
||||
@@ -13,8 +13,10 @@
|
||||
pavucontrol
|
||||
playerctl
|
||||
pulsemixer
|
||||
|
||||
# images
|
||||
imv
|
||||
imagemagick
|
||||
];
|
||||
|
||||
programs = {
|
||||
|
||||