Compare commits

..

No commits in common. "main" and "master" have entirely different histories.
main ... master

94 changed files with 837 additions and 1081 deletions

View file

@ -1,5 +1,3 @@
# Ahurac dotfiles
[![Please don't upload to GitHub](https://nogithub.codeberg.page/badge.svg)](https://nogithub.codeberg.page)
Configuration stuff I want to have on any machine I log in.

View file

@ -11,7 +11,5 @@ if [ -z "$SSH_AGENT_PID" ]; then
exec ssh-agent "$0" "$@"
fi
export XDG_CONFIG_HOME="${HOME}/.config"
# Execution
exec /usr/bin/Hyprland "$@"

6
bin/coless Executable file
View file

@ -0,0 +1,6 @@
#!/bin/sh
export \
LESSOPEN='| /usr/bin/src-hilite-lesspipe.sh %s' \
LESS="${LESS} -R"
exec less "$@"

50
bin/convertofut Executable file
View file

@ -0,0 +1,50 @@
#!/bin/sh
error() {
printf '\033[1;31m%s\033[0m %s\n' "ERROR:" "$1"
shift
exit "$1"
}
trap 'error "$error" "$?"' EXIT; set -e
error="Le premier argument doit être l'extension des fichiers à convertir."
[ -n "$1" ]; format_in="$1" ; shift
error="Le second argument doit être l'extension des fichiers convertis."
[ -n "$1" ]; format_out="$1"; shift
set +e; trap - EXIT
while [ -z "$input" ] ; do
printf '%s' "Dossier à convertir : "
read -r input
done
output=../output
set -e
cd "$input"
mkdir -p "$output"
set +e
case "$format_out" in
mp3)
options="-ab 320k"
;;
*)
;;
esac
for file in **/*".${format_in}"; do
while [ "$(jobs -p | wc -l)" -ge 10 ]; do
sleep 1
done
basename "$file"
output_file="${output}/$(dirname "$file")/$(basename "${file}" ".${format_in}").${format_out}"
mkdir -p "$(dirname "${output_file}")"
# shellcheck disable=SC2086
ffmpeg -loglevel quiet -i "$file" $options "$output_file" &
done
wait

4
bin/docker-browse_volume Executable file
View file

@ -0,0 +1,4 @@
#!/bin/sh
mount_point="/mnt/${1}"
docker run --rm -it -v "${1}:${mount_point}" -w "$mount_point" busybox sh

View file

@ -1,16 +0,0 @@
#!/usr/bin/env sh
cd -- "$(mktemp -d)" || exit
temp_dir=$(pwd)
cat > PKGBUILD << EOF
pkgname='$1'
pkgver=0.0.0
pkgrel=1
pkgdesc='Dummy package'
arch=('any')
EOF
makepkg -i
cd .. || exit
rm -r -f -- "$temp_dir"

View file

@ -1,37 +0,0 @@
#!/usr/bin/env sh
get_field() {
echo "$2" | cut -d / -f "$1"
}
error() {
exit_code="$1"
shift
>&2 printf '\033[1;31m==> ERROR:\033[0m \033[1m%s\033[0m\n' "$*"
exit "$exit_code"
}
repo=$(get_field 1 "$1")
package=$(get_field 2 "$1")
case "$repo" in
system|world|galaxy|lib32)
url=gitea.artixlinux.org/packages/%s/raw/branch/master/PKGBUILD
;;
core|extra|multilib)
#url=gitlab.archlinux.org/archlinux/packaging/packages
url=gitlab.archlinux.org/archlinux/packaging/packages/%s/-/raw/main/PKGBUILD
;;
aur)
url='aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=%s'
;;
*)
error 1 "Invalid repository name \"${repo}\""
;;
esac
# Format is in my variable
# shellcheck disable=2059
url=$(printf "https://${url}" "$package")
curl -f -L -- "$url" || error 2 "Failed to retrieve PKGBUILD from \"${url}\""

118
bin/glurp
View file

@ -1,81 +1,83 @@
#!/usr/bin/env sh
# Function to print an error in stderr
perror() {
>&2 printf '\033[1;31mERROR:\033[0m \033[1m%s\033[0m\n' "$*"
#!/bin/bash
declare -A temp_files
temp_files[command_to_source]=$(mktemp)
clean() {
rm -- "${temp_files[@]}"
}
usage() {
name=$(basename "$0")
printf %s "${name}: usage
${name} f[ull]|a[rea] c[lip]|f[ile]
${name} -h
"
cat << EOF
Usage:
glurp full|area clip|file
EOF
}
# Function to throw an error usage
error_usage() {
perror "invalid usage"
>&2 usage
error() {
>&2 printf '\033[0m\033[1;31mERROR:\033[0m \033[1m%s\033[0m\n' "$*"
}
exit 1
error_usage() {
error "Invalid usage"
>&2 usage
}
error_usage_clean() {
error_usage
clean
}
screenshot_path() {
if [ -d "$XDG_RUNTIME_DIR" ]; then
base=${XDG_RUNTIME_DIR}/screenshots
local path
if [ -n "$1" ]; then
path="$1"
else
base=/tmp/${USER}-screenshots
path=.
fi
# I literally know, shellcheck
# shellcheck disable=2174
mkdir -p -m 700 -- "$base"
printf %s "${base}/screenshot-$(date +%Y%m%d_%H%M%S%N).png"
mkdir -p "$path"
printf '%sscreenshot-%s.png' "${path}/" "$(date +%Y_%m_%d_%H_%M_%S_%N)"
}
while getopts :h opt; do
case "$opt" in
h)
usage
exit 0
;;
?)
error_usage
;;
esac
done
trap error_usage_clean EXIT
set -e
# Initial variables
slurp=
grim="grim -t png"
clipboard=
slurp=()
grim_args=()
wl_copy=()
# f* = full, a* = area
case "$1" in
f*) : ;;
a*)
slurp="slurp |"
grim="${grim} -g -"
full)
:
;;
area)
slurp+=(slurp \|)
grim_args+=(-g -)
;;
*)
false
;;
*) error_usage ;;
esac
shift
# c* = clip, f* = file
case "$2" in
c*)
grim="${grim} -"
clipboard="| wl-copy -t image/png"
case "$1" in
clip)
wl_copy+=(\| wl-copy -t image/png)
grim_args+=(-)
;;
f*)
grim="${grim} '$(screenshot_path)'"
file)
grim_args+=("$(screenshot_path "${XDG_RUNTIME_DIR:-/tmp/$(whoami)}/screenshots")")
;;
*)
false
;;
*) error_usage ;;
esac
shift
set -- sh -c "${slurp} ${grim} ${clipboard}"
set -x
#: "$@"
#exit
exec "$@"
cat > "${temp_files[command_to_source]}" << EOF
${slurp[@]} grim ${grim_args[@]} ${@} ${wl_copy[@]}
EOF
trap clean EXIT
sh -s < "${temp_files[command_to_source]}"

View file

@ -1,71 +1,107 @@
#!/usr/bin/env sh
perror() {
>&2 printf '\033[1;31mERROR:\033[0m \033[1m%s\033[0m\n' "$*"
#!/bin/bash
# cd to the local VNC directory, exit if it fails
cd "${HOME}/.vnc" || exit 5
# Variable
verbs="start status stop restart help"
# echo bold text
echobf() {
printf '\033[1m%s\033[0m\n' "$*"
}
usage() {
name=$(basename "$0")
cat << EOF
${name}: usage
${name} [status] - show if the server is running
${name} start|stop|restart - control the server
${name} help|usage - show help
EOF
# Print an error message
print_error() {
(
printf '\033[1;31m%s\033[0m ' "ERROR:"
echobf "$*"
) > /dev/stderr
}
error_usage() {
perror "invalid usage"
>&2 usage
exit 1
# Print an error and exit
error() {
print_error "$1"
shift
exit "$1"
}
# Check if the VNC server is running
is_running() {
vncserver -list | grep -q '^:1'
}
start() {
if ! is_running; then
set -- vncserver \
-localhost -alwaysshared \
-securitytypes none
[ -x ~/.vnc/xstartup ] && set -- "$@" -xstartup ~/.vnc/xstartup
# Show a help message
public_help() {
local name
name="$(basename "$0")"
cat << EOF
${name} - Start a VNC server
"$@"
Usage:
${name} ${verbs// /|}
EOF
}
# Show the same help with an error
error_help() {
print_error "Invalid usage"
>&2 public_help
return 1
}
# Start the VNC server
public_start() {
if ! is_running; then
set -e
vncserver \
-xstartup ./xstartup \
-localhost \
-alwaysshared \
-securitytypes none \
-nocursor \
-geometry 1600x900
else
perror "server already started"
return 2
error "The VNC server is already running!" 4
fi
}
stop() {
# Check if the server is running
public_status() {
if is_running; then
echobf "The VNC server is running."
tail "./$(cat /proc/sys/kernel/hostname):1.log" | sed 's/^/\t/g'
else
echobf "The VNC server is not running."
fi
}
# Stop the VNC server
public_stop() {
if is_running; then
vncserver -kill :1
else
perror "server is not running"
return 2
error "The VNC server is not running!" 3
fi
}
status() {
if is_running; then
printf '\033[1;32m*\033[0m \033[1m%s\n' "the server is running"
# Restart the VNC server
public_restart() {
public_stop
public_start
}
# Parse argument
if [ -n "$1" ]; then
arg="$1"
else
printf '\033[1;31m*\033[0m \033[1m%s\n' "the server is not running"
arg=status
fi
# Main switch
if echo "$verbs" | tr ' ' '\n' | grep -q "$arg"; then
"public_${arg}"
else
error_help
fi
}
case "$1" in
""|stat*) status ;;
star*) start ;;
sto*) stop ;;
r*)
stop
start
;;
h*|u*) usage ;;
*)
error_usage
;;
esac

View file

@ -60,7 +60,7 @@ create() {
fi
if ! vnc_running; then
tmux new -s "Second screen (${vscreen_name})" -d \
screen -S "Second screen (${vscreen_name})" -d -m \
wayvnc \
-v \
-o "$vscreen_name" \

View file

@ -1,17 +1,16 @@
#!/usr/bin/env sh
set -x
#!/bin/sh -x
# Directory for SSH control sockets
mkdir -p -- "${XDG_RUNTIME_DIR}/ssh" &
# Start PipeWire
killall pipewire wireplumber
pipewire &
pipewire -c pipewire-pulse.conf &
sleep 1
wireplumber &
mkdir -p "${XDG_RUNTIME_DIR}/ssh" &
# Update DBus environment variables
dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
# Start the XDG desktop portal
/usr/lib/xdg-desktop-portal-hyprland &
# Start PipeWire
sleep 1
artix-pipewire-launcher restart &
wait

View file

@ -1,2 +1,2 @@
#!/usr/bin/env sh
exec drill @resolver1.opendns.com myip.opendns.com
#!/bin/sh
dig +short @resolver1.opendns.com myip.opendns.com

107
bin/mcserv Executable file
View file

@ -0,0 +1,107 @@
#!/bin/bash
exec_as() {
local user="$1"
shift
if [ "$(whoami)" != "$user" ]; then
exec sudo -u "$user" "$0" "$@"
else
cd
fi
}
exec_as minecraft "$@" || exit
bin=bin
PATH="${bin}:${PATH}"
EDITOR="${EDITOR:-nvim}"
alias ls='ls --color=auto'
shopt -s expand_aliases
print_error() {
>&2 printf '\033[31;1mERROR:\033[0m \033[1m%s\033[0m\n' "$*"
}
public_usage() {
local name
name="$(basename "$0")"
cat << EOF
${name}: utilisation
${name} start|status|stop|watch|restart|edit <nom serveur>
${name} list|active|usage|shell
EOF
}
error_usage() {
print_error "Utilisation invalide."
>&2 public_usage
return 1
}
public_start() {
if [ -n "$1" ]; then
exec screen -S "$1" \
"$1"
else
error_usage
fi
}
public_status() {
if [ -n "$1" ]; then
printf '\033[1m%s\033[0m : ' "$1"
if screen -ls "$1" > /dev/null 2>&1; then
echo "en cours d'exécution"
else
echo "non en cours d'exécution"
fi
else
error_usage
fi
}
public_stop() {
if [ -n "$1" ]; then
exec screen -S "$1" -X stuff '^E^Ustop^M'
else
error_usage
fi
}
public_watch() {
exec screen -dr "$1"
}
public_active() {
exec screen -ls
}
public_list() {
echo "Serveurs disponibles :"
exec ls "$bin"
}
public_restart() {
set -e
stop "$@"
start "$@"
set +e
}
public_edit() {
exec "$EDITOR" "${bin}/${1}"
}
public_shell() {
exec bash -i
}
verb="$1"
shift
if [ -z "$verb" ]; then
public_active
elif declare -F | cut -d \ -f 3 | grep '^public_' | sed 's/^public_//' | grep -q "^${verb}$"; then
"public_${verb}" "$@"
else
error_usage
fi

View file

@ -1,6 +0,0 @@
#!/usr/bin/env sh
cd /run/runit/service || exit
for service in "$@"; do
ln -s /etc/runit/sv/"$service" .
done

View file

@ -1,6 +0,0 @@
#!/usr/bin/env sh
cd /run/runit/service || exit
for service in "$@"; do
unlink -- "$service"
done

View file

@ -1,5 +0,0 @@
#!/usr/bin/env sh
cd /run/runit/service || exit
for service in *; do
sv status "$service"
done

29
bin/sway Executable file
View file

@ -0,0 +1,29 @@
#!/bin/sh -xe
cd
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
exec dbus-launch --exit-with-session "$0" "$@"
fi
if [ -z "$SSH_AGENT_PID" ]; then
exec ssh-agent "$0" "$@"
fi
# Environment
# XDG
export \
XDG_CURRENT_DESKTOP=sway \
XDG_SESSION_DESKTOP=sway
# Backends
export \
QT_QPA_PLATFORM='wayland;xcb' \
QT_QPA_PLATFORMTHEME=qt6ct \
CLUTTER_BACKEND=wayland \
SDL_VIDEODRIVER=wayland \
_JAVA_AWT_WM_NONREPARENTING=1 \
MOZ_ENABLE_WAYLAND=1
# Execution
exec /usr/bin/sway "$@"

30
bin/swaylock-hyprland Executable file
View file

@ -0,0 +1,30 @@
#!/bin/sh
# Run swaylock
exec /usr/bin/swaylock \
"$@" \
--daemonize \
--indicator \
--clock \
--screenshots \
--effect-blur 20x10 \
--indicator-radius 100 \
--font 'Hack Nerd Font' \
--bs-hl-color '#FF3366' \
--inside-color '#CC99FF22' \
--inside-clear-color '#F3E6FFDD' \
--inside-ver-color '#9933FF22' \
--inside-wrong-color '#FF336622' \
--key-hl-color '#9933FF' \
--text-color '#F3E6FF' \
--text-caps-lock-color '#FFB3C6' \
--line-uses-ring \
--ring-color '#1A0033' \
--ring-clear-color '#9933FF' \
--ring-ver-color '#4F0099' \
--ring-wrong-color '#800020' \
--text-clear-color '#4F0099' \
--text-ver-color '#F3E6FF' \
--text-wrong-color '#FFB3C6' \
--separator-color '#00000000'

15
bin/swaylock-sway Executable file
View file

@ -0,0 +1,15 @@
#!/bin/sh
# Run swaylock
exec /usr/bin/swaylock \
--daemonize \
--indicator \
--clock \
--screenshots \
--effect-blur 20x10 \
--indicator-radius 100 \
--font 'Hack Nerd Font' \
--text-color '#FFFFFF' \
--line-uses-ring \
--separator-color '#00000000'

View file

@ -1,8 +1,7 @@
#!/usr/bin/env sh
set -e
#!/bin/sh -e
screen_is_on() {
[ "$(brightnessctl get)" -ne 0 ]
[ "$(brightnessctl g)" -ne 0 ]
}
turn_on_screen() {
@ -11,7 +10,7 @@ turn_on_screen() {
turn_off_screen() {
brightnessctl -s
brightnessctl set 0
brightnessctl s 0
}
if screen_is_on; then
@ -19,3 +18,4 @@ if screen_is_on; then
else
turn_on_screen
fi

View file

@ -1,5 +0,0 @@
#!/bin/sh
exec /usr/bin/tuigreet \
-t --time-format '%Y-%m-%d | %H:%M:%S' \
-c Hyprland \
"$@"

View file

@ -1,14 +1,40 @@
#!/usr/bin/env sh
if [ -z "$1" ]; then
>&2 echo "provide ssh host name"
exit 1
else
ssh_host=$1
fi
remote_port=${2:-5900}
local_port=$((remote_port + 4000))
#!/bin/bash
ssh -O check -- "$ssh_host"
ssh -f -N -L "${local_port}:localhost:${remote_port}" -- "$ssh_host" || exit
wlvncc -- localhost "$local_port"
ssh -O cancel -L "${local_port}:localhost:${remote_port}" -- "$ssh_host"
vnc_host="$1"
if [ -n "$2" ]
then local_port="$2"
else local_port=9900
fi
if [ -n "$3" ]
then distant_port="$3"
else distant_port=5900
fi
[ -n "$4" ] && ssh_target="$4"
# Fonction
ssh_bridge_already_exists() {
[ -n "$(lsof -nP -i TCP -s TCP:LISTEN | awk '($1 == "ssh" && $9 ~ /.*:'"${local_port}"'/) { print }')" ]
}
# Sélectionner le viewer adapté à la session
if [ -n "$WAYLAND_DISPLAY" ]; then
vncviewer=wlvncc
else
vncviewer=vncviewer
separator=:
fi
# Initialiser les arguments du viewer
args=(localhost "$local_port")
if [ -n "$separator" ]; then
args=("${args[*]// /${separator}/}")
fi
# Exécution
if ! ssh_bridge_already_exists; then
ssh-fwd "$vnc_host" "$local_port" "$distant_port" "$ssh_target" || exit
else
echo "Le pont SSH existe déjà !"
fi
exec "$vncviewer" "${args[@]}"

View file

@ -1,7 +0,0 @@
#!/usr/bin/env sh
todo=$(cat)
inotifywait --recursive --monitor -e create -e attrib -e modify -e move -e delete -- "$@" | \
while read -r _unused; do
eval "$todo"
done

19
bin/waybar Executable file
View file

@ -0,0 +1,19 @@
#!/bin/bash -x
# Waybar wrapper to reload it anytime the
# configuration is edited
# Variable
waybar_config_d="${HOME}/.config/waybar"
monitored_events=(
modify
create
delete
)
# Execution
while :; do
/usr/bin/waybar "$@" &
inotifywait "${monitored_events[@]/#/-e}" "${waybar_config_d}"
jobs -p | xargs kill
done

8
bin/waylectron Executable file
View file

@ -0,0 +1,8 @@
#!/bin/bash
name=$(basename "$0")
path=$(dirname "$0")
mapfile wayland_args < ~/.config/electron-flags.conf
PATH=$(echo "$PATH" | sed "s|$path||g" | sed 's/^://' | sed 's/::/:/g' | sed 's/:$//')
exec "$name" "${wayland_args[@]}"

53
bin/wolf Executable file
View file

@ -0,0 +1,53 @@
#!/bin/bash
# Arguments
hostname="$1"; shift
# Variables
declare mac
declare -a wol_com options
name="$(basename "$0")"
wolf_d="${HOME}/.wolf"
wolf_host="${wolf_d}/${hostname}"
# Functions
# Throw an error
function error {
>&2 echo -e "${name}: \033[1;31mERROR:\033[0m ${1:-No further details}"; shift
exit "${1:-1}"
}
# Parse variable in options file
function getvar {
grep '^'"$1"' ' "$wolf_host" | cut -d ' ' -f 2
}
# Parsing
[[ -f $wolf_host ]] || error "\"${hostname}\": No such host"
# Assign the options
mac="$(getvar Mac)"
ip="$(getvar IP)"
port="$(getvar Port)"
# Add options if necessary
[[ -n $ip ]] && options+=(-i "$ip" )
[[ -n $port ]] && options+=(-p "$port")
# Commands building
# wol
wol_com=(
wol
"$@"
"${options[@]}"
"$mac"
)
# Debug
#echo "${wol_com[@]}"
#exit 0
# Execution
set -xe
"${wol_com[@]}"

View file

@ -4,4 +4,4 @@ import = ["/home/ahurac/.config/alacritty/theme.toml"]
size = 11.5
[window]
opacity = 0.8
opacity = 0.5

View file

@ -1,2 +1 @@
--ozone-platform-hint=auto
--enable-features=WebRTCPipeWireCapturer

View file

@ -0,0 +1 @@
electron-flags.conf

View file

@ -1,11 +0,0 @@
#!/usr/bin/env sh
case "$1" in
up)
hyprctl dispatch workspace +1
;;
down)
hyprctl dispatch workspace -1
;;
*)
;;
esac

View file

@ -1,15 +0,0 @@
#!/usr/bin/env sh
case "$1" in
up)
set -- -i
;;
down)
set -- -d
;;
*)
;;
esac
set -- pamixer "$@" 5
exec "$@"

View file

@ -1,30 +0,0 @@
window, menubar {
background-color: rgba(0, 0, 0, 0);
}
window {
font-weight: bold;
}
window > box > box > * {
padding: 0 10px;
}
.workspace-button, .submap {
border-top: 2px solid white;
}
:hover {
border-color: #b0ffb0;
color: #b0ffb0;
border-top-width: 2px;
}
.workspace-button > box {
padding-top: 3px;
}
.workspace-current {
border-color: #00ff00;
color: #00f000;
}

View file

@ -1,205 +0,0 @@
(deflisten batterystatus
:initial "unknown"
"listen/battery BAT0"
)
(deflisten workspaces
:initial '{"current":1,"used":[1]}'
"listen/hypr workspace"
)
(deflisten windowtitle
:initial ''
"listen/hypr activewindow"
)
(deflisten submap
:initial ''
"listen/hypr submap"
)
(deflisten network
:initial '{"state":"disconnect"}'
"listen/network"
)
(deflisten notifications
:initial '{"count":0}'
"swaync-client --subscribe"
)
(deflisten sound
:initial '{"output-volume":0,"input-volume":0,"output-muted":false}'
"listen/sound"
)
(defvar battery-icon '{
"unknown": "",
"critical": "",
"low": "",
"medium": "",
"high": "",
"full": ""
}')
(defvar network-icon '{
"disconnected": "󰲛",
"ethernet": "󰈀",
"wifi-terrible": "󰤯",
"wifi-bad": "󰤟",
"wifi-mediocre": "󰤢",
"wifi-good": "󰤥",
"wifi-excellent": "󰤨",
"tethering": "󰕓"
}')
(defvar notifications-icon '{
"nothing": "󰂚",
"new": "󱅫",
"dnd": "󰂛"
}')
(defvar sound-icon '{
"absent": "󰕿",
"moderate": "󰖀",
"loud": "󰕾",
"muted": "󰝟"
}')
(defwidget workspaces []
(eventbox :onscroll 'action/hyprland/nearby-workspace "{}"'
(box :class "workspaces"
(for workspace in {workspaces.used}
(eventbox
:class "workspace-button ${workspace == workspaces.current ? "workspace-current" : ""}"
:onclick 'hyprctl dispatch workspace "${workspace}"'
(box :width 25 "${workspace}")
)
)
)
)
)
(defwidget submap []
(eventbox :onclick "hyprctl dispatch submap reset"
(box :class "submap" "${submap}")
)
)
(defwidget window-title []
(box "${windowtitle ?: ''}")
)
(defwidget tray [] (box (systray
:icon-size 15
:spacing 10
)))
(defwidget time []
(box (eventbox
:onclick 'eww open --toggle calendar'
"${formattime(EWW_TIME, "%Y-%m-%d")} ${formattime(EWW_TIME, "%H:%M:%S")}"
))
)
(defwidget notifications []
(box (eventbox
:class "module"
:onclick 'swaync-client --toggle-panel'
:onrightclick 'swaync-client --toggle-dnd'
:onmiddleclick 'swaync-client --close-all'
"${
notifications.dnd == true
? notifications-icon["dnd"]
: notifications.count > 0
? notifications-icon["new"]
: notifications-icon["nothing"]
} ${notifications.count}"
))
)
(defwidget sound []
(box (eventbox
:onscroll 'action/volume "{}"'
:onclick 'hyprctl dispatch exec pavucontrol'
:onrightclick 'pamixer --toggle-mute'
"${
sound.output-muted == true ? sound-icon["muted"] :
sound.output-volume < 33 ? sound-icon["absent"] :
sound.output-volume < 67 ? sound-icon["moderate"] :
sound-icon["loud"]
} ${sound.output-volume} % ${sound.sink-name}"
))
)
(defwidget network []
"${
network.state == "wireless"
? network-icon["wifi-${network.wifi.signal}"]
: network-icon[network.state]
} ${
network.state == "disconnected" ? "No network" :
network.state == "ethernet" ? "Ethernet" :
network.state == "wireless" ? network.wifi.ssid :
network.state == "tethering" ? "USB tethering" : ''
}"
)
(defwidget battery []
"${battery-icon[batterystatus]}${EWW_BATTERY.BAT0.status == "Charging" ? " " : ""} ${EWW_BATTERY.BAT0.capacity} %"
)
(defwindow bar
:monitor 0
:geometry (geometry
:anchor "bottom center"
:width "100%"
:height 25
)
:exclusive true
(centerbox
(box
:halign "start"
:space-evenly false
:class "left"
(workspaces)
(submap)
(window-title)
)
(box
:space-evenly false
:class "middle"
(tray)
(time)
(notifications)
)
(box
:halign "end"
:space-evenly false
:class "right"
(sound)
(network)
(battery)
)
)
)
(defwindow calendar
:monitor 0
:geometry (geometry
:anchor "bottom center"
:width "350px"
:height "200px"
)
:exclusive false
; :stacking "fg"
(calendar)
)

View file

@ -1,19 +0,0 @@
#!/usr/bin/env sh
battery=$1
print_battery_status() {
battery_capacity=$(cat "/sys/class/power_supply/${battery}/capacity") \
|| exit
if [ "$battery_capacity" -lt 25 ]; then echo critical
elif [ "$battery_capacity" -lt 50 ]; then echo low
elif [ "$battery_capacity" -lt 75 ]; then echo medium
elif [ "$battery_capacity" -lt 100 ]; then echo high
else echo full
fi
}
while :; do
print_battery_status
sleep 20
done

View file

@ -1,21 +0,0 @@
#!/usr/bin/env sh
workspace() {
printf '{"current":%s,"used":%s}\n' \
"$(hyprctl -j activeworkspace | jq -c '.id')" \
"$(hyprctl -j workspaces | jq -c '.[].id' | sort -n | jq -sc)"
}
activewindow() {
hyprctl -j activewindow | jq -c -r .title
}
submap() {
echo "$event" | sed 's/^submap>>//'
}
command -v "$1" > /dev/null || exit
"$1"
socat -U STDOUT UNIX-CONNECT:"${XDG_RUNTIME_DIR}/hypr/${HYPRLAND_INSTANCE_SIGNATURE}/.socket2.sock" | stdbuf -o L grep -e "^${1}>>" | while read -r event; do
"$1"
done

View file

@ -1,57 +0,0 @@
#!/usr/bin/env sh
print_state() {
case "$1" in
eth*)
echo ethernet
;;
wlan*)
echo wireless
;;
usb*)
echo tethering
;;
*)
echo disconnected
;;
esac
}
wifi_strength() {
if [ "$1" -le -80 ]; then echo terrible
elif [ "$1" -le -70 ]; then echo bad
elif [ "$1" -le -60 ]; then echo mediocre
elif [ "$1" -le -40 ]; then echo good
else echo excellent
fi
}
print_infos() {
if [ -n "$1" ]; then
route_line=$(ip route show dev "$1" | awk '($1 == "default") { print }')
printf ',"ip":{"local":"%s","gateway":"%s"}' \
"$(echo "$route_line" | awk '{ print $7 }')" \
"$(echo "$route_line" | awk '{ print $3 }')"
if [ "$state" = wireless ]; then
signal=$(iw dev "$1" link | awk '($1 == "signal:") { print $2}')
printf ',"wifi":{"signal":"%s","ssid":"%s"}' \
"$(wifi_strength "$signal")" \
"$(iw dev wlan0 info | grep '^\s*ssid ' | xargs | cut -d \ -f 2-)"
fi
fi
}
print_network_status() {
device=$(ip route | awk '($1 == "default") { print $5 }')
state=$(print_state "$device")
printf '{"state":"%s"%s}\n' \
"$state" \
"$(print_infos "$device")"
}
while :; do
print_network_status
sleep 5
done

View file

@ -1,13 +0,0 @@
#!/usr/bin/env sh
print_sound_status() {
printf '{"output-volume":%s,"input-volume":%s,"output-muted":%s,"sink-name":%s}\n' \
"$(pamixer --get-volume)" \
"$(pamixer --get-volume --default-source)" \
"$(pamixer --get-mute)" \
"$(pactl --format json list sinks | jq '.[] | select(.name == "'"$(pactl get-default-sink)"'") | .description')"
}
print_sound_status
pactl subscribe | grep --line-buffered "'change'" | while read -r _unused; do
print_sound_status
done

View file

@ -1,11 +1,10 @@
# Defaults
$terminal = alacritty
$browser = librewolf
$locker = hyprlock
$launcher = anyrun
$locker = swaylock
# Applications
$joplin = joplin-desktop --ozone-platform=wayland --enable-features=WebRTCPipeWireCapturer
$joplin = joplin-desktop
$bitwarden = bitwarden-desktop
$element = element-desktop
$discord = webcord
@ -19,13 +18,14 @@ $element_class = Element
$discord_class = WebCord
$deezer_class = Deezer
# Colors
$col_accentdark = rgb(00ff00)
$col_accentlight = rgb(80ff80)
$col_inactive = rgba(80808080)
$col_textlight = rgba(ffffffe8)
# Plugins
plugin = /usr/lib/libhy3.so
# Configuration modules
source = hyprland.d/agnostic.conf
source = hyprland.d/sections.conf
source = hyprland.d/environment.conf
source = hyprland.d/startup.conf
source = hyprland.d/bindings.conf
source = hyprland.d/windowrules.conf
source = hyprland.d/*.conf

View file

@ -1,15 +0,0 @@
# Main monitor
monitor = , highrr, 0x0, 1
# Colors
$col_accentdark = rgb(00ff00)
$col_accentlight = rgb(80ff80)
$col_inactive = rgba(80808040)
$col_textlight = rgba(ffffffe8)
$col_urgent = rgb(ffd966)
# Decoration
$transparency_amount = 1.0
$shadow_enabled = false
$blur_enabled = false
$animations_enabled = false

View file

@ -0,0 +1,5 @@
# Animations
animations {
# Save battery
enabled = false
}

View file

@ -1,6 +1,5 @@
# Open terminal
bind = SUPER, Space, exec, $terminal
bind = SUPER SHIFT, Space, exec, $terminal -e sudo -i
bind = SUPER, Return, exec, $terminal
# Workspaces
#bind = SUPER, equal, movetoworkspace, special
@ -21,7 +20,7 @@ bind = SUPER Alt_L, Return, exec, hyprswapworkspaces
# Windows
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
bind = SUPER SHIFT, Q, hy3:killactive
bind = SUPER SHIFT, Q, killactive
bind = SUPER SHIFT, 10, movetoworkspacesilent, 1
bind = SUPER SHIFT, 11, movetoworkspacesilent, 2
bind = SUPER SHIFT, 12, movetoworkspacesilent, 3
@ -32,13 +31,12 @@ bind = SUPER SHIFT, V, movetoworkspacesilent, 7
bind = SUPER SHIFT, C, movetoworkspacesilent, 8
bind = SUPER SHIFT, X, movetoworkspacesilent, 9
bind = SUPER SHIFT, W, movetoworkspacesilent, 10
# bind = SUPER SHIFT, space, pin, active
bind = SUPER SHIFT, space, pin, active
bind = SUPER SHIFT, A, hy3:movewindow, l
bind = SUPER SHIFT, Z, hy3:movewindow, u
bind = SUPER SHIFT, S, hy3:movewindow, d
bind = SUPER SHIFT, D, hy3:movewindow, r
bind = SUPER, Return, cyclenext, floating
bind = SUPER SHIFT, Return, togglefloating
bind = SUPER Alt_L, space, togglefloating
bind = SUPER Alt_L, F, fullscreen
bind = SUPER SHIFT Alt_L, F, fakefullscreen
@ -60,13 +58,12 @@ bind = SUPER, B, hy3:changegroup, toggletab
bind = SUPER SHIFT, BackSpace, exit
# Launchers
bind = SUPER, F1, exec, $launcher
bind = SUPER, F1, exec, $browser
bind = SUPER, F2, exec, $joplin
# bind = SUPER, F3, exec, $bitwarden
bind = SUPER, F3, exec, $element
bind = SUPER, F4, exec, $discord
bind = SUPER, F5, exec, $deezer
bind = SUPER, G, exec, $browser
bind = SUPER, F3, exec, $bitwarden
bind = SUPER, F4, exec, $element
bind = SUPER, F5, exec, $discord
bind = SUPER, F6, exec, $deezer
# Screenshots
bind = , Print, exec, glurp full clip
@ -85,14 +82,13 @@ binde = , XF86AudioMute, exec, swayosd-client --output-volume=mute-toggle
# Resize
bind = SUPER Alt_L, R, submap, resize
submap = resize
bind = , escape, submap, reset
bind = SUPER Alt_L, R, submap, reset
binde = , A, resizeactive, -25 0
binde = , Z, resizeactive, 0 -25
binde = , S, resizeactive, 0 25
binde = , D, resizeactive, 25 0
bind = , escape, submap, reset
submap = reset
# Brightness
bindel = , XF86MonBrightnessDown, exec, swayosd-client --brightness=lower
bindel = , XF86MonBrightnessUp, exec, swayosd-client --brightness=raise
binde = , XF86MonBrightnessDown, exec, swayosd-client --brightness=lower
binde = , XF86MonBrightnessUp, exec, swayosd-client --brightness=raise

View file

@ -0,0 +1,14 @@
# Binds
binds {
# Scrolling
scroll_event_delay = 0
# Workspaces
workspace_back_and_forth = false
allow_workspace_cycles = false
workspace_center_on = 1
# Focus
focus_preferred_method = 1
movefocus_cycles_fullscreen = false
}

View file

@ -0,0 +1,23 @@
# Decoration
decoration {
# Corners
rounding = 10
# Opacity
active_opacity = 1.0
inactive_opacity = 1.0
fullscreen_opacity = 1.0
# Shadows
drop_shadow = false
# Dimming
dim_inactive = false
# Blur
blur {
enabled = false
ignore_opacity = true
xray = true
}
}

View file

@ -5,7 +5,7 @@ env = QT_AUTO_SCREEN_SCALE_FACTOR, 1
env = QT_WAYLAND_DISABLE_WINDOWDECORATION, 1
# Clutter
env = CLUTTER_BACKEND, wayland
env = CLUTTER_BACKEND = wayland
# SDL
env = SDL_VIDEODRIVER, wayland
@ -18,10 +18,3 @@ env = _JAVA_AWT_WM_NONREPARENTING, 1
# XDG
env = XDG_SESSION_DESKTOP, Hyprland
# Electron
env = ELECTRON_OZONE_PLATFORM_HINT, auto
# hyprcursor
env = HYPRCURSOR_THEME, Afterglow
env = HYPRCURSOR_SIZE, 24

View file

@ -0,0 +1,25 @@
# General
general {
# Borders
border_size = 2
col.inactive_border = $col_inactive
col.nogroup_border = $col_inactive
col.active_border = $col_accentdark $col_accentlight 90deg
col.nogroup_border_active = rgb(00cc66) rgb(33ff99) 270deg
resize_on_border = false
# Gaps
gaps_in = 5
gaps_out = 10
gaps_workspaces = 0
# Cursor
cursor_inactive_timeout = 0
no_cursor_warps = false
# Layout
layout = hy3
# Focus
no_focus_fallback = true
}

View file

@ -0,0 +1,4 @@
# Gestures
gestures {
workspace_swipe = true
}

View file

@ -0,0 +1,18 @@
# Input
input {
# Keyboard
kb_layout = fr
numlock_by_default = true
repeat_rate = 75
repeat_delay = 300
# Mouse
sensitivity = 0.0
accel_profile = flat
# Touchpad
touchpad {
disable_while_typing = false
natural_scroll = true
}
}

View file

@ -0,0 +1,30 @@
# Misc
misc {
# Logos and mascotts
disable_hyprland_logo = true
disable_splash_rendering = true
force_hypr_chan = false
# Focus
layers_hog_keyboard_focus = true
mouse_move_focuses_monitor = true
# Animations
animate_manual_resizes = true
# Swallowing
enable_swallow = true
swallow_regex = $terminal_class
# Cursor
hide_cursor_on_touch = false
# Screen locking
#allow_session_lock_restore = true
# Workspaces
close_special_on_empty = true
# Windows
new_window_takes_over_fullscreen = 2
}

View file

@ -0,0 +1,2 @@
# Main monitor
monitor = , highrr, 1920x0, 1

View file

@ -0,0 +1,34 @@
# Plugin configuration
plugin {
hy3 {
# Windows
no_gaps_when_only = false
# Groups
node_collapse_policy = 0
# Tabs
tabs {
height = 15
padding = 5
from_top = true
rounding = 8
render_text = true
text_center = false
text_font = Hack Nerd Font
text_height = 8
text_padding = 10
col.active = rgba(000000e0)
col.urgent = rgb(ffd966)
col.inactive = rgba(00000080)
col.text.active = $col_accentdark
col.text.urgent = rgba(000000e8)
col.text.inactive = rgb(808080)
}
# Autotile
autotile {
enable = true
}
}
}

View file

@ -1,145 +0,0 @@
animations {
# Save battery
enabled = $animations_enabled
}
binds {
# Scrolling
scroll_event_delay = 0
# Workspaces
workspace_back_and_forth = false
allow_workspace_cycles = false
workspace_center_on = 1
# Focus
focus_preferred_method = 1
movefocus_cycles_fullscreen = false
}
decoration {
# Corners
rounding = 10
# Opacity
active_opacity = 1.0
inactive_opacity = $transparency_amount
fullscreen_opacity = 1.0
# Shadows
drop_shadow = $shadow_enabled
# Dimming
dim_inactive = false
# Blur
blur {
enabled = $blur_enabled
ignore_opacity = true
xray = false
}
}
general {
# Borders
border_size = 2
col.inactive_border = $col_inactive
col.nogroup_border = $col_inactive
col.active_border = $col_accentdark $col_accentlight 90deg
resize_on_border = false
# Gaps
gaps_in = 5
gaps_out = 10
gaps_workspaces = 0
# Cursor
cursor_inactive_timeout = 0
no_cursor_warps = false
# Layout
layout = hy3
# Focus
no_focus_fallback = true
}
gestures {
workspace_swipe = true
}
input {
# Keyboard
kb_layout = fr
numlock_by_default = true
repeat_rate = 75
repeat_delay = 300
kb_options = compose:rctrl
# Mouse
sensitivity = 0.0
accel_profile = flat
# Touchpad
touchpad {
disable_while_typing = false
natural_scroll = true
}
}
misc {
# Logos and mascotts
disable_hyprland_logo = true
disable_splash_rendering = true
# Focus
layers_hog_keyboard_focus = true
mouse_move_focuses_monitor = true
# Swallowing
enable_swallow = true
swallow_regex = $terminal_class
# Cursor
hide_cursor_on_touch = false
# Workspaces
close_special_on_empty = true
# Windows
new_window_takes_over_fullscreen = 2
# Animations
animate_manual_resizes = $animations_enabled
}
plugin {
hy3 {
# Windows
no_gaps_when_only = false
# Groups
node_collapse_policy = 0
# Tabs
tabs {
height = 5
padding = 5
from_top = true
rounding = 4
render_text = false
col.active = $col_accentdark
col.urgent = $col_urgent
col.inactive = $col_inactive
}
# Autotile
autotile {
enable = true
}
}
}
xwayland {
force_zero_scaling = true
}

View file

@ -1,17 +1,8 @@
# Wallpaper
# exec-once = hyprpaper
exec-once = hyprpaper
# XDG compliance
exec-once = hyprxdg
# swayosd
# SwayOSD
exec-once = swayosd-server
# Polkit agent
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# eww
exec-once = eww daemon && eww open bar
# swaync
exec-once = swaync

View file

@ -4,6 +4,3 @@ windowrulev2 = workspace 4 silent, class:($bitwarden_class)
windowrulev2 = workspace 4 silent, class:($element_class)
windowrulev2 = workspace 4 silent, class:($discord_class)
windowrulev2 = workspace 4 silent, class:($deezer_class)
# Thunderbird password
windowrulev2 = float, class:(thunderbird), title:(Password Required - Mozilla Thunderbird)

View file

@ -0,0 +1,4 @@
# Xwayland
xwayland {
force_zero_scaling = true
}

View file

@ -1,60 +0,0 @@
general {
disable_loading_bar = true
hide_cursor = true
grace = 0
no_fade_in = true
no_fade_out = true
ignore_empty_input = true
text_trim = true
}
background {
monitor =
path = screenshot
blur_passes = 5
blur_size = 2
brightness = 0.5
}
input-field {
monitor =
size = 500, 50
outline_thickness = 2
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = false
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
outer_color = rgb(151515)
inner_color = rgb(200, 200, 200)
font_color = rgb(10, 10, 10)
fade_on_empty = true
fade_timeout = 0 # Milliseconds before fade_on_empty is triggered.
placeholder_text = # Text rendered in the input box when it's empty.
hide_input = false
rounding = -1 # -1 means complete rounding (circle/oval)
check_color = rgb(204, 136, 34)
fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
fail_text = $FAIL <b>($ATTEMPTS)</b> # can be set to empty
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
capslock_color = -1
numlock_color = -1
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
invert_numlock = false # change color if numlock is off
swap_font_color = false # see below
position = 0, -20
halign = center
valign = center
}
label {
monitor =
text = cmd[update:500] date '+%Y-%m-%d%n%H:%M:%S'
color = rgb(ffffff)
font_size = 50
font_family = Noto Sans Bold
position = 40, 0
halign = left
valign = bottom
}

View file

@ -1,9 +1,6 @@
# Wallpaper
# preload = ~/.local/share/backgrounds/chime_interdimensional.jpg
# wallpaper = , ~/.local/share/backgrounds/chime_interdimensional.jpg
preload = ~/.local/share/backgrounds/chime_interdimensional.jpg
wallpaper = , ~/.local/share/backgrounds/chime_interdimensional.jpg
# Save battery
ipc = off
# Disable splashe texts
splash = false

View file

@ -1,10 +1,10 @@
# Defaults
$terminal = alacritty
$browser = librewolf
$locker = hyprlock
$locker = swaylock
# Applications
$joplin = joplin-desktop --ozone-platform=wayland --enable-features=WebRTCPipeWireCapturer
$joplin = joplin-desktop
$bitwarden = bitwarden-desktop
$element = element-desktop
$discord = webcord

View file

@ -1,6 +1,5 @@
# Open terminal
bind = SUPER, Space, exec, $terminal
bind = SUPER SHIFT, Space, exec, $terminal -e sudo -i
bind = SUPER, Return, exec, $terminal
# Workspaces
#bind = SUPER, equal, movetoworkspace, special
@ -21,7 +20,7 @@ bind = SUPER Alt_L, Return, exec, hyprswapworkspaces
# Windows
bindm = SUPER, mouse:272, movewindow
bindm = SUPER, mouse:273, resizewindow
bind = SUPER SHIFT, Q, hy3:killactive
bind = SUPER SHIFT, Q, killactive
bind = SUPER SHIFT, 10, movetoworkspacesilent, 1
bind = SUPER SHIFT, 11, movetoworkspacesilent, 2
bind = SUPER SHIFT, 12, movetoworkspacesilent, 3
@ -32,14 +31,14 @@ bind = SUPER SHIFT, V, movetoworkspacesilent, 7
bind = SUPER SHIFT, C, movetoworkspacesilent, 8
bind = SUPER SHIFT, X, movetoworkspacesilent, 9
bind = SUPER SHIFT, W, movetoworkspacesilent, 10
# bind = SUPER SHIFT, space, pin, active
bind = SUPER SHIFT, space, pin, active
bind = SUPER SHIFT, A, hy3:movewindow, l
bind = SUPER SHIFT, Z, hy3:movewindow, u
bind = SUPER SHIFT, S, hy3:movewindow, d
bind = SUPER SHIFT, D, hy3:movewindow, r
bind = SUPER, Return, cyclenext, floating
bind = SUPER SHIFT, Return, togglefloating
bind = SUPER Alt_L, space, togglefloating
bind = SUPER Alt_L, F, fullscreen
bind = SUPER SHIFT Alt_L, F, fakefullscreen
# Focus
bind = SUPER, A, hy3:movefocus, l
@ -59,13 +58,12 @@ bind = SUPER, B, hy3:changegroup, toggletab
bind = SUPER SHIFT, BackSpace, exit
# Launchers
bind = SUPER, F1, exec, anyrun
bind = SUPER, F1, exec, $browser
bind = SUPER, F2, exec, $joplin
# bind = SUPER, F3, exec, $bitwarden
bind = SUPER, F3, exec, $element
bind = SUPER, F4, exec, $discord
bind = SUPER, F5, exec, $deezer
bind = SUPER, G, exec, $browser
bind = SUPER, F3, exec, $bitwarden
bind = SUPER, F4, exec, $element
bind = SUPER, F5, exec, $discord
bind = SUPER, F6, exec, $deezer
# Screenshots
bind = , Print, exec, glurp full clip
@ -83,10 +81,9 @@ binde = SUPER, Next, exec, swayosd-client --output-volume=lower
# Resize
bind = SUPER Alt_L, R, submap, resize
submap = resize
bind = , escape, submap, reset
bind = SUPER Alt_L, R, submap, reset
binde = , A, resizeactive, -25 0
binde = , Z, resizeactive, 0 -25
binde = , S, resizeactive, 0 25
binde = , D, resizeactive, 25 0
bind = , escape, submap, reset
submap = reset

View file

@ -9,11 +9,7 @@ decoration {
fullscreen_opacity = 1.0
# Shadows
drop_shadow = true
shadow_range = 50
shadow_ignore_window = true
col.shadow = rgba(9933ff80)
col.shadow_inactive = rgba(00000000)
drop_shadow = false
# Dimming
dim_inactive = false
@ -22,6 +18,6 @@ decoration {
blur {
enabled = true
ignore_opacity = false
xray = false
xray = true
}
}

View file

@ -18,10 +18,3 @@ env = _JAVA_AWT_WM_NONREPARENTING, 1
# XDG
env = XDG_SESSION_DESKTOP, Hyprland
# Electron
env = ELECTRON_OZONE_PLATFORM_HINT, auto
# hyprcursor
env = HYPRCURSOR_THEME, Afterglow
env = HYPRCURSOR_SIZE, 24

View file

@ -5,9 +5,14 @@ input {
numlock_by_default = true
repeat_rate = 75
repeat_delay = 300
kb_options = compose:rwin
# Mouse
sensitivity = 0.0
accel_profile = flat
# Touchpad
touchpad {
disable_while_typing = false
natural_scroll = true
}
}

View file

@ -3,6 +3,7 @@ misc {
# Logos and mascotts
disable_hyprland_logo = true
disable_splash_rendering = true
force_hypr_chan = false
# Focus
layers_hog_keyboard_focus = true

View file

@ -1,3 +1,2 @@
# Main monitor
monitor = , highrr, 1920x0, 1
monitor = HEADLESS-3, 1920x1080@74.97300, 0x0, 1

View file

@ -9,21 +9,21 @@ plugin {
# Tabs
tabs {
height = 10
height = 15
padding = 5
from_top = true
rounding = 8
render_text = false
render_text = true
text_center = false
text_font = Hack Nerd Font
text_height = 8
text_padding = 10
col.active = $col_accentdark
col.urgent = rgb(ffd966)
col.inactive = rgba(00000080)
col.inactive = $col_inactive
col.text.active = $col_textlight
col.text.urgent = rgba(000000e8)
col.text.inactive = rgba(ffffffb0)
col.text.inactive = $col_textlight
}
# Autotile

View file

@ -4,14 +4,5 @@ exec-once = hyprpaper
# XDG compliance
exec-once = hyprxdg
# swayosd
# SwayOSD
exec-once = swayosd-server
# Polkit agent
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
# eww
exec-once = eww daemon && eww open bar
# swaync
exec-once = swaync

View file

@ -4,6 +4,3 @@ windowrulev2 = workspace 4 silent, class:($bitwarden_class)
windowrulev2 = workspace 4 silent, class:($element_class)
windowrulev2 = workspace 4 silent, class:($discord_class)
windowrulev2 = workspace 4 silent, class:($deezer_class)
# Thunderbird password
windowrulev2 = float, class:(thunderbird), title:(Password Required - Mozilla Thunderbird)

View file

@ -1,60 +0,0 @@
general {
disable_loading_bar = true
hide_cursor = true
grace = 0
no_fade_in = true
no_fade_out = true
ignore_empty_input = true
text_trim = true
}
background {
monitor =
path = screenshot
blur_passes = 5
blur_size = 2
brightness = 0.5
}
input-field {
monitor =
size = 500, 50
outline_thickness = 2
dots_size = 0.33 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.15 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = false
dots_rounding = -1 # -1 default circle, -2 follow input-field rounding
outer_color = rgb(151515)
inner_color = rgb(200, 200, 200)
font_color = rgb(10, 10, 10)
fade_on_empty = true
fade_timeout = 0 # Milliseconds before fade_on_empty is triggered.
placeholder_text = # Text rendered in the input box when it's empty.
hide_input = false
rounding = -1 # -1 means complete rounding (circle/oval)
check_color = rgb(204, 136, 34)
fail_color = rgb(204, 34, 34) # if authentication failed, changes outer_color and fail message color
fail_text = $FAIL <b>($ATTEMPTS)</b> # can be set to empty
fail_transition = 300 # transition time in ms between normal outer_color and fail_color
capslock_color = -1
numlock_color = -1
bothlock_color = -1 # when both locks are active. -1 means don't change outer color (same for above)
invert_numlock = false # change color if numlock is off
swap_font_color = false # see below
position = 0, -20
halign = center
valign = center
}
label {
monitor =
text = cmd[update:500] date '+%Y-%m-%d%n%H:%M:%S'
color = rgb(ffffff)
font_size = 50
font_family = Noto Sans Bold
position = 40, 0
halign = left
valign = bottom
}

View file

@ -1,9 +1,6 @@
# Wallpaper
# preload = ~/.local/share/backgrounds/chime_interdimensional.jpg
# wallpaper = , ~/.local/share/backgrounds/chime_interdimensional.jpg
preload = ~/.local/share/backgrounds/virtual_riot_save_yourself_2-1920x1080.jpg
wallpaper = , ~/.local/share/backgrounds/virtual_riot_save_yourself_2-1920x1080.jpg
# Save battery
#ipc = off
# Disable splashe texts
splash = false

View file

@ -1,3 +0,0 @@
#!/usr/bin/env sh
set -x
exec rustup update

View file

@ -1,7 +1,5 @@
#!/usr/bin/env sh
[ "$(whoami)" != root ] && exec sudo -- "$0" "$@"
set -x -e
#!/bin/sh -ex
[ "$(whoami)" != root ] && exec sudo "$0" "$@"
apt-get clean
apt-get update
apt-file update

View file

@ -1,7 +0,0 @@
#!/usr/bin/env sh
set -e -x
aura -Cc 1
aura -Syu
aura -Fy
aura -Au --devel
aura -Qdtq | aura -Rns -

View file

@ -0,0 +1,5 @@
#!/bin/sh -ex
paru -Scc
paru -Fy
paru
paru -Qdtq | paru -Rns -

View file

@ -0,0 +1,5 @@
#!/bin/sh -ex
apt clean
pkg update
pkg upgrade
apt autopurge -y

View file

@ -1,11 +1,13 @@
#!/usr/bin/env sh
cd ~/docker || exit
#!/bin/sh
[ "$(whoami)" != root ] && exec sudo "$0" "$@"
cd /opt/docker || exit
for i in *; do (set -e
cd "$i"
docker-compose pull
docker-compose up -d
) & done
wait
docker image prune -f
wait

View file

@ -1,3 +1,2 @@
#!/usr/bin/env sh
set -x
exec sudo waydroid upgrade
#!/bin/sh -ex
sudo waydroid upgrade

View file

@ -1,3 +1,2 @@
#!/usr/bin/env sh
set -x
exec yabridgectl sync
#!/bin/sh -ex
yabridgectl sync

25
config/updateall/scripts/70-git Executable file
View file

@ -0,0 +1,25 @@
#!/bin/sh -x
if [ -z "$SSH_AGENT_PID" ]; then
exec ssh-agent "$0" "$@"
fi
ssh-add
update_repo() {
cd "$1" || return
printf 'Updating repository \033[1m%s\033[0m...\n' "$1"
git pull
}
cd ~/git || exit
set +x
for i in *; do
while [ "$(jobs -p | wc -l)" -ge 4 ]; do
sleep 1
done
update_repo "$i" &
done
wait

View file

@ -1,3 +1,2 @@
#!/usr/bin/env sh
set -x
exec nvim +PaqSync
#!/bin/sh -x
nvim +PaqSync

View file

@ -1,6 +1,3 @@
[core]
xwayland=true
[shell]
close-animation=none
startup-animation=none
@ -9,3 +6,4 @@ allow-zap=true
[keyboard]
keymap_layout=fr
numlock-on=true

View file

@ -1,16 +0,0 @@
[terminal]
# The VT to run the greeter on. Can be "next", "current" or a number
# designating the VT.
vt = 2
# The default session, also known as the greeter.
[default_session]
# `agreety` is the bundled agetty/login-lookalike. You can replace `/bin/sh`
# with whatever you want started, such as `sway`.
command = "tuigreet"
# The user to run the command as. The privileges this user must have depends
# on the greeter. A graphical greeter may for example require the user to be
# in the `video` group.
user = "greeter"

View file

@ -1,6 +1,4 @@
#!/hint/bash
# shellcheck disable=2034
#
# /etc/makepkg.conf
#
@ -40,21 +38,19 @@ CHOST="x86_64-pc-linux-gnu"
#-- Compiler and Linker Flags
#CPPFLAGS=""
CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions \
-Wp,-D_FORTIFY_SOURCE=3 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection \
-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer"
CFLAGS="-march=native -O2 -pipe -fno-plt -fexceptions \
-Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security \
-fstack-clash-protection -fcf-protection"
CXXFLAGS="$CFLAGS -Wp,-D_GLIBCXX_ASSERTIONS"
LDFLAGS="-Wl,-O1 -Wl,--sort-common -Wl,--as-needed -Wl,-z,relro -Wl,-z,now \
-Wl,-z,pack-relative-relocs"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
LTOFLAGS="-flto=auto"
RUSTFLAGS="-C opt-level=2 -Cforce-frame-pointers=yes"
RUSTFLAGS="-C opt-level=2 -C target-cpu=native"
#-- Make Flags: change this for DistCC/SMP systems
MAKEFLAGS="-j$(nproc)"
#-- Debugging flags
DEBUG_CFLAGS="-g"
DEBUG_CXXFLAGS="$DEBUG_CFLAGS"
DEBUG_RUSTFLAGS="-C debuginfo=2"
#DEBUG_RUSTFLAGS="-C debuginfo=2"
#########################################################################
# BUILD ENVIRONMENT
@ -83,7 +79,7 @@ BUILDENV=(!distcc color !ccache check !sign)
# These are default values for the options=() settings
#########################################################################
#
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto !autodeps)
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug !lto)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
@ -95,9 +91,8 @@ BUILDENV=(!distcc color !ccache check !sign)
#-- purge: Remove files specified by PURGE_TARGETS
#-- debug: Add debugging flags as specified in DEBUG_* variables
#-- lto: Add compile flags for building with link time optimization
#-- autodeps: Automatically add depends/provides
#
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug lto)
OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug !lto)
#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(sha256)
@ -115,8 +110,6 @@ DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
#-- Directory to store source code in for debug packages
DBGSRCDIR="/usr/src/debug"
#-- Prefix and directories for library autodeps
LIB_DIRS=('lib:usr/lib' 'lib32:usr/lib32')
#########################################################################
# PACKAGE OUTPUT
@ -134,7 +127,6 @@ LIB_DIRS=('lib:usr/lib' 'lib32:usr/lib32')
#LOGDEST=/home/makepkglogs
#-- Packager: name/email of the person or organization building packages
#PACKAGER="John Doe <john@doe.com>"
PACKAGER="Ahurac <ahurac@mailbox.org>"
#-- Specify a key to use for package signing
#GPGKEY=""
@ -144,8 +136,8 @@ PACKAGER="Ahurac <ahurac@mailbox.org>"
#
COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f)
COMPRESSXZ=(xz -c -z -)
COMPRESSZST=(zstd -c -T0 --fast=4 -)
COMPRESSXZ=(xz -c -z --threads=0 -)
COMPRESSZST=(zstd -c -z -q --threads=0 -)
COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q)
COMPRESSZ=(compress -c -f)
@ -165,4 +157,3 @@ SRCEXT='.src.tar.gz'
#
#-- Command used to run pacman as root, instead of trying sudo and su
#PACMAN_AUTH=()
# vim: set ft=sh ts=2 sw=2 et:

View file

@ -1,2 +0,0 @@
#!/bin/sh -e
exec /usr/bin/joycond

View file

@ -1,3 +0,0 @@
#!/bin/sh
waydroid container stop
waydroid session stop

View file

@ -1,2 +0,0 @@
#!/bin/sh
exec waydroid -w container start

View file

@ -22,11 +22,12 @@ alias ip="ip --color=auto"
# util-linux
alias cal="cal -m"
# screen
alias screen=screen\
alias s=screen
# sudo
alias sudo=sudo\
# man-db
alias man=man\
# helix
alias hx=helix

View file

@ -2,7 +2,7 @@
name = Ahurac
email = ahurac@mailbox.org
[core]
editor = helix
editor = nvim
[init]
defaultbranch = main
[pull]
@ -19,6 +19,5 @@
m = merge
r = rebase
graph = log --graph --oneline
ds = diff --staged
[push]
autoSetupRemote = true

View file

@ -1,8 +1,13 @@
# wine
alias wine32="WINEPREFIX=~/.wine32 wine"
# kitty
if [ "$TERM" = xterm-kitty ]; then
alias ssh="kitty +kitten ssh"
else
alias sshm="ssh -M"
fi
# git
alias g=git
# tmux, sudo
alias tsudo='tmux new sudo -i'
# ssh
alias sshm='ssh -M'

1
home/shrc.d/arch_aliases Normal file
View file

@ -0,0 +1 @@
alias pm=paru

View file

@ -11,6 +11,7 @@ addpath() {
}
addpath ~/.local/bin
addpath ~/.local/share/qemu/bin
# Start Hyprland if the tty is 1
if [ "$(tty)" = /dev/tty1 ]; then

View file

@ -1 +1,2 @@
export EDITOR=helix
export EDITOR=nvim

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

View file

@ -1,11 +1,15 @@
#!/usr/bin/env sh
cd || exit
#!/bin/sh -xe
[ -z "$DBUS_SESSION_BUS_ADDRESS" ] && \
exec dbus-launch --exit-with-session -- "$0" "$@"
self="$(readlink -f "$0")"
cd
[ -z "$SSH_AGENT_PID" ] && \
exec ssh-agent -- "$0" "$@"
if [ -z "$DBUS_SESSION_BUS_ADDRESS" ]; then
exec dbus-launch --exit-with-session "$self" "$@"
fi
if [ -z "$SSH_AGENT_PID" ]; then
exec ssh-agent "$self" "$@"
fi
xfwm4 &
artix-pipewire-launcher restart &