Compare commits

..

67 commits

Author SHA1 Message Date
GaspardCulis
87efdf668e chore(flake): Restore end-rs input to newly updated repo 2024-10-18 13:24:18 +02:00
GaspardCulis
0a7a1c9240 style(themes): s/o la flemme 2024-10-18 09:32:33 +02:00
GaspardCulis
7b8dc455d2 fix(eww->get-connectivity-info): Fixed interface type case statement 2024-10-18 09:25:12 +02:00
GaspardCulis
bfd61936ed fix(flake): Update end-rs input url to a deadlock free fork 2024-10-17 11:03:08 +02:00
GaspardCulis
9210481b26 fix: Removed .envrc. Fixes #1 2024-10-17 09:59:14 +02:00
GaspardCulis
e679417a08 fix(eww -> get-connectivity-info): Fixed wireless info parsing
When SSIDs contain spaces
2024-10-17 09:47:56 +02:00
GaspardCulis
63134d3675 fix(hypr): Fixed wayland.windowManager.hyprland not using hyprland input 2024-10-16 08:58:12 +02:00
GaspardCulis
f3d95b97b6 fix(hypr -> nix): Fixed Hyrland-wrapper HM link path 2024-10-16 08:14:44 +02:00
GaspardCulis
e73992b173 fix(bin->Hyprland + bash->exec): Fix hyrland lowercase alias removal 2024-10-16 08:12:58 +02:00
GaspardCulis
8d4ec36c98 chore(flake.lock): Update flake
Should fix firefox CVE-2024-9680
2024-10-15 22:40:08 +02:00
GaspardCulis
4d046b2eaa fix(Zephyrus): Tweak hardware graphics 2024-10-15 09:30:39 +02:00
GaspardCulis
a09273ec52 fix(eww -> get-connectivity-info): Fixed wifi ssid and signal info 2024-10-15 09:29:21 +02:00
GaspardCulis
5dcef04d04 chore(hypr -> windowrules): Made blueman-manager floaty 2024-10-14 14:59:09 +02:00
GaspardCulis
f97e70b701 feat(hypr -> nix): Added yazi requirements 2024-10-12 20:08:27 +02:00
GaspardCulis
d93dd48a6e fix(Zephyrus): Fixed udisks2 service not being enabled 2024-10-12 19:55:55 +02:00
GaspardCulis
ad013b26f2 fix(eww -> get-connectivity-info): Fixed signal strength calculations 2024-10-12 19:28:37 +02:00
GaspardCulis
4277531d56 refactor(eww): Now use nmcli for network info 2024-10-12 19:23:25 +02:00
GaspardCulis
a5df1080c8 feat(hypr -> windowrules): Made nm-connection-editor floating 2024-10-12 19:10:21 +02:00
GaspardCulis
2451d5c389 fix(hypr): Fixed nm-applet pkg name 2024-10-12 19:08:57 +02:00
GaspardCulis
740d4e82c2 refactor(hypr + Zephyrus): Now use nm-applet instead of nm-tray 2024-10-12 19:07:07 +02:00
GaspardCulis
dc8f7c3385 refactor(Zephyrus): Now use NetworkManager instead of iwd 2024-10-12 18:55:59 +02:00
GaspardCulis
fb3da5ff45 fix(Zephyrus): Added udisks pkg. Fixes udiskie crash 2024-10-12 18:29:15 +02:00
GaspardCulis
5a109c6c90 refactor(Zephyrus): Moved hardware specific config to hardward-configuration.nix 2024-10-12 13:58:55 +02:00
GaspardCulis
8a05c2e2c4 chore(alacritty): Added firacode-symbols dependency 2024-10-09 08:27:12 +02:00
GaspardCulis
7fbd0bac09 fix(eww -> timer): Fixed timer progress reset value 2024-10-08 15:33:32 +02:00
GaspardCulis
dd8a49df5a fix(Zephyrus): Added mem_sleep_default=deep kernel param
To fix suspend method
2024-10-08 14:44:16 +02:00
GaspardCulis
6d2ee57e9c fix(Zephyrus): Enable NVIDIA offload 2024-10-08 14:43:55 +02:00
GaspardCulis
99c5360e9c chore(Zephyrus): Enable opengl 2024-10-08 14:15:44 +02:00
GaspardCulis
028dc4a017 refactor(Zepyrus): Moved NVIDIA config to hardware-configuration.nix 2024-10-08 14:15:07 +02:00
GaspardCulis
5f02467ae5 chore: Update flake 2024-10-08 13:55:22 +02:00
GaspardCulis
a7ef774d98 fix(eww -> timer): Made timer_state.progress more precise 2024-10-07 21:57:33 +02:00
GaspardCulis
07cf5d3d95 feat(eww -> timer): Re-added user notifications 2024-10-07 13:45:05 +02:00
GaspardCulis
8315f641fa fix(hypr): Added missing brightnessctl dependency 2024-10-07 12:30:02 +02:00
GaspardCulis
63d7ad6356 perf(eww -> timer): Now using dash interpreter 2024-10-07 11:00:57 +02:00
GaspardCulis
7daa31ce3a refactor(eww -> timer): Now using bash script for timer logic 2024-10-07 10:44:20 +02:00
GaspardCulis
ebe66d3161 fix(eww): Added missing playerctl pkg dependency 2024-10-02 20:01:09 +02:00
GaspardCulis
49ba9d050b perf(Zephyrus): Now using tmpfs for /tmp 2024-10-02 08:31:07 +02:00
GaspardCulis
8282466524 feat(Zephyrus): Added podman config 2024-10-01 10:04:12 +02:00
GaspardCulis
c1c601da96 refactor(anyrun): Now using anixrun plugin
Thanks to the nix rewrite of the config
2024-10-01 08:45:13 +02:00
GaspardCulis
d50993c00f chore(flake): Added anyrun and anixrun inputs 2024-10-01 08:44:51 +02:00
GaspardCulis
d51ac30742 feat(shell -> bash): Added lsd install 2024-10-01 08:06:55 +02:00
GaspardCulis
871a518740 chore(hypr): Link swaylock-hyprland to local bin folder 2024-09-30 14:09:15 +02:00
GaspardCulis
b9cf39460d fix(Zephyrus): Declare security.pam.swaylock
Fixes `swaylock` not unlocking
2024-09-30 14:08:31 +02:00
GaspardCulis
4f8d559d67 fix(bin -> swaylock-hyprland): Removed absolute binary path 2024-09-30 14:07:57 +02:00
GaspardCulis
16f09b1174 chore(Zephyrus): Added steam related programs to the unfree predicate 2024-09-29 18:46:29 +02:00
GaspardCulis
2b3fcd3168 feat(helix): Added keybind for cargo build 2024-09-25 09:37:27 +02:00
GaspardCulis
6357f999e7 fix(hypr): Cursor theme now defined with home.pointerCursor 2024-09-23 15:19:39 +02:00
Culis Gaspard
b8e03ddcdb feat(shell -> bash): Added zoxide nix package dependency 2024-09-23 14:43:54 +02:00
GaspardCulis
d7d00bb1a3 chore(Zephyrus): Added wget system package 2024-09-22 17:48:51 +02:00
GaspardCulis
282e832af0 feat(Zephyrus): Default to zen kernel 2024-09-22 11:46:14 +02:00
GaspardCulis
2b3a7a32da fix(hypr): Removed wl-clipboard-rs in favor of wl-clipboard
This is so sad, the Rust version does not support images yet
2024-09-22 11:22:36 +02:00
GaspardCulis
15edbe62cb fix(eww): get-volume script now uses pipewire monitor
Instead of the pulseaudio one
2024-09-22 11:05:58 +02:00
GaspardCulis
82b06820f2 refactor(eww): Merged bluetooth and network scripts into one connectivity script
Fixes issues with dbus monitoring
2024-09-22 10:56:04 +02:00
GaspardCulis
33143c3e3e fix(flake): Update end-rs input url to the official repo
Instead of my own fork
2024-09-22 10:16:28 +02:00
GaspardCulis
4011185682 fix(hypr): Fixed gamemode.sh script not being linked executable 2024-09-22 10:03:11 +02:00
GaspardCulis
f1b7186ca0 fix(Zephyrus): Now using pipewire instead of pulseaudio 2024-09-22 09:41:24 +02:00
GaspardCulis
5d19cba142 fix(hypr): Fixed toogle refresh rate script binding path 2024-09-22 00:42:27 +02:00
GaspardCulis
2b578bcf5f fix(hypr): Fix gamemode.sh script not being linked by HM 2024-09-21 16:09:16 +02:00
GaspardCulis
92675c329d fix(eww): Fixed notification widget close icon path
Now stored locally as asset
2024-09-21 13:57:05 +02:00
GaspardCulis
13745f0b75 refactor(end-rs + hypr): Moved Qogir icon theme install to end-rs nix config 2024-09-21 13:49:53 +02:00
GaspardCulis
54842d44aa fix(end-rs): Added NixOS specific icon paths 2024-09-21 13:48:49 +02:00
GaspardCulis
301bded461 fix(end-rs): Fixed eww binary path config field 2024-09-21 13:29:11 +02:00
GaspardCulis
331806553c fix(hypr -> nix): Import end-rs config 2024-09-21 13:25:34 +02:00
GaspardCulis
452d6a3226 feat(end-rs): Added nix specific config 2024-09-21 13:25:01 +02:00
GaspardCulis
2d716a990b fix(bin -> wallpaperctl): Fixed shebang 2024-09-21 12:42:54 +02:00
GaspardCulis
d891f676a8 fix(hypr): Fixed "wallpaperctl" script not being linked by HM 2024-09-21 12:41:12 +02:00
6d606f95be Merge pull request 'feat/nix' (#3) from feat/nix into main
Reviewed-on: #3
2024-09-20 22:35:46 +02:00
33 changed files with 598 additions and 267 deletions

2
.envrc
View file

@ -1,2 +0,0 @@
#!/usr/bin/env bash
use flake

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
venv/ venv/
.direnv .direnv
.envrc

View 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

View file

@ -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}")
) )
) )

View file

@ -15,6 +15,7 @@
pkgs.dash pkgs.dash
pkgs.socat pkgs.socat
pkgs.pamixer pkgs.pamixer
pkgs.playerctl
pkgs.pavucontrol pkgs.pavucontrol
]; ];
} }

View file

@ -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 '')

View file

@ -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

View file

@ -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

View 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

View file

@ -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
View 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

View file

@ -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}")
) )
) )
) )

View file

@ -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 \
"$@" "$@"

View file

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# Run swaylock # Run swaylock
exec /usr/bin/swaylock \ exec swaylock \
"$@" \ "$@" \
--indicator \ --indicator \
--daemonize \ --daemonize \

View file

@ -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:

View file

@ -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
]; ];
} }

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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)

View file

@ -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"]

View file

@ -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": {

View file

@ -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 = {

View file

@ -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";
}; };

View file

@ -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

View file

@ -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;
};
} }

View file

@ -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
View 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
];
}

View file

@ -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

View file

@ -1,7 +1,4 @@
{ {pkgs, ...}: {
pkgs,
...
} : {
programs.bash = { programs.bash = {
enable = true; enable = true;
bashrcExtra = ". ${./.bashrc}"; bashrcExtra = ". ${./.bashrc}";
@ -14,6 +11,7 @@
home.packages = [ home.packages = [
pkgs.starship pkgs.starship
pkgs.zoxide
pkgs.lsd
]; ];
} }

View file

@ -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
View 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";
};
};
}

View file

@ -11,5 +11,6 @@
../term ../term
../editor ../editor
../de ../de
../themes/pomme.nix
]; ];
} }