Compare commits
337 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f2ca4f3530 | |||
| 62cc99e951 | |||
| 049d0ca45c | |||
| 7a55c32da2 | |||
| d2a0b86024 | |||
| f79e7a527c | |||
| b2230c993a | |||
| 91e8fcb06a | |||
| 03356b9280 | |||
| c3f4f92a09 | |||
| 8799310710 | |||
| 493bd42966 | |||
| d98e7ae597 | |||
| bfd4a53b85 | |||
| 643096d98c | |||
| 32cd05a2b8 | |||
| 23afe4a8b6 | |||
| acf683f334 | |||
| 4b7fdcd68f | |||
| 9ecb62e13d | |||
| ce9910daed | |||
| cb2598af14 | |||
| ea4a577076 | |||
| 7d15907ee3 | |||
| 9c5dab9ecc | |||
| 8b9c71b77e | |||
| b3c3a7249c | |||
| 82f3a0eda3 | |||
| 7d603e3d4f | |||
| 612c0ef78d | |||
| db7e115542 | |||
| 7c25d8d578 | |||
| 37070171c2 | |||
| 5dc82b90e2 | |||
| 2cc0a54e07 | |||
| f9d7375f7b | |||
| 4d714d4416 | |||
| 96f35ab9d6 | |||
| f092bc782e | |||
| e84d333ea6 | |||
| 05ab80c13f | |||
| 8a972a72f3 | |||
| 01081d25c7 | |||
| 25a1afa317 | |||
| 17efe79dfa | |||
| 90f7a5dc90 | |||
| 6dc320ff1c | |||
| ff4c9c8e9a | |||
| 2bcd5dc9bd | |||
| e130df3c70 | |||
| 307710e7a5 | |||
| 4349671e14 | |||
| 33e4758389 | |||
| 0004a1d715 | |||
| abfc369407 | |||
| 9d61a15337 | |||
| 733beb094b | |||
| 4848a20a8d | |||
| 24346c9e88 | |||
| bb3ba5d702 | |||
| 77d0a8504e | |||
| 6ec03f7821 | |||
| d4db3b81a8 | |||
| 69f982526d | |||
| c952702742 | |||
| 5963113964 | |||
| 4cc07c65ae | |||
| 5c2b810a4f | |||
| 33ca6d490a | |||
| 2acc6d25c7 | |||
| a74e5ab4b6 | |||
| 39af365839 | |||
| 973c5dc134 | |||
| a244ee2223 | |||
| 1eaf5166d9 | |||
| a081f743a5 | |||
| aa19cc3204 | |||
| 8d92c45ffe | |||
| 96c74ac95e | |||
| b5ffc833fb | |||
| e18c41cf90 | |||
| 291e77b4b4 | |||
| 5cbf3ac32e | |||
| e7d06c8b91 | |||
| 07a367dc67 | |||
| a0e6ecd222 | |||
| 331ce9eec5 | |||
| 3ed35fd553 | |||
| 2df1d71367 | |||
| 5341a75a08 | |||
| d33fc584d0 | |||
| 375a7ed910 | |||
| 81e88f6610 | |||
| 3da6262856 | |||
| f8cb82fd60 | |||
| 3a3dbad845 | |||
| 017d47ca41 | |||
| 78046685f9 | |||
| 2046f360a6 | |||
| e70146fd1d | |||
| ea9d4145d4 | |||
| d1814a3072 | |||
| 08db2c3a75 | |||
| 2c384fb003 | |||
| 8ae53c14bd | |||
| b189e1fa3e | |||
| 107d3cfdb3 | |||
| e31f684f7b | |||
| ab87bb325f | |||
| fd9ceb1dda | |||
| 6fe2f72025 | |||
| 94e3c08f88 | |||
| 7138b67f59 | |||
| 1958d2ebf7 | |||
| a744a8fc2d | |||
| 30d50d72ec | |||
| a938447b8a | |||
| 9408eeff52 | |||
| 947eaad2f1 | |||
| eb6f67559e | |||
| 166c3a24ea | |||
| 3f3de17097 | |||
| d7ceec572f | |||
| 50bb8561d8 | |||
| 6ece92b75d | |||
| accb330589 | |||
| 9d8777e85c | |||
| 6b7a428145 | |||
| 6278da83fa | |||
| bf5009fdd4 | |||
| 4f573be120 | |||
| aba47c6ce9 | |||
| 14d24534f9 | |||
| e1752368b4 | |||
| ce9c752cbe | |||
| 0b1591642b | |||
| 998099ae10 | |||
| d01659c1b0 | |||
| 251f03838b | |||
| 2a303c445c | |||
| 7515a871a7 | |||
| 1ead310c05 | |||
| 76253e34ef | |||
| bbb0017bee | |||
| 718cf756b9 | |||
| 05e135d61d | |||
| 9a66f3fc5a | |||
| 0d3b15c072 | |||
| ebc7c2ede5 | |||
| 8035ae008b | |||
| a6d9bdb7a9 | |||
| 4f4168768d | |||
| eb61989a59 | |||
| 3dcb49fc1b | |||
| 442ed2aca4 | |||
| 5df6c5aecf | |||
| 884a8b31ae | |||
| fef852f4bf | |||
| 8453cc92b6 | |||
| e273e34662 | |||
| b681e4b5b4 | |||
| 24c5bb3ec6 | |||
| 70c5c011f8 | |||
| fcae542755 | |||
| 0e20737cb3 | |||
| 58ea719bed | |||
| 15ffb7355e | |||
| ca1b22ba98 | |||
| d2add34317 | |||
| 5da32bceea | |||
| 92c2d613af | |||
| c1a2c404e9 | |||
| 5b3915ad27 | |||
| 2d4c1df31f | |||
| 0f1895c5d2 | |||
| 990b7f0180 | |||
| a895c2471d | |||
| 8fd220c919 | |||
| 626d719e16 | |||
| 7873981341 | |||
| fca6d487f0 | |||
| e297235517 | |||
| 29ab9150f8 | |||
| 953d57be15 | |||
| 7b63af8aae | |||
| 697d216397 | |||
| 794f3c1eb8 | |||
| 4a8e077b5d | |||
| 7d76728651 | |||
| 957b94e1cc | |||
| 2445e6e7d6 | |||
| f5ddd2e4c5 | |||
| f071068e6d | |||
| c8ffe51c66 | |||
| e12d261a9f | |||
| 2557a2b538 | |||
| ea3cfe9604 | |||
| 8f3802a010 | |||
| 4d42e5c89d | |||
| b8872e957f | |||
| fe8b6caf3c | |||
| 3f0311b127 | |||
| 0b56680911 | |||
| 9fbdead63f | |||
| 5db03a0695 | |||
| c697b5684a | |||
| 95bd8dd280 | |||
| aa9d7b2d88 | |||
| a1b5f3838d | |||
| fe710dac80 | |||
| 18aee952be | |||
| 728e5ee02f | |||
| cb9f478cbc | |||
| 6654470109 | |||
| 4913622bad | |||
| ed9bed85d9 | |||
| 8881b704ca | |||
| 89bd7e9a4c | |||
| 354b54b772 | |||
| 7e445e7fd3 | |||
| a0f75a0f4d | |||
| 04b7672f0e | |||
| b643092237 | |||
| f4b753d750 | |||
| 0d14cc41a8 | |||
| 3904b09b8c | |||
| 36e43c3f27 | |||
| e178958e4f | |||
| e89501f139 | |||
| 7f3fe70cac | |||
| 8acb093f34 | |||
| d2ff285109 | |||
| 80c6ec0080 | |||
| af706c8f40 | |||
| 01d2d1d31b | |||
| df045e44b5 | |||
| 1c8def8999 | |||
| f40788cd15 | |||
| f077cc647b | |||
| 6428ec9f2a | |||
| a97cd99394 | |||
| 27258da627 | |||
| ce962bad1a | |||
| 1b29407793 | |||
| 81f9cb6cf9 | |||
| 37d1109bc3 | |||
| 5cb32ff923 | |||
| f972642cfa | |||
| 3e774e37f9 | |||
| 574885f327 | |||
| 46899bf76a | |||
| f7af858e16 | |||
| 5e3452c091 | |||
| bb87510a0c | |||
| 4d554f50c1 | |||
| 4d72cbc1b4 | |||
| 88d85f11b2 | |||
| be7448b710 | |||
| b742fc78cb | |||
| b703588b79 | |||
| 8e4d8ac662 | |||
| 27888a7a3e | |||
| 0d6624bc09 | |||
| 50c28d68c2 | |||
| 7e301c1452 | |||
| ad73cfebde | |||
| 2ba7a7f805 | |||
| 867ebad8ea | |||
| ebf91de2d8 | |||
| e6832e3c1e | |||
| 15499b292a | |||
| 1af9a5497b | |||
| a7b24c0fa4 | |||
| 661a6b6c2f | |||
| d4faa061dc | |||
| a2bbd4e04e | |||
| 7e62881c4d | |||
| 9f69f16471 | |||
| 5525fda4bf | |||
| ee7c0ed11c | |||
| e2875e1741 | |||
| 57e13b8319 | |||
| 1d31f870c5 | |||
| 9f3f835253 | |||
| 066902e37a | |||
| d790bc9e25 | |||
| 1ea8333994 | |||
| e464d8fec5 | |||
| 14a32c151c | |||
| bfdf5f221e | |||
| ae29832dbc | |||
| ae6ce6b19c | |||
| 8e1abde359 | |||
| c25cd05b15 | |||
| 5deba06fb0 | |||
| 7dcc785da6 | |||
| 5eb3654d0c | |||
|
|
cbcf03c784 | ||
|
|
a9d5ee5eb0 | ||
|
|
8402c6f1d2 | ||
|
|
da8b6b3b75 | ||
|
|
526bf6e2a9 | ||
|
|
04870cd682 | ||
|
|
46108ab249 | ||
|
|
a8e23460f9 | ||
|
|
a88018fe47 | ||
|
|
5757681ce0 | ||
|
|
6c393b3837 | ||
|
|
618f927cb9 | ||
|
|
bb259bf358 | ||
|
|
3f7de563db | ||
|
|
6ae5f4c503 | ||
|
|
e6c3d55fc8 | ||
|
|
36331ea60c | ||
|
|
6b18d0accf | ||
|
|
9a764fc7c8 | ||
|
|
9100167e4d | ||
|
|
e0e98bc237 | ||
|
|
4c989fcda3 | ||
|
|
35f8c10e7c | ||
|
|
ac49823b4c | ||
| daaead9c1e | |||
|
|
c5c86145b1 | ||
|
|
32755e1411 | ||
|
|
de27a133e7 | ||
|
|
f89155e4d2 | ||
|
|
f345cf8f18 | ||
|
|
4cb9c006d7 | ||
| 1dd54ba638 | |||
| 517c2f333e | |||
| d850ba999d | |||
| dd9f5ccf88 | |||
| 59da59c74f | |||
| 1f36c4942b | |||
| eaa46e7034 | |||
| f00d9bdb12 | |||
| 1003c33dee |
@@ -1,4 +1,5 @@
|
|||||||
import = ["/home/imalison/.config/alacritty/themes/themes/dracula.toml"]
|
[general]
|
||||||
|
import = ["~/.config/alacritty/themes/themes/dracula.toml"]
|
||||||
|
|
||||||
[font]
|
[font]
|
||||||
size = 8
|
size = 8
|
||||||
|
|||||||
294
dotfiles/config/hypr/hyprland.conf
Normal file
294
dotfiles/config/hypr/hyprland.conf
Normal file
@@ -0,0 +1,294 @@
|
|||||||
|
# Hyprland Configuration
|
||||||
|
# Based on XMonad configuration from xmonad.hs
|
||||||
|
|
||||||
|
# See https://wiki.hyprland.org/Configuring/Monitors/
|
||||||
|
monitor=,preferred,auto,auto
|
||||||
|
|
||||||
|
# Source a file (multi-file configs)
|
||||||
|
# source = ~/.config/hypr/myColors.conf
|
||||||
|
|
||||||
|
# Set programs that you use
|
||||||
|
$terminal = alacritty
|
||||||
|
$fileManager = dolphin
|
||||||
|
$menu = rofi -show drun -show-icons
|
||||||
|
$runMenu = rofi -show run
|
||||||
|
|
||||||
|
# Environment variables
|
||||||
|
env = XCURSOR_SIZE,24
|
||||||
|
env = QT_QPA_PLATFORMTHEME,qt5ct
|
||||||
|
env = GDK_DPI_SCALE,1.25
|
||||||
|
env = QT_FONT_DPI,120
|
||||||
|
|
||||||
|
# Input configuration
|
||||||
|
input {
|
||||||
|
kb_layout = us
|
||||||
|
kb_variant =
|
||||||
|
kb_model =
|
||||||
|
kb_options =
|
||||||
|
kb_rules =
|
||||||
|
|
||||||
|
follow_mouse = 1
|
||||||
|
|
||||||
|
touchpad {
|
||||||
|
natural_scroll = no
|
||||||
|
}
|
||||||
|
|
||||||
|
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
|
||||||
|
}
|
||||||
|
|
||||||
|
# General settings
|
||||||
|
general {
|
||||||
|
gaps_in = 5
|
||||||
|
gaps_out = 20
|
||||||
|
border_size = 2
|
||||||
|
col.active_border = rgba(edb443ee) rgba(33ccffee) 45deg
|
||||||
|
col.inactive_border = rgba(595959aa)
|
||||||
|
|
||||||
|
layout = master
|
||||||
|
|
||||||
|
allow_tearing = false
|
||||||
|
}
|
||||||
|
|
||||||
|
# Decoration
|
||||||
|
decoration {
|
||||||
|
rounding = 10
|
||||||
|
|
||||||
|
blur {
|
||||||
|
enabled = true
|
||||||
|
size = 3
|
||||||
|
passes = 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Animations
|
||||||
|
animations {
|
||||||
|
enabled = yes
|
||||||
|
|
||||||
|
bezier = myBezier, 0.05, 0.9, 0.1, 1.05
|
||||||
|
|
||||||
|
animation = windows, 1, 7, myBezier
|
||||||
|
animation = windowsOut, 1, 7, default, popin 80%
|
||||||
|
animation = border, 1, 10, default
|
||||||
|
animation = borderangle, 1, 8, default
|
||||||
|
animation = fade, 1, 7, default
|
||||||
|
animation = workspaces, 1, 6, default
|
||||||
|
}
|
||||||
|
|
||||||
|
# Layout configuration
|
||||||
|
dwindle {
|
||||||
|
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
|
||||||
|
preserve_split = yes # you probably want this
|
||||||
|
}
|
||||||
|
|
||||||
|
master {
|
||||||
|
mfact = 0.25
|
||||||
|
orientation = left
|
||||||
|
}
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
misc {
|
||||||
|
force_default_wallpaper = 0
|
||||||
|
disable_hyprland_logo = true
|
||||||
|
}
|
||||||
|
|
||||||
|
# Scratchpad-like windows
|
||||||
|
windowrule = float, title:^(htop)$
|
||||||
|
windowrule = size 80% 80%, title:^(htop)$
|
||||||
|
|
||||||
|
# Chrome specific rules
|
||||||
|
windowrule = float, class:^(chrome)$,title:^(.*@gmail.com.*Gmail.*)$
|
||||||
|
windowrule = float, class:^(chrome)$,title:^(Messages)$
|
||||||
|
windowrule = size 90% 90%, class:^(chrome)$,title:^(.*@gmail.com.*Gmail.*)$
|
||||||
|
windowrule = size 90% 90%, class:^(chrome)$,title:^(Messages)$
|
||||||
|
|
||||||
|
# ===== KEY BINDINGS =====
|
||||||
|
# Based on XMonad configuration
|
||||||
|
|
||||||
|
# Main modifier key (Super/Windows key equivalent to mod4Mask)
|
||||||
|
$mainMod = SUPER
|
||||||
|
|
||||||
|
# Mod+Alt combination (equivalent to modalt in XMonad)
|
||||||
|
$modAlt = SUPER_ALT
|
||||||
|
|
||||||
|
# Hyper key (equivalent to mod3Mask in XMonad)
|
||||||
|
$hyper = ALT_R
|
||||||
|
|
||||||
|
# Program launching
|
||||||
|
bind = $mainMod, P, exec, $menu
|
||||||
|
bind = $mainMod SHIFT, P, exec, $runMenu
|
||||||
|
bind = $mainMod SHIFT, Return, exec, $terminal
|
||||||
|
bind = $mainMod, Q, killactive,
|
||||||
|
bind = $mainMod SHIFT, C, killactive,
|
||||||
|
bind = $mainMod SHIFT, Q, exit,
|
||||||
|
bind = $mainMod, E, exec, emacsclient -c
|
||||||
|
bind = $mainMod, V, exec, xclip -o | xdotool type --file -
|
||||||
|
|
||||||
|
# Chrome/Browser launching (equivalent to bindBringAndRaise)
|
||||||
|
bind = $modAlt, C, exec, google-chrome-stable
|
||||||
|
|
||||||
|
# Scratchpad equivalents (toggle special workspaces)
|
||||||
|
bind = $modAlt, E, togglespecialworkspace, element
|
||||||
|
bind = $modAlt, G, togglespecialworkspace, gmail
|
||||||
|
bind = $modAlt, H, togglespecialworkspace, htop
|
||||||
|
bind = $modAlt, M, togglespecialworkspace, messages
|
||||||
|
bind = $modAlt, K, togglespecialworkspace, slack
|
||||||
|
bind = $modAlt, S, togglespecialworkspace, spotify
|
||||||
|
bind = $modAlt, T, togglespecialworkspace, transmission
|
||||||
|
bind = $modAlt, V, togglespecialworkspace, volume
|
||||||
|
|
||||||
|
# Move windows to special workspaces
|
||||||
|
bind = $modAlt SHIFT, E, movetoworkspace, special:element
|
||||||
|
bind = $modAlt SHIFT, G, movetoworkspace, special:gmail
|
||||||
|
bind = $modAlt SHIFT, H, movetoworkspace, special:htop
|
||||||
|
bind = $modAlt SHIFT, M, movetoworkspace, special:messages
|
||||||
|
bind = $modAlt SHIFT, K, movetoworkspace, special:slack
|
||||||
|
bind = $modAlt SHIFT, S, movetoworkspace, special:spotify
|
||||||
|
bind = $modAlt SHIFT, T, movetoworkspace, special:transmission
|
||||||
|
bind = $modAlt SHIFT, V, movetoworkspace, special:volume
|
||||||
|
|
||||||
|
# Directional navigation (WASD keys as in XMonad)
|
||||||
|
bind = $mainMod, W, movefocus, u
|
||||||
|
bind = $mainMod, S, movefocus, d
|
||||||
|
bind = $mainMod, A, movefocus, l
|
||||||
|
bind = $mainMod, D, movefocus, r
|
||||||
|
|
||||||
|
# Move windows directionally
|
||||||
|
bind = $mainMod SHIFT, W, movewindow, u
|
||||||
|
bind = $mainMod SHIFT, S, movewindow, d
|
||||||
|
bind = $mainMod SHIFT, A, movewindow, l
|
||||||
|
bind = $mainMod SHIFT, D, movewindow, r
|
||||||
|
|
||||||
|
# Resize windows
|
||||||
|
bind = $mainMod CTRL, W, resizeactive, 0 -50
|
||||||
|
bind = $mainMod CTRL, S, resizeactive, 0 50
|
||||||
|
bind = $mainMod CTRL, A, resizeactive, -50 0
|
||||||
|
bind = $mainMod CTRL, D, resizeactive, 50 0
|
||||||
|
|
||||||
|
# Layout control
|
||||||
|
bind = $mainMod, Space, exec, hyprctl dispatch layoutmsg cyclenext
|
||||||
|
bind = $mainMod CTRL, Space, fullscreen, 0
|
||||||
|
bind = $mainMod, slash, exec, hyprctl dispatch layoutmsg orientationcycle left top
|
||||||
|
bind = $mainMod, F, fullscreen, 0
|
||||||
|
bind = $mainMod SHIFT, F, fullscreen, 1
|
||||||
|
bind = $mainMod, T, togglefloating,
|
||||||
|
bind = $mainMod SHIFT, Y, pseudo, # dwindle pseudotile
|
||||||
|
bind = $mainMod, J, togglesplit, # dwindle split direction
|
||||||
|
bind = $mainMod, comma, exec, hyprctl dispatch splitratio -0.05
|
||||||
|
bind = $mainMod, period, exec, hyprctl dispatch splitratio +0.05
|
||||||
|
bind = $mainMod, N, exec, hyprctl dispatch layoutmsg addmaster
|
||||||
|
bind = $mainMod SHIFT, N, exec, hyprctl dispatch layoutmsg removemaster
|
||||||
|
|
||||||
|
# Focus manipulation
|
||||||
|
bind = $mainMod, Tab, exec, hyprctl dispatch focuswindow "class:$(hyprctl activewindow -j | jq -r '.class')"
|
||||||
|
bind = $mainMod, M, exec, hyprctl dispatch focuswindow "class:master"
|
||||||
|
|
||||||
|
# Monitor/Screen control
|
||||||
|
bind = $mainMod, Z, focusmonitor, +1
|
||||||
|
bind = $mainMod SHIFT, Z, movewindow, mon:+1
|
||||||
|
|
||||||
|
# Window management
|
||||||
|
bind = $mainMod, G, exec, hyprctl clients -j | jq -r '.[] | select(.workspace.id >= 0) | "\(.title) - \(.class)"' | rofi -dmenu -i -p "Go to window" | head -1 | xargs -I {} hyprctl dispatch focuswindow "title:{}"
|
||||||
|
bind = $mainMod, B, exec, SELECTION=$(hyprctl clients -j | jq -r '.[] | select(.workspace.id >= 0) | "\(.title) - \(.class) [\(.address)]"' | rofi -dmenu -i -p "Bring window"); if [ -n "$SELECTION" ]; then ADDRESS=$(echo "$SELECTION" | sed 's/.*\[\(.*\)\]/\1/'); hyprctl dispatch movetoworkspace "$(hyprctl activeworkspace -j | jq -r '.id')",address:"$ADDRESS"; fi
|
||||||
|
bind = $mainMod SHIFT, B, exec, hyprctl clients -j | jq -r '.[] | select(.workspace.id >= 0) | "\(.title) - \(.class)"' | rofi -dmenu -i -p "Replace window" | head -1 | xargs -I {} hyprctl dispatch swapwindow "title:{}"
|
||||||
|
bind = $mainMod, M, exec, hyprctl dispatch togglespecialworkspace minimized
|
||||||
|
bind = $mainMod SHIFT, M, exec, hyprctl dispatch movetoworkspace special:minimized
|
||||||
|
bind = $mainMod SHIFT, H, exec, EMPTY_WS=$(hyprctl workspaces -j | jq -r 'map(select(.windows == 0)) | .[0].id // empty'); if [ -z "$EMPTY_WS" ]; then EMPTY_WS=$(hyprctl workspaces -j | jq -r 'max_by(.id).id + 1'); fi; hyprctl dispatch movetoworkspace $EMPTY_WS && hyprctl dispatch workspace $EMPTY_WS
|
||||||
|
bind = $mainMod, X, exec, hyprctl dispatch movetoworkspace special:NSP
|
||||||
|
|
||||||
|
# Workspace switching
|
||||||
|
bind = $mainMod, 1, workspace, 1
|
||||||
|
bind = $mainMod, 2, workspace, 2
|
||||||
|
bind = $mainMod, 3, workspace, 3
|
||||||
|
bind = $mainMod, 4, workspace, 4
|
||||||
|
bind = $mainMod, 5, workspace, 5
|
||||||
|
bind = $mainMod, 6, workspace, 6
|
||||||
|
bind = $mainMod, 7, workspace, 7
|
||||||
|
bind = $mainMod, 8, workspace, 8
|
||||||
|
bind = $mainMod, 9, workspace, 9
|
||||||
|
bind = $mainMod, 0, workspace, 10
|
||||||
|
|
||||||
|
# Move windows to workspaces
|
||||||
|
bind = $mainMod SHIFT, 1, movetoworkspace, 1
|
||||||
|
bind = $mainMod SHIFT, 2, movetoworkspace, 2
|
||||||
|
bind = $mainMod SHIFT, 3, movetoworkspace, 3
|
||||||
|
bind = $mainMod SHIFT, 4, movetoworkspace, 4
|
||||||
|
bind = $mainMod SHIFT, 5, movetoworkspace, 5
|
||||||
|
bind = $mainMod SHIFT, 6, movetoworkspace, 6
|
||||||
|
bind = $mainMod SHIFT, 7, movetoworkspace, 7
|
||||||
|
bind = $mainMod SHIFT, 8, movetoworkspace, 8
|
||||||
|
bind = $mainMod SHIFT, 9, movetoworkspace, 9
|
||||||
|
bind = $mainMod SHIFT, 0, movetoworkspace, 10
|
||||||
|
|
||||||
|
# Move and follow to workspace
|
||||||
|
bind = $mainMod CTRL, 1, movetoworkspace, 1
|
||||||
|
bind = $mainMod CTRL, 2, movetoworkspace, 2
|
||||||
|
bind = $mainMod CTRL, 3, movetoworkspace, 3
|
||||||
|
bind = $mainMod CTRL, 4, movetoworkspace, 4
|
||||||
|
bind = $mainMod CTRL, 5, movetoworkspace, 5
|
||||||
|
bind = $mainMod CTRL, 6, movetoworkspace, 6
|
||||||
|
bind = $mainMod CTRL, 7, movetoworkspace, 7
|
||||||
|
bind = $mainMod CTRL, 8, movetoworkspace, 8
|
||||||
|
bind = $mainMod CTRL, 9, movetoworkspace, 9
|
||||||
|
bind = $mainMod CTRL, 0, movetoworkspace, 10
|
||||||
|
|
||||||
|
# Media keys and volume control
|
||||||
|
bind = , XF86AudioRaiseVolume, exec, set_volume --unmute --change-volume +5
|
||||||
|
bind = , XF86AudioLowerVolume, exec, set_volume --unmute --change-volume -5
|
||||||
|
bind = , XF86AudioMute, exec, set_volume --toggle-mute
|
||||||
|
bind = $mainMod, I, exec, set_volume --unmute --change-volume +5
|
||||||
|
bind = $mainMod, K, exec, set_volume --unmute --change-volume -5
|
||||||
|
bind = $mainMod, U, exec, set_volume --toggle-mute
|
||||||
|
|
||||||
|
# Media player controls
|
||||||
|
bind = $mainMod, semicolon, exec, playerctl play-pause
|
||||||
|
bind = , XF86AudioPlay, exec, playerctl play-pause
|
||||||
|
bind = , XF86AudioPause, exec, playerctl play-pause
|
||||||
|
bind = $mainMod, L, exec, playerctl next
|
||||||
|
bind = , XF86AudioNext, exec, playerctl next
|
||||||
|
bind = $mainMod, J, exec, playerctl previous
|
||||||
|
bind = , XF86AudioPrev, exec, playerctl previous
|
||||||
|
|
||||||
|
# Brightness control
|
||||||
|
bind = , XF86MonBrightnessUp, exec, brightness.sh 5
|
||||||
|
bind = , XF86MonBrightnessDown, exec, brightness.sh -5
|
||||||
|
|
||||||
|
# Utility bindings
|
||||||
|
bind = $hyper, V, exec, rofi_clipit.sh
|
||||||
|
bind = $hyper, Y, exec, rofi-pass
|
||||||
|
bind = $hyper, H, exec, rofi_shutter
|
||||||
|
bind = $hyper, C, exec, shell_command.sh
|
||||||
|
bind = $hyper, X, exec, rofi_command.sh
|
||||||
|
bind = $hyper SHIFT, L, exec, dm-tool lock
|
||||||
|
bind = $hyper, K, exec, rofi_kill_process.sh
|
||||||
|
bind = $hyper SHIFT, K, exec, rofi_kill_all.sh
|
||||||
|
bind = $hyper, R, exec, rofi-systemd
|
||||||
|
bind = $hyper, 9, exec, start_synergy.sh
|
||||||
|
bind = $hyper, slash, exec, toggle_taffybar
|
||||||
|
bind = $hyper, Space, exec, skippy-xd
|
||||||
|
bind = $hyper, I, exec, rofi_select_input.hs
|
||||||
|
bind = $hyper, O, exec, rofi_paswitch
|
||||||
|
bind = $mainMod, apostrophe, exec, load_default_map
|
||||||
|
bind = $modAlt, apostrophe, exec, load_xkb_map
|
||||||
|
bind = $mainMod, R, exec, hyprctl reload
|
||||||
|
|
||||||
|
# Workspace cycling
|
||||||
|
bind = $mainMod, backslash, workspace, previous
|
||||||
|
bind = $mainMod, Tab, workspace, previous
|
||||||
|
|
||||||
|
# Mouse bindings
|
||||||
|
bindm = $mainMod, mouse:272, movewindow
|
||||||
|
bindm = $mainMod, mouse:273, resizewindow
|
||||||
|
|
||||||
|
# Scroll through existing workspaces with mainMod + scroll
|
||||||
|
bind = $mainMod, mouse_down, workspace, e+1
|
||||||
|
bind = $mainMod, mouse_up, workspace, e-1
|
||||||
|
|
||||||
|
# Special workspaces for "scratchpad" applications
|
||||||
|
exec-once = [workspace special:element silent] element-desktop
|
||||||
|
exec-once = [workspace special:gmail silent] google-chrome-stable --new-window https://mail.google.com/mail/u/0/#inbox
|
||||||
|
exec-once = [workspace special:htop silent] alacritty --title htop -e htop
|
||||||
|
exec-once = [workspace special:messages silent] google-chrome-stable --new-window https://messages.google.com/web/conversations
|
||||||
|
exec-once = [workspace special:slack silent] slack
|
||||||
|
exec-once = [workspace special:spotify silent] spotify
|
||||||
|
exec-once = [workspace special:transmission silent] transmission-gtk
|
||||||
|
exec-once = [workspace special:volume silent] pavucontrol
|
||||||
525
dotfiles/config/taffybar/flake.lock
generated
525
dotfiles/config/taffybar/flake.lock
generated
@@ -3,11 +3,11 @@
|
|||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1673956053,
|
"lastModified": 1696426674,
|
||||||
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
|
||||||
"owner": "edolstra",
|
"owner": "edolstra",
|
||||||
"repo": "flake-compat",
|
"repo": "flake-compat",
|
||||||
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -21,11 +21,11 @@
|
|||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1701680307,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -39,11 +39,11 @@
|
|||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689068808,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -57,11 +57,11 @@
|
|||||||
"systems": "systems_3"
|
"systems": "systems_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1685518550,
|
"lastModified": 1731533236,
|
||||||
"narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=",
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef",
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -70,80 +70,16 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_4": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_4"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1701680307,
|
|
||||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fourmolu-011": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"narHash": "sha256-g/yDZXeLCHq/iXoZTaTYSb8l9CMny3AKsRQgWElagZI=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/fourmolu-0.11.0.0/fourmolu-0.11.0.0.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/fourmolu-0.11.0.0/fourmolu-0.11.0.0.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"fourmolu-012": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"narHash": "sha256-yru8ls67DMM6WSeVU6xDmmwa48I8S9CUv9NBaxSQ29M=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/fourmolu-0.12.0.0/fourmolu-0.12.0.0.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/fourmolu-0.12.0.0/fourmolu-0.12.0.0.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"git-ignore-nix": {
|
"git-ignore-nix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs_3"
|
||||||
"taffybar",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1660459072,
|
"lastModified": 1762808025,
|
||||||
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
|
"narHash": "sha256-XmjITeZNMTQXGhhww6ed/Wacy2KzD6svioyCX7pkUu4=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "gitignore.nix",
|
"repo": "gitignore.nix",
|
||||||
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
|
"rev": "cb5e3fdca1de58ccbc3ef53de65bd372b48f567c",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"ref": "master",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"git-ignore-nix_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs_4"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1703887061,
|
|
||||||
"narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -154,13 +90,20 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gitignore": {
|
"gitignore": {
|
||||||
"flake": false,
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"taffybar",
|
||||||
|
"weeder-nix",
|
||||||
|
"pre-commit-hooks",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1660459072,
|
"lastModified": 1709087332,
|
||||||
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
|
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||||
"owner": "hercules-ci",
|
"owner": "hercules-ci",
|
||||||
"repo": "gitignore.nix",
|
"repo": "gitignore.nix",
|
||||||
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
|
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -170,30 +113,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gtk-sni-tray": {
|
"gtk-sni-tray": {
|
||||||
"inputs": {
|
"flake": false,
|
||||||
"flake-utils": [
|
|
||||||
"taffybar",
|
|
||||||
"flake-utils"
|
|
||||||
],
|
|
||||||
"git-ignore-nix": [
|
|
||||||
"taffybar",
|
|
||||||
"git-ignore-nix"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"taffybar",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"status-notifier-item": [
|
|
||||||
"taffybar",
|
|
||||||
"status-notifier-item"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1663379298,
|
"lastModified": 1760550917,
|
||||||
"narHash": "sha256-m18+G7V1N+g/pPeKJG9hkblGA5c8QTnUYnsU5t14sOw=",
|
"narHash": "sha256-oELopLiVb7D1fzYHAiw/cbfNPHLQcOJ3Rz/I1gbk8IY=",
|
||||||
"owner": "taffybar",
|
"owner": "taffybar",
|
||||||
"repo": "gtk-sni-tray",
|
"repo": "gtk-sni-tray",
|
||||||
"rev": "1927d86308d34b5d21a709cf8ff5332ec5d37de4",
|
"rev": "f6d1bf5dd64ac0f532b03ae01f5e1cc051116f09",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -204,26 +130,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gtk-strut": {
|
"gtk-strut": {
|
||||||
"inputs": {
|
"flake": false,
|
||||||
"flake-utils": [
|
|
||||||
"taffybar",
|
|
||||||
"flake-utils"
|
|
||||||
],
|
|
||||||
"git-ignore-nix": [
|
|
||||||
"taffybar",
|
|
||||||
"git-ignore-nix"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"taffybar",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1663377859,
|
"lastModified": 1760550944,
|
||||||
"narHash": "sha256-UrBd+R3NaJIDC2lt5gMafS3KBeLs83emm2YorX2cFCo=",
|
"narHash": "sha256-S0saDsCA3aosU23jO5+jSXkbyrv7/C48o8GjsZrqF0I=",
|
||||||
"owner": "taffybar",
|
"owner": "taffybar",
|
||||||
"repo": "gtk-strut",
|
"repo": "gtk-strut",
|
||||||
"rev": "d946eb230cdccf5afc063642b3215723e555990b",
|
"rev": "5e0bf7f4b93b931a9c4b4a48b5d39de3ca8f02ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -233,197 +146,39 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"haskell-hie-bios": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1686930638,
|
|
||||||
"narHash": "sha256-gfcxxHtZ2jUsiKNn/O4jEkfWF/2H04aTnaIvPDbtNlQ=",
|
|
||||||
"owner": "haskell",
|
|
||||||
"repo": "hie-bios",
|
|
||||||
"rev": "3d4fadfb0dc44cb287db9897ecfb503899d33513",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "haskell",
|
|
||||||
"repo": "hie-bios",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"haskell-implicit-hie-cradle": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1686495518,
|
|
||||||
"narHash": "sha256-OAe+zOkMZuoTfVEMnxnCT1cmPgRF/riAR8nVdomnwxo=",
|
|
||||||
"owner": "smunix",
|
|
||||||
"repo": "implicit-hie-cradle",
|
|
||||||
"rev": "d6aa00355898469af56cfd5e62f7fc8bd9959ded",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "smunix",
|
|
||||||
"ref": "smunix-patch-hls-0.5-1",
|
|
||||||
"repo": "implicit-hie-cradle",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"haskell-language-server": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"flake-utils": "flake-utils_3",
|
|
||||||
"fourmolu-011": "fourmolu-011",
|
|
||||||
"fourmolu-012": "fourmolu-012",
|
|
||||||
"gitignore": "gitignore",
|
|
||||||
"haskell-hie-bios": "haskell-hie-bios",
|
|
||||||
"haskell-implicit-hie-cradle": "haskell-implicit-hie-cradle",
|
|
||||||
"hiedb": "hiedb",
|
|
||||||
"hlint-35": "hlint-35",
|
|
||||||
"hlint-36": "hlint-36",
|
|
||||||
"lsp": "lsp",
|
|
||||||
"lsp-test": "lsp-test",
|
|
||||||
"lsp-types": "lsp-types",
|
|
||||||
"nixpkgs": "nixpkgs_2",
|
|
||||||
"ormolu-052": "ormolu-052",
|
|
||||||
"ormolu-07": "ormolu-07",
|
|
||||||
"stylish-haskell-0145": "stylish-haskell-0145"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1693851896,
|
|
||||||
"narHash": "sha256-799JUHpBd2iMRCrTYDme5RsROKnIwSKBe2xYxgVN7QI=",
|
|
||||||
"owner": "colonelpanic8",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"rev": "ea368cef0673059fff95e953ef983109b5979dbc",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "colonelpanic8",
|
|
||||||
"ref": "goto-dependency-definition-2",
|
|
||||||
"repo": "haskell-language-server",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hiedb": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1691542357,
|
|
||||||
"narHash": "sha256-90ftphhoIo0CklJrjfCGQrZIUKZfdMJ2Og6tep9dmJ8=",
|
|
||||||
"owner": "nlander",
|
|
||||||
"repo": "HieDb",
|
|
||||||
"rev": "4eebfcf8fab54f24808e6301227d77ae64d2509c",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nlander",
|
|
||||||
"ref": "all-new-functions",
|
|
||||||
"repo": "HieDb",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hlint-35": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"narHash": "sha256-qQNUlQQnahUGEO92Lm0RwjTGBGr2Yaw0KRuFRMoc5No=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/hlint-3.5/hlint-3.5.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/hlint-3.5/hlint-3.5.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"hlint-36": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"narHash": "sha256-fH4RYnWeuBqJI5d3Ba+Xs0BxYr0IYFH1OWO3k2iHGlU=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/hlint-3.6.1/hlint-3.6.1.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/hlint-3.6.1/hlint-3.6.1.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"lsp": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"narHash": "sha256-HcEfdYUrCHufEa+10M2wESjnK41xM/msd+t6r6JwQO0=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/lsp-2.2.0.0/lsp-2.2.0.0.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/lsp-2.2.0.0/lsp-2.2.0.0.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"lsp-test": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"narHash": "sha256-E1D3X2+I9ZTZLpHDEDTXexQFYpyG5byOFRIvRTeBsn8=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/lsp-test-0.16.0.0/lsp-test-0.16.0.0.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/lsp-test-0.16.0.0/lsp-test-0.16.0.0.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"lsp-types": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"narHash": "sha256-Oa5HuKdsdTSQUKtuSt06zVAq19Qxq5IJZObrnPwlB6s=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/lsp-types-2.0.2.0/lsp-types-2.0.2.0.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/lsp-types-2.0.2.0/lsp-types-2.0.2.0.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1702312524,
|
"lastModified": 1764252443,
|
||||||
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
|
"narHash": "sha256-U4G4dUSYWZYKtrF7/ozebD1B96at08SIhY4R9OaK1nw=",
|
||||||
"path": "/nix/store/4fgs7yzsy2dqnjw8j42qlp9i1vgarzy0-source",
|
"owner": "colonelpanic8",
|
||||||
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
|
"repo": "nixpkgs",
|
||||||
"type": "path"
|
"rev": "e1fc6c25b91d3d49dd02a156237721f12dbd86b2",
|
||||||
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"owner": "colonelpanic8",
|
||||||
"type": "indirect"
|
"ref": "remove-gi-gtk-hs-patch",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1686874404,
|
"lastModified": 1730768919,
|
||||||
"narHash": "sha256-u2Ss8z+sGaVlKtq7sCovQ8WvXY+OoXJmY1zmyxITiaY=",
|
"narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "efc10371d5c5b8d2d58bab6c1100753efacfe550",
|
"rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "haskell-updates",
|
"ref": "nixpkgs-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1689098530,
|
|
||||||
"narHash": "sha256-fxc/9f20wRyo/5ydkmZkX/Sh/ULa7RcT8h+cUv8p/44=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "f2406198ea0e4e37d4380d0e20336c575b8f8ef9",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1666603677,
|
"lastModified": 1666603677,
|
||||||
"narHash": "sha256-apAEIj+z1iwMaMJ4tB21r/VTetfGDLDzuhXRHJknIAU=",
|
"narHash": "sha256-apAEIj+z1iwMaMJ4tB21r/VTetfGDLDzuhXRHJknIAU=",
|
||||||
@@ -437,41 +192,38 @@
|
|||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1702312524,
|
"lastModified": 1764230294,
|
||||||
"narHash": "sha256-gkZJRDBUCpTPBvQk25G0B7vfbpEYM5s5OZqghkjZsnE=",
|
"narHash": "sha256-Z63xl5Scj3Y/zRBPAWq1eT68n2wBWGCIEF4waZ0bQBE=",
|
||||||
"path": "/nix/store/4fgs7yzsy2dqnjw8j42qlp9i1vgarzy0-source",
|
"owner": "NixOS",
|
||||||
"rev": "a9bf124c46ef298113270b1f84a164865987a91c",
|
"repo": "nixpkgs",
|
||||||
"type": "path"
|
"rev": "0d59e0290eefe0f12512043842d7096c4070f30e",
|
||||||
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ormolu-052": {
|
"pre-commit-hooks": {
|
||||||
"flake": false,
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": "nixpkgs_2"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"narHash": "sha256-H7eqId488RBRxcf7flgJefAZmRgFJASJva+Oy7GG4q4=",
|
"lastModified": 1747372754,
|
||||||
"type": "tarball",
|
"narHash": "sha256-2Y53NGIX2vxfie1rOW0Qb86vjRZ7ngizoo+bnXU9D9k=",
|
||||||
"url": "https://hackage.haskell.org/package/ormolu-0.5.2.0/ormolu-0.5.2.0.tar.gz"
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"rev": "80479b6ec16fefd9c1db3ea13aeb038c60530f46",
|
||||||
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"owner": "cachix",
|
||||||
"url": "https://hackage.haskell.org/package/ormolu-0.5.2.0/ormolu-0.5.2.0.tar.gz"
|
"repo": "pre-commit-hooks.nix",
|
||||||
}
|
"type": "github"
|
||||||
},
|
|
||||||
"ormolu-07": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"narHash": "sha256-5M5gNzSvsiQH1+0oexRByzf5EIET+0BFwR4fLIr2P7g=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/ormolu-0.7.1.0/ormolu-0.7.1.0.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/ormolu-0.7.1.0/ormolu-0.7.1.0.tar.gz"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
@@ -479,24 +231,11 @@
|
|||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"taffybar": "taffybar",
|
"taffybar": "taffybar",
|
||||||
"xmonad": "xmonad_2"
|
"xmonad": "xmonad"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"status-notifier-item": {
|
"status-notifier-item": {
|
||||||
"inputs": {
|
"flake": false,
|
||||||
"flake-utils": [
|
|
||||||
"taffybar",
|
|
||||||
"flake-utils"
|
|
||||||
],
|
|
||||||
"git-ignore-nix": [
|
|
||||||
"taffybar",
|
|
||||||
"git-ignore-nix"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"taffybar",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1641783528,
|
"lastModified": 1641783528,
|
||||||
"narHash": "sha256-wJymJfYPFj4/r1e4kT/wt9FEsyCXo5JkkcOoozpuhag=",
|
"narHash": "sha256-wJymJfYPFj4/r1e4kT/wt9FEsyCXo5JkkcOoozpuhag=",
|
||||||
@@ -511,18 +250,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"stylish-haskell-0145": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"narHash": "sha256-EE7RFQ6q4Ek8daRgOpNMGepYLa9o8cM4OLjTNUSHQf0=",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/stylish-haskell-0.14.5.0/stylish-haskell-0.14.5.0.tar.gz"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://hackage.haskell.org/package/stylish-haskell-0.14.5.0/stylish-haskell-0.14.5.0.tar.gz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"systems": {
|
"systems": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1681028828,
|
||||||
@@ -568,53 +295,42 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"taffybar": {
|
"taffybar": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils_2",
|
||||||
"git-ignore-nix": "git-ignore-nix",
|
|
||||||
"gtk-sni-tray": "gtk-sni-tray",
|
"gtk-sni-tray": "gtk-sni-tray",
|
||||||
"gtk-strut": "gtk-strut",
|
"gtk-strut": "gtk-strut",
|
||||||
"haskell-language-server": "haskell-language-server",
|
"nixpkgs": [
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs"
|
||||||
|
],
|
||||||
"status-notifier-item": "status-notifier-item",
|
"status-notifier-item": "status-notifier-item",
|
||||||
"xmonad": "xmonad"
|
"weeder-nix": "weeder-nix",
|
||||||
|
"xmonad": [
|
||||||
|
"xmonad"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1696612500,
|
"lastModified": 1760591109,
|
||||||
"narHash": "sha256-Q19F91yVQviqxgY+FkvEwtX2vcw414eVtK8erim0NrU=",
|
"narHash": "sha256-O21ayp5v2eccXdcwNjTK5ZB99ruK0Zt9CUaw5Rye42g=",
|
||||||
"owner": "taffybar",
|
"owner": "taffybar",
|
||||||
"repo": "taffybar",
|
"repo": "taffybar",
|
||||||
"rev": "46eba89c2a4d4ffefe42c3ee4506d1b74c8e61fd",
|
"rev": "b256a711416036ca124fc9b3f89e7c957535e465",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "taffybar",
|
"owner": "taffybar",
|
||||||
|
"ref": "master",
|
||||||
"repo": "taffybar",
|
"repo": "taffybar",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"unstable": {
|
"unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1689098530,
|
"lastModified": 1764242076,
|
||||||
"narHash": "sha256-fxc/9f20wRyo/5ydkmZkX/Sh/ULa7RcT8h+cUv8p/44=",
|
"narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "f2406198ea0e4e37d4380d0e20336c575b8f8ef9",
|
"rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -624,66 +340,41 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"unstable_2": {
|
"weeder-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"taffybar",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"pre-commit-hooks": "pre-commit-hooks"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704538339,
|
"lastModified": 1748252779,
|
||||||
"narHash": "sha256-1734d3mQuux9ySvwf6axRWZRBhtcZA9Q8eftD6EZg6U=",
|
"narHash": "sha256-kSyD/VDUX2m9c2vcuLBT2wnpYiVSHHlP9vuDTtsAtD8=",
|
||||||
"owner": "NixOS",
|
"owner": "NorfairKing",
|
||||||
"repo": "nixpkgs",
|
"repo": "weeder-nix",
|
||||||
"rev": "46ae0210ce163b3cba6c7da08840c1d63de9c701",
|
"rev": "388df7a6f00220d1960118e1ad37cd86150d2c5a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NorfairKing",
|
||||||
"ref": "nixos-unstable",
|
"repo": "weeder-nix",
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"xmonad": {
|
"xmonad": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": [
|
"flake-utils": "flake-utils_3",
|
||||||
"taffybar",
|
"git-ignore-nix": "git-ignore-nix",
|
||||||
"flake-utils"
|
"nixpkgs": "nixpkgs_4",
|
||||||
],
|
|
||||||
"git-ignore-nix": [
|
|
||||||
"taffybar",
|
|
||||||
"git-ignore-nix"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"taffybar",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"unstable": "unstable"
|
"unstable": "unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1687976934,
|
"lastModified": 1763949843,
|
||||||
"narHash": "sha256-hUZmKy3jJ1+5rTGeQzfNR+LxgzmLaaeRVnbsJMEVw0Q=",
|
"narHash": "sha256-aJXmGPWKjXs7cagVzUE3fd2Fpc+sXnknM446AxHgvH0=",
|
||||||
"owner": "xmonad",
|
"owner": "xmonad",
|
||||||
"repo": "xmonad",
|
"repo": "xmonad",
|
||||||
"rev": "1aac6611d82065c9198e5584176058a9483fcbb0",
|
"rev": "97edef37a3ae10012272d692b5e1bc9b7013fc14",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "xmonad",
|
|
||||||
"ref": "master",
|
|
||||||
"repo": "xmonad",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"xmonad_2": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils_4",
|
|
||||||
"git-ignore-nix": "git-ignore-nix_2",
|
|
||||||
"nixpkgs": "nixpkgs_5",
|
|
||||||
"unstable": "unstable_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1702895348,
|
|
||||||
"narHash": "sha256-ADRTw4DTfDCmsSFFWZKmvdmIjnEVY7pjjUxYytKXy1E=",
|
|
||||||
"owner": "xmonad",
|
|
||||||
"repo": "xmonad",
|
|
||||||
"rev": "c4cf4715f736fed77fb2af622c0760259ac2cf43",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
@@ -1,15 +1,30 @@
|
|||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
flake-utils.url = github:numtide/flake-utils;
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
xmonad.url = github:xmonad/xmonad/master;
|
nixpkgs.url = "github:colonelpanic8/nixpkgs/remove-gi-gtk-hs-patch";
|
||||||
taffybar.url = "github:taffybar/taffybar";
|
xmonad.url = "github:xmonad/xmonad/master";
|
||||||
|
taffybar = {
|
||||||
|
url = "github:taffybar/taffybar/master";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
inputs.xmonad.follows = "xmonad";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
outputs = { self, flake-utils, taffybar, nixpkgs, xmonad }:
|
outputs = { self, flake-utils, taffybar, nixpkgs, xmonad }:
|
||||||
let
|
let
|
||||||
hoverlay = final: prev: hself: hsuper: {
|
hoverlay = final: prev: hself: hsuper:
|
||||||
taffybar = hsuper.taffybar.overrideAttrs (old: {
|
{
|
||||||
|
taffybar = prev.haskell.lib.overrideCabal hsuper.taffybar (oa: {
|
||||||
doHaddock = false;
|
doHaddock = false;
|
||||||
|
doCheck = false;
|
||||||
|
# Fix for GHC 9.4 where liftA2 is not in Prelude
|
||||||
|
postPatch = (oa.postPatch or "") + ''
|
||||||
|
substituteInPlace src/System/Taffybar/DBus/Client/Util.hs \
|
||||||
|
--replace-fail "import Control.Monad (forM)" \
|
||||||
|
"import Control.Monad (forM)
|
||||||
|
import Control.Applicative (liftA2)"
|
||||||
|
'';
|
||||||
});
|
});
|
||||||
|
# gi-gtk-hs patching is now handled by taffybar's fixVersionNamePackages overlay
|
||||||
imalison-taffybar = prev.haskell.lib.addPkgconfigDepends (
|
imalison-taffybar = prev.haskell.lib.addPkgconfigDepends (
|
||||||
hself.callCabal2nix "imalison-taffybar"
|
hself.callCabal2nix "imalison-taffybar"
|
||||||
(
|
(
|
||||||
@@ -34,12 +49,12 @@
|
|||||||
};
|
};
|
||||||
defComp = { compiler = "ghc94"; };
|
defComp = { compiler = "ghc94"; };
|
||||||
overlay = xmonad.lib.fromHOL hoverlay defComp;
|
overlay = xmonad.lib.fromHOL hoverlay defComp;
|
||||||
overlays = [ taffybar.overlay overlay ];
|
overlayList = [ taffybar.overlays.default overlay ];
|
||||||
in flake-utils.lib.eachDefaultSystem (system:
|
in flake-utils.lib.eachDefaultSystem (system:
|
||||||
let pkgs = import nixpkgs { inherit system overlays; config.allowBroken = true; };
|
let pkgs = import nixpkgs { inherit system; overlays = overlayList; config.allowBroken = true; };
|
||||||
hpkgs = pkgs.lib.attrsets.getAttrFromPath (xmonad.lib.hpath defComp) pkgs;
|
hpkgs = pkgs.lib.attrsets.getAttrFromPath (xmonad.lib.hpath defComp) pkgs;
|
||||||
in
|
in
|
||||||
rec {
|
{
|
||||||
devShell = hpkgs.shellFor {
|
devShell = hpkgs.shellFor {
|
||||||
packages = p: [ p.imalison-taffybar p.taffybar ];
|
packages = p: [ p.imalison-taffybar p.taffybar ];
|
||||||
nativeBuildInputs = with hpkgs; [
|
nativeBuildInputs = with hpkgs; [
|
||||||
@@ -48,5 +63,11 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
defaultPackage = hpkgs.imalison-taffybar;
|
defaultPackage = hpkgs.imalison-taffybar;
|
||||||
}) // { inherit overlay overlays; } ;
|
}) // {
|
||||||
|
inherit overlay;
|
||||||
|
overlays = {
|
||||||
|
default = overlay;
|
||||||
|
taffybar = taffybar.overlays.default;
|
||||||
|
};
|
||||||
|
} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ executable taffybar
|
|||||||
, containers
|
, containers
|
||||||
, directory
|
, directory
|
||||||
, filepath
|
, filepath
|
||||||
, gi-gtk
|
, gi-gtk3
|
||||||
, gtk-sni-tray
|
, gtk-sni-tray
|
||||||
, gtk-strut
|
, gtk-strut
|
||||||
, haskell-gi-base
|
, haskell-gi-base
|
||||||
|
|||||||
Submodule dotfiles/config/taffybar/taffybar updated: a82a8a0cff...a7a7e620da
@@ -218,7 +218,7 @@ main = do
|
|||||||
[ ( "uber-loaner"
|
[ ( "uber-loaner"
|
||||||
, baseConfig { endWidgets = laptopEndWidgets }
|
, baseConfig { endWidgets = laptopEndWidgets }
|
||||||
)
|
)
|
||||||
, ( "adele"
|
, ( "adell"
|
||||||
, baseConfig { endWidgets = laptopEndWidgets }
|
, baseConfig { endWidgets = laptopEndWidgets }
|
||||||
)
|
)
|
||||||
, ( "stevie-nixos"
|
, ( "stevie-nixos"
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
in flake-utils.lib.eachDefaultSystem (system:
|
in flake-utils.lib.eachDefaultSystem (system:
|
||||||
let pkgs = import nixpkgs { inherit system overlays; config.allowBroken = true; };
|
let pkgs = import nixpkgs { inherit system overlays; config.allowBroken = true; };
|
||||||
in
|
in
|
||||||
rec {
|
{
|
||||||
devShell = pkgs.haskellPackages.shellFor {
|
devShell = pkgs.haskellPackages.shellFor {
|
||||||
packages = p: [ p.imalison-xmonad p.xmonad-contrib ];
|
packages = p: [ p.imalison-xmonad p.xmonad-contrib ];
|
||||||
buildInputs = with pkgs.haskellPackages; [
|
buildInputs = with pkgs.haskellPackages; [
|
||||||
|
|||||||
Submodule dotfiles/config/xmonad/xmonad updated: 5c2ba06902...8113e0fe55
Submodule dotfiles/config/xmonad/xmonad-contrib updated: 229c7baf00...1a8da46855
@@ -1059,8 +1059,8 @@ addKeys conf@XConfig { modMask = modm } =
|
|||||||
, ((hyper .|. shiftMask, xK_q), spawn "toggle_mute_current_window.sh")
|
, ((hyper .|. shiftMask, xK_q), spawn "toggle_mute_current_window.sh")
|
||||||
, ((hctrl, xK_q), spawn "toggle_mute_current_window.sh only")
|
, ((hctrl, xK_q), spawn "toggle_mute_current_window.sh only")
|
||||||
|
|
||||||
, ((0, xF86XK_MonBrightnessUp), spawn "brightness.sh 5")
|
, ((0, xF86XK_MonBrightnessUp), spawn "brightness.sh up")
|
||||||
, ((0, xF86XK_MonBrightnessDown), spawn "brightness.sh -5")
|
, ((0, xF86XK_MonBrightnessDown), spawn "brightness.sh down")
|
||||||
|
|
||||||
] ++
|
] ++
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
(setq mc/cmds-to-run-for-all
|
(setq mc/cmds-to-run-for-all
|
||||||
'(
|
'(
|
||||||
TeX-insert-backslash
|
TeX-insert-backslash
|
||||||
|
align
|
||||||
backward-sexp
|
backward-sexp
|
||||||
beginning-of-buffer
|
beginning-of-buffer
|
||||||
beginning-of-visual-line
|
beginning-of-visual-line
|
||||||
|
|||||||
@@ -1138,7 +1138,8 @@ I keep it around just in case I need it.
|
|||||||
*** frame-mode
|
*** frame-mode
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(defvar imalison:use-frame-mode
|
(defvar imalison:use-frame-mode
|
||||||
(s-contains? "xmonad" (shell-command-to-string "wmctrl -m")))
|
(or (s-contains? "xmonad" (shell-command-to-string "wmctrl -m"))
|
||||||
|
(s-contains? "Hyprland" (shell-command-to-string "wmctrl -m"))))
|
||||||
|
|
||||||
(use-package frame-mode
|
(use-package frame-mode
|
||||||
:if imalison:use-frame-mode
|
:if imalison:use-frame-mode
|
||||||
@@ -2247,26 +2248,26 @@ I don't use auto-complete at all, so I have set up a hook to automatically disab
|
|||||||
#+END_SRC
|
#+END_SRC
|
||||||
* flycheck
|
* flycheck
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package flycheck
|
(use-package flycheck
|
||||||
:commands flycheck-mode
|
:commands flycheck-mode
|
||||||
:init (add-hook 'prog-mode-hook 'flycheck-mode)
|
:init (add-hook 'prog-mode-hook 'flycheck-mode)
|
||||||
:config
|
:config
|
||||||
(progn
|
(progn
|
||||||
(use-package flycheck-package
|
(use-package flycheck-package
|
||||||
:disabled t
|
:disabled t
|
||||||
:config (flycheck-package-setup))
|
:config (flycheck-package-setup))
|
||||||
|
|
||||||
(use-package flycheck-cask
|
(use-package flycheck-cask
|
||||||
:after flycheck
|
:after flycheck
|
||||||
:config
|
:config
|
||||||
(add-hook 'flycheck-mode-hook #'flycheck-cask-setup))
|
(add-hook 'flycheck-mode-hook #'flycheck-cask-setup))
|
||||||
|
|
||||||
(add-to-list 'flycheck-emacs-lisp-checkdoc-variables
|
(add-to-list 'flycheck-emacs-lisp-checkdoc-variables
|
||||||
'sentence-end-double-space)
|
'sentence-end-double-space)
|
||||||
(setq-default flycheck-disabled-checkers '(rust-cargo rust rust-clippy))
|
(setq-default flycheck-disabled-checkers '(rust-cargo rust rust-clippy))
|
||||||
(setq flycheck-display-errors-delay 10000)
|
(setq flycheck-display-errors-delay 10000)
|
||||||
(global-flycheck-mode))
|
(global-flycheck-mode))
|
||||||
:diminish flycheck-mode)
|
:diminish flycheck-mode)
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
* straight
|
* straight
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
@@ -2523,11 +2524,6 @@ Reduce indentation for some functions
|
|||||||
:config
|
:config
|
||||||
(progn (setq edebug-trace t)))
|
(progn (setq edebug-trace t)))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
**** overseer
|
|
||||||
#+BEGIN_SRC emacs-lisp
|
|
||||||
(use-package overseer
|
|
||||||
:defer t)
|
|
||||||
#+END_SRC
|
|
||||||
**** Misc
|
**** Misc
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(defun imenu-elisp-sections ()
|
(defun imenu-elisp-sections ()
|
||||||
@@ -3153,10 +3149,32 @@ My org-mode configuration now lives in its own file org-config.org.
|
|||||||
(unbind-key "C-j" magit-hunk-section-map)
|
(unbind-key "C-j" magit-hunk-section-map)
|
||||||
(unbind-key "C-j" magit-file-section-map)
|
(unbind-key "C-j" magit-file-section-map)
|
||||||
(unbind-key "C-j" magit-diff-section-base-map)
|
(unbind-key "C-j" magit-diff-section-base-map)
|
||||||
|
(remove-hook 'magit-status-headers-hook 'magit-insert-tags-header)
|
||||||
|
(setq magit-revision-insert-related-refs nil)
|
||||||
|
(remove-hook 'magit-status-sections-hook 'magit-insert-unpulled-from-upstream)
|
||||||
|
(remove-hook 'magit-status-sections-hook 'magit-insert-unpushed-to-upstream-or-recent)
|
||||||
(setq magit-last-seen-setup-instructions "1.4.0"
|
(setq magit-last-seen-setup-instructions "1.4.0"
|
||||||
magit-display-buffer-function
|
magit-display-buffer-function
|
||||||
'magit-display-buffer-same-window-except-diff-v1)
|
'magit-display-buffer-same-window-except-diff-v1)
|
||||||
(magit-auto-revert-mode)
|
(magit-auto-revert-mode)
|
||||||
|
(dir-locals-set-class-variables
|
||||||
|
'huge-git-repository
|
||||||
|
'((nil
|
||||||
|
. ((magit-refresh-buffers . nil)
|
||||||
|
(magit-revision-insert-related-refs . nil)))
|
||||||
|
(magit-status-mode
|
||||||
|
. ((eval . (magit-disable-section-inserter 'magit-insert-tags-header))
|
||||||
|
(eval . (magit-disable-section-inserter 'magit-insert-recent-commits))
|
||||||
|
(eval . (magit-disable-section-inserter 'magit-insert-unpushed-to-pushremote))
|
||||||
|
(eval . (magit-disable-section-inserter 'magit-insert-unpushed-to-upstream-or-recent))
|
||||||
|
(eval . (magit-disable-section-inserter 'magit-insert-unpulled-from-pushremote))
|
||||||
|
(eval . (magit-disable-section-inserter 'magit-insert-unpulled-from-pushremote))
|
||||||
|
(eval . (magit-disable-section-inserter 'magit-insert-unpulled-from-upstream))
|
||||||
|
))
|
||||||
|
))
|
||||||
|
|
||||||
|
(dir-locals-set-directory-class
|
||||||
|
"/home/imalison/Projects/nixpkgs" 'huge-git-repository)
|
||||||
|
|
||||||
(add-to-list 'org-show-context-detail '(magit-goto . lineage))
|
(add-to-list 'org-show-context-detail '(magit-goto . lineage))
|
||||||
(advice-add 'magit-diff-visit-file :after 'imalison:after-magit-visit-file)
|
(advice-add 'magit-diff-visit-file :after 'imalison:after-magit-visit-file)
|
||||||
@@ -3554,6 +3572,15 @@ crux-reopen-as-root-mode makes it so that any file owned by root will automatica
|
|||||||
(setq gptel-model "gpt-4")
|
(setq gptel-model "gpt-4")
|
||||||
))
|
))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
** claude-code-ide
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(use-package claude-code-ide
|
||||||
|
:straight (:type git :host github :repo "manzaltu/claude-code-ide.el")
|
||||||
|
:bind ("C-c C-'" . claude-code-ide-menu)
|
||||||
|
:config
|
||||||
|
(claude-code-ide-emacs-tools-setup)
|
||||||
|
(setq claude-code-ide-terminal-backend 'eat))
|
||||||
|
#+end_src
|
||||||
* Cooperation
|
* Cooperation
|
||||||
** togetherly
|
** togetherly
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
@@ -3663,24 +3690,10 @@ I had to disable this mode because something that it does messes with coding set
|
|||||||
(progn
|
(progn
|
||||||
(add-hook 'prog-mode-hook (lambda () (rainbow-delimiters-mode t)))))
|
(add-hook 'prog-mode-hook (lambda () (rainbow-delimiters-mode t)))))
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
** undo-tree
|
** vundo
|
||||||
Disabled because it makes it hard to redo things
|
#+begin_src emacs-lisp
|
||||||
#+BEGIN_SRC emacs-lisp
|
(use-package vundo)
|
||||||
(use-package undo-tree
|
#+end_src
|
||||||
:disabled t
|
|
||||||
:bind (("C--" . undo-redo)
|
|
||||||
("C-c u" . undo-tree-visualize)
|
|
||||||
("C-c r" . undo-tree-redo))
|
|
||||||
:config
|
|
||||||
(diminish 'undo-tree-mode)
|
|
||||||
:init
|
|
||||||
(progn
|
|
||||||
;;(setq undo-tree-visualizer-diff t) ;; This causes performance problems
|
|
||||||
(setq undo-limit (expt 2 25)
|
|
||||||
undo-strong-limit (expt 2 25))
|
|
||||||
(global-undo-tree-mode)
|
|
||||||
(setq undo-tree-visualizer-timestamps t)))
|
|
||||||
#+END_SRC
|
|
||||||
** recentf
|
** recentf
|
||||||
#+BEGIN_SRC emacs-lisp
|
#+BEGIN_SRC emacs-lisp
|
||||||
(use-package recentf
|
(use-package recentf
|
||||||
|
|||||||
@@ -66,7 +66,7 @@
|
|||||||
(use-package org
|
(use-package org
|
||||||
:straight
|
:straight
|
||||||
(org :type git :host github :repo "colonelpanic8/org-mode" :local-repo "org"
|
(org :type git :host github :repo "colonelpanic8/org-mode" :local-repo "org"
|
||||||
:branch "my-main"
|
:branch "my-main-2025"
|
||||||
:depth full :pre-build (straight-recipes-org-elpa--build) :build
|
:depth full :pre-build (straight-recipes-org-elpa--build) :build
|
||||||
(:not autoloads) :files
|
(:not autoloads) :files
|
||||||
(:defaults "lisp/*.el" ("etc/styles/" "etc/styles/*")))
|
(:defaults "lisp/*.el" ("etc/styles/" "etc/styles/*")))
|
||||||
|
|||||||
@@ -58,41 +58,11 @@ This makes evil-mode play nice with org-fc
|
|||||||
(file+datetree "~/org/weekly_reviews.org")
|
(file+datetree "~/org/weekly_reviews.org")
|
||||||
(file "~/org/weekly_review_template.org")))))
|
(file "~/org/weekly_review_template.org")))))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
** Journal
|
||||||
** Daily Journal Entries
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun imalison:journal-filepath-for-date (&optional date)
|
(setq imalison:journal-template-filepath
|
||||||
(interactive (list (org-read-date)))
|
(imalison:join-paths org-directory "templates" "daily-journal-template.org"))
|
||||||
(let ((date-str (or date (format-time-string "%Y-%m-%d"))))
|
|
||||||
(imalison:join-paths
|
|
||||||
org-directory "journal" (concat date-str ".org"))))
|
|
||||||
|
|
||||||
(defun imalison:open-todays-org-journal ()
|
|
||||||
(interactive)
|
|
||||||
(imalison:open-org-journal (format-time-string "%Y-%m-%d")))
|
|
||||||
|
|
||||||
(defun imalison:get-journal-template ()
|
|
||||||
(with-temp-buffer
|
|
||||||
(insert-file-contents (imalison:join-paths org-directory "templates" "daily-journal-template.org"))
|
|
||||||
(buffer-string)))
|
|
||||||
|
|
||||||
(defun imalison:open-org-journal (&optional date)
|
|
||||||
(interactive (list (org-read-date nil nil nil "Select a date:")))
|
|
||||||
(let* ((filepath (imalison:journal-filepath-for-date date))
|
|
||||||
(file-existed (file-exists-p filepath))
|
|
||||||
(date-str (or date (format-time-string "%Y-%m-%d")))
|
|
||||||
(time-vals (append '(0 0 0) (nthcdr 3 (parse-time-string date-str))))
|
|
||||||
(original-format-time-string (symbol-function 'format-time-string)))
|
|
||||||
(find-file filepath)
|
|
||||||
(when (not file-existed)
|
|
||||||
(cl-letf (((symbol-function 'format-time-string)
|
|
||||||
(lambda (format-string &optional _time _universal)
|
|
||||||
(funcall original-format-time-string format-string (apply #'encode-time time-vals)))))
|
|
||||||
(insert (org-capture-fill-template (imalison:get-journal-template)))))))
|
|
||||||
|
|
||||||
(bind-key "C-c j" 'imalison:open-todays-org-journal)
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Insert a link to a task selected from agenda
|
** Insert a link to a task selected from agenda
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(defun imalison:insert-link-to-agenda ()
|
(defun imalison:insert-link-to-agenda ()
|
||||||
@@ -161,6 +131,10 @@ This makes evil-mode play nice with org-fc
|
|||||||
* Packages
|
* Packages
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(use-package org-drill)
|
(use-package org-drill)
|
||||||
|
(require 'package)
|
||||||
|
(add-to-list 'package-archives
|
||||||
|
'("melpa" . "https://melpa.org/packages/") t)
|
||||||
|
(package-initialize)
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
@@ -168,3 +142,35 @@ This makes evil-mode play nice with org-fc
|
|||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(setq org-wild-notifier-day-wide-alert-times nil)
|
(setq org-wild-notifier-day-wide-alert-times nil)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
* Swift
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(require 'package)
|
||||||
|
(add-to-list 'package-archives
|
||||||
|
'("melpa" . "https://melpa.org/packages/") t)
|
||||||
|
(package-initialize)
|
||||||
|
|
||||||
|
(unless (package-installed-p 'swift-mode)
|
||||||
|
(package-refresh-contents)
|
||||||
|
(package-install 'swift-mode))
|
||||||
|
|
||||||
|
(unless (package-installed-p 'lsp-mode)
|
||||||
|
(package-refresh-contents)
|
||||||
|
(package-install 'lsp-mode))
|
||||||
|
|
||||||
|
;; Swift Mode
|
||||||
|
(require 'swift-mode)
|
||||||
|
(add-to-list 'auto-mode-alist '("\\.swift\\'" . swift-mode))
|
||||||
|
|
||||||
|
;; LSP Mode
|
||||||
|
(require 'lsp-mode)
|
||||||
|
(add-hook 'swift-mode-hook #'lsp)
|
||||||
|
|
||||||
|
;; Set the path to SourceKit-LSP if it's not in your PATH
|
||||||
|
(setq lsp-sourcekit-executable "/path/to/sourcekit-lsp")
|
||||||
|
|
||||||
|
;; Optional: Set the path to your Swift toolchain if necessary
|
||||||
|
(setq lsp-sourcekit-executable-args '("-toolchain" "/path/to/swift-toolchain"))
|
||||||
|
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
|||||||
91
dotfiles/emacs.d/org-api.el
Normal file
91
dotfiles/emacs.d/org-api.el
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
(let ((current-dir (if load-file-name (file-name-directory load-file-name) "~/.emacs.d/")))
|
||||||
|
(load (expand-file-name "init.el" current-dir)))
|
||||||
|
|
||||||
|
(use-package simple-httpd
|
||||||
|
:demand t)
|
||||||
|
|
||||||
|
(require 'simple-httpd)
|
||||||
|
|
||||||
|
(defun org-api-get-todo-elements-from-filepath (filepath)
|
||||||
|
(let ((todo-elements nil))
|
||||||
|
(with-current-buffer (find-file-noselect filepath)
|
||||||
|
(save-excursion
|
||||||
|
(goto-char (point-min))
|
||||||
|
(while (re-search-forward org-todo-regexp nil t)
|
||||||
|
(let* ((element (org-element-at-point))
|
||||||
|
(type (org-element-type element)))
|
||||||
|
(when (eq type 'headline)
|
||||||
|
(let ((todo (org-element-property :todo-keyword element)))
|
||||||
|
(when todo
|
||||||
|
(push element todo-elements))))))))
|
||||||
|
todo-elements))
|
||||||
|
|
||||||
|
(defun org-api-get-agenda-todos ()
|
||||||
|
(let* ((today (calendar-gregorian-from-absolute (org-today))))
|
||||||
|
(mapcan 'org-api-get-todo-elements-from-filepath org-agenda-files)))
|
||||||
|
|
||||||
|
(defun org-api-get-element-json (element)
|
||||||
|
(let ((todo (org-element-property :todo-keyword element))
|
||||||
|
(title (org-element-property :raw-value element))
|
||||||
|
(tags (org-element-property :tags element))
|
||||||
|
(level (org-element-property :level element))
|
||||||
|
(scheduled (org-element-property :scheduled element))
|
||||||
|
(deadline (org-element-property :deadline element)))
|
||||||
|
`(("todo" . ,todo)
|
||||||
|
("title" . ,title)
|
||||||
|
("tags" . ,tags)
|
||||||
|
("level" . ,level)
|
||||||
|
("scheduled" . ,(when scheduled (org-format-timestamp scheduled "%Y-%m-%dT%H:%M:%SZ")))
|
||||||
|
("deadline" . ,(when deadline (org-format-timestamp deadline "%Y-%m-%dT%H:%M:%SZ"))))))
|
||||||
|
|
||||||
|
(defun org-api-item-json (item)
|
||||||
|
(let* ((todo (get-text-property 0 'todo-state item))
|
||||||
|
(title (substring-no-properties item))
|
||||||
|
(tags (get-text-property 0 'tags item))
|
||||||
|
(s (get-text-property 0 'ts-date item))
|
||||||
|
(scheduled (when s
|
||||||
|
(org-format-timestamp (org-time-from-absolute s) "%Y-%m-%dT%H:%M:%SZ") )))
|
||||||
|
`(("todo" . ,todo)
|
||||||
|
("title" . ,title)
|
||||||
|
("tags" . ,tags))))
|
||||||
|
|
||||||
|
|
||||||
|
(defun org-api-get-scheduled-or-deadlined (day filepath)
|
||||||
|
(with-current-buffer (find-file-noselect filepath)
|
||||||
|
(org-dlet ((date day))
|
||||||
|
(setf org-agenda-current-date date)
|
||||||
|
(nconc (org-agenda-get-deadlines) (org-agenda-get-scheduled)))))
|
||||||
|
|
||||||
|
(defun org-api-get-today-agenda ()
|
||||||
|
(let ((day (calendar-current-date)))
|
||||||
|
(mapcan (lambda (filepath) (org-api-get-scheduled-or-deadlined day filepath))
|
||||||
|
org-agenda-files)))
|
||||||
|
|
||||||
|
(defservlet get-all-todos application/json ()
|
||||||
|
(insert (json-encode (mapcar 'org-api-get-element-json (org-api-get-agenda-todos)))))
|
||||||
|
|
||||||
|
(defservlet get-todays-agenda application/json ()
|
||||||
|
(insert
|
||||||
|
(json-encode
|
||||||
|
(mapcar 'org-api-item-json
|
||||||
|
(org-api-get-today-agenda)))))
|
||||||
|
|
||||||
|
(defservlet create-todo application/json (a b c)
|
||||||
|
(org-api-capture (gethash "title" (json-parse-string (cadr (assoc "Content" c))))))
|
||||||
|
|
||||||
|
(cl-defun org-api-build-capture-template
|
||||||
|
(content &key (character "d") (heading "Dynamic"))
|
||||||
|
`(,character ,heading entry (file "~/org/inbox.org")
|
||||||
|
(function (lambda ()
|
||||||
|
(imalison:make-org-todo-template :content content)))
|
||||||
|
:immediate-finish t))
|
||||||
|
|
||||||
|
(defun org-api-capture (content)
|
||||||
|
(let* ((org-capture-templates (list (org-api-build-capture-template content))))
|
||||||
|
(org-capture nil "d")))
|
||||||
|
|
||||||
|
|
||||||
|
(message "Starting http server")
|
||||||
|
(setq httpd-port 2025)
|
||||||
|
(httpd-start)
|
||||||
|
(message "Finished starting http server")
|
||||||
@@ -62,6 +62,11 @@ We're going to use this to write separate parts of our config to different secti
|
|||||||
(imalison:join-paths imalison:shared-org-dir "ivan_orgzly.org")
|
(imalison:join-paths imalison:shared-org-dir "ivan_orgzly.org")
|
||||||
(imalison:join-paths imalison:org-dir "orgzly.org")))
|
(imalison:join-paths imalison:org-dir "orgzly.org")))
|
||||||
|
|
||||||
|
(defvar imalison:repeating-org-files
|
||||||
|
(list imalison:org-habits-file imalison:shared-habits-file imalison:shared-repeating-file))
|
||||||
|
|
||||||
|
(defvar imalison:include-repeating-in-agenda nil)
|
||||||
|
|
||||||
(defun imalison:add-to-org-agenda-files (incoming-files)
|
(defun imalison:add-to-org-agenda-files (incoming-files)
|
||||||
(setq org-agenda-files
|
(setq org-agenda-files
|
||||||
(delete-dups
|
(delete-dups
|
||||||
@@ -199,6 +204,35 @@ We're going to use this to write separate parts of our config to different secti
|
|||||||
((current-time (&rest args) time))
|
((current-time (&rest args) time))
|
||||||
(funcall fn)))
|
(funcall fn)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
** Reschedule Past Items to Today
|
||||||
|
This function finds all incomplete items in the agenda files that are scheduled
|
||||||
|
in the past and reschedules them to today. Useful for catching up on tasks that
|
||||||
|
have slipped past their original scheduled date.
|
||||||
|
#+begin_src emacs-lisp :tangle org-config-config.el
|
||||||
|
(defun imalison:reschedule-past-to-today ()
|
||||||
|
"Reschedule all incomplete items scheduled in the past to today.
|
||||||
|
Iterates through all org-agenda files and reschedules any TODO items
|
||||||
|
that have a SCHEDULED date before today to the current date."
|
||||||
|
(interactive)
|
||||||
|
(let* ((today-time (org-time-string-to-time (format-time-string "<%Y-%m-%d>")))
|
||||||
|
(rescheduled-count 0))
|
||||||
|
(org-map-entries
|
||||||
|
(lambda ()
|
||||||
|
(let* ((scheduled (org-entry-get nil "SCHEDULED"))
|
||||||
|
(scheduled-time (when scheduled (org-time-string-to-time scheduled))))
|
||||||
|
(when (and scheduled-time
|
||||||
|
(not (org-entry-is-done-p))
|
||||||
|
(time-less-p scheduled-time today-time))
|
||||||
|
(org-schedule nil ".")
|
||||||
|
(cl-incf rescheduled-count))))
|
||||||
|
nil
|
||||||
|
'agenda)
|
||||||
|
(message "Rescheduled %d items to today" rescheduled-count)))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
: imalison:reschedule-past-to-today
|
||||||
|
|
||||||
** Miscellaneous
|
** Miscellaneous
|
||||||
#+begin_src emacs-lisp :tangle org-config-config.el
|
#+begin_src emacs-lisp :tangle org-config-config.el
|
||||||
(add-to-list 'org-show-context-detail '(org-goto . lineage))
|
(add-to-list 'org-show-context-detail '(org-goto . lineage))
|
||||||
@@ -366,12 +400,13 @@ We're going to use this to write separate parts of our config to different secti
|
|||||||
*** Agenda Files
|
*** Agenda Files
|
||||||
#+begin_src emacs-lisp :tangle org-config-config.el
|
#+begin_src emacs-lisp :tangle org-config-config.el
|
||||||
(imalison:add-to-org-agenda-files
|
(imalison:add-to-org-agenda-files
|
||||||
(nconc (list imalison:org-gtd-file imalison:org-habits-file
|
(nconc (list imalison:org-gtd-file imalison:org-calendar-file
|
||||||
imalison:org-calendar-file imalison:org-inbox-file
|
imalison:org-inbox-file imalison:shared-org-gtd-file
|
||||||
imalison:shared-org-gtd-file imalison:shared-habits-file
|
imalison:shared-calendar-file imalison:shared-shopping-file)
|
||||||
imalison:shared-calendar-file imalison:shared-shopping-file
|
|
||||||
imalison:shared-repeating-file)
|
|
||||||
imalison:orgzly-files))
|
imalison:orgzly-files))
|
||||||
|
|
||||||
|
(when imalison:include-repeating-in-agenda
|
||||||
|
(imalison:add-to-org-agenda-files imalison:repeating-org-files))
|
||||||
#+end_src
|
#+end_src
|
||||||
*** Predicates
|
*** Predicates
|
||||||
#+begin_src emacs-lisp :tangle org-config-config.el
|
#+begin_src emacs-lisp :tangle org-config-config.el
|
||||||
@@ -588,6 +623,43 @@ specific time, they should appear in the agenda at that time!
|
|||||||
(defun imalison:make-org-linked-todo-template ()
|
(defun imalison:make-org-linked-todo-template ()
|
||||||
(imalison:make-org-todo-template "[#C] %? %A"))
|
(imalison:make-org-todo-template "[#C] %? %A"))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
*** Journal
|
||||||
|
#+begin_src emacs-lisp :tangle org-config-config.el
|
||||||
|
(defun imalison:journal-filepath-for-date (&optional date)
|
||||||
|
(interactive (list (org-read-date)))
|
||||||
|
(let ((date-str (or date (format-time-string "%Y-%m-%d"))))
|
||||||
|
(imalison:join-paths
|
||||||
|
org-directory "journal" (concat date-str ".org"))))
|
||||||
|
|
||||||
|
(defun imalison:open-todays-org-journal ()
|
||||||
|
(interactive)
|
||||||
|
(imalison:open-org-journal (format-time-string "%Y-%m-%d")))
|
||||||
|
|
||||||
|
(defvar imalison:journal-template-filepath
|
||||||
|
(imalison:join-paths org-directory "capture-templates" "journal.org"))
|
||||||
|
|
||||||
|
(defun imalison:get-journal-template ()
|
||||||
|
(with-temp-buffer
|
||||||
|
(insert-file-contents imalison:journal-template-filepath)
|
||||||
|
(buffer-string)))
|
||||||
|
|
||||||
|
(defun imalison:open-org-journal (&optional date)
|
||||||
|
(interactive (list (org-read-date nil nil nil "Select a date:")))
|
||||||
|
(let* ((filepath (imalison:journal-filepath-for-date date))
|
||||||
|
(file-existed (file-exists-p filepath))
|
||||||
|
(date-str (or date (format-time-string "%Y-%m-%d")))
|
||||||
|
(time-vals (append '(0 0 0) (nthcdr 3 (parse-time-string date-str))))
|
||||||
|
(original-format-time-string (symbol-function 'format-time-string)))
|
||||||
|
(find-file filepath)
|
||||||
|
(when (not file-existed)
|
||||||
|
(cl-letf (((symbol-function 'format-time-string)
|
||||||
|
(lambda (format-string &optional _time _universal)
|
||||||
|
(funcall original-format-time-string format-string (apply #'encode-time time-vals)))))
|
||||||
|
(insert (org-capture-fill-template (imalison:get-journal-template)))))))
|
||||||
|
|
||||||
|
(bind-key "C-c j" 'imalison:open-todays-org-journal)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
*** Templates
|
*** Templates
|
||||||
#+begin_src emacs-lisp :tangle org-config-config.el
|
#+begin_src emacs-lisp :tangle org-config-config.el
|
||||||
(use-package org-capture
|
(use-package org-capture
|
||||||
@@ -626,7 +698,15 @@ SCHEDULED: %^t
|
|||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CREATED: %U
|
:CREATED: %U
|
||||||
:STYLE: habit
|
:STYLE: habit
|
||||||
:END:")))
|
:END:"))
|
||||||
|
(add-to-list 'org-capture-templates
|
||||||
|
'("w" "Weekly Planning and Self Assesment"
|
||||||
|
plain
|
||||||
|
(function (lambda ()
|
||||||
|
(find-file (let ((date (format-time-string "%Y-%m-%d")))
|
||||||
|
(expand-file-name (concat date ".org")
|
||||||
|
"~/org/weekly")))))
|
||||||
|
(file "~/org/capture-templates/weekly.org"))))
|
||||||
#+end_src
|
#+end_src
|
||||||
** Babel
|
** Babel
|
||||||
#+begin_src emacs-lisp :tangle org-config-config.el
|
#+begin_src emacs-lisp :tangle org-config-config.el
|
||||||
|
|||||||
5
dotfiles/emacs.d/snippets/python-mode/inp
Normal file
5
dotfiles/emacs.d/snippets/python-mode/inp
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# -*- mode: snippet -*-
|
||||||
|
# name: inp
|
||||||
|
# key: inp
|
||||||
|
# --
|
||||||
|
import numpy as np
|
||||||
5
dotfiles/emacs.d/snippets/python-mode/isa
Normal file
5
dotfiles/emacs.d/snippets/python-mode/isa
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# -*- mode: snippet -*-
|
||||||
|
# name: isa
|
||||||
|
# key: isa
|
||||||
|
# --
|
||||||
|
import sqlalchemy as sa
|
||||||
164
dotfiles/lib/bin/brightness.hs
Executable file
164
dotfiles/lib/bin/brightness.hs
Executable file
@@ -0,0 +1,164 @@
|
|||||||
|
#!/usr/bin/env runhaskell
|
||||||
|
|
||||||
|
import System.Environment (getArgs)
|
||||||
|
import System.Process
|
||||||
|
import System.Exit
|
||||||
|
import Data.List (isPrefixOf, isSuffixOf)
|
||||||
|
import Data.Maybe (mapMaybe, fromMaybe)
|
||||||
|
import Text.Read (readMaybe)
|
||||||
|
import Control.Monad (forM, when)
|
||||||
|
import Data.Time.Clock
|
||||||
|
import Data.Time.Format
|
||||||
|
import System.IO
|
||||||
|
|
||||||
|
-- Types
|
||||||
|
data Device = Device { deviceName :: String, deviceBrightness :: Int }
|
||||||
|
deriving (Show)
|
||||||
|
|
||||||
|
data BrightnessCommand = Absolute Int | Increase Int | Decrease Int | Query
|
||||||
|
deriving (Show)
|
||||||
|
|
||||||
|
-- Logging
|
||||||
|
logAction :: String -> IO ()
|
||||||
|
logAction arg = do
|
||||||
|
time <- getCurrentTime
|
||||||
|
let timeStr = formatTime defaultTimeLocale "%Y-%m-%d %H:%M:%S" time
|
||||||
|
ppid <- readProcess "sh" ["-c", "ps -p $PPID -o comm= 2>/dev/null || echo unknown"] ""
|
||||||
|
pwd <- readProcess "pwd" [] ""
|
||||||
|
let logEntry = "[" ++ timeStr ++ "] Called with: '" ++ arg ++ "' | Parent: " ++
|
||||||
|
filter (/= '\n') ppid ++ " | PWD: " ++ filter (/= '\n') pwd ++ "\n"
|
||||||
|
appendFile "/tmp/brightness.log" logEntry
|
||||||
|
|
||||||
|
-- Parse command line argument
|
||||||
|
parseArg :: String -> BrightnessCommand
|
||||||
|
parseArg "" = Query
|
||||||
|
parseArg ('+':rest) = case readMaybe rest of
|
||||||
|
Just n -> Increase n
|
||||||
|
Nothing -> Query
|
||||||
|
parseArg ('-':rest) = case readMaybe rest of
|
||||||
|
Just n -> Decrease n
|
||||||
|
Nothing -> Query
|
||||||
|
parseArg s = case readMaybe s of
|
||||||
|
Just n -> Absolute n
|
||||||
|
Nothing -> Query
|
||||||
|
|
||||||
|
-- Get list of backlight devices
|
||||||
|
getBacklightDevices :: IO [String]
|
||||||
|
getBacklightDevices = do
|
||||||
|
output <- readProcess "brightnessctl" ["--list"] ""
|
||||||
|
return $ mapMaybe extractDevice (lines output)
|
||||||
|
where
|
||||||
|
extractDevice line
|
||||||
|
| "Device '" `isInfixOf` line && "class 'backlight'" `isInfixOf` line =
|
||||||
|
let afterDevice = drop (length "Device '") line
|
||||||
|
deviceName = takeWhile (/= '\'') afterDevice
|
||||||
|
in if null deviceName then Nothing else Just deviceName
|
||||||
|
| otherwise = Nothing
|
||||||
|
|
||||||
|
-- Get brightness percentage for a device
|
||||||
|
getDeviceBrightness :: String -> IO (Maybe Int)
|
||||||
|
getDeviceBrightness device = do
|
||||||
|
output <- readProcess "brightnessctl" ["-d", device] ""
|
||||||
|
return $ extractPercentage output
|
||||||
|
where
|
||||||
|
extractPercentage s = case dropWhile (/= '(') s of
|
||||||
|
('(':rest) -> readMaybe (takeWhile (/= '%') rest)
|
||||||
|
_ -> Nothing
|
||||||
|
|
||||||
|
-- Set brightness for a device
|
||||||
|
setDeviceBrightness :: String -> String -> IO ()
|
||||||
|
setDeviceBrightness device cmd = do
|
||||||
|
_ <- readProcess "brightnessctl" ["-d", device, "set", cmd] ""
|
||||||
|
return ()
|
||||||
|
|
||||||
|
-- Build brightness command string
|
||||||
|
buildCommand :: BrightnessCommand -> String
|
||||||
|
buildCommand (Absolute n) = show n ++ "%"
|
||||||
|
buildCommand (Increase n) = show n ++ "%+"
|
||||||
|
buildCommand (Decrease n) = show n ++ "%-"
|
||||||
|
buildCommand Query = ""
|
||||||
|
|
||||||
|
-- Apply brightness change to all devices
|
||||||
|
applyBrightness :: BrightnessCommand -> IO ()
|
||||||
|
applyBrightness Query = return ()
|
||||||
|
applyBrightness cmd = do
|
||||||
|
devices <- getBacklightDevices
|
||||||
|
let cmdStr = buildCommand cmd
|
||||||
|
|
||||||
|
-- Log what we're about to do
|
||||||
|
appendFile "/tmp/brightness.log" $
|
||||||
|
" Applying: " ++ cmdStr ++ " to devices: " ++ show devices ++ "\n"
|
||||||
|
|
||||||
|
-- Apply to all devices
|
||||||
|
mapM_ (\dev -> setDeviceBrightness dev cmdStr) devices
|
||||||
|
|
||||||
|
-- Sync devices if needed
|
||||||
|
when (length devices > 1) $ do
|
||||||
|
brightnesses <- forM devices $ \dev -> do
|
||||||
|
mbBright <- getDeviceBrightness dev
|
||||||
|
return (dev, mbBright)
|
||||||
|
|
||||||
|
let validBrightnesses = [(d, b) | (d, Just b) <- brightnesses]
|
||||||
|
when (not $ null validBrightnesses) $ do
|
||||||
|
let values = map snd validBrightnesses
|
||||||
|
maxBright = maximum values
|
||||||
|
minBright = minimum values
|
||||||
|
|
||||||
|
-- If devices are out of sync
|
||||||
|
when (maxBright /= minBright) $ do
|
||||||
|
-- Use minimum when brightness is low (15% or below)
|
||||||
|
let syncValue = if maxBright <= 15 then minBright else maxBright
|
||||||
|
-- Log sync decision for debugging
|
||||||
|
appendFile "/tmp/brightness.log" $
|
||||||
|
" Syncing: max=" ++ show maxBright ++ "%, min=" ++ show minBright ++
|
||||||
|
"%, using=" ++ show syncValue ++ "%\n"
|
||||||
|
mapM_ (\dev -> setDeviceBrightness dev (show syncValue ++ "%")) devices
|
||||||
|
|
||||||
|
-- Get average brightness across all devices
|
||||||
|
getAverageBrightness :: IO Int
|
||||||
|
getAverageBrightness = do
|
||||||
|
devices <- getBacklightDevices
|
||||||
|
if null devices
|
||||||
|
then return 50 -- Default fallback
|
||||||
|
else do
|
||||||
|
brightnesses <- forM devices getDeviceBrightness
|
||||||
|
let validValues = [b | Just b <- brightnesses]
|
||||||
|
if null validValues
|
||||||
|
then return 50
|
||||||
|
else return $ sum validValues `div` length validValues
|
||||||
|
|
||||||
|
-- Send notification using rumno if available
|
||||||
|
sendNotification :: Int -> IO ()
|
||||||
|
sendNotification brightness = do
|
||||||
|
rumnoExists <- (== ExitSuccess) <$>
|
||||||
|
rawSystem "sh" ["-c", "command -v rumno >/dev/null 2>&1"]
|
||||||
|
if rumnoExists
|
||||||
|
then do
|
||||||
|
_ <- readProcess "rumno" ["notify", "-b", show brightness] ""
|
||||||
|
return ()
|
||||||
|
else putStrLn (show brightness)
|
||||||
|
|
||||||
|
-- Check if a string contains another
|
||||||
|
isInfixOf :: String -> String -> Bool
|
||||||
|
isInfixOf needle haystack = any (isPrefixOf needle) (tails haystack)
|
||||||
|
where
|
||||||
|
tails [] = [[]]
|
||||||
|
tails xs@(_:xs') = xs : tails xs'
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = do
|
||||||
|
args <- getArgs
|
||||||
|
let arg = case args of
|
||||||
|
[] -> ""
|
||||||
|
(x:_) -> x
|
||||||
|
|
||||||
|
-- Log the invocation
|
||||||
|
logAction arg
|
||||||
|
|
||||||
|
-- Parse and apply command
|
||||||
|
let cmd = parseArg arg
|
||||||
|
applyBrightness cmd
|
||||||
|
|
||||||
|
-- Get current brightness and notify
|
||||||
|
brightness <- getAverageBrightness
|
||||||
|
sendNotification brightness
|
||||||
@@ -1,3 +1,92 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
volnoti-show $(sudo brightness_manager.py -c "$@" -p)
|
# Get the brightness argument (default to empty string to just show current)
|
||||||
|
ARG="${1:-}"
|
||||||
|
|
||||||
|
# Log the incoming arguments for debugging
|
||||||
|
echo "[$(date '+%Y-%m-%d %H:%M:%S')] brightness.sh called with: '$ARG' (all args: $@)" >> /tmp/brightness_bash.log
|
||||||
|
|
||||||
|
# Function to get current brightness percentage
|
||||||
|
get_brightness_percentage() {
|
||||||
|
# Get list of display backlight devices only (filter by class 'backlight')
|
||||||
|
local devices=$(brightnessctl --list 2>/dev/null | grep 'class.*backlight' | cut -d' ' -f2 | cut -d"'" -f2)
|
||||||
|
local device_count=$(echo "$devices" | wc -w)
|
||||||
|
|
||||||
|
if [ "$device_count" -eq 0 ]; then
|
||||||
|
echo "50" # Default fallback
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$device_count" -eq 1 ]; then
|
||||||
|
# Single device - just output its percentage
|
||||||
|
local info=$(brightnessctl 2>/dev/null | grep -oP '\d+%' | head -1 | tr -d '%')
|
||||||
|
if [ -n "$info" ]; then
|
||||||
|
echo "$info"
|
||||||
|
else
|
||||||
|
echo "50"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# Multiple devices - calculate average brightness
|
||||||
|
local total=0
|
||||||
|
local count=0
|
||||||
|
for device in $devices; do
|
||||||
|
local info=$(brightnessctl -d "$device" 2>/dev/null | grep -oP '\d+%' | head -1 | tr -d '%')
|
||||||
|
if [ -n "$info" ]; then
|
||||||
|
total=$((total + info))
|
||||||
|
count=$((count + 1))
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ "$count" -gt 0 ]; then
|
||||||
|
echo $((total / count))
|
||||||
|
else
|
||||||
|
echo "50"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Apply brightness change if argument provided
|
||||||
|
if [ -n "$ARG" ]; then
|
||||||
|
# Determine if it's absolute or relative
|
||||||
|
if [[ "$ARG" == "up" ]]; then
|
||||||
|
# Increase by 5%
|
||||||
|
BRIGHTNESS_CMD="5%+"
|
||||||
|
elif [[ "$ARG" == "down" ]]; then
|
||||||
|
# Decrease by 5%
|
||||||
|
BRIGHTNESS_CMD="5%-"
|
||||||
|
elif [[ "$ARG" == +* ]]; then
|
||||||
|
# Relative increase (e.g., +5)
|
||||||
|
BRIGHTNESS_CMD="${ARG:1}%+"
|
||||||
|
elif [[ "$ARG" == -* ]]; then
|
||||||
|
# Relative decrease (e.g., -5)
|
||||||
|
BRIGHTNESS_CMD="${ARG:1}%-"
|
||||||
|
else
|
||||||
|
# Absolute value (e.g., 50)
|
||||||
|
BRIGHTNESS_CMD="${ARG}%"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Try to apply to all devices
|
||||||
|
# Get list of display backlight devices only (filter by class 'backlight')
|
||||||
|
DEVICES=$(brightnessctl --list 2>/dev/null | grep 'class.*backlight' | cut -d' ' -f2 | cut -d"'" -f2)
|
||||||
|
|
||||||
|
if [ -n "$DEVICES" ]; then
|
||||||
|
# Apply to each device independently without syncing
|
||||||
|
# This allows each device to maintain its own brightness range
|
||||||
|
for device in $DEVICES; do
|
||||||
|
brightnessctl -d "$device" set "$BRIGHTNESS_CMD" >/dev/null 2>&1
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# Fallback: just run brightnessctl without specifying device
|
||||||
|
brightnessctl set "$BRIGHTNESS_CMD" >/dev/null 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Get current brightness percentage for display
|
||||||
|
BRIGHTNESS=$(get_brightness_percentage)
|
||||||
|
|
||||||
|
# Show notification if rumno is available
|
||||||
|
if command -v rumno &> /dev/null; then
|
||||||
|
rumno notify -b "$BRIGHTNESS"
|
||||||
|
else
|
||||||
|
echo "$BRIGHTNESS"
|
||||||
|
fi
|
||||||
|
|||||||
@@ -1,88 +0,0 @@
|
|||||||
#!/usr/bin/env python
|
|
||||||
import argparse
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import logging
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
|
|
||||||
class BrightnessManager(object):
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def find_brightness(cls):
|
|
||||||
items_in_backlight_directory = os.listdir("/sys/class/backlight")
|
|
||||||
if len(items_in_backlight_directory) > 1:
|
|
||||||
logger.warning(f"More than one entry in the backlight directory {items_in_backlight_directory}")
|
|
||||||
return cls.from_path(
|
|
||||||
os.path.join("/sys/class/backlight", items_in_backlight_directory[0])
|
|
||||||
)
|
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def from_path(cls, path):
|
|
||||||
logger.warning(f"Using path {path}")
|
|
||||||
return cls(
|
|
||||||
set_brightness_filepath=os.path.join(path, "brightness"),
|
|
||||||
actual_brightness_filepath=os.path.join(path, "actual_brightness"),
|
|
||||||
max_brightness_filepath=os.path.join(path, "max_brightness"),
|
|
||||||
)
|
|
||||||
|
|
||||||
def __init__(
|
|
||||||
self, set_brightness_filepath, max_brightness_filepath, actual_brightness_filepath
|
|
||||||
):
|
|
||||||
self.set_brightness_filepath = set_brightness_filepath
|
|
||||||
self.max_brightness_filepath = max_brightness_filepath
|
|
||||||
self.actual_brightness_filepath = actual_brightness_filepath
|
|
||||||
|
|
||||||
@property
|
|
||||||
def current_brightness(self):
|
|
||||||
with open(self.actual_brightness_filepath) as fd:
|
|
||||||
return int(fd.read())
|
|
||||||
|
|
||||||
@property
|
|
||||||
def max_brightness(self):
|
|
||||||
with open(self.max_brightness_filepath) as fd:
|
|
||||||
return int(fd.read())
|
|
||||||
|
|
||||||
@current_brightness.setter
|
|
||||||
def current_brightness(self, brightness):
|
|
||||||
with open(self.set_brightness_filepath, 'w') as fd:
|
|
||||||
fd.write(str(brightness))
|
|
||||||
|
|
||||||
def increment_by_proportion(self, proportion):
|
|
||||||
new_brightness = self.current_brightness + int(self.max_brightness * proportion)
|
|
||||||
new_brightness = min(new_brightness, self.max_brightness)
|
|
||||||
self.current_brightness = new_brightness
|
|
||||||
|
|
||||||
@property
|
|
||||||
def current_proportion(self):
|
|
||||||
return float(self.current_brightness) / self.max_brightness
|
|
||||||
|
|
||||||
|
|
||||||
def build_parser():
|
|
||||||
parser = argparse.ArgumentParser(
|
|
||||||
description='Interact with macbook brightness',
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"--change", "-c",
|
|
||||||
help="Change volume by the given percentage",
|
|
||||||
default=0
|
|
||||||
)
|
|
||||||
parser.add_argument(
|
|
||||||
"--print", "-p", dest="do_print",
|
|
||||||
action='store_true',
|
|
||||||
default=False
|
|
||||||
)
|
|
||||||
return parser
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
args = build_parser().parse_args()
|
|
||||||
symlink_path = os.readlink("/home/imalison/.config/brightness_manager/symlink")
|
|
||||||
if os.path.exists(symlink_path):
|
|
||||||
manager = BrightnessManager.from_path(symlink_path)
|
|
||||||
else:
|
|
||||||
manager = BrightnessManager.find_brightness()
|
|
||||||
manager.increment_by_proportion(float(args.change) / 100)
|
|
||||||
if args.do_print:
|
|
||||||
print(int(manager.current_proportion * 100))
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
function nr {
|
function ns {
|
||||||
sk --ansi -i -c 'nix-search "{}"' | get_cols 1
|
sk --ansi -i -c 'nix-search "{}"' | get_cols 1
|
||||||
}
|
}
|
||||||
|
|
||||||
nr "$@"
|
ns "$@"
|
||||||
|
|||||||
@@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
function pashowvolume {
|
function pashowvolume {
|
||||||
if paismuted; then
|
if paismuted; then
|
||||||
volnoti-show -m
|
rumno notify -m
|
||||||
else
|
else
|
||||||
actual=$(pavolume)
|
actual=$(pavolume)
|
||||||
max=100
|
max=100
|
||||||
show=$(( actual < max ? actual : max ))
|
show=$(( actual < max ? actual : max ))
|
||||||
volnoti-show "$show"
|
rumno notify -v "$show"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
function pavolume {
|
function pavolume {
|
||||||
pacmd list-sinks |
|
pactl get-sink-volume $(pactl get-default-sink) | FS="/" get_cols 2 | grep -oE '[0-9]*'
|
||||||
awk '/^\s+name: /{indefault = $2 == "<'"$(pasink)"'>"}
|
|
||||||
/^\s+volume: / && indefault {print $5; exit}' | grep -Eo "[0-9]*"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pavolume
|
pavolume
|
||||||
|
|||||||
@@ -1,10 +1,6 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
function set_volume {
|
function set_volume {
|
||||||
current_default=$(pahelper list | grep '*' | all_after_char ":" | xargs)
|
|
||||||
environment_variable_exists USE_ONLY_O_PASINK && pahelper "$current_default"
|
|
||||||
|
|
||||||
# XXX: this does not prevent volumes higher than 100
|
|
||||||
pulsemixer "$@"
|
pulsemixer "$@"
|
||||||
pashowvolume
|
pashowvolume
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ section: aliases
|
|||||||
tv:
|
tv:
|
||||||
imalison-arch
|
imalison-arch
|
||||||
imalison-desktop
|
imalison-desktop
|
||||||
imalison-home
|
imalison-home justin-bieber-creek
|
||||||
controlling:
|
controlling:
|
||||||
uber-loaner
|
uber-loaner
|
||||||
imalison-mpb-arch
|
imalison-mpb-arch
|
||||||
@@ -22,4 +22,5 @@ section: aliases
|
|||||||
kat-uber-loaner
|
kat-uber-loaner
|
||||||
Dean-PC
|
Dean-PC
|
||||||
imalison-mbp
|
imalison-mbp
|
||||||
|
strixi-minaj
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
# Automatically rename new sessions to the basename of the current directory
|
||||||
|
set-hook -g session-created 'run-shell "tmux rename-session -t #{session_name} $(basename #{pane_current_path})"'
|
||||||
|
|
||||||
|
# Also rename when attaching to a session (optional)
|
||||||
|
set-hook -g client-session-changed 'run-shell "tmux rename-session -t #{session_name} $(basename #{pane_current_path})"'
|
||||||
166
nix-darwin/flake.lock
generated
166
nix-darwin/flake.lock
generated
@@ -3,12 +3,12 @@
|
|||||||
"agenix": {
|
"agenix": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager_2",
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"railbird-secrets",
|
"railbird-secrets",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"systems": "systems_2"
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1707830867,
|
"lastModified": 1707830867,
|
||||||
@@ -27,16 +27,16 @@
|
|||||||
"brew-src": {
|
"brew-src": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718075954,
|
"lastModified": 1763638478,
|
||||||
"narHash": "sha256-4TeUhv5VLEufP+Z/NkKnUk4NUaf59cMsj6NvsVbE+8w=",
|
"narHash": "sha256-n/IMowE9S23ovmTkKX7KhxXC2Yq41EAVFR2FBIXPcT8=",
|
||||||
"owner": "Homebrew",
|
"owner": "Homebrew",
|
||||||
"repo": "brew",
|
"repo": "brew",
|
||||||
"rev": "3f08c75e7b950d4340dab462f3e7f77e8093fa2b",
|
"rev": "fbfdbaba008189499958a7aeb1e2c36ab10c067d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "Homebrew",
|
"owner": "Homebrew",
|
||||||
"ref": "4.3.5",
|
"ref": "5.0.3",
|
||||||
"repo": "brew",
|
"repo": "brew",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -66,25 +66,7 @@
|
|||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems_2"
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1710146030,
|
|
||||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_2": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_3"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1709126324,
|
"lastModified": 1709126324,
|
||||||
@@ -101,6 +83,26 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767930051,
|
||||||
|
"narHash": "sha256-YXtqo8h5bAbqC64XAPMMsZdYk8XkwkyNj/7XOsIyVf8=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "297a08510894822ddd93ee2cfc66d6ac65a3cebb",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"home-manager_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"railbird-secrets",
|
"railbird-secrets",
|
||||||
@@ -125,11 +127,11 @@
|
|||||||
"homebrew-cask": {
|
"homebrew-cask": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722820732,
|
"lastModified": 1767937441,
|
||||||
"narHash": "sha256-Y8TBYxYeUVvgYFylqBUtWxFuOZVstXW+yylI2wz2eQ0=",
|
"narHash": "sha256-hiGvxqI6npGOAnNwMXkF1628IkyKhhYsAqO5kmSAuqM=",
|
||||||
"owner": "homebrew",
|
"owner": "homebrew",
|
||||||
"repo": "homebrew-cask",
|
"repo": "homebrew-cask",
|
||||||
"rev": "9e3db5dd3130f9bf388409f39ce1706ca7b59efe",
|
"rev": "cc94d21fe7abb3cc93db50671bf5048176711be9",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -141,11 +143,11 @@
|
|||||||
"homebrew-core": {
|
"homebrew-core": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722823168,
|
"lastModified": 1767948289,
|
||||||
"narHash": "sha256-3sKYVUrhuS1fZJkrYAtB+O67dvaKyTvXXI9UqjAgI8A=",
|
"narHash": "sha256-a6s+kRHOXRq4QoA4bDLZVKpC1woi6tTRqEt8Vk0ikGo=",
|
||||||
"owner": "homebrew",
|
"owner": "homebrew",
|
||||||
"repo": "homebrew-core",
|
"repo": "homebrew-core",
|
||||||
"rev": "dd20841f7fe7375738708bc2f458152906a71f1d",
|
"rev": "f268dcd932823c65f8feb2cfc533300ccbcc4541",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -161,29 +163,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722609272,
|
"lastModified": 1767718503,
|
||||||
"narHash": "sha256-Kkb+ULEHVmk07AX+OhwyofFxBDpw+2WvsXguUS2m6e4=",
|
"narHash": "sha256-V+VkFs0aSG0ca8p/N3gib7FAf4cq9jyr5Gm+ZBrHQpo=",
|
||||||
"owner": "LnL7",
|
"owner": "LnL7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "f7142b8024d6b70c66fd646e1d099d3aa5bfec49",
|
"rev": "9f48ffaca1f44b3e590976b4da8666a9e86e6eb1",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "LnL7",
|
|
||||||
"repo": "nix-darwin",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-darwin_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1716329735,
|
|
||||||
"narHash": "sha256-ap51w+VqG21vuzyQ04WrhI2YbWHd3UGz0e7dc/QQmoA=",
|
|
||||||
"owner": "LnL7",
|
|
||||||
"repo": "nix-darwin",
|
|
||||||
"rev": "eac4f25028c1975a939c8f8fba95c12f8a25e01c",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -194,17 +178,14 @@
|
|||||||
},
|
},
|
||||||
"nix-homebrew": {
|
"nix-homebrew": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"brew-src": "brew-src",
|
"brew-src": "brew-src"
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nix-darwin": "nix-darwin_2",
|
|
||||||
"nixpkgs": "nixpkgs_2"
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719720211,
|
"lastModified": 1764473698,
|
||||||
"narHash": "sha256-FNK5ZxmNC+V/wOuioc5HqkUy0ld4eW3NqcsZHLYg9HI=",
|
"narHash": "sha256-C91gPgv6udN5WuIZWNehp8qdLqlrzX6iF/YyboOj6XI=",
|
||||||
"owner": "zhaofengli-wip",
|
"owner": "zhaofengli-wip",
|
||||||
"repo": "nix-homebrew",
|
"repo": "nix-homebrew",
|
||||||
"rev": "0afc51fd86693c73e4b60be8ed8c782c4c09b4cc",
|
"rev": "6a8ab60bfd66154feeaa1021fc3b32684814a62a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -215,40 +196,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1687274257,
|
"lastModified": 1767364772,
|
||||||
"narHash": "sha256-TutzPriQcZ8FghDhEolnHcYU2oHIG5XWF+/SUBNnAOE=",
|
"narHash": "sha256-fFUnEYMla8b7UKjijLnMe+oVFOz6HjijGGNS1l7dYaQ=",
|
||||||
"path": "/nix/store/22qgs3skscd9bmrxv9xv4q5d4wwm5ppx-source",
|
|
||||||
"rev": "2c9ecd1f0400076a4d6b2193ad468ff0a7e7fdc5",
|
|
||||||
"type": "path"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"id": "nixpkgs",
|
|
||||||
"type": "indirect"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1716330097,
|
|
||||||
"narHash": "sha256-8BO3B7e3BiyIDsaKA0tY8O88rClYRTjvAp66y+VBUeU=",
|
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "5710852ba686cc1fd0d3b8e22b3117d43ba374c2",
|
"rev": "16c7794d0a28b5a37904d55bcca36003b9109aaa",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1722640603,
|
|
||||||
"narHash": "sha256-TcXjLVNd3VeH1qKPH335Tc4RbFDbZQX+d7rqnDUoRaY=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "81610abc161d4021b29199aa464d6a1a521e0cc9",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -258,7 +210,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1709703039,
|
"lastModified": 1709703039,
|
||||||
"narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=",
|
"narHash": "sha256-6hqgQ8OK6gsMu1VtcGKBxKQInRLHtzulDo9Z5jxHEFY=",
|
||||||
@@ -277,15 +229,15 @@
|
|||||||
"railbird-secrets": {
|
"railbird-secrets": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": "nixpkgs_4"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1722639965,
|
"lastModified": 1766173571,
|
||||||
"narHash": "sha256-ZRe5Z5s/UNaXI2piyncQ3YrFl5q3GryZAfFTyeJ/vhM=",
|
"narHash": "sha256-iYU5oTgXkZHqkb03IDPVMHA4Yte4AFhusTem0nf7pcc=",
|
||||||
"ref": "refs/heads/master",
|
"ref": "refs/heads/master",
|
||||||
"rev": "9a92b83c3ad376620db3556c33e51a4300c5badd",
|
"rev": "5b42885b7c702fb30b4678e5cb51cc8501fd7830",
|
||||||
"revCount": 73,
|
"revCount": 139,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git"
|
"url": "ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git"
|
||||||
},
|
},
|
||||||
@@ -296,11 +248,12 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"home-manager": "home-manager",
|
||||||
"homebrew-cask": "homebrew-cask",
|
"homebrew-cask": "homebrew-cask",
|
||||||
"homebrew-core": "homebrew-core",
|
"homebrew-core": "homebrew-core",
|
||||||
"nix-darwin": "nix-darwin",
|
"nix-darwin": "nix-darwin",
|
||||||
"nix-homebrew": "nix-homebrew",
|
"nix-homebrew": "nix-homebrew",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs",
|
||||||
"railbird-secrets": "railbird-secrets"
|
"railbird-secrets": "railbird-secrets"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -333,21 +286,6 @@
|
|||||||
"repo": "default",
|
"repo": "default",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"systems_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
|||||||
@@ -19,28 +19,123 @@
|
|||||||
url = "github:homebrew/homebrew-cask";
|
url = "github:homebrew/homebrew-cask";
|
||||||
flake = false;
|
flake = false;
|
||||||
};
|
};
|
||||||
|
home-manager.url = "github:nix-community/home-manager";
|
||||||
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{ self, nix-darwin, nixpkgs, ... }:
|
outputs = inputs@{ self, nix-darwin, nixpkgs, home-manager, ... }:
|
||||||
let
|
let
|
||||||
|
libDir = ../dotfiles/lib;
|
||||||
configuration = { pkgs, config, ... }: {
|
configuration = { pkgs, config, ... }: {
|
||||||
|
networking.hostName = "mac-demarco-mini";
|
||||||
|
imports = [ (import ./gitea-actions-runner.nix) ];
|
||||||
|
services.gitea-actions-runner = {
|
||||||
|
user = "gitea-runner";
|
||||||
|
instances.nix = {
|
||||||
|
enable = true;
|
||||||
|
name = config.networking.hostName;
|
||||||
|
url = "https://dev.railbird.ai";
|
||||||
|
token = "H0A7YXAWsKSp9QzvMymfJI12hbxwR7UerEHpCJUe";
|
||||||
|
labels = [
|
||||||
|
"nix-darwin-${pkgs.system}:host"
|
||||||
|
"macos-aarch64-darwin"
|
||||||
|
"nix:host"
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
cache = {
|
||||||
|
enabled = true;
|
||||||
|
};
|
||||||
|
host = {
|
||||||
|
workdir_parent = "/var/lib/gitea-runner/action-cache-dir";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
hostPackages = with pkgs; [
|
||||||
|
bash
|
||||||
|
coreutils
|
||||||
|
curl
|
||||||
|
direnv
|
||||||
|
gawk
|
||||||
|
just
|
||||||
|
git-lfs
|
||||||
|
isort
|
||||||
|
gitFull
|
||||||
|
gnused
|
||||||
|
ncdu
|
||||||
|
nixVersions.stable
|
||||||
|
nodejs
|
||||||
|
openssh
|
||||||
|
wget
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
launchd.daemons.gitea-runner-nix.serviceConfig.EnvironmentVariables = {
|
||||||
|
XDG_CONFIG_HOME = "/var/lib/gitea-runner";
|
||||||
|
XDG_CACHE_HOME = "/var/lib/gitea-runner/.cache";
|
||||||
|
XDG_RUNTIME_DIR = "/var/lib/gitea-runner/tmp";
|
||||||
|
};
|
||||||
|
|
||||||
|
system.primaryUser = "kat";
|
||||||
|
|
||||||
|
# launchd.daemons.gitea-runner-restarter = {
|
||||||
|
# serviceConfig = {
|
||||||
|
# ProgramArguments = [
|
||||||
|
# "/usr/bin/env"
|
||||||
|
# "bash"
|
||||||
|
# "-c"
|
||||||
|
# ''
|
||||||
|
# SERVICE_NAME="org.nixos.gitea-runner-nix"
|
||||||
|
# while true; do
|
||||||
|
# # Check the second column of launchctl list output for our service
|
||||||
|
# EXIT_CODE=$(sudo launchctl list | grep "$SERVICE_NAME" | awk '{print $2}')
|
||||||
|
# if [ -z "$EXIT_CODE" ]; then
|
||||||
|
# echo "$(date): $SERVICE_NAME is running correctly. Terminating the restarter."
|
||||||
|
# exit 0
|
||||||
|
# else
|
||||||
|
# echo "$(date): $SERVICE_NAME is not running or in error state. Attempting to restart..."
|
||||||
|
# sudo launchctl bootout system/$SERVICE_NAME 2>/dev/null || true
|
||||||
|
# sudo launchctl load /Library/LaunchDaemons/$SERVICE_NAME.plist
|
||||||
|
# sleep 2 # Give the service some time to start
|
||||||
|
# fi
|
||||||
|
# done
|
||||||
|
# ''
|
||||||
|
# ];
|
||||||
|
# RunAtLoad = true;
|
||||||
|
# ThrottleInterval = 300;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
launchd.daemons.does-anything-work = {
|
||||||
|
serviceConfig = {
|
||||||
|
ProgramArguments = ["/usr/bin/env" "bash" "-c" "date > /var/log/does-anything-work"];
|
||||||
|
RunAtLoad = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
nixpkgs.overlays = [(import ../nixos/overlay.nix)];
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
emacs
|
#python-with-my-packages
|
||||||
slack
|
emacs
|
||||||
|
alejandra
|
||||||
|
cocoapods
|
||||||
gitFull
|
gitFull
|
||||||
ripgrep
|
|
||||||
yarn
|
|
||||||
nodePackages.prettier
|
|
||||||
vim
|
|
||||||
just
|
just
|
||||||
|
tmux
|
||||||
|
htop
|
||||||
|
nodePackages.prettier
|
||||||
|
nodejs
|
||||||
|
ripgrep
|
||||||
|
slack
|
||||||
|
claude-code
|
||||||
|
typescript
|
||||||
|
vim
|
||||||
|
yarn
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
|
||||||
# Auto upgrade nix package and the daemon service.
|
# Auto upgrade nix package and the daemon service.
|
||||||
services.nix-daemon.enable = true;
|
|
||||||
launchd.user.envVariables.PATH = config.environment.systemPath;
|
launchd.user.envVariables.PATH = config.environment.systemPath;
|
||||||
|
|
||||||
programs.direnv.enable = true;
|
programs.direnv.enable = true;
|
||||||
@@ -48,31 +143,69 @@
|
|||||||
# Necessary for using flakes on this system.
|
# Necessary for using flakes on this system.
|
||||||
nix.settings.experimental-features = "nix-command flakes";
|
nix.settings.experimental-features = "nix-command flakes";
|
||||||
|
|
||||||
# Create /etc/zshrc that loads the nix-darwin environment.
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
|
|
||||||
# Set Git commit hash for darwin-version.
|
# Set Git commit hash for darwin-version.
|
||||||
system.configurationRevision = self.rev or self.dirtyRev or null;
|
system.configurationRevision = self.rev or self.dirtyRev or null;
|
||||||
|
|
||||||
# Used for backwards compatibility, please read the changelog before changing.
|
# Used for backwards compatibility, please read the changelog before changing
|
||||||
# $ darwin-rebuild changelog
|
|
||||||
system.stateVersion = 4;
|
system.stateVersion = 4;
|
||||||
|
|
||||||
# The platform the configuration will be used on.
|
# The platform the configuration will be used on.
|
||||||
|
|
||||||
nixpkgs.hostPlatform = "aarch64-darwin";
|
nixpkgs.hostPlatform = "aarch64-darwin";
|
||||||
users.users.kat.openssh.authorizedKeys.keys = inputs.railbird-secrets.keys.kanivanKeys;
|
users.users.kat.openssh.authorizedKeys.keys = inputs.railbird-secrets.keys.kanivanKeys;
|
||||||
|
users.users.gitea-runner = {
|
||||||
|
name = "gitea-runner";
|
||||||
|
isHidden = false;
|
||||||
|
home = "/Users/gitea-runner";
|
||||||
|
createHome = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true;
|
||||||
|
|
||||||
|
users.users.kat = {
|
||||||
|
name = "kat";
|
||||||
|
home = "/Users/kat";
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
shellInit = ''
|
||||||
|
fpath+="${libDir}/functions"
|
||||||
|
for file in "${libDir}/functions/"*
|
||||||
|
do
|
||||||
|
autoload "''${file##*/}"
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
interactiveShellInit = ''
|
||||||
|
# eval "$(register-python-argcomplete prb)"
|
||||||
|
# eval "$(register-python-argcomplete prod-prb)"
|
||||||
|
# eval "$(register-python-argcomplete railbird)"
|
||||||
|
# [ -n "$EAT_SHELL_INTEGRATION_DIR" ] && source "$EAT_SHELL_INTEGRATION_DIR/zsh"
|
||||||
|
|
||||||
|
autoload -Uz bracketed-paste-magic
|
||||||
|
zle -N bracketed-paste bracketed-paste-magic
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.users.kat = {
|
||||||
|
programs.starship = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
home.stateVersion = "24.05";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# Build darwin flake using:
|
darwinConfigurations."mac-demarco-mini" = nix-darwin.lib.darwinSystem {
|
||||||
# $ darwin-rebuild build --flake .#Kats-Mac-mini
|
|
||||||
darwinConfigurations."Kats-Mac-mini" = nix-darwin.lib.darwinSystem {
|
|
||||||
modules = [
|
modules = [
|
||||||
|
home-manager.darwinModules.home-manager
|
||||||
configuration
|
configuration
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Expose the package set, including overlays, for convenience.
|
# Expose the package set, including overlays, for convenience.
|
||||||
darwinPackages = self.darwinConfigurations."Kats-Mac-mini".pkgs;
|
darwinPackages = self.darwinConfigurations."mac-demarco-mini".pkgs;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
176
nix-darwin/gitea-actions-runner.nix
Normal file
176
nix-darwin/gitea-actions-runner.nix
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.services.gitea-actions-runner;
|
||||||
|
|
||||||
|
settingsFormat = pkgs.formats.yaml {};
|
||||||
|
|
||||||
|
hasDockerScheme = instance:
|
||||||
|
instance.labels == [] || any (label: hasInfix ":docker:" label) instance.labels;
|
||||||
|
wantsContainerRuntime = any hasDockerScheme (attrValues cfg.instances);
|
||||||
|
|
||||||
|
hasHostScheme = instance: any (label: hasSuffix ":host" label) instance.labels;
|
||||||
|
|
||||||
|
tokenXorTokenFile = instance:
|
||||||
|
(instance.token == null && instance.tokenFile != null)
|
||||||
|
|| (instance.token != null && instance.tokenFile == null);
|
||||||
|
in {
|
||||||
|
options.services.gitea-actions-runner = {
|
||||||
|
package = mkOption {
|
||||||
|
type = types.package;
|
||||||
|
default = pkgs.gitea-actions-runner;
|
||||||
|
defaultText = literalExpression "pkgs.gitea-actions-runner";
|
||||||
|
description = "The gitea-actions-runner package to use.";
|
||||||
|
};
|
||||||
|
|
||||||
|
user = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
default = "gitea-runner";
|
||||||
|
description = "The user account under which the Gitea Actions Runner should run.";
|
||||||
|
};
|
||||||
|
|
||||||
|
instances = mkOption {
|
||||||
|
default = {};
|
||||||
|
description = "Gitea Actions Runner instances.";
|
||||||
|
type = types.attrsOf (types.submodule {
|
||||||
|
options = {
|
||||||
|
enable = mkEnableOption "Gitea Actions Runner instance";
|
||||||
|
|
||||||
|
name = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
example = "my-runner";
|
||||||
|
description = "The name identifying the runner instance towards the Gitea/Forgejo instance.";
|
||||||
|
};
|
||||||
|
|
||||||
|
url = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
example = "https://forge.example.com";
|
||||||
|
description = "Base URL of your Gitea/Forgejo instance.";
|
||||||
|
};
|
||||||
|
|
||||||
|
token = mkOption {
|
||||||
|
type = types.nullOr types.str;
|
||||||
|
default = null;
|
||||||
|
description = "Plain token to register at the configured Gitea/Forgejo instance.";
|
||||||
|
};
|
||||||
|
|
||||||
|
tokenFile = mkOption {
|
||||||
|
type = types.nullOr (types.either types.str types.path);
|
||||||
|
default = null;
|
||||||
|
description = "Path to a file containing the token to register at the configured Gitea/Forgejo instance.";
|
||||||
|
};
|
||||||
|
|
||||||
|
labels = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
default = [];
|
||||||
|
example = ["macos:host" "x86_64:host"];
|
||||||
|
description = "Labels used to map jobs to their runtime environment.";
|
||||||
|
};
|
||||||
|
|
||||||
|
settings = mkOption {
|
||||||
|
description = "Configuration for `act_runner daemon`.";
|
||||||
|
type = types.submodule {
|
||||||
|
freeformType = settingsFormat.type;
|
||||||
|
};
|
||||||
|
default = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
hostPackages = mkOption {
|
||||||
|
type = types.listOf types.package;
|
||||||
|
default = with pkgs; [
|
||||||
|
bash
|
||||||
|
coreutils
|
||||||
|
curl
|
||||||
|
gawk
|
||||||
|
git
|
||||||
|
gnused
|
||||||
|
nodejs
|
||||||
|
wget
|
||||||
|
openssh
|
||||||
|
];
|
||||||
|
description = "List of packages available to actions when the runner is configured with a host execution label.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf (cfg.instances != {}) {
|
||||||
|
assertions = [
|
||||||
|
{
|
||||||
|
assertion = all tokenXorTokenFile (attrValues cfg.instances);
|
||||||
|
message = "Instances of gitea-actions-runner can have `token` or `tokenFile`, not both.";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
users.users.${cfg.user} = {
|
||||||
|
name = cfg.user;
|
||||||
|
description = "Gitea Actions Runner user";
|
||||||
|
};
|
||||||
|
|
||||||
|
launchd.daemons =
|
||||||
|
(mapAttrs' (
|
||||||
|
name: instance:
|
||||||
|
nameValuePair "gitea-runner-${name}" {
|
||||||
|
serviceConfig = {
|
||||||
|
ProgramArguments = [
|
||||||
|
"/usr/bin/env"
|
||||||
|
"bash"
|
||||||
|
"-c"
|
||||||
|
''
|
||||||
|
cd /var/lib/gitea-runner/${name}
|
||||||
|
exec ${cfg.package}/bin/act_runner daemon --config ${settingsFormat.generate "config.yaml" instance.settings}
|
||||||
|
''
|
||||||
|
];
|
||||||
|
KeepAlive = true;
|
||||||
|
ThrottleInterval = 5;
|
||||||
|
SessionCreate = true;
|
||||||
|
UserName = cfg.user;
|
||||||
|
GroupName = "staff";
|
||||||
|
WorkingDirectory = "/var/lib/gitea-runner/${name}";
|
||||||
|
EnvironmentVariables = {
|
||||||
|
PATH = (lib.makeBinPath (instance.hostPackages ++ [cfg.package])) + ":/usr/local/bin:/usr/bin:/usr/sbin:/bin:/sbin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
|
cfg.instances)
|
||||||
|
// (mapAttrs' (
|
||||||
|
name: instance:
|
||||||
|
nameValuePair "gitea-runner-setup-${name}"
|
||||||
|
{
|
||||||
|
serviceConfig = {
|
||||||
|
EnvironmentVariables =
|
||||||
|
{}
|
||||||
|
// optionalAttrs (instance.token != null) {
|
||||||
|
TOKEN = instance.token;
|
||||||
|
};
|
||||||
|
RunAtLoad = true;
|
||||||
|
ProgramArguments = [
|
||||||
|
"${pkgs.writeShellScript "gitea-runner-setup-${name}" ''
|
||||||
|
mkdir -p /var/lib/gitea-runner/${name}
|
||||||
|
cd /var/lib/gitea-runner/${name}
|
||||||
|
if [ ! -e "/var/lib/gitea-runner/${name}/.runner" ]; then
|
||||||
|
${cfg.package}/bin/act_runner register --no-interactive \
|
||||||
|
--instance ${escapeShellArg instance.url} \
|
||||||
|
--token "$TOKEN" \
|
||||||
|
--name ${escapeShellArg instance.name} \
|
||||||
|
--labels ${escapeShellArg (concatStringsSep "," instance.labels)} \
|
||||||
|
--config ${settingsFormat.generate "config.yaml" instance.settings}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Start the runner
|
||||||
|
chown -R ${cfg.user} /var/lib/gitea-runner
|
||||||
|
chown -R ${cfg.user} /var/log/gitea-runner
|
||||||
|
''}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
)
|
||||||
|
cfg.instances);
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -3,9 +3,6 @@
|
|||||||
options = {
|
options = {
|
||||||
};
|
};
|
||||||
config = {
|
config = {
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
android-udev-rules
|
|
||||||
];
|
|
||||||
nixpkgs.config.android_sdk.accept_license = true;
|
nixpkgs.config.android_sdk.accept_license = true;
|
||||||
programs.adb.enable = true;
|
programs.adb.enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
{ config, pkgs, forEachUser, makeEnable, realUsers, ... }:
|
{ config, pkgs, forEachUser, makeEnable, realUsers, ... }:
|
||||||
makeEnable config "myModules.base" true {
|
makeEnable config "myModules.base" true {
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
nixpkgs.config.permittedInsecurePackages = [
|
||||||
"openssl-1.0.2u"
|
|
||||||
"electron-12.2.3"
|
"electron-12.2.3"
|
||||||
"etcher"
|
|
||||||
"electron-19.1.9"
|
"electron-19.1.9"
|
||||||
"openssl-1.1.1w"
|
"electron-32.3.3"
|
||||||
|
"etcher"
|
||||||
"nix-2.16.2"
|
"nix-2.16.2"
|
||||||
|
"openssl-1.0.2u"
|
||||||
|
"openssl-1.1.1w"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Disabling these waits disables the stuck on boot up issue
|
# Disabling these waits disables the stuck on boot up issue
|
||||||
@@ -29,14 +30,26 @@ makeEnable config "myModules.base" true {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
networking.firewall.enable = false;
|
networking.firewall.enable = false;
|
||||||
|
networking.nameservers = [ "8.8.8.8" "8.8.4.4" ];
|
||||||
networking.networkmanager = {
|
networking.networkmanager = {
|
||||||
enable = true;
|
enable = true;
|
||||||
enableStrongSwan = true;
|
|
||||||
plugins = [ pkgs.networkmanager-l2tp pkgs.networkmanager-openvpn ];
|
plugins = [ pkgs.networkmanager-l2tp pkgs.networkmanager-openvpn ];
|
||||||
};
|
};
|
||||||
|
networking.resolvconf.enable = false;
|
||||||
|
services.mullvad-vpn.enable = true;
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
hardware.pulseaudio.enable = false;
|
|
||||||
|
services.pulseaudio.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = false;
|
||||||
|
systemWide = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
jack.enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
# Bluetooth
|
# Bluetooth
|
||||||
hardware.bluetooth.enable = true;
|
hardware.bluetooth.enable = true;
|
||||||
@@ -52,23 +65,29 @@ makeEnable config "myModules.base" true {
|
|||||||
defaultLocale = "en_US.UTF-8";
|
defaultLocale = "en_US.UTF-8";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Update timezone automatically
|
# # Update timezone automatically
|
||||||
services.tzupdate.enable = true;
|
services.tzupdate.enable = true;
|
||||||
|
|
||||||
# TODO: Add a comment explaining what this does.
|
# TODO: Add a comment explaining what this does.
|
||||||
services.locate.enable = true;
|
services.locate.enable = true;
|
||||||
|
|
||||||
virtualisation.docker.enable = true;
|
virtualisation.docker.enable = true;
|
||||||
|
services.orca.enable = false;
|
||||||
|
|
||||||
|
virtualisation.podman = {
|
||||||
|
enable = true;
|
||||||
|
autoPrune = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
hardware.keyboard.zsa.enable = true;
|
hardware.keyboard.zsa.enable = true;
|
||||||
|
|
||||||
services.logind.extraConfig = "RuntimeDirectorySize=5G";
|
|
||||||
|
|
||||||
# For supporting gnome stuff
|
# For supporting gnome stuff
|
||||||
services.dbus.packages = [ pkgs.gcr ];
|
services.dbus.packages = [ pkgs.gcr ];
|
||||||
|
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
|
|
||||||
home-manager.users = forEachUser (import ./home-manager.nix);
|
home-manager.users = forEachUser (import ./home-manager.nix);
|
||||||
nix.settings.trusted-users = realUsers;
|
nix.settings.trusted-users = realUsers ++ ["gitea-runner"];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, config, lib, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./essential.nix
|
./essential.nix
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
layout = "us";
|
layout = "us";
|
||||||
desktopManager = {
|
desktopManager = {
|
||||||
plasma5.enable = true;
|
plasma6.enable = true;
|
||||||
};
|
};
|
||||||
displayManager = {
|
displayManager = {
|
||||||
sddm = {
|
sddm = {
|
||||||
@@ -36,7 +36,7 @@
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
nix = rec {
|
nix = {
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
experimental-features = nix-command flakes
|
experimental-features = nix-command flakes
|
||||||
'';
|
'';
|
||||||
|
|||||||
@@ -6,6 +6,17 @@ makeEnable config "myModules.code" true {
|
|||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
# LLM Tools
|
||||||
|
antigravity
|
||||||
|
claude-code
|
||||||
|
codex
|
||||||
|
gemini-cli
|
||||||
|
|
||||||
|
# MCP
|
||||||
|
github-mcp-server
|
||||||
|
gitea-mcp-server
|
||||||
|
playwright-mcp
|
||||||
|
|
||||||
# C
|
# C
|
||||||
clang
|
clang
|
||||||
|
|
||||||
@@ -24,6 +35,8 @@ makeEnable config "myModules.code" true {
|
|||||||
# Node
|
# Node
|
||||||
nodePackages.npm
|
nodePackages.npm
|
||||||
nodejs
|
nodejs
|
||||||
|
yarn
|
||||||
|
prettier
|
||||||
|
|
||||||
# Typescript
|
# Typescript
|
||||||
typescript
|
typescript
|
||||||
@@ -34,6 +47,7 @@ makeEnable config "myModules.code" true {
|
|||||||
|
|
||||||
# Rust
|
# Rust
|
||||||
rustup
|
rustup
|
||||||
|
cargo-sweep
|
||||||
|
|
||||||
# Clojure
|
# Clojure
|
||||||
boot
|
boot
|
||||||
@@ -43,8 +57,13 @@ makeEnable config "myModules.code" true {
|
|||||||
ruby
|
ruby
|
||||||
|
|
||||||
# python
|
# python
|
||||||
poetry
|
|
||||||
black
|
black
|
||||||
|
poetry
|
||||||
|
uv
|
||||||
|
|
||||||
|
# kotlin
|
||||||
|
kotlin
|
||||||
|
kotlin-language-server
|
||||||
|
|
||||||
# dhall
|
# dhall
|
||||||
haskellPackages.dhall
|
haskellPackages.dhall
|
||||||
|
|||||||
@@ -17,12 +17,14 @@
|
|||||||
./gitea-runner.nix
|
./gitea-runner.nix
|
||||||
./gitea.nix
|
./gitea.nix
|
||||||
./gnome.nix
|
./gnome.nix
|
||||||
|
./home-assistant.nix
|
||||||
./imalison.nix
|
./imalison.nix
|
||||||
./internet-computer.nix
|
./internet-computer.nix
|
||||||
./k3s.nix
|
./k3s.nix
|
||||||
./kat.nix
|
./kat.nix
|
||||||
./keybase.nix
|
./keybase.nix
|
||||||
./kubelet.nix
|
./kubelet.nix
|
||||||
|
./laptop.nix
|
||||||
./nix.nix
|
./nix.nix
|
||||||
./nixified.ai.nix
|
./nixified.ai.nix
|
||||||
./nvidia.nix
|
./nvidia.nix
|
||||||
@@ -33,10 +35,12 @@
|
|||||||
./secrets.nix
|
./secrets.nix
|
||||||
./ssh.nix
|
./ssh.nix
|
||||||
./syncthing.nix
|
./syncthing.nix
|
||||||
|
./tts.nix
|
||||||
./user-specific.nix
|
./user-specific.nix
|
||||||
./users.nix
|
./users.nix
|
||||||
./vscode.nix
|
./vscode.nix
|
||||||
./wsl.nix
|
./wsl.nix
|
||||||
|
./wyoming.nix
|
||||||
./xmonad.nix
|
./xmonad.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
@@ -53,9 +57,8 @@
|
|||||||
myModules.extra.enable = true;
|
myModules.extra.enable = true;
|
||||||
myModules.electron.enable = true;
|
myModules.electron.enable = true;
|
||||||
myModules.code.enable = true;
|
myModules.code.enable = true;
|
||||||
myModules.games.enable = true;
|
myModules.games.enable = false;
|
||||||
myModules.syncthing.enable = true;
|
myModules.syncthing.enable = true;
|
||||||
myModules.fonts.enable = true;
|
myModules.fonts.enable = true;
|
||||||
myModules.nixified-ai.enable = false;
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, makeEnable, ... }:
|
{ inputs, config, pkgs, makeEnable, ... }:
|
||||||
makeEnable config "myModules.desktop" true {
|
makeEnable config "myModules.desktop" true {
|
||||||
imports = [
|
imports = [
|
||||||
./fonts.nix
|
./fonts.nix
|
||||||
@@ -21,6 +21,8 @@ makeEnable config "myModules.desktop" true {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
programs.hyprland.enable = true;
|
||||||
|
|
||||||
services.autorandr = {
|
services.autorandr = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
@@ -32,11 +34,13 @@ makeEnable config "myModules.desktop" true {
|
|||||||
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
services.gnome.gnome-keyring.enable = true;
|
||||||
|
|
||||||
|
# Visual notification manager
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# Appearance
|
# Appearance
|
||||||
adwaita-icon-theme
|
adwaita-icon-theme
|
||||||
hicolor-icon-theme
|
hicolor-icon-theme
|
||||||
libsForQt5.breeze-gtk
|
# libsForQt5.breeze-gtk
|
||||||
# materia-theme
|
# materia-theme
|
||||||
numix-icon-theme-circle
|
numix-icon-theme-circle
|
||||||
papirus-icon-theme
|
papirus-icon-theme
|
||||||
@@ -54,44 +58,48 @@ makeEnable config "myModules.desktop" true {
|
|||||||
# Desktop
|
# Desktop
|
||||||
alacritty
|
alacritty
|
||||||
blueman
|
blueman
|
||||||
clipit
|
# clipit
|
||||||
d-spy
|
d-spy
|
||||||
dolphin
|
kdePackages.dolphin
|
||||||
|
# inputs.ghostty.packages."${system}".default
|
||||||
|
|
||||||
feh
|
feh
|
||||||
firefox
|
firefox
|
||||||
cheese
|
cheese
|
||||||
gpaste
|
gpaste
|
||||||
kleopatra
|
kdePackages.kleopatra
|
||||||
libnotify
|
libnotify
|
||||||
libreoffice
|
libreoffice
|
||||||
lxappearance
|
lxappearance
|
||||||
lxqt.lxqt-powermanagement
|
lxqt.lxqt-powermanagement
|
||||||
networkmanagerapplet
|
networkmanagerapplet
|
||||||
notify-osd-customizable
|
kdePackages.okular
|
||||||
okular
|
pinentry-gnome3
|
||||||
pinentry
|
# mission-center
|
||||||
mission-center
|
|
||||||
quassel
|
quassel
|
||||||
remmina
|
remmina
|
||||||
rofi
|
rofi
|
||||||
|
wofi
|
||||||
rofi-pass
|
rofi-pass
|
||||||
rofi-systemd
|
rofi-systemd
|
||||||
shutter
|
|
||||||
simplescreenrecorder
|
simplescreenrecorder
|
||||||
skippy-xd
|
skippy-xd
|
||||||
synergy
|
synergy
|
||||||
transmission_3-gtk
|
# TODO: reenable
|
||||||
|
# transmission_3-gtk
|
||||||
vlc
|
vlc
|
||||||
volnoti
|
|
||||||
xfce.thunar
|
xfce.thunar
|
||||||
|
|
||||||
# Audio
|
# Audio
|
||||||
picard
|
picard
|
||||||
|
pavucontrol
|
||||||
playerctl
|
playerctl
|
||||||
pulsemixer
|
pulsemixer
|
||||||
espeak
|
espeak
|
||||||
|
|
||||||
|
#
|
||||||
|
brightnessctl
|
||||||
|
|
||||||
# Visualization
|
# Visualization
|
||||||
graphviz
|
graphviz
|
||||||
nodePackages.mermaid-cli
|
nodePackages.mermaid-cli
|
||||||
@@ -101,7 +109,7 @@ makeEnable config "myModules.desktop" true {
|
|||||||
slack
|
slack
|
||||||
spicetify-cli
|
spicetify-cli
|
||||||
spotify
|
spotify
|
||||||
tor-browser-bundle-bin
|
tor-browser
|
||||||
vscode
|
vscode
|
||||||
zulip
|
zulip
|
||||||
] else []);
|
] else []);
|
||||||
|
|||||||
@@ -21,11 +21,11 @@
|
|||||||
gawk
|
gawk
|
||||||
gcc
|
gcc
|
||||||
gdb
|
gdb
|
||||||
|
gh
|
||||||
git-fame
|
git-fame
|
||||||
git-lfs
|
git-lfs
|
||||||
git-sync
|
git-sync
|
||||||
gitFull
|
gitFull
|
||||||
glxinfo
|
|
||||||
gnumake
|
gnumake
|
||||||
gparted
|
gparted
|
||||||
home-manager
|
home-manager
|
||||||
@@ -38,6 +38,7 @@
|
|||||||
lshw
|
lshw
|
||||||
lsof
|
lsof
|
||||||
magic-wormhole-rs
|
magic-wormhole-rs
|
||||||
|
mesa-demos
|
||||||
ncdu
|
ncdu
|
||||||
neofetch
|
neofetch
|
||||||
neovim
|
neovim
|
||||||
@@ -47,10 +48,12 @@
|
|||||||
patchelf
|
patchelf
|
||||||
pciutils
|
pciutils
|
||||||
pstree
|
pstree
|
||||||
|
pulseaudio
|
||||||
python-with-my-packages
|
python-with-my-packages
|
||||||
rclone
|
rclone
|
||||||
rcm
|
rcm
|
||||||
ripgrep
|
ripgrep
|
||||||
|
runc
|
||||||
silver-searcher
|
silver-searcher
|
||||||
skim
|
skim
|
||||||
sshfs
|
sshfs
|
||||||
@@ -61,6 +64,7 @@
|
|||||||
unzip
|
unzip
|
||||||
usbutils
|
usbutils
|
||||||
wget
|
wget
|
||||||
|
xkcdpass
|
||||||
yubikey-manager
|
yubikey-manager
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
{ config, pkgs, makeEnable, ... }:
|
{ config, pkgs, makeEnable, ... }:
|
||||||
makeEnable config "myModules.extra" false {
|
makeEnable config "myModules.extra" false {
|
||||||
services.expressvpn.enable = true;
|
|
||||||
programs.hyprland.enable = true;
|
programs.hyprland.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
@@ -10,7 +9,6 @@ makeEnable config "myModules.extra" false {
|
|||||||
asciidoctor
|
asciidoctor
|
||||||
roomeqwizard
|
roomeqwizard
|
||||||
razergenie
|
razergenie
|
||||||
expressvpn
|
|
||||||
signal-desktop
|
signal-desktop
|
||||||
gource
|
gource
|
||||||
gimp
|
gimp
|
||||||
|
|||||||
1061
nixos/flake.lock
generated
1061
nixos/flake.lock
generated
File diff suppressed because it is too large
Load Diff
300
nixos/flake.nix
300
nixos/flake.nix
@@ -1,20 +1,48 @@
|
|||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
nixtheplanet.url = "github:matthewcroughan/nixtheplanet";
|
|
||||||
railbird-secrets = {
|
|
||||||
url = "git+ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git";
|
|
||||||
};
|
|
||||||
nixos-hardware = { url = "github:colonelpanic8/nixos-hardware/add-g834jzr"; };
|
|
||||||
|
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
url = "github:NixOS/nixpkgs/nixos-unstable";
|
url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
};
|
};
|
||||||
|
|
||||||
home-manager = {
|
flake-utils = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:numtide/flake-utils";
|
||||||
|
inputs.systems.follows = "systems";
|
||||||
|
};
|
||||||
|
|
||||||
|
systems = {url = "github:nix-systems/default";};
|
||||||
|
|
||||||
|
git-ignore-nix = {
|
||||||
|
url = "github:hercules-ci/gitignore.nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home-manager = {
|
||||||
|
url = "github:nix-community/home-manager/master";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
nixos-hardware = {url = "github:colonelpanic8/nixos-hardware/my-master";};
|
||||||
|
|
||||||
|
nixos-wsl = {url = "github:nix-community/NixOS-WSL";};
|
||||||
|
|
||||||
|
agenix = {url = "github:ryantm/agenix";};
|
||||||
|
|
||||||
|
railbird-secrets = {
|
||||||
|
url = "git+ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git";
|
||||||
|
};
|
||||||
|
# railbird-secrets = {
|
||||||
|
# url = "git+ssh://gitea@dev.railbird.ai:1123/railbird/secrets-flake.git";
|
||||||
|
# };
|
||||||
|
|
||||||
|
xmonad = {
|
||||||
|
url = "github:xmonad/xmonad";
|
||||||
|
inputs = {
|
||||||
|
nixpkgs.follows = "nixpkgs";
|
||||||
|
flake-utils.follows = "flake-utils";
|
||||||
|
git-ignore-nix.follows = "git-ignore-nix";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
xmonad-contrib = {
|
xmonad-contrib = {
|
||||||
url = "github:IvanMalison/xmonad-contrib/withMyChanges";
|
url = "github:IvanMalison/xmonad-contrib/withMyChanges";
|
||||||
inputs = {
|
inputs = {
|
||||||
@@ -25,35 +53,21 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
xmonad = {
|
|
||||||
url = "github:xmonad/xmonad";
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.follows = "nixpkgs";
|
|
||||||
flake-utils.follows = "flake-utils";
|
|
||||||
git-ignore-nix.follows = "git-ignore-nix";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
taffybar = {
|
taffybar = {
|
||||||
url = "github:taffybar/taffybar/old-master";
|
url = "github:taffybar/taffybar/old-master";
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.follows = "nixpkgs";
|
nixpkgs.follows = "nixpkgs";
|
||||||
flake-utils.follows = "flake-utils";
|
|
||||||
git-ignore-nix.follows = "git-ignore-nix";
|
|
||||||
xmonad.follows = "xmonad";
|
|
||||||
gtk-sni-tray.follows = "gtk-sni-tray";
|
|
||||||
gtk-strut.follows = "gtk-strut";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imalison-taffybar = {
|
imalison-taffybar = {
|
||||||
url = "path:../dotfiles/config/taffybar";
|
url = "path:../dotfiles/config/taffybar";
|
||||||
inputs = {
|
# inputs = {
|
||||||
nixpkgs.follows = "nixpkgs";
|
# nixpkgs.follows = "nixpkgs";
|
||||||
flake-utils.follows = "flake-utils";
|
# flake-utils.follows = "flake-utils";
|
||||||
xmonad.follows = "xmonad";
|
# xmonad.follows = "xmonad";
|
||||||
taffybar.follows = "taffybar";
|
# taffybar.follows = "taffybar";
|
||||||
};
|
# };
|
||||||
};
|
};
|
||||||
|
|
||||||
notifications-tray-icon = {
|
notifications-tray-icon = {
|
||||||
@@ -63,18 +77,6 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
flake-utils = {
|
|
||||||
url = "github:numtide/flake-utils";
|
|
||||||
inputs.systems.follows = "systems";
|
|
||||||
};
|
|
||||||
|
|
||||||
systems = { url = "github:nix-systems/default"; };
|
|
||||||
|
|
||||||
git-ignore-nix = {
|
|
||||||
url = "github:hercules-ci/gitignore.nix";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk-sni-tray = {
|
gtk-sni-tray = {
|
||||||
url = "github:taffybar/gtk-sni-tray";
|
url = "github:taffybar/gtk-sni-tray";
|
||||||
inputs = {
|
inputs = {
|
||||||
@@ -105,18 +107,86 @@
|
|||||||
|
|
||||||
vscode-server.url = "github:nix-community/nixos-vscode-server";
|
vscode-server.url = "github:nix-community/nixos-vscode-server";
|
||||||
|
|
||||||
nixified-ai = { url = "github:nixified-ai/flake"; };
|
nixified-ai = {url = "github:nixified-ai/flake";};
|
||||||
|
|
||||||
nixos-wsl = { url = "github:nix-community/NixOS-WSL"; };
|
nixtheplanet.url = "github:matthewcroughan/nixtheplanet";
|
||||||
|
|
||||||
agenix.url = "github:ryantm/agenix";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{
|
outputs = inputs @ {
|
||||||
self, nixpkgs, nixos-hardware, home-manager, taffybar, xmonad, nixtheplanet,
|
self,
|
||||||
xmonad-contrib, notifications-tray-icon, nix, agenix, imalison-taffybar, ...
|
nixpkgs,
|
||||||
}:
|
nixos-hardware,
|
||||||
let
|
home-manager,
|
||||||
|
taffybar,
|
||||||
|
xmonad,
|
||||||
|
nixtheplanet,
|
||||||
|
xmonad-contrib,
|
||||||
|
notifications-tray-icon,
|
||||||
|
nix,
|
||||||
|
agenix,
|
||||||
|
imalison-taffybar,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
# Nixpkgs PR patches - just specify PR number and hash
|
||||||
|
nixpkgsPRPatches = [
|
||||||
|
{
|
||||||
|
pr = 434160; # git-sync-rs package
|
||||||
|
hash = "sha256-zjzjmC1XJmwfHr/YXFyYsqUFR5MHSoxWWyxIR35YNbM=";
|
||||||
|
}
|
||||||
|
# claude-code
|
||||||
|
# {
|
||||||
|
# pr = 464698;
|
||||||
|
# hash = "sha256-Pe9G6b/rI0874mM7FIOSEKiaubk95NcFhTQ7paAeLTU=";
|
||||||
|
# }
|
||||||
|
# {
|
||||||
|
# pr = 464816;
|
||||||
|
# hash = "sha256-bKEoRy4dzP5TyRBjYskwEzr7tj8/ez/Y1XHiQgu5q5I=";
|
||||||
|
# }
|
||||||
|
];
|
||||||
|
|
||||||
|
# Custom patches that don't fit the PR template
|
||||||
|
nixpkgsCustomPatches = [
|
||||||
|
];
|
||||||
|
|
||||||
|
# Home-manager PR patches - just specify PR number and hash
|
||||||
|
homeManagerPRPatches = [
|
||||||
|
# Example:
|
||||||
|
# {
|
||||||
|
# pr = 1234;
|
||||||
|
# hash = "sha256-...";
|
||||||
|
# }
|
||||||
|
];
|
||||||
|
|
||||||
|
# Custom home-manager patches that don't fit the PR template
|
||||||
|
homeManagerCustomPatches = [
|
||||||
|
{
|
||||||
|
url = "https://github.com/colonelpanic8/home-manager/commit/92f4b7aa5254f8bcddc9ef86e04ea5314410d10b.patch";
|
||||||
|
hash = "sha256-RQl5daVpCqQi05l9QfTEz2PpQxmsv/HYnXrgXbqbwWk=";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
# Convert PR patches to full patch format for nixpkgs
|
||||||
|
nixpkgsPrPatchesToPatches = prPatches:
|
||||||
|
map (p: {
|
||||||
|
url = "https://patch-diff.githubusercontent.com/raw/NixOS/nixpkgs/pull/${toString p.pr}.patch";
|
||||||
|
hash = p.hash;
|
||||||
|
})
|
||||||
|
prPatches;
|
||||||
|
|
||||||
|
# Convert PR patches to full patch format for home-manager
|
||||||
|
homeManagerPrPatchesToPatches = prPatches:
|
||||||
|
map (p: {
|
||||||
|
url = "https://patch-diff.githubusercontent.com/raw/nix-community/home-manager/pull/${toString p.pr}.patch";
|
||||||
|
hash = p.hash;
|
||||||
|
})
|
||||||
|
prPatches;
|
||||||
|
|
||||||
|
# Combine all nixpkgs patches
|
||||||
|
allNixpkgsPatches = (nixpkgsPrPatchesToPatches nixpkgsPRPatches) ++ nixpkgsCustomPatches;
|
||||||
|
|
||||||
|
# Combine all home-manager patches
|
||||||
|
allHomeManagerPatches = (homeManagerPrPatchesToPatches homeManagerPRPatches) ++ homeManagerCustomPatches;
|
||||||
|
|
||||||
machinesFilepath = ./machines;
|
machinesFilepath = ./machines;
|
||||||
machineFilenames = builtins.attrNames (builtins.readDir machinesFilepath);
|
machineFilenames = builtins.attrNames (builtins.readDir machinesFilepath);
|
||||||
machineNameFromFilename = filename: builtins.head (builtins.split "\\." filename);
|
machineNameFromFilename = filename: builtins.head (builtins.split "\\." filename);
|
||||||
@@ -125,7 +195,9 @@
|
|||||||
name = machineNameFromFilename filename;
|
name = machineNameFromFilename filename;
|
||||||
value = {
|
value = {
|
||||||
modules = [
|
modules = [
|
||||||
(machinesFilepath + ("/" + filename)) agenix.nixosModules.default nixtheplanet.nixosModules.macos-ventura
|
(machinesFilepath + ("/" + filename))
|
||||||
|
agenix.nixosModules.default
|
||||||
|
nixtheplanet.nixosModules.macos-ventura
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -139,35 +211,87 @@
|
|||||||
system = "aarch64-linux";
|
system = "aarch64-linux";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
mkConfig =
|
mkConfig = {
|
||||||
args@
|
system ? "x86_64-linux",
|
||||||
{ system ? "x86_64-linux"
|
baseModules ? [],
|
||||||
, baseModules ? []
|
modules ? [],
|
||||||
, modules ? []
|
specialArgs ? {},
|
||||||
, specialArgs ? {}
|
...
|
||||||
, ...
|
}: let
|
||||||
}:
|
# Bootstrap nixpkgs for this specific system
|
||||||
nixpkgs.lib.nixosSystem (args // {
|
bootstrapPkgs = import nixpkgs {
|
||||||
inherit system;
|
inherit system;
|
||||||
modules = baseModules ++ modules;
|
config = {};
|
||||||
specialArgs = rec {
|
overlays = [];
|
||||||
inherit inputs machineNames;
|
};
|
||||||
makeEnable = (import ./make-enable.nix) nixpkgs.lib;
|
# Apply patches to nixpkgs source
|
||||||
keys = (import ./keys.nix);
|
patchedSource = bootstrapPkgs.applyPatches {
|
||||||
usersInfo = (import ./users.nix) {
|
name = "nixpkgs-patched";
|
||||||
pkgs = { zsh = "zsh"; };
|
src = nixpkgs;
|
||||||
inherit keys inputs system;
|
patches = map bootstrapPkgs.fetchpatch allNixpkgsPatches;
|
||||||
|
prePatch = ''
|
||||||
|
mkdir -p pkgs/by-name/an/antigravity
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
# Get eval-config from patched source
|
||||||
|
evalConfig = import "${patchedSource}/nixos/lib/eval-config.nix";
|
||||||
|
# Apply patches to home-manager source (only if there are patches)
|
||||||
|
patchedHomeManagerSource =
|
||||||
|
if allHomeManagerPatches == []
|
||||||
|
then home-manager
|
||||||
|
else
|
||||||
|
bootstrapPkgs.applyPatches {
|
||||||
|
name = "home-manager-patched";
|
||||||
|
src = home-manager;
|
||||||
|
patches = map bootstrapPkgs.fetchpatch allHomeManagerPatches;
|
||||||
|
};
|
||||||
|
# Import the patched home-manager flake
|
||||||
|
patchedHomeManager =
|
||||||
|
if allHomeManagerPatches == []
|
||||||
|
then home-manager
|
||||||
|
else import "${patchedHomeManagerSource}/flake.nix";
|
||||||
|
# Get the NixOS module from the patched source
|
||||||
|
patchedHomeManagerModule =
|
||||||
|
if allHomeManagerPatches == []
|
||||||
|
then home-manager.nixosModules.home-manager
|
||||||
|
else import "${patchedHomeManagerSource}/nixos";
|
||||||
|
# Create a modified inputs with patched home-manager
|
||||||
|
patchedInputs = inputs // {
|
||||||
|
home-manager = inputs.home-manager // {
|
||||||
|
nixosModules = inputs.home-manager.nixosModules // {
|
||||||
|
home-manager = patchedHomeManagerModule;
|
||||||
|
};
|
||||||
|
# Also provide the patched source path for any direct imports
|
||||||
|
outPath = patchedHomeManagerSource.outPath or "${patchedHomeManagerSource}";
|
||||||
};
|
};
|
||||||
realUsers = (builtins.attrNames
|
};
|
||||||
(nixpkgs.lib.filterAttrs
|
in
|
||||||
(_: value: (builtins.elem "isNormalUser" (builtins.attrNames value)) && value.isNormalUser) usersInfo.users.users)
|
evalConfig {
|
||||||
);
|
inherit system;
|
||||||
mapAllKeysToValue = keys: value: builtins.listToAttrs (map (name: { inherit name value; }) keys);
|
modules = baseModules ++ modules;
|
||||||
forEachUser = mapAllKeysToValue realUsers;
|
specialArgs =
|
||||||
} // specialArgs;
|
rec {
|
||||||
});
|
inputs = patchedInputs;
|
||||||
in
|
inherit machineNames;
|
||||||
{
|
makeEnable = (import ./make-enable.nix) nixpkgs.lib;
|
||||||
|
keys = import ./keys.nix;
|
||||||
|
usersInfo = (import ./users.nix) {
|
||||||
|
pkgs = {zsh = "zsh";};
|
||||||
|
inherit keys system;
|
||||||
|
inputs = patchedInputs;
|
||||||
|
};
|
||||||
|
realUsers = (
|
||||||
|
builtins.attrNames
|
||||||
|
(nixpkgs.lib.filterAttrs
|
||||||
|
(_: value: (builtins.elem "isNormalUser" (builtins.attrNames value)) && value.isNormalUser)
|
||||||
|
usersInfo.users.users)
|
||||||
|
);
|
||||||
|
mapAllKeysToValue = keys: value: builtins.listToAttrs (map (name: {inherit name value;}) keys);
|
||||||
|
forEachUser = mapAllKeysToValue realUsers;
|
||||||
|
}
|
||||||
|
// specialArgs;
|
||||||
|
};
|
||||||
|
in {
|
||||||
nixConfig = {
|
nixConfig = {
|
||||||
substituters = [
|
substituters = [
|
||||||
"https://cache.nixos.org/"
|
"https://cache.nixos.org/"
|
||||||
@@ -177,17 +301,23 @@
|
|||||||
];
|
];
|
||||||
extra-substituters = [
|
extra-substituters = [
|
||||||
"http://192.168.1.26:5050"
|
"http://192.168.1.26:5050"
|
||||||
|
"https://cache.flox.dev"
|
||||||
];
|
];
|
||||||
extra-trusted-public-keys = [
|
extra-trusted-public-keys = [
|
||||||
"1896Folsom.duckdns.org:U2FTjvP95qwAJo0oGpvmUChJCgi5zQoG1YisoI08Qoo="
|
"1896Folsom.duckdns.org:U2FTjvP95qwAJo0oGpvmUChJCgi5zQoG1YisoI08Qoo="
|
||||||
|
"flox-cache-public-1:7F4OyH7ZCnFhcze3fJdfyXYLQw/aV7GEed86nQ7IsOs="
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
nixosConfigurations = builtins.mapAttrs (machineName: params:
|
nixosConfigurations =
|
||||||
let machineParams =
|
builtins.mapAttrs (
|
||||||
if builtins.hasAttr machineName customParams
|
machineName: params: let
|
||||||
then (builtins.getAttr machineName customParams)
|
machineParams =
|
||||||
else {};
|
if builtins.hasAttr machineName customParams
|
||||||
in mkConfig (params // machineParams)
|
then (builtins.getAttr machineName customParams)
|
||||||
) defaultConfigurationParams;
|
else {};
|
||||||
|
in
|
||||||
|
mkConfig (params // machineParams)
|
||||||
|
)
|
||||||
|
defaultConfigurationParams;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,19 +15,16 @@ makeEnable config "myModules.fonts" true {
|
|||||||
fira-mono
|
fira-mono
|
||||||
font-awesome
|
font-awesome
|
||||||
|
|
||||||
noto-fonts-emoji
|
noto-fonts-color-emoji
|
||||||
roboto
|
roboto
|
||||||
source-code-pro
|
source-code-pro
|
||||||
source-sans-pro
|
source-sans-pro
|
||||||
source-serif-pro
|
source-serif-pro
|
||||||
twemoji-color-font
|
twemoji-color-font
|
||||||
(nerdfonts.override { fonts = [
|
nerd-fonts.jetbrains-mono
|
||||||
"JetBrainsMono"
|
nerd-fonts.fantasque-sans-mono
|
||||||
"FantasqueSansMono"
|
nerd-fonts.iosevka
|
||||||
"Iosevka"
|
nerd-fonts.victor-mono
|
||||||
"VictorMono"
|
|
||||||
"SourceCodePro"
|
|
||||||
]; })
|
|
||||||
];
|
];
|
||||||
fontconfig = {
|
fontconfig = {
|
||||||
hinting.autohint = true;
|
hinting.autohint = true;
|
||||||
@@ -35,7 +32,7 @@ makeEnable config "myModules.fonts" true {
|
|||||||
allowBitmaps = true;
|
allowBitmaps = true;
|
||||||
useEmbeddedBitmaps = true;
|
useEmbeddedBitmaps = true;
|
||||||
defaultFonts = {
|
defaultFonts = {
|
||||||
monospace = [ "Source Code Pro" ];
|
monospace = [ "JetBrains Mono" ];
|
||||||
sansSerif = [ "Roboto" ];
|
sansSerif = [ "Roboto" ];
|
||||||
serif = [ "Source Serif Pro" ];
|
serif = [ "Source Serif Pro" ];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,10 +2,7 @@
|
|||||||
makeEnable config "myModules.games" false {
|
makeEnable config "myModules.games" false {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
steam
|
steam
|
||||||
# heroic
|
heroic
|
||||||
];
|
|
||||||
boot.extraModulePackages = with pkgs; [
|
|
||||||
xboxdrv
|
|
||||||
];
|
];
|
||||||
hardware.xone.enable = true;
|
hardware.xone.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
{ ... }: {
|
{ pkgs, ... }: {
|
||||||
home-manager.users.imalison = ({ config, ... }: {
|
home-manager.users.imalison = ({ config, ... }: {
|
||||||
services.git-sync = {
|
services.git-sync = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs.git-sync-rs;
|
||||||
repositories = {
|
repositories = {
|
||||||
config = {
|
config = {
|
||||||
path = config.home.homeDirectory + "/config";
|
path = config.home.homeDirectory + "/config";
|
||||||
@@ -18,7 +19,7 @@
|
|||||||
};
|
};
|
||||||
katnivan = {
|
katnivan = {
|
||||||
path = config.home.homeDirectory + "/katnivan";
|
path = config.home.homeDirectory + "/katnivan";
|
||||||
uri = "ssh://gitea@1896Folsom.duckdns.org:1123/colonelpanic/katnivan.git";
|
uri = "ssh://gitea@dev.railbird.ai:1123/colonelpanic/katnivan.git";
|
||||||
interval = 30;
|
interval = 30;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{ pkgs, config, makeEnable, ... }:
|
{ pkgs, config, makeEnable, ... }:
|
||||||
makeEnable config "myModules.gitea-runner" false {
|
makeEnable config "myModules.gitea-runner" false {
|
||||||
age.secrets.gitea-runner-token = {
|
age.secrets.gitea-runner-token = {
|
||||||
file = ./secrets/gitea-runner-token.${config.networking.hostName}.age;
|
file = ./secrets/gitea-runner-token.age;
|
||||||
group = "docker";
|
group = "docker";
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -21,16 +21,17 @@ makeEnable config "myModules.gitea-runner" false {
|
|||||||
};
|
};
|
||||||
hostPackages = with pkgs; [
|
hostPackages = with pkgs; [
|
||||||
bash
|
bash
|
||||||
direnv
|
|
||||||
coreutils
|
coreutils
|
||||||
curl
|
curl
|
||||||
|
direnv
|
||||||
|
docker
|
||||||
gawk
|
gawk
|
||||||
git-lfs
|
git-lfs
|
||||||
nixFlakes
|
|
||||||
gitFull
|
gitFull
|
||||||
gnused
|
gnused
|
||||||
|
just
|
||||||
|
nixVersions.stable
|
||||||
nodejs
|
nodejs
|
||||||
docker
|
|
||||||
openssh
|
openssh
|
||||||
wget
|
wget
|
||||||
];
|
];
|
||||||
@@ -44,11 +45,13 @@ makeEnable config "myModules.gitea-runner" false {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.gitea-runner-nix.environment =
|
systemd.services.gitea-runner-nix = {
|
||||||
let gitea-runner-directory = "/var/lib/gitea-runner"; in {
|
environment = let gitea-runner-directory = "/var/lib/gitea-runner"; in {
|
||||||
XDG_CONFIG_HOME = gitea-runner-directory;
|
XDG_CONFIG_HOME = gitea-runner-directory;
|
||||||
XDG_CACHE_HOME = "${gitea-runner-directory}/.cache";
|
XDG_CACHE_HOME = "${gitea-runner-directory}/.cache";
|
||||||
};
|
};
|
||||||
|
serviceConfig.PrivateTmp = false;
|
||||||
|
};
|
||||||
users.groups.gitea-runner = {};
|
users.groups.gitea-runner = {};
|
||||||
users.users.gitea-runner = {
|
users.users.gitea-runner = {
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ makeEnable config "myModules.gitea" false {
|
|||||||
enable = true;
|
enable = true;
|
||||||
interval = "23:05";
|
interval = "23:05";
|
||||||
};
|
};
|
||||||
|
settings.service = {
|
||||||
|
DISABLE_REGISTRATION = true;
|
||||||
|
};
|
||||||
settings.server = {
|
settings.server = {
|
||||||
DOMAIN = "dev.railbird.ai";
|
DOMAIN = "dev.railbird.ai";
|
||||||
SSH_PORT = 1123;
|
SSH_PORT = 1123;
|
||||||
|
|||||||
119
nixos/home-assistant.nix
Normal file
119
nixos/home-assistant.nix
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
{ pkgs, config, lib, makeEnable, realUsers, ... }:
|
||||||
|
makeEnable config "myModules.home-assistant" false {
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
# For all interfaces (e.g. if you want to accept RA on all):
|
||||||
|
"net.ipv6.conf.all.accept_ra" = lib.mkForce "1";
|
||||||
|
"net.ipv6.conf.all.accept_ra_rt_info_max_plen" = lib.mkForce "64";
|
||||||
|
"net.ipv6.conf.default.accept_ra" = lib.mkForce "1";
|
||||||
|
"net.ipv6.conf.default.accept_ra_rt_info_max_plen" = lib.mkForce "64";
|
||||||
|
"net.ipv6.conf.wlo1.accept_ra" = lib.mkForce "1";
|
||||||
|
"net.ipv6.conf.wlo1.accept_ra_rt_info_max_plen" = lib.mkForce "64";
|
||||||
|
|
||||||
|
# Ensure forwarding is off on all interfaces unless needed
|
||||||
|
"net.ipv6.conf.all.forwarding" = lib.mkForce "0";
|
||||||
|
};
|
||||||
|
|
||||||
|
# services.matter-server = {
|
||||||
|
# enable = true;
|
||||||
|
# logLevel = "debug";
|
||||||
|
# extraArgs = let cert-dir = pkgs.fetchFromGitHub {
|
||||||
|
# repo = "connectedhomeip";
|
||||||
|
# owner = "project-chip";
|
||||||
|
# rev = "6e8676be6142bb541fa68048c77f2fc56a21c7b1";
|
||||||
|
# hash = "sha256-QwPKn2R4mflTKMyr1k4xF04t0PJIlzNCOdXEiQwX5wk=";
|
||||||
|
# }; in
|
||||||
|
# [
|
||||||
|
# # "--bluetooth-adapter=0"
|
||||||
|
# "--paa-root-cert-dir=${cert-dir}/credentials/production/paa-root-certs"
|
||||||
|
# "--enable-test-net-dcl"
|
||||||
|
# "--ota-provider-dir=/var/lib/matter-server/ota-provider"
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
# age.secrets.google-service-account = {
|
||||||
|
# file = ../secrets/google-assistant-integration-service-key.age;
|
||||||
|
# owner = "hass";
|
||||||
|
# };
|
||||||
|
|
||||||
|
age.secrets.zwave-js-config-filepath = {
|
||||||
|
file = ./secrets/zwave-js.json.age;
|
||||||
|
owner = "imalison";
|
||||||
|
group = "users";
|
||||||
|
mode = "777";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.zwave-js = {
|
||||||
|
enable = true;
|
||||||
|
serialPort = "/dev/serial/by-id/usb-Silicon_Labs_Zooz_ZST10_700_Z-Wave_Stick_fec41d5809caec11843b63a341be1031-if00-port0";
|
||||||
|
secretsConfigFile = config.age.secrets.zwave-js-config-filepath.path;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.zwave-js = {
|
||||||
|
serviceConfig = {
|
||||||
|
# DynamicUser = lib.mkForce false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.zwave-js-ui = {
|
||||||
|
enable = true;
|
||||||
|
serialPort = "/dev/serial/by-id/usb-Silicon_Labs_Zooz_ZST10_700_Z-Wave_Stick_fec41d5809caec11843b63a341be1031-if00-port0";
|
||||||
|
settings = {
|
||||||
|
HOST = "::";
|
||||||
|
PORT = "8091";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.home-assistant = {
|
||||||
|
enable = true;
|
||||||
|
extraComponents = [
|
||||||
|
"anthropic"
|
||||||
|
"cast"
|
||||||
|
"dlna_dmr"
|
||||||
|
"esphome"
|
||||||
|
"google_assistant"
|
||||||
|
"google_translate"
|
||||||
|
"homeassistant_hardware"
|
||||||
|
"homeassistant_sky_connect"
|
||||||
|
"homekit_controller"
|
||||||
|
"hue"
|
||||||
|
"ibeacon"
|
||||||
|
"isal"
|
||||||
|
"kef"
|
||||||
|
"kegtron"
|
||||||
|
"matter"
|
||||||
|
"met"
|
||||||
|
"opensky"
|
||||||
|
"otbr"
|
||||||
|
"piper"
|
||||||
|
"radio_browser"
|
||||||
|
"roomba"
|
||||||
|
"spotify"
|
||||||
|
"samsungtv"
|
||||||
|
"thread"
|
||||||
|
"wake_word"
|
||||||
|
"webostv"
|
||||||
|
"whisper"
|
||||||
|
"wyoming"
|
||||||
|
"yale"
|
||||||
|
"zwave_js"
|
||||||
|
];
|
||||||
|
extraPackages = python3Packages: with python3Packages; [
|
||||||
|
numpy
|
||||||
|
python-matter-server
|
||||||
|
universal-silabs-flasher
|
||||||
|
];
|
||||||
|
config = {
|
||||||
|
http = {
|
||||||
|
use_x_forwarded_for = true;
|
||||||
|
trusted_proxies = ["0.0.0.0" "127.0.0.1" "::1" "192.168.50.1"];
|
||||||
|
};
|
||||||
|
# google_assistant = {
|
||||||
|
# project_id = "canyon-run-b104-home-assistant";
|
||||||
|
# service_account = "!include ${config.age.secrets.google-service-account.path}";
|
||||||
|
# report_state = true;
|
||||||
|
# exposed_domains = ["switch" "light"];
|
||||||
|
# };
|
||||||
|
default_config = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -11,7 +11,22 @@
|
|||||||
programs.home-manager.enable = true;
|
programs.home-manager.enable = true;
|
||||||
|
|
||||||
programs.ssh = {
|
programs.ssh = {
|
||||||
forwardAgent = true;
|
enable = true;
|
||||||
|
enableDefaultConfig = false;
|
||||||
|
matchBlocks = {
|
||||||
|
"*" = {
|
||||||
|
forwardAgent = true;
|
||||||
|
addKeysToAgent = "no";
|
||||||
|
compression = false;
|
||||||
|
serverAliveInterval = 0;
|
||||||
|
serverAliveCountMax = 3;
|
||||||
|
hashKnownHosts = false;
|
||||||
|
userKnownHostsFile = "~/.ssh/known_hosts";
|
||||||
|
controlMaster = "no";
|
||||||
|
controlPath = "~/.ssh/master-%r@%n:%p";
|
||||||
|
controlPersist = "no";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services.gpg-agent = {
|
services.gpg-agent = {
|
||||||
@@ -49,7 +64,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
font = {
|
font = {
|
||||||
package = pkgs.noto-fonts-emoji;
|
package = pkgs.noto-fonts-color-emoji;
|
||||||
name = "Noto Sans";
|
name = "Noto Sans";
|
||||||
size = 10;
|
size = 10;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ switch *args:
|
|||||||
sudo nixos-rebuild switch --flake '.#' --impure {{args}}
|
sudo nixos-rebuild switch --flake '.#' --impure {{args}}
|
||||||
|
|
||||||
fix-local-path-issue:
|
fix-local-path-issue:
|
||||||
nix flake lock --update-input imalison-taffybar
|
nix flake update imalison-taffybar
|
||||||
|
|
||||||
|
|
||||||
expire-home-manager-generations:
|
expire-home-manager-generations:
|
||||||
|
|||||||
180
nixos/k3s.nix
180
nixos/k3s.nix
@@ -1,23 +1,165 @@
|
|||||||
{ config, makeEnable, ... }:
|
{
|
||||||
makeEnable config "myModules.railbird-k3s" false {
|
pkgs,
|
||||||
services.k3s = {
|
config,
|
||||||
enable = true;
|
lib,
|
||||||
role = "server";
|
...
|
||||||
clusterInit = true;
|
}:
|
||||||
containerdConfigTemplate = ''
|
with lib; let
|
||||||
{{ template "base" . }}
|
cfg = config.myModules.railbird-k3s;
|
||||||
|
mount-path = "/var/lib/railbird/bucket";
|
||||||
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia]
|
bucket-name = "railbird-dev-videos";
|
||||||
privileged_without_host_devices = false
|
plugins-path = pkgs.buildEnv {
|
||||||
runtime_engine = ""
|
name = "combined-cni-plugins";
|
||||||
runtime_root = ""
|
paths = [
|
||||||
runtime_type = "io.containerd.runc.v2"
|
pkgs.cni-plugins
|
||||||
|
pkgs.calico-cni-plugin
|
||||||
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options]
|
pkgs.calico-kube-controllers
|
||||||
BinaryName = "/run/current-system/sw/bin/nvidia-container-runtime"
|
pkgs.cni-plugin-flannel
|
||||||
'';
|
];
|
||||||
gracefulNodeShutdown = {
|
};
|
||||||
|
in {
|
||||||
|
options = {
|
||||||
|
myModules.railbird-k3s = {
|
||||||
|
enable = mkEnableOption "railbird k3s";
|
||||||
|
serverAddr = mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "";
|
||||||
|
};
|
||||||
|
extraFlags = mkOption {
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
default = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
age.secrets."1896Folsom-k3s-token.age".file = ./secrets/1896Folsom-k3s-token.age;
|
||||||
|
age.secrets."k3s-registry.yaml.age".file = ./secrets/k3s-registry.yaml.age;
|
||||||
|
age.secrets.api-service-key = {
|
||||||
|
file = ./secrets/api_service_account_key.json.age;
|
||||||
|
owner = "railbird";
|
||||||
|
group = "users";
|
||||||
|
};
|
||||||
|
environment.etc."rancher/k3s/registries.yaml".source = config.age.secrets."k3s-registry.yaml.age".path;
|
||||||
|
services.dockerRegistry = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
listenAddress = "0.0.0.0";
|
||||||
|
port = 5279;
|
||||||
|
enableDelete = true;
|
||||||
|
enableGarbageCollect = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.containerd = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
plugins."io.containerd.cri.v1.runtime" = {
|
||||||
|
enable_cdi = true;
|
||||||
|
cdi_spec_dirs = [ "/var/run/cdi" ];
|
||||||
|
};
|
||||||
|
plugins."io.containerd.grpc.v1.cri" = {
|
||||||
|
enable_cdi = true;
|
||||||
|
cdi_spec_dirs = [ "/var/run/cdi" ];
|
||||||
|
cni.bin_dir = "${plugins-path}/bin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.nvidia-container-toolkit.enable = true;
|
||||||
|
virtualisation.containers = {
|
||||||
|
containersConf.cniPlugins = [
|
||||||
|
pkgs.cni-plugins
|
||||||
|
pkgs.calico-cni-plugin
|
||||||
|
pkgs.calico-kube-controllers
|
||||||
|
pkgs.cni-plugin-flannel
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services = {
|
||||||
|
nvidia-container-toolkit-cdi-generator = {
|
||||||
|
# Even with `--library-search-path`, `nvidia-ctk` won't find the libs
|
||||||
|
# unless I bodge their path into the environment.
|
||||||
|
environment.LD_LIBRARY_PATH = "${config.hardware.nvidia.package}/lib";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.mount-railbird-bucket = {
|
||||||
|
after = ["agenix.service"];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
description = "Mount railbird bucket";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
Restart = "on-failure"; # Restart the service on failure
|
||||||
|
RestartSec = 5; # Wait 5 seconds before restarti
|
||||||
|
TimeoutStopSec = 2;
|
||||||
|
ExecStartPre = [
|
||||||
|
"-${pkgs.util-linux}/bin/umount -f ${mount-path}"
|
||||||
|
"${pkgs.coreutils}/bin/mkdir -p ${mount-path}"
|
||||||
|
"${pkgs.coreutils}/bin/chown railbird:users ${mount-path}"
|
||||||
|
"${pkgs.coreutils}/bin/chmod 0775 ${mount-path}"
|
||||||
|
];
|
||||||
|
ExecStart = let
|
||||||
|
key-file = config.age.secrets.api-service-key.path;
|
||||||
|
in
|
||||||
|
pkgs.writeShellScript "mount-railbird-bucket" ''
|
||||||
|
while true; do
|
||||||
|
if ${pkgs.util-linux}/bin/mount | grep -q "${mount-path}" && [ -d "${mount-path}/dev" ]; then
|
||||||
|
echo "Mount path ${mount-path} is mounted and valid (contains directory 'dev')."
|
||||||
|
else
|
||||||
|
echo "Mount path is not valid or not mounted, attempting remount."
|
||||||
|
${pkgs.util-linux}/bin/umount -f "${mount-path}" || true
|
||||||
|
${pkgs.gcsfuse}/bin/gcsfuse --implicit-dirs --key-file "${key-file}" "${bucket-name}" "${mount-path}"
|
||||||
|
fi
|
||||||
|
echo "Sleeping"
|
||||||
|
sleep 30
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
User = "root";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.k3s = {
|
||||||
|
enable = true;
|
||||||
|
clusterInit = cfg.serverAddr == "";
|
||||||
|
serverAddr = cfg.serverAddr;
|
||||||
|
configPath = pkgs.writeTextFile {
|
||||||
|
name = "k3s-config.yaml";
|
||||||
|
text = ''
|
||||||
|
kubelet-arg:
|
||||||
|
- "eviction-hard=nodefs.available<2Gi"
|
||||||
|
- "eviction-soft=nodefs.available<5Gi"
|
||||||
|
- "eviction-soft-grace-period=nodefs.available=5m"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
tokenFile = config.age.secrets."1896Folsom-k3s-token.age".path;
|
||||||
|
extraFlags =
|
||||||
|
[
|
||||||
|
"--tls-san ryzen-shine.local"
|
||||||
|
"--tls-san nixquick.local"
|
||||||
|
"--tls-san biskcomp.local"
|
||||||
|
"--tls-san jimi-hendnix.local"
|
||||||
|
"--tls-san dev.railbird.ai"
|
||||||
|
"--node-label nixos-nvidia-cdi=enabled"
|
||||||
|
"--etcd-arg=quota-backend-bytes=8589934592"
|
||||||
|
]
|
||||||
|
++ cfg.extraFlags;
|
||||||
|
containerdConfigTemplate = ''
|
||||||
|
{{ template "base" . }}
|
||||||
|
|
||||||
|
plugins."io.containerd.grpc.v1.cri".cdi_spec_dirs = [ "/var/run/cdi" ]
|
||||||
|
plugins."io.containerd.grpc.v1.cri".enable_cdi = true
|
||||||
|
|
||||||
|
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia]
|
||||||
|
runtime_type = "io.containerd.runc.v2"
|
||||||
|
|
||||||
|
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.nvidia.options]
|
||||||
|
BinaryName = "/run/current-system/sw/bin/nvidia-container-runtime.cdi"
|
||||||
|
|
||||||
|
[debug]
|
||||||
|
level = "trace"
|
||||||
|
'';
|
||||||
|
gracefulNodeShutdown = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
{ pkgs, inputs, config, makeEnable, ... }:
|
{ pkgs, config, makeEnable, ... }:
|
||||||
makeEnable config "myModules.kat" false {
|
makeEnable config "myModules.kat" false {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
bitwarden
|
|
||||||
obsidian
|
obsidian
|
||||||
obs-studio
|
bitwarden
|
||||||
ffmpeg
|
|
||||||
code-cursor
|
code-cursor
|
||||||
|
obsidian
|
||||||
|
windsurf
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.extraInit = ''
|
environment.extraInit = ''
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ rec {
|
|||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIoHW29TmS5FgK12N+bCXhGWASDdmzqSEA0QxbyGaJ+j nixquick.local"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIoHW29TmS5FgK12N+bCXhGWASDdmzqSEA0QxbyGaJ+j nixquick.local"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIaA0tRVTqwBDxY6X03wx+50pbB37y5e8gqFpFMDa/Bj adele.local"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIaA0tRVTqwBDxY6X03wx+50pbB37y5e8gqFpFMDa/Bj adele.local"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID4j70BoksIEiX+OMBCsSG8wvMIEwoRQf5Gz5ppbm7Iy jimi-hendnix.local"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID4j70BoksIEiX+OMBCsSG8wvMIEwoRQf5Gz5ppbm7Iy jimi-hendnix.local"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOYAoN3l15Avweu5fcfcnlRzmFPHtlYIpo02sxBHANZ+ strixy-minaj.local"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFTYwBuQ3CNbkj6gAQ0oqxhPlKZ+X6tUaZotccowzjCW justin-bieber-creek.local"
|
||||||
];
|
];
|
||||||
kanivanKeys = [
|
kanivanKeys = [
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUSkj7587e+MAUNyU/KRpw9Vk++53Wv5nB+0V1QgiTO3rMQe6HJt0Tm2wi/o/T8GNjueT2D69YgkqOIF1FQwsj2EFLObcMzeBgs5gTSglqggA2I91BIc1vvgjCDpogOMAzAQGlTxRnqrEXhqG0jJtw8KIzLr9WrvWLdTT4rHtWS8RoOBgkQ8oxbggZ4vtbMBIwoIAYGRr70KBRNCsLTPLa8yEf+DDQxq1entzxSjHXHgyeBSVVpPCrBVmhjandk+lIFInjvAiAE1ZkJHSRccL73ORmgb1crwH7xlD9NwBPmypowMi8UIRMKfL2lNehT0AQIlEAikUBLMDzPIPhnwLZ imalison@ivanm-dfinity-razer.local"
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUSkj7587e+MAUNyU/KRpw9Vk++53Wv5nB+0V1QgiTO3rMQe6HJt0Tm2wi/o/T8GNjueT2D69YgkqOIF1FQwsj2EFLObcMzeBgs5gTSglqggA2I91BIc1vvgjCDpogOMAzAQGlTxRnqrEXhqG0jJtw8KIzLr9WrvWLdTT4rHtWS8RoOBgkQ8oxbggZ4vtbMBIwoIAYGRr70KBRNCsLTPLa8yEf+DDQxq1entzxSjHXHgyeBSVVpPCrBVmhjandk+lIFInjvAiAE1ZkJHSRccL73ORmgb1crwH7xlD9NwBPmypowMi8UIRMKfL2lNehT0AQIlEAikUBLMDzPIPhnwLZ imalison@ivanm-dfinity-razer.local"
|
||||||
@@ -23,6 +25,8 @@ rec {
|
|||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOVGIGnpkU7HNQ/zl/Ffi562M+laWY9/yIjB63BCMiTS kat@nixcomp.local"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOVGIGnpkU7HNQ/zl/Ffi562M+laWY9/yIjB63BCMiTS kat@nixcomp.local"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3tlMePru6ZlSuf8yUii3N1dy3WwJnSQAt3EgETkctK kat@jay-lenovo.local"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO3tlMePru6ZlSuf8yUii3N1dy3WwJnSQAt3EgETkctK kat@jay-lenovo.local"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFrOYD3ReFc2+xFUylBFHREcm1lO7BRJGW5JrOoY3I8s ivanm@strixi-minaj"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFrOYD3ReFc2+xFUylBFHREcm1lO7BRJGW5JrOoY3I8s ivanm@strixi-minaj"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINYy93265G59aA1ksckjqlfeHq0vpEpzC8BwqCrpeXdh kat@Kats-Mac-mini.local"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIG60q//rVd2JESQT59XLvLdsH9AdYfQXTkXMjx9pH3xp imalison@justin-bieber-creek"
|
||||||
];
|
];
|
||||||
deanKeys = [
|
deanKeys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICDvbEVL+y7eV4+mtxOuHwyomBBQ6uYMesctstua20+e deanwenstrand@deans-mbp-2.lan"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICDvbEVL+y7eV4+mtxOuHwyomBBQ6uYMesctstua20+e deanwenstrand@deans-mbp-2.lan"
|
||||||
@@ -38,6 +42,7 @@ rec {
|
|||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqBnDZXcZIMtOTPxg4pJWyMyNp84kpU2uH88aCkrhMBY2TI4dqAXGY4h1DOyOEyQo9nTgyvdlv4M1Hlp5tzfbuapdTWtt36gb+FKpsTUy8dz45fhKJerUszNbVQ+SpZu4ZFN4Nv9eP3AHO+Mzjcvbf666VMDEzZWu2totd7jxyI9PdK78TD5AOi+kGTtbEgqMpJCcZmJlzJ9NJJ2ejhPCRwcfDrShHcfMeEwWL5MmnzT+WstkRwJAM0f9/ks77jWDnB1Eu55rQykU8zVZ1nz1GiXZcxUpm6B0IRhwn8NGH6nVzSLITtO5eJ7LPQR9XNUODpbrsVGNK6jgGql9gZpYp andy@nixos"
|
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqBnDZXcZIMtOTPxg4pJWyMyNp84kpU2uH88aCkrhMBY2TI4dqAXGY4h1DOyOEyQo9nTgyvdlv4M1Hlp5tzfbuapdTWtt36gb+FKpsTUy8dz45fhKJerUszNbVQ+SpZu4ZFN4Nv9eP3AHO+Mzjcvbf666VMDEzZWu2totd7jxyI9PdK78TD5AOi+kGTtbEgqMpJCcZmJlzJ9NJJ2ejhPCRwcfDrShHcfMeEwWL5MmnzT+WstkRwJAM0f9/ks77jWDnB1Eu55rQykU8zVZ1nz1GiXZcxUpm6B0IRhwn8NGH6nVzSLITtO5eJ7LPQR9XNUODpbrsVGNK6jgGql9gZpYp andy@nixos"
|
||||||
];
|
];
|
||||||
willKeys = [
|
willKeys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDqBw9QBC0t1TGu7JdryJ6vX3hkBjNnDLe4GFptN2Y3k willgester@gmail.com"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILgLjW6R+dTEmlUoPfE4GA8gRn93UlcSJqlJP1xw0KWl willgester@gmail.com"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILgLjW6R+dTEmlUoPfE4GA8gRn93UlcSJqlJP1xw0KWl willgester@gmail.com"
|
||||||
];
|
];
|
||||||
loewyKeys = [
|
loewyKeys = [
|
||||||
|
|||||||
4
nixos/laptop.nix
Normal file
4
nixos/laptop.nix
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{ makeEnable, config, ... }:
|
||||||
|
makeEnable config "myModules.laptop" true {
|
||||||
|
services.logind.settings.Login.HandleLidSwitchExternalPower = "ignore";
|
||||||
|
}
|
||||||
@@ -1,11 +1,18 @@
|
|||||||
{ config, lib, pkgs, inputs, forEachUser, ... }:
|
{ lib, pkgs, inputs, forEachUser, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../configuration.nix
|
../configuration.nix
|
||||||
inputs.nixos-hardware.nixosModules.dell-xps-17-9700-nvidia
|
inputs.nixos-hardware.nixosModules.dell-xps-17-9700-nvidia
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# services.tts.servers.coqui = {
|
||||||
|
# enable = false;
|
||||||
|
# useCuda = false;
|
||||||
|
# port = 11400;
|
||||||
|
# };
|
||||||
|
|
||||||
|
myModules.wyoming.enable = false;
|
||||||
myModules.base.enable = true;
|
myModules.base.enable = true;
|
||||||
myModules.desktop.enable = true;
|
myModules.desktop.enable = true;
|
||||||
myModules.xmonad.enable = true;
|
myModules.xmonad.enable = true;
|
||||||
@@ -16,6 +23,7 @@
|
|||||||
myModules.fonts.enable = true;
|
myModules.fonts.enable = true;
|
||||||
myModules.nixified-ai.enable = false;
|
myModules.nixified-ai.enable = false;
|
||||||
myModules.gitea-runner.enable = false;
|
myModules.gitea-runner.enable = false;
|
||||||
|
hardware.nvidia.open = true;
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
|
||||||
@@ -23,7 +31,7 @@
|
|||||||
android-studio
|
android-studio
|
||||||
];
|
];
|
||||||
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
# boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ ];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
@@ -33,7 +41,7 @@
|
|||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
services.xserver.libinput = {
|
services.libinput = {
|
||||||
enable = true;
|
enable = true;
|
||||||
touchpad.tapping = true;
|
touchpad.tapping = true;
|
||||||
};
|
};
|
||||||
@@ -59,7 +67,7 @@
|
|||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
networking.hostName = "adele";
|
networking.hostName = "adell";
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{ forEachUser, ... }:
|
{ pkgs, lib, forEachUser, config, ... }:
|
||||||
let biskcomp-nginx-hostnames = "192.168.1.44 railbird.ai 1896Folsom.duckdns.org biskcomp.local 0.0.0.0 67.162.131.71";
|
let biskcomp-nginx-hostnames = "192.168.1.44 railbird.ai 1896Folsom.duckdns.org biskcomp.local 0.0.0.0 67.162.131.71";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@@ -13,10 +13,11 @@ in
|
|||||||
extraGroups = ["syncthing"];
|
extraGroups = ["syncthing"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
myModules.home-assistant.enable = true;
|
||||||
myModules.raspberry-pi.enable = true;
|
myModules.raspberry-pi.enable = true;
|
||||||
|
myModules.plasma.enable = false;
|
||||||
myModules.base.enable = true;
|
myModules.base.enable = true;
|
||||||
myModules.desktop.enable = true;
|
myModules.desktop.enable = false;
|
||||||
myModules.xmonad.enable = false;
|
myModules.xmonad.enable = false;
|
||||||
myModules.extra.enable = false;
|
myModules.extra.enable = false;
|
||||||
myModules.code.enable = true;
|
myModules.code.enable = true;
|
||||||
@@ -33,8 +34,21 @@ in
|
|||||||
myModules.gitea.enable = true;
|
myModules.gitea.enable = true;
|
||||||
myModules.gitea-runner.enable = false;
|
myModules.gitea-runner.enable = false;
|
||||||
|
|
||||||
|
myModules.railbird-k3s = {
|
||||||
|
enable = false;
|
||||||
|
serverAddr = "https://dev.railbird.ai:6443";
|
||||||
|
};
|
||||||
|
services.k3s.disableAgent = true;
|
||||||
|
|
||||||
|
age.secrets.vaultwarden-environment-file = {
|
||||||
|
file = ../secrets/vaultwarden-environment-file.age;
|
||||||
|
owner = "vaultwarden";
|
||||||
|
};
|
||||||
|
|
||||||
services.vaultwarden = {
|
services.vaultwarden = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
backupDir = "/var/backup/vaultwarden";
|
||||||
|
environmentFile = config.age.secrets.vaultwarden-environment-file.path;
|
||||||
config = {
|
config = {
|
||||||
ROCKET_ADDRESS = "::1";
|
ROCKET_ADDRESS = "::1";
|
||||||
ROCKET_PORT = 8222;
|
ROCKET_PORT = 8222;
|
||||||
@@ -46,14 +60,62 @@ in
|
|||||||
defaults.email = "IvanMalison@gmail.com";
|
defaults.email = "IvanMalison@gmail.com";
|
||||||
};
|
};
|
||||||
|
|
||||||
# services.nextcloud = {
|
services.gitlab = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# hostName = "nextcloud.railbird.ai";
|
databasePasswordFile = pkgs.writeText "dbPassword" "zgvcyfwsxzcwr85l";
|
||||||
# config = {
|
initialRootPasswordFile = pkgs.writeText "rootPassword" "dakqdvp4ovhksxer";
|
||||||
# dbtype = "pgsql";
|
host = "gitlab.railbird.ai";
|
||||||
# database.createLocally = true;
|
secrets = {
|
||||||
# };
|
secretFile = pkgs.writeText "secret" "Aig5zaic";
|
||||||
# };
|
otpFile = pkgs.writeText "otpsecret" "Riew9mue";
|
||||||
|
dbFile = pkgs.writeText "dbsecret" "we2quaeZ";
|
||||||
|
jwsFile = pkgs.runCommand "oidcKeyBase" {} "${pkgs.openssl}/bin/openssl genrsa 2048 > $out";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
age.secrets.discourse-admin-password = {
|
||||||
|
file = ../secrets/discourse-admin-password.age;
|
||||||
|
mode = "770";
|
||||||
|
owner = "discourse";
|
||||||
|
group = "users";
|
||||||
|
};
|
||||||
|
|
||||||
|
age.secrets.discourse-secret-key-base = {
|
||||||
|
file = ../secrets/discourse-secret-key-base.age;
|
||||||
|
group = "users";
|
||||||
|
owner = "discourse";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.discourse = {
|
||||||
|
enable = false;
|
||||||
|
enableACME = true;
|
||||||
|
hostname = "discourse.railbird.ai";
|
||||||
|
admin = {
|
||||||
|
passwordFile = config.age.secrets.discourse-admin-password.path;
|
||||||
|
email = "support@railbird.ai";
|
||||||
|
fullName = "Admin";
|
||||||
|
username = "admin";
|
||||||
|
};
|
||||||
|
secretKeyBaseFile = config.age.secrets.discourse-secret-key-base.path;
|
||||||
|
database.ignorePostgresqlVersion = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.emacs-org-api = {
|
||||||
|
description = "Emacs org api";
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = ''${pkgs.runtimeShell} -l -c "${lib.getExe' pkgs.emacs "emacs"} --load /home/imalison/.emacs.d/org-api.el --daemon=org-api"'';
|
||||||
|
RemainAfterExit = true;
|
||||||
|
Restart = "on-failure";
|
||||||
|
User = "imalison";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
age.secrets.org-api-passwords = {
|
||||||
|
file = ../secrets/org-api-passwords.age;
|
||||||
|
owner = "nginx";
|
||||||
|
};
|
||||||
|
|
||||||
services.nginx = {
|
services.nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -61,6 +123,23 @@ in
|
|||||||
recommendedGzipSettings = true;
|
recommendedGzipSettings = true;
|
||||||
recommendedTlsSettings = true;
|
recommendedTlsSettings = true;
|
||||||
virtualHosts = {
|
virtualHosts = {
|
||||||
|
"org-mode.1896Folsom.duckdns.org" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://localhost:2025";
|
||||||
|
basicAuthFile = config.age.secrets.org-api-passwords.path;
|
||||||
|
extraConfig = ''
|
||||||
|
add_header 'Access-Control-Allow-Origin' '*' always;
|
||||||
|
add_header 'Access-Control-Allow-Methods' 'POST, PUT, DELETE, GET, PATCH, OPTIONS' always;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"gitlab.railbird.ai" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
locations."/".proxyPass = "http://unix:/run/gitlab/gitlab-workhorse.socket";
|
||||||
|
};
|
||||||
"vaultwarden.railbird.ai" = {
|
"vaultwarden.railbird.ai" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
@@ -68,13 +147,6 @@ in
|
|||||||
proxyPass = "http://[::1]:8222";
|
proxyPass = "http://[::1]:8222";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
"cache.railbird.ai" = {
|
|
||||||
enableACME = true;
|
|
||||||
forceSSL = true;
|
|
||||||
locations."/" = {
|
|
||||||
proxyPass = "http://192.168.1.20:3090";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"syncthing.railbird.ai" = {
|
"syncthing.railbird.ai" = {
|
||||||
enableACME = true;
|
enableACME = true;
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
@@ -107,20 +179,6 @@ in
|
|||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
services.home-assistant = {
|
|
||||||
enable = false;
|
|
||||||
extraComponents = [
|
|
||||||
# Components required to complete the onboarding
|
|
||||||
"met"
|
|
||||||
"radio_browser"
|
|
||||||
];
|
|
||||||
config = {
|
|
||||||
# Includes dependencies for a basic setup
|
|
||||||
# https://www.home-assistant.io/integrations/default_config/
|
|
||||||
default_config = {};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
swapDevices = [
|
||||||
{ device = "/swapfile"; size = 8192; } # size is in MiB
|
{ device = "/swapfile"; size = 8192; } # size is in MiB
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
../configuration.nix
|
../configuration.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
myModules.wyoming.enable = true;
|
||||||
features.full.enable = true;
|
features.full.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
@@ -28,7 +29,7 @@
|
|||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
myModules.postgres.enable = true;
|
myModules.postgres.enable = true;
|
||||||
|
myModules.kat.enable = true;
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
|
|||||||
@@ -5,6 +5,10 @@
|
|||||||
../configuration.nix
|
../configuration.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
myModules.railbird-k3s = {
|
||||||
|
enable = true;
|
||||||
|
serverAddr = "https://ryzen-shine.local:6443";
|
||||||
|
};
|
||||||
myModules.base.enable = true;
|
myModules.base.enable = true;
|
||||||
myModules.desktop.enable = true;
|
myModules.desktop.enable = true;
|
||||||
myModules.xmonad.enable = true;
|
myModules.xmonad.enable = true;
|
||||||
@@ -13,15 +17,68 @@
|
|||||||
myModules.games.enable = false;
|
myModules.games.enable = false;
|
||||||
myModules.syncthing.enable = true;
|
myModules.syncthing.enable = true;
|
||||||
myModules.fonts.enable = true;
|
myModules.fonts.enable = true;
|
||||||
myModules.nixified-ai.enable = false;
|
|
||||||
myModules.gitea-runner.enable = true;
|
myModules.gitea-runner.enable = true;
|
||||||
myModules.postgres.enable = true;
|
myModules.postgres.enable = true;
|
||||||
|
myModules.gitea.enable = true;
|
||||||
|
|
||||||
|
age.secrets.vaultwarden-environment-file = {
|
||||||
|
file = ../secrets/vaultwarden-environment-file.age;
|
||||||
|
owner = "vaultwarden";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.vaultwarden = {
|
||||||
|
enable = true;
|
||||||
|
backupDir = "/var/backup/vaultwarden";
|
||||||
|
environmentFile = config.age.secrets.vaultwarden-environment-file.path;
|
||||||
|
config = {
|
||||||
|
ROCKET_ADDRESS = "::1";
|
||||||
|
ROCKET_PORT = 8222;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
recommendedProxySettings = true;
|
||||||
|
recommendedGzipSettings = true;
|
||||||
|
recommendedTlsSettings = true;
|
||||||
|
virtualHosts = {
|
||||||
|
"vaultwarden.railbird.ai" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://[::1]:8222";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"syncthing.railbird.ai" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
root = "/var/lib/syncthing/railbird";
|
||||||
|
locations."/" = {
|
||||||
|
extraConfig = ''
|
||||||
|
autoindex on;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"docs.railbird.ai" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL = true;
|
||||||
|
root = "/var/lib/syncthing/railbird/docs";
|
||||||
|
locations."/" = {
|
||||||
|
extraConfig = ''
|
||||||
|
autoindex on;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
security.acme = {
|
||||||
|
acceptTerms = true;
|
||||||
|
defaults.email = "IvanMalison@gmail.com";
|
||||||
|
};
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
myModules.nvidia.enable = true;
|
||||||
# install nvidia drivers in addition to intel one
|
|
||||||
hardware.opengl.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ];
|
|
||||||
hardware.opengl.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
|||||||
207
nixos/machines/justin-bieber-creek.nix
Normal file
207
nixos/machines/justin-bieber-creek.nix
Normal file
@@ -0,0 +1,207 @@
|
|||||||
|
{ config, lib, pkgs, forEachUser, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
services.synergy.server = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
myModules.fonts.enable = true;
|
||||||
|
myModules.base.enable = true;
|
||||||
|
myModules.desktop.enable = true;
|
||||||
|
myModules.xmonad.enable = true;
|
||||||
|
myModules.wyoming.enable = true;
|
||||||
|
|
||||||
|
networking.enableIPv6 = true;
|
||||||
|
|
||||||
|
services.synergy.client = {
|
||||||
|
enable = true;
|
||||||
|
serverAddress = "strixi-minaj.local:24800";
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.kernel.sysctl = {
|
||||||
|
# For all interfaces (e.g. if you want to accept RA on all):
|
||||||
|
"net.ipv6.conf.all.accept_ra" = lib.mkForce "1";
|
||||||
|
"net.ipv6.conf.all.accept_ra_rt_info_max_plen" = lib.mkForce "64";
|
||||||
|
"net.ipv6.conf.default.accept_ra" = lib.mkForce "1";
|
||||||
|
"net.ipv6.conf.default.accept_ra_rt_info_max_plen" = lib.mkForce "64";
|
||||||
|
"net.ipv6.conf.wlo1.accept_ra" = lib.mkForce "1";
|
||||||
|
"net.ipv6.conf.wlo1.accept_ra_rt_info_max_plen" = lib.mkForce "64";
|
||||||
|
|
||||||
|
# Ensure forwarding is off on all interfaces unless needed
|
||||||
|
"net.ipv6.conf.all.forwarding" = lib.mkForce "0";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.otbr-agent = {
|
||||||
|
wants = [ "network-online.target" ];
|
||||||
|
after = [ "network-online.target" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
services.openthread-border-router = {
|
||||||
|
enable = true;
|
||||||
|
backboneInterface = "wpan0";
|
||||||
|
logLevel = "debug";
|
||||||
|
radio = {
|
||||||
|
device = "/dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_0cd053abfa38ef119c66e1d154516304-if00-port0";
|
||||||
|
baudRate = 460800;
|
||||||
|
flowControl = true;
|
||||||
|
};
|
||||||
|
web = {
|
||||||
|
listenPort = 8087;
|
||||||
|
};
|
||||||
|
rest = {
|
||||||
|
listenPort = 8089;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.matter-server = {
|
||||||
|
enable = true;
|
||||||
|
logLevel = "debug";
|
||||||
|
extraArgs = let cert-dir = pkgs.fetchFromGitHub {
|
||||||
|
repo = "connectedhomeip";
|
||||||
|
owner = "project-chip";
|
||||||
|
rev = "6e8676be6142bb541fa68048c77f2fc56a21c7b1";
|
||||||
|
hash = "sha256-QwPKn2R4mflTKMyr1k4xF04t0PJIlzNCOdXEiQwX5wk=";
|
||||||
|
}; in
|
||||||
|
[
|
||||||
|
"--bluetooth-adapter=0"
|
||||||
|
"--paa-root-cert-dir=${cert-dir}/credentials/production/paa-root-certs"
|
||||||
|
"--enable-test-net-dcl"
|
||||||
|
"--ota-provider-dir=/var/lib/matter-server/ota-provider"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
age.secrets.google-service-account = {
|
||||||
|
file = ../secrets/google-assistant-integration-service-key.age;
|
||||||
|
owner = "hass";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.home-assistant = {
|
||||||
|
enable = true;
|
||||||
|
extraComponents = [
|
||||||
|
"anthropic"
|
||||||
|
"cast"
|
||||||
|
"dlna_dmr"
|
||||||
|
"esphome"
|
||||||
|
"google_assistant"
|
||||||
|
"homeassistant_hardware"
|
||||||
|
"homeassistant_sky_connect"
|
||||||
|
"homekit_controller"
|
||||||
|
"ibeacon"
|
||||||
|
"isal"
|
||||||
|
"kef"
|
||||||
|
"kegtron"
|
||||||
|
"matter"
|
||||||
|
"met"
|
||||||
|
"opensky"
|
||||||
|
"otbr"
|
||||||
|
"piper"
|
||||||
|
"radio_browser"
|
||||||
|
"roomba"
|
||||||
|
"samsungtv"
|
||||||
|
"thread"
|
||||||
|
"wake_word"
|
||||||
|
"webostv"
|
||||||
|
"whisper"
|
||||||
|
"wyoming"
|
||||||
|
"yale"
|
||||||
|
];
|
||||||
|
extraPackages = python3Packages: with python3Packages; [
|
||||||
|
numpy
|
||||||
|
python-matter-server
|
||||||
|
universal-silabs-flasher
|
||||||
|
];
|
||||||
|
config = {
|
||||||
|
http = {
|
||||||
|
use_x_forwarded_for = true;
|
||||||
|
trusted_proxies = ["0.0.0.0" "127.0.0.1" "::1" "192.168.50.1"];
|
||||||
|
};
|
||||||
|
google_assistant = {
|
||||||
|
project_id = "canyon-run-b104-home-assistant";
|
||||||
|
service_account = "!include ${config.age.secrets.google-service-account.path}";
|
||||||
|
report_state = true;
|
||||||
|
exposed_domains = ["switch" "light"];
|
||||||
|
};
|
||||||
|
default_config = {};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
security.acme = {
|
||||||
|
acceptTerms = true;
|
||||||
|
defaults.email = "IvanMalison@gmail.com";
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
recommendedProxySettings = true;
|
||||||
|
recommendedGzipSettings = true;
|
||||||
|
recommendedTlsSettings = true;
|
||||||
|
|
||||||
|
virtualHosts = {
|
||||||
|
"homeassistant.canyonrunb104.duckdns.org" = {
|
||||||
|
enableACME = true;
|
||||||
|
addSSL = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://localhost:8123";
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
"ha.canyonrunb104.duckdns.org" = {
|
||||||
|
enableACME = true;
|
||||||
|
addSSL = true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://localhost:8123";
|
||||||
|
extraConfig = ''
|
||||||
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
proxy_set_header Connection "upgrade";
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.configurationLimit = 3;
|
||||||
|
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
|
boot.initrd.kernelModules = [ ];
|
||||||
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
|
||||||
|
# Add Intel Wi-Fi firmware
|
||||||
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
hardware.enableAllFirmware = true;
|
||||||
|
|
||||||
|
fileSystems."/" =
|
||||||
|
{ device = "/dev/disk/by-uuid/453d28a1-26f2-4b25-ac72-c6d301fd0bb8";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/184E-E5E8";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [ ];
|
||||||
|
|
||||||
|
networking.hostName = "justin-bieber-creek";
|
||||||
|
|
||||||
|
networking.useDHCP = false;
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
|
||||||
|
system.stateVersion = "23.05";
|
||||||
|
|
||||||
|
home-manager.users = forEachUser {
|
||||||
|
home.stateVersion = "23.05";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -5,7 +5,7 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
services.macos-ventura = {
|
services.macos-ventura = {
|
||||||
enable = true;
|
enable = false;
|
||||||
openFirewall = true;
|
openFirewall = true;
|
||||||
vncListenAddr = "0.0.0.0";
|
vncListenAddr = "0.0.0.0";
|
||||||
};
|
};
|
||||||
@@ -19,6 +19,10 @@
|
|||||||
myModules.vscode.enable = true;
|
myModules.vscode.enable = true;
|
||||||
myModules.kat.enable = true;
|
myModules.kat.enable = true;
|
||||||
myModules.nvidia.enable = true;
|
myModules.nvidia.enable = true;
|
||||||
|
myModules.railbird-k3s = {
|
||||||
|
enable = true;
|
||||||
|
serverAddr = "https://dev.railbird.ai:6443";
|
||||||
|
};
|
||||||
|
|
||||||
networking.hostName = "nixquick";
|
networking.hostName = "nixquick";
|
||||||
|
|
||||||
|
|||||||
@@ -12,58 +12,35 @@
|
|||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
myModules.postgres.enable = true;
|
||||||
|
features.full.enable = true;
|
||||||
|
|
||||||
hardware.opengl.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ];
|
services.k3s.role = "agent";
|
||||||
hardware.opengl.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ];
|
services.k3s.extraFlags = lib.mkForce ["--node-label nixos-nvidia-cdi=enabled"];
|
||||||
services.xserver = {
|
|
||||||
videoDrivers = [ "nvidia" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable OpenGL
|
|
||||||
hardware.opengl = {
|
|
||||||
enable = true;
|
|
||||||
driSupport = true;
|
|
||||||
driSupport32Bit = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.nvidia = {
|
hardware.nvidia = {
|
||||||
|
|
||||||
# Modesetting is required.
|
|
||||||
modesetting.enable = true;
|
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
|
||||||
powerManagement.enable = false;
|
powerManagement.enable = false;
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
# Fine-grained power management. Turns off GPU when not in use.
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||||
powerManagement.finegrained = false;
|
powerManagement.finegrained = false;
|
||||||
|
|
||||||
# Use the NVidia open source kernel module (not to be confused with the
|
|
||||||
# independent third-party "nouveau" open source driver).
|
|
||||||
# Support is limited to the Turing and later architectures. Full list of
|
|
||||||
# supported GPUs is at:
|
|
||||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
|
||||||
# Only available from driver 515.43.04+
|
|
||||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
|
||||||
open = false;
|
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
# Enable the Nvidia settings menu,
|
||||||
# accessible via `nvidia-settings`.
|
# accessible via `nvidia-settings`.
|
||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
features.full.enable = false;
|
|
||||||
myModules.base.enable = true;
|
myModules.base.enable = true;
|
||||||
myModules.desktop.enable = true;
|
myModules.desktop.enable = true;
|
||||||
myModules.xmonad.enable = false;
|
|
||||||
myModules.gnome.enable = true;
|
|
||||||
myModules.code.enable = true;
|
myModules.code.enable = true;
|
||||||
myModules.syncthing.enable = true;
|
myModules.syncthing.enable = true;
|
||||||
myModules.fonts.enable = true;
|
myModules.fonts.enable = true;
|
||||||
myModules.plasma.enable = false;
|
myModules.plasma.enable = true;
|
||||||
|
myModules.nvidia.enable = true;
|
||||||
myModules.gitea-runner.enable = true;
|
myModules.gitea-runner.enable = true;
|
||||||
|
myModules.railbird-k3s = {
|
||||||
|
enable = false;
|
||||||
|
serverAddr = "https://dev.railbird.ai:6443";
|
||||||
|
};
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-uuid/a317d456-6f84-41ee-a149-8e466e414aae";
|
{ device = "/dev/disk/by-uuid/a317d456-6f84-41ee-a149-8e466e414aae";
|
||||||
@@ -87,7 +64,7 @@
|
|||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
|
||||||
home-manager.users = forEachUser {
|
home-manager.users = forEachUser {
|
||||||
home.stateVersion = "23.11";
|
home.stateVersion = "23.11";
|
||||||
};
|
};
|
||||||
|
|||||||
101
nixos/machines/ryzen-shine-original.nix
Normal file
101
nixos/machines/ryzen-shine-original.nix
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
{ lib, pkgs, forEachUser, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
features.full.enable = true;
|
||||||
|
myModules.kubelet.enable = false;
|
||||||
|
myModules.nvidia.enable = true;
|
||||||
|
# Needed for now because monitors have different refresh rates
|
||||||
|
myModules.xmonad.picom.vSync.enable = false;
|
||||||
|
myModules.cache-server = {
|
||||||
|
enable = true;
|
||||||
|
port = 3090;
|
||||||
|
};
|
||||||
|
myModules.gitea-runner.enable = true;
|
||||||
|
myModules.postgres.enable = true;
|
||||||
|
myModules.railbird-k3s = {
|
||||||
|
enable = true;
|
||||||
|
# extraFlags = ["--node-taint preferNoSchedule=true:NoSchedule"];
|
||||||
|
};
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.configurationLimit = 5;
|
||||||
|
|
||||||
|
networking.hostName = "ryzen-shine";
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
linuxPackages_latest.perf
|
||||||
|
];
|
||||||
|
|
||||||
|
boot.initrd.systemd.enable = true;
|
||||||
|
boot.plymouth = {
|
||||||
|
enable = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.autorandr = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
|
||||||
|
networking.interfaces.enp5s0.useDHCP = true;
|
||||||
|
networking.interfaces.wlp4s0.useDHCP = true;
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
|
boot.initrd.luks.devices."cryptroot".device = "/dev/nvme0n1p5";
|
||||||
|
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
||||||
|
|
||||||
|
# install nvidia drivers in addition to intel one
|
||||||
|
hardware.graphics.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ];
|
||||||
|
hardware.graphics.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ];
|
||||||
|
services.xserver = {
|
||||||
|
videoDrivers = [ "nvidia" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
hardware.nvidia.modesetting.enable = true;
|
||||||
|
|
||||||
|
hardware.graphics.enable32Bit = true;
|
||||||
|
|
||||||
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
|
fileSystems."/" = {
|
||||||
|
device = "/dev/disk/by-uuid/356173ab-d076-43e0-aeb6-6a6829c4402b";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" = {
|
||||||
|
device = "/dev/disk/by-uuid/B270-C7E6";
|
||||||
|
fsType = "vfat";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/shared" = {
|
||||||
|
device = "/dev/disk/by-uuid/D4009CE8009CD33A";
|
||||||
|
fsType = "ntfs";
|
||||||
|
options = [ "nofail" "uid=0" "gid=users" "umask=002" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices = [
|
||||||
|
{ device = "/dev/disk/by-uuid/f719b44e-295a-4909-9a60-84f87acb7f77"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
# nix.settings.maxJobs = lib.mkDefault 16;
|
||||||
|
# High-DPI console
|
||||||
|
console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz";
|
||||||
|
|
||||||
|
# services.xrdp.enable = true;
|
||||||
|
# services.xrdp.defaultWindowManager = "startplasma-x11";
|
||||||
|
# services.xrdp.openFirewall = true;
|
||||||
|
|
||||||
|
system.stateVersion = "20.03";
|
||||||
|
home-manager.users = forEachUser {
|
||||||
|
home.stateVersion = "21.05";
|
||||||
|
};
|
||||||
|
|
||||||
|
# users.extraUsers.dean.home = "/shared/dean";
|
||||||
|
}
|
||||||
24
nixos/machines/ryzen-shine-wsl.nix
Normal file
24
nixos/machines/ryzen-shine-wsl.nix
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
{ lib, pkgs, config, inputs, forEachUser, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
../configuration.nix
|
||||||
|
];
|
||||||
|
services.xserver.enable = true;
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
sublime
|
||||||
|
vlc
|
||||||
|
];
|
||||||
|
myModules.desktop.enable = false;
|
||||||
|
myModules.plasma.enable = false;
|
||||||
|
imalison.nixOverlay.enable = false;
|
||||||
|
myModules.wsl.enable = true;
|
||||||
|
|
||||||
|
networking.hostName = "ryzen-shine-wsl";
|
||||||
|
|
||||||
|
wsl.defaultUser = "imalison";
|
||||||
|
system.stateVersion = "22.05";
|
||||||
|
|
||||||
|
home-manager.users = forEachUser {
|
||||||
|
home.stateVersion = "22.05";
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, lib, pkgs, inputs, forEachUser, ... }:
|
{ lib, pkgs, forEachUser, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
@@ -16,6 +16,13 @@
|
|||||||
};
|
};
|
||||||
myModules.gitea-runner.enable = true;
|
myModules.gitea-runner.enable = true;
|
||||||
myModules.postgres.enable = true;
|
myModules.postgres.enable = true;
|
||||||
|
myModules.railbird-k3s = {
|
||||||
|
enable = true;
|
||||||
|
serverAddr = "https://jimi-hendnix.local:6443";
|
||||||
|
# extraFlags = ["--node-taint preferNoSchedule=true:NoSchedule"];
|
||||||
|
};
|
||||||
|
myModules.nixified-ai.enable = true;
|
||||||
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
|
||||||
boot.loader.systemd-boot.configurationLimit = 5;
|
boot.loader.systemd-boot.configurationLimit = 5;
|
||||||
|
|
||||||
@@ -43,15 +50,6 @@
|
|||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
|
||||||
boot.initrd.luks.devices."cryptroot".device = "/dev/nvme0n1p5";
|
|
||||||
boot.initrd.kernelModules = [ "dm-snapshot" ];
|
|
||||||
|
|
||||||
# install nvidia drivers in addition to intel one
|
|
||||||
hardware.graphics.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ];
|
|
||||||
hardware.graphics.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ];
|
|
||||||
services.xserver = {
|
|
||||||
videoDrivers = [ "nvidia" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.nvidia.modesetting.enable = true;
|
hardware.nvidia.modesetting.enable = true;
|
||||||
|
|
||||||
@@ -61,25 +59,21 @@
|
|||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" = {
|
||||||
device = "/dev/disk/by-uuid/356173ab-d076-43e0-aeb6-6a6829c4402b";
|
device = "/dev/disk/by-uuid/9bd06145-8151-4f7b-bcfe-f1809e0db1ea";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" = {
|
fileSystems."/boot" = {
|
||||||
device = "/dev/disk/by-uuid/B270-C7E6";
|
device = "/dev/disk/by-uuid/E1E1-909E";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/shared" = {
|
fileSystems."/shared" = {
|
||||||
device = "/dev/disk/by-uuid/D4009CE8009CD33A";
|
device = "/dev/disk/by-uuid/D4009CE8009CD33A";
|
||||||
fsType = "ntfs";
|
fsType = "ntfs";
|
||||||
options = [ "nofail" ];
|
options = [ "nofail" "uid=0" "gid=users" "umask=002" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
|
||||||
{ device = "/dev/disk/by-uuid/f719b44e-295a-4909-9a60-84f87acb7f77"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
# nix.settings.maxJobs = lib.mkDefault 16;
|
# nix.settings.maxJobs = lib.mkDefault 16;
|
||||||
# High-DPI console
|
# High-DPI console
|
||||||
console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz";
|
console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz";
|
||||||
@@ -93,5 +87,5 @@
|
|||||||
home.stateVersion = "21.05";
|
home.stateVersion = "21.05";
|
||||||
};
|
};
|
||||||
|
|
||||||
users.extraUsers.dean.home = "/shared/dean";
|
# users.extraUsers.dean.home = "/shared/dean";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,5 +30,6 @@
|
|||||||
"electron-19.1.9"
|
"electron-19.1.9"
|
||||||
"openssl-1.1.1w"
|
"openssl-1.1.1w"
|
||||||
"nix-2.16.2"
|
"nix-2.16.2"
|
||||||
|
"electron-32.3.3"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,48 +14,70 @@
|
|||||||
myModules.games.enable = false;
|
myModules.games.enable = false;
|
||||||
myModules.syncthing.enable = true;
|
myModules.syncthing.enable = true;
|
||||||
myModules.fonts.enable = true;
|
myModules.fonts.enable = true;
|
||||||
myModules.nixified-ai.enable = false;
|
|
||||||
myModules.gitea-runner.enable = false;
|
myModules.gitea-runner.enable = false;
|
||||||
|
myModules.nvidia.enable = true;
|
||||||
|
myModules.electron.enable = true;
|
||||||
|
myModules.wyoming.enable = false;
|
||||||
|
myModules.tts.enable = false;
|
||||||
|
|
||||||
hardware.enableRedistributableFirmware = true;
|
hardware.enableRedistributableFirmware = true;
|
||||||
|
|
||||||
|
# nixpkgs.config.cudaSupport = true;
|
||||||
|
|
||||||
|
boot.loader.systemd-boot.configurationLimit = 5;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
android-studio
|
android-studio
|
||||||
];
|
];
|
||||||
|
|
||||||
|
services.synergy.server = {
|
||||||
|
enable = true;
|
||||||
|
autoStart = true;
|
||||||
|
configFile = ../../dotfiles/synergy.conf;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.matter-server = {
|
||||||
|
enable = false;
|
||||||
|
logLevel = "debug";
|
||||||
|
extraArgs = ["--bluetooth-adapter=0" "--enable-test-net-dcl"];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.virt-manager.enable = true;
|
||||||
|
virtualisation.libvirtd.enable = true;
|
||||||
|
virtualisation.spiceUSBRedirection.enable = true;
|
||||||
|
|
||||||
services.xserver.dpi = 96;
|
services.xserver.dpi = 96;
|
||||||
boot.kernelPackages = pkgs.linuxPackages_testing;
|
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||||
|
# See https://github.com/NixOS/nixpkgs/issues/467814 for why this was needed
|
||||||
|
hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||||
boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
boot.initrd.availableKernelModules = [ "vmd" "xhci_pci" "thunderbolt" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
boot.initrd.kernelModules = [ ];
|
boot.initrd.kernelModules = [ "nvidia" "nvidia_drm" "nvidia_uvm" "nvidia_modeset" ];
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
hardware.graphics = {
|
hardware.nvidia.powerManagement.enable = true;
|
||||||
enable = true;
|
|
||||||
enable32Bit = true;
|
|
||||||
};
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
boot.loader.systemd-boot.enable = true;
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
services.asusd.enable = true;
|
services.asusd.enable = true;
|
||||||
|
|
||||||
fileSystems."/" =
|
fileSystems."/" = {
|
||||||
{ device = "/dev/disk/by-uuid/fc06a54c-cc45-423a-914b-8dfcb5939106";
|
device = "/dev/disk/by-uuid/fc06a54c-cc45-423a-914b-8dfcb5939106";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/boot" =
|
fileSystems."/boot" = {
|
||||||
{ device = "/dev/disk/by-uuid/B28A-829A";
|
device = "/dev/disk/by-uuid/B28A-829A";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices =
|
swapDevices = [
|
||||||
[ { device = "/dev/disk/by-uuid/27f277a0-b552-43a0-904d-625e48922bb9"; }
|
{ device = "/dev/disk/by-uuid/27f277a0-b552-43a0-904d-625e48922bb9"; }
|
||||||
];
|
];
|
||||||
|
|
||||||
networking.hostName = "strixi-minaj";
|
networking.hostName = "strixi-minaj";
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "performance";
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault true;
|
||||||
|
|
||||||
home-manager.users = forEachUser {
|
home-manager.users = forEachUser {
|
||||||
home.stateVersion = "23.05";
|
home.stateVersion = "23.05";
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{ inputs, specialArgs, config, lib, ... }:
|
{ inputs, specialArgs, config, lib, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.home-manager.nixosModule
|
inputs.home-manager.nixosModules.home-manager
|
||||||
];
|
];
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
@@ -31,10 +31,12 @@
|
|||||||
substituters = [
|
substituters = [
|
||||||
"https://cache.nixos.org"
|
"https://cache.nixos.org"
|
||||||
"https://cuda-maintainers.cachix.org"
|
"https://cuda-maintainers.cachix.org"
|
||||||
|
"https://ai.cachix.org"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"cache.railbird.ai:KhnvcouxtIU2zxUcjJsm4bUK3o1S3p8xMf9qfZGF7/A="
|
"cache.railbird.ai:KhnvcouxtIU2zxUcjJsm4bUK3o1S3p8xMf9qfZGF7/A="
|
||||||
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
"cuda-maintainers.cachix.org-1:0dq3bujKpuEPMCX6U4WylrUDZ9JyUG0VpVZa7CNfq5E="
|
||||||
|
"ai.cachix.org-1:N9dzRK+alWwoKXQlnn0H6aUx0lU/mspIoz8hMvGvbbc="
|
||||||
];
|
];
|
||||||
nix-path = nixPath;
|
nix-path = nixPath;
|
||||||
};
|
};
|
||||||
@@ -45,6 +47,8 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
|
# (import ./nvidia-container-toolkit-overlay.nix)
|
||||||
|
(import ./runc-overlay.nix)
|
||||||
(import ./overlay.nix)
|
(import ./overlay.nix)
|
||||||
] ++ (if config.imalison.nixOverlay.enable then [ inputs.nix.overlays.default ] else []);
|
] ++ (if config.imalison.nixOverlay.enable then [ inputs.nix.overlays.default ] else []);
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,11 @@
|
|||||||
{ inputs, config, specialArgs, ... }:
|
{ inputs, config, specialArgs, ... }:
|
||||||
specialArgs.makeEnable config "myModules.nixified-ai" false {
|
specialArgs.makeEnable config "myModules.nixified-ai" false {
|
||||||
imports = [
|
imports = [
|
||||||
inputs.nixified-ai.nixosModules.invokeai
|
inputs.nixified-ai.nixosModules.comfyui
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = [
|
services.comfyui = {
|
||||||
inputs.nixified-ai.packages.${config.nixpkgs.system}.invokeai-nvidia
|
enable = true;
|
||||||
];
|
host = "0.0.0.0";
|
||||||
|
};
|
||||||
services.invokeai = {
|
|
||||||
enable = false;
|
|
||||||
host = "0.0.0.0";
|
|
||||||
package = inputs.nixified-ai.packages.${config.nixpkgs.system}.invokeai-nvidia;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
nixos/notification-sound.wav
Normal file
BIN
nixos/notification-sound.wav
Normal file
Binary file not shown.
140
nixos/nvidia-container-toolkit-overlay.nix
Normal file
140
nixos/nvidia-container-toolkit-overlay.nix
Normal file
@@ -0,0 +1,140 @@
|
|||||||
|
final: prev: {
|
||||||
|
nvidia-container-toolkit = final.stdenv.mkDerivation {
|
||||||
|
pname = "nvidia-container-toolkit-debug";
|
||||||
|
version = prev.nvidia-container-toolkit.version;
|
||||||
|
|
||||||
|
# This is key: multiple outputs, so you can reference them later as:
|
||||||
|
# $out -> for main
|
||||||
|
# $tools -> for the 'tools' output in your new derivation
|
||||||
|
outputs = [ "out" "tools" ];
|
||||||
|
|
||||||
|
# No source required for a pure wrap
|
||||||
|
src = null;
|
||||||
|
dontUnpack = true;
|
||||||
|
dontPatchShell = true;
|
||||||
|
nativeBuildInputs = [ final.installShellFiles ] ++ final.lib.optionals final.stdenv.hostPlatform.isLinux [ final.makeWrapper ];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
prev.nvidia-container-toolkit
|
||||||
|
prev.nvidia-container-toolkit.tools
|
||||||
|
final.glibc
|
||||||
|
final.coreutils
|
||||||
|
final.bash
|
||||||
|
];
|
||||||
|
|
||||||
|
# Create wrapper scripts for each set of binaries
|
||||||
|
buildPhase = ''
|
||||||
|
# --- Wrap binaries from the main output of the original toolkit ---
|
||||||
|
mkdir -p wrapper-out
|
||||||
|
if [ -d "${prev.nvidia-container-toolkit}/bin" ]; then
|
||||||
|
for exe in $(ls ${prev.nvidia-container-toolkit}/bin); do
|
||||||
|
cat > wrapper-out/$exe <<EOF
|
||||||
|
#!${final.bash}/bin/bash
|
||||||
|
|
||||||
|
if [ "\$(id -u)" -eq 0 ]; then
|
||||||
|
mkdir -p /var/log/nvidia-container-toolkit
|
||||||
|
chown root:users /var/log/nvidia-container-toolkit
|
||||||
|
chmod 2777 /var/log/nvidia-container-toolkit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- STARTUP LOG ---
|
||||||
|
echo "\$(date '+%Y-%m-%d %H:%M:%S') - $exe started" \
|
||||||
|
>> /var/log/nvidia-container-toolkit/$exe.startup.log 2>/dev/null || true
|
||||||
|
|
||||||
|
# --- COMMAND INVOCATION LOG ---
|
||||||
|
echo "\$(date '+%Y-%m-%d %H:%M:%S') - Executing $exe with args: \$@" \
|
||||||
|
>> /var/log/nvidia-container-toolkit/$exe.log 2>/dev/null || true
|
||||||
|
|
||||||
|
# --- Run the real tool, piping stdout+stderr to tee ---
|
||||||
|
${prev.nvidia-container-toolkit}/bin/$exe "\$@" > \
|
||||||
|
>(tee -a /var/log/nvidia-container-toolkit/$exe.stdout.log) \
|
||||||
|
2> >(tee -a /var/log/nvidia-container-toolkit/$exe.stderr.log >&2)
|
||||||
|
|
||||||
|
exit_code=\$?
|
||||||
|
|
||||||
|
# --- FINISHED LOG ---
|
||||||
|
echo "\$(date '+%Y-%m-%d %H:%M:%S') - Finished $exe with exit code: \$exit_code" >> \
|
||||||
|
/var/log/nvidia-container-toolkit/$exe.log 2>/dev/null || true
|
||||||
|
echo "\$(date '+%Y-%m-%d %H:%M:%S') - $exe finished" \
|
||||||
|
>> /var/log/nvidia-container-toolkit/$exe.startup.log 2>/dev/null || true
|
||||||
|
EOF
|
||||||
|
chmod +x wrapper-out/$exe
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- Wrap binaries from the 'tools' output of the original toolkit ---
|
||||||
|
mkdir -p wrapper-tools
|
||||||
|
if [ -d "${prev.nvidia-container-toolkit.tools}/bin" ]; then
|
||||||
|
for exe in $(ls ${prev.nvidia-container-toolkit.tools}/bin); do
|
||||||
|
cat > wrapper-tools/$exe <<EOF
|
||||||
|
#!${final.bash}/bin/bash
|
||||||
|
|
||||||
|
echo "STARTING TOOL"
|
||||||
|
|
||||||
|
if [ "\$(id -u)" -eq 0 ]; then
|
||||||
|
mkdir -p /var/log/nvidia-container-toolkit
|
||||||
|
chown root:users /var/log/nvidia-container-toolkit
|
||||||
|
chmod 2777 /var/log/nvidia-container-toolkit
|
||||||
|
fi
|
||||||
|
|
||||||
|
# --- STARTUP LOG ---
|
||||||
|
echo "\$(date '+%Y-%m-%d %H:%M:%S') - $exe started" \
|
||||||
|
>> /var/log/nvidia-container-toolkit/$exe.startup.log 2>/dev/null || true
|
||||||
|
|
||||||
|
# --- COMMAND INVOCATION LOG ---
|
||||||
|
echo "\$(date '+%Y-%m-%d %H:%M:%S') - Executing $exe with args: \$@" \
|
||||||
|
>> /var/log/nvidia-container-toolkit/$exe.log 2>/dev/null || true
|
||||||
|
|
||||||
|
debug_flag="$([[ $exe = "nvidia-cdi-hook" ]] && echo "--debug")"
|
||||||
|
|
||||||
|
|
||||||
|
ldd ${prev.nvidia-container-toolkit.tools}/bin/$exe
|
||||||
|
|
||||||
|
set +e
|
||||||
|
# --- Run the real tool, piping stdout+stderr to tee ---
|
||||||
|
${prev.nvidia-container-toolkit.tools}/bin/$exe $debug_flag "\$@" > \
|
||||||
|
>(tee -a /var/log/nvidia-container-toolkit/$exe.stdout.log) \
|
||||||
|
2> >(tee -a /var/log/nvidia-container-toolkit/$exe.stderr.log >&2) || true
|
||||||
|
|
||||||
|
exit_code=\$?
|
||||||
|
|
||||||
|
# --- FINISHED LOG ---
|
||||||
|
echo "\$(date '+%Y-%m-%d %H:%M:%S') - Finished $exe with exit code: \$exit_code" >> \
|
||||||
|
/var/log/nvidia-container-toolkit/$exe.log 2>/dev/null || true
|
||||||
|
echo "\$(date '+%Y-%m-%d %H:%M:%S') - $exe finished" \
|
||||||
|
>> /var/log/nvidia-container-toolkit/$exe.startup.log 2>/dev/null || true
|
||||||
|
EOF
|
||||||
|
chmod +x wrapper-tools/$exe
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
# For the main output of our wrapper derivation
|
||||||
|
mkdir -p $out/bin
|
||||||
|
|
||||||
|
if [ -d wrapper-out ]; then
|
||||||
|
cp wrapper-out/* $out/bin/
|
||||||
|
fi
|
||||||
|
|
||||||
|
# For the 'tools' output of our wrapper derivation
|
||||||
|
mkdir -p $tools/bin
|
||||||
|
|
||||||
|
if [ -d wrapper-tools ]; then
|
||||||
|
cp wrapper-tools/* $tools/bin/
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
|
||||||
|
# If you need runtime dependencies, inherit them from the original package
|
||||||
|
propagatedBuildInputs = prev.nvidia-container-toolkit.propagatedBuildInputs or [];
|
||||||
|
propagatedUserEnvPkgs = prev.nvidia-container-toolkit.propagatedUserEnvPkgs or [];
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Debug-wrapped NVIDIA Container Toolkit with separate tools output.";
|
||||||
|
homepage = prev.nvidia-container-toolkit.meta.homepage;
|
||||||
|
license = prev.nvidia-container-toolkit.meta.license;
|
||||||
|
maintainers = prev.nvidia-container-toolkit.meta.maintainers;
|
||||||
|
platforms = prev.nvidia-container-toolkit.meta.platforms;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,15 +1,25 @@
|
|||||||
{ config, pkgs, makeEnable, ... }:
|
{ config, pkgs, makeEnable, lib, ... }:
|
||||||
|
|
||||||
makeEnable config "myModules.nvidia" false {
|
makeEnable config "myModules.nvidia" false {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
nvidia-container-toolkit
|
nvidia-container-toolkit
|
||||||
|
nvidia-container-toolkit.tools
|
||||||
];
|
];
|
||||||
hardware.nvidia-container-toolkit.enable = true;
|
hardware.nvidia-container-toolkit = {
|
||||||
hardware.nvidia.open = false;
|
enable = true;
|
||||||
hardware.graphics.extraPackages = [ pkgs.linuxPackages.nvidia_x11.out ];
|
mount-nvidia-executables = true;
|
||||||
hardware.graphics.extraPackages32 = [ pkgs.linuxPackages.nvidia_x11.lib32 ];
|
# additionalEdit = ''
|
||||||
|
# ${lib.getExe pkgs.jq} '
|
||||||
|
# .devices |= map(
|
||||||
|
# .containerEdits.hooks |= map(select(.args | index("nvidia-cdi-hook") < 0))
|
||||||
|
# )' | ${lib.getExe pkgs.jq} '.containerEdits.hooks |= map(select(.args | index("nvidia-cdi-hook") < 0 ))' '';
|
||||||
|
};
|
||||||
|
hardware.nvidia.open = true;
|
||||||
hardware.graphics.enable32Bit = true;
|
hardware.graphics.enable32Bit = true;
|
||||||
|
hardware.graphics.extraPackages = [ config.hardware.nvidia.package.out ];
|
||||||
|
hardware.graphics.extraPackages32 = [ config.hardware.nvidia.package.lib32 ];
|
||||||
services.xserver = {
|
services.xserver = {
|
||||||
videoDrivers = [ "nvidia" ];
|
videoDrivers = [ "nvidia" ];
|
||||||
};
|
};
|
||||||
|
# nixpkgs.config.cudaSupport = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,83 @@
|
|||||||
final: prev: {
|
final: prev:
|
||||||
|
let
|
||||||
|
# Claude Code version override - update these values to bump the version
|
||||||
|
claudeCodeVersion = {
|
||||||
|
version = "2.0.67";
|
||||||
|
hash = "sha256-HwT9YfoX44b18Sr1VdXMo0X7nIBrai1AAGPbV9l0zv8=";
|
||||||
|
npmDepsHash = "sha256-DNdRkN/rpCsN8fnZbz18r2KRUTl5HCur+GyrofH+T/Y=";
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
# claude-code = prev.claude-code.overrideAttrs (oldAttrs: {
|
||||||
|
# inherit (claudeCodeVersion) version npmDepsHash;
|
||||||
|
# src = prev.fetchurl {
|
||||||
|
# url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${claudeCodeVersion.version}.tgz";
|
||||||
|
# inherit (claudeCodeVersion) hash;
|
||||||
|
# };
|
||||||
|
# });
|
||||||
|
# nvidia-container-toolkit = prev.nvidia-container-toolkit.overrideAttrs(old: {
|
||||||
|
# postInstall = ''
|
||||||
|
# ${old.postInstall or ""}
|
||||||
|
# mv $tools/bin/nvidia-cdi-hook $tools/bin/.nvidia-cdi-hook-wrapped
|
||||||
|
# cat > $tools/bin/nvidia-cdi-hook <<EOF
|
||||||
|
# #!${final.bash}/bin/bash
|
||||||
|
# # Trap any errors, including crashes
|
||||||
|
# trap 'exit 0' ERR
|
||||||
|
# set +e
|
||||||
|
# $tools/bin/.nvidia-cdi-hook-wrapped "\$@" || true
|
||||||
|
# EOF
|
||||||
|
# chmod +x $tools/bin/nvidia-cdi-hook
|
||||||
|
# '';
|
||||||
|
# });
|
||||||
|
runc = final.stdenv.mkDerivation {
|
||||||
|
pname = "runc-with-logging";
|
||||||
|
version = builtins.getAttr "version" prev.runc or "unknown";
|
||||||
|
|
||||||
|
# No sources; we're only wrapping
|
||||||
|
src = null;
|
||||||
|
dontUnpack = true;
|
||||||
|
dontPatchShell = true;
|
||||||
|
dontBuild = true;
|
||||||
|
dontConfigure = true;
|
||||||
|
|
||||||
|
nativeBuildInputs = [final.installShellFiles];
|
||||||
|
buildInputs = [];
|
||||||
|
outputs = ["out" "man"];
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
mkdir -p "$out/bin"
|
||||||
|
|
||||||
|
cat > "$out/bin/runc" <<EOF
|
||||||
|
#!${final.stdenv.shell}
|
||||||
|
|
||||||
|
# If we're running as root, ensure the /var/log/debug/runc directory exists
|
||||||
|
# with the desired permissions.
|
||||||
|
if [ "\$(id -u)" -eq 0 ]; then
|
||||||
|
mkdir -p /var/log/debug/runc
|
||||||
|
chown root:users /var/log/debug/runc
|
||||||
|
chmod 2777 /var/log/debug/runc
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Log this invocation to /var/log/debug/runc/invocations.log
|
||||||
|
echo "\$(date) - runc invoked with: \$@" >> /var/log/debug/runc/invocations.log
|
||||||
|
|
||||||
|
# Hand off control to the original runc from prev.runc.
|
||||||
|
${prev.runc}/bin/runc --debug "\$@" > \
|
||||||
|
>(tee -a /var/log/debug/runc/stdout.log) \
|
||||||
|
2> >(tee -a /var/log/debug/runc/stderr.log >&2)
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x "$out/bin/runc"
|
||||||
|
|
||||||
|
installManPage ${prev.runc.man}/*/*.[1-9]
|
||||||
|
mkdir -p $man
|
||||||
|
touch $man/afile
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Optionally inherit original metadata
|
||||||
|
meta = prev.runc.meta // {};
|
||||||
|
};
|
||||||
|
|
||||||
rofi-systemd = prev.rofi-systemd.overrideAttrs (_: {
|
rofi-systemd = prev.rofi-systemd.overrideAttrs (_: {
|
||||||
src = prev.fetchFromGitHub {
|
src = prev.fetchFromGitHub {
|
||||||
repo = "rofi-systemd";
|
repo = "rofi-systemd";
|
||||||
@@ -8,6 +87,20 @@ final: prev: {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
wyoming-satellite = prev.wyoming-satellite.overridePythonAttrs (oldAttrs: {
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
owner = "colonelpanic8";
|
||||||
|
repo = "wyoming-satellite";
|
||||||
|
rev = "509628a9be2cf61116b6d0475e19c0b92a855e0b";
|
||||||
|
hash = "sha256-ewSxVv+8r2VGYNOoj8jiMogXtp1GPApcRc2BH3Q+8W8=";
|
||||||
|
};
|
||||||
|
build-system = with final.python3.pkgs; [ poetry-core setuptools ];
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"wyoming_satellite"
|
||||||
|
];
|
||||||
|
propagatedBuildInputs = [];
|
||||||
|
});
|
||||||
|
|
||||||
git-sync = prev.git-sync.overrideAttrs (_: {
|
git-sync = prev.git-sync.overrideAttrs (_: {
|
||||||
src = prev.fetchFromGitHub {
|
src = prev.fetchFromGitHub {
|
||||||
repo = "git-sync";
|
repo = "git-sync";
|
||||||
@@ -17,16 +110,19 @@ final: prev: {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
# picom = prev.picom.overrideAttrs (old: {
|
picom = prev.picom.overrideAttrs (old: {
|
||||||
# src = prev.fetchFromGitHub {
|
src = prev.fetchFromGitHub {
|
||||||
# repo = "picom";
|
repo = "picom";
|
||||||
# owner = "dccsillag";
|
owner = "dccsillag";
|
||||||
# rev = "51b21355696add83f39ccdb8dd82ff5009ba0ae5";
|
rev = "51b21355696add83f39ccdb8dd82ff5009ba0ae5";
|
||||||
# sha256 = "sha256-crCwRJd859DCIC0pEerpDqdX2j8ZrNAzVaSSB3mTPN8==";
|
sha256 = "sha256-crCwRJd859DCIC0pEerpDqdX2j8ZrNAzVaSSB3mTPN8==";
|
||||||
# };
|
};
|
||||||
# nativeBuildInputs = old.nativeBuildInputs ++ [final.pcre final.gnugrep.pcre2 final.libpcre];
|
nativeBuildInputs = old.nativeBuildInputs ++ [final.pcre final.gnugrep.pcre2 final.asciidoc];
|
||||||
# buildInputs = old.buildInputs ++ [final.pcre];
|
buildInputs = old.buildInputs ++ [final.pcre];
|
||||||
# });
|
nativeInstallCheckInputs = [];
|
||||||
|
doCheck = false;
|
||||||
|
dontCheck = true;
|
||||||
|
});
|
||||||
|
|
||||||
expressvpn = prev.expressvpn.overrideAttrs (_: {
|
expressvpn = prev.expressvpn.overrideAttrs (_: {
|
||||||
src = prev.fetchurl {
|
src = prev.fetchurl {
|
||||||
@@ -45,36 +141,51 @@ final: prev: {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
emacs = prev.emacs29.override {
|
emacs = prev.emacs30.override {
|
||||||
withNativeCompilation = true;
|
withNativeCompilation = true;
|
||||||
withTreeSitter = true;
|
withTreeSitter = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
python-with-my-packages = let
|
python-with-my-packages = let
|
||||||
my-python-packages = python-packages:
|
my-python-packages = python-packages:
|
||||||
with python-packages; [
|
with python-packages; [
|
||||||
argcomplete
|
# universal-silabs-flasher
|
||||||
appdirs
|
argcomplete
|
||||||
ipdb
|
appdirs
|
||||||
ipython
|
ipdb
|
||||||
numpy
|
ipython
|
||||||
openpyxl
|
numpy
|
||||||
pip
|
openpyxl
|
||||||
requests
|
pip
|
||||||
tox
|
requests
|
||||||
virtualenv
|
];
|
||||||
virtualenvwrapper
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
final.python311.withPackages my-python-packages;
|
final.python3.withPackages my-python-packages;
|
||||||
|
|
||||||
# gitea = prev.gitea.overrideAttrs(_: {
|
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [
|
||||||
# src = prev.fetchFromGitHub {
|
(
|
||||||
# repo = "gitea";
|
python-final: python-prev: {
|
||||||
# owner = "colonelpanic8";
|
pysilero-vad = python-prev.pysilero-vad.overridePythonAttrs (_: {
|
||||||
# rev = "40e15b12bf104f8018f56e5b826d8a2f8e2587ea";
|
src = final.fetchFromGitHub {
|
||||||
# sha256 = "sha256-VXP8Ga681rcKn548rOZq9I19abY0GzXRpdiYGpwyMJ4=";
|
owner = "colonelpanic8";
|
||||||
# };
|
repo = "pysilero-vad";
|
||||||
# go = final.buildPackages.go_1_21;
|
rev = "846caf4aa6c5f5319b87d3127dfe0aa9e88b338e";
|
||||||
# });
|
hash = "sha256-SjoyiHm2RiLDFbwduKsoPK4/AvQiwZ39ZsPj2etXRV0=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
home-assistant-chip-wheels = python-prev.home-assistant-chip-wheels.overrideAttrs
|
||||||
|
(oldAttrs: rec {
|
||||||
|
bypassAttestationVerificationPatch = final.fetchpatch {
|
||||||
|
url = "https://raw.githubusercontent.com/tronikos/chip-wheels/8a5ec21d114010723cf428ffe79e244da7562390/8766-Bypass-attestation-verification.patch";
|
||||||
|
sha256 = "sha256-RgmlPRSfw1PPMdHBzpoK2Drrb8nEagATY8Y5ngi7x0k=";
|
||||||
|
};
|
||||||
|
postPatch = (oldAttrs.postPatch or "") + ''
|
||||||
|
pushd connectedhomeip
|
||||||
|
patch -p1 < ${bypassAttestationVerificationPatch}
|
||||||
|
popd
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
)
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,20 @@
|
|||||||
{ config, makeEnable, ... }:
|
{ pkgs, config, makeEnable, ... }:
|
||||||
makeEnable config "myModules.plasma" true {
|
makeEnable config "myModules.plasma" true {
|
||||||
services.displayManager.sddm.enable = true;
|
services.accounts-daemon.enable = true;
|
||||||
services.xserver = {
|
services.displayManager.sddm = {
|
||||||
desktopManager.plasma5.enable = true;
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
Users = {
|
||||||
|
# Show a maximum number of users
|
||||||
|
MaximumUid = 60000;
|
||||||
|
MinimumUid = 1000;
|
||||||
|
# Enable user icons
|
||||||
|
RememberLastUser = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
# sddm-astronaut
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
services.desktopManager.plasma6.enable = true;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{ pkgs, config, makeEnable, realUsers, ... }:
|
{ pkgs, config, makeEnable, realUsers, ... }:
|
||||||
makeEnable config "myModules.rabbitmq" true {
|
makeEnable config "myModules.rabbitmq" false {
|
||||||
services.rabbitmq = {
|
services.rabbitmq = {
|
||||||
enable = true;
|
enable = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ makeEnable config "myModules.raspberry-pi" false {
|
|||||||
# hardware.raspberry-pi."4".audio.enable = true;
|
# hardware.raspberry-pi."4".audio.enable = true;
|
||||||
|
|
||||||
boot = {
|
boot = {
|
||||||
|
initrd.systemd.tpm2.enable = false;
|
||||||
initrd.availableKernelModules = [
|
initrd.availableKernelModules = [
|
||||||
"usbhid"
|
"usbhid"
|
||||||
"usb_storage"
|
"usb_storage"
|
||||||
|
|||||||
10
nixos/runc-overlay.nix
Normal file
10
nixos/runc-overlay.nix
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
final: prev: {
|
||||||
|
runc = prev.runc.overrideAttrs (_: {
|
||||||
|
src = prev.fetchFromGitHub {
|
||||||
|
repo = "runc";
|
||||||
|
owner = "colonelpanic8";
|
||||||
|
rev = "4b809881415e99247d8dea2eda862491dbc9acd2";
|
||||||
|
sha256 = "sha256-XOslGNu+ix52938SnnhmWKUaZaTQx9+/o74tnAjmo3I=";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
BIN
nixos/secrets/1896Folsom-k3s-token.age
Normal file
BIN
nixos/secrets/1896Folsom-k3s-token.age
Normal file
Binary file not shown.
Binary file not shown.
@@ -1,48 +1,56 @@
|
|||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 ZgrTqA O0XHnLd6cH/2OZyZWRvB028wmx8x8b4ojoqzidpANQM
|
-> ssh-ed25519 ZgrTqA +u18TitbmPrZLwLNMT5C9wbkXPeROgHrh3Tb1RpE52s
|
||||||
tQXIb/FsHcXwBet9icQrU1gYxpWUXOMFnxhHq+pJegc
|
WcIdsXKxuTOEeja8mh5qoZ38hSlyS2K0WFS4sB/yKv8
|
||||||
-> ssh-ed25519 ZaBdSg dXtxOGI6j+NyJadTzlhTkb+6/rf5BEtUeZCnH4SjpA4
|
-> ssh-ed25519 ZaBdSg f9kJeTDYYwQLbfL0lfSZjAkRj/8i7MOzp9MQ8ojEl0s
|
||||||
UCqDgtXh3tMFGz0xDyWn5I81S91CRrEJ9j4LAUN14vI
|
Ez8Pmw5sLZUNWE6nIswzE6mQxZiAhKERLbD7MT/RTN4
|
||||||
-> ssh-ed25519 MHZylw GGmyYlC28NKCP+uuAQBO3EIqB+XY63SCkDN4e/WdGkY
|
-> ssh-ed25519 MHZylw P/KulIF/w8YmSUpXObabu0El/rGAuETPvMGHLdfpR10
|
||||||
GVzmq2tmIJvFnmMnvO12Ok8gOofTRBt20HH586tNzps
|
Mz9S83bVirlz+pjOrEsJP8oRIBz6PdneMopEshYbj/I
|
||||||
-> ssh-ed25519 sIUg6g +VSuYouQxNM8Ch9xTIdokrtAK6RU5NoMNN6nUAr+rQQ
|
-> ssh-ed25519 sIUg6g mobkna3lBZAMq7IwqR4uV5Bg6c353po4/+YY8Iqg/Bg
|
||||||
GDRltKHjD6D4d9Z0vq04M6ELi53GdZZFAZde/V6YzuE
|
rCyfVkXKoPotBEEb6r3T56sRdjn9fC+taxrnRZuUSvc
|
||||||
-> ssh-ed25519 TnanwQ HeLm9uq5waI09epfKCsRLFO0Ll/V9Rg6y7LAOjGKLmc
|
-> ssh-ed25519 TnanwQ hCPpi8mAGltRM8bpl5OoFGVToPy58Pia9ElyCIi1enM
|
||||||
jjpTs70FeSaxBH3OyvEfGl71kpVRZmtaCkS29VXehVw
|
o9m5Zzl+8kDPEFkQ/evupeGJG6S4aiZk+PaUxlvMTSU
|
||||||
|
-> ssh-ed25519 cH4aug mR6lvjeeWSUmK50rsOjGGG6ccwzTpGVt97dW1rEEqQo
|
||||||
|
AQvUomG2XgQo6dFIkZ24N97l8/B3F9WnN/KVGzITcz8
|
||||||
|
-> ssh-ed25519 ggrAFQ lYeue71aHAhUsy/LOgDPCNmavQEl9VIVnOVC/W/VoWk
|
||||||
|
SwYzh1DpS5WHSdX2e16wkDUwm1Sa3ARHPF9UBycdHUg
|
||||||
-> ssh-rsa gwJx0Q
|
-> ssh-rsa gwJx0Q
|
||||||
a6q+jlWud5INiCOwPH570EdyrEOahksIsz5ehCwi21xUpsw8uDAJvwJZ4LTUk7Pp
|
fbU+nVFbxpVC0D1rxouGi8aOirZ5CYaMlmm+pLmpI81WZRweyi/8j16IvRSqV9CB
|
||||||
rgCu56ndd0LBqNAsqCO0NeP6rHj11Y9gVI1VAe8JZwQAd9uxP1wCFSamGPBAG3qU
|
T4uLqBcpsYKVroPIvkIzy1LBUE0LrYj4tVAoAtPWUOk+Z3+pSs9MpTf4nhxjj2UJ
|
||||||
6K7tSWxUJg5E5N8xn0UVasdC49PSadEBpvWOw7gxUcZSZk+zdXZkmNNJOJjblp48
|
xXw+Kjw0rlAIy48cG8UssI3MAvF17m3JUG4xJxDmM/69J428tE1xa0JMjMXf/E7s
|
||||||
BzjLiFs/NEapIrpx80nXurSiyN5IV97vK3owXqqYSKOoBR2JWbVeYVO47cR9UN8G
|
g/RSO7cx+Pcn2ClrFdMOVEkVNIKUkJdpymRSdOpwQnwzgOo4NNwBowFv/6OpfFdP
|
||||||
df43ozz2wrG3tfVgy23JfRUPinDxPkUJ0AbkpD7aBuEJfFmQSDjyl+wGevf5GAOI
|
tS9zX9ZgpcOLKdCV463afYCbZ9z6lsw4KnEUL+bg0QAz8PtlRpF56LUnmBRSWPNN
|
||||||
rTNpOz31YvchkiynnXLhyg
|
nl002m6a+uZZQl1HizgR9Q
|
||||||
-> ssh-ed25519 YFIoHA 9Sx54ArYGvWtaM64vIuh/xNfC00Kn/6OiIL7zkK/IBI
|
-> ssh-ed25519 YFIoHA Q8+eEd7maA4f64SGQfyk0pRuxY2WiD3UzHuLmzIPvVc
|
||||||
cHLc5wccimYC6ICqnz3e1hs+4XAHzRd32dj0/g+4q6s
|
XWV6IuKDftDStCgj4brPMaTvea+kIlYg7JGnkyX1+Ps
|
||||||
-> ssh-ed25519 KQfiow p7igfY7SkJe2k9EZMy+VEr+uYnEZZSosmAJKOWwopDU
|
-> ssh-ed25519 KQfiow rra4AZqxS0duGI0GrMAGt1KnUVRyBbnGcZhsu2QeCxM
|
||||||
z3HZmOrrhK6Ns5z5EOtlgoo6IROMuo2elRrnX/I9YvI
|
jaIThcqxxxh9atSgrVEzMFsDip5aNTxWaekgIw+lLKw
|
||||||
-> ssh-ed25519 kScIxg de1921H/EqUtCsmjytrGa/9vx41qKO/jiTTNRXRK/xg
|
-> ssh-ed25519 kScIxg NBVuAT7UXhPMu1THkAXJ1QYNwSnFIgvjQB6jYD7t4AI
|
||||||
IzjtdSwv/FwgGyl6qumTvDi5imcUKolt5upP0hNDd1g
|
xs+x0xP/jRBsvr2IMhEBrpP0o1Ian9Guw1yuMT0b5XA
|
||||||
-> ssh-ed25519 HzX1zw u7OB64Wzd4siphc3kyRbPwYswc/vn0eqtUiId5byuVE
|
-> ssh-ed25519 HzX1zw yyjdUbfty0hE0jIc2MMYvRkq/c/DABHJczH/CqyOkRw
|
||||||
t8CF85/o71ra6IAgXAfcoCZHs4VN/ejOQVsdUZaaLqo
|
c5lkqMwaxsojqx/jYJhMbgWuN0qdgf3VlBYnUHpc/OE
|
||||||
-> ssh-ed25519 KQfiow uzyI3JXAF3twmqSKDZAgNEMv/Su832geK/y46hKiJCg
|
-> ssh-ed25519 KQfiow 70CAriiLnPXfh3a7HJnjRk0K5vYPc24AKjEWjiD/bSM
|
||||||
qpbPTkQYUcPSuFEXoOnYmGLcAL2TH2XpkBOqeVvUVVk
|
Sp/hULrynhI79p/zh96sD3rIYMTMzGD6CvN+6Dmxhhg
|
||||||
-> ssh-ed25519 1o2X0w u9pY09CQumynSF+9z59nuEuZFPwdVld8XQOLG0N4llw
|
-> ssh-ed25519 1o2X0w +xLXrJLT2PITsHGkhak6M6/1ifd32sEHcNtI9xdTNTE
|
||||||
i1HrE7Nk5O/h9eYGeq+nx5UCIgO2c0ROHcwUDiFFxoM
|
PI80gCMGaR24FRiOmNeReTXrUecgCNJZMInKGNfQHic
|
||||||
-> ssh-ed25519 KQ5iUA zpOP9fMu7Mqm0LbkA78KInXworz+LGpovjk5mIOOfVM
|
-> ssh-ed25519 KQ5iUA J2rBvdYjd9RYlQtVfaV50ZN0naHT58e3rZrnhgEszkg
|
||||||
Q2y9sMSgwIahs+7ceXY6bYha87uXcD28irc4zRYbOSE
|
/iG3OU/HVraqegvrTgZz5/gp1HZwyGgGkXhjGYJXAoY
|
||||||
-> ssh-ed25519 AKGkDw mLi5T/ia2gQ9z357LYQUbgUQ37DLPhbRlR3LkPvOPk8
|
-> ssh-ed25519 AKGkDw 7gJhihE5rASMzycK4rzrSj3oll5hHqzXNQo1qzoqnwE
|
||||||
rPUwUtTwDAbn49GgLO9vfW/P8hfrhf4znvrmHiiPXLE
|
zlisCc+y2x028mosTHDQjrMDAX2lF3HAJ8LLtzuwwZ4
|
||||||
-> ssh-ed25519 0eS5+A DomPBIFcr3Wxi1sfGzEBKTpRruHijRX5CDh7xk/mQgg
|
-> ssh-ed25519 0eS5+A sLIAQR51fxFZatgc7CCJYgjCtfdqYFLBnL4Qs9WmbyM
|
||||||
u9hQHSq3w/NBv3zpIpbX3bMk2vYaNn8dl079zz4cRmE
|
CgeHGN6+/ZE/RrQoPlaizGtu3bEz8lPfWEfFYY9wzrA
|
||||||
-> ssh-ed25519 9/4Prw kczIhptmCQmYolhBX+omXqbtTuqqEeL8Mnx2k/1c3Wg
|
-> ssh-ed25519 9/4Prw uytvwSpCRE/5xDu/Og60k6jBF3wyBanyZMWhEjzcf1E
|
||||||
3QBDp0WfYP8Ni3zZ3xk8yC5WscRa+niwjO+6Q2MR9Is
|
CM37OOCnORhdGDPXLJ7VIRYJhvMXKxfs6oK9WnHycV4
|
||||||
-> ssh-ed25519 gAk3+Q HhCggnhkMhbZG1VyyjtibA7eAnnhS+ZVDMuKmFW+fiQ
|
-> ssh-ed25519 gAk3+Q hqrzZ+KHXT7mfI/6332ZymbDTQmjS2m7jDhtqNQ44no
|
||||||
7URzpfoMkgD/Jn0N2FV5WJxLpDOPkmI3W7yA5G+MyQg
|
n/k8+t4BcmPy5Tgkl9e8/CSoCcmVp2lkU8rCRlSGfZU
|
||||||
-> ssh-ed25519 X6eGtQ KBzu6+tTigAYC+ifRi5rGyocU0l1PfBj2KuK9yasUiw
|
-> ssh-ed25519 X6eGtQ kO2cKtxVcAIRA3xC4zLLuj2cfZ6CKlOq3aTrB9cqhg8
|
||||||
ShtvUv9tuuvYf7dHDnBIQtLWVkN9gaP6ryyeCVoNVIU
|
tG5GtTne/45DqNkJ8XjOlfbbDGLfTxweUKG1+f7aXNU
|
||||||
-> ssh-ed25519 0ma8Cw 4kkPaMRoYuYflcHDAzBAaWd9+Q3CXV97Hs7d8sFIU3w
|
-> ssh-ed25519 0ma8Cw /PwKBNkRtj0mWkG3fJZOIjdLkhWlxxtowVABKjxShG0
|
||||||
7JQH4QYVnnxhjfr0wQTqLieGc3G5ymEBdivqO2/vEWM
|
OSfm0wSpyrd8bb836wbFi1BrWHkuZ4DuWw9ZwfMP5b0
|
||||||
-> ssh-ed25519 Tp0Z1Q 3GL4a2CUqmbEK0POxjUADiUtnA96enIKavGEJBr4QTM
|
-> ssh-ed25519 Tp0Z1Q qJqv47mimbpQkdiYO5sDqj+Qyi7Nq+y9Bb/EuxneXQg
|
||||||
RP5mZ7PKqB29cU5ir3wiX7CDM6KuqBysO2g9HyONlKE
|
F+b8rEY9rxDdPe+mVy0h7AggugMvGi9lvwKDfe/rjJs
|
||||||
--- hLdA7jp69UiOM2LP3bMxOCNnHUWwcgL2BbSsz3+D8lM
|
-> ssh-ed25519 ePNWZQ MO3gceW2gDffFS/Tr2F2BkMSKD6Ydn/mRXHqYckGOnU
|
||||||
2<EFBFBD><EFBFBD><EFBFBD>1<EFBFBD>Q><12><><EFBFBD><1A><>2-<2D><><EFBFBD><13><><EFBFBD><EFBFBD>R<EFBFBD>><3E><12>B<EFBFBD><42><EFBFBD>(<28>^~<7E>(<28>ۻ<1D><><EFBFBD>?<3F><>n*T<><54>MK;oN<6F>W<EFBFBD><57><EFBFBD><EFBFBD>z<EFBFBD><7A><EFBFBD>;K븬=.<2E><><EFBFBD>Ȑ<EFBFBD>J<EFBFBD>U+<2B>a<19><>Q<EFBFBD>Zr<><72>g^<5E><EFBFBD>"R<>0<14><18>J<EFBFBD><4A>c<EFBFBD><63>4d?<3F>Ȧ3<C8A6>,<2C>O<EFBFBD><4F><EFBFBD>
|
3CxqL9EwDQ99T7pN6b/NU0NQungyh2EHE56L8Stuj/U
|
||||||
|
-> ssh-ed25519 hILzzA AIf5pdaRPGOtKKV/gY5GM/PNtqSXVhoxB69t5JEgUlA
|
||||||
|
d6TC0L2OpbhvaREkVc+rNzY7U8VIQMG0in0UHFsGSUY
|
||||||
|
--- 6QUiesVdF1mNKhzpT/tPTMDvL7MAkEbXR2CHau5/SHE
|
||||||
|
<EFBFBD>ڙM<EFBFBD><EFBFBD> x<>0<EFBFBD><30>_<EFBFBD><5F>v<EFBFBD><76><EFBFBD><EFBFBD>uA<75><41>u1ON<4F>*ݩQJ<14><>E@<40>ϚȬ<0E><><EFBFBD>b<EFBFBD>Clg<6C><67><EFBFBD>j<EFBFBD><6A><EFBFBD><EFBFBD>ǘ<EFBFBD><C798>F+6"C<><43><EFBFBD><EFBFBD><08>/Ya<59>#<23>l<EFBFBD>p<EFBFBD><08><18><>E4w<34>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<>i<><11>L<EFBFBD>?<3F><>v:2<><1C>ߖY<><59>l<EFBFBD><6C>s<EFBFBD><73><EFBFBD>
|
||||||
BIN
nixos/secrets/discourse-admin-password.age
Normal file
BIN
nixos/secrets/discourse-admin-password.age
Normal file
Binary file not shown.
BIN
nixos/secrets/discourse-secret-key-base.age
Normal file
BIN
nixos/secrets/discourse-secret-key-base.age
Normal file
Binary file not shown.
@@ -1,48 +1,52 @@
|
|||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 ZgrTqA iez83NCzN7sb/O+bYHDWB/420SYC6Wz++js1clRvSyk
|
-> ssh-ed25519 ZgrTqA iW7mNP6ZLuX+VH9RQykM/kD/xYhuZ/req0K977h+0G8
|
||||||
pkOvxmV4JJLHrzNjF8bpwVxmcH06JF1jUuB+7Hy5QX4
|
N8IfXH9wGB4W3cc/t/dMXvpiuA467sYpbSJ1FbNK1nM
|
||||||
-> ssh-ed25519 ZaBdSg ib4g0QcRi6MPHDLvTgoksKjra3L3PLmIcHZFu332Qnk
|
-> ssh-ed25519 ZaBdSg xHC5cGTqglVLNtX9Eq9c1+puKticyX3tC3yJ7XhTCWY
|
||||||
TQTrIrHUv/xmN/kwsAlgOqmj9HAB72ubjiD+zz8JcUI
|
wAIVpjfcTtthyYiLUr4ZeIMr3R6a9sZKQLBlwGd0JgU
|
||||||
-> ssh-ed25519 MHZylw SxdlNrD7U4QSXsxOmXDteKpvJ9WGpLrZZjYHnxI3yjc
|
-> ssh-ed25519 MHZylw xDm+4POwUcPFS16M0EbXcwCY1MCwLodvp5KXINN5dQU
|
||||||
6EmdU8LPyanusjmszO3mdDJozxZuLyN7N52kxH0SA40
|
sBxSYj8reNgfwpUpbRfQHsD9cZxVcv/14d9PPjWkMLg
|
||||||
-> ssh-ed25519 sIUg6g 4pxG9NrxTmoOkKvt/J0LNPG2c0DmbDYe1suvYORTFm4
|
-> ssh-ed25519 sIUg6g 5CF+k/ZnWrI85qzWgs93NiPL7XeA7xtt0NikXjdopkc
|
||||||
eT1/an3xE6iqn0ewms8d6T2tpn5wpeEhC1pab2jb/MY
|
jn/MxKBCkV3TZKzHWoK85BPYDyKWZrz2dvnSvmMBJds
|
||||||
-> ssh-ed25519 TnanwQ VR8oO8fW7YK85eXxmVJWUysdPOTuy3d0ymLDLOcJnVE
|
-> ssh-ed25519 TnanwQ dPvxr2PF2huQjuDMm8u9Jtt9qHOGANe8PFTmk9C5MDk
|
||||||
ATNa9yjmsVpeMuJx+RhhfN18a8p501xkb5cnCaWAqaU
|
C3mdAy04NHA6GvxkHY0/mJimmlakqEaM5nQj0yNRR2k
|
||||||
-> ssh-rsa gwJx0Q
|
-> ssh-rsa gwJx0Q
|
||||||
ReyIQtExcQR/pmOYGamTgTxz1JoyzFgLiJYu02SNGZRyjqNSFeCpQuowjJyYApJM
|
arxGqHS2sOD+m05Ce0kw6DMDiK+0Go1t74m6yuJf1/mH2F7uw8sgrZQxdWon+r8t
|
||||||
aJUpSsyK4vJ1X+2+bbzPTZrp9S2BgmO/3ebCKCm2Y4EhIXZCvffcno8TaoJRysWw
|
ZyroQGRwMAWaya+bL9waDGV6j+MCyIcUa25dQHbGIGUnpKZVoYn8YVFLyiySTkLW
|
||||||
34EwLZ/30r4iLBscDIQB2oat7hWLJQoLiDreBRS90JZOock9FfGP4SfXirBRfDgr
|
S5ve3HQNu4pp0EbL/+e3l2E7XPe1ssb4LGbbHZHXm7V4hKwgJqfnX8VUVTlWCHRd
|
||||||
gh817YZvIhpTzU8/0gLrsQ9hnN6eNre22N9rLdZSXWFfkeD01723sJMr6w/ntXxb
|
6Gsd1Wezg4Qz8bnghjaaagWSKDhf8/iZL7B/+8NniZtMsY0Ajeqf6OpJuPdXnmCc
|
||||||
gmzuC8JEhicxPkTzwVBeSPzeopHiUrqld5EGe3ZWDHAoYtmQCjN2H0BHQe/B5YJU
|
OnWZHriEhSqB+oEg4vGPU1iuo6WXwDW8oMNZ+2uHHV/UE7hgLfkvZaRUSGfcsK6m
|
||||||
YFU4MZdgUykhrnxM26byDw
|
EMnarBbUfsbsEmzEMMZ0lw
|
||||||
-> ssh-ed25519 YFIoHA 2Yv2+qhYd74prfDyu0osYbpXFmE+wMJK6W0JHjgqOGM
|
-> ssh-ed25519 YFIoHA wxFUFWCoLZ5TroHAVB4ffcwNx5vShL8pZZyhNB8P8kA
|
||||||
HSHHQOx/COo0s+dAtMITGIfrCcdYUYNzjLuiU+pGccM
|
4Zl9WdtTlFRf6N45Ib6zdaQup5BfcDIEXPDnLUvG45A
|
||||||
-> ssh-ed25519 KQfiow cMKtLUkUMxFeEJdGmmHuRha93zCBNimQadaGZFVc+Bo
|
-> ssh-ed25519 KQfiow x177D9cUo3jd+RzaLaPD/S3GDTE6j+8+V/3qYHkMeyE
|
||||||
jgaenccqng03pj4WTNlIpmoDL9ZgVHSF0EmYLZ61GRk
|
PPnb3/lDia87oycMStdMjns2bDQt4wFln5+SnAAYs+A
|
||||||
-> ssh-ed25519 kScIxg 9vBKRKl4cFUhAsnmu5hW6s1SWe/vjPEJVrAvL/N7DCA
|
-> ssh-ed25519 kScIxg aol/G1Qs/QbDkPBCqfrLdWCuk1JrIiIV+vGoAQoaWTQ
|
||||||
pPI7ZZPEZNlmR/44AE5WNATCJstiYgEkJQI7sZMtf9c
|
8XziIW+ST8De384wav/s8DIenM1oMdnDt7m33K+Fr5I
|
||||||
-> ssh-ed25519 HzX1zw 3aq/89MOxaQyDls41D3My6CWKmrzbP16XWRFnxSkqUs
|
-> ssh-ed25519 HzX1zw sHNG8nyVp+YQuWvsyTGGVROGtQwuaWwt2vdgrnMY8F0
|
||||||
wS6sHCOZUV8bn6z4sfhR9q5vVGGKeiFR2x6EmBi5A8g
|
oB96+Cy0BUUJvWyr79x0BvVvE6PGjAWZQ4F5M8tcvfI
|
||||||
-> ssh-ed25519 KQfiow mPERPckf5u2yDfdN9rYOKRWMKiNoOBpZUFePccYh7D4
|
-> ssh-ed25519 KQfiow mAmkvvvUV/Q5uNBlCzbd9pssRfrmVL2j/FdS7b87wSg
|
||||||
92HxFjBC97bDWo+zfZNUYBEauSQWvxbAla4AYmhs0xI
|
4NvE6fhb9nDzZAAFZ8V7TH7HlI8pneB44miqS6u1Eew
|
||||||
-> ssh-ed25519 1o2X0w MGFx77Vg+nydzZqTC/+ohfN/6z6SDuO5ZgzplleGMRY
|
-> ssh-ed25519 1o2X0w 6BVN/+6QeL+kfP4InEY+jS6khB6NDBWAXnqxUEMFAT0
|
||||||
ked3VPIEk6QISpBemBNyNdV8a6a4b1KvMi3T8etojvs
|
y/nSLtF+ViQftlahBPQcGDKcJpDNva3drF6cKC6kdZY
|
||||||
-> ssh-ed25519 KQ5iUA CrDNvZYJNgfHnRCD+wiTuMnlZh4XT++FASlPfuTpOAY
|
-> ssh-ed25519 KQ5iUA U8mS+gIc0tXxuPbObNsd1D1hs55JGGcI5loPqrSA+38
|
||||||
GQKpp+6QKG+0nr2JFWtq87o7Eg9tol64JOkx8g7USpM
|
od25qdUN3i3TW82r/I0ASH2TcdedB5fx8bIruiRFvTE
|
||||||
-> ssh-ed25519 AKGkDw uEF+jr3sCN3JsMRJrgeV0rJqdhDZog3fjrAe0tsLpjY
|
-> ssh-ed25519 AKGkDw PYy1rFbiygNpHGvLLjpdL576kBK4ZrJMw2xfgYobUks
|
||||||
xLpw7Q7YgTw6D7JhqlNV3uSiT4Bt5ARWpo+6RiDd/iI
|
VBPTCvuR2sU0jxK+R7PuV32EOuCUL0I7t1GkVeHhsxc
|
||||||
-> ssh-ed25519 0eS5+A +37WnrBGsf6CJ4Yro/RScEIQpaodiK3tbWr8736ADHg
|
-> ssh-ed25519 0eS5+A gOl/bjYvFdjKqumiQqSEXgi50Q/WFhDcE9avn2IhT2Q
|
||||||
4wG1HKA/96vOGO9jCJc/JkK/7KNWr1ovx078kStHH/Y
|
O8tSrAwn4rFwgAeKEvBtsjotsQLL1YnUP+Pdv+h+nJI
|
||||||
-> ssh-ed25519 9/4Prw e/mMP+AMG4HMhQcJ2uzfHHXQhmVjE7xoY13Di74OU08
|
-> ssh-ed25519 9/4Prw 8nFSnwnJK2Zmowndn4+oHcZB3lnnc+ftwzulMMLDVig
|
||||||
1JUAd7FEXhncnNP5Ddt0o4vpZ4oj/omIs2aEwtVc0Xw
|
BSnOn7wQ/wzeP1BU7aOYkq38yP8oxlxwJ/NP4xAkQyc
|
||||||
-> ssh-ed25519 gAk3+Q pe+2dfMK4o5e/qabl42cSMSkkw0MrZIHKZaUCmFt6mQ
|
-> ssh-ed25519 gAk3+Q 4874w13segiQbbAIN9qOMOG8/ZJJsw/Cbk8r6x6wHiU
|
||||||
CM8qOOE3/BYAyt/3igyBEhSmFIfhdI27N0zwfmvOGrE
|
hiDoRDUe668+nMEeJAmRqqMXvURsm5IZdgejUZ01dx8
|
||||||
-> ssh-ed25519 X6eGtQ q6vwAZm4onKe4/G8sw/stsgmrikNw1yUsxiiBFYxMlM
|
-> ssh-ed25519 X6eGtQ EDpZRMJFeVi9frrLX90RdgY9I5OhDZiL/mUqLjNYcg4
|
||||||
/hCXkTHiMe2AX0BZAmPuP1EnDtrKL9lb0kmErJueTbQ
|
+Pl91UhUK6JCB7qNHCm16b7pzzWPbyJJ9RwbItorMLk
|
||||||
-> ssh-ed25519 0ma8Cw NNuXxI5c3Bjs3XBn/GSMkn2K1F+X4WAStOWGZpD/lj4
|
-> ssh-ed25519 0ma8Cw r/yyr38mx1CRWbrcws+CzFQIcDInpqqhhXi0IwlUPn8
|
||||||
kVxDinO7MAieUAZ0AoUE0560gXlh6QvIl5SO8qkrfU8
|
7MfAXxEt6TYNCglqV1JPvfrotXXFR98UUp0D8iVjg2E
|
||||||
-> ssh-ed25519 Tp0Z1Q G/sxerwQ0vdiC3Evvevy6pkt/lWaIQJ3QVNoX2tIOjs
|
-> ssh-ed25519 Tp0Z1Q vuqbPEbx+M5BeXNvdV4MW61BqTqmATXP41krZYrqGlw
|
||||||
8+zWd1lUpOhknOJcABI1TKPNlBQheZD9aNDlGnF4Fkk
|
FxRpxiYob2OrdL7KmWfExCsxqj7F6rGc83H5xkokKwE
|
||||||
--- BjAZNIHU5U4toPAlQqLCB5vXP0MtpeK4zceu+dTdf/k
|
-> ssh-ed25519 ePNWZQ sZV5J+AbDKJY3JCfMMv4Ar+6dZsfvrUJLuwzq8ZF0zw
|
||||||
S<17>wf<77>D<15>Ѿ<><D1BE>V<EFBFBD>
|
yA85IpelgbbdklaFTkBJhs8KVCqi6gbFwOPplZXPcDQ
|
||||||
|
-> ssh-ed25519 hILzzA dUPwyiJPkVnXA/9rfY8a5CQTDYaG+bWJBmWNXbI551Y
|
||||||
|
l7XxSTndJ1/OheLTHg4NzkKmFQmUljttxqTt+SWcQiQ
|
||||||
|
--- T0uccGgB2l7+horZsw91HVYl2FA1bZo8gJZiXzgTzlU
|
||||||
|
<EFBFBD><EFBFBD>"<22>#Qi<51><69>q^<5E>+<2B>$<24>1<15>4<EFBFBD><34>GqY<71><59><EFBFBD><EFBFBD>G<EFBFBD>'<13><><EFBFBD><EFBFBD><F28EA096>.
|
||||||
BIN
nixos/secrets/gitea-runner-token.age
Normal file
BIN
nixos/secrets/gitea-runner-token.age
Normal file
Binary file not shown.
Binary file not shown.
@@ -1,49 +1,53 @@
|
|||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 ZgrTqA zsIOhgeJ7P+Ahrrh+coSbVgxw6RtPymZs5ll8X2BpTA
|
-> ssh-ed25519 ZgrTqA sP6niy4AoOncOBGzEvJuN/a+32uMfGMkJiDG3zDPRh4
|
||||||
ON9VLFUzhFU/sxslo4Wt7EgohGdY+k58ri+G5naolLs
|
yfGqppiyaJ5QB77XT5drEz87dckqy0yPourcmXSXFhw
|
||||||
-> ssh-ed25519 ZaBdSg /OzROBe2BME+hsdWTna+UV4tIEJK9lDDaZQnpUYWfmA
|
-> ssh-ed25519 ZaBdSg ZPaUwjn83U4Ma2JKsEPXHE2/ctupI/OE08Tv4NYjmgY
|
||||||
PjU8bzoct2GPytjXMxbYdPlGi9RgfaGNdlcdx8X9mcs
|
kvqkmSTeNMh3Azr9fjZMpEnVUOKKhdYtizJarUAe3Oc
|
||||||
-> ssh-ed25519 MHZylw RKGcQyfmai8OeNo0c6zyW0KaZ4Mgt66qikomlON272c
|
-> ssh-ed25519 MHZylw uL3mlfZ6fiW5ZpFvMH42X4j195EbLOPKdCCfNmCRSlg
|
||||||
lO2AvsQ/3oWl0aNzitwjnFOV20H//wiuMY1MY/3WDrM
|
0U3It9ckLP0Z0xA2RO8NoL7PFYGDvQegeCVHmjos4VY
|
||||||
-> ssh-ed25519 sIUg6g 8at+Rg94MgOePuOA9fUCPuxyleQHDaGPnsaNQNy6824
|
-> ssh-ed25519 sIUg6g aw7Jbmm8NpscmD+xa7cbpbGkzj4nM9c+xNU2asOcd38
|
||||||
CCNrSkINVlqAhi2rzAEjnzX+aJBj8S7D5OjOc7+282I
|
rZiK3hfgFgNgrmznwTPDgsjQVwNPyEszKq7mJDUMqBY
|
||||||
-> ssh-ed25519 TnanwQ JQ5HncLZsUKpXbUhRBvS+UdMa8ARJBRIK75w2kuD0Hs
|
-> ssh-ed25519 TnanwQ fNcNJfc9ePSL3jJvsqnAPKAwkM6WLVsWhsTs5nl0fnU
|
||||||
6giGtalrSpcO2Xb7IxCvqhi7Op/wdNnhPqGOVxumutc
|
35E52O5A1NkX6u6AL+kJ37sdJx+oagYor/ClTQrGf1A
|
||||||
-> ssh-rsa gwJx0Q
|
-> ssh-rsa gwJx0Q
|
||||||
q9YKescXHdvkSEEL+buHyFpedrkyP8KN+U5mwe4ML9bdFGsEESBjtwRs+wTHBKfR
|
YB5IPtZbaRykPX7AAxgzPP5E2dsw/2ONrZPHBFH6lGi2uiwu1S7EIHCvcwod+K63
|
||||||
DGueZFt8yloafYJJi2bDSOwQM+YQ7l3I9pmkdK8xppUpoxc5lsd3za4tZvl7Q3mQ
|
qFzyrUBjsrjIX8fvxq6A8MJM+eEO5b+/T57lqkPP7LbQdMNrJnnzRQMke8+ei/sP
|
||||||
JMgqfQ1pwpPG8YnKEnS1rZ6DFq3wJ4dH5dOkEcSkUflUse2GrVpkFHA6B0iF4Fth
|
TxPobhgFUu4tr/7czjkm4zlhlERoGx3ntCXfMsz0siXm2YjmA6YAO2Acgo5pRCV9
|
||||||
F8cpVOpBh8zruRp5b1hNlzuC+4E4fgLC/dqo/WK17gEQmPBoVLmZurAsLUz63VBR
|
T3fs/svWxroVK4vwmHGGct4AuEc+uO+L21UQPjs4ZWmyErwozULva4IY7Yf5xK43
|
||||||
XJ0cphb39Jx+OqID0pfoRx8F7pWNMXeziQ/figtfX1BVsvAgAfG/G52UQIHPBB9l
|
0pFzEC8U8fZiHt+7LdT73Jg3S2VC8EtRSKCZngdTuFeXBFzeHoY/OKhCe5omkxk+
|
||||||
lRbUKp533f8J4B3uQlplAQ
|
Fo9S92qwmzUG99O12esEvw
|
||||||
-> ssh-ed25519 YFIoHA As3dFA/KZEv4uK3cABiksYAbbRKD/SAYHn6DMu5A/ho
|
-> ssh-ed25519 YFIoHA EuJL9LMHXM+LfMVr4yyGdvuY84yR2+SFwaOWDJMRQkg
|
||||||
1Gui6pI2/Y/4fhL+sV+ReE/Q8YzOXpa+el9ieDI63hg
|
B8XIbbk4lL0CSWL6pa9VPWSqpRl/rYwfub6d3Bmo01s
|
||||||
-> ssh-ed25519 KQfiow JfOvjZPAjSMEtyMj1ES5hgZQ3ChceOAgCUlAwdUWvHE
|
-> ssh-ed25519 KQfiow PD8GnvQfTkSmjibvob/8mdxaz7BNYbeF2cWeEkjmlU0
|
||||||
cHOS/ogIjIt3/cpcsip/OUbTa/XTsqabxpih0Q4d+vs
|
lRYL58OfPKgM1uo7TpnpMbxeUkyU1bK/EUekEYBOlgA
|
||||||
-> ssh-ed25519 kScIxg Ss92xRhzfFLuQ7cZ9qOXWYlxPosZJiIA5WUtnBn5uAA
|
-> ssh-ed25519 kScIxg etNtwcVT0aKZcqcdkkSorPCYfRnCwS7nzoVP95uJXRE
|
||||||
eFbchoQ2WFT5QZlbMp3ie2IO+oN1gDx5LEHYgtmibyU
|
wUi4ILZykIzDphiUyAuDhXahVg+jgyr/2jMb6UWIDvc
|
||||||
-> ssh-ed25519 HzX1zw CXFvvKTr+chLDjxeHIQq6YgfsyNguoqQgWMVCriq03s
|
-> ssh-ed25519 HzX1zw Z1Q2LCGEULPMYDn1zey+M9eNM8L4oughwfPG7ZWPvmk
|
||||||
AfZclyaLfIyVgRsSt6gFw/n3Gmjz9+qqcbS+jKLUTdU
|
1o1ZayfZHbpksk/B0OE3wvSZxxbdZuSdTsf+rxK4dHM
|
||||||
-> ssh-ed25519 KQfiow hoWtmj8tL3hYQaCusTzoEe2wy/hzOBQF/+ygYN0j0QU
|
-> ssh-ed25519 KQfiow klFY1JQborTQIi1s+4VbwjFyE2u+EKHz60/jb0SRx2o
|
||||||
lvfAsrOv1vtQeYvlacFyg6rlEUeb2nwxelSCkHZL1JQ
|
Ly8nlwvtj+FgC5ItYkOxsJS3gm1/7xp5Z+VPpFbtpUI
|
||||||
-> ssh-ed25519 1o2X0w hSNKyIkQ5HrqUodLzWRrx+7RkxFg9A1TVuXbq+EFlw0
|
-> ssh-ed25519 1o2X0w YuCrWLnH3i4ROYmy6sJk6Sv/WU+RFnxbtfgvgi4Pan4
|
||||||
CXUpZnKGuXV34Tt4YWGL1hheYHSYB2JonuxmZC9BNZg
|
yrFZs5853i9TUZKLIYBnlqVtdKsNuYXJ0y+TmFOA9bA
|
||||||
-> ssh-ed25519 KQ5iUA jbUaWkNa1xj8gKEalGx7wJWcVwwDWQ5Mzq7kw0Rk3BU
|
-> ssh-ed25519 KQ5iUA sB/drv08oppdGHw/T20wM7nopA4j1caWjyzGMmDXBEs
|
||||||
y71HcF0ApASye3RgUHEThP1aFZZX5jocKHL25qZ2yZ8
|
7GQ7+861qCHWBMQk5fHsR6SpNrMXgRWnGnA3tnV0J7c
|
||||||
-> ssh-ed25519 AKGkDw n5MO4SkU61QWZ57aG+383Q3raFRdomDMXGaDMgpQUSs
|
-> ssh-ed25519 AKGkDw tYrmiz1XFrdOBpScEeQgAfpXJiF7Ibr1LiC8/JCIxV4
|
||||||
4g2UfsdaNa++TRXNrUfVV8pj6irb0W+F10XfVAPJk+Y
|
2ZjKE1jUEI1pi+EEqVu7dEnH5CU+U/dhwUz421j5BvM
|
||||||
-> ssh-ed25519 0eS5+A DMk4jzjnfPWzk3kz1gwebXqJ5a3yAvqTi1fXCEBLi2k
|
-> ssh-ed25519 0eS5+A 4ROgGPec3GfcvIr0aHIMaLkmMm60SDKq2vTS40lYKGw
|
||||||
JL5wGUcHNQDz4Czo6yQ2Eo5sc0/psjo0O0C9unL3V0g
|
nAmzcALNfUiwPWLmf26CpR1YVzsvx5A1tM3ioJhsvlo
|
||||||
-> ssh-ed25519 9/4Prw 9RMdxeyRXz8pKxAaiOrd/D5UdImOB48C0OE4x1MbSnw
|
-> ssh-ed25519 9/4Prw AwSAFlqHtzMCEfIh71CSufeCXhNGiQ8kp8gh4L7laGw
|
||||||
5m4g4ZSMLP99bYR0+twroVvnowpGBPolw/u0T/wDCmk
|
y9tsLjmloqAe/zlKwPnudHHZaRL0Cw0p0+GEY0ok3c0
|
||||||
-> ssh-ed25519 gAk3+Q Mos0Csznmt3wZF0fE+BKlqTMJgLKR/+Yih7DTNaLF3s
|
-> ssh-ed25519 gAk3+Q IF6imwSH+0/XQtsxL1QcwRYioGShcK6AF5SjzzNpwx8
|
||||||
EfaOXBbeS2q36lUfydPL35GcL0qzxEyG1/g1HUk+Bjc
|
fkAJ2vfF0sGBVI4vvTkiRJPA/tESjTuB+2osp6LqYes
|
||||||
-> ssh-ed25519 X6eGtQ 3uAhhDAEQQCu7MQmNbEAs8/bDxEeh50VefU+prQN5SU
|
-> ssh-ed25519 X6eGtQ 62c7Y/MthvH2L9sbbYbVKMhRF8qXWfWRscxtDZVN4hY
|
||||||
jdp6QFF9Yw3zHrbmijJQV0CqlcoOm0BU3fkJTJAsxpY
|
7xfULkdrsc7WuKhdZCMGriRJXTjiTG+eund2d4pnC8s
|
||||||
-> ssh-ed25519 0ma8Cw +7QmGjIuxHsqeDxeLkiSvpaC7ztv+Ix0rEwEhbTeHG0
|
-> ssh-ed25519 0ma8Cw OndnmJU2wuCKyDkIRETf6nuQezgrZPElJc2QWagB9UY
|
||||||
DUHK8xqoxnE78AMIh9z846eWcSToc6PruVERTOCdya8
|
t/lo5WN6QMSXgEn+KX8pCXta/enG7X6eMi99+N0romo
|
||||||
-> ssh-ed25519 Tp0Z1Q Alv9QyL6AzdLRTyN8pn413eeKW32ql3i/WVhasuKETI
|
-> ssh-ed25519 Tp0Z1Q ENNyao40XIGWU6oYTYpCJ4U3jz62whUk36N4aeRz6VQ
|
||||||
EkkG/JknXDT5opzLSZ3Gbf8d3+FlHwwxzbZK/nCQ6ng
|
rJR4iY0K9gOJVRE9fms4qeGeqvKBZsooH/S/nQgcttk
|
||||||
--- zN1cSiDL5ZI84c9DI4ewQLqaGZJS1IR6EoSlpQC44zI
|
-> ssh-ed25519 ePNWZQ aFZ/We5kGaVWRsJjqjHC7Q/VC9mI5sjasJub821LpXM
|
||||||
<EFBFBD>ط<EFBFBD>ۨ9<EFBFBD>H<01>G<>.Dh{<7B>:<3A><>p<EFBFBD>2<>yY<79><59><EFBFBD>`<60>o<EFBFBD>c<EFBFBD><63>$ŵ<><0E>Z
|
a9nrDrNUKcbYXVT6kNtDD/ZHQ4l6FkD2kY/kqzkHqyk
|
||||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><EFBFBD><EFBFBD>I<EFBFBD>l2<EFBFBD><EFBFBD>O<EFBFBD><14>P<EFBFBD><50><EFBFBD><EFBFBD><EFBFBD>$<24>G
|
-> ssh-ed25519 hILzzA zSldTXdvyHKkoePZ9Q8ouCWpucslG48KRBIcRCS10mE
|
||||||
|
aVXXai1pDqz67g6TwoggiaZ9DgVFY/JmuhHdJyDifus
|
||||||
|
--- 7HTdgWTcmzZAAcD1JYjGrC8KuULch3L5/MEXQPB/F6M
|
||||||
|
<0B><1F>0|5<><35><EFBFBD>^<12>~
|
||||||
|
2<19><>}<07><><EFBFBD>"s<><73><<3C><>qP5<50>&<26><><EFBFBD><10><><EFBFBD>hȠܘS<1B><><EFBFBD><1D><>4`<><7F>=Q<><51><07>f6<66>r^<5E>
|
||||||
Binary file not shown.
@@ -1,48 +1,54 @@
|
|||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 ZgrTqA Hv1BMWICdw57RojY05L13liVfrg9qt6WxhiK6SAnqnc
|
-> ssh-ed25519 ZgrTqA KAallXaJm9d3NA+JofTDTGO7DWLW/3nnPwdENTmWb1Y
|
||||||
vveVXJsn4MVYTLX/HvKaofXWOeJ0IMdWSeDljKSlSwg
|
g7ZbN/HSQnq6s0q/kODuUErpeGmva8cigKs7uWEKLQk
|
||||||
-> ssh-ed25519 ZaBdSg iyNGSlaHdvTctpECP5qXFSO0gC0skd25gCidX8mJhXE
|
-> ssh-ed25519 ZaBdSg L4iLzfCax5N4NsTo1FYh310fLaXy8uP+Wjc7yBFrtGI
|
||||||
4lC4UIFuPimSfPuavLjhR94M5roDeco5yRDClI4P0V8
|
AZdap+gnBw1m82Z+UKejMsTaKimEhhpjINETmL7E1AE
|
||||||
-> ssh-ed25519 MHZylw a8Ueer7YzQ1f4PPgedktuyNWa1r4cE3u2nDU61nC7UU
|
-> ssh-ed25519 MHZylw i7iKbbyuyjDyCNbQt4oPew3yrrQadegbONVrBRCHaTQ
|
||||||
SETxeXg59NOznOfuLvduM2tKUolThR+CNWVCAj4fahc
|
zkSp83E6YiqfrLpL7zoiQ5ysrjtwMkMLQQ0/ZKXClWE
|
||||||
-> ssh-ed25519 sIUg6g A/C7Vtugn4p3w7gc6s/ZBbTIUW2dOEcGwSVfm0kwY1c
|
-> ssh-ed25519 sIUg6g 7hL+PB7PZqa1JWZMUHxKWyvccyDk9HmtVqmqIWeqvDk
|
||||||
66bSBWF+ZVKHvmEi+OEnfQF9m+7u+W0VnbDHxw9WY/Q
|
0zGF8d2u5Y6+hIEG9VEFEzck1dTmjdf1y8RlVi4lXfc
|
||||||
-> ssh-ed25519 TnanwQ E2I98KMUGzMDiyJLUeZcLpb++1v8udmnONioiVmVzyk
|
-> ssh-ed25519 TnanwQ 6vRamxwaQxu+gMknMzbxuqFsVVzZlxdrfUDoGkVS0zA
|
||||||
Sbc6bfi8VUyO6eBBkyv5DoEfVNd99K1G8NexeDmuDhA
|
tlGEWc8C947o0MyCWa+Jt/NBQiQn8FqaCJXkLcUPaSc
|
||||||
-> ssh-rsa gwJx0Q
|
-> ssh-rsa gwJx0Q
|
||||||
vwnSvESPfLtlWVchHtsmPAYqUnSoKIjf16qwk6rKD976cDQt8TEQqKjbGExHNBZF
|
SnNMJbhqxWsqMZNchdohyc6Hi2PJRZiee2sKyvvH25BxgPJHw7S6PDte8SWrgWFH
|
||||||
hnXfPxLy4at1cJzPCVOsumGVdkTkGPhMkyOSTnzipGBA0hiFZ/YKmoqyl8MnOy9H
|
KWNnjpd2RnFqJfeYiu0qbGaNsRAI99wxyMOC0SmDceg++RCfvZEKIs04llf9fvQ+
|
||||||
RVd51JJLdmUUDUsVLdv8DEbYw2mTmLJsoum+LXi1oYHrYqhQvC2PhXH8b/jfn0En
|
ab/Y5GezpjjWDH39OLnWD0wukzwVu+yK8agt9JcbEEWjbn/UjN8mPTEVY++VV4w3
|
||||||
vYrzIxbFaJ/xw6o+T+4G/5d3DCX4fb9ccYHnLhv9GQWvQPH+wEfYkKBaxriur1ir
|
8IWZ3pnCsnIQxHdGUN0aXF4yRsC7I7TVKD2rDHxrIJzOclQCSiWfZByB2wDa5DPs
|
||||||
9gkE1kErSzemr0sND5NoZKkGqf4P4ear3Vnjtf1gg1Can3Fqutb0B9ou71RD111J
|
V84hHeCkf4JKdXElr2Tf8dVtOwcK23vM2NbpbPxiEPMnoYgeGd73R9x4VIV8pAsB
|
||||||
SupcBHc0D7Kc47CTzI/V4w
|
kbQ8zE6d+LO+TsrK1/9oXg
|
||||||
-> ssh-ed25519 YFIoHA HSIHZ70ZSLrbeieWFfRI8Syj5QVr3X3g3J68ZEsOSSg
|
-> ssh-ed25519 YFIoHA 3UOkdWBLYbRH7PhtBEqjX9A0xjD63ONIW/J0Yl1HEQs
|
||||||
8veYBdbZfkqQ/7YvpFeE7pjWR1hZ9HF4JfM5yPUdl3Y
|
YNeSBIunjPE15CA39GEoVdMB5UrkLS1l/n0ngm3to2o
|
||||||
-> ssh-ed25519 KQfiow 4Ofzo/KS6qE+bb2O2l9p+Xl7sVSyYztBW1wy7e8aGCk
|
-> ssh-ed25519 KQfiow lsdHi8xvUI4WNUQCrxr5LFDvRHEtlO/VBrKzNbOLGCs
|
||||||
gzeCLM85g+tSGYFAM3z03HVwyO67sriOVgL6uiOGWV0
|
dI1pgwgo/TCbesf8D331rBzS/FTAdCHF2T14D2B2zG0
|
||||||
-> ssh-ed25519 kScIxg MNZ5ZwjuGahkB/N3KlIzCwQjtenikYhCcqOqUsotG3c
|
-> ssh-ed25519 kScIxg jty48sh4if8Bt7IH9bIOqnQuf13zmnspFSr7pgyR2RM
|
||||||
SvDAuGNWu1SG7EEQLJboFJ0VKEAbcc1rZbg9LCdxtyk
|
zw/XYL4bD45cW302H0MqYDs14ZtEoWvB7yixwR2TZ9E
|
||||||
-> ssh-ed25519 HzX1zw 9Z3XU4h4otPcP+3hx4gA3t3/T5RJAOyf/Lm/gWK8Y28
|
-> ssh-ed25519 HzX1zw WZw8qtZX3AjGpEFb8c8gFse32uUevrde83z48jH05z4
|
||||||
WEpitv/XIXxHg0Rmf2zibIq8Vrf01ieEPJ9teXgHp1g
|
2AvX+mnP5OPwm6030cmL2ILl7j3RLU+FyweYuyecAzk
|
||||||
-> ssh-ed25519 KQfiow HF3fZ69+NwB+1tyZDoBb+vL7S0sAB4VtFbteA8l3myE
|
-> ssh-ed25519 KQfiow 4zhsmYxGU9XHF/TcVfTEVfn5hFoea3JqesJ4VvX4JgQ
|
||||||
EPE0dZ4HAsE2SLXT+BlDUrWGGNKlBUQZLYVKiOYwvs0
|
b1ssWS7Is8R+Ej2BFCYQsY4oCotNEh8nj7WeLQdN1q8
|
||||||
-> ssh-ed25519 1o2X0w NQodm0eoA8H57E1Lgt11GubQIXXn+9a9Ho79akD1FQ8
|
-> ssh-ed25519 1o2X0w evUbWnUB0Ok8picoVn0ldKDm5cVTkUutZ99uanvElV4
|
||||||
pG8VFyXUBsrTKEZnR/pCU5pZaIBu8s4l02tv27IFBO4
|
hshiwu5uDJ3eZPvCoHWPeElVELr9gNQ85qA42H+PPGw
|
||||||
-> ssh-ed25519 KQ5iUA /XRx2bwU4u47q0pmFFjnmopgeAFDRcdwVUgiZvFZBEU
|
-> ssh-ed25519 KQ5iUA nE7sWg802JHghC8NWRYuGvgSsN6MRPpm/BdRgO2t83Q
|
||||||
hb7OR5qsZ2ctqoi9F9yoJiOSCMIEFhsKTxmTzTlNcgs
|
jQ5ha4nR1PRgs2xuLpeo/W/EcoEKUpWbTWLdlC90LF8
|
||||||
-> ssh-ed25519 AKGkDw MDy7x7w+m12Un+WJzIjlT1sqFUqyMgvs5cUX96YtTBE
|
-> ssh-ed25519 AKGkDw KeQGXmuaFursrugf8u+ddgqbzN/ESKkyyYfln3jxYE0
|
||||||
4idv3M2g8lkjGTXiH3zxR3sORP3K6OijlCF2vTlGDs0
|
yfNls/7e+Fukv+zjJjMJCAQQkcEJXX1L+ZD3SQdyMmU
|
||||||
-> ssh-ed25519 0eS5+A GxaSMOtNOuri6nFhtEmPCUAYO7ULTRgfhoSEhwsQhTA
|
-> ssh-ed25519 0eS5+A N5mD/DBTBBhi5ltyy/EYjR9GlNwyFc8r2KLffBIZtlc
|
||||||
eFGFTZB2z4zBOp+yuU9ryvhNh25v5S5bT77+XYlZ3eo
|
XLeSTdkOgGQrrACvCNhvEisulQYxF03ZvA5lgZnInAY
|
||||||
-> ssh-ed25519 9/4Prw 2dVb0418rDvJEJ8yYDm3+eofjwEA0r8tuloPN+VC01c
|
-> ssh-ed25519 9/4Prw khs1EvslINRv9Yx5TJwL70gW+cTdg4UJB/7l8WgH8Es
|
||||||
uVjqjHdZCvfZJKZukaDT0m2SL1S0CMB/exuNeIEBlH4
|
ONwhyX+rnZC+6WD2K6fDLw3t+KgiQt5/lvpsbBzkswI
|
||||||
-> ssh-ed25519 gAk3+Q 659Yfnz4QIdJCq1X3FxiDyL2F9QQEBSxyjnx+SCl3CI
|
-> ssh-ed25519 gAk3+Q Hx8o0h3xeYuaBveuo4gKycn0KsM7J9OiF9Pj7Z03eAI
|
||||||
VuGpJwysc8y3Mq/HrIJP5DY1DdMJC7QlXTlyoCaWbzw
|
kIVm0PDp2OT49ZNhIS/K9yFmRxI53W7oHc9v4J/6pU8
|
||||||
-> ssh-ed25519 X6eGtQ hYe08q7Sofe8mdwVTCitTayJNbV9Tl9Bkt4RPexxMDU
|
-> ssh-ed25519 X6eGtQ wISwiR7Nj1a/784FVC+dJEV+2eNif93hSlE7Kn9DjX8
|
||||||
FhU5gPGYUi6DBMt2O1wY5uL25dyI3aGhXEFXfgyUgBQ
|
CKtgttiy5x6/EH0XOaiz1nljRgLAcSycLkPb1Bdq4T0
|
||||||
-> ssh-ed25519 0ma8Cw z0Di7JjAJLIcQx2+B01JVBRbmh9fV1T0+Q6E8S+xGjw
|
-> ssh-ed25519 0ma8Cw OkumQjJnLgc60Xvn5tby9cokoCBtURQBrI6V6u7/Qj4
|
||||||
507pjrUEDf7r/DY0zC3gGj78uifvpe13BHKVtetSPFw
|
uL+jd32n718fJNcg1sQRXzafiMIjxAejQTauqw74k0I
|
||||||
-> ssh-ed25519 Tp0Z1Q PMwAaVX/1envqO+cf93hMvw7skIHIwDHizPpjn3zLWk
|
-> ssh-ed25519 Tp0Z1Q 3i8dPg6LgJzCei4YUr/qEpWKIo3EbOo2yOzlBCf85XI
|
||||||
sNGxgzKWwS29pTBnv8YVQwGm7WzH0LnYXfqYjwsJ+gw
|
jNpGWmeXpY4EezdMfl9GftHgRYuTJSn/3CGWIjsQiaU
|
||||||
--- 7ziHLKL/XsD7aJ+uEbNNNwxEC05vAINt+E5+Lvhm7oE
|
-> ssh-ed25519 ePNWZQ /owyowojAjn49k1iaL2I0RqT9+Agw3jWTna+xhqCHg8
|
||||||
<EFBFBD><15>;<3B>K<EFBFBD><4B><EFBFBD>Tc6L<08>$<03>s<04>O[3<><33><EFBFBD>U<EFBFBD><55><EFBFBD>t6<74>s a S<>n<12><>#jE^qh<19><04>5eɈQA<><41><EFBFBD><13><>2<EFBFBD><15>I/
|
7454vfPVu4yhfRsYsGVuXh2onCxKNBLYTWnQT5O1ul4
|
||||||
|
-> ssh-ed25519 hILzzA wU4u2Hg3OWEoMvAnJvFVlSe5wfJok+s3eO1fXDeYlTM
|
||||||
|
6wR9HVJqJ84sXKQh1cVjXh89k3ufl8ly9SSTuqcTgeE
|
||||||
|
--- RI1rrLgOqHyWHSXIPj/3UDn8Hr4kN4XuTvdFwoDgvJ0
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD>-<1D>!<21><>[L[
|
||||||
|
U{<7B><>Ȩگ<1B>r<EFBFBD><72><1A><>2<EFBFBD><1D><>8<EFBFBD>Y<EFBFBD>!|<7C><>bf<62>!ۉ<><DB89><EFBFBD>a)D<14><1C>k<EFBFBD>F@<40>eE
|
||||||
|
<01><>
|
||||||
Binary file not shown.
@@ -1,51 +1,52 @@
|
|||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 ZgrTqA l7b6HZA5Pn8b0JcA4Drxz/MgCc2Vy96cuvJm024GBV4
|
-> ssh-ed25519 ZgrTqA CPrjj7T5NeRsez8trFCuUa3RHqv0R8asSUNzltE+Jmk
|
||||||
Qbzrab8vi32f9nL4tNuO1eLmL7t7l8ri083/bJt9TKM
|
PQB3AmBVk5qJ6apWRXMdFMZNiPrHWg/ez0iEed82nBo
|
||||||
-> ssh-ed25519 ZaBdSg xQvCrHhvZkKg6YVjrQidt5d4Yat0appAXOmdmiTCGW0
|
-> ssh-ed25519 ZaBdSg L0O7WxoubsPPQ2O+m4BEJ9AgsFsxNgVm9o611koL4jk
|
||||||
jtMIU5mgNSP8jTdZ+Fc9Rtrb0N7nDEX4YWEcRftH81k
|
LoVXuDhX+zwzgmm6DcgHGC8ftSE89UNqp2u5H+SyI4o
|
||||||
-> ssh-ed25519 MHZylw 8jPM+M5F8TVcRVBlYMw3u+anhGNDV+I9byTL+UdNUw0
|
-> ssh-ed25519 MHZylw rV0KEGnqdoDm1rgalNxpz1bNr+xRGF6QV24QaAnohWc
|
||||||
8tI8XcvFrvjZfdp7aMYQtOICIEpdS3dNwvB2NAdtB38
|
YzdAcO8K1lMoti1+E0GWL3ETh6rzxi0RMUWBFbqCh48
|
||||||
-> ssh-ed25519 sIUg6g QUlb06s5McWj7TQYV5OtiE/9rIOQXMZkMstC3nbM3g8
|
-> ssh-ed25519 sIUg6g pJjRKHyRk6UG3d9pdDOe5+OWyU8YxjiruCG5sesDQSQ
|
||||||
ZSuvWblNVwUGRlav24YiaHaCSVu9uIn5B8YUoOQTfMg
|
sRFyPunqdheU1vdCBqTJVuiNTvq+4V+Ty+1gUe0wxBs
|
||||||
-> ssh-ed25519 TnanwQ jC5hLdBycUMEo79xZH1dC0dAGDWNfK5f1HeTbCojqQI
|
-> ssh-ed25519 TnanwQ 7qUae58rs3ONPXO/ki/f22QudK0vDw+fGMoD700wBSs
|
||||||
VyeoOHLGLyTOjpQL9Z+DTYVQTUbKAJtVWvAtS7Xl8Ho
|
oE6z/V2mj3WnF2POTVN66iWSaDBQMdXOsMhGCmkU8TQ
|
||||||
-> ssh-rsa gwJx0Q
|
-> ssh-rsa gwJx0Q
|
||||||
j1LuNJAQUtCVH3YBG0wHXOtuJTb04sXmO2NVAqNdpMB4IDbwsdModSpsolLRW/sY
|
wl6GDAMAtSrOKHDGJ0dYgyIRx7OmJUCW8tsx8/+V21Ej8xggIs3vI38pGI0a50U4
|
||||||
QI8pTyPUyelGNvHWlaTEO78uaAjhB087cOPLNQjzuJjfSb/iGvgT3pcbKQCUs/fL
|
kSfEGbZ11JeCu6/tB1/nLLAxphlYQ7b0N3JdDfq3HMUaDwH36M22TuFqM2ImIHv0
|
||||||
UeQ4GEn1osPKrQa/Ywq99p/ZIUo8cWBoF93XQu5TL1Df6N7WvqjnyITF8iq1Y7UN
|
pbbMigEeV+3wMZWyxWXtdykir744++PfTqORca2djDHxcSeRYI0EtIKBy/2FV+G2
|
||||||
XqJRSHtSebbzQ3I8D1uxpQHKe/N0R38i79Diup4uSK92Vu0hOZBOtXNGXbFbyIPd
|
gJMkH5NSwLLRtE+UbLxQWpuf1MwKcxAKntCB2E/uXMCjqcZyaNRsZ93tzlRGNPTu
|
||||||
s0qLefLab/mVqqlQLTowunXSpM84dXp88QvU93erz74yIjmIzjYq8/h3DJgETkSh
|
bX08JqQtrEt6gliEVu++vRXAw22akyCc37g8moEwBbbzQpN+xlzOO71jxjIC/ngw
|
||||||
ef7OahlFg/foYR2j1EptGw
|
pSoKrBRA+K7Fo7ddkLRA/g
|
||||||
-> ssh-ed25519 YFIoHA CyCFDmrT1afqK5jkipGMzF+Db+wzqpWSnRR2MIZdaE4
|
-> ssh-ed25519 YFIoHA 1qWAqxlBztJsh3pabBIrNUxYcG5cFfF+/wmbM4apiww
|
||||||
Tlf8meKbQ+r7oHYwLj19J+6N17IL/8NJhCruJKUitMA
|
MunZIq7qYuKbb5tfY3UGpciL4wF+l6Gm60sh8Ku9pQg
|
||||||
-> ssh-ed25519 KQfiow GBRy1163xGhooVG1px0ETlkuVGiusDf/JYCAIwAjGH8
|
-> ssh-ed25519 KQfiow EP1dxCL53vb3kbhXjaC8E+jSBs2q3+un5Kh90eYpO2A
|
||||||
LjFxa2JI5ZndHu1YToGRjotf8gDo6gYexSdbwWidhc8
|
n7H3CuFzNg6QqWe+AgiOvltsdkTpxIO9mxtEn3SXlsc
|
||||||
-> ssh-ed25519 kScIxg fJx/JjS8tyhVKbyo9V0xlMiZBhakIFj+zfUeNxYWOm0
|
-> ssh-ed25519 kScIxg H+xADSG4oz9cibgjN1/6+ftob8AQE9DAhGgJGve5GH0
|
||||||
qYP82ArNgJCIlPhlEOnM3fnDJnd9RkUNywlHeOvoLyg
|
zLXmA1ITGRCWFZAWAjcZjZk1Rg5XiT/XeCM0q7FMEcQ
|
||||||
-> ssh-ed25519 HzX1zw HTZ0CSFMYuh5Ra9nAm6TWu1lpv7BuQ+40L5xBNIHISE
|
-> ssh-ed25519 HzX1zw XKSGYMAAYBiD818wBZWoscMz2acQpNP2XbVjRulZaQ8
|
||||||
fYoRzc17wWT5XbF5q9qRfHQyOenjEkpKhpH0HldNGiI
|
C4uawHEOl+Hy4LBhLB4Y2vCR4nQ46EwnBFyZoJ+7xYA
|
||||||
-> ssh-ed25519 KQfiow sW1XrFS7i5LeabsgZcAnLOkYe/bRaD6LSebkoUBncAI
|
-> ssh-ed25519 KQfiow vnZC2GU+eb4eyZSRTiXBbI5Kf46HyvR/puRUWc5d6Sg
|
||||||
HwwrjK3y79fUxe4RH7pYTS+Cde67Ab1eEZpD5co5K6s
|
/9U/ru2Th/H+E5d2mldTo2ZO0uo2Ik7kpM5mqvJz0HE
|
||||||
-> ssh-ed25519 1o2X0w l9kJtrgEg2FixlWurLcyGLPJ1mnelNfLHumTBUzpCyQ
|
-> ssh-ed25519 1o2X0w bDozNoD0vRnQrFLBo5N1EckUNOVXgmNsnqMuO1O7O1Q
|
||||||
h70/N3WdlC2U80swdJCsEKyOxKab5Rj4oi7QhTaFrhc
|
eCMC1Jg0rhHlo7Ypp7Yr3B7zBy77ppt3A8GSSgI4DsY
|
||||||
-> ssh-ed25519 KQ5iUA GgJtHkp7ZN5nLNQWxXeGryc42t5TMyFR6uFCo8mewEA
|
-> ssh-ed25519 KQ5iUA 2t+/W3pXYwiF1Upfuy8+vIxFtw8Blggr6/LXFJi1FX0
|
||||||
4N5/TMBOSuMR4FvvjCBfIw5x3ZyoXsFr5Js5skhddew
|
+6BsdojuS7dB69RLjFxSuQkzhdP6Ku0Jthls4ogSsSU
|
||||||
-> ssh-ed25519 AKGkDw vQGsaD5ESmjKCrb3GlsGFrQy5vu2fC3EKDfFRLvqoXA
|
-> ssh-ed25519 AKGkDw JfA+G0ccMPfpazuEKf1V1Xjb+vwDFfyVDzHxMhQoK0o
|
||||||
QZJk2k9HqbgQgPF8cJkiXe+H6F8Z74f1b7F/+PiDg70
|
BxZn0d+TMJs5L3CG14bHN/kboclC7DM3TZ7n7KjBEOI
|
||||||
-> ssh-ed25519 0eS5+A j44yFKhyfrvTGHqKStPnfD4NXs9pzLPaCrkAGLC9Xw0
|
-> ssh-ed25519 0eS5+A E4piUd1KILBvVfFU1kgj5X0SgekOHQqWbLxErZHObDs
|
||||||
4oXlhcN0z2RIziOEp/8Wh9rTTDEEMBwkWKDCtpsfOU4
|
VHj6c0B+U4/KXOZlYI0hCQ5pkp5qMiIgYqbe3WwcnQ8
|
||||||
-> ssh-ed25519 9/4Prw 9qIDRdHxU/1/3iFNF9K5T7dmpH3V/ClNCRkYUyCJORE
|
-> ssh-ed25519 9/4Prw jqtBpYw9LZsQmvwmNiP/bNZYpgSJ8zDu3fx2iIol8TM
|
||||||
dDBImEifhhecn5pH8D+XgPpA391rgDHLKO1KZMHxBts
|
wfX4POaKNEGezdrYZrEdjumebzv4iS1lu0p/K8/2yXg
|
||||||
-> ssh-ed25519 gAk3+Q tyfFkdySrXzo4MJl1oSkrjJxiQXM6O96trOnw5G53yw
|
-> ssh-ed25519 gAk3+Q 4D6BPLfkKPNurNqUL/JU8XZxKE+AdfPHvBBfeNwS1Gk
|
||||||
6NYRBoJte5yTRIvcuKCsKBq4W1852osSEfBjU8rYmjY
|
sJafikLuSqXFhe25M4ftaX3eQVZ3rPJvxaXZV6KKVMw
|
||||||
-> ssh-ed25519 X6eGtQ ///3dXDGSC5uX5LiGmavuWX3DVvdWSvl/rqbBUb6fDk
|
-> ssh-ed25519 X6eGtQ xdDO+LiOHlU4FVOOHdBopj2ZB6z1F3rSyAgivz0YKzc
|
||||||
fUYA8tDoN5d2a6jYrgNHEBzexNWNq6KlTSl6rM53y/E
|
z4oZHwyRR0K+v4K3IZoNRqy1RZQqMr6p4HN5LTznOKM
|
||||||
-> ssh-ed25519 0ma8Cw xH0J+3k7olUKPwDv3VlIXbEG/9Rjw8vqpSM3sZ9yNAo
|
-> ssh-ed25519 0ma8Cw dyP/HDlpaEMvVgluPMxf84c9bEcL6hM7MWLNc+jSFGQ
|
||||||
//kmMwpmnEGr0yezK+e7D95M3dvDQ6eue9UiGxxJD4E
|
7fpKsQh6no3U2FgJi6I1eiR2b04vZs/OMcE+ruCeHVU
|
||||||
-> ssh-ed25519 Tp0Z1Q vWnA3ngODCxpeJ8/AuHNpBOEjlotJNKJp0CTMW5eTGU
|
-> ssh-ed25519 Tp0Z1Q d02Fj4muSbNTJ48jvfZjkdP+DwGaDLuNdiBH5fz/yRA
|
||||||
LKgXRPEV1U9EDCM8R9FUmdpO58zs3bHn6Vs0wXPb/CM
|
JIF2uJzw+5ztiszAlrQq2KBM7w+joy8xZY/lGO0j4lw
|
||||||
--- gnNjQuPf7DycI857Ipcq0BxEr2tKePqV33VnyAopiqc
|
-> ssh-ed25519 ePNWZQ L/ui8x1wpfFsd8ajp+sXAWe/vTxhvjBPOweLBlp8R1o
|
||||||
<EFBFBD>7f<37>^<5E><>u<EFBFBD>]Kt<14><><05>
|
NOTLdHRmz76WtLT0SNw2hINQ/7+sD2X1kKp/onCbFgI
|
||||||
G9<EFBFBD><EFBFBD>E<0F><>#8<>jSz[<5B><><EFBFBD>?<1F>,<2C><><EFBFBD>
|
-> ssh-ed25519 hILzzA 0q0ZQsrl5ws4kLuXQdOWqJT9hUGnLRvvy3W6vKSliFg
|
||||||
|
rIHtbHdPt5Z1L59ha2qJNscwbivg43gROhpnwP6akRw
|
||||||
<EFBFBD><EFBFBD>i:8Жb<D096><EFBFBD>69O̻<4F><CCBB>i<03>MBm
|
--- TlXyvptuilmI9g4ZpvTOj0zCtQpmVnheItCp0FIVwuQ
|
||||||
|
@3<><33>`<60><><EFBFBD>Hˈ<1A><><EFBFBD>tG<1C>9y<39>/<2F><><EFBFBD>fژFm<46><EFBFBD>~u;<3B><>p7<70>a<EFBFBD><61>`<60><><EFBFBD>Se<53><65><EFBFBD><EFBFBD>e$@T<>8<EFBFBD>Z<><5A>%<25><04><>k<EFBFBD>~F
|
||||||
BIN
nixos/secrets/google-assistant-integration-service-key.age
Normal file
BIN
nixos/secrets/google-assistant-integration-service-key.age
Normal file
Binary file not shown.
Binary file not shown.
@@ -1,48 +1,52 @@
|
|||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 ZgrTqA gwgbZfsmN/IZSoLT93ftwBDJ9FMFkumWuDYLAdR5mDw
|
-> ssh-ed25519 ZgrTqA GMbEW+SDQhfyt4KWASE6AVpRf1rtF5gLrhHxl9LeNQA
|
||||||
wjVFV+RNqRUomklgh+/I+upUzOjIF7NbeHDG/ZfAkXU
|
xtrP6/RYIVLHbkVrHhzlCIXasCS3O91yZqePzDNr3H0
|
||||||
-> ssh-ed25519 ZaBdSg vfpZjIfCwFXEkEUrErLcCSigL4Uqm0/NZkIyzMkJmC4
|
-> ssh-ed25519 ZaBdSg 7Pl4CLb8c8AkuPd/I1iG4xheIyYF0JURhyGZ5blD720
|
||||||
NgGeogehq3w0AUawo9blKKMrr1HfwSseUndNSvA0cDw
|
XjTk0kXYWXrr8P7YvOPFp7YcVJBdBRYl47JoezSilE4
|
||||||
-> ssh-ed25519 MHZylw 9gx87i2+xptkEFAq4brfSa28StOcKHrBrQ6YdPrEXVw
|
-> ssh-ed25519 MHZylw QwWHH6zyRmkZDdiNL6zlqZ9DQN5JWFjl9Lh7YvornVA
|
||||||
Wz0TkHL3865UNTalO5GLyla3eh5HO8CU1OpvmFnUz1Y
|
Adyru/qnb3zBhrF0iUVT2SZ2nLPkDpaGH/XGRM32b6Q
|
||||||
-> ssh-ed25519 sIUg6g kXECNgiZ+7BenXVIvbioQwYb0Kni3uCAyHgRgbw11C4
|
-> ssh-ed25519 sIUg6g njqUa4zJ2Zq0IiLxl4vARX7ASOB+/vCnw0YJnLfUdhw
|
||||||
+ky0U9p0KaAu35zSOSNHXPmHFqdIf8BGAveLDMxpeTU
|
iunQsmA/EWj02L3Z/e44V3udLM9vvW9cjURdw9WzZRU
|
||||||
-> ssh-ed25519 TnanwQ G5nA7iVSLYTx4TE5Xb5G/69JKJ9qm8xpYq3xi4A7ZDE
|
-> ssh-ed25519 TnanwQ nGF/qQuktsbCkPi0whuoNxm8Yy7abF9EBabOXeCL8Vc
|
||||||
yMW2ny1+QuPB+xzSRxxdYN5bjKZiJVY04qN6W+V1Y3E
|
BzfoSPQrrmIuz0hguvZ18w7+mM7lswdY1cuFDKiBPDo
|
||||||
-> ssh-rsa gwJx0Q
|
-> ssh-rsa gwJx0Q
|
||||||
IEv+jd2oOZskPWM/LWUb9ZLA8IzRfaBQTafgQyEzVoD7v8lbfpMKTI31ylxJQSvh
|
QU5rx3M2oUsJ0g83vEoaNJdIhDKoCwSwmtd7XLPUyVYO/kQ+lT7dncB+sCM56lHX
|
||||||
d+gutl9xgGtVDHXjGdNKbDHwAVzYaz3IbvP+Vje9jtSqH6A0AU+1OqXeRzI3ZAux
|
6liYiK67j7VgCl3fqxQ9DkTO3WZLAKbiCPvDmguTHmCxafGl98OKWvCmYwZGV7dE
|
||||||
oBJlCEGZqSBspA8AhH3cv4ion0G6iC1wmqaIb9Nk/qnzfBvtE/cIpqErv19byVUj
|
7oZCu66cAVXq0l8jXtTtt8lzrTawgL3bOvLExZdcApPKPgrJsPwG6DmZFqqFk4xt
|
||||||
pZr5NviDXETV29Gz2HDyv3RsZ4wfJE/npebSu+ORakOH6PLRtnMpB4aKOensv31Y
|
EtjflgkyjdKH9gzzaFITe8cCoLjFfKM++5WbYoL0bESvqOzvGEp6a47tkSMZdt65
|
||||||
UJQMTHNuJRgPdxgSI0P9W/LaCSMT5vuXR4ETz4vEqDNzcFm1ekqfY8821/AbOtlD
|
VUlfPPtCUVa989y7Ab3a1Qy5bKBocVz6unMvkbM9yoTegW2uEYpU56jcBXZFLG9g
|
||||||
Q2c0zr2C+ayGW5zwGp2XTQ
|
Lg6i+ccCt117FCyaAjZkLA
|
||||||
-> ssh-ed25519 YFIoHA UMEeywWPiRXx07jalhLcS4/TmK+gwg8nWdtBpM/IJzI
|
-> ssh-ed25519 YFIoHA pgYN/1CGQ5pMsGWW5HdpJV964PgM5O0urie5T975/Gg
|
||||||
9SDhcDfTgwRi7HJ5zL9i8jHL6i00oi6y/qaTzsjb6uc
|
/lUDCUVuHIt6jZRCze78CnBvkMYRDQ8xn7w3btpvW18
|
||||||
-> ssh-ed25519 KQfiow furHqLazJ3qLEIod24dfGPfu6ie7zutEXDV0N2NGYDY
|
-> ssh-ed25519 KQfiow PsWs0aqHy1RZwSnRRQTsVI2nIyxIXfFIBNw6f6ppBAo
|
||||||
Se5igVc1LJtobjLioH05RPtQfUh5jjYV/bRgU3RL4dY
|
qbQrRXN5kUsmlpk3cNv9RemEiS7YMiW9lfHPjR6FdA8
|
||||||
-> ssh-ed25519 kScIxg mBFDyzrNBg33LQAJMvlikmd7h0X9d7Eus/p86PF8mxU
|
-> ssh-ed25519 kScIxg 5dEqyfHHeIXX+NrMKb/VtoyUpOgMBmGjZ7YCBQgPS2g
|
||||||
MCHgXOGu9AE83VulyxcPEwbfbiymqiZ9c6p3IqLzhak
|
fYjuBjeHqsqFYoF3+g5xTh3YHLy5RI1iHX8zcIPkOXo
|
||||||
-> ssh-ed25519 HzX1zw dAgBHAtVniUDV5W/MGrQX1cQh+P+cpHErnxCMn/b8A0
|
-> ssh-ed25519 HzX1zw ZXtasvc1o3Cg2eh4Ju/ekUGsqQn6+PP2tdbCItMmEFM
|
||||||
zx0RxAMo2b6fzjx1U2hw/wHjz8dRXHcM+e20dXRkN98
|
6p2GsiO5p6RlLoIQfrRD8EJ5/wIuVHK6a3cUtHI2nkA
|
||||||
-> ssh-ed25519 KQfiow NxL41InC5f7Za+/EIQT+z+vhzkkzQxOBRBqTe0J2U2c
|
-> ssh-ed25519 KQfiow 75gFbFOugqJ/YziALuV5CPUQ5Wg9u2sh0XiFBMgVqFE
|
||||||
t0IJoVJ9Ap6P4D4kCM+TGgU2oKhTEpeiFktAQxM+C54
|
2dhPyVbCzOi2c8HFf8iB2uvJe/qqWeDsqiVSqRxkkD8
|
||||||
-> ssh-ed25519 1o2X0w ++MXOZdgCeKxiKyQ6mAiVz1i4dXnpyFSuhSq5hG3vVM
|
-> ssh-ed25519 1o2X0w 1+cKSeYkgLwU3cGpdXl+jv9UJ5VAXNTe/L6whfY+71M
|
||||||
KeMSC/Cb10lF2ZvdLS5JXRkOE6iEcLtju3I6YMRQoqU
|
HWoWoeFYUdpfJ9OVfeMODgtKUO4qvQp4bygoP9nycLQ
|
||||||
-> ssh-ed25519 KQ5iUA +5L7eIEu1RGoVXxpd/nJHi1/DIF82YCKtzt71mhKqRc
|
-> ssh-ed25519 KQ5iUA 4eiIuaynKz581DOhhXeXo48hfAYYECjbNAWOXotaOio
|
||||||
+La1804HzEBjkHeQdRGboNwIj8NarvZ/SJG3Ua4y+Vo
|
gOmH7C1S0QtpcSrrJV1b4EUl7F9Mw96cDWJZJOt0BGU
|
||||||
-> ssh-ed25519 AKGkDw Ru9l2BXa/LUZCn5DpMVDh4ca7w1JU2thmChLOeY8Ii0
|
-> ssh-ed25519 AKGkDw eNUsWSJjAiv4H5na1WOnZlCunmMqu7VoejXLnCXnrRY
|
||||||
GSua+XJoy3g9NNZ2qHstAbomR/3xKEAe6SOcn6g2Q/w
|
uF6/NNRxyTwmNRRPtdd4pX1foWp+/ixeCzLJ34dDnyA
|
||||||
-> ssh-ed25519 0eS5+A e2prXUG804KhjGO+rg/eXrZUQM73HxQ/BnN1vsHbuQU
|
-> ssh-ed25519 0eS5+A Gdy4tWqywDGnPMTgy1SNxWZRrg9EqiFhm3so3ICci2s
|
||||||
nIANuBAF2Tk7hWT9HJJ4uvUrPbtUhsBW59eOkVnK5IY
|
PNDf7NFDaP0uatASxSI+yzUfpmWwuNsOcDZBbM/YsEY
|
||||||
-> ssh-ed25519 9/4Prw DOtRMtKN5Q1YFq8AFrH/37SJxaHoaZuTMa/JVzT2Bzk
|
-> ssh-ed25519 9/4Prw Qpu/+aKVo1jrEYrQmNfYrIRre962UgHsNL/lZ77f6QU
|
||||||
j+mawty5y3Ox2Nzp3TncHbR/rMmcmIQD5EfezhUUtWg
|
wwjKK7+ptfkwGP09da5X5muIGdNG3RTWTk4Gw64CQJU
|
||||||
-> ssh-ed25519 gAk3+Q mZVlRxtH9jV7N6/aoJ1je+jkxuF7sffcGsLiYwjReHw
|
-> ssh-ed25519 gAk3+Q UwV7iL0EehtSfJjw5NBA13DNM/129fmy86ji5UGeSU4
|
||||||
XOQKhZ60vBfHaO7u9Fkwy40po/jh/Y4/Yj/D4gRO0k0
|
gmL/YFoJpIBiASZuIp5xRt71J/Vjp16isghdqd69z2I
|
||||||
-> ssh-ed25519 X6eGtQ 8+iFJD1esMa/3yuKAx8fZBEJ2SxLdrzXhqqkEicRvgQ
|
-> ssh-ed25519 X6eGtQ qpxJmIKghfZgpPin6RaspzLTJyjj8JcpLRvXbvVzcyI
|
||||||
R9jJ7vDcxA/sOSF329GW8d18Jzdwot/BpFEl/knraSE
|
L/IPQwYxd459R3EAtRFHTEfi9vx7Io46u0lTFivBlSY
|
||||||
-> ssh-ed25519 0ma8Cw LgbM+4liQS3j9acMcFnnp9gi4Gzkq6Xtmrm4KQoO5hU
|
-> ssh-ed25519 0ma8Cw 9JTc5woQ/hHPeP0CHG9DVjMcOAhOcpCkvPAhj3OZIQc
|
||||||
TX50NCZoZpH4SzS7ZfkDbEcGO/A3dzRJXvtDqxjzsuk
|
SIpdjcNjVi/JiezErZZgyowL5FxmGAAdRgEhDCU4Yps
|
||||||
-> ssh-ed25519 Tp0Z1Q yHfAA3IRIM3rDcPNoV9qh1RU7g6LX9aelELZGXVt7Wc
|
-> ssh-ed25519 Tp0Z1Q LZJUAwFHs75Um07eTM2omQB+Rhmbm3B4YGy5Y5aPOGg
|
||||||
QIlWb0xzr+RpVwcyBqr8oRR4WrOz9st4fFSKNCEXCWE
|
SUppXcH3XUAcy+vAc3iHR9YVjHMxFNH98sRyt9IfFv8
|
||||||
--- ztKYvZNf3AP9x0CiM2gtLQEIRHtkwAEgaBRHWJSZuKc
|
-> ssh-ed25519 ePNWZQ 7t/CVBxcm4WUmn+np6s6ZD4x8h36475jFOGLaFs7r3o
|
||||||
@6<>ۑ34p<34>oq<6F>Dv<44>ub9}`<60>I<15>ɞ[Y+<2B>&<26>&n<>3<EFBFBD>
|
1aa6TEfxCCKg9Jwu9Yb3SFVZzz7xWNd2iMC+s87Fbi8
|
||||||
|
-> ssh-ed25519 hILzzA yrrl2pOswnvRNPeljQO28yiBw5zm5u5ktwiO2c55OS8
|
||||||
|
I3q3o9P/nL2qgsT0do5UVXKFVFmJ0MvJdzscKZBlF2k
|
||||||
|
--- qmxl4dfikwhk1cTUcG88l+s79kn997e9LZfVxiY1ZIQ
|
||||||
|
lN ֦Od<4F>V<EFBFBD><56>>N<>[]<5D><><EFBFBD>P[<5B><>ɷ<EFBFBD>A<EFBFBD>6Ͷ<36>5<EFBFBD>o<0B>"x<>N
|
||||||
BIN
nixos/secrets/k3s-registry.yaml.age
Normal file
BIN
nixos/secrets/k3s-registry.yaml.age
Normal file
Binary file not shown.
@@ -1,48 +1,53 @@
|
|||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 ZgrTqA l1KhMBYmv+TZzBET8kptlZsQqzk3PWm4KA1YbQ7pLDw
|
-> ssh-ed25519 ZgrTqA qq6ewpZKKfUE2GrA3Jkz5s0z8xr6He98Ew779jMDdHo
|
||||||
XQdF+ZjcWyWs1oprvb5J5GWL9qhQ2oyTiAHU580I9Us
|
MVtdn//ZqIAVWhpuzrd8nXmKL6K08QzC/tJKzGkX7dk
|
||||||
-> ssh-ed25519 ZaBdSg HpBQZKCjSZLWOgUhlZNBSQdEh4VqHyIRsnWeqOoNu1w
|
-> ssh-ed25519 ZaBdSg 4vn1s9JcSGAq0CjoZ6mgns5RbI4azU9PQAHi0yHniiY
|
||||||
olbfsFPUKa6n64WxIjqSfzEN0Sv69rkMem7l4BSdRO0
|
rB3m36GMZEutufZiZGOTJcHw7biEy2PoxlaKivJbKjs
|
||||||
-> ssh-ed25519 MHZylw i3v/ahcgJ0eNpv+eyLcLW5HFbJgDxmILPwRIfYbfYSo
|
-> ssh-ed25519 MHZylw eWcBqYyslf0Jsv/+JDBSlwelEFiTWxocUVevAGD6qXw
|
||||||
gNFYiAJFaeTE2psIhpAOEbdh8qpNPkHhQ+JimwLWHMU
|
aXYPcUDz5V72+ZnuPvIgvJ2BDISoLuCewkQuDaK8P3M
|
||||||
-> ssh-ed25519 sIUg6g qhpWT0ZYGs7L9phprKuuTc5x3ONa5HxfJrml9hZXCDA
|
-> ssh-ed25519 sIUg6g 2O//YQ/RWc7fXdmBLcFxlciHYajMTG3ZCsO162Fu2kI
|
||||||
bSUNBSgE4THO24IldTR6UDl1nibM6wJVhfQDNgXDHoQ
|
9Eh1lk7sfn6Bl80nCSKg9t7VZV8rpcPxOROIaDmta0s
|
||||||
-> ssh-ed25519 TnanwQ oIiKhCPi2Q6Aie4hdnMM+GD0X1AP+RRYX3MhPZr6mwg
|
-> ssh-ed25519 TnanwQ BpMAoMwUNyKQfmB4MP87nbAxuZMYlvdw65I21kbQmn4
|
||||||
+eQAf9brHo6aFjChm0AhUcF9taFNqrwIITVanvAJBZI
|
z1vBw9pqZhpMl2xTfoetik6v+t00cYjgqo9+qt7qYKE
|
||||||
-> ssh-rsa gwJx0Q
|
-> ssh-rsa gwJx0Q
|
||||||
bPnrY1qe+cJIrAL66CjfIoHrwpyIsJ3hxMnjecNpbYwj0VD2FDy8oLknXvUs+Qr7
|
f55IpWt61b3OScEiHpeQmP2VeRXs/TeyK+CXQtTQuBJQd5tGUEkO+yuvSqeVEnSm
|
||||||
9AVJXYnkJ2qP/KSxZe0Kq4yvuIVu30CcibMWdA+FbDSC+BGhkFuVMbn87ewujBZO
|
/10BeSVezYknXKngpAt1MmnkFo2B25OrdsWgdYNl+HgItoOQXqe+UoaPIdf6Ijo2
|
||||||
yckIiiW0Z26mmBWTc2wOxJvQBsvNmEzJqt75g1SKjZYd4yD2ZHybLZkd5S2CRNnE
|
g65nxnoRNLSQi5M5qqzdKWC93CtKZb0dg2wTekSIJVwQQjvITEwaKg6bqqjbQJGf
|
||||||
P+9UZstX+ZGQT7N4xCaYi1nBn3ZyDx6QfUtWPK+W+ZBxCmeCWSKA6GdPhG3Xy/sD
|
nGfvZRzBC2ij/o87rNlfU1/0zW2zg2xa/m2NU7O8lU0nmbQEbbXjaW4A5d5mCT1s
|
||||||
7Emq3VQpFwByBzgno7u3XzhY+RgGDDWz9YnvieUPT7VloXnjD+2+CqiS5zYj4ueM
|
gW4b+AUIbCiDrsr+KCYgqv5h55EOaM5bOQ0CuFjz41raBoiyqS6I0IWo01pTK4sc
|
||||||
5VHE4pYUTczXWBe2kurwpg
|
rAMK98AblVv3fERqq+VlVA
|
||||||
-> ssh-ed25519 YFIoHA zgTafEG44X/fXwXLIlogjs45fAjoEMtWwOH1bJiUXA0
|
-> ssh-ed25519 YFIoHA jYzxsoZhBcpvEqafzxvHbG3/SmCRf+d9Yf+u5XhzxHE
|
||||||
vp/8r42Zr97CVwG5K9F8be5OUy9lAjqMC/86mgsHyok
|
fp1nYoxGvh/85dR9v60cNfsUFv5uDzHYAMRc4ihyCcY
|
||||||
-> ssh-ed25519 KQfiow 0mtQJsqu9ilrlYIcxEURoPR4v26ovNb+xK3HsA67J3k
|
-> ssh-ed25519 KQfiow XHgUIwzrt0L4E4JnmmehOihWcJgViTHG56vtb5KtQUA
|
||||||
sUGJ2uJXmDCzjWVGvD+kQq/k1Kjh1GWxalx66PdbRLo
|
u0+BksmlmLVatnpZ6DRKBmI8g7gqTrIG4Qw6EdBPYfM
|
||||||
-> ssh-ed25519 kScIxg G/D+dmQhzFH8baIl1/LEcFm6Srag72DfUwMi2lU4FSI
|
-> ssh-ed25519 kScIxg pwXyTYTbKX++BPK/PJcYva9sUwvYt+7lajGDeEkojVA
|
||||||
lUm3v86TvpXOCEOD7x2c6OQfglVlNpz3RJQKgLos4A0
|
QOMTi16948Nilc1qhGYcVXfZ3SP/uUX1HaPmeqzF8+8
|
||||||
-> ssh-ed25519 HzX1zw mOWnNPTDS2uWUhaBDh5W20sa6L8Sv82B/i5fyYtBg2I
|
-> ssh-ed25519 HzX1zw rKv6PNWxfeitTQgRx6DB+M3AXgj361CI+qePltBt+14
|
||||||
ml3ypIN6Hk9ZLWAHgeeX9Fl69cVo0quKKnIOzf0gtiA
|
+eljIXAHSX5MDXzkvvzU1fpLjm8zGC5KFBfVfOdud1M
|
||||||
-> ssh-ed25519 KQfiow +KbirvF1s4PLCPVko1UuvGkPUWT4ysU7IURr61WBYFI
|
-> ssh-ed25519 KQfiow Lut/wf1jgMnxm0L2cytSL69dv5JXPvh8ssx9HCCftmY
|
||||||
EIEFzIrqBu0eF2qsJ0sNYWVLdxUVWhER05C//iU8Hik
|
/tutPm1D4HUQnUMyGd6xkqQ5gUNoIoPjUqyhKjkME4Q
|
||||||
-> ssh-ed25519 1o2X0w SEi4GVg7eYsP4H5x+FzMWaHzQ10qYuD63DtlNbdtEjg
|
-> ssh-ed25519 1o2X0w NM7N19K80Jg8uiyjBOdSpyHGNopLLRehqAYEpq92mFU
|
||||||
hvVJMGz0mrfKYua9kfc+QfZgAqAapKlRoxmJQvX076g
|
ZPRx/EY19vG9BDqtQ3YVTcHxuXHjPq7Nvy/Q9dneGcA
|
||||||
-> ssh-ed25519 KQ5iUA DH/T6YbQufZDEejYJwyTvxeR2dn/CaTm1i68Rh03yyU
|
-> ssh-ed25519 KQ5iUA jyByB/G6VEX6TJFxIiPGRFAv6YbS/vyAqPtTRQQLllM
|
||||||
u3sMfE0YupucU58UVrCkEsVKPWCvxEfDDCvRhON0J+4
|
CTR77ZjOqJmV2Vm9lF4rc1nISdCRZt/4Fk3P7StEcuA
|
||||||
-> ssh-ed25519 AKGkDw N/s4jeBT7J8oTXqiJhfNRzUuxR9PTyGApTqCjERFH10
|
-> ssh-ed25519 AKGkDw gC5CzseBqtzA3NJUeHMaJG2ysSW5aURpETqcyt+tlWc
|
||||||
oxEicNoou7wTRuLra2lNHUGp6ZAVNMAV88X/UTdI16M
|
aw6vJ3zD5f2JF86KvGRKoY0RdFcAWlw4U0aDOsG49AE
|
||||||
-> ssh-ed25519 0eS5+A mJLNn95SfVF6fBBmPJHBxeGH74+hCbHVC3CHN3bcr1c
|
-> ssh-ed25519 0eS5+A 7WpzMGXHr+SkeQaVSDtHxF7/J+FpHKcLPrdSzcN6w0I
|
||||||
mVc2Rsz6tXZlPGSMNNmmo4sbPN36we7YVy17mXkwKas
|
PIwz6vvx0LlO4Aaw6YfYJaUPOc75PT91LVgfNfDN+Rw
|
||||||
-> ssh-ed25519 9/4Prw moIGBpA5A/k4RqRFbiESz4LjB57/e7CV4Usp0kJ+o1Q
|
-> ssh-ed25519 9/4Prw 2DjSz7Ru2tumUElTTUrSNvn/2lI2FHqxJGQxtHWm1Uo
|
||||||
MCDzUd0ZM8jEFPkcHaYXcCBeJT7L6vkqfSlpZQ/sG5o
|
eskqbsOKIvCN3MN9UdnHGanuaeyUq0QDCpGwvQCgEZY
|
||||||
-> ssh-ed25519 gAk3+Q DkXPTEBi/E6aZkDQeeXPMs/rhg+ZyipHQ5PfbrutMSk
|
-> ssh-ed25519 gAk3+Q k/zwRJdqFFX3Gw9ugzMwQs3xAUNXW1U7++ZmM6b5REo
|
||||||
lOlrZmHIgLzUkMUYjWwVs7c3oR3xA3PEevT41nXkKcs
|
phvcMtMn6ZzNP3iiYk+6ieldCocyQOwZuCDpbkSrCfY
|
||||||
-> ssh-ed25519 X6eGtQ FnKi617TVTcL4xNmWCiYdFZXqN46WaoGS9XUsR4cvSY
|
-> ssh-ed25519 X6eGtQ iiL4I6hUB216R0Y5VDYP7n2HUKuzKeI8mrucS13KrEY
|
||||||
STQh6M7mB15fSvndYx7wei1M/NLuKx7P1IGfjfzW+VY
|
EATXWtP4ud48c67Yqlnku7rQuPWwLDgZgm74qb5xPkM
|
||||||
-> ssh-ed25519 0ma8Cw jNGzFMl5ln7nhFcmZkzLcMDlCliMTP0d9FI0pA0PaDQ
|
-> ssh-ed25519 0ma8Cw LXIptUgKGFge1/0HkhO7GzpQ2gPLfoXYT6/MVy7MQkk
|
||||||
sgMfIzoC4fi2aMvtvxNpifw2pXeJJtB/rI1Js8qZmlM
|
/9vnArtXwUn+Rfvqkkr4mF2W49Ib2bg7IaO0uYZ3gS4
|
||||||
-> ssh-ed25519 Tp0Z1Q 4H03FYzl4l7Qy96uo+WxUcpQiWWXdEPva8nPcIPg71w
|
-> ssh-ed25519 Tp0Z1Q gNgiB2x9tJoYKMjMpNzFX//mXw0sqsHT5kz8glkqFSU
|
||||||
pza0c3a9aTnXFs/MT3wkORn6WUKQmxW/xqAaorZHmSA
|
eMCkMvxu3+iG2crFVTRhIYriE59e+7MOG+XqGvaI98g
|
||||||
--- qteXhOgvLyIakAwNEcpK5Mtk0aERS+2hNZFT+bmE/HU
|
-> ssh-ed25519 ePNWZQ Yy31Jpq6iaFNpYroZ6TSOoFb97mjdFEU6DLSXYGGzAk
|
||||||
<EFBFBD>Z<EFBFBD><EFBFBD>iCG(k<><6B>fa<66>?<3F><><EFBFBD>k<02><><EFBFBD><EFBFBD><EFBFBD>}<0F><15><>
|
ziEjNmmxJvnMArMv4IpYZsFw5EUlYjWmyIacg0ZteUM
|
||||||
|
-> ssh-ed25519 hILzzA WYDwAiiWTQ/ndPHn6QxegQd44wtri95WPRaBNcE6FHU
|
||||||
|
uobdKonM7HWdmB/6ioVdeNbSWkggadyxnUrOqfPudl8
|
||||||
|
--- DMm8ucNtn0OHpK7LeoZ3ut79VFGUID/YJr+LRgzzsWM
|
||||||
|
K<EFBFBD><EFBFBD>v<>g<EFBFBD>X1<58>k<EFBFBD><1C>j"<04>눃<EFBFBD>Wf<57><66><EFBFBD>k<>ۋ<EFBFBD>%HxXL<58>
|
||||||
|
<EFBFBD><EFBFBD><EFBFBD>OU0l_<EFBFBD>m<EFBFBD>V<EFBFBD><EFBFBD>Ѐ
|
||||||
52
nixos/secrets/org-api-passwords.age
Normal file
52
nixos/secrets/org-api-passwords.age
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
age-encryption.org/v1
|
||||||
|
-> ssh-ed25519 ZgrTqA uxy91e5hpUs8IsoU5rvCKy+PF+Gltkwb+xW8vSRk4kA
|
||||||
|
74MDGFYuPKnbppuiTwcGepn6oE8c8Ay0UoQiXF7XN+Y
|
||||||
|
-> ssh-ed25519 ZaBdSg xwv1yT/D48uSj5QjR5byLkrxJZHzvGHoBneR5aa1WyU
|
||||||
|
o4Wp0ZSNHVsAVYHob55ixrmQmKLj1PQ+WZQrzxLPvUE
|
||||||
|
-> ssh-ed25519 MHZylw gQERoFSnaGkSfvJ5Qr0qDLQmeJ8NVNhwkqNwPKy6wRc
|
||||||
|
B/jiN2RrcxKKaqh7pCQjdAZia2YATu4UbSrBTdQD8ss
|
||||||
|
-> ssh-ed25519 sIUg6g rfit9bzDAhkcq8jrjPJsvGKB+aNp5riplIZwUhovvyc
|
||||||
|
srC28ARGEoJvGtAYFbxKKmkbrD58A8DPPiWHujeKPOw
|
||||||
|
-> ssh-ed25519 TnanwQ Y9X19uyHyVD0egVZHHisXWkKRoFb8ksa0eJDpuirUi4
|
||||||
|
TZuL4SG9L8xhl87AHiGOOL0aWNTj7HDmIYoucPR41TM
|
||||||
|
-> ssh-rsa gwJx0Q
|
||||||
|
H/flkxw6yooU72jt/bDyBWTP6Z04nfgFPLk/05Cdtxijt0eFzx9B8okOHlzpm9qj
|
||||||
|
MbPieJm5TLb0RUq/cI7U4lW2+n7cbz2Kvsq3SVjTaMTNG9tDM6EOUhzmQQX80mJB
|
||||||
|
rJpzh6jJ9FmvM1bRW8TKCopZHRvZw7Pi4yRrs6OlsDYqiIUWfiLuQ/VcoQy/n7Gy
|
||||||
|
Z4wTr0dp2taHuC2vT3bRqBIwI0wft+zCw27foi4YYcGalM/0zDEtRLVcBnSrpaLF
|
||||||
|
/UdLBbrREhhgsiBu2HiBOz19qgI6zNAeXRDDKOwGNqjkV/Z3SgJxbWjiPhKF9xqC
|
||||||
|
lHTvvEOcOC7MxgRgw5td2g
|
||||||
|
-> ssh-ed25519 YFIoHA SQF11EBeCfix6HiSR6r/MxJmtsLDsvVlEWnVSmSH0V0
|
||||||
|
eHIAIKcAFVhoWQc9sI0tqkmK3Rk1rhd4uXA/0p2VDnc
|
||||||
|
-> ssh-ed25519 KQfiow hBQhdWrjl8TW+yzkfx5f3M6A8+xyI1vqTwAA0vDMjFg
|
||||||
|
3cjFwVmxeng/A2u9lGUt0XPFimThxjhgZvSTgVNdrFE
|
||||||
|
-> ssh-ed25519 kScIxg 4q0rnfUJQq1fnXzTvpiLvY7ODCXSYPMvoc51FOfY3VM
|
||||||
|
JnQ1I49zK3UXzeLieN83jZsF4goaq5QkSZUzOgV64Uw
|
||||||
|
-> ssh-ed25519 HzX1zw 2p9iqLRzEzcHtZ5eqBohMOzRvYqul4u2RHmdYxQUCxk
|
||||||
|
RRPAOrQ2keAOeDG75ySSe6s2lfUJ0bfepZ0uLCTdLH8
|
||||||
|
-> ssh-ed25519 KQfiow nUKl6ZvPkS164fXz7RE0GBfvMRdif9mtGWPB+UQgYDk
|
||||||
|
rWHR6NpUGWhov54X5VJf4f8Ga6NTaRNUcCvRb++Cqu0
|
||||||
|
-> ssh-ed25519 1o2X0w oM34g4ZL0UkWaAEs0rzYb81qBvX2H4Q18T6ZS8Zm5xo
|
||||||
|
zTpflvpGbekX+luNFxRthC9b1l0cy3rltYzKHGExh1M
|
||||||
|
-> ssh-ed25519 KQ5iUA wBql7MK1jkIzF6lRiYUJMjVrILlQvxKj5S7yAVVSYik
|
||||||
|
uddojR1rM18WtPYJpe21QcBh00QCF5dRKlAPYfLDPdU
|
||||||
|
-> ssh-ed25519 AKGkDw aQrsVqIn43+zvXrpoGjtI++wZdYGyaCjDKc+V7HuyEA
|
||||||
|
YPXxC6Q63aJ/9rn1bkwcWNN4RQcwJrCqsVXLY2aKTxw
|
||||||
|
-> ssh-ed25519 0eS5+A vhguy6Rm7fixu0zY5zw371ZXBTc/hg2D69k3qUt1Wj0
|
||||||
|
eC0/4SSjdUSqalC2RDLhl+KhlIqwbeIohRclJ8zFXvk
|
||||||
|
-> ssh-ed25519 9/4Prw lvH70wMeiNfbgRkpsYHCxfR8tuP+zx6Qi3WoUQsNsEE
|
||||||
|
maXo8zvQCwy1ppTgdJcN/B4Ox9d04QBaxkQ9h8Ji9Hk
|
||||||
|
-> ssh-ed25519 gAk3+Q EgQVW7fd4PQgfwy243ai7v4L2ud+7RBwpmlxqUCxKlM
|
||||||
|
FA4IWAYcOScCi4q84p9GmVS/qDnrxk6E4Ul32pZxt2Q
|
||||||
|
-> ssh-ed25519 X6eGtQ ESSnvFVceNeVrV2xBrzMHvOeQjjqjvgUfKozGEB29Sw
|
||||||
|
Qa/2/AM5NiPdSBmWasGUCtTqah39/j8BPtjr5rMJ4WM
|
||||||
|
-> ssh-ed25519 0ma8Cw w4CgZu+CZDOT7LLScIVCSuaxguACOIGP07A3/0fY4zs
|
||||||
|
QQ8XCKyySoVSAYR6FemI56D7gCxXZTQehSyG0Z3dmgg
|
||||||
|
-> ssh-ed25519 Tp0Z1Q fY17H92mll9t3WZXKng3nvUpHUD1uyp02E2j6XN8f1I
|
||||||
|
CTAsN/AZqNTg/2CRUeZD6ayzGdk+WLx/90I9ScmMbxk
|
||||||
|
-> ssh-ed25519 ePNWZQ EYE96SFb6UMUcVL+gEGPyqohHeE/UJ1v/9zEP3II+mU
|
||||||
|
Rmm5Udk0l/Ypj58OteLGEv7YHsfeerKH6Qid+9TD/SA
|
||||||
|
-> ssh-ed25519 hILzzA EkTAGo3S8QM8nGn0SqxThD6Qwi/hVVhy558alsiFHkI
|
||||||
|
ns6NAZwrZVcwRKlli4aWyvusI568nyJFsEQ3zFlE364
|
||||||
|
--- FrUd5euhHy668xPRzKhgpPz/KtsbIApHy9jAPwWYNi8
|
||||||
|
<EFBFBD>䳥<EFBFBD>o<EFBFBD><EFBFBD>o{<7B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0$J<><4A><0F>c<EFBFBD><63><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>!<1C>zܓv2{><01>J<EFBFBD><4A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>&<26>q<EFBFBD><71>a<EFBFBD>>"<22>!l%<18>Vܴ<>w<EFBFBD><14><>$<24><><EFBFBD>
|
||||||
Binary file not shown.
@@ -11,7 +11,16 @@ in
|
|||||||
"gitea-runner-token.adele.age".publicKeys = keys.agenixKeys;
|
"gitea-runner-token.adele.age".publicKeys = keys.agenixKeys;
|
||||||
"gitea-runner-token.railbird-sf.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf;
|
"gitea-runner-token.railbird-sf.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf;
|
||||||
"gitea-runner-token.mac-demarco-mini.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf;
|
"gitea-runner-token.mac-demarco-mini.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf;
|
||||||
|
"gitea-runner-token.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf;
|
||||||
"nextcloud-admin.age".publicKeys = keys.agenixKeys;
|
"nextcloud-admin.age".publicKeys = keys.agenixKeys;
|
||||||
"ryzen-shine-kubernetes-token.age".publicKeys = keys.agenixKeys;
|
"ryzen-shine-kubernetes-token.age".publicKeys = keys.agenixKeys;
|
||||||
|
"1896Folsom-k3s-token.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf;
|
||||||
"api_service_account_key.json.age".publicKeys = keys.agenixKeys;
|
"api_service_account_key.json.age".publicKeys = keys.agenixKeys;
|
||||||
|
"k3s-registry.yaml.age".publicKeys = keys.agenixKeys ++ keys.railbird-sf;
|
||||||
|
"discourse-admin-password.age".publicKeys = keys.hostKeys;
|
||||||
|
"discourse-secret-key-base.age".publicKeys = keys.hostKeys;
|
||||||
|
"vaultwarden-environment-file.age".publicKeys = keys.hostKeys;
|
||||||
|
"org-api-passwords.age".publicKeys = keys.hostKeys ++ keys.kanivanKeys;
|
||||||
|
"google-assistant-integration-service-key.age".publicKeys = keys.hostKeys ++ keys.kanivanKeys;
|
||||||
|
"zwave-js.json.age".publicKeys = keys.hostKeys ++ keys.kanivanKeys;
|
||||||
}
|
}
|
||||||
|
|||||||
BIN
nixos/secrets/vaultwarden-environment-file.age
Normal file
BIN
nixos/secrets/vaultwarden-environment-file.age
Normal file
Binary file not shown.
BIN
nixos/secrets/zwave-js.json.age
Normal file
BIN
nixos/secrets/zwave-js.json.age
Normal file
Binary file not shown.
@@ -1,9 +1,11 @@
|
|||||||
{ config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
security.pam.sshAgentAuth.enable = true;
|
# TODO: reenable
|
||||||
|
# security.pam.sshAgentAuth.enable = true;
|
||||||
services.avahi = {
|
services.avahi = {
|
||||||
enable = true;
|
enable = true;
|
||||||
nssmdns4 = true;
|
nssmdns4 = true;
|
||||||
|
nssmdns6 = true;
|
||||||
publish = {
|
publish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
domain = true;
|
domain = true;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user