Compare commits
67 commits
Author | SHA1 | Date | |
---|---|---|---|
|
87efdf668e | ||
|
0a7a1c9240 | ||
|
7b8dc455d2 | ||
|
bfd61936ed | ||
|
9210481b26 | ||
|
e679417a08 | ||
|
63134d3675 | ||
|
f3d95b97b6 | ||
|
e73992b173 | ||
|
8d4ec36c98 | ||
|
4d046b2eaa | ||
|
a09273ec52 | ||
|
5dcef04d04 | ||
|
f97e70b701 | ||
|
d93dd48a6e | ||
|
ad013b26f2 | ||
|
4277531d56 | ||
|
a5df1080c8 | ||
|
2451d5c389 | ||
|
740d4e82c2 | ||
|
dc8f7c3385 | ||
|
fb3da5ff45 | ||
|
5a109c6c90 | ||
|
8a05c2e2c4 | ||
|
7fbd0bac09 | ||
|
dd8a49df5a | ||
|
6d2ee57e9c | ||
|
99c5360e9c | ||
|
028dc4a017 | ||
|
5f02467ae5 | ||
|
a7ef774d98 | ||
|
07cf5d3d95 | ||
|
8315f641fa | ||
|
63d7ad6356 | ||
|
7daa31ce3a | ||
|
ebe66d3161 | ||
|
49ba9d050b | ||
|
8282466524 | ||
|
c1c601da96 | ||
|
d50993c00f | ||
|
d51ac30742 | ||
|
871a518740 | ||
|
b9cf39460d | ||
|
4f8d559d67 | ||
|
16f09b1174 | ||
|
2b3fcd3168 | ||
|
6357f999e7 | ||
|
b8e03ddcdb | ||
|
d7d00bb1a3 | ||
|
282e832af0 | ||
|
2b3a7a32da | ||
|
15edbe62cb | ||
|
82b06820f2 | ||
|
33143c3e3e | ||
|
4011185682 | ||
|
f1b7186ca0 | ||
|
5d19cba142 | ||
|
2b578bcf5f | ||
|
92675c329d | ||
|
13745f0b75 | ||
|
54842d44aa | ||
|
301bded461 | ||
|
331806553c | ||
|
452d6a3226 | ||
|
2d716a990b | ||
|
d891f676a8 | ||
6d606f95be |
33 changed files with 598 additions and 267 deletions
2
.envrc
2
.envrc
|
@ -1,2 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
use flake
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
venv/
|
venv/
|
||||||
.direnv
|
.direnv
|
||||||
|
.envrc
|
||||||
|
|
17
bar/eww/assets/icons/window-close.svg
Normal file
17
bar/eww/assets/icons/window-close.svg
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
|
||||||
|
<defs id="defs3051">
|
||||||
|
<style type="text/css" id="current-color-scheme">
|
||||||
|
.ColorScheme-Text {
|
||||||
|
color:#d3dae3;
|
||||||
|
}
|
||||||
|
.ColorScheme-NegativeText {
|
||||||
|
color:#da4453;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</defs>
|
||||||
|
<path
|
||||||
|
style="fill:currentColor;fill-opacity:1;stroke:none"
|
||||||
|
class="ColorScheme-NegativeText"
|
||||||
|
d="M 8,2 A 6,6 0 0 0 2,8 6,6 0 0 0 8,14 6,6 0 0 0 14,8 6,6 0 0 0 8,2 Z M 5.70703,5 8,7.29297 10.29297,5 11,5.70703 8.70703,8 11,10.29297 10.29297,11 8,8.70703 5.70703,11 5,10.29297 7.29297,8 5,5.70703 5.70703,5 Z"
|
||||||
|
/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 626 B |
|
@ -20,8 +20,7 @@
|
||||||
(defpoll refresh_rate :interval "10s" :initial "165" "~/.config/eww/scripts/refresh_rate")
|
(defpoll refresh_rate :interval "10s" :initial "165" "~/.config/eww/scripts/refresh_rate")
|
||||||
(defpoll vpn_status :interval "60s" :initial '{"connected": false}' "~/.config/eww/scripts/vpn_status")
|
(defpoll vpn_status :interval "60s" :initial '{"connected": false}' "~/.config/eww/scripts/vpn_status")
|
||||||
|
|
||||||
(deflisten connectivity :initial '{"state": "disconnected"}' "~/.config/eww/scripts/get-connectivity wlan0")
|
(deflisten connectivity :initial '{"bluetooth": {}, "network": {}}' "~/.config/eww/scripts/get-connectivity-info")
|
||||||
(deflisten bluetoothinfo :initial '{"count": 0}' "~/.config/eww/scripts/get-bluetooth-info")
|
|
||||||
(deflisten hypr :initial '{"spaces": [], "current": 0, "title": ""}' "~/.config/eww/scripts/hypr/hyprstatus")
|
(deflisten hypr :initial '{"spaces": [], "current": 0, "title": ""}' "~/.config/eww/scripts/hypr/hyprstatus")
|
||||||
|
|
||||||
(deflisten volume :initial "{}" "~/.config/eww/scripts/get-volume")
|
(deflisten volume :initial "{}" "~/.config/eww/scripts/get-volume")
|
||||||
|
@ -54,18 +53,17 @@
|
||||||
|
|
||||||
(defwidget connectivity []
|
(defwidget connectivity []
|
||||||
(eventbox
|
(eventbox
|
||||||
:onclick "bash -c 'iwgtk &> /dev/null &'"
|
|
||||||
(label
|
(label
|
||||||
:class "connectivity"
|
:class "connectivity"
|
||||||
:text "${
|
:text "${
|
||||||
connectivity.state == "wireless"
|
connectivity.network.state == "wireless"
|
||||||
? network-icon["wifi-${connectivity.wifi.signal}"]
|
? network-icon["wifi-${connectivity.network.wifi.signal}"]
|
||||||
: network-icon[connectivity.state]
|
: network-icon[connectivity.network.state]
|
||||||
} ${
|
} ${
|
||||||
connectivity.state == "disconnected" ? "No network" :
|
connectivity.network.state == "disconnected" ? "No network" :
|
||||||
connectivity.state == "ethernet" ? "Ethernet" :
|
connectivity.network.state == "ethernet" ? "Ethernet" :
|
||||||
connectivity.state == "wireless" ? connectivity.wifi.ssid :
|
connectivity.network.state == "wireless" ? connectivity.network.wifi.ssid :
|
||||||
connectivity.state == "tethering" ? "USB tethering" : ''
|
connectivity.network.state == "tethering" ? "USB tethering" : ''
|
||||||
}"
|
}"
|
||||||
:limit-width 14)
|
:limit-width 14)
|
||||||
)
|
)
|
||||||
|
@ -76,7 +74,7 @@
|
||||||
:onclick "bash -c 'blueman-manager &> /dev/null &'"
|
:onclick "bash -c 'blueman-manager &> /dev/null &'"
|
||||||
(label
|
(label
|
||||||
:class "bluetooth"
|
:class "bluetooth"
|
||||||
:text " ${bluetoothinfo.count > 0 ? bluetoothinfo.count : bluetoothinfo.power}")
|
:text " ${connectivity.bluetooth.count > 0 ? connectivity.bluetooth.count : connectivity.bluetooth.power}")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
pkgs.dash
|
pkgs.dash
|
||||||
pkgs.socat
|
pkgs.socat
|
||||||
pkgs.pamixer
|
pkgs.pamixer
|
||||||
|
pkgs.playerctl
|
||||||
pkgs.pavucontrol
|
pkgs.pavucontrol
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
(defvar close_icon "/usr/share/icons/Qogir-ubuntu-dark/16/actions/window-close.svg")
|
(defvar close_icon "/home/gaspard/.config/eww/assets/icons/window-close.svg")
|
||||||
|
|
||||||
(defvar end-binary "~/.local/bin/end-rs")
|
(defvar end-binary "end-rs")
|
||||||
(defvar end-notifications '')
|
(defvar end-notifications '')
|
||||||
(defvar end-histories '')
|
(defvar end-histories '')
|
||||||
(defvar end-replies '')
|
(defvar end-replies '')
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
#!/usr/bin/env dash
|
|
||||||
|
|
||||||
info (){
|
|
||||||
power=$(bluetoothctl show | grep Powered | awk '{print $2}' | sed 's/yes/on/g; s/no/off/g')
|
|
||||||
count=$(bluetoothctl devices Connected | wc -l)
|
|
||||||
echo "{\"power\": \"${power}\", \"count\": \"${count}\"}"
|
|
||||||
}
|
|
||||||
|
|
||||||
info
|
|
||||||
dbus-monitor --system "sender=:1.3" | while read -r line; do
|
|
||||||
info
|
|
||||||
done
|
|
|
@ -1,59 +0,0 @@
|
||||||
#!/usr/bin/env dash
|
|
||||||
|
|
||||||
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")"
|
|
||||||
}
|
|
||||||
|
|
||||||
print_network_status
|
|
||||||
tail -f -n 0 /run/dhcpcd/log /var/log/iwd/current | \
|
|
||||||
while read -r _unused; do
|
|
||||||
print_network_status
|
|
||||||
done
|
|
75
bar/eww/scripts/get-connectivity-info
Executable file
75
bar/eww/scripts/get-connectivity-info
Executable file
|
@ -0,0 +1,75 @@
|
||||||
|
#!/usr/bin/env dash
|
||||||
|
|
||||||
|
|
||||||
|
print_network_state() {
|
||||||
|
case "$1" in
|
||||||
|
eth*|enp*)
|
||||||
|
echo ethernet
|
||||||
|
;;
|
||||||
|
wlan*|wlp*)
|
||||||
|
echo wireless
|
||||||
|
;;
|
||||||
|
usb*)
|
||||||
|
echo tethering
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo disconnected
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
wifi_strength() {
|
||||||
|
if [ "$1" -le 20 ]; then echo terrible
|
||||||
|
elif [ "$1" -le 40 ]; then echo bad
|
||||||
|
elif [ "$1" -le 60 ]; then echo mediocre
|
||||||
|
elif [ "$1" -le 80 ]; then echo good
|
||||||
|
else echo excellent
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
print_network_infos() {
|
||||||
|
if [ -n "$1" ]; then
|
||||||
|
device="$1"
|
||||||
|
route_line=$(ip route show dev "$device" | 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
|
||||||
|
wireless_info=$(nmcli --get-values active,ssid,signal dev wifi list --rescan no | grep "^yes")
|
||||||
|
ssid=$(echo "$wireless_info" | cut -d : -f2)
|
||||||
|
signal=$(echo "$wireless_info" | cut -d : -f3)
|
||||||
|
printf ',"wifi":{"signal":"%s","ssid":"%s"}' \
|
||||||
|
"$(wifi_strength "$signal")" \
|
||||||
|
"$ssid"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
print_network_status() {
|
||||||
|
device=$(ip route | awk '($1 == "default") { print $5 }')
|
||||||
|
state=$(print_network_state "$device")
|
||||||
|
|
||||||
|
printf '{"state":"%s"%s}\n' \
|
||||||
|
"$state" \
|
||||||
|
"$(print_network_infos "$device")"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_bluetooth_status (){
|
||||||
|
power=$(bluetoothctl show | grep Powered | awk '{print $2}' | sed 's/yes/on/g; s/no/off/g')
|
||||||
|
count=$(bluetoothctl devices Connected | wc -l)
|
||||||
|
echo "{\"power\": \"${power}\", \"count\": \"${count}\"}"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_connectivity_info () {
|
||||||
|
network="$(print_network_status)"
|
||||||
|
bluetooth="$(print_bluetooth_status)"
|
||||||
|
|
||||||
|
echo "{\"bluetooth\": ${bluetooth}, \"network\": ${network}}"
|
||||||
|
}
|
||||||
|
|
||||||
|
print_connectivity_info
|
||||||
|
dbus-monitor --system "interface=org.freedesktop.DBus.ObjectManager" 2> /dev/null | while read -r line; do
|
||||||
|
print_connectivity_info
|
||||||
|
done
|
|
@ -7,6 +7,6 @@ volume (){
|
||||||
}
|
}
|
||||||
|
|
||||||
volume
|
volume
|
||||||
pactl subscribe | grep --line-buffered "'change'" | while read -r line; do
|
pw-mon --color=never | grep --line-buffered "changed" | while read -r line; do
|
||||||
volume
|
volume
|
||||||
done
|
done
|
||||||
|
|
78
bar/eww/scripts/timer
Executable file
78
bar/eww/scripts/timer
Executable file
|
@ -0,0 +1,78 @@
|
||||||
|
#!/usr/bin/env dash
|
||||||
|
|
||||||
|
WORK_TIME=1200
|
||||||
|
PAUSE_TIME=300
|
||||||
|
|
||||||
|
timer_state_pid=0
|
||||||
|
timer_state_state="inactive"
|
||||||
|
timer_state_time="00:00"
|
||||||
|
timer_state_progress=100000
|
||||||
|
|
||||||
|
sub_timer_pid=0
|
||||||
|
|
||||||
|
start_timer() {
|
||||||
|
timer_type=$1
|
||||||
|
duration=0
|
||||||
|
|
||||||
|
timer_state_state="$timer_type" # Update done later
|
||||||
|
|
||||||
|
if [ "$timer_type" = "work" ]; then
|
||||||
|
duration=$WORK_TIME
|
||||||
|
timer_type="pause"
|
||||||
|
elif [ "$timer_type" = "pause" ]; then
|
||||||
|
duration=$PAUSE_TIME
|
||||||
|
timer_type="work"
|
||||||
|
else
|
||||||
|
echo "Invalid argument"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
i=$duration
|
||||||
|
while [ "$i" -ge 0 ] ; do
|
||||||
|
timer_state_progress=$((i * 100000 / duration))
|
||||||
|
timer_state_time="$(date -u -d @$i +'%M:%S')"
|
||||||
|
update_timer_state
|
||||||
|
sleep 1
|
||||||
|
i=$(( i - 1 ))
|
||||||
|
done
|
||||||
|
|
||||||
|
# Notify user
|
||||||
|
if [ "$timer_type" = "pause" ]; then
|
||||||
|
notify-send -c grind-timer -i ~/Images/Icons/moai.jpg "Work period over" "You can take a little nap now."
|
||||||
|
elif [ "$timer_type" = "work" ]; then
|
||||||
|
notify-send -c grind-timer -i ~/Images/Icons/moai.jpg "Pause period over" "Back to grinding we go."
|
||||||
|
fi
|
||||||
|
|
||||||
|
start_timer "$timer_type"
|
||||||
|
}
|
||||||
|
|
||||||
|
update_timer_state() {
|
||||||
|
echo "{\"pid\": $timer_state_pid, \"state\": \"$timer_state_state\", \"time\": \"$timer_state_time\", \"progress\": $timer_state_progress}"
|
||||||
|
}
|
||||||
|
|
||||||
|
handle_signal() {
|
||||||
|
# If a timer is running, kill it
|
||||||
|
if [ $sub_timer_pid -ne 0 ]; then
|
||||||
|
kill -9 $sub_timer_pid
|
||||||
|
sub_timer_pid=0
|
||||||
|
timer_state_state="inactive"
|
||||||
|
timer_state_progress=100000
|
||||||
|
update_timer_state
|
||||||
|
else
|
||||||
|
start_timer "work" &
|
||||||
|
sub_timer_pid=$!
|
||||||
|
# Will wait forever
|
||||||
|
wait $sub_timer_pid
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Set up the SIGUSR1 signal handler
|
||||||
|
trap handle_signal 10
|
||||||
|
|
||||||
|
timer_state_pid=$$; update_timer_state
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
sleep infinity &
|
||||||
|
wait
|
||||||
|
done
|
||||||
|
|
|
@ -1,57 +1,18 @@
|
||||||
(defvar WORK_TIME_SEC 1200)
|
(deflisten timer_state :initial '{"pid": 0, "state": "inactive", "time": "00:00", "progress": 100000}' "~/.config/eww/scripts/timer")
|
||||||
(defvar PAUSE_TIME_SEC 300)
|
|
||||||
|
|
||||||
(defvar timer-state "inactive")
|
|
||||||
(defvar timer-start-time 0)
|
|
||||||
|
|
||||||
(defpoll timer-time
|
|
||||||
:interval "900ms"
|
|
||||||
:run-while {timer-state != "inactive"}
|
|
||||||
`date +%s`)
|
|
||||||
|
|
||||||
(defpoll timer-work-period
|
|
||||||
:interval "20m"
|
|
||||||
:initial "first"
|
|
||||||
:run-while {timer-state == "work"}
|
|
||||||
`if [ "$(eww get timer-work-period)" == "first" ]; then
|
|
||||||
eww update timer-start-time=$(date +%s)
|
|
||||||
echo next
|
|
||||||
else
|
|
||||||
notify-send -c grind-timer -i ~/Images/Icons/moai.jpg "Work period over" "You can take a little nap now."
|
|
||||||
eww update timer-state=pause timer-pause-period=first
|
|
||||||
echo final
|
|
||||||
fi`) ; TODO: Put in a separate script
|
|
||||||
|
|
||||||
(defpoll timer-pause-period
|
|
||||||
:interval "5m"
|
|
||||||
:initial "first"
|
|
||||||
:run-while {timer-state == "pause"}
|
|
||||||
`if [ "$(eww get timer-pause-period)" == "first" ]; then
|
|
||||||
eww update timer-start-time=$(date +%s)
|
|
||||||
echo next
|
|
||||||
else
|
|
||||||
notify-send -c grind-timer -i ~/Images/Icons/moai.jpg "Pause period over" "Back to grinding we go."
|
|
||||||
eww update timer-state=work timer-work-period=first
|
|
||||||
echo final
|
|
||||||
fi`) ; TODO: Put in a separate script
|
|
||||||
|
|
||||||
(defwidget start-button []
|
(defwidget start-button []
|
||||||
(button
|
(button
|
||||||
:class "start-button"
|
:class "start-button"
|
||||||
:vexpand true
|
:vexpand true
|
||||||
:onclick "eww update timer-state=${timer-state == "inactive" ? "work" : "inactive"} timer-work-period=first timer-pause-period=first"
|
:onclick "kill -10 ${timer_state.pid}"
|
||||||
(overlay
|
(overlay
|
||||||
(circular-progress
|
(circular-progress
|
||||||
:class "circle-progress"
|
:class "circle-progress"
|
||||||
:value "${
|
:value "${timer_state.progress / 1000}"
|
||||||
timer-state == "inactive" ? 100 :
|
|
||||||
100 * (timer-start-time + (timer-state == "work" ? WORK_TIME_SEC : PAUSE_TIME_SEC) - timer-time)
|
|
||||||
/ (timer-state == "work" ? WORK_TIME_SEC : PAUSE_TIME_SEC)
|
|
||||||
}"
|
|
||||||
:thickness 6
|
:thickness 6
|
||||||
:start-at 75
|
:start-at 75
|
||||||
:clockwise true)
|
:clockwise true)
|
||||||
(label :class "start-icon" :text "${timer-state == "inactive" ? 'Start' : (timer-state == "work" ? "Working" : "Pause")}")
|
(label :class "start-icon" :text "${timer_state.state == "inactive" ? 'Start' : (timer_state.state == "work" ? "Working" : "Pause")}")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
@ -60,13 +21,13 @@
|
||||||
(box
|
(box
|
||||||
:orientation "v"
|
:orientation "v"
|
||||||
:space-evenly false
|
:space-evenly false
|
||||||
:class "timer ${timer-state}"
|
:class "timer ${timer_state.state}"
|
||||||
(label :class "timer-title" :text "Grind timer")
|
(label :class "timer-title" :text "Grind timer")
|
||||||
(start-button :valign "center" :vexpand true)
|
(start-button :valign "center" :vexpand true)
|
||||||
(revealer
|
(revealer
|
||||||
:transition "slideup"
|
:transition "slideup"
|
||||||
:reveal {timer-state != "inactive"}
|
:reveal {timer_state.state != "inactive"}
|
||||||
(label :class "timer-text" :text "${timer-state != "inactive" ? formattime(timer-start-time - (3600 - (timer-state == "work" ? WORK_TIME_SEC : PAUSE_TIME_SEC)) - timer-time, "%H:%M:%S") : "00:20:00"}")
|
(label :class "timer-text" :text "${timer_state.time}")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -9,6 +9,6 @@ export XDG_CONFIG_HOME="${HOME}/.config"
|
||||||
# Execution
|
# Execution
|
||||||
exec ssh-agent \
|
exec ssh-agent \
|
||||||
dbus-launch --exit-with-session \
|
dbus-launch --exit-with-session \
|
||||||
hyprland \
|
Hyprland \
|
||||||
"$@"
|
"$@"
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
# Run swaylock
|
# Run swaylock
|
||||||
exec /usr/bin/swaylock \
|
exec swaylock \
|
||||||
"$@" \
|
"$@" \
|
||||||
--indicator \
|
--indicator \
|
||||||
--daemonize \
|
--daemonize \
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/sh
|
||||||
|
|
||||||
if [[ $# -lt 1 ]] || [[ ! $1 = @(daemon|change) ]]; then
|
if [[ $# -lt 1 ]] || [[ ! $1 = @(daemon|change) ]]; then
|
||||||
echo "Usage:
|
echo "Usage:
|
||||||
|
|
|
@ -5,9 +5,14 @@
|
||||||
}: {
|
}: {
|
||||||
home.file = {
|
home.file = {
|
||||||
".config/hypr/hyprland.conf.d".source = ./hyprland.conf.d;
|
".config/hypr/hyprland.conf.d".source = ./hyprland.conf.d;
|
||||||
|
# Gamemode script
|
||||||
|
".config/hypr/gamemode.sh" = {
|
||||||
|
source = ./gamemode.sh;
|
||||||
|
executable = true;
|
||||||
|
};
|
||||||
# Hyprland launch wrapper
|
# Hyprland launch wrapper
|
||||||
".local/bin/Hyprland" = {
|
".local/bin/Hyprland-wrapper" = {
|
||||||
source = ../../bin/Hyprland;
|
source = ../../bin/Hyprland-wrapper;
|
||||||
executable = true;
|
executable = true;
|
||||||
};
|
};
|
||||||
# UWU launcher script
|
# UWU launcher script
|
||||||
|
@ -20,30 +25,52 @@
|
||||||
source = ../../bin/togglescreen;
|
source = ../../bin/togglescreen;
|
||||||
executable = true;
|
executable = true;
|
||||||
};
|
};
|
||||||
|
# Wallpaperctl script
|
||||||
|
".local/bin/wallpaperctl" = {
|
||||||
|
source = ../../bin/wallpaperctl;
|
||||||
|
executable = true;
|
||||||
|
};
|
||||||
|
# Lock script
|
||||||
|
".local/bin/swaylock-hyprland" = {
|
||||||
|
source = ../../bin/swaylock-hyprland;
|
||||||
|
executable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [
|
home.packages = with pkgs; [
|
||||||
pkgs.egl-wayland # For NVIDIA compatibility
|
egl-wayland # For NVIDIA compatibility
|
||||||
pkgs.xdg-desktop-portal-hyprland
|
xdg-desktop-portal-hyprland
|
||||||
# Common DE packages required in config
|
# Common DE packages required in config
|
||||||
pkgs.wl-clipboard-rs
|
wl-clipboard
|
||||||
pkgs.grim
|
grim
|
||||||
pkgs.slurp
|
slurp
|
||||||
pkgs.hyprpicker
|
hyprpicker
|
||||||
pkgs.udiskie
|
udiskie
|
||||||
pkgs.swww
|
swww
|
||||||
|
swaylock-effects
|
||||||
|
brightnessctl
|
||||||
|
networkmanagerapplet
|
||||||
# Apps launchable from bindings
|
# Apps launchable from bindings
|
||||||
pkgs.firefox
|
firefox
|
||||||
pkgs.kitty
|
kitty
|
||||||
pkgs.yazi
|
yazi
|
||||||
# Theme
|
# Yazi requirements
|
||||||
pkgs.bibata-cursors
|
ffmpegthumbnailer
|
||||||
pkgs.qogir-theme
|
poppler
|
||||||
pkgs.qogir-icon-theme
|
imagemagick
|
||||||
];
|
];
|
||||||
|
|
||||||
|
home.pointerCursor = {
|
||||||
|
gtk.enable = true;
|
||||||
|
# x11.enable = true;
|
||||||
|
package = pkgs.bibata-cursors;
|
||||||
|
name = "Bibata-Modern-Classic";
|
||||||
|
size = 24;
|
||||||
|
};
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
|
||||||
extraConfig = builtins.readFile ./hyprland.conf;
|
extraConfig = builtins.readFile ./hyprland.conf;
|
||||||
plugins = [inputs.hy3.packages.${pkgs.system}.hy3];
|
plugins = [inputs.hy3.packages.${pkgs.system}.hy3];
|
||||||
};
|
};
|
||||||
|
@ -54,5 +81,6 @@
|
||||||
../../term/alacritty
|
../../term/alacritty
|
||||||
../../misc/swayosd
|
../../misc/swayosd
|
||||||
../../misc/anyrun
|
../../misc/anyrun
|
||||||
|
../../misc/end-rs
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ bind = ,XF86Launch3, exec, asusctl led-mode -n
|
||||||
# Wayland gamemode
|
# Wayland gamemode
|
||||||
bind = WIN, F5, exec, ~/.config/hypr/gamemode.sh
|
bind = WIN, F5, exec, ~/.config/hypr/gamemode.sh
|
||||||
# Panel overdrive
|
# Panel overdrive
|
||||||
bind = $mainMod+SHIFT, o, exec, ~/.config/waybar/scripts/refresh_rate.sh toggle; pkill -SIGRTMIN+10 waybar
|
bind = $mainMod+SHIFT, o, exec, ~/.config/eww/scripts/refresh_rate toggle
|
||||||
# Toggle screen
|
# Toggle screen
|
||||||
bind = WIN, F9, exec, togglescreen
|
bind = WIN, F9, exec, togglescreen
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,6 @@
|
||||||
# Hyprland GPU backend
|
# Hyprland GPU backend
|
||||||
# env = WLR_DRM_DEVICES,/dev/dri/card1
|
# env = WLR_DRM_DEVICES,/dev/dri/card1
|
||||||
|
|
||||||
# Hyprcursor
|
|
||||||
env = HYPRCURSOR_THEME,Bibata-Modern
|
|
||||||
env = HYPRCURSOR_SIZE,24
|
|
||||||
# X cursor
|
|
||||||
env = XCURSOR_THEME,Bibata-Modern
|
|
||||||
env = XCURSOR_SIZE,24
|
|
||||||
|
|
||||||
# Backend
|
# Backend
|
||||||
env = GDK_BACKEND, wayland,x11
|
env = GDK_BACKEND, wayland,x11
|
||||||
env = SDL_VIDEODRIVER, wayland
|
env = SDL_VIDEODRIVER, wayland
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
# Startup
|
# Startup
|
||||||
|
|
||||||
exec-once = artix-pipewire-launcher restart
|
exec-once = artix-pipewire-launcher restart
|
||||||
exec-once = end-rs daemon
|
|
||||||
exec-once = wallpaperctl daemon
|
exec-once = wallpaperctl daemon
|
||||||
exec-once = swayosd-server
|
exec-once = swayosd-server
|
||||||
|
exec-once = nm-applet
|
||||||
exec-once = udiskie
|
exec-once = udiskie
|
||||||
exec-once = eww-bard
|
exec-once = eww-bard
|
||||||
exec-once = hyprctl setcursor Bibata-Modern-Classic 24
|
exec-once = end-rs daemon
|
||||||
exec-once = dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
exec-once = dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
|
||||||
|
|
|
@ -13,6 +13,8 @@ windowrulev2 = workspace 8 silent, class:(Deezer)
|
||||||
windowrule = float, ^(connman-gtk)$
|
windowrule = float, ^(connman-gtk)$
|
||||||
|
|
||||||
windowrulev2 = float, class:(iwgtk)
|
windowrulev2 = float, class:(iwgtk)
|
||||||
|
windowrulev2 = float, class:(nm-connection-editor)
|
||||||
|
windowrulev2 = float, class:(.blueman-manager-wrapped)
|
||||||
|
|
||||||
windowrulev2 = float, class:(localsend_app)
|
windowrulev2 = float, class:(localsend_app)
|
||||||
|
|
||||||
|
|
|
@ -24,6 +24,6 @@ normal = "block"
|
||||||
select = "underline"
|
select = "underline"
|
||||||
|
|
||||||
[keys.normal]
|
[keys.normal]
|
||||||
backspace = {r = ":sh cargo run", p = ":sh python src/main.py"}
|
backspace = {r = ":sh cargo run", b = ":sh cargo build", p = ":sh python src/main.py"}
|
||||||
a = ["ensure_selections_forward", "collapse_selection", "move_char_right", "insert_mode"]
|
a = ["ensure_selections_forward", "collapse_selection", "move_char_right", "insert_mode"]
|
||||||
A-R = [":clipboard-paste-replace"]
|
A-R = [":clipboard-paste-replace"]
|
||||||
|
|
221
flake.lock
221
flake.lock
|
@ -1,5 +1,47 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"anixrun": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1727281125,
|
||||||
|
"narHash": "sha256-/d65UInO08BTrE1JrXwc0/+tLdkRQuM4H2eSirbuLcI=",
|
||||||
|
"owner": "GaspardCulis",
|
||||||
|
"repo": "anixrun",
|
||||||
|
"rev": "95931fe5365120cafe46cbc8e3e0df5667b50db6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "GaspardCulis",
|
||||||
|
"repo": "anixrun",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"anyrun": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1728852607,
|
||||||
|
"narHash": "sha256-PhJdr8b4nZVHts5KMEsf7vCDXVpFIFCa7VlCt+oYpL4=",
|
||||||
|
"owner": "anyrun-org",
|
||||||
|
"repo": "anyrun",
|
||||||
|
"rev": "6e0385f6945d701545edc5bccfc5f544e1e12663",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "anyrun-org",
|
||||||
|
"repo": "anyrun",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"aquamarine": {
|
"aquamarine": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprutils": [
|
"hyprutils": [
|
||||||
|
@ -24,11 +66,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725199881,
|
"lastModified": 1727261104,
|
||||||
"narHash": "sha256-jsmipf/u1GFZE5tBUkr56CHMN6VpUWCAjfLIhvQijU0=",
|
"narHash": "sha256-rxDI7WrxIRV9it9mDCHcLa7xQykf1JloXnoXr5xQ8zI=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "aquamarine",
|
"repo": "aquamarine",
|
||||||
"rev": "f8a687dd29ff019657498f1bd14da2fbbf0e604b",
|
"rev": "b82fdaff917582a9d568969e15e61b398c71e990",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -44,11 +86,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726838624,
|
"lastModified": 1729010169,
|
||||||
"narHash": "sha256-SU40aZ/UyK4bhuanaWvqlhIw2/kiDrGYcKxCkTn5FP8=",
|
"narHash": "sha256-AjgIlXcreagCs6ltT8mzI1UYEiYgfhlwe4Tl3taxQSU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "0fe779905ffe730eace0bf7ecf56938c625012a5",
|
"rev": "9ab6ae4e632016caac1c7e82e15b12b8c672ed76",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -57,6 +99,47 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"end-rs": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1729221539,
|
||||||
|
"narHash": "sha256-REh7hzFcVv6LngqX5xcjJC5KM41k1oJ6accEJjrEihA=",
|
||||||
|
"owner": "Dr-42",
|
||||||
|
"repo": "end-rs",
|
||||||
|
"rev": "6f75f9fc569ef842c687fc908f573be5a414ce19",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Dr-42",
|
||||||
|
"repo": "end-rs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": [
|
||||||
|
"anyrun",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1727826117,
|
||||||
|
"narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
@ -64,11 +147,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726440980,
|
"lastModified": 1728903686,
|
||||||
"narHash": "sha256-ChhIrjtdu5d83W+YDRH+Ec5g1MmM0xk6hJnkz15Ot7M=",
|
"narHash": "sha256-ZHFrGNWDDriZ4m8CA/5kDa250SG1LiiLPApv1p/JF0o=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "a9c9cc6e50f7cbd2d58ccb1cd46a1e06e9e445ff",
|
"rev": "e1aec543f5caf643ca0d94b6a633101942fd065f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -82,11 +165,11 @@
|
||||||
"hyprland": "hyprland"
|
"hyprland": "hyprland"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725825817,
|
"lastModified": 1728520267,
|
||||||
"narHash": "sha256-hBvwaMlgBuR2cB1Kx6cA1z7x38HXUujNcHtBsKhaEZs=",
|
"narHash": "sha256-6TVaB+nWVanqZWqievg+m7tVNrSpQ9CQcwXJQeyU/Q0=",
|
||||||
"owner": "outfoxxed",
|
"owner": "outfoxxed",
|
||||||
"repo": "hy3",
|
"repo": "hy3",
|
||||||
"rev": "4b194eb5486b89102726ad5f4492bb3440c46031",
|
"rev": "4e92705d7a0ff23296aa1a62c05734ccc6de7bec",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -114,11 +197,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722623071,
|
"lastModified": 1727532803,
|
||||||
"narHash": "sha256-sLADpVgebpCBFXkA1FlCXtvEPu1tdEsTfqK1hfeHySE=",
|
"narHash": "sha256-ZaZ7h7PY8mQc4vtGmVqWLAq9CAO02gHMyNR5yY8zDmM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprcursor",
|
"repo": "hyprcursor",
|
||||||
"rev": "912d56025f03d41b1ad29510c423757b4379eb1c",
|
"rev": "b98726e431d4d3ed58bd58bee1047cdb81cec69f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -131,31 +214,57 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"aquamarine": "aquamarine",
|
"aquamarine": "aquamarine",
|
||||||
"hyprcursor": "hyprcursor",
|
"hyprcursor": "hyprcursor",
|
||||||
|
"hyprland-protocols": "hyprland-protocols",
|
||||||
"hyprlang": "hyprlang",
|
"hyprlang": "hyprlang",
|
||||||
"hyprutils": "hyprutils",
|
"hyprutils": "hyprutils",
|
||||||
"hyprwayland-scanner": "hyprwayland-scanner",
|
"hyprwayland-scanner": "hyprwayland-scanner",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"systems": "systems",
|
"systems": "systems_2",
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725814101,
|
"lastModified": 1728142617,
|
||||||
"narHash": "sha256-+wE97utoDfhQP6AMdZHUmBeL8grbce/Jv2i5M+6AbaE=",
|
"narHash": "sha256-ramJ6G9bKYuZshtYRc0olhtN89bP9i4BDhhTU0E0cLc=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "0f594732b063a90d44df8c5d402d658f27471dfe",
|
"rev": "0ec6072a290051a03ab66cfb9bc616b2f5540e64",
|
||||||
"revCount": 5196,
|
"revCount": 5298,
|
||||||
"submodules": true,
|
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hyprwm/Hyprland"
|
"url": "https://github.com/hyprwm/Hyprland"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"rev": "0f594732b063a90d44df8c5d402d658f27471dfe",
|
"rev": "0ec6072a290051a03ab66cfb9bc616b2f5540e64",
|
||||||
"submodules": true,
|
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/hyprwm/Hyprland"
|
"url": "https://github.com/hyprwm/Hyprland"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"hyprland-protocols": {
|
"hyprland-protocols": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"hy3",
|
||||||
|
"hyprland",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": [
|
||||||
|
"hy3",
|
||||||
|
"hyprland",
|
||||||
|
"systems"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1727451107,
|
||||||
|
"narHash": "sha256-qV9savtHwmZUa0eJE294WYJjKPGB2+bJhwByFShsVyo=",
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"rev": "6b3261ee13a6d2b99de79a31d352f6996e35bde3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hyprwm",
|
||||||
|
"repo": "hyprland-protocols",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hyprland-protocols_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"hy3",
|
"hy3",
|
||||||
|
@ -203,11 +312,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725188252,
|
"lastModified": 1725997860,
|
||||||
"narHash": "sha256-yBH8c4GDaEAtBrh+BqIlrx5vp6gG/Gu8fQQK63KAQgs=",
|
"narHash": "sha256-d/rZ/fHR5l1n7PeyLw0StWMNLXVU9c4HFyfskw568so=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprlang",
|
"repo": "hyprlang",
|
||||||
"rev": "c12ab785ce1982f82594aff03b3104c598186ddd",
|
"rev": "dfeb5811dd6485490cce18d6cc1e38a055eea876",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -230,11 +339,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1724966483,
|
"lastModified": 1727300645,
|
||||||
"narHash": "sha256-WXDgKIbzjYKczxSZOsJplCS1i1yrTUpsDPuJV/xpYLo=",
|
"narHash": "sha256-OvAtVLaSRPnbXzOwlR1fVqCXR7i+ICRX3aPMCdIiv+c=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprutils",
|
"repo": "hyprutils",
|
||||||
"rev": "8976e3f6a5357da953a09511d0c7f6a890fb6ec2",
|
"rev": "3f5293432b6dc6a99f26aca2eba3876d2660665c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -257,11 +366,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1721324119,
|
"lastModified": 1726874836,
|
||||||
"narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=",
|
"narHash": "sha256-VKR0sf0PSNCB0wPHVKSAn41mCNVCnegWmgkrneKDhHM=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "hyprwayland-scanner",
|
"repo": "hyprwayland-scanner",
|
||||||
"rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30",
|
"rev": "500c81a9e1a76760371049a8d99e008ea77aa59e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -272,11 +381,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725103162,
|
"lastModified": 1727348695,
|
||||||
"narHash": "sha256-Ym04C5+qovuQDYL/rKWSR+WESseQBbNAe5DsXNx5trY=",
|
"narHash": "sha256-J+PeFKSDV+pHL7ukkfpVzCOO7mBSrrpJ3svwBFABbhI=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "12228ff1752d7b7624a54e9c1af4b222b3c1073b",
|
"rev": "1925c603f17fc89f4c8f6bf6f631a802ad85d784",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -288,11 +397,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726243404,
|
"lastModified": 1728888510,
|
||||||
"narHash": "sha256-sjiGsMh+1cWXb53Tecsm4skyFNag33GPbVgCdfj3n9I=",
|
"narHash": "sha256-nsNdSldaAyu6PE3YUA+YQLqUDJh+gRbBooMMekZJwvI=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "345c263f2f53a3710abe117f28a5cb86d0ba4059",
|
"rev": "a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -304,7 +413,10 @@
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"anixrun": "anixrun",
|
||||||
|
"anyrun": "anyrun",
|
||||||
"disko": "disko",
|
"disko": "disko",
|
||||||
|
"end-rs": "end-rs",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hy3": "hy3",
|
"hy3": "hy3",
|
||||||
"hyprland": [
|
"hyprland": [
|
||||||
|
@ -329,14 +441,39 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1689347949,
|
||||||
|
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default-linux",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"xdph": {
|
"xdph": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"hyprland-protocols": "hyprland-protocols",
|
"hyprland-protocols": "hyprland-protocols_2",
|
||||||
"hyprlang": [
|
"hyprlang": [
|
||||||
"hy3",
|
"hy3",
|
||||||
"hyprland",
|
"hyprland",
|
||||||
"hyprlang"
|
"hyprlang"
|
||||||
],
|
],
|
||||||
|
"hyprutils": [
|
||||||
|
"hy3",
|
||||||
|
"hyprland",
|
||||||
|
"hyprutils"
|
||||||
|
],
|
||||||
|
"hyprwayland-scanner": [
|
||||||
|
"hy3",
|
||||||
|
"hyprland",
|
||||||
|
"hyprwayland-scanner"
|
||||||
|
],
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"hy3",
|
"hy3",
|
||||||
"hyprland",
|
"hyprland",
|
||||||
|
@ -349,11 +486,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1725203932,
|
"lastModified": 1727524473,
|
||||||
"narHash": "sha256-VLULC/OnI+6R9KEP2OIGk+uLJJsfRlaLouZ5gyFd2+Y=",
|
"narHash": "sha256-1DGktDtSWIJpnDbVoj/qpvJSH5zg6JbOfuh6xqZMap0=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "xdg-desktop-portal-hyprland",
|
"repo": "xdg-desktop-portal-hyprland",
|
||||||
"rev": "2425e8f541525fa7409d9f26a8ffaf92a3767251",
|
"rev": "7e500e679ede40e79cf2d89b5f5fa3e34923bd26",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
14
flake.nix
14
flake.nix
|
@ -21,6 +21,20 @@
|
||||||
hy3 = {
|
hy3 = {
|
||||||
url = "github:outfoxxed/hy3";
|
url = "github:outfoxxed/hy3";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
end-rs = {
|
||||||
|
url = "github:Dr-42/end-rs";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
anyrun = {
|
||||||
|
url = "github:anyrun-org/anyrun";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
anixrun = {
|
||||||
|
url = "github:GaspardCulis/anixrun";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs = {
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
{
|
{
|
||||||
inputs,
|
inputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
|
@ -17,46 +15,33 @@
|
||||||
|
|
||||||
console.keyMap = "fr";
|
console.keyMap = "fr";
|
||||||
|
|
||||||
# Network & Bluetooth
|
security.pam.services.swaylock = {};
|
||||||
networking.wireless.iwd.enable = true;
|
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
hardware.bluetooth.powerOnBoot = true;
|
|
||||||
|
|
||||||
# Audio
|
|
||||||
hardware.pulseaudio.enable = true;
|
|
||||||
|
|
||||||
# Services
|
# Services
|
||||||
services.seatd.enable = true;
|
services.seatd.enable = true;
|
||||||
services.blueman.enable = true;
|
services.blueman.enable = true;
|
||||||
services.pipewire.pulse.enable = true;
|
services.udisks2.enable = true;
|
||||||
services.power-profiles-daemon.enable = true;
|
services.power-profiles-daemon.enable = true;
|
||||||
|
|
||||||
# Programs
|
# Programs
|
||||||
environment.systemPackages = [
|
environment.systemPackages = with pkgs; [
|
||||||
pkgs.git
|
git
|
||||||
pkgs.ncdu
|
wget
|
||||||
pkgs.neofetch
|
ncdu
|
||||||
pkgs.bottom
|
neofetch
|
||||||
pkgs.htop
|
bottom
|
||||||
pkgs.iwgtk
|
htop
|
||||||
|
wg-netmanager
|
||||||
|
podman-compose
|
||||||
];
|
];
|
||||||
|
|
||||||
# NVIDIA
|
#Podman
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) ["nvidia-x11" "nvidia-settings"];
|
virtualisation.containers.enable = true;
|
||||||
|
virtualisation = {
|
||||||
hardware.graphics.enable = true;
|
podman = {
|
||||||
|
enable = true;
|
||||||
services.xserver.videoDrivers = ["nvidia"];
|
# Required for containers under podman-compose to be able to talk to each other.
|
||||||
|
defaultNetwork.settings.dns_enabled = true;
|
||||||
hardware.nvidia = {
|
|
||||||
modesetting.enable = true;
|
|
||||||
|
|
||||||
open = false; # Bruuh
|
|
||||||
|
|
||||||
prime = {
|
|
||||||
amdgpuBusId = "PCI:7:0:0";
|
|
||||||
nvidiaBusId = "PCI:1:0:0";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -71,6 +56,7 @@
|
||||||
"video"
|
"video"
|
||||||
"seat"
|
"seat"
|
||||||
"audio"
|
"audio"
|
||||||
|
"networkmanager"
|
||||||
];
|
];
|
||||||
group = "gaspard";
|
group = "gaspard";
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
# and may be overwritten by future invocations. Please make changes
|
# and may be overwritten by future invocations. Please make changes
|
||||||
# to /etc/nixos/configuration.nix instead.
|
# to /etc/nixos/configuration.nix instead.
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
modulesPath,
|
modulesPath,
|
||||||
|
@ -13,7 +14,9 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
kernelPackages = lib.mkDefault pkgs.linuxPackages_zen;
|
||||||
kernelModules = ["kvm-amd"];
|
kernelModules = ["kvm-amd"];
|
||||||
|
kernelParams = ["mem_sleep_default=deep"]; # Should fix/change suspend method
|
||||||
extraModulePackages = [];
|
extraModulePackages = [];
|
||||||
initrd = {
|
initrd = {
|
||||||
availableKernelModules = ["nvme" "xhci_pci" "usbhid" "sdhci_pci"];
|
availableKernelModules = ["nvme" "xhci_pci" "usbhid" "sdhci_pci"];
|
||||||
|
@ -27,8 +30,58 @@
|
||||||
efiSupport = true;
|
efiSupport = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
tmp.useTmpfs = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Network & Bluetooth
|
||||||
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
hardware.bluetooth.powerOnBoot = true;
|
||||||
|
|
||||||
|
# Audio
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
# If you want to use JACK applications, uncomment this
|
||||||
|
#jack.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
#NVIDIA
|
||||||
|
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||||
|
builtins.elem (lib.getName pkg) [
|
||||||
|
"nvidia-x11"
|
||||||
|
"nvidia-settings"
|
||||||
|
];
|
||||||
|
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
vaapiVdpau
|
||||||
|
libvdpau-va-gl
|
||||||
|
mesa
|
||||||
|
];
|
||||||
|
};
|
||||||
|
hardware.nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
|
||||||
|
open = false; # Bruuh
|
||||||
|
|
||||||
|
prime = {
|
||||||
|
offload = {
|
||||||
|
enable = true;
|
||||||
|
enableOffloadCmd = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
amdgpuBusId = "PCI:7:0:0";
|
||||||
|
nvidiaBusId = "PCI:1:0:0";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
services.xserver.videoDrivers = ["nvidia"];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
|
|
|
@ -1,9 +1,38 @@
|
||||||
{pkgs, ...}: {
|
{
|
||||||
home.file = {
|
pkgs,
|
||||||
".config/anyrun".source = ../anyrun;
|
inputs,
|
||||||
};
|
...
|
||||||
|
}: {
|
||||||
home.packages = [
|
imports = [
|
||||||
pkgs.anyrun
|
inputs.anyrun.homeManagerModules.anyrun # Import the anyrun home-manager module
|
||||||
];
|
];
|
||||||
|
|
||||||
|
programs.anyrun = {
|
||||||
|
enable = true;
|
||||||
|
config = {
|
||||||
|
plugins = [
|
||||||
|
inputs.anyrun.packages.${pkgs.system}.applications
|
||||||
|
inputs.anyrun.packages.${pkgs.system}.symbols
|
||||||
|
inputs.anyrun.packages.${pkgs.system}.websearch
|
||||||
|
inputs.anyrun.packages.${pkgs.system}.rink
|
||||||
|
inputs.anyrun.packages.${pkgs.system}.shell
|
||||||
|
inputs.anixrun.packages.${pkgs.system}.default
|
||||||
|
];
|
||||||
|
x = {fraction = 0.5;};
|
||||||
|
y = {fraction = 0.3;};
|
||||||
|
width = {fraction = 0.3;};
|
||||||
|
hideIcons = false;
|
||||||
|
ignoreExclusiveZones = false;
|
||||||
|
layer = "top";
|
||||||
|
hidePluginInfo = true;
|
||||||
|
closeOnClick = true;
|
||||||
|
showResultsImmediately = false;
|
||||||
|
maxEntries = null;
|
||||||
|
};
|
||||||
|
extraCss = builtins.readFile ./style.css;
|
||||||
|
|
||||||
|
extraConfigFiles."applications.ron".text = builtins.readFile ./applications.ron;
|
||||||
|
extraConfigFiles."symbols.ron".text = builtins.readFile ./symbols.ron;
|
||||||
|
extraConfigFiles."websearch.ron".text = builtins.readFile ./websearch.ron;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +1,11 @@
|
||||||
### Path to the eww binary
|
### Path to the eww binary
|
||||||
eww_binary_path = "/usr/bin/eww"
|
eww_binary_path = "eww"
|
||||||
### Where to find the icons for the notifications
|
### Where to find the icons for the notifications
|
||||||
icon_dirs = [
|
icon_dirs = [
|
||||||
"/usr/share/icons",
|
"/usr/share/icons",
|
||||||
"/usr/share/pixmaps",
|
"/usr/share/pixmaps",
|
||||||
|
"/home/gaspard/.nix-profile/share/icons",
|
||||||
|
"/home/gaspard/.nix-profile/share/pixmaps",
|
||||||
]
|
]
|
||||||
### The theme to use for the icons
|
### The theme to use for the icons
|
||||||
icon_theme = "Qogir"
|
icon_theme = "Qogir"
|
||||||
|
|
15
misc/end-rs/default.nix
Normal file
15
misc/end-rs/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
home.file = {
|
||||||
|
".config/end-rs/config.toml".source = ./config.toml;
|
||||||
|
};
|
||||||
|
|
||||||
|
home.packages = [
|
||||||
|
inputs.end-rs
|
||||||
|
pkgs.libnotify
|
||||||
|
pkgs.qogir-icon-theme
|
||||||
|
];
|
||||||
|
}
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
# Start DE if on tty1
|
# Start DE if on tty1
|
||||||
if [ "$(tty)" = /dev/tty1 ]; then
|
if [ "$(tty)" = /dev/tty1 ]; then
|
||||||
exec Hyprland
|
exec Hyprland-wrapper
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Start DE if on tty1
|
# Start DE if on tty1
|
||||||
|
|
|
@ -1,19 +1,17 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
} : {
|
|
||||||
programs.bash = {
|
programs.bash = {
|
||||||
enable = true;
|
enable = true;
|
||||||
bashrcExtra = ". ${./.bashrc}";
|
bashrcExtra = ". ${./.bashrc}";
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file = {
|
home.file = {
|
||||||
".bash_aliases".source = ./.bash_aliases;
|
".bash_aliases".source = ./.bash_aliases;
|
||||||
".bash_exec".source = ./.bash_exec;
|
".bash_exec".source = ./.bash_exec;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [
|
home.packages = [
|
||||||
pkgs.starship
|
pkgs.starship
|
||||||
|
pkgs.zoxide
|
||||||
|
pkgs.lsd
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,13 @@
|
||||||
{
|
{pkgs, ...}: {
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
} : {
|
|
||||||
home.file = {
|
home.file = {
|
||||||
".config/alacritty/alacritty.toml".source = ./alacritty.toml;
|
".config/alacritty/alacritty.toml".source = ./alacritty.toml;
|
||||||
};
|
};
|
||||||
|
|
||||||
home.packages = [
|
home.packages = with pkgs; [
|
||||||
pkgs.alacritty
|
alacritty
|
||||||
pkgs.fira-code-nerdfont
|
fira-code-nerdfont
|
||||||
|
fira-code-symbols
|
||||||
];
|
];
|
||||||
|
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
20
themes/pomme.nix
Normal file
20
themes/pomme.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{pkgs, ...}: {
|
||||||
|
home.packages = [pkgs.dconf];
|
||||||
|
dconf.settings = {
|
||||||
|
"org/gnome/desktop/interface" = {
|
||||||
|
color-scheme = "prefer-light";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
gtk = {
|
||||||
|
enable = true;
|
||||||
|
theme = {
|
||||||
|
package = pkgs.whitesur-gtk-theme;
|
||||||
|
name = "WhiteSur-Dark-solid-nord";
|
||||||
|
};
|
||||||
|
iconTheme = {
|
||||||
|
package = pkgs.whitesur-icon-theme;
|
||||||
|
name = "WhiteSur";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -11,5 +11,6 @@
|
||||||
../term
|
../term
|
||||||
../editor
|
../editor
|
||||||
../de
|
../de
|
||||||
|
../themes/pomme.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue