Compare commits
13
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca70263415 | ||
|
|
48f484cb85 | ||
|
|
5b480bd0d6 | ||
|
|
06f1412930 | ||
|
|
c921adc4be | ||
|
|
b1824d6f5f | ||
|
|
9c22bed2fc | ||
|
|
610993dc8b | ||
|
|
db3ffae41e | ||
|
|
21cf4a7a65 | ||
|
|
14c25a0b1d | ||
|
|
b4755b9a8a | ||
|
|
aee9682d64 |
No files matched your search
@@ -19,6 +19,8 @@ home-manager switch --flake .#work
|
|||||||
|
|
||||||
### virtual machines
|
### virtual machines
|
||||||
|
|
||||||
|
With a Niri desktop (requires host OpenGL support):
|
||||||
|
|
||||||
```
|
```
|
||||||
nix build -L '.#nixosConfigurations.vm.config.system.build.vmWithDisko'
|
nix build -L '.#nixosConfigurations.vm.config.system.build.vmWithDisko'
|
||||||
./result/bin/disko-vm
|
./result/bin/disko-vm
|
||||||
|
|||||||
@@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
options="nl:en\nen:nl\nnl:fr\nfr:nl\nen:fr\nfr:en\nnl:de\nde:nl"
|
|
||||||
|
|
||||||
selected=$(echo -en "$options" | rofi -dmenu -p "source?:target?" -i)
|
|
||||||
|
|
||||||
# notify-send --app-name= -t 3000 "$(trans "$selected" -b "$(rofi -dmenu -p "$selected" &)" \
|
|
||||||
# | tr -d '\n' \
|
|
||||||
# | xclip -sel clip -f)"
|
|
||||||
|
|
||||||
translation="$(trans "$selected" -b "$(rofi -dmenu -p "$selected" &)" | tr -d '\n')"
|
|
||||||
|
|
||||||
echo -e "Copy" | rofi -p "translation" -dmenu -i -mesg "$translation" | xargs -I{} echo -n "$translation" | xclip -selection clipboard
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
|
|
||||||
import subprocess
|
|
||||||
import sys
|
|
||||||
|
|
||||||
DEFAULT_TEMPERATURE = 3500
|
|
||||||
|
|
||||||
try:
|
|
||||||
with open("/tmp/temperature", "r") as temp_file:
|
|
||||||
current_temperature = int(temp_file.read())
|
|
||||||
except FileNotFoundError:
|
|
||||||
current_temperature = DEFAULT_TEMPERATURE
|
|
||||||
|
|
||||||
# If no argument is given print the current temperature
|
|
||||||
if len(sys.argv) == 1:
|
|
||||||
print(current_temperature)
|
|
||||||
sys.exit(0)
|
|
||||||
elif len(sys.argv) != 2:
|
|
||||||
print(
|
|
||||||
"""
|
|
||||||
Usage:
|
|
||||||
|
|
||||||
screen-temperature
|
|
||||||
print current temperature
|
|
||||||
|
|
||||||
screen-temperature <temperature>
|
|
||||||
set screen temperature to <temperature>
|
|
||||||
|
|
||||||
screen-temperature <+|-><temperature>
|
|
||||||
increase or decrease screen temperature by <temperature>
|
|
||||||
"""
|
|
||||||
)
|
|
||||||
sys.exit(1)
|
|
||||||
|
|
||||||
temperature_change = sys.argv[1]
|
|
||||||
|
|
||||||
if temperature_change.startswith("+"):
|
|
||||||
new_temperature = current_temperature + int(temperature_change[1:])
|
|
||||||
elif temperature_change.startswith("-"):
|
|
||||||
new_temperature = current_temperature - int(temperature_change[1:])
|
|
||||||
else:
|
|
||||||
new_temperature = int(temperature_change)
|
|
||||||
|
|
||||||
try:
|
|
||||||
subprocess.run(["redshift", "-O", str(new_temperature), "-P"], check=True)
|
|
||||||
with open("/tmp/temperature", "w") as temp_file:
|
|
||||||
temp_file.write(str(new_temperature) + "\n")
|
|
||||||
# Send notification
|
|
||||||
subprocess.run(["notify-send", str(new_temperature) + "K"])
|
|
||||||
except subprocess.CalledProcessError:
|
|
||||||
print("Error: could not set screen temperature.")
|
|
||||||
sys.exit(1)
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
Xcursor.size: 16
|
|
||||||
@@ -1,57 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
userresources=$HOME/.config/X11/Xresources
|
|
||||||
usermodmap=$HOME/.config/X11/Xmodmap
|
|
||||||
sysresources=/etc/X11/xinit/.Xresources
|
|
||||||
sysmodmap=/etc/X11/xinit/.Xmodmap
|
|
||||||
|
|
||||||
if [ -f $sysresources ]; then xrdb -merge $sysresources; fi
|
|
||||||
if [ -f $sysmodmap ]; then xmodmap $sysmodmap; fi
|
|
||||||
if [ -f "$userresources" ]; then xrdb -merge "$userresources"; fi
|
|
||||||
if [ -f "$usermodmap" ]; then xmodmap "$usermodmap"; fi
|
|
||||||
|
|
||||||
# start some nice programs
|
|
||||||
if [ -d /etc/X11/xinit/xinitrc.d ] ; then
|
|
||||||
for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do
|
|
||||||
[ -x "$f" ] && . "$f"
|
|
||||||
done
|
|
||||||
unset f
|
|
||||||
fi
|
|
||||||
|
|
||||||
# ______________________________
|
|
||||||
|
|
||||||
xset -b # disable bell
|
|
||||||
xset r rate 200 30 # adjust typematic delay & rate
|
|
||||||
|
|
||||||
# Shared
|
|
||||||
xbindkeys -f "$HOME"/.config/xbindkeys/config
|
|
||||||
xbanish &
|
|
||||||
redshift -o -O "$(cat /tmp/temperature)" & # Run redshift in one shot mode
|
|
||||||
|
|
||||||
# DWM
|
|
||||||
# dwmblocks &
|
|
||||||
# udiskie &
|
|
||||||
# # No compositor
|
|
||||||
# # xsetroot -solid "#0a0a0a"
|
|
||||||
# # With compositor
|
|
||||||
# # hsetroot -solid "#0a0a0a"
|
|
||||||
# # picom &
|
|
||||||
# # execute dwm in a loop
|
|
||||||
# while true; do
|
|
||||||
# dwm 2> ~/.dwm.log
|
|
||||||
# done
|
|
||||||
|
|
||||||
# Openbox
|
|
||||||
# # udiskie --tray &
|
|
||||||
# # plank &
|
|
||||||
# # picom &
|
|
||||||
# # hsetroot -solid "#555555"
|
|
||||||
# # openbox
|
|
||||||
|
|
||||||
# Xmonad
|
|
||||||
xsetroot -solid "#0a0a0a"
|
|
||||||
xsetroot -cursor_name left_ptr
|
|
||||||
picom &
|
|
||||||
trayer --edge top --align right --SetDockType true --SetPartialStrut true \
|
|
||||||
--expand true --width 10 --transparent true --tint 0x111111 --height 25 &
|
|
||||||
exec xmonad
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
[global]
|
|
||||||
geometry="0-0+24"
|
|
||||||
monitor=0
|
|
||||||
follow=keyboard
|
|
||||||
indicate_hidden=yes
|
|
||||||
notification_height=0
|
|
||||||
padding=8
|
|
||||||
horizontal_padding=8
|
|
||||||
frame_width=1
|
|
||||||
frame_color="#333"
|
|
||||||
separator_height=1
|
|
||||||
idle_threshold=120
|
|
||||||
font=Iosevka Term SS08 12
|
|
||||||
markup=full
|
|
||||||
format="%s\n%b"
|
|
||||||
dmenu=/usr/bin/dmenu -p dunst:
|
|
||||||
browser=/usr/bin/brave -new-tab
|
|
||||||
verbosity=info
|
|
||||||
|
|
||||||
[urgency_low]
|
|
||||||
background="#111"
|
|
||||||
foreground="#aaa"
|
|
||||||
timeout=10
|
|
||||||
|
|
||||||
[urgency_normal]
|
|
||||||
background="#111"
|
|
||||||
foreground="#aaa"
|
|
||||||
timeout=10
|
|
||||||
|
|
||||||
[urgency_critical]
|
|
||||||
background="#111"
|
|
||||||
foreground="#fff"
|
|
||||||
frame_color="#f00"
|
|
||||||
timeout=0
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
experimental-features = nix-command flakes
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
backend = "glx";
|
|
||||||
glx-no-stencil = false;
|
|
||||||
glx-copy-from-font = false;
|
|
||||||
glx-no-rebind-pixmap = true;
|
|
||||||
|
|
||||||
shadow = true;
|
|
||||||
shadow-radius = 16;
|
|
||||||
shadow-opacity = 0.5;
|
|
||||||
shadow-offset-x = -16;
|
|
||||||
shadow-offset-y = -16;
|
|
||||||
shadow-color = "#000000"
|
|
||||||
|
|
||||||
active-opacity = 1;
|
|
||||||
inactive-opacity = 0.62;
|
|
||||||
frame-opacity = 1;
|
|
||||||
inactive-opacity-override = false;
|
|
||||||
|
|
||||||
fading = true;
|
|
||||||
fade-in-step = 0.02;
|
|
||||||
fade-out-step = 0.02;
|
|
||||||
fade-delta = 4
|
|
||||||
|
|
||||||
shadow-exclude = ["class_g = 'Rofi'", "class_g = 'trayer'"];
|
|
||||||
focus-exclude = ["class_g = 'Rofi'", "class_g = 'albert'", "class_g = 'trayer'"];
|
|
||||||
blur-background-exclude = ["class_g = 'Rofi'", "class_g = 'albert'", "class_g = 'trayer'"];
|
|
||||||
|
|
||||||
blur: {
|
|
||||||
method = "dual_kawase";
|
|
||||||
strength = 8;
|
|
||||||
background = true;
|
|
||||||
background-frame = true;
|
|
||||||
background-fixed = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
wintypes:
|
|
||||||
{
|
|
||||||
dock = { shadow = false; };
|
|
||||||
dnd = { shadow = false; };
|
|
||||||
tooltip = { shadow = false; };
|
|
||||||
menu = { opacity = false; };
|
|
||||||
dropdown_menu = { opacity = false; };
|
|
||||||
popup_menu = { opacity = false; };
|
|
||||||
utility = { opacity = false; };
|
|
||||||
};
|
|
||||||
@@ -1,159 +0,0 @@
|
|||||||
[colors]
|
|
||||||
background = #cccccc
|
|
||||||
background-alt = #aaaaaa
|
|
||||||
foreground = #111111
|
|
||||||
primary = #111111
|
|
||||||
secondary = #555555
|
|
||||||
disabled = #888888
|
|
||||||
|
|
||||||
[bar/example]
|
|
||||||
height = 16pt
|
|
||||||
radius = 0
|
|
||||||
|
|
||||||
background = ${colors.background}
|
|
||||||
foreground = ${colors.foreground}
|
|
||||||
|
|
||||||
padding-left = 0pt
|
|
||||||
module-margin = 1
|
|
||||||
|
|
||||||
separator = " "
|
|
||||||
separator-foreground = ${colors.disabled}
|
|
||||||
|
|
||||||
font-0 = Iosevka Term SS08:size=12;4
|
|
||||||
|
|
||||||
modules-left = xworkspaces xwindow
|
|
||||||
modules-center = project pomo
|
|
||||||
modules-right = filesystem pulseaudio memory cpu wlan eth date dunst-snooze xkeyboard battery
|
|
||||||
|
|
||||||
cursor-click = pointer
|
|
||||||
cursor-scroll = ns-resize
|
|
||||||
|
|
||||||
enable-ipc = true
|
|
||||||
|
|
||||||
[module/xworkspaces]
|
|
||||||
type = internal/xworkspaces
|
|
||||||
|
|
||||||
label-active = %name%
|
|
||||||
label-active-background = ${colors.background-alt}
|
|
||||||
label-active-underline= ${colors.primary}
|
|
||||||
label-active-padding = 4pt
|
|
||||||
|
|
||||||
label-occupied = %name%
|
|
||||||
label-occupied-padding = 4pt
|
|
||||||
|
|
||||||
label-urgent = %name%
|
|
||||||
label-urgent-background = ${colors.alert}
|
|
||||||
label-urgent-padding = 4pt
|
|
||||||
|
|
||||||
label-empty = %name%
|
|
||||||
label-empty-foreground = ${colors.disabled}
|
|
||||||
label-empty-padding = 4pt
|
|
||||||
|
|
||||||
[module/xwindow]
|
|
||||||
type = internal/xwindow
|
|
||||||
label = %title:0:60:...%
|
|
||||||
|
|
||||||
[module/filesystem]
|
|
||||||
type = internal/fs
|
|
||||||
interval = 25
|
|
||||||
|
|
||||||
mount-0 = /
|
|
||||||
|
|
||||||
label-mounted = %mountpoint% %percentage_used%%
|
|
||||||
label-unmounted = %mountpoint% not mounted
|
|
||||||
label-unmounted-foreground = ${colors.disabled}
|
|
||||||
|
|
||||||
[module/pulseaudio]
|
|
||||||
type = internal/pulseaudio
|
|
||||||
|
|
||||||
format-volume-prefix = "VOL "
|
|
||||||
format-volume-prefix-foreground = ${colors.primary}
|
|
||||||
format-volume = <label-volume>
|
|
||||||
|
|
||||||
label-volume = %percentage%%
|
|
||||||
|
|
||||||
label-muted = muted
|
|
||||||
label-muted-foreground = ${colors.disabled}
|
|
||||||
|
|
||||||
[module/memory]
|
|
||||||
type = internal/memory
|
|
||||||
interval = 2
|
|
||||||
format-prefix = "RAM "
|
|
||||||
format-prefix-foreground = ${colors.primary}
|
|
||||||
label = %percentage_used:2%%
|
|
||||||
|
|
||||||
[module/cpu]
|
|
||||||
type = internal/cpu
|
|
||||||
interval = 2
|
|
||||||
format-prefix = "CPU "
|
|
||||||
format-prefix-foreground = ${colors.primary}
|
|
||||||
label = %percentage:2%%
|
|
||||||
|
|
||||||
[network-base]
|
|
||||||
type = internal/network
|
|
||||||
interval = 5
|
|
||||||
format-connected = <label-connected>
|
|
||||||
format-disconnected = <label-disconnected>
|
|
||||||
label-disconnected = %ifname% disconnected
|
|
||||||
|
|
||||||
[module/wlan]
|
|
||||||
inherit = network-base
|
|
||||||
interface-type = wireless
|
|
||||||
label-connected = %ifname% %local_ip% %essid%
|
|
||||||
|
|
||||||
[module/eth]
|
|
||||||
inherit = network-base
|
|
||||||
interface-type = wired
|
|
||||||
label-connected = %ifname% %local_ip%
|
|
||||||
|
|
||||||
[module/date]
|
|
||||||
type = internal/date
|
|
||||||
interval = 1
|
|
||||||
date = W%V %d %b %H:%M
|
|
||||||
date-alt = %Y-%m-%d %H:%M:%S
|
|
||||||
label = %date%
|
|
||||||
label-foreground = ${colors.primary}
|
|
||||||
|
|
||||||
[module/pomo]
|
|
||||||
type = custom/script
|
|
||||||
exec = ~/.bin/sb-pomo
|
|
||||||
label-background = #fff
|
|
||||||
interval = 1
|
|
||||||
|
|
||||||
[module/focus-mode]
|
|
||||||
type = custom/script
|
|
||||||
exec = [[ -f /tmp/focus-mode ]] && echo "Focus"
|
|
||||||
label-background = #af0
|
|
||||||
interval = 1
|
|
||||||
|
|
||||||
[module/project]
|
|
||||||
type = custom/script
|
|
||||||
exec = cat ~/.project
|
|
||||||
label-background = #fa0
|
|
||||||
interval = 1000
|
|
||||||
|
|
||||||
[module/xkeyboard]
|
|
||||||
type = internal/xkeyboard
|
|
||||||
label-layout = %name% %variant%
|
|
||||||
blacklist-0 = num lock
|
|
||||||
blacklist-1 = scroll lock
|
|
||||||
|
|
||||||
[module/battery]
|
|
||||||
type = internal/battery
|
|
||||||
full-at = 99
|
|
||||||
low-at = 20
|
|
||||||
battery = BAT0
|
|
||||||
adapter = ADP1
|
|
||||||
poll-interval = 5
|
|
||||||
label-charging = .%percentage%++
|
|
||||||
format-low = <label-low><animation-low>
|
|
||||||
label-discharging = .%percentage%-- %time% %consumption%W
|
|
||||||
animation-low-0 = !
|
|
||||||
animation-low-1 = .
|
|
||||||
animation-low-framerate = 200
|
|
||||||
|
|
||||||
[settings]
|
|
||||||
screenchange-reload = true
|
|
||||||
pseudo-transparency = true
|
|
||||||
|
|
||||||
; vim:ft=dosini
|
|
||||||
@@ -1,188 +0,0 @@
|
|||||||
[colors]
|
|
||||||
background = #cccccc
|
|
||||||
background-alt = #aaaaaa
|
|
||||||
foreground = #111111
|
|
||||||
primary = #111111
|
|
||||||
secondary = #555555
|
|
||||||
alert = #A54242
|
|
||||||
disabled = #888888
|
|
||||||
|
|
||||||
[bar/example]
|
|
||||||
height = 16pt
|
|
||||||
radius = 0
|
|
||||||
|
|
||||||
background = ${colors.background}
|
|
||||||
foreground = ${colors.foreground}
|
|
||||||
|
|
||||||
line-size = 0pt
|
|
||||||
|
|
||||||
border-size = 0pt
|
|
||||||
border-color = #00000000
|
|
||||||
|
|
||||||
padding-left = 0pt
|
|
||||||
padding-right = 4pt
|
|
||||||
module-margin = 1
|
|
||||||
|
|
||||||
separator = " "
|
|
||||||
separator-foreground = ${colors.disabled}
|
|
||||||
|
|
||||||
font-0 = Iosevka Term SS08:size=12;4
|
|
||||||
|
|
||||||
modules-left = xworkspaces xwindow
|
|
||||||
modules-center = project pomo
|
|
||||||
modules-right = filesystem pulseaudio memory cpu wlan eth date dunst-snooze xkeyboard battery
|
|
||||||
|
|
||||||
cursor-click = pointer
|
|
||||||
cursor-scroll = ns-resize
|
|
||||||
|
|
||||||
enable-ipc = true
|
|
||||||
|
|
||||||
[module/xworkspaces]
|
|
||||||
type = internal/xworkspaces
|
|
||||||
|
|
||||||
label-active = %name%
|
|
||||||
label-active-background = ${colors.background-alt}
|
|
||||||
label-active-underline= ${colors.primary}
|
|
||||||
label-active-padding = 4pt
|
|
||||||
|
|
||||||
label-occupied = %name%
|
|
||||||
label-occupied-padding = 4pt
|
|
||||||
|
|
||||||
label-urgent = %name%
|
|
||||||
label-urgent-background = ${colors.alert}
|
|
||||||
label-urgent-padding = 4pt
|
|
||||||
|
|
||||||
label-empty = %name%
|
|
||||||
label-empty-foreground = ${colors.disabled}
|
|
||||||
label-empty-padding = 4pt
|
|
||||||
|
|
||||||
enable-scroll = false
|
|
||||||
enable-click = false
|
|
||||||
|
|
||||||
[module/xwindow]
|
|
||||||
type = internal/xwindow
|
|
||||||
label = %title:0:60:...%
|
|
||||||
|
|
||||||
[module/filesystem]
|
|
||||||
type = internal/fs
|
|
||||||
interval = 25
|
|
||||||
|
|
||||||
mount-0 = /
|
|
||||||
|
|
||||||
label-mounted = %mountpoint% %percentage_used%%
|
|
||||||
label-unmounted = %mountpoint% not mounted
|
|
||||||
label-unmounted-foreground = ${colors.disabled}
|
|
||||||
|
|
||||||
[module/pulseaudio]
|
|
||||||
type = internal/pulseaudio
|
|
||||||
|
|
||||||
format-volume-prefix = "VOL "
|
|
||||||
format-volume-prefix-foreground = ${colors.primary}
|
|
||||||
format-volume = <label-volume>
|
|
||||||
|
|
||||||
label-volume = %percentage%%
|
|
||||||
|
|
||||||
label-muted = muted
|
|
||||||
label-muted-foreground = ${colors.disabled}
|
|
||||||
|
|
||||||
[module/memory]
|
|
||||||
type = internal/memory
|
|
||||||
interval = 2
|
|
||||||
format-prefix = "RAM "
|
|
||||||
format-prefix-foreground = ${colors.primary}
|
|
||||||
label = %percentage_used:2%%
|
|
||||||
|
|
||||||
[module/cpu]
|
|
||||||
type = internal/cpu
|
|
||||||
interval = 2
|
|
||||||
format-prefix = "CPU "
|
|
||||||
format-prefix-foreground = ${colors.primary}
|
|
||||||
label = %percentage:2%%
|
|
||||||
|
|
||||||
[network-base]
|
|
||||||
type = internal/network
|
|
||||||
interval = 5
|
|
||||||
format-connected = <label-connected>
|
|
||||||
format-disconnected = <label-disconnected>
|
|
||||||
label-disconnected = %ifname% disconnected
|
|
||||||
|
|
||||||
[module/wlan]
|
|
||||||
inherit = network-base
|
|
||||||
interface-type = wireless
|
|
||||||
label-connected = %ifname% %local_ip% %essid%
|
|
||||||
|
|
||||||
[module/eth]
|
|
||||||
inherit = network-base
|
|
||||||
interface-type = wired
|
|
||||||
label-connected = %ifname% %local_ip%
|
|
||||||
|
|
||||||
[module/date]
|
|
||||||
type = internal/date
|
|
||||||
interval = 1
|
|
||||||
date = W%V %d %b %H:%M
|
|
||||||
date-alt = %Y-%m-%d %H:%M:%S
|
|
||||||
label = %date%
|
|
||||||
label-foreground = ${colors.primary}
|
|
||||||
|
|
||||||
; [module/dunst-snooze]
|
|
||||||
; type = custom/script
|
|
||||||
; exec = ~/.bin/polybar/polybar-scripts/dunst-snooze/dunst-snooze.sh
|
|
||||||
; interval = 1
|
|
||||||
; click-left = ~/.bin/polybar/polybar-scripts/dunst-snooze/dunst-snooze.sh --toggle &
|
|
||||||
|
|
||||||
; [module/info-camera-mic]
|
|
||||||
; type = custom/script
|
|
||||||
; exec = ~.bin/polybar/polybar-scripts/info-camera-mic/info-camera-mic.sh
|
|
||||||
; interval = 1
|
|
||||||
|
|
||||||
[module/player-mpris]
|
|
||||||
type = custom/script
|
|
||||||
exec = ~/.bin/polybar/polybar-scripts/player-mpris-simple/player-mpris-simple.sh
|
|
||||||
interval = 1
|
|
||||||
click-left = playerctl previous &
|
|
||||||
click-right = playerctl next &
|
|
||||||
click-middle = playerctl play-pause &
|
|
||||||
|
|
||||||
[module/pomo]
|
|
||||||
type = custom/script
|
|
||||||
exec = ~/.bin/sb-pomo
|
|
||||||
label-background = #fa0
|
|
||||||
interval = 1
|
|
||||||
|
|
||||||
[module/focus-mode]
|
|
||||||
type = custom/script
|
|
||||||
exec = [[ -f /tmp/focus-mode ]] && echo "Focus"
|
|
||||||
label-background = #af0
|
|
||||||
interval = 1
|
|
||||||
|
|
||||||
[module/project]
|
|
||||||
type = custom/script
|
|
||||||
exec = cat ~/.project
|
|
||||||
label-background = #fa0
|
|
||||||
interval = 1000
|
|
||||||
|
|
||||||
[module/xkeyboard]
|
|
||||||
type = internal/xkeyboard
|
|
||||||
label-layout = %name% %variant%
|
|
||||||
blacklist-0 = num lock
|
|
||||||
blacklist-1 = scroll lock
|
|
||||||
|
|
||||||
[module/battery]
|
|
||||||
type = internal/battery
|
|
||||||
full-at = 99
|
|
||||||
low-at = 20
|
|
||||||
battery = BAT0
|
|
||||||
adapter = ADP1
|
|
||||||
poll-interval = 5
|
|
||||||
label-charging = .%percentage%++
|
|
||||||
format-low = <label-low><animation-low>
|
|
||||||
label-discharging = .%percentage%-- %time% %consumption%W
|
|
||||||
animation-low-0 = !
|
|
||||||
animation-low-1 = .
|
|
||||||
animation-low-framerate = 200
|
|
||||||
|
|
||||||
[settings]
|
|
||||||
screenchange-reload = true
|
|
||||||
pseudo-transparency = true
|
|
||||||
|
|
||||||
; vim:ft=dosini
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
[Unit]
|
|
||||||
Description=redshift needs to get a (geo)clue
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
ExecStart=/usr/lib/geoclue-2.0/demos/agent
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=default.target
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
# Headphone controls for spotify
|
|
||||||
"playerctl --player=ncspot next --player=spotify next"
|
|
||||||
m:0x0 + c:171
|
|
||||||
XF86AudioNext
|
|
||||||
"playerctl --player=ncspot previous --player=spotify previous"
|
|
||||||
m:0x0 + c:173
|
|
||||||
XF86AudioPrev
|
|
||||||
"playerctl --player=ncspot pause --player=spotify pause"
|
|
||||||
m:0x0 + c:209
|
|
||||||
XF86AudioPause
|
|
||||||
"playerctl --player=ncspot play --player=spotify play"
|
|
||||||
m:0x0 + c:208
|
|
||||||
XF86AudioPlay
|
|
||||||
|
|
||||||
"xrandr --auto"
|
|
||||||
m:0x0 + c:76 # F10
|
|
||||||
|
|
||||||
"feh ~/.vortex-core/l0.png"
|
|
||||||
m:0x0 + c:138
|
|
||||||
SunProps
|
|
||||||
@@ -1,303 +0,0 @@
|
|||||||
-- {{{ Imports
|
|
||||||
|
|
||||||
import Control.Monad (liftM2)
|
|
||||||
import Data.Map qualified as M
|
|
||||||
import XMonad
|
|
||||||
import XMonad.Actions.CopyWindow (copyToAll, killAllOtherCopies)
|
|
||||||
import XMonad.Actions.FloatSnap
|
|
||||||
import XMonad.Actions.Submap
|
|
||||||
import XMonad.Hooks.EwmhDesktops
|
|
||||||
import XMonad.Hooks.ManageDocks
|
|
||||||
import XMonad.Hooks.ManageHelpers
|
|
||||||
import XMonad.Hooks.OnPropertyChange (onXPropertyChange)
|
|
||||||
import XMonad.Hooks.StatusBar
|
|
||||||
import XMonad.Hooks.StatusBar.PP
|
|
||||||
import XMonad.Hooks.WindowSwallowing (swallowEventHook)
|
|
||||||
import XMonad.Layout.CenteredIfSingle
|
|
||||||
import XMonad.Layout.IndependentScreens
|
|
||||||
import XMonad.Layout.LayoutHints (hintsEventHook, layoutHints)
|
|
||||||
import XMonad.Layout.PerScreen
|
|
||||||
import XMonad.Layout.PerWorkspace
|
|
||||||
import XMonad.Layout.Renamed
|
|
||||||
import XMonad.Layout.Spacing
|
|
||||||
import XMonad.Layout.Tabbed
|
|
||||||
import XMonad.Layout.ThreeColumns
|
|
||||||
import XMonad.StackSet qualified as W
|
|
||||||
import XMonad.Util.EZConfig
|
|
||||||
import XMonad.Util.Hacks qualified as Hacks
|
|
||||||
import XMonad.Util.Loggers
|
|
||||||
import XMonad.Util.Paste
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Statusbar {{{
|
|
||||||
|
|
||||||
pp :: PP
|
|
||||||
pp =
|
|
||||||
def
|
|
||||||
{ ppSep = tertiaryColor " ",
|
|
||||||
ppCurrent = brackitify,
|
|
||||||
ppHidden = secondaryColor,
|
|
||||||
ppHiddenNoWindows = tertiaryColor,
|
|
||||||
ppUrgent = red . wrap (yellow "!") (yellow "!"),
|
|
||||||
ppLayout = id,
|
|
||||||
ppTitle = shorten 80,
|
|
||||||
ppTitleSanitize = xmobarStrip,
|
|
||||||
ppOrder = \[workspaces, layout, windows, _] -> [layout],
|
|
||||||
ppExtras = [logTitles formatFocused formatUnfocused]
|
|
||||||
}
|
|
||||||
where
|
|
||||||
brackitify = wrap "〈" "〉"
|
|
||||||
formatFocused = secondaryColor . ppWindow
|
|
||||||
formatUnfocused = tertiaryColor . ppWindow
|
|
||||||
|
|
||||||
ppWindow = xmobarRaw . (\w -> if null w then "Untitled" else w) . shorten 16
|
|
||||||
|
|
||||||
primaryColor = xmobarColor "#000000" ""
|
|
||||||
secondaryColor = xmobarColor "#333333" ""
|
|
||||||
tertiaryColor = xmobarColor "#555555" ""
|
|
||||||
yellow = xmobarColor "#ff0" ""
|
|
||||||
red = xmobarColor "#ff5555" ""
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Workspaces & screens {{{
|
|
||||||
|
|
||||||
-- Shift to workspace and view workspace
|
|
||||||
shiftAndView = doF . liftM2 (.) W.greedyView W.shift
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Hooks {{{
|
|
||||||
|
|
||||||
-- startupHook {{{
|
|
||||||
myStartupHook =
|
|
||||||
do
|
|
||||||
spawn "killall -q polybar; parallel ::: 'polybar -r top' 'polybar -r bottom'"
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- manageHook {{{
|
|
||||||
myManageHook :: ManageHook
|
|
||||||
myManageHook =
|
|
||||||
composeAll
|
|
||||||
[ isDialog --> doCenterFloat,
|
|
||||||
className =? "Zathura" --> doShift "1_info",
|
|
||||||
className =? "firefox" --> shiftAndView "1_www",
|
|
||||||
className =? "firefoxdeveloperedition" --> shiftAndView "1_www",
|
|
||||||
className =? "Anki" --> shiftAndView "1_etc",
|
|
||||||
className =? "Obsidian" --> shiftAndView "1_etc",
|
|
||||||
className =? "Launcher" --> doRectFloat (W.RationalRect 0.05 0.4 0.9 0.5),
|
|
||||||
className =? "Zettelkasten" --> doRectFloat (W.RationalRect 0.05 0.4 0.9 0.5),
|
|
||||||
className =? "Calculator" --> doCenterFloat,
|
|
||||||
className =? "feh" --> doCenterFloat,
|
|
||||||
-- Center matplotlib and prevent focus stealing
|
|
||||||
-- className =? "matplotlib" --> doRectFloat (W.RationalRect 0.5 0.5 0.5 0.5),
|
|
||||||
className =? "matplotlib" --> doCenterFloat,
|
|
||||||
className =? "Matplotlib" --> doCenterFloat,
|
|
||||||
className =? "Xournalpp" --> doRectFloat (W.RationalRect 0.5 0.5 0.5 0.5),
|
|
||||||
className =? "KeePassXC" --> doRectFloat (W.RationalRect 0.1 0.1 0.8 0.8),
|
|
||||||
className =? "flameshot" --> doRectFloat (W.RationalRect 0.1 0.1 0.8 0.8)
|
|
||||||
]
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- dynamicManageHook {{{
|
|
||||||
myDynamicManageHook :: ManageHook
|
|
||||||
myDynamicManageHook =
|
|
||||||
composeAll
|
|
||||||
[
|
|
||||||
title =? "Zettelkasten — Firefox Developer Edition" --> doShift "1_sh"
|
|
||||||
]
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- layoutHook {{{
|
|
||||||
myLayoutHook =
|
|
||||||
avoidStruts $
|
|
||||||
smartSpacingWithEdge 4 $
|
|
||||||
layoutHints $
|
|
||||||
onWorkspace "1_sh" (Tall nmaster delta 0.8) $
|
|
||||||
ifWider smallWidth (tWide ||| c3mWide ||| f) t
|
|
||||||
where
|
|
||||||
smallWidth = 1920
|
|
||||||
|
|
||||||
-- Tall layouts
|
|
||||||
tWide =
|
|
||||||
centeredIfSingle 0.62 1 t
|
|
||||||
t =
|
|
||||||
named "[]+" $
|
|
||||||
Tall nmaster delta ratio
|
|
||||||
|
|
||||||
-- Column layouts
|
|
||||||
c3mWide =
|
|
||||||
centeredIfSingle 0.62 1 c3m
|
|
||||||
c3m =
|
|
||||||
named "[|]" $
|
|
||||||
ThreeColMid nmaster delta ratio
|
|
||||||
|
|
||||||
-- Fullscreen layouts
|
|
||||||
f = named "[+]" Full
|
|
||||||
|
|
||||||
-- Modifiers
|
|
||||||
named n = renamed [Replace n]
|
|
||||||
nmaster = 1
|
|
||||||
ratio = 0.62
|
|
||||||
delta = 4 / 100
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- handleEventHook {{{
|
|
||||||
myHandleEventHook =
|
|
||||||
handleEventHook def
|
|
||||||
-- See window swallowing (https://hackage.haskell.org/package/xmonad-contrib-0.18.0/docs/XMonad-Hooks-WindowSwallowing.html)
|
|
||||||
<> onXPropertyChange "WM_NAME" myDynamicManageHook
|
|
||||||
<> Hacks.windowedFullscreenFixEventHook
|
|
||||||
<> hintsEventHook
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Main config {{{
|
|
||||||
|
|
||||||
myWorkspaces = [ "sh", "www", "dev", "info", "etc" ]
|
|
||||||
myWorkspaceKeys = [ "a", "s", "d", "f", "g" ]
|
|
||||||
mySharedWorkspaces = [ "shared" ]
|
|
||||||
mySharedWorkspaceKeys = [ "1" ]
|
|
||||||
-- Use Win key instead of Alt
|
|
||||||
myModMask = mod4Mask
|
|
||||||
|
|
||||||
myConfig =
|
|
||||||
def
|
|
||||||
{ terminal = "kitty",
|
|
||||||
modMask = myModMask,
|
|
||||||
workspaces = withScreen 1 myWorkspaces ++ withScreen 2 mySharedWorkspaces,
|
|
||||||
-- Styling
|
|
||||||
focusedBorderColor = "#000",
|
|
||||||
normalBorderColor = "#0000",
|
|
||||||
borderWidth = 4,
|
|
||||||
-- Hooks
|
|
||||||
startupHook = myStartupHook,
|
|
||||||
manageHook = myManageHook <+> manageHook def,
|
|
||||||
layoutHook = myLayoutHook,
|
|
||||||
handleEventHook = myHandleEventHook
|
|
||||||
}
|
|
||||||
`removeKeysP` myRemoveKeys
|
|
||||||
`additionalKeysP` myKeys
|
|
||||||
`additionalMouseBindings` myMouseBindings
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Keybindings {{{
|
|
||||||
|
|
||||||
-- Keybindings to be added/overridden
|
|
||||||
myKeys :: [(String, X ())]
|
|
||||||
myKeys =
|
|
||||||
[ ("M-<Space> s", unfloatFocusedW),
|
|
||||||
("M-<Space> <Space>", nextLayout), -- Cycle through layouts
|
|
||||||
("M-<Space> S-<Space>", defaultLayout), --
|
|
||||||
("M-<Space> M-<Space>", nextLayout), -- ..fat finger
|
|
||||||
("M-<Space> M-S-<Space>", defaultLayout), --
|
|
||||||
("<F8>", spawnKeepassXC),
|
|
||||||
("M-p", spawnLauncher),
|
|
||||||
("M-w", spawnWindowSwitcher),
|
|
||||||
("M-S-w", spawnWifiMenu),
|
|
||||||
("<Insert>", pasteSelection),
|
|
||||||
("<Print>", printScreen),
|
|
||||||
("<XF86AudioRaiseVolume>", raiseVol), -- Audio volume & playback
|
|
||||||
("<XF86AudioLowerVolume>", lowerVol), --
|
|
||||||
("<XF86AudioMute>", mute), --
|
|
||||||
("M-<Right>", nextTrack), --
|
|
||||||
("M-<Left>", prevTrack), --
|
|
||||||
("M-<Up>", play), --
|
|
||||||
("M-<Down>", pause), --
|
|
||||||
("<XF86MonBrightnessUp>", brighten), -- Brightness & hue controls
|
|
||||||
("<XF86MonBrightnessDown>", dim), --
|
|
||||||
("S-<XF86MonBrightnessUp>", warm), --
|
|
||||||
("S-<XF86MonBrightnessDown>", cool), --
|
|
||||||
("M-S-<XF86MonBrightnessUp>", resetTemp), --
|
|
||||||
("M-S-<XF86MonBrightnessDown>", resetTemp), --
|
|
||||||
("M-S-b", fullscreenBrowser),
|
|
||||||
("<XF86PowerOff>", spawn "systemctl suspend"), --TODO: Only enable this on laptop
|
|
||||||
("M-c", windows copyToAll),
|
|
||||||
("M-S-c", killAllOtherCopies),
|
|
||||||
("M-S-<Delete>", kill)
|
|
||||||
] ++
|
|
||||||
[ (m ++ k, windows $ f w) |
|
|
||||||
(m, f) <- zip ["M-", "M-S-"]
|
|
||||||
[W.greedyView, W.shift],
|
|
||||||
(k, w) <- zip myWorkspaceKeys
|
|
||||||
(withScreen 1 myWorkspaces)
|
|
||||||
++ zip mySharedWorkspaceKeys
|
|
||||||
(withScreen 2 mySharedWorkspaces)
|
|
||||||
]
|
|
||||||
|
|
||||||
zipKeyPrefixes :: [String] -> [String] -> [String]
|
|
||||||
zipKeyPrefixes prefixes keys = [prefix ++ key | prefix <- prefixes, key <- keys]
|
|
||||||
|
|
||||||
-- Keybindings to be removed
|
|
||||||
myRemoveKeys :: [String]
|
|
||||||
myRemoveKeys = "M-S-q" : zipKeyPrefixes ["M-", "M-S-"] (map show [ 1..5 ])
|
|
||||||
|
|
||||||
myMouseBindings =
|
|
||||||
[
|
|
||||||
((mod4Mask, button1), (\w -> focus w >> mouseMoveWindow w >> afterDrag (snapMagicMove (Just 50) (Just 50) w)))
|
|
||||||
, ((mod4Mask .|. shiftMask, button1), (\w -> focus w >> mouseMoveWindow w >> afterDrag (snapMagicResize [L,R,U,D] (Just 50) (Just 50) w)))
|
|
||||||
, ((mod4Mask, button3), (\w -> focus w >> mouseResizeWindow w >> afterDrag (snapMagicResize [R,D] (Just 50) (Just 50) w)))
|
|
||||||
]
|
|
||||||
|
|
||||||
unfloatFocusedW :: X ()
|
|
||||||
unfloatFocusedW = withFocused $ windows . W.sink
|
|
||||||
|
|
||||||
myStartupHook :: X ()
|
|
||||||
nextLayout = sendMessage NextLayout
|
|
||||||
|
|
||||||
defaultLayout :: X ()
|
|
||||||
defaultLayout = setLayout $ Layout myLayoutHook
|
|
||||||
|
|
||||||
spawnKeepassXC :: X ()
|
|
||||||
spawnKeepassXC = spawn "keepassxc"
|
|
||||||
|
|
||||||
fullscreenBrowser :: X ()
|
|
||||||
fullscreenBrowser = spawn "firefox --fullscreen"
|
|
||||||
|
|
||||||
spawnWindowSwitcher = spawn "rofi -show window -show-icons"
|
|
||||||
|
|
||||||
spawnWifiMenu = spawn "rofi -show wifi -modi \"wifi:iwdrofimenu\""
|
|
||||||
|
|
||||||
spawnLauncher, spawnClipManager :: X ()
|
|
||||||
spawnLauncher = spawn "rofi -show drun -show-icons"
|
|
||||||
spawnClipManager = spawn "rofi -modi 'clipboard:greenclip print' -show clipboard -run-command '{cmd}'"
|
|
||||||
|
|
||||||
printScreen :: X ()
|
|
||||||
printScreen = spawn "flameshot gui"
|
|
||||||
|
|
||||||
raiseVol, lowerVol, mute :: X ()
|
|
||||||
raiseVol = spawn "pactl set-sink-volume @DEFAULT_SINK@ +5%"
|
|
||||||
lowerVol = spawn "pactl set-sink-volume @DEFAULT_SINK@ -5%"
|
|
||||||
mute = spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle"
|
|
||||||
|
|
||||||
nextTrack, prevTrack, play, pause :: X ()
|
|
||||||
nextTrack = spawn "playerctl next"
|
|
||||||
prevTrack = spawn "playerctl previous"
|
|
||||||
play = spawn "playerctl play"
|
|
||||||
pause = spawn "playerctl pause"
|
|
||||||
|
|
||||||
brighten, dim, warm, cool, resetTemp :: X ()
|
|
||||||
brighten = spawn "brightnessctl set 20+"
|
|
||||||
dim = spawn "brightnessctl set 20-"
|
|
||||||
warm = spawn "screen-temperature +50"
|
|
||||||
cool = spawn "screen-temperature -50"
|
|
||||||
resetTemp = spawn "screen-temperature 3000"
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
|
|
||||||
-- Main {{{
|
|
||||||
|
|
||||||
main :: IO ()
|
|
||||||
main =
|
|
||||||
do xmonad
|
|
||||||
$ ewmh
|
|
||||||
$ withEasySB
|
|
||||||
(statusBarProp "polybar" $ pure pp)
|
|
||||||
defToggleStrutsKey
|
|
||||||
myConfig
|
|
||||||
|
|
||||||
-- }}}
|
|
||||||
Generated
+2
-2
@@ -556,11 +556,11 @@
|
|||||||
"plugins-tailwind-fold-nvim": "plugins-tailwind-fold-nvim"
|
"plugins-tailwind-fold-nvim": "plugins-tailwind-fold-nvim"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"path": "./dots/.config/nvim",
|
"path": "./home/modules/nvim/config",
|
||||||
"type": "path"
|
"type": "path"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"path": "./dots/.config/nvim",
|
"path": "./home/modules/nvim/config",
|
||||||
"type": "path"
|
"type": "path"
|
||||||
},
|
},
|
||||||
"parent": []
|
"parent": []
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nvim = {
|
nvim = {
|
||||||
url = "path:./dots/.config/nvim";
|
url = "path:./home/modules/nvim/config";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
+10
-24
@@ -1,31 +1,17 @@
|
|||||||
{
|
{ lib, ... }:
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.modules."3d";
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
options.modules."3d" = {
|
options.modules."3d" = {
|
||||||
printing.enable = lib.mkEnableOption "3D printing tools";
|
printing = {
|
||||||
modeling.enable = lib.mkEnableOption "3D modeling tools";
|
enable = lib.mkEnableOption "3D printing tools";
|
||||||
|
};
|
||||||
|
modeling = {
|
||||||
|
enable = lib.mkEnableOption "3D modeling tools";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkMerge [
|
imports = [
|
||||||
(lib.mkIf cfg.printing.enable {
|
./printing.nix
|
||||||
home.packages = with pkgs; [
|
./modeling.nix
|
||||||
orca-slicer
|
|
||||||
];
|
|
||||||
})
|
|
||||||
(lib.mkIf cfg.modeling.enable {
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
blender
|
|
||||||
openscad-lsp
|
|
||||||
openscad-unstable
|
|
||||||
];
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.modules."3d".modeling.enable {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
blender
|
||||||
|
openscad-lsp
|
||||||
|
openscad-unstable
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.modules."3d".printing.enable {
|
||||||
|
home.packages = with pkgs; [ orca-slicer ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -9,8 +9,6 @@ let
|
|||||||
rtk-version = "0.18.1";
|
rtk-version = "0.18.1";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.ai-tools.claude-code.enable = lib.mkEnableOption "claude code with rtk and ccline";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.claude-code.enable = true;
|
programs.claude-code.enable = true;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,33 @@
|
|||||||
|
{ lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
skillType = lib.types.submodule {
|
||||||
|
options = {
|
||||||
|
owner = lib.mkOption { type = lib.types.str; };
|
||||||
|
repo = lib.mkOption { type = lib.types.str; };
|
||||||
|
rev = lib.mkOption { type = lib.types.str; };
|
||||||
|
hash = lib.mkOption { type = lib.types.str; };
|
||||||
|
skill = lib.mkOption { type = lib.types.str; };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
in
|
||||||
{
|
{
|
||||||
|
options.ai-tools = {
|
||||||
|
claude-code = {
|
||||||
|
enable = lib.mkEnableOption "claude code with rtk and ccline";
|
||||||
|
skills = lib.mkOption {
|
||||||
|
type = lib.types.listOf skillType;
|
||||||
|
default = [ ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
opencode = {
|
||||||
|
enable = lib.mkEnableOption "opencode";
|
||||||
|
};
|
||||||
|
tirith = {
|
||||||
|
enable = lib.mkEnableOption "tirith";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
./claude-code.nix
|
./claude-code.nix
|
||||||
./opencode.nix
|
./opencode.nix
|
||||||
|
|||||||
@@ -8,10 +8,6 @@ let
|
|||||||
cfg = config.ai-tools.opencode;
|
cfg = config.ai-tools.opencode;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.ai-tools.opencode = {
|
|
||||||
enable = lib.mkEnableOption "opencode";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.packages = [ pkgs.opencode ];
|
home.packages = [ pkgs.opencode ];
|
||||||
|
|
||||||
|
|||||||
@@ -7,16 +7,6 @@
|
|||||||
let
|
let
|
||||||
cfg = config.ai-tools.claude-code;
|
cfg = config.ai-tools.claude-code;
|
||||||
|
|
||||||
skillType = lib.types.submodule {
|
|
||||||
options = {
|
|
||||||
owner = lib.mkOption { type = lib.types.str; };
|
|
||||||
repo = lib.mkOption { type = lib.types.str; };
|
|
||||||
rev = lib.mkOption { type = lib.types.str; };
|
|
||||||
hash = lib.mkOption { type = lib.types.str; };
|
|
||||||
skill = lib.mkOption { type = lib.types.str; };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
fetchSkill =
|
fetchSkill =
|
||||||
skill:
|
skill:
|
||||||
let
|
let
|
||||||
@@ -38,11 +28,6 @@ let
|
|||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.ai-tools.claude-code.skills = lib.mkOption {
|
|
||||||
type = lib.types.listOf skillType;
|
|
||||||
default = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.file = builtins.listToAttrs (map fetchSkill cfg.skills);
|
home.file = builtins.listToAttrs (map fetchSkill cfg.skills);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -8,10 +8,6 @@ let
|
|||||||
cfg = config.ai-tools.tirith;
|
cfg = config.ai-tools.tirith;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.ai-tools.tirith = {
|
|
||||||
enable = lib.mkEnableOption "tirith";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf cfg.enable {
|
(lib.mkIf cfg.enable {
|
||||||
home.packages = [ pkgs.tirith ];
|
home.packages = [ pkgs.tirith ];
|
||||||
|
|||||||
@@ -1,26 +1,21 @@
|
|||||||
{
|
{ lib, ... }:
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
{
|
||||||
options.database = {
|
options.database = {
|
||||||
mssql.enable = lib.mkEnableOption "MSSQL";
|
mssql = {
|
||||||
postgresql.enable = lib.mkEnableOption "PostgreSQL";
|
enable = lib.mkEnableOption "MSSQL";
|
||||||
redis.enable = lib.mkEnableOption "Redis";
|
};
|
||||||
|
postgresql = {
|
||||||
|
enable = lib.mkEnableOption "PostgreSQL";
|
||||||
|
};
|
||||||
|
redis = {
|
||||||
|
enable = lib.mkEnableOption "Redis";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = lib.mkMerge [
|
imports = [
|
||||||
(lib.mkIf config.database.mssql.enable {
|
./mssql.nix
|
||||||
home.packages = with pkgs; [ (config.nixgl.wrap dbeaver-bin) ];
|
./postgresql.nix
|
||||||
})
|
./redis.nix
|
||||||
(lib.mkIf config.database.postgresql.enable {
|
|
||||||
home.packages = with pkgs; [ (config.nixgl.wrap pgadmin4-desktopmode) ];
|
|
||||||
})
|
|
||||||
(lib.mkIf config.database.postgresql.enable {
|
|
||||||
home.packages = with pkgs; [ redis ];
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.database.mssql.enable {
|
||||||
|
home.packages = with pkgs; [ (config.nixgl.wrap dbeaver-bin) ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.database.postgresql.enable {
|
||||||
|
home.packages = with pkgs; [ (config.nixgl.wrap pgadmin4-desktopmode) ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = lib.mkIf config.database.redis.enable {
|
||||||
|
home.packages = with pkgs; [ redis ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -24,6 +24,7 @@ layout {
|
|||||||
gaps 4
|
gaps 4
|
||||||
struts {}
|
struts {}
|
||||||
center-focused-column "never"
|
center-focused-column "never"
|
||||||
|
always-center-single-column
|
||||||
preset-column-widths {
|
preset-column-widths {
|
||||||
proportion 0.382
|
proportion 0.382
|
||||||
proportion 0.618
|
proportion 0.618
|
||||||
@@ -96,6 +97,10 @@ binds {
|
|||||||
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||||
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||||
|
|
||||||
|
XF86AudioPlay allow-when-locked=true repeat=false { spawn "playerctl" "play-pause"; }
|
||||||
|
XF86AudioNext allow-when-locked=true repeat=false { spawn "playerctl" "next"; }
|
||||||
|
XF86AudioPrev allow-when-locked=true repeat=false { spawn "playerctl" "previous"; }
|
||||||
|
|
||||||
Mod+Shift+XF86Display { power-off-monitors; }
|
Mod+Shift+XF86Display { power-off-monitors; }
|
||||||
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
||||||
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
file.".config/niri/config.kdl".source = ./config.kdl;
|
file.".config/niri/config.kdl".source = ./config.kdl;
|
||||||
packages = with pkgs; [
|
packages = with pkgs; [
|
||||||
brightnessctl
|
brightnessctl
|
||||||
|
playerctl
|
||||||
wlsunset
|
wlsunset
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -11,6 +11,12 @@ in
|
|||||||
options.mako.enable = lib.mkEnableOption "mako";
|
options.mako.enable = lib.mkEnableOption "mako";
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
services.mako.enable = true;
|
services.mako = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
default-timeout = 10000;
|
||||||
|
"urgency=critical".default-timeout = 0;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Loaded 100 of 116 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user