Compare commits

...

831 commits

Author SHA1 Message Date
5fea400025 temp: use personal frc-nix fork 2025-03-31 13:42:56 -07:00
21493a346a flake: update
Flake lock file updates:

• Updated input 'chaotic':

'github:chaotic-cx/nyx/ef953b78549dc877d958d002a8661cbb65e87a1f?narHash=sha256-c1mq2EwulIoLng2oww3IozEGTarxuCBRJ5w5KIS0Mf4%3D'
(2025-03-25)
  →
'github:chaotic-cx/nyx/11b6b9c33439d9058dcca1390b6aa1863c4adf32?narHash=sha256-GspTb%2BbZwNJASxaP3jo5uoj1PWf1QLEXuRbdkw/2ltw%3D'
(2025-03-31)
• Updated input 'chaotic/home-manager':

'github:nix-community/home-manager/869f2ec2add75ce2a70a6dbbf585b8399abec625?narHash=sha256-F3xBdOs5m0SE6Gq3jz%2BJxDOPvsLs22vbGfD05uF6xEc%3D'
(2025-03-25)
  →
'github:nix-community/home-manager/216690777e47aa0fb1475e4dbe2510554ce0bc4b?narHash=sha256-pGKDA84oK1WTt2yxBUjAwKLacNwJkf9CS7cTXXfgWvI%3D'
(2025-03-31)
• Updated input 'chaotic/jovian':

'github:Jovian-Experiments/Jovian-NixOS/a95606cae5c9e1f5b84debe7865ef171d4deb287?narHash=sha256-gpjtkoeq5Ye9J8GoR%2BrWg3NL4bbEtcLvvF4nN6MtxdU%3D'
(2025-03-20)
  →
'github:Jovian-Experiments/Jovian-NixOS/1c17514c8558886af0afc34b6c348c1f2ee9fd24?narHash=sha256-QlEk4Xm5KG0jW5Kus9teY3bhxdf0GUTexxTUCaJM5ms%3D'
(2025-03-28)
• Updated input 'chaotic/nixpkgs':

'github:NixOS/nixpkgs/1e5b653dff12029333a6546c11e108ede13052eb?narHash=sha256-G5n%2BFOXLXcRx%2B3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w%3D'
(2025-03-22)
  →
'github:NixOS/nixpkgs/52faf482a3889b7619003c0daec593a1912fddc1?narHash=sha256-6hl6L/tRnwubHcA4pfUUtk542wn2Om%2BD4UnDhlDW9BE%3D'
(2025-03-30)
• Updated input 'frc-nix':

'github:frc4451/frc-nix/8b9e51813e12e4ebad292b81b8a3bef35dde3cc1?narHash=sha256-4CX3WiLDAqECku4Ye7x3vElS96rGO4tqElYUJl%2BxEz8%3D'
(2025-03-19)
  →
'github:frc4451/frc-nix/008ca56428e41605496cfcd53bb8f73664344d3d?narHash=sha256-PfRrqfMDh9fsnc8B7STB%2BtiIy1PqMKeMKqbYC5NudFs%3D'
(2025-03-31)
• Updated input 'home-manager':

'github:nix-community/home-manager/ce287a5cd3ef78203bc78021447f937a988d9f6f?narHash=sha256-gwW0tBIA77g6qq45y220drTy0DmThF3fJMwVFUtYV9c%3D'
(2025-03-26)
  →
'github:nix-community/home-manager/ccd7df836e1f42ea84806760f25b77b586370259?narHash=sha256-ZZDN%2B0v1r4I1xkQWlt8euOJv5S4EvElUCZMrDjTCEsY%3D'
(2025-03-31)
• Updated input 'hyprland':

'github:hyprwm/Hyprland/3fc3521a97eba0fa67da80f17ae7872b1073f08d?narHash=sha256-gNprNetigjuKqlV0EaoEN/XHNhfGM1tRmYO88Ov77vg%3D'
(2025-03-26)
  →
'github:hyprwm/Hyprland/4c987b20e28362410d0c9f9a37bafd6f128b0a2c?narHash=sha256-EEUFIq/btzh8RZ/dv69PXvC5c7ythmCYlDOzH7vriAk%3D'
(2025-03-31)
• Updated input 'hyprland-plugins':

'github:hyprwm/hyprland-plugins/1f332c09a2382cb23da0f69a6f504f8b33433831?narHash=sha256-lbdHyp2%2BNoyciCJBtBt3Cgm2dDvoHvTdCRMbmwJoUmk%3D'
(2025-03-25)
  →
'github:hyprwm/hyprland-plugins/6dca4ece21864e329394b81cfc767778089097e2?narHash=sha256-G6a7R/gb1xH0yI2uevTmDpxZf6rvMh1lOu0gYrqVu5U%3D'
(2025-03-30)
• Updated input 'neovim-overlay':

'github:nix-community/neovim-nightly-overlay/8c4d5795d13829d9a9a269e02ee2d0036bc2f05c?narHash=sha256-3tX7EDFhwAM6ppWQ1vLWTWYYjoq5z53ldbPr0xPGzr4%3D'
(2025-03-26)
  →
'github:nix-community/neovim-nightly-overlay/4be99133c03920579de8c3fe7c05ff1de60a7fbe?narHash=sha256-gJeoWpWv14MnLoiERpVhHWSDzujvg9UM2BvR7BZe6AI%3D'
(2025-03-31)
• Updated input 'neovim-overlay/neovim-src':

'github:neovim/neovim/6b00c9acfde954a3e992a2932eca9fa5902a1298?narHash=sha256-/UgJvBhMp/1qMtof3y3czSLB91KrN5W3E4e/tqT1dPg%3D'
(2025-03-25)
  →
'github:neovim/neovim/ee143aaf65a0e662c42c636aa4a959682858b3e7?narHash=sha256-CRORP8EaJ/Ajdx6WbUSjt9X4zNToyDLkzWz6VIthsaA%3D'
(2025-03-30)
• Updated input 'neovim-overlay/treefmt-nix':

'github:numtide/treefmt-nix/adc195eef5da3606891cedf80c0d9ce2d3190808?narHash=sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU%3D'
(2025-03-19)
  →
'github:numtide/treefmt-nix/29a3d7b768c70addce17af0869f6e2bd8f5be4b7?narHash=sha256-WRAylyYptt6OX5eCEBWyTwOEqEtD6zt33rlUkr6u3cE%3D'
(2025-03-27)
• Updated input 'niri':

'github:sodiboo/niri-flake/41db28938147dfa2a2d528f24b59b6962b96f0c5?narHash=sha256-ZJBJzpWQcZYuxiX7YbLCaiZl1aOt8xQphXt0ZO0st%2B8%3D'
(2025-03-26)
  →
'github:sodiboo/niri-flake/22b0f8584e754448911fb50dd028af91ba9f579d?narHash=sha256-u2PqVBoECxAsnY%2B1yy9DwWetuYyT7uw1FkSpGgh1mBI%3D'
(2025-03-30)
• Updated input 'niri/niri-unstable':

'github:YaLTeR/niri/4534d3726676a403eb3dd19d28371bd8acd98401?narHash=sha256-3Xy1mlAUcYSQSpt0Q/flA%2Bo6Y1ZACDW52vVP2CX52w8%3D'
(2025-03-25)
  →
'github:YaLTeR/niri/b2c34e7fe94a12a65083ac73759672427ea2ccbf?narHash=sha256-AtizkeSqu7AeMe/JjN8CjENfTKgMGifDW0U2z%2BS0ygA%3D'
(2025-03-29)
• Updated input 'niri/nixpkgs-stable':

'github:NixOS/nixpkgs/f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092?narHash=sha256-rBfc%2BH1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE%3D'
(2025-03-23)
  →
'github:NixOS/nixpkgs/c570c1f5304493cafe133b8d843c7c1c4a10d3a6?narHash=sha256-tpJsHMUPEhEnzySoQxx7%2BkA%2BKUtgWqvlcUBqROYNNt0%3D'
(2025-03-29)
• Updated input 'niri/xwayland-satellite-unstable':

'github:Supreeeme/xwayland-satellite/b2613aec05f9e3f8488ef924203d62cafb712642?narHash=sha256-YhJex62HHVF6EfdGLIC01uM6jH8XJu5ryZ%2BLlhG7wMs%3D'
(2025-03-23)
  →
'github:Supreeeme/xwayland-satellite/45c055696437a08e3989d9b91d9c617b84cc2bc3?narHash=sha256-i7rWd/5BcqLgQEtB5L/6gKN5R5GUJcmm34F%2BiBivH60%3D'
(2025-03-30)
• Updated input 'nix-darwin':

'github:LnL7/nix-darwin/bb81755a3674951724d79b8cba6bbff01409d44d?narHash=sha256-rgwUZJZVztaNYPTsf6MIqirPL5r2JTMMyHuzk1ezyYk%3D'
(2025-03-25)
  →
'github:LnL7/nix-darwin/eaff8219d629bb86e71e3274e1b7915014e7fb22?narHash=sha256-QtVfBQe5VBnRPP5ustegPlsTdV/SZzt8akOIN5Hlwjk%3D'
(2025-03-30)
• Updated input 'nix-gaming':

'github:fufexan/nix-gaming/0fcdd01dc26ba63be2a1464b51410c5653810888?narHash=sha256-D8yfb9lOmTpXTZDYLTNY/%2BqgkhEtipJuguvBl62B%2Brg%3D'
(2025-03-25)
  →
'github:fufexan/nix-gaming/2ab0a37308559926bddb0009dfcf16a2a5b34e2b?narHash=sha256-vFuxkHPd%2BXpi5Bx1VCyZwYl/BbF83C%2BKmlbPBNVJvNU%3D'
(2025-03-30)
• Updated input 'nix-gaming/nixpkgs':

'github:NixOS/nixpkgs/94c4dbe77c0740ebba36c173672ca15a7926c993?narHash=sha256-GiQ40ndXRnmmbDZvuv762vS%2Bgew1uDpFwOfgJ8tLiEs%3D'
(2025-03-21)
  →
'github:NixOS/nixpkgs/6c5963357f3c1c840201eda129a99d455074db04?narHash=sha256-yQugdVfi316qUfqzN8JMaA2vixl%2B45GxNm4oUfXlbgw%3D'
(2025-03-27)
• Updated input 'nixpkgs':

'github:nixos/nixpkgs/1e5b653dff12029333a6546c11e108ede13052eb?narHash=sha256-G5n%2BFOXLXcRx%2B3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w%3D'
(2025-03-22)
  →
'github:nixos/nixpkgs/52faf482a3889b7619003c0daec593a1912fddc1?narHash=sha256-6hl6L/tRnwubHcA4pfUUtk542wn2Om%2BD4UnDhlDW9BE%3D'
(2025-03-30)
• Updated input 'sops-nix':

'github:mic92/sops-nix/67566fe68a8bed2a7b1175fdfb0697ed22ae8852?narHash=sha256-ZGlpUDsuBdeZeTNgoMv%2Baw0ByXT2J3wkYw9kJwkAS4M%3D'
(2025-03-23)
  →
'github:mic92/sops-nix/8e873886bbfc32163fe027b8676c75637b7da114?narHash=sha256-Ux/UohNtnM5mn9SFjaHp6IZe2aAnUCzklMluNtV6zFo%3D'
(2025-03-30)
• Updated input 'split-monitor-workspaces':

'github:Duckonaut/split-monitor-workspaces/71a0b6855f70a14561fc709504b693ab663903ec?narHash=sha256-mWhCgc1NWeOUS9me9u6NXJPEuMjPB9/K1Nw4grm9mvM%3D'
(2025-03-23)
  →
'github:Duckonaut/split-monitor-workspaces/a8e39ff10dfb5ff451416a791a30388a8517e038?narHash=sha256-za6nKSilGOUpTDLho1LK8elyImLNNIUGixDLW/n6f84%3D'
(2025-03-29)
2025-03-31 13:06:01 -07:00
84ad7020b7 hyprland: :| 2025-03-29 23:18:10 -07:00
4d1a534055 snowhawk: libvirtd and qemu stuff 2025-03-28 06:38:43 -07:00
dd4dc5eadf pipewire-controller: hyprland support 2025-03-27 22:31:14 -07:00
72b5ec72f2 llynx: remove jdt-language-server 2025-03-27 22:29:37 -07:00
a4115f7023 flake.lock: Update
Flake lock file updates:

• Updated input 'chaotic':
    'github:chaotic-cx/nyx/b52966b10d66fefbc1d84acc1a9d5dd3bcee1903?narHash=sha256-xAenHUdpzRTI1omraT9FCZQV7zjxm6qSKNlb%2Bt%2Bvqn8%3D' (2025-03-21)
  → 'github:chaotic-cx/nyx/ef953b78549dc877d958d002a8661cbb65e87a1f?narHash=sha256-c1mq2EwulIoLng2oww3IozEGTarxuCBRJ5w5KIS0Mf4%3D' (2025-03-25)
• Updated input 'chaotic/fenix':
    'github:nix-community/fenix/193dcb4e6edb3ba927f4d88b8b1fe65b9e5368c3?narHash=sha256-K/gD8271/eRjwks4EX1fLHCjb4UzdUqDCGdwNh4TwIw%3D' (2025-03-18)
  → 'github:nix-community/fenix/7d9ba794daf5e8cc7ee728859bc688d8e26d5f06?narHash=sha256-sVuLDQ2UIWfXUBbctzrZrXM2X05YjX08K7XHMztt36E%3D' (2025-03-20)
• Updated input 'chaotic/fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/31e412c290f6ff6de4548e94e187477f072b179e?narHash=sha256-3jVOcCZgXBvQ2HsjgHXmZow9/3d1K4oRwVyvhYfnvyg%3D' (2025-03-17)
  → 'github:rust-lang/rust-analyzer/15d87419f1a123d8f888d608129c3ce3ff8f13d4?narHash=sha256-gCpvEQOrugHWLimD1wTFOJHagnSEP6VYBDspq96Idu0%3D' (2025-03-18)
• Updated input 'chaotic/home-manager':
    'github:nix-community/home-manager/22a36aa709de7dd42b562a433b9cefecf104a6ee?narHash=sha256-Tumt3tcMXJniSh7tw2gW%2BWAnVLeB3WWm%2BE%2ByYFnLBXo%3D' (2025-03-18)
  → 'github:nix-community/home-manager/869f2ec2add75ce2a70a6dbbf585b8399abec625?narHash=sha256-F3xBdOs5m0SE6Gq3jz%2BJxDOPvsLs22vbGfD05uF6xEc%3D' (2025-03-25)
• Updated input 'chaotic/jovian':
    'github:Jovian-Experiments/Jovian-NixOS/fd69a59cfab06fe8ac0695377e10573e91b6a3ff?narHash=sha256-ZShdL237Hz%2BSog0mzfsCui%2Bkyj%2BXd2ka91Dilxlz9j4%3D' (2025-03-18)
  → 'github:Jovian-Experiments/Jovian-NixOS/a95606cae5c9e1f5b84debe7865ef171d4deb287?narHash=sha256-gpjtkoeq5Ye9J8GoR%2BrWg3NL4bbEtcLvvF4nN6MtxdU%3D' (2025-03-20)
• Updated input 'chaotic/nixpkgs':
    'github:NixOS/nixpkgs/a84ebe20c6bc2ecbcfb000a50776219f48d134cc?narHash=sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ%3D' (2025-03-19)
  → 'github:NixOS/nixpkgs/1e5b653dff12029333a6546c11e108ede13052eb?narHash=sha256-G5n%2BFOXLXcRx%2B3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w%3D' (2025-03-22)
• Updated input 'home-manager':
    'github:nix-community/home-manager/d61711497be9ad6a6633aaf203b038b5a970621f?narHash=sha256-yjBjRn294NpPagPAQCio20X5BzBXiOoz2%2BxF3/YmEkU%3D' (2025-03-21)
  → 'github:nix-community/home-manager/ce287a5cd3ef78203bc78021447f937a988d9f6f?narHash=sha256-gwW0tBIA77g6qq45y220drTy0DmThF3fJMwVFUtYV9c%3D' (2025-03-26)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/7ea4fbf0ba034d947339b3a94a10da022eca1988?narHash=sha256-3CBAs8OF0etCIaa4p%2BVyuXfLrL1cvD5E3Dmigqg2YOo%3D' (2025-03-20)
  → 'github:hyprwm/Hyprland/3fc3521a97eba0fa67da80f17ae7872b1073f08d?narHash=sha256-gNprNetigjuKqlV0EaoEN/XHNhfGM1tRmYO88Ov77vg%3D' (2025-03-26)
• Updated input 'hyprland/nixpkgs':
    'github:NixOS/nixpkgs/c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5?narHash=sha256-C7jVfohcGzdZRF6DO%2BybyG/sqpo1h6bZi9T56sxLy%2Bk%3D' (2025-03-15)
  → 'github:NixOS/nixpkgs/1e5b653dff12029333a6546c11e108ede13052eb?narHash=sha256-G5n%2BFOXLXcRx%2B3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w%3D' (2025-03-22)
• Updated input 'hyprland/pre-commit-hooks':
    'github:cachix/git-hooks.nix/59f17850021620cd348ad2e9c0c64f4e6325ce2a?narHash=sha256-b4SZc6TkKw8WQQssbN5O2DaCEzmFfvSTPYHlx/SFW9Y%3D' (2025-03-15)
  → 'github:cachix/git-hooks.nix/dcf5072734cb576d2b0c59b2ac44f5050b5eac82?narHash=sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco%3D' (2025-03-22)
• Updated input 'hyprland-plugins':
    'github:hyprwm/hyprland-plugins/4e85fb4fbfc0ffa4b29c61ecd19cfde93ecebaed?narHash=sha256-18VcHcqkRBsJjBU6173BK%2BYVytXrS8kzKXY08auQq8Y%3D' (2025-03-18)
  → 'github:hyprwm/hyprland-plugins/1f332c09a2382cb23da0f69a6f504f8b33433831?narHash=sha256-lbdHyp2%2BNoyciCJBtBt3Cgm2dDvoHvTdCRMbmwJoUmk%3D' (2025-03-25)
• Updated input 'neovim-overlay':
    'github:nix-community/neovim-nightly-overlay/e20681475b223c163d83c811a7fc4edf28b32c98?narHash=sha256-1CQvUAtfVQtbn2n3UhxeEz9WF0WPc/bhMQknDPgpySM%3D' (2025-03-21)
  → 'github:nix-community/neovim-nightly-overlay/8c4d5795d13829d9a9a269e02ee2d0036bc2f05c?narHash=sha256-3tX7EDFhwAM6ppWQ1vLWTWYYjoq5z53ldbPr0xPGzr4%3D' (2025-03-26)
• Updated input 'neovim-overlay/git-hooks':
    'github:cachix/git-hooks.nix/ea26a82dda75bee6783baca6894040c8e6599728?narHash=sha256-QmF0proyjXI9YyZO9GZmc7/uEu5KVwCtcdLsKSoxPAI%3D' (2025-03-18)
  → 'github:cachix/git-hooks.nix/dcf5072734cb576d2b0c59b2ac44f5050b5eac82?narHash=sha256-DwOTp7nvfi8mRfuL1escHDXabVXFGT1VlPD1JHrtrco%3D' (2025-03-22)
• Updated input 'neovim-overlay/neovim-src':
    'github:neovim/neovim/175c09bd660d0cea62288e74cea925a9b15bee55?narHash=sha256-MLlU8s/lVKHfYcl9g8Q4nOl3BVWc627fVII58qtL9d8%3D' (2025-03-19)
  → 'github:neovim/neovim/6b00c9acfde954a3e992a2932eca9fa5902a1298?narHash=sha256-/UgJvBhMp/1qMtof3y3czSLB91KrN5W3E4e/tqT1dPg%3D' (2025-03-25)
• Updated input 'nh':
    'github:viperML/nh/509dd6c96eefa11e7324f475a86ff4ea447987b7?narHash=sha256-ahECQuhpwRKp0TcBsE1rsHlm6t%2BmUllMojORXmgBcC4%3D' (2025-03-07)
  → 'github:viperML/nh/7bd0d00a3f1aab85a7e29d34b4f1f6744263e6c3?narHash=sha256-Qe/XUKvcaNdQflvhQQSX1PV5SjNx/RCBBDHxbWxE2xI%3D' (2025-03-25)
• Updated input 'niri':
    'github:sodiboo/niri-flake/c58fb73cc63ec947b2d59f7e17ccf4b0ecfe402b?narHash=sha256-k13HOpzegkOiHUCv5jVpnrlnyXioPLI5NXyAE8naN3I%3D' (2025-03-21)
  → 'github:sodiboo/niri-flake/41db28938147dfa2a2d528f24b59b6962b96f0c5?narHash=sha256-ZJBJzpWQcZYuxiX7YbLCaiZl1aOt8xQphXt0ZO0st%2B8%3D' (2025-03-26)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/e251ca7340bc71870c3a81a7ffc3d9bde58e685a?narHash=sha256-muceB5DW%2B%2BWPqrGKpX3Hkii/DNSMmFs2oQrYRYHmPiU%3D' (2025-03-18)
  → 'github:YaLTeR/niri/4534d3726676a403eb3dd19d28371bd8acd98401?narHash=sha256-3Xy1mlAUcYSQSpt0Q/flA%2Bo6Y1ZACDW52vVP2CX52w8%3D' (2025-03-25)
• Updated input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/b75693fb46bfaf09e662d09ec076c5a162efa9f6?narHash=sha256-GheQGRNYAhHsvPxWVOhAmg9lZKkis22UPbEHlmZMthg%3D' (2025-03-19)
  → 'github:NixOS/nixpkgs/f0946fa5f1fb876a9dc2e1850d9d3a4e3f914092?narHash=sha256-rBfc%2BH1dDBUQ2mgVITMGBPI1PGuCznf9rcWX/XIULyE%3D' (2025-03-23)
• Updated input 'niri/xwayland-satellite-unstable':
    'github:Supreeeme/xwayland-satellite/1d98ee089c8bad414a346028a7a0f539ad7cfb9d?narHash=sha256-xe3tfHp1aisnUVrCbn1axwpeJzcrSOvQNn1bZt6k5DM%3D' (2025-03-20)
  → 'github:Supreeeme/xwayland-satellite/b2613aec05f9e3f8488ef924203d62cafb712642?narHash=sha256-YhJex62HHVF6EfdGLIC01uM6jH8XJu5ryZ%2BLlhG7wMs%3D' (2025-03-23)
• Updated input 'nix-darwin':
    'github:LnL7/nix-darwin/2d9b63316926aa130a5a51136d93b9be28808f26?narHash=sha256-oEF5dBlq8wGD3mkJ5PmFS1PGb28uYmvuy1IH6roIGkQ%3D' (2025-03-19)
  → 'github:LnL7/nix-darwin/bb81755a3674951724d79b8cba6bbff01409d44d?narHash=sha256-rgwUZJZVztaNYPTsf6MIqirPL5r2JTMMyHuzk1ezyYk%3D' (2025-03-25)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/6f0d1034a2ba574c57952d6c29666b0fdfc5693e?narHash=sha256-hMp13ZbQFVzT55LQJrJ9cX%2BT0XLsTf4mTRRIfQAPcrs%3D' (2025-03-21)
  → 'github:fufexan/nix-gaming/0fcdd01dc26ba63be2a1464b51410c5653810888?narHash=sha256-D8yfb9lOmTpXTZDYLTNY/%2BqgkhEtipJuguvBl62B%2Brg%3D' (2025-03-25)
• Updated input 'nix-gaming/nixpkgs':
    'github:NixOS/nixpkgs/573c650e8a14b2faa0041645ab18aed7e60f0c9a?narHash=sha256-4thdbnP6dlbdq%2BqZWTsm4ffAwoS8Tiq1YResB%2BRP6WE%3D' (2025-03-13)
  → 'github:NixOS/nixpkgs/94c4dbe77c0740ebba36c173672ca15a7926c993?narHash=sha256-GiQ40ndXRnmmbDZvuv762vS%2Bgew1uDpFwOfgJ8tLiEs%3D' (2025-03-21)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/a84ebe20c6bc2ecbcfb000a50776219f48d134cc?narHash=sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ%3D' (2025-03-19)
  → 'github:nixos/nixpkgs/1e5b653dff12029333a6546c11e108ede13052eb?narHash=sha256-G5n%2BFOXLXcRx%2B3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w%3D' (2025-03-22)
• Updated input 'sops-nix':
    'github:mic92/sops-nix/1770be8ad89e41f1ed5a60ce628dd10877cb3609?narHash=sha256-r0aq70/3bmfjTP%2BJZs4%2BXV5SgmCtk1BLU4CQPWGtA7o%3D' (2025-03-19)
  → 'github:mic92/sops-nix/67566fe68a8bed2a7b1175fdfb0697ed22ae8852?narHash=sha256-ZGlpUDsuBdeZeTNgoMv%2Baw0ByXT2J3wkYw9kJwkAS4M%3D' (2025-03-23)
• Updated input 'split-monitor-workspaces':
    'github:Duckonaut/split-monitor-workspaces/ab1accb4d2f4c72e63124f40681ad73bb02ac0f4?narHash=sha256-wauFw6BXlcC3wpKVRJ/ok31HkJVIQ5vJWTucA3TRrEU%3D' (2025-03-04)
  → 'github:Duckonaut/split-monitor-workspaces/71a0b6855f70a14561fc709504b693ab663903ec?narHash=sha256-mWhCgc1NWeOUS9me9u6NXJPEuMjPB9/K1Nw4grm9mvM%3D' (2025-03-23)
2025-03-25 23:57:53 -07:00
fdbde9a5ae llynx: enable direnv 2025-03-25 13:01:18 -07:00
893ff55487 llynx: bashmount 2025-03-25 13:01:18 -07:00
92371c86bf llynx: comments 2025-03-25 13:01:18 -07:00
d7e5280f4f llynx: flatpak 2025-03-25 13:01:18 -07:00
c2fe2dbc78 llynx: enable audio module 2025-03-25 13:01:18 -07:00
50d1153f78 theme: unify cursor theme 2025-03-25 13:01:18 -07:00
ba2b3a4fe6 hyprland: numlock by default 2025-03-21 17:52:33 -07:00
158feb5d5a snowhawk: disable dwl spec 2025-03-21 07:37:34 -07:00
94792ab8e0 snowhawk: default hyprland 2025-03-21 07:33:15 -07:00
08b0c85ddf llynx: temp working plymouth 2025-03-21 03:31:57 -07:00
47ce63805f llynx: temporary mesa-asahi fix 2025-03-21 02:10:21 -07:00
bb619f9226 flake.lock: Update
Flake lock file updates:

• Updated input 'chaotic':
    'github:chaotic-cx/nyx/4ab66e175e54084ca831e2eb3e24fbb048f9cff0?narHash=sha256-R4/%2BVr4LpQWHwzZoM0fTyKKC1mGNF/NVHzIe6PqkJsY%3D' (2025-03-02)
  → 'github:chaotic-cx/nyx/b52966b10d66fefbc1d84acc1a9d5dd3bcee1903?narHash=sha256-xAenHUdpzRTI1omraT9FCZQV7zjxm6qSKNlb%2Bt%2Bvqn8%3D' (2025-03-21)
• Updated input 'chaotic/fenix':
    'github:nix-community/fenix/07a730bc80e8a4106df5b2341aa5602a240ee112?narHash=sha256-CkcCb2hGSL1owuZpjuNB6UQzlyaXgvuRXmjY6jLqjPc%3D' (2025-02-26)
  → 'github:nix-community/fenix/193dcb4e6edb3ba927f4d88b8b1fe65b9e5368c3?narHash=sha256-K/gD8271/eRjwks4EX1fLHCjb4UzdUqDCGdwNh4TwIw%3D' (2025-03-18)
• Updated input 'chaotic/fenix/rust-analyzer-src':
    'github:rust-lang/rust-analyzer/89255449982473939a4f8ee954512d339225c182?narHash=sha256-iYjLS4jy/IJScOHZfbQ31vkrS5tl0bjXtzYP4XKA2Pc%3D' (2025-02-25)
  → 'github:rust-lang/rust-analyzer/31e412c290f6ff6de4548e94e187477f072b179e?narHash=sha256-3jVOcCZgXBvQ2HsjgHXmZow9/3d1K4oRwVyvhYfnvyg%3D' (2025-03-17)
• Updated input 'chaotic/home-manager':
    'github:nix-community/home-manager/74f0a8546e3f2458c870cf90fc4b38ac1f498b17?narHash=sha256-Dd/GhJ9qKmUwuhgt/PAROG8J6YdU2ZjtJI9SQX5sVQI%3D' (2025-02-25)
  → 'github:nix-community/home-manager/22a36aa709de7dd42b562a433b9cefecf104a6ee?narHash=sha256-Tumt3tcMXJniSh7tw2gW%2BWAnVLeB3WWm%2BE%2ByYFnLBXo%3D' (2025-03-18)
• Updated input 'chaotic/jovian':
    'github:Jovian-Experiments/Jovian-NixOS/14a125ea5c440c57310dc1bb3acf7641078d783a?narHash=sha256-ujQ/f3mcYECH1o0vzakMLAQRCMeF/SXd8w4uBFHxYO8%3D' (2025-02-26)
  → 'github:Jovian-Experiments/Jovian-NixOS/fd69a59cfab06fe8ac0695377e10573e91b6a3ff?narHash=sha256-ZShdL237Hz%2BSog0mzfsCui%2Bkyj%2BXd2ka91Dilxlz9j4%3D' (2025-03-18)
• Updated input 'chaotic/nixpkgs':
    'github:NixOS/nixpkgs/303bd8071377433a2d8f76e684ec773d70c5b642?narHash=sha256-cjbHI%2BzUzK5CPsQZqMhE3npTyYFt9tJ3%2BohcfaOF/WM%3D' (2025-03-01)
  → 'github:NixOS/nixpkgs/a84ebe20c6bc2ecbcfb000a50776219f48d134cc?narHash=sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ%3D' (2025-03-19)
• Updated input 'frc-nix':
    'github:frc4451/frc-nix/5ce88da5ca15cbce6b11cb7e28ebeea2500356bb?narHash=sha256-62%2B9CQz2aitdzgCuVTA7EUutRlPZV3XPhpEc%2B/7N5lA%3D' (2025-03-09)
  → 'github:frc4451/frc-nix/8b9e51813e12e4ebad292b81b8a3bef35dde3cc1?narHash=sha256-4CX3WiLDAqECku4Ye7x3vElS96rGO4tqElYUJl%2BxEz8%3D' (2025-03-19)
• Updated input 'home-manager':
    'github:nix-community/home-manager/fcac3d6d88302a5e64f6cb8014ac785e08874c8d?narHash=sha256-AXEgFj3C0YJhu9k1OhbRhiA6FnDr81dQZ65U3DhaWpw%3D' (2025-03-01)
  → 'github:nix-community/home-manager/d61711497be9ad6a6633aaf203b038b5a970621f?narHash=sha256-yjBjRn294NpPagPAQCio20X5BzBXiOoz2%2BxF3/YmEkU%3D' (2025-03-21)
• Updated input 'hyprland':
    'github:hyprwm/Hyprland/155eba57d81fa2553f1eda8788bd9d1a16947a43?narHash=sha256-zzRrkGQiVEPGNiU4pYTARzqFwVf3JxXxbz6UcEJkWIc%3D' (2025-03-19)
  → 'github:hyprwm/Hyprland/7ea4fbf0ba034d947339b3a94a10da022eca1988?narHash=sha256-3CBAs8OF0etCIaa4p%2BVyuXfLrL1cvD5E3Dmigqg2YOo%3D' (2025-03-20)
• Updated input 'hyprland/nixpkgs':
    'github:NixOS/nixpkgs/b6eaf97c6960d97350c584de1b6dcff03c9daf42?narHash=sha256-Txwa5uO%2BqpQXrNG4eumPSD%2BhHzzYi/CdaM80M9XRLCo%3D' (2025-03-18)
  → 'github:NixOS/nixpkgs/c80f6a7e10b39afcc1894e02ef785b1ad0b0d7e5?narHash=sha256-C7jVfohcGzdZRF6DO%2BybyG/sqpo1h6bZi9T56sxLy%2Bk%3D' (2025-03-15)
• Updated input 'neovim-overlay':
    'github:nix-community/neovim-nightly-overlay/ee3854351ae89ad79eb148d4253263aeaa936913?narHash=sha256-sdBT6Njf1MDVnb4kLbGhCpXQ2P7E%2B50TRW1mIdujFEE%3D' (2025-03-02)
  → 'github:nix-community/neovim-nightly-overlay/e20681475b223c163d83c811a7fc4edf28b32c98?narHash=sha256-1CQvUAtfVQtbn2n3UhxeEz9WF0WPc/bhMQknDPgpySM%3D' (2025-03-21)
• Updated input 'neovim-overlay/flake-parts':
    'github:hercules-ci/flake-parts/3876f6b87db82f33775b1ef5ea343986105db764?narHash=sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo%3D' (2025-03-01)
  → 'github:hercules-ci/flake-parts/f4330d22f1c5d2ba72d3d22df5597d123fdb60a9?narHash=sha256-%2Bu2UunDA4Cl5Fci3m7S643HzKmIDAe%2BfiXrLqYsR2fs%3D' (2025-03-07)
• Updated input 'neovim-overlay/git-hooks':
    'github:cachix/git-hooks.nix/25d4946dfc2021584f5bde1fbd2aa97353384a95?narHash=sha256-LWDIJvKWMW0tiih1jTcAK0ncTi3S9IF3gOhpCT1ydik%3D' (2025-03-01)
  → 'github:cachix/git-hooks.nix/ea26a82dda75bee6783baca6894040c8e6599728?narHash=sha256-QmF0proyjXI9YyZO9GZmc7/uEu5KVwCtcdLsKSoxPAI%3D' (2025-03-18)
• Updated input 'neovim-overlay/hercules-ci-effects':
    'github:hercules-ci/hercules-ci-effects/06519cec8fb32d219006da6eacd255504a9996af?narHash=sha256-0CjCfbq0yHWexOrpO06e2WU1r5JAqR6ffy1zgM3NksI%3D' (2025-02-15)
  → 'github:hercules-ci/hercules-ci-effects/524637ef84c177661690b924bf64a1ce18072a2c?narHash=sha256-I6fG1zrfdLFcp/imGZElig0BJO3YU0QEXLgvwWoOpJ8%3D' (2025-03-15)
• Updated input 'neovim-overlay/hercules-ci-effects/flake-parts':
    'github:hercules-ci/flake-parts/32ea77a06711b758da0ad9bd6a844c5740a87abd?narHash=sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm%2BzmZ7vxbJdo%3D' (2025-02-01)
  → 'github:hercules-ci/flake-parts/f4330d22f1c5d2ba72d3d22df5597d123fdb60a9?narHash=sha256-%2Bu2UunDA4Cl5Fci3m7S643HzKmIDAe%2BfiXrLqYsR2fs%3D' (2025-03-07)
• Updated input 'neovim-overlay/neovim-src':
    'github:neovim/neovim/13513835798c732554de277229d4c6744df11502?narHash=sha256-nrKnJhmplq4QMcenY/bpD6SHOsiN3VS2toUtsO9NfII%3D' (2025-03-01)
  → 'github:neovim/neovim/175c09bd660d0cea62288e74cea925a9b15bee55?narHash=sha256-MLlU8s/lVKHfYcl9g8Q4nOl3BVWc627fVII58qtL9d8%3D' (2025-03-19)
• Updated input 'neovim-overlay/treefmt-nix':
    'github:numtide/treefmt-nix/3d0579f5cc93436052d94b73925b48973a104204?narHash=sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU%3D' (2025-02-17)
  → 'github:numtide/treefmt-nix/adc195eef5da3606891cedf80c0d9ce2d3190808?narHash=sha256-XRE8hL4vKIQyVMDXykFh4ceo3KSpuJF3ts8GKwh5bIU%3D' (2025-03-19)
• Updated input 'nh':
    'github:viperML/nh/1b25d633376f50139f7b8fe314c8914711d44b42?narHash=sha256-ILEarFQp89V6RWr5GRU/ip9dB1SEqUFQGs1QMPrk9TQ%3D' (2025-02-26)
  → 'github:viperML/nh/509dd6c96eefa11e7324f475a86ff4ea447987b7?narHash=sha256-ahECQuhpwRKp0TcBsE1rsHlm6t%2BmUllMojORXmgBcC4%3D' (2025-03-07)
• Updated input 'niri':
    'github:sodiboo/niri-flake/bae6dca1c27444d3641571fd5ae15181a68ecf8b?narHash=sha256-as%2BEZSE7x2n8WpZW8U23aADY/9ho9niaRDDFmWWuhzY%3D' (2025-03-02)
  → 'github:sodiboo/niri-flake/c58fb73cc63ec947b2d59f7e17ccf4b0ecfe402b?narHash=sha256-k13HOpzegkOiHUCv5jVpnrlnyXioPLI5NXyAE8naN3I%3D' (2025-03-21)
• Updated input 'niri/niri-unstable':
    'github:YaLTeR/niri/9f205d465c46928b95702447194faeb342a57965?narHash=sha256-oDQWpeYkJ2xzGJOCq%2Bm%2BuMp8urW/37B7NbTndYKIME4%3D' (2025-03-02)
  → 'github:YaLTeR/niri/e251ca7340bc71870c3a81a7ffc3d9bde58e685a?narHash=sha256-muceB5DW%2B%2BWPqrGKpX3Hkii/DNSMmFs2oQrYRYHmPiU%3D' (2025-03-18)
• Updated input 'niri/nixpkgs-stable':
    'github:NixOS/nixpkgs/5ef6c425980847c78a80d759abc476e941a9bf42?narHash=sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc%3D' (2025-03-01)
  → 'github:NixOS/nixpkgs/b75693fb46bfaf09e662d09ec076c5a162efa9f6?narHash=sha256-GheQGRNYAhHsvPxWVOhAmg9lZKkis22UPbEHlmZMthg%3D' (2025-03-19)
• Updated input 'niri/xwayland-satellite-unstable':
    'github:Supreeeme/xwayland-satellite/44590a416d4a3e8220e19e29e0b6efe64a80315d?narHash=sha256-/hBM43/Gd0/tW%2BegrhlWgOIISeJxEs2uAOIYVpfDKeU%3D' (2025-02-11)
  → 'github:Supreeeme/xwayland-satellite/1d98ee089c8bad414a346028a7a0f539ad7cfb9d?narHash=sha256-xe3tfHp1aisnUVrCbn1axwpeJzcrSOvQNn1bZt6k5DM%3D' (2025-03-20)
• Updated input 'nix-darwin':
    'github:LnL7/nix-darwin/5d6e0851b60508cffd66b4a6982440a40720338d?narHash=sha256-amZbqP84H/ApugaT%2BTADXTB3NbjkVHI9Vac1saIk0kE%3D' (2025-02-28)
  → 'github:LnL7/nix-darwin/2d9b63316926aa130a5a51136d93b9be28808f26?narHash=sha256-oEF5dBlq8wGD3mkJ5PmFS1PGb28uYmvuy1IH6roIGkQ%3D' (2025-03-19)
• Updated input 'nix-gaming':
    'github:fufexan/nix-gaming/5a240f9176826c61afc664e58e55256428a5be93?narHash=sha256-UVI1Nn5rHFLX5p3Bym/7u%2BLdZEnBr3pclprcUPkslvw%3D' (2025-03-03)
  → 'github:fufexan/nix-gaming/6f0d1034a2ba574c57952d6c29666b0fdfc5693e?narHash=sha256-hMp13ZbQFVzT55LQJrJ9cX%2BT0XLsTf4mTRRIfQAPcrs%3D' (2025-03-21)
• Updated input 'nix-gaming/flake-parts':
    'github:hercules-ci/flake-parts/3876f6b87db82f33775b1ef5ea343986105db764?narHash=sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo%3D' (2025-03-01)
  → 'github:hercules-ci/flake-parts/f4330d22f1c5d2ba72d3d22df5597d123fdb60a9?narHash=sha256-%2Bu2UunDA4Cl5Fci3m7S643HzKmIDAe%2BfiXrLqYsR2fs%3D' (2025-03-07)
• Updated input 'nix-gaming/flake-parts/nixpkgs-lib':
    '6d37022434.tar.gz?narHash=sha256-3wHafybyRfpUCLoE8M%2BuPVZinImg3xX%2BNm6gEfN3G8I%3D' (2025-03-01)
  → 'github:nix-community/nixpkgs.lib/147dee35aab2193b174e4c0868bd80ead5ce755c?narHash=sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk%3D' (2025-03-02)
• Updated input 'nix-gaming/nixpkgs':
    'github:NixOS/nixpkgs/199169a2135e6b864a888e89a2ace345703c025d?narHash=sha256-igS2Z4tVw5W/x3lCZeeadt0vcU9fxtetZ/RyrqsCRQ0%3D' (2025-03-01)
  → 'github:NixOS/nixpkgs/573c650e8a14b2faa0041645ab18aed7e60f0c9a?narHash=sha256-4thdbnP6dlbdq%2BqZWTsm4ffAwoS8Tiq1YResB%2BRP6WE%3D' (2025-03-13)
• Updated input 'nixos-apple-silicon':
    'github:tpwrules/nixos-apple-silicon/3d1c6c27b14c4b8fcbdaec779e715f30cb72ed15?narHash=sha256-%2B%2B0dXoZO9l5oceiGQsJmtUI5WXlPMw6QKjpg7vGPl3w%3D' (2025-02-04)
  → 'github:tpwrules/nixos-apple-silicon/8457960249bcfd34c22838e20eaa7d8261428688?narHash=sha256-l98XVpNXW6hr0AsxCeQZbdf6EGT8OpHdkWBi7sdel4s%3D' (2025-03-16)
• Updated input 'nixos-apple-silicon/nixpkgs':
    'github:nixos/nixpkgs/3a228057f5b619feb3186e986dbe76278d707b6e?narHash=sha256-xvTo0Aw0%2Bveek7hvEVLzErmJyQkEcRk6PSR4zsRQFEc%3D' (2025-02-01)
  → 'github:nixos/nixpkgs/6607cf789e541e7873d40d3a8f7815ea92204f32?narHash=sha256-cPfs8qMccim2RBgtKGF%2Bx9IBCduRvd/N5F4nYpU0TVE%3D' (2025-03-13)
• Updated input 'nixpkgs':
    'github:nixos/nixpkgs/303bd8071377433a2d8f76e684ec773d70c5b642?narHash=sha256-cjbHI%2BzUzK5CPsQZqMhE3npTyYFt9tJ3%2BohcfaOF/WM%3D' (2025-03-01)
  → 'github:nixos/nixpkgs/a84ebe20c6bc2ecbcfb000a50776219f48d134cc?narHash=sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ%3D' (2025-03-19)
• Updated input 'sops-nix':
    'github:mic92/sops-nix/07af005bb7d60c7f118d9d9f5530485da5d1e975?narHash=sha256-7JAGezJ0Dn5qIyA2%2BT4Dt/xQgAbhCglh6lzCekTVMeU%3D' (2025-02-11)
  → 'github:mic92/sops-nix/1770be8ad89e41f1ed5a60ce628dd10877cb3609?narHash=sha256-r0aq70/3bmfjTP%2BJZs4%2BXV5SgmCtk1BLU4CQPWGtA7o%3D' (2025-03-19)
• Updated input 'umu':
    'github:Open-Wine-Components/umu-launcher/7fe83a38604dfd8778c32ee583401d081a5f4f60?dir=packaging/nix&narHash=sha256-s5K2mrgpmWkDKTWiRUoRvue5VsAymSqdhZp4oWy9lN8%3D' (2025-02-26)
  → 'github:Open-Wine-Components/umu-launcher/28eef5f5638d5660fb2d7c1811c8f2915a5e8c5b?dir=packaging/nix&narHash=sha256-8379sxse20nhUT6VcjjpsDmYoT8EJQCy0E8bLZZdos8%3D' (2025-03-20)
2025-03-21 02:00:38 -07:00
d5effed1dc snowhawk: grub default saved 2025-03-20 05:02:23 -07:00
7cb6a45906 snowhawk: disable plasma configuration 2025-03-20 05:02:03 -07:00
5a03dedcc0 hyprland: smw disable_notifications 2025-03-20 02:41:29 -07:00
19832c3a40 hyprland: working config 2025-03-20 02:34:41 -07:00
bcf76c58cc hyprland: big work dump 2025-03-20 01:26:19 -07:00
31cb7796a8 snowhawk: fix icon packages 2025-03-20 00:45:32 -07:00
46c9d96116 hyprland: seperate swaync from anyrun 2025-03-19 21:32:24 -07:00
7e72f42d43 snowhawk: disable dunst 2025-03-19 21:32:24 -07:00
8ca79fab27 llynx: include gtk stuff in system packages 2025-03-19 21:32:20 -07:00
483c916dfa snowhawk: hyprland 2025-03-19 20:27:43 -07:00
189061328b snowhawk: pathplanner testing 2025-03-19 20:27:43 -07:00
7f3126bfd2 hyprland: swaync 2025-03-19 17:36:03 -07:00
61d0b58861 llynx: fix flameshot icon, add repo-clone 2025-03-19 16:22:50 -07:00
278ac18a5a hyprland: anyrun
hyprland: anyrun reorg
2025-03-19 16:16:49 -07:00
906d97998d snowhawk: some more utils 2025-03-19 07:34:09 -07:00
c257089fbf snowhawk: no middleEmulation 2025-03-19 07:34:09 -07:00
d0edfaddd7 flake: organize inputs 2025-03-19 07:31:44 -07:00
483e01cc6d llynx: use snowhawk powerbutton settings 2025-03-19 06:56:38 -07:00
d1ed5b73cb hyprland: move sddm theme stuff to it's own module 2025-03-19 06:41:19 -07:00
668902c9ba hyprland: use mkMerge 2025-03-19 06:33:56 -07:00
e2f0d0a00a hyprland: organize packages 2025-03-19 06:29:41 -07:00
4a661ca081 llynx: unenableAllFirmware 2025-03-18 21:26:08 -07:00
50133672a9 llynx: widevine firefox fix 2025-03-18 21:25:56 -07:00
c359a986a8 llynx: playing with pathplanner 2025-03-18 20:25:12 -07:00
1162fd96c0 llynx: no more dorion 2025-03-14 03:32:26 -07:00
bd25c63c4b sops: update caveserver connection info 2025-03-14 02:40:54 -07:00
efade93126 llynx: dunst and flameshot 2025-03-13 15:25:04 -07:00
1b0f7f3984 llynx: wpilib tools 2025-03-13 15:25:04 -07:00
ba6a845e8b llynx: iwgtk 2025-03-13 15:25:04 -07:00
fa11adab6b flameshot: use service 2025-03-12 16:28:48 -07:00
49534c199c snowhawk: ncspot 2025-03-12 16:05:33 -07:00
7af2b36714 snowhawk: plasma spec 2025-03-12 16:05:33 -07:00
2306935b0d llynx: frc-nix 2025-03-11 18:30:00 -07:00
d5e627a3b5 llynx: projects + sources 2025-03-09 21:46:54 -07:00
30652889e1 llynx: gparted 2025-03-07 07:27:12 -08:00
407588e9f0 llynx: kde hypridle 2025-03-07 02:48:20 -08:00
6b0259dc43 hyprland: hypridle 2025-03-07 02:47:59 -08:00
a20846e699 llynx: ncspot home package 2025-03-06 21:35:11 -08:00
edaa1e6b8b hyprland: fix sddm astronaut 2025-03-06 21:35:01 -08:00
57ed9cb7da hyprland: sddm theme attempt 2025-03-05 13:28:13 -08:00
19f1cb7780 hyprland: waybar 2025-03-05 13:28:02 -08:00
79e0224846 hyprland: playerctl 2025-03-05 13:27:53 -08:00
2c007f4ff5 llynx: enable notch 2025-03-05 07:50:44 -08:00
2472cc0a15 llynx: specs 2025-03-05 07:36:18 -08:00
c77271a74d hyprland: module init 2025-03-05 07:36:18 -08:00
12956729b6 dwl: fix SDL_VIDEODRIVER 2025-03-05 06:32:53 -08:00
1e603bb6b4 snowhawk: enable gamemode service 2025-03-05 00:45:53 -08:00
6f327ab3ac llynx: grub 2025-03-05 00:45:30 -08:00
e89f973696 llynx: bundle firmware 2025-03-05 00:41:47 -08:00
2146928006 pkgs: dorian update 2025-03-05 00:26:18 -08:00
efbfe8bc0d llynx: add dorion 2025-03-04 15:38:15 -08:00
679363066c pkgs: dorian init 2025-03-04 15:38:15 -08:00
5c9443641d llynx: init 2025-03-04 00:34:34 -08:00
9ae0640a71 sops: add llynx key 2025-03-04 00:33:48 -08:00
c82601eba1 fish: disable any-nix-shell 2025-03-04 00:33:48 -08:00
7040301860 flake: update 2025-03-03 21:50:46 -08:00
d58604a096 permafrost: goaccess and stuff 2025-03-02 21:41:12 -08:00
7b9ed8add0 lynx: accomodate user change 2025-02-27 00:05:15 -08:00
ba37b9fc31 snowhawk: back to prop drivers for x11 2025-02-24 18:35:19 -08:00
cdaf463a50 snowhawk: nh specialisation support 2025-02-24 16:41:04 -08:00
df368176da flake.lock: Update
Flake lock file updates:

• Updated input 'zdwl':
    'git+https://git.zynh.me/Zynh0722/dwl?ref=0.7&rev=1abb07a6c13edcedcbe0f3b19b7976b29cbe3ed7' (2025-02-24)
  → 'git+https://git.zynh.me/Zynh0722/dwl?ref=0.7&rev=36be904d586c42695d466bea078ea8226a3c8b64' (2025-02-24)
2025-02-24 16:33:58 -08:00
cd45522a46 pkgs: relocate pipewire controller 2025-02-24 16:33:58 -08:00
7d68a93d4e snowhawk: disable nvk spec 2025-02-24 01:27:14 -08:00
d9d9a72656 dwlmsg: init 2025-02-24 01:26:49 -08:00
5149372f44 flake.lock: Update
Flake lock file updates:

• Updated input 'zdwl':
    'git+https://git.zynh.me/Zynh0722/dwl?ref=0.7&rev=559a7ccb440d2b764558da9a570d6ea6021ac378' (2025-02-23)
  → 'git+https://git.zynh.me/Zynh0722/dwl?ref=0.7ipc&rev=e720e384527f29b4923fe3aa202f4860d09c412f' (2025-02-24)

flake.lock: Update

Flake lock file updates:

• Updated input 'zdwl':
    'git+https://git.zynh.me/Zynh0722/dwl?ref=0.7ipc&rev=e720e384527f29b4923fe3aa202f4860d09c412f' (2025-02-24)
  → 'git+https://git.zynh.me/Zynh0722/dwl?ref=0.7ipc&rev=1abb07a6c13edcedcbe0f3b19b7976b29cbe3ed7' (2025-02-24)
2025-02-24 00:59:36 -08:00
3cb61f024f dwl: screenshotting 2025-02-24 00:59:36 -08:00
cf89e2b807 nvidia: open 2025-02-23 00:50:09 -08:00
ae633859cb flake.lock: Update
Flake lock file updates:

• Updated input 'zdwl':
    'git+https://git.zynh.me/Zynh0722/dwl?ref=dev&rev=b818537a003cd4a0134fdf097544e81e3be2e518' (2025-02-05)
  → 'git+https://git.zynh.me/Zynh0722/dwl?ref=0.7&rev=559a7ccb440d2b764558da9a570d6ea6021ac378' (2025-02-23)
• Updated input 'zdwl/flake-parts':
    'github:hercules-ci/flake-parts/32ea77a06711b758da0ad9bd6a844c5740a87abd?narHash=sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm%2BzmZ7vxbJdo%3D' (2025-02-01)
  → 'github:hercules-ci/flake-parts/205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9?narHash=sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c%3D' (2024-12-04)
• Updated input 'zdwl/flake-parts/nixpkgs-lib':
    '072a6db25e.tar.gz?narHash=sha256-vJzFZGaCpnmo7I6i416HaBLpC%2BhvcURh/BQwROcGIp8%3D' (2025-02-01)
  → '5487e69da4.tar.gz?narHash=sha256-1qRH7uAUsyQI7R1Uwl4T%2BXvdNv778H0Nb5njNrqvylY%3D' (2024-12-01)
• Removed input 'zdwl/nixpkgs-wayland'
• Removed input 'zdwl/nixpkgs-wayland/flake-compat'
• Removed input 'zdwl/nixpkgs-wayland/lib-aggregate'
• Removed input 'zdwl/nixpkgs-wayland/lib-aggregate/flake-utils'
• Removed input 'zdwl/nixpkgs-wayland/lib-aggregate/flake-utils/systems'
• Removed input 'zdwl/nixpkgs-wayland/lib-aggregate/nixpkgs-lib'
• Removed input 'zdwl/nixpkgs-wayland/nixpkgs'
2025-02-23 00:39:15 -08:00
d99227e683 zdwl: 0.7 2025-02-23 00:38:13 -08:00
a27054c34c snowhawk: more nvk testing 2025-02-22 23:34:18 -08:00
48f444d7a4 snowhawk: ~/.local/bin 2025-02-22 23:30:44 -08:00
d761f8a067 lynx: remove redundant configuration 2025-02-22 18:07:53 -08:00
109f6c73ea snowhawk: plymouth owl theme 2025-02-18 23:33:06 -08:00
d4a8c07636 lynx(yabai): don't manage robot simulation gui 2025-02-18 18:52:13 -08:00
7355009f23 snowhawk: +blender 2025-02-16 20:05:13 -08:00
589c87bf42 snowhawk: update windows boot part uuid 2025-02-14 14:33:27 -08:00
5162731711 snowhawk: use rsync 2025-02-14 14:33:12 -08:00
e4c12c7e1f flake: update 2025-02-14 14:33:08 -08:00
29e7b54536 snowhawk: gimp ;) 2025-02-13 00:14:08 -08:00
432fb060ac fish: concatStringsSep 2025-02-08 16:56:20 -08:00
07531deb32 fish: any-nix-shell 2025-02-08 16:51:30 -08:00
e0883848a3 snowhawk: install ffmpeg and duf 2025-02-08 16:40:30 -08:00
8366bef758 dwl: update 2025-02-08 16:40:21 -08:00
a91f7047d5 flake: update (thanks umu)
just nuked the lockfile, fresh files bb
2025-02-05 12:01:23 -08:00
61e793ca8f dwl: dev branch 2025-02-05 11:47:46 -08:00
1dcb8ebb80 nix: ravenshade trusted-users 2025-02-05 11:31:16 -08:00
65435ac297 flake: update 2025-02-04 00:19:00 -08:00
2a17c2e708 snowhawk: proprietary drivers 2025-02-04 00:19:00 -08:00
510d2360df uhk-agent: custom package 2025-02-03 20:10:02 -08:00
00834d5c31 snowhawk: flat mouse accel 2025-01-31 23:12:02 -08:00
425481bcb0 snowhawk: system steam install 2025-01-24 03:12:36 -08:00
5857a94c9d nullpkgs: begone! 2025-01-23 21:53:58 -08:00
c92e5722d5 snowhawk: nh 2025-01-23 21:53:58 -08:00
b05856d43f lynx: add gh 2025-01-22 23:04:37 -08:00
e2664659c0 secrets: update caveserver ip 2025-01-21 22:46:59 -08:00
dd5c109e41 snowhawk: pwvucontrol 2025-01-09 19:09:31 -08:00
37cd5233a1 dwm: rose-pine-gtk system packages 2025-01-09 19:09:31 -08:00
4821968a54 snowhawk: fehbg after screenlayout 2025-01-09 19:09:31 -08:00
1484a137d9 lynx: nh 2025-01-09 19:09:19 -08:00
96963d7489 lutris: 0.5.18 overlay 2025-01-03 22:41:04 -08:00
d768a6f844 upgrade: hardware.pulseaudio -> services.pulseaudio 2025-01-03 22:41:04 -08:00
3f70506976 snowhawk: add sober and prism 2025-01-03 22:41:04 -08:00
84c43d4f40 flake: update
flake: update
2025-01-03 22:35:31 -08:00
6bd0e4c50b umu: nullpkgs :( 2025-01-03 22:35:31 -08:00
e404fb073c snowhawk: flatpak enable 2025-01-02 20:12:29 -08:00
baea08045d ssh: matchblocks reuse 2025-01-02 20:12:29 -08:00
77a1d06fe6 ssh: fix permafrost.local username 2025-01-02 20:12:27 -08:00
cec3ec6995 ssh: fix permafrost.local 2025-01-02 19:50:31 -08:00
fd96056758 ssh: fix proxyjump username 2025-01-01 10:18:56 -08:00
80879d76cf ssh: fix permafrost remote 2025-01-01 10:17:06 -08:00
5a9c369583 syncthing: more name cohesion 2024-12-28 06:53:11 -08:00
c1a30479ab syncthing: name cohesion 2024-12-28 06:50:47 -08:00
601a02add4 permafrost: enable nix-index 2024-12-28 01:15:51 -08:00
28303695e5 user: add comma to packages 2024-12-28 01:12:58 -08:00
7bcabeda5d deploy: remove virtmsi 2024-12-28 01:11:55 -08:00
aa87691fd4 msiserver: remove host 2024-12-27 23:44:47 -08:00
2e56c9e01a nvim: gcc 2024-12-27 23:42:05 -08:00
3f406e4640 msiserver: add pm2 2024-12-27 20:32:38 -08:00
43caad925c home: permafrost host 2024-12-27 14:17:48 -08:00
623ed773c8 ssh: virtmsi support 2024-12-27 05:12:35 -08:00
cede974225 snowhawk: add deploy to packages 2024-12-27 05:12:35 -08:00
fcab202c38 flake: deploy to virtmsi 2024-12-27 05:12:35 -08:00
dac4092adb flake: update 2024-12-27 05:12:35 -08:00
463bf0fddc snowhawk: commenting uhk setting 2024-12-27 05:12:35 -08:00
bc7f60aef0 git: safe directory /etc/nixos 2024-12-27 00:30:24 -08:00
04de17268a virtmsi: system nixos config sessionizer path 2024-12-27 00:30:24 -08:00
d936279851 snowhawk: obsidian sessionizer 2024-12-25 13:41:20 -08:00
4c7961a110 lynx: rename little-lightning to lynx 2024-12-25 13:40:15 -08:00
a05e2f350b nvim: add marksman 2024-12-25 13:40:15 -08:00
97644b68c6 dwl: wlr portal 2024-12-13 05:48:34 -08:00
39ac8c80f0 zdwl: flakening 2024-12-13 05:48:34 -08:00
39cd50f49c flameshot: let DE manage flameshot 2024-12-13 04:47:44 -08:00
4ed8d17b7e dwl: external config 2024-12-13 04:47:44 -08:00
3ad4ddbda4 dwl: I needed a display manager! 2024-12-13 04:47:44 -08:00
3ec10dd505 snowhawk: add bear and brave 2024-12-13 04:47:42 -08:00
fbae92812f snowhawk: star-citizen setup 2024-12-12 14:06:12 -08:00
45e5a8adc8 little-lightning: nix.optimise.automatic 2024-12-12 04:12:53 -08:00
e8d79d9836 snowhawk: star citizen 2024-12-09 20:01:11 -08:00
2188a37289 ssh: github key 2024-12-09 03:58:07 -08:00
279a352de2 flake: stinky updated nix lock changes 2024-12-09 03:14:46 -08:00
fcfb83a2da firefox: userChrome formatting 2024-12-09 03:14:14 -08:00
9c9d45d0c4 snowhawk: disable wezterm 2024-12-08 23:51:54 -08:00
43a2b76c59 flake: update 2024-12-08 23:39:10 -08:00
58545ebda8 flake: disable lix in prep for unstable migration 2024-12-08 23:39:10 -08:00
bf5ece05bd dwm: no-anybar 2024-12-08 21:55:32 -08:00
f66f4e19c1 dwl: enable displayManager 2024-12-08 17:47:11 -08:00
85659453ee dwl: formatting 2024-12-08 17:47:11 -08:00
3c21e459c9 snowhawk: enable dwl spec 2024-12-08 15:55:30 -08:00
8529c4650d dwl: remove NIXOS_OZONE_WL 2024-12-08 15:52:41 -08:00
756cfaa3a8 kitty: move macos fonts to module 2024-12-06 12:23:33 -08:00
0f4fe1501b little-lightning: disable alacritty 2024-12-05 20:39:40 -08:00
4e7b60fed3 kitty: increase fontweights on macos 2024-12-05 20:33:20 -08:00
d94884b7ae kitty: little-lightning 2024-12-05 20:21:08 -08:00
6a4626438b flake: update fish_theme 2024-12-03 08:20:20 -08:00
79746de69a wezterm: home manager fd 2024-12-02 12:50:22 -08:00
1a78c1cf19 neovim: add coreutils 2024-12-02 12:50:13 -08:00
f5b9f5ae6b dwm: preanybar 2024-11-30 13:53:43 -08:00
fcd5000e6a wezterm: module init 2024-11-30 13:53:43 -08:00
078943a122 dwm: anybar 2024-11-29 19:46:27 -08:00
b48fe4f845 clang-tools in neovim path 2024-11-29 17:43:05 -08:00
b1534fac93 snowhawk: disable specs 2024-11-29 17:43:05 -08:00
58fba557c5 kitty: kitty-snap testing 2024-11-29 17:43:05 -08:00
a35083ff1e snowhawk: jq 2024-11-29 17:43:05 -08:00
82d7fab51e kitty: allow_remote_control 2024-11-29 17:43:05 -08:00
9670caae7d snowhawk: linux documentation 2024-11-29 17:43:05 -08:00
ad69f97952 pkgs: actually add dwm-msg to pkgs 2024-11-29 17:43:05 -08:00
dde8a27a7e pkgs: dwm-msg 2024-11-29 17:23:50 -08:00
d35f56c603 repo-clone: don't default use backgrounds lmfao 2024-11-26 09:12:08 -08:00
401ccb46df fish_theme: update 2024-11-26 07:27:36 -08:00
f72f681337 virtmsi: sops enable 2024-11-26 05:09:27 -08:00
68ae98e457 virtmsi: add host 2024-11-25 18:37:20 -08:00
4331755ff0 nvim: include zig and make with neovim 2024-11-25 18:28:06 -08:00
1bfd862394 little-lightning: enable skhd 2024-11-25 07:58:20 -08:00
f3b6610f8c little-lightning: skhd config 2024-11-25 07:48:52 -08:00
6249572392 little-lightning: remove testing pam stuff 2024-11-25 07:29:21 -08:00
8962a4990a snowhawk: enable virtualization 2024-11-24 16:22:11 -08:00
ee109829a7 snowhawk: remove brave from path
all my brave-apps should work still
2024-11-24 16:17:44 -08:00
a9fb22bf86 firefox: move alt launch script to module 2024-11-24 16:17:44 -08:00
32a5792162 lutris: module init 2024-11-24 16:08:59 -08:00
7231441858 dwm: not sure what this pulls lmfao 2024-11-24 15:58:21 -08:00
6be3082c80 dwm: restart rules 2024-11-24 15:58:21 -08:00
d016ef7db5 dwm: restart use nix 2024-11-24 15:58:21 -08:00
a387549e91 dwm: preserve tags update 2024-11-24 15:58:21 -08:00
d4cd494b5e little-lightning: maybe pam another time 2024-11-24 14:41:14 -08:00
c2869eb6aa little-lightning: pam_reattach.so 2024-11-24 14:37:37 -08:00
22395f7694 little-lightning: tmux shell fix
see: https://github.com/nix-community/home-manager/issues/5952
2024-11-24 10:50:12 -08:00
d0eab78ad9 dwm: fetch restart update 2024-11-23 17:45:19 -08:00
d12ac360c1 neovim: fix ts grammars 2024-11-23 17:16:19 -08:00
0b3bb3e92b kitty: module init 2024-11-23 16:04:14 -08:00
b5e8c0774e Revert "flake: update"
This reverts commit 2b14985fc9.
2024-11-23 11:14:00 -08:00
a111c7267a dwm: use dedicated dwm source mirror
dwm: pull typo fix
2024-11-23 11:14:00 -08:00
58e1e4eb1e snowhawk: wow stuff 2024-11-23 11:02:26 -08:00
2b14985fc9 flake: update 2024-11-23 09:05:56 -08:00
1a8afca99e snowhawk: reboot-windows 2024-11-23 09:05:53 -08:00
edf9ae648d msiserver: trying nixpkgs nix 2024-11-22 17:17:06 +00:00
995abd4dcb msiserver: nixpkgs nvim 2024-11-22 09:04:04 -08:00
2220e7498e msiserver: nix settings 2024-11-22 09:00:54 -08:00
535f713c79 dwm: stem darkening? 2024-11-20 06:37:02 -08:00
3c87abea9d dwm: .Xresources file 2024-11-20 06:32:39 -08:00
2e704b22f8 dwm: load xresources on boot 2024-11-20 06:28:17 -08:00
6898c0ddae firefox: use main userChrome on alt 2024-11-16 04:31:53 -08:00
54cdd90c01 little-lightning: direnv 2024-11-15 10:14:40 -08:00
f3169efb98 tmux: more macos tinkering 2024-11-15 10:03:52 -08:00
ea8bd429b8 little-lightning: environment.shells 2024-11-15 08:39:17 -08:00
ef60e8d7d9 umu: the final unspicy 2024-11-15 08:39:00 -08:00
b64f325a02 flake: try flake level lix 2024-11-15 08:13:21 -08:00
4a4ac66c83 little-lightning: lix 2024-11-15 07:53:39 -08:00
55ec65c9e1 ssh: snowhawk ip update 2024-11-14 08:24:28 -08:00
0f6936dbd1 little-lightning: touchid sudo 2024-11-13 17:59:46 -08:00
ed14a86476 little-lightning: nerdfont 2024-11-13 03:37:06 -08:00
70ce71c36e dwm: per tag patch 2024-11-12 08:14:42 -08:00
d9e667fe37 little-lightning: symlink yabai 2024-11-08 23:10:44 -08:00
6ece7dba5f little-lightning: yabai config 2024-11-08 23:08:59 -08:00
7f5a55ba72 little-lightning: no longer relying on fish 2024-11-07 16:30:57 -08:00
8aba0be0b4 umu: being spicy again? 2024-11-07 16:19:30 -08:00
dc4a69b73a little-lightning: fish fishing ig 2024-11-07 16:19:23 -08:00
4e15d8da53 little-lightning: rebuild as a fish abbreviation 2024-11-07 16:17:22 -08:00
ebf403819f flake: reorder systems 2024-11-07 16:17:22 -08:00
b4fe279925 dwm: unclutter-xfixes option 2024-11-07 06:37:58 -08:00
2500589ae9 dwm: unclutter-xfixes 2024-11-07 06:37:58 -08:00
e41b72eedf snowhawk: r2modman 2024-11-05 18:08:31 -08:00
074a47a2bd umu: being spicy 2024-11-05 18:08:07 -08:00
70a093ed7a builders: revamp compile step 2024-11-05 17:11:49 -08:00
f95a2b8e0e snowhawk: removing some whitespace 2024-11-05 16:11:44 -08:00
d802105171 snowhawk: remove configuration hostPlatform
I handle this at the flake level
2024-11-05 01:01:35 -08:00
d35fbb68b8 snowhawk: nix-darwin time 2024-11-05 01:00:34 -08:00
227dddf2f7 tmux: always use fish 2024-11-04 03:49:29 -08:00
4a238f0a03 flake-lock: idk why it did this on my mac 2024-11-04 03:49:29 -08:00
8caa4f6d77 firefox: module init 2024-11-03 18:59:29 -08:00
8ab25ee76f snowhawk: no more os-prober 2024-11-03 18:03:01 -08:00
c5d34f3735 snowhawk: nvk specs 2024-11-03 18:01:10 -08:00
39ddd06084 snowhawk: new /boot 2024-11-03 17:26:16 -08:00
58a46c793b pipewire-controller: trying to send sigusr1 to xrootdatetime 2024-11-03 17:26:16 -08:00
7c27f7d51f snowhawk: remove godot_4 2024-11-03 17:26:16 -08:00
ba2d7312b4 flake: update 2024-10-31 01:16:09 -07:00
adc11bc50a xrootdatetime: force update on SIGUSR1 2024-10-30 22:07:15 -07:00
b0c18c7c15 xrootdatetime: fixing crash on initial boot
xrootdatetime: trying to fix crashes
xrootdatetime: allow errors
2024-10-30 20:51:38 -07:00
28573bd36d snowhawk: umu wine 2024-10-26 15:33:20 -07:00
3a79f2d53a snowhawk: gmail brave-app 2024-10-23 16:06:41 -07:00
0830c161d1 snowhawk: wine and lutris stuff 2024-10-23 16:05:55 -07:00
7cdec173d0 neovim: taplo 2024-10-20 04:26:39 -07:00
9f8858fe34 neovim: stylua 2024-10-20 04:20:05 -07:00
3e1199a700 filetypes: adjusting associations added 2024-10-19 22:34:04 -07:00
ff98b2da60 snowhawk: add obsidian to sessionizer 2024-10-19 13:16:38 -07:00
dc508175a7 xrootdatetime: after pipewire 2024-10-18 12:49:43 -07:00
88830fcb5d xrootdatetime: restart on failure 2024-10-18 11:55:38 -07:00
308ba6bff1 filetypes: DEFAULT_BROWSER change 2024-10-17 18:48:51 -07:00
5175e934a7 filetypes: firefox default browser 2024-10-16 17:33:24 -07:00
431992eff7 xrootdatetime: better error handling 2024-10-16 17:28:51 -07:00
ac6de63ef2 snowhawk: dotnet stuff 2024-10-15 15:17:34 -07:00
c20c63f6ea xrootdatetime: double dipping 2024-10-15 14:42:31 -07:00
ee16a78d1b flake: update 2024-10-15 11:49:36 -07:00
3d4b905cd0 pipewire-controller: remove alt from keybinds 2024-10-11 20:09:24 -07:00
2bca2e2c41 dwm: mod 4 again! 2024-10-09 22:13:04 -07:00
26d6a1d116 dwm: systray config 2024-10-09 20:21:16 -07:00
4ed51b089e dwm: trying a patch 2024-10-09 20:21:07 -07:00
82c03e3055 dwm: getExe and inherit 2024-10-09 19:51:28 -07:00
4d08e896b7 dwm: super time 2024-10-09 10:26:50 -07:00
4fd0266d02 pkgs: rose-pine-grub copy all 2024-10-08 15:44:10 -07:00
5da3f62134 pkgs: rose-pine-grub init 2024-10-08 15:38:48 -07:00
58d6774e7f snowhawk: calendar app url 2024-10-08 14:15:00 -07:00
2b931beac3 snowhawk: add qdirstat 2024-10-07 23:41:18 -07:00
0e5ff42ed9 snowhawk: dedicated home drive 2024-10-07 23:16:56 -07:00
f2756f4941 snowhawk: nvidia-open 2024-10-06 21:57:26 -07:00
152262659a dwl: NIXOS_OZONE_WL 2024-10-06 21:42:37 -07:00
a59313e477 dwl: wmenu and foot 2024-10-06 21:25:18 -07:00
d0af44785e dwl: wayland-session setup 2024-10-06 21:20:25 -07:00
28b5d14f1b snowhawk: make dwm default specialisation 2024-10-06 20:17:42 -07:00
2b5fba7e01 dwl: defaultSession 2024-10-06 20:09:00 -07:00
976e95c1ff dwl: module init 2024-10-06 10:01:03 -07:00
e4d090e0dc snowhawk: dwm specialization 2024-10-06 08:59:38 -07:00
2553286233 snowhawk: useGlobalPkgs home-manager 2024-10-06 08:44:47 -07:00
81fe668442 snowhawk: rebuild command passthrough 2024-10-06 08:21:09 -07:00
baac7cf543 dwm+niri: shorthands shorthands shorthands 2024-10-06 07:44:08 -07:00
1bed116085 dwm+niri: include enabling hm options by default 2024-10-06 07:34:46 -07:00
2824dea9e3 dwm: couple home settings to nixos module 2024-10-06 07:18:46 -07:00
95a157089d snowhawk: reorganize 2024-10-06 07:15:34 -07:00
0bef9c991f snowhawk: sort snowhawk settings 2024-10-06 07:13:07 -07:00
1d40aae689 filesystem: extract nixos module 2024-10-06 07:12:54 -07:00
c8fdfc2f3a network: extract nixos module 2024-10-06 07:08:00 -07:00
7c8baf7f32 snowhawk: remove nomacs 2024-10-06 06:52:04 -07:00
2e74be8af1 snowhawk: pass shell alias arguments 2024-10-06 06:50:45 -07:00
17e5ad7053 snowhawk: refactoring brave-apps 2024-10-06 06:48:10 -07:00
c5da0ace1c user: extract user setup into user module 2024-10-06 06:48:10 -07:00
dd7c2ea7c2 polkit: extract polkit stuff to nixos module 2024-10-06 06:42:10 -07:00
9fcfd13663 snowhawk: godot_4-mono 2024-10-05 15:13:22 -07:00
1acd600476 flake: add chaotic nyx 2024-10-05 15:13:11 -07:00
f62d41ba62 brave-apps: better error 2024-10-02 05:18:42 -07:00
9dbd5b0471 brave-apps: formatting 2024-10-01 23:08:15 -07:00
bdcb2844c4 brave-apps: module init 2024-10-01 22:16:03 -07:00
42f3235010 snowhawk: nix-index 2024-10-01 19:16:19 -07:00
353660ade0 snowhawk: gqview is now geeqie 2024-09-30 23:49:15 -07:00
5046eb17f1 flake: update 2024-09-30 23:48:40 -07:00
a94bad4adb snowhawk: use tmpfs 2024-09-30 23:08:35 -07:00
d6fd828568 pipewire-controller: mpv volume 2024-09-28 22:42:24 -07:00
6df4a922ef dwm: vesktop rule 2024-09-28 19:03:24 -07:00
78fc679bcc little-lightning: nix settings 2024-09-28 01:06:49 -07:00
885a428878 pipewire-controller: fix expect text 2024-09-27 23:40:47 -07:00
29e15338ef snowhawk: goodbye discord 2024-09-27 23:39:09 -07:00
e702e62296 pipewire-controller: sxhkd keybinds 2024-09-27 23:34:57 -07:00
4aa73643e7 pipewire-controller: trim mute status 2024-09-27 23:24:28 -07:00
269bda650d pipewire-controller: module init 2024-09-27 22:56:51 -07:00
c06691c45f sxhkd: extract module from playerctld 2024-09-27 22:21:40 -07:00
962f1cf796 fish: fix rustup completions 2024-09-27 09:57:45 -07:00
18d39d134b niri: colocate nixos-required home module 2024-09-27 09:44:52 -07:00
3be52c3835 snowhawk: add vesktop 2024-09-27 09:17:41 -07:00
1b8a3eab9e redshift: include package on path 2024-09-24 08:01:30 -07:00
ea634d7498 snowhawk: stop using nix-ld 2024-09-22 21:55:38 -07:00
0cc7b72237 snowhawk: remove zenbrowser 2024-09-22 21:55:27 -07:00
0907bce6f4 flake: update 2024-09-22 21:52:25 -07:00
df2abeac3e glib-schemas-fix: module init 2024-09-20 11:58:48 -07:00
a87f8feb1a snowhawk: move monitor config to hardware 2024-09-19 03:27:20 -07:00
217f09f7ef snowhawk: remove xrandrHeads comment 2024-09-19 03:24:37 -07:00
789c09e24a snowhawk: home cleanup 2024-09-19 03:20:33 -07:00
0131d3eaa3 flameshot: make my only config the default 2024-09-17 22:23:18 -07:00
ce5bce2409 nixos: use lix 2024-09-17 22:16:08 -07:00
3bfe415ad0 power-button: fix rest 2024-09-17 03:54:43 -07:00
9aa9ce6dfe power-button: module init 2024-09-17 03:54:00 -07:00
eb4e36de4f syncthing: include default folder sync 2024-09-15 01:43:22 -07:00
ffbca576ff snowhawk: moving user packages to home packages 2024-09-13 21:18:43 -07:00
82759e7819 dwm: move x11 keymap to dwm config 2024-09-13 21:02:51 -07:00
0f4d2374bf wake-on-lan: move to module 2024-09-13 21:02:51 -07:00
ce1d38f3f2 sudo-rules: formatting 2024-09-13 17:40:27 -07:00
43c67a6535 snowhawk: config prune 2024-09-13 17:31:39 -07:00
78254cbe5e niri: refactor nixos module 2024-09-13 17:27:15 -07:00
fa8accf3a6 snowhawk: enable backup hm 2024-09-13 17:24:55 -07:00
ddd17ae4af snowhawk: relocate sudo-rules to module 2024-09-13 17:12:13 -07:00
c612a81db7 snowhawk: enable nix-ld 2024-09-13 16:53:10 -07:00
2b282ab842 nixos: nix-ld module init 2024-09-13 16:52:42 -07:00
b7d22d3bbb wrapWine: fix yoink 2024-09-13 05:22:56 -07:00
c457c763e6 snowhawk: return to dwm 2024-09-13 05:22:56 -07:00
0256eae39c snowhawk: enable niri settings 2024-09-11 19:45:33 -07:00
8b2effd885 niri: hmModule 2024-09-11 19:41:37 -07:00
a4ebdc26a9 niri: displayManager config 2024-09-11 18:44:30 -07:00
8cae0adfb3 snowhawk: enable niri 2024-09-11 18:29:49 -07:00
2d490033f3 flake: add niri 2024-09-11 17:36:19 -07:00
a803eb5b6d flake: update 2024-09-06 16:20:13 -07:00
9ffc2df383 fish: rustup completions 2024-09-06 16:20:13 -07:00
045bc68fe2 snowhawk: bluetooth audio 2024-09-06 16:20:06 -07:00
4eeee42a9d flake: update again 2024-08-30 17:12:56 -07:00
f2f60d3cbd flake: update 2024-08-29 21:49:32 -07:00
ea52afd5ad neovim: set repo-clone settings 2024-08-29 20:32:25 -07:00
8f7d7f9357 snowhawk: reorganize snowhawk settings 2024-08-29 20:29:06 -07:00
877eade585 neovim: enable repo-clone 2024-08-29 20:27:43 -07:00
779d9946b0 lib: zgitRepo 2024-08-29 20:27:10 -07:00
d1217ef796 rust: enable snowhawk.direnv 2024-08-29 20:21:24 -07:00
90b396317f snowhawk: merge neovim in general snowhawk settings 2024-08-29 20:19:20 -07:00
7f24c3e3b1 snowhawk: remove neovim-package
this is handled by the neovim module now
2024-08-29 20:17:12 -07:00
e2749932af snowhawk: remove chromium 2024-08-29 20:16:54 -07:00
e24cde2733 snowhawk: alt-firefox 2024-08-29 20:16:51 -07:00
505eac929a rust: module init 2024-08-28 17:15:36 -07:00
624fa2f312 flake: update 2024-08-27 19:32:54 -07:00
201d08b6ac xivlauncher: add fflogs 2024-08-25 14:00:14 -07:00
868fe61afb neovim: formatting 2024-08-24 20:11:12 -07:00
51e682d66e neovim: better default package definition 2024-08-24 20:08:51 -07:00
f4ec471ef5 lib: mkIfElse 2024-08-24 19:51:44 -07:00
2540156e17 little-lightning: remove unused imports 2024-08-24 19:17:05 -07:00
08f8c71880 neovim: clean up doc comment 2024-08-24 19:17:05 -07:00
78119f6aad neovim: nightly option 2024-08-24 19:17:05 -07:00
4d13192751 little-lightning: unstable neovim 2024-08-24 18:57:04 -07:00
0350f74f7b rbw: rbw-fzf x port 2024-08-24 15:17:04 -07:00
b6fca59334 rbw: rbw-fzf 2024-08-24 15:13:20 -07:00
e0a6ce3b64 rbw: pineentry-tty 2024-08-24 15:13:13 -07:00
8848f7df18 rbw: module init 2024-08-24 14:01:19 -07:00
a44ce28a73 flake: update 2024-08-24 01:24:23 -07:00
6dfeec3a0e snowhawk: zenBrowser 2024-08-23 20:26:01 -07:00
7942736d8d flake: update 2024-08-23 11:04:36 -07:00
581d729b79 tmux-sessionizer: preview 2024-08-23 06:27:44 -07:00
9fee4f6f3d tmux-sessionizer: 2.0 2024-08-23 06:26:48 -07:00
7c2bf6601a snowhawk: unstable neovim 2024-08-22 14:26:52 -07:00
feeadee1ea pkgs: zenBrowser 2024-08-22 05:18:12 -07:00
f387d5a002 flake: update 2024-08-22 05:08:01 -07:00
8ffa090603 builders: new home in root 2024-08-22 00:18:10 -07:00
a705681094 flake: formatting 2024-08-22 00:12:30 -07:00
b0572534d9 builders: default system 2024-08-22 00:03:54 -07:00
19423844ad flake: reorder inputs 2024-08-21 23:58:57 -07:00
7dc7823cff home: remove unused import 2024-08-21 23:52:09 -07:00
febc1dbc54 home: cleanup nixpkgs cfg 2024-08-21 23:48:56 -07:00
fadffaebae builders: remove unused import 2024-08-21 23:48:39 -07:00
712fa9eacd nixos: remove nixpkgs module 2024-08-21 23:48:09 -07:00
e0cd176d1e snowhawk: home-manager options formatting 2024-08-21 23:47:01 -07:00
24af078952 home-manager: flake level nixos module deps 2024-08-21 23:47:01 -07:00
62b1d553f2 builders: return of lib.right 2024-08-21 23:47:01 -07:00
e81e16168a flake: overlay lib
fix lib overlay
2024-08-21 23:47:01 -07:00
4ff0914d1a home: nixpkgs disable nixpkgs config 2024-08-21 21:18:10 -07:00
bbe280f608 snowhawk: disable nixpkgs config 2024-08-21 21:18:10 -07:00
11f9963090 builders: makePkgs 2024-08-21 21:18:10 -07:00
3872b51902 xivlauncher: junk testing 2024-08-21 21:18:10 -07:00
54d835c290 fish: lnmv script 2024-08-21 21:17:44 -07:00
21ae8bbbf2 little-lightning: enable projects module 2024-08-20 17:50:09 -07:00
44e592e9af tmux: use fish directly on nixos, zsh on macos 2024-08-20 17:42:28 -07:00
52ab8df3e7 tmux: use nix zsh, not fish 2024-08-20 17:23:09 -07:00
1c5295a007 flake: update 2024-08-20 13:56:53 -07:00
6587b49549 snowhawk: back to beta 2024-08-20 13:32:10 -07:00
bef194d211 snowhawk: remove redundant setting 2024-08-20 02:26:21 -07:00
2df02b5ebb direnv: disable by default 2024-08-20 02:24:27 -07:00
ac75980139 git: direnv gitignore 2024-08-20 01:46:57 -07:00
b3624aacf4 direnv: module init 2024-08-20 01:46:57 -07:00
27a3ec825e tmux: terminal-features
from nvim checkhealth
2024-08-20 01:46:57 -07:00
0247eba923 snowhawk: lib.getExe for wakeonlan 2024-08-19 22:41:48 -07:00
53afc745e7 snowhawk: nvidia powerManagement 2024-08-19 22:29:35 -07:00
7a2bbca728 pkgs: fix borderlessBrowser 2024-08-19 07:22:28 -07:00
97bb4b6327 pkgs: borderlessBrowser 2024-08-19 06:02:43 -07:00
de6a416958 flake: cleaning up vm hosts 2024-08-19 06:02:43 -07:00
21f82ed506 pkgs: refactor 2024-08-17 23:37:13 -07:00
6bdd69426c snowhawk: use helper script to generate randr layout 2024-08-17 23:37:13 -07:00
4f22744983 writeXrandrScriptBin: fix xrandr path 2024-08-17 23:37:13 -07:00
02fa077d37 writeXrandrScriptBin: inherit output 2024-08-17 08:15:36 -07:00
c4b536f3cf writeXrandrScriptBin: config input 2024-08-17 06:57:31 -07:00
9b279a0b3c pkgs: callDefaultPackage alias 2024-08-17 05:46:00 -07:00
a1903be803 pkgs: name passing 2024-08-17 05:45:52 -07:00
b9ee61bc0c pkgs: writeXrandrScriptBin 2024-08-17 05:45:52 -07:00
353dc4fac3 pkgs: lib binding 2024-08-17 03:08:17 -07:00
cc89a7a0c4 snowhawk: fix starting screen positions 2024-08-17 03:08:17 -07:00
1ebcfbba8b flake: update 2024-08-16 18:51:54 -07:00
a1343b032e snowhawk: more image viewers 2024-08-14 21:53:32 -07:00
7785f6ee54 flake: update -- fix little-lightning 2024-08-13 03:05:22 -07:00
3b6338ff54 flake: update 2024-08-12 14:59:48 -07:00
81bb0de427 Revert "builders: remove redundant function"
This reverts commit c4e5b0141f.
2024-08-11 05:55:34 -07:00
764333541f builders: remove unused and broken overlay 2024-08-11 05:51:26 -07:00
5c3b923653 Revert "xivlauncher: iinact borderless"
This reverts commit 8039eacfb9.
2024-08-11 05:20:50 -07:00
8039eacfb9 xivlauncher: iinact borderless 2024-08-11 05:20:43 -07:00
6af247c6c6 xivlauncher: textools 2024-08-11 05:20:11 -07:00
89e5cb8679 builders: use pkgs overlay 2024-08-11 04:54:07 -07:00
2d2909e22e pkgs: wrapWine 2024-08-10 11:21:26 -07:00
73504959a2 flake: whitespace 2024-08-10 11:21:26 -07:00
c4e5b0141f builders: remove redundant function 2024-08-10 10:19:28 -07:00
4673ef1590 Revert "snowhawk: lutris"
This reverts commit bed674c1ea.
2024-08-10 02:16:36 -07:00
bed674c1ea snowhawk: lutris 2024-08-10 01:42:34 -07:00
1e64b50681 tmux-sessionizer: formatting 2024-08-09 15:34:42 -07:00
f1ac919c82 little-lightning: fix sources 2024-08-09 03:29:16 -07:00
eed13824b8 tmux-sessionizer: formatting 2024-08-09 00:59:51 -07:00
ab7ae9e503 tmux-sessionizer: remove manual treesitter prompt 2024-08-09 00:58:26 -07:00
b5d21b8bb6 tmux-sessionizer: writeShellApplication
tmux-sessionizer: runtimeInputs tmux

tmux-sessionizer: runtimeInputs fzf

tmux-sessionizer: runtimeInputs find

tmux-sessionizer: runtimeInputs coreutils

tmux-sessionizer: runtimeInputs procps

tmux-sessionizer: with pkgs runtimeInputs
2024-08-09 00:56:51 -07:00
858905ac30 tmux-sessionizer: use getExe 2024-08-08 21:34:33 -07:00
da24f19a47 tmux: style 2024-08-08 20:09:09 -07:00
b4bd291e76 tmux: lib.getExe 2024-08-08 19:58:25 -07:00
52542ddc8a tmux-sessionizer: whitespace unification 2024-08-08 17:42:40 -07:00
a3695b3f48 tmux-sessionizer: cfg.pkg
I realized I was using the long name for something I already had in
scope
2024-08-08 17:40:18 -07:00
f84c39616e snowhawk: tv-on 2024-08-08 04:16:31 -07:00
ab10b106ff neovim: lua highlighting 2024-08-08 02:49:59 -07:00
80954f18fa flake: update 2024-08-08 02:07:10 -07:00
8ee7ab1113 flake: update 2024-08-07 05:34:13 -07:00
20521f77cc tmux-sessionizer: unescape shellArgs 2024-08-07 05:05:54 -07:00
bc5ad30c8e all: use paths option 2024-08-07 04:57:06 -07:00
9ef497f991 sources: module init 2024-08-07 04:46:08 -07:00
c85f5e013b tmux-sessionizer: paths option 2024-08-07 04:46:08 -07:00
20d33b0483 little-lightning: nix source 2024-08-05 22:03:41 -07:00
20f17a2247 tmux-sessionizer: follow links 2024-08-05 19:08:16 -07:00
44eb2bd078 tmux-sessionizer: fix paths 2024-08-05 18:48:08 -07:00
2a2b2e1373 Revert "tmux-sessionizer: writeShellApplication"
This reverts commit 7d1a5fa9d5.
2024-08-04 03:02:43 -07:00
e103b92a8b tmux-sessionizer: writeShellApplication 2024-08-04 03:02:25 -07:00
60ba9d19d4 tmux: tmux a fish abbreviation 2024-08-04 03:01:50 -07:00
f77616504a tmux-sessionizer: nix-store find + fzf 2024-08-04 03:01:50 -07:00
1e55be7fae tmux: optional sessionizer binding 2024-08-03 02:56:39 -07:00
8662c4df19 tmux-sessionizer: add self to home.packages 2024-08-03 02:48:46 -07:00
90896ca0b3 tmux-sessionizer: module init 2024-08-03 02:48:31 -07:00
061a7d8290 cleanup: Install.WantedBy 2024-08-03 02:46:35 -07:00
13c97347f8 hm-modules: extract getModules function 2024-08-02 02:09:19 -07:00
3df5994159 tldr: module init 2024-08-02 01:41:52 -07:00
9e982505a6 ssh: proxyjump snowhawk 2024-08-02 00:26:15 -07:00
5952138b85 repo-clone: sd-switch 2024-08-01 04:01:05 -07:00
fb743989b4 repo-clone: basic config 2024-08-01 04:01:05 -07:00
d8dae0b57d repo-clone: add module 2024-08-01 04:01:05 -07:00
5317efcc8d snowhawk: put nix src in src/ directory 2024-08-01 01:18:13 -07:00
d7073b0472 builders: refactor 2024-08-01 00:46:06 -07:00
69607cc38a tmux: focus-events on 2024-07-31 22:01:28 -07:00
ed2de97200 snowhawk: nixpkgs link 2024-07-31 22:01:28 -07:00
3e886667ce tmux: escapeTime 0 2024-07-31 01:45:16 -07:00
cd3715f21a flameshot: text for configFile 2024-07-30 23:15:14 -07:00
e10d94f984 flameshot: attrsOf attrs 2024-07-30 23:14:28 -07:00
43f82bdedb snowhawk: flameshot config 2024-07-30 23:12:14 -07:00
a7ce699734 flameshot: module get 2024-07-30 23:09:02 -07:00
6e2ef44fd1 snowhawk: sops secret password hee hee hoo hoo 2024-07-30 21:52:01 -07:00
83f91a7016 sops: host level module 2024-07-30 21:52:01 -07:00
c3b83a15d3 flake: update 2024-07-30 21:28:33 -07:00
ff311d633d msiserver: enable sops 2024-07-31 03:28:13 +00:00
f29b132c4d msiserver: wakeonlan 2024-07-31 03:23:48 +00:00
aa61806fe1 filetypes: use genAttrs 2024-07-30 01:11:06 -07:00
2944546d0a snowhawk: vulkan_beta driver 2024-07-29 23:36:37 -07:00
b72635d019 filetypes: new definition format 2024-07-28 23:45:06 -07:00
039fcb3d0e git: fix show-unchanged 2024-07-28 19:16:24 -07:00
d2c8d62e88 git: not using sops anymore 2024-07-28 18:45:16 -07:00
1874ab5f29 git: sshifyPushUrl 2024-07-28 18:41:47 -07:00
ab53ebc1db flake: update 2024-07-28 16:54:19 -07:00
602ef03b1b ssh: refactor 2: electric boogaloo 2024-07-28 15:05:27 -07:00
d5f96ae6e5 ssh: refactor 2024-07-28 15:04:12 -07:00
08369e38e1 tmux: screen-256color -- fix HOME/END 2024-07-28 14:34:38 -07:00
c1ad26246c tmux: formatting 2024-07-28 13:27:41 -07:00
5c455e88d5 macos: fix home directory 2024-07-28 13:27:41 -07:00
0d1be1643c secrets: snowhawk key 2024-07-28 13:27:30 -07:00
fede1456d8 ssh: snowhawk ssh key 2024-07-28 07:12:39 -07:00
4201547e3e macos: sops enable 2024-07-28 07:09:11 -07:00
1ce0ee80c5 ssh: manage git ssh key 2024-07-28 06:53:41 -07:00
73427f47d4 secrets: remove identityfile from caveserver config 2024-07-28 06:51:25 -07:00
a0befb35e7 ssh: use keyfiles directly, also only include if sops is enabled 2024-07-28 06:51:25 -07:00
6bb530e404 ssh: use ssh dir instead of homedir 2024-07-28 06:51:25 -07:00
afdd0a22f3 ssh: refactoring 2024-07-28 06:51:25 -07:00
e46de005fd nixos: use bulk module import 2024-07-28 06:51:25 -07:00
f2af0dfd64 snowhawk: add image browser 2024-07-28 06:51:25 -07:00
231e0c511a snowhawk: add gvfs for trash:/// support 2024-07-28 06:51:25 -07:00
7106852a9a snowhawk: mount archive part 2024-07-26 03:31:00 -07:00
5c08a54f63 ssh: keys formatting 2024-07-26 03:28:09 -07:00
3a858e68dc snowhawk: formatting 2024-07-26 03:27:25 -07:00
3f6f73b74a flake: extend custom lib with home-manager lib for standalone home-manager builds 2024-07-25 15:19:37 -07:00
10542eae9d little-lightning: wakeonlan package 2024-07-25 05:33:16 -07:00
3894c3b40a Revert "wakeonlan: unicast activity"
This reverts commit 53064f8db6.
2024-07-25 05:26:03 -07:00
53064f8db6 wakeonlan: unicast activity 2024-07-25 05:16:30 -07:00
d415e110e8 snowhawk: wakeOnLan 2024-07-25 05:10:03 -07:00
5c94d8d809 snowhawk: enable avahi 2024-07-25 04:42:04 -07:00
58cfd9ef4e snowhawk: enable ssh firewall holes 2024-07-25 04:24:53 -07:00
a4c54ec50d xivlauncher: create module 2024-07-25 00:40:08 -07:00
e22748e9f5 flake: update 2024-07-24 20:48:30 -07:00
a46f194796 snowhawk: add pcmanfm 2024-07-24 20:48:30 -07:00
c7283f4314 secrets: string latlon keys 2024-07-24 01:57:11 -07:00
c534fe8fc6 redshift: bash wrapper 2024-07-24 01:57:11 -07:00
4e41b079e4 redshift: escape dollar sign 2024-07-24 01:52:43 -07:00
4f33cd310d redshift: only use secrets if sops is enabled 2024-07-24 01:17:05 -07:00
9d67cf3d60 redshift: wait for decryption 2024-07-24 01:16:17 -07:00
c96fbbb91e secrets: update latlon 2024-07-24 01:16:17 -07:00
1b3ce49ffa snowhawk: enable redshift 2024-07-24 00:38:39 -07:00
d48b81fbac secrets: add redshift secrets 2024-07-24 00:38:39 -07:00
9ce514aa6d redshift: create module 2024-07-24 00:38:39 -07:00
f2699971d4 flake: extend lib globally in hm and nix modules 2024-07-24 00:24:19 -07:00
3fe55b566a sops: disable secrets if no sops 2024-07-24 00:24:19 -07:00
dddd1a9ec6 sops: formatting 2024-07-23 23:57:41 -07:00
d69d821cd3 sops: move secrets to relavent services 2024-07-23 23:41:00 -07:00
c0a563278d git: ignore ds_store on macos 2024-07-23 21:55:44 -07:00
bf13bdfded macos: remove copy abbr 2024-07-22 20:39:54 -07:00
94a4a9ff21 macos: clean up zsh init 2024-07-22 18:53:06 -07:00
f8540d0e37 neovim: no longer mangle init 2024-07-22 01:09:21 -07:00
fe7ea07235 assert hostname exists 2024-07-22 00:05:47 -07:00
4edd18ad6c flake: compileHomes 2024-07-21 14:19:02 -07:00
e76608886c lib: lib extension is an overlay 2024-07-21 14:18:23 -07:00
cb99b5cea8 flake: move system builders to lib/builders.nix 2024-07-21 13:34:50 -07:00
93f438a5d1 cleanup: removing unused module inputs 2024-07-21 13:19:45 -07:00
bc08b83283 flake: finally use hostname for macbook 2024-07-21 12:53:43 -07:00
7b4e304299 macos: adjust rebuild command 2024-07-21 12:52:33 -07:00
f4a42710b5 macos: cleaning up module options 2024-07-21 12:50:12 -07:00
bf3ae9c4d0 macos: extract macos option globally 2024-07-21 12:48:26 -07:00
4dad83e4ae macos fish setup 2024-07-21 12:28:18 -07:00
ac2c989dbb lazygit is default apparently 2024-07-21 12:28:18 -07:00
c4724007d3 no more verbose hm 2024-07-21 12:28:18 -07:00
716cf3a006 little-lightning: alacritty overrides 2024-07-21 12:28:18 -07:00
123b5740c2 alacritty: macos tweaks 2024-07-21 12:28:18 -07:00
f47a53c6b2 enabling things on laptop 2024-07-21 12:28:18 -07:00
ca830c5379 add laptop hm configuration 2024-07-21 12:28:18 -07:00
1efb42d2f5 removing redundant .cargo config 2024-07-21 12:28:18 -07:00
98555351f3 defaultPrograms should *not* be default hm 2024-07-21 12:28:18 -07:00
cfdb483ff5 flake: update 2024-07-19 00:25:25 -07:00
574753ff0b dwm: polkit-gnome-auth-agent 2024-07-18 22:45:04 -07:00
bb62038052 snowhawk: enable polkit 2024-07-17 18:26:13 -07:00
a3128c56ce override instead of define 2024-07-16 03:32:01 -07:00
6e10cdfed4 enable playerctl 2024-07-16 03:29:06 -07:00
6d9f543af8 custom playerctl service 2024-07-16 03:28:53 -07:00
63c2953b90 disable playerctl 2024-07-15 02:36:38 -07:00
83edf5666d cleaup: whitespace 2024-07-15 02:36:38 -07:00
6e3e2f134d remove useless variable 2024-07-15 02:36:38 -07:00
74054316b1 playerctl: shorten playerctl var 2024-07-12 17:44:50 -07:00
c5ae0732e4 playerctl: manual config generation 2024-07-12 17:43:26 -07:00
5f311c05f3 caveserver: add fzf 2024-07-12 07:52:17 +00:00
58b4cd9815 cleanup: extracting a command for funsies :P 2024-07-12 00:03:48 -07:00
773852b310 playerctl: add rolled sxhkd service 2024-07-11 23:58:37 -07:00
011a1601f6 playerctl: disable sxhkd 2024-07-11 23:33:08 -07:00
80e33aba09 playerctl: giving up on xsession
keybinds broken
2024-07-11 23:24:28 -07:00
971420fd32 snowhawk: remove redundant sops package 2024-07-11 14:51:17 -07:00
e59445a83c sops: include sops package 2024-07-11 21:49:11 +00:00
d4f3391cac msiserver: enable ssh 2024-07-11 21:44:35 +00:00
c945d00f61 msiserver: use user module 2024-07-11 21:40:59 +00:00
727b016567 user: username option 2024-07-11 21:39:37 +00:00
2954a57cf7 user: define default home directory using username 2024-07-11 21:24:11 +00:00
3c05f5e5a9 caveserver: enabling ssh 2024-07-11 21:15:43 +00:00
ba2cec8473 cleanup: moving nom next to rebuild commands 2024-07-11 21:08:05 +00:00
cb1a15d8d2 git: optional oauth 2024-07-11 21:07:52 +00:00
1c407de56d hm: rebuild command 2024-07-11 21:00:55 +00:00
23b93025c3 flake: caveserver 2024-07-11 21:00:55 +00:00
20d60fabdc ssh: caveserver key 2024-07-11 06:12:12 -07:00
1234f45107 sops: add caveserver host 2024-07-11 05:53:37 -07:00
14020f2cfa ssh: include config.d
this is to allow non-leaked hosts in my ssh config
2024-07-11 05:53:27 -07:00
a70575069a snowhawk: enable homeNetwork 2024-07-11 05:53:24 -07:00
02067516a8 ssh: home network option for ssh 2024-07-11 05:53:24 -07:00
344f34c061 feat: playerctl module
enable playerctl

playerctl package

adding sxhkd

enabling xsession

media keybinds
2024-07-11 04:13:33 -07:00
4e495a907d suspend script 2024-07-10 01:34:15 -07:00
9480e94ab7 I decided I hate with; 2024-07-09 03:04:23 -07:00
cddc4d6b1e dynamic module imports 2024-07-09 02:57:38 -07:00
448d806201 add msiserver private keys 2024-07-09 01:53:32 -07:00
88831b431c add msiserver config 2024-07-09 01:30:45 -07:00
521dc4a0ec add git.zynh.me to ssh hosts 2024-07-08 22:47:51 -07:00
e07dce7874 sops-nix ssh key 2024-07-08 21:05:25 -07:00
231fe8a462 adding sops package 2024-07-08 20:49:45 -07:00
0e39cd4599 flake update 2024-07-08 20:12:48 -07:00
9a8bd5c3cf neovim follow nixpkgs? 2024-07-08 19:54:34 -07:00
6f3a5d2f60 sops-nix input added 2024-07-08 19:17:46 -07:00
2a1c3629aa cursor was switched to theme long ago 2024-07-08 17:53:07 -07:00
ea469d1366 the extra default nix bothered me 2024-07-08 17:50:19 -07:00
0a0fb77cc0 make lib wrapper a single arg function 2024-07-08 17:07:15 -07:00
e1de2cc440 formatting and hostname for hm module 2024-07-08 14:53:13 -07:00
14281d5615 tmux conf? 2024-07-08 02:13:14 -07:00
0a97c222ee enable lazygit by default 2024-07-08 07:54:45 +00:00
8976333483 disable defaultPrograms on msiserver 2024-07-08 07:54:40 +00:00
93766bcee5 making home packages declaration cleaner 2024-07-08 07:52:40 +00:00
adee9b3cb6 remove manual packages from flake 2024-07-08 07:51:10 +00:00
27fa686c7f adding go to msiserver 2024-07-08 06:22:37 +00:00
f6f40f4254 adding config to msiserver/home.nix 2024-07-08 06:08:14 +00:00
9e2727a559 fix: lib.mkDefault 5head 2024-07-08 06:01:27 +00:00
1de6d430ed trying to get a hm config 2024-07-08 05:44:00 +00:00
38f1e14b89 inputs 2024-07-08 04:38:26 +00:00
d023a40fa2 test hm config? 2024-07-08 04:15:01 +00:00
07f0d1a465 rebase on pull 2024-07-07 15:49:28 -07:00
99c38b16fc lazygit binding? 2024-07-07 15:49:28 -07:00
17ee05fc04 refactor snowhawk settings 2024-07-07 15:41:49 -07:00
102f56e3b5 flake update 2024-07-07 15:40:56 -07:00
f6b00722c6 Revert "instant bootloader"
This reverts commit 054838677c.
2024-07-07 15:40:56 -07:00
cccd510fa3 browsers out of home 2024-07-07 15:40:56 -07:00
ffbf533d77 using a neovim package 2024-07-07 15:40:56 -07:00
568dc2f4ab Revert "forcing video?"
This reverts commit 017cdeea1335ebfd0bf3eea2362a313444443a1c.
2024-07-06 05:26:47 -07:00
1511886bfd forcing video? 2024-07-06 05:26:46 -07:00
8be91d56ee trying to fix plymouth 2024-07-05 13:15:04 -07:00
054838677c instant bootloader 2024-07-05 13:14:29 -07:00
1ee990513d steam time ig 2024-07-05 10:29:24 -07:00
247fa4a93b cleaning comments 2024-07-02 19:23:26 -07:00
f2b783011e trying prop drivers again 2024-07-02 13:11:43 -07:00
36e6907cfa override settings in dunst config 2024-07-01 23:51:23 -07:00
f522285fac make module accurate 2024-07-01 23:44:13 -07:00
ad2256f839 remove unused parameter 2024-07-01 23:42:45 -07:00
336a0f64cc adjust offset for dwm 2024-07-01 23:42:39 -07:00
39c7ffbe50 don't need no lib 2024-07-01 23:24:28 -07:00
647a8f2073 refactoring rose-pine-dunst.nix 2024-07-01 22:54:12 -07:00
ecedb9774d collapsing some things for vertical space 2024-07-01 22:06:48 -07:00
7eb7f15b6d color fix 2024-07-01 22:02:54 -07:00
797f33bf5f dunst module 2024-07-01 20:36:32 -07:00
0e0b28fbb1 BROKEN: rose-pine dunst config 2024-07-01 13:51:33 -07:00
8c888b693a plymouth 2024-07-01 13:41:15 -07:00
1b4943b566 Revert "dconf enable and qt theme in theme.nix"
This reverts commit 17fea084aa.

oops, tried moving a config.nix to a home.nix
2024-07-01 13:08:01 -07:00
17fea084aa dconf enable and qt theme in theme.nix 2024-07-01 12:48:11 -07:00
9e9fc56b23 rename rose-pine-cursor.nix 2024-07-01 12:46:07 -07:00
f57051cca7 extend cursor themeing to overall themeing 2024-07-01 12:46:07 -07:00
a450a41293 fish shell abbrv for xclip pipe copy 2024-06-30 17:12:55 -07:00
18291b9c8c we call this the double yoinky sploinky 2024-06-30 17:10:27 -07:00
ef69f11e2a push to commit lazygit 2024-06-30 17:06:06 -07:00
7a3bc48c57 beta nvidia driver 2024-06-30 16:26:16 -07:00
f735a5a70d prefer dark 2024-06-30 14:29:26 -07:00
559a1b9543 rose-pine gtk 2024-06-30 14:26:31 -07:00
493dc96dad disable easyeffects package 2024-06-30 14:21:01 -07:00
da7afab764 obsidian time 2024-06-30 14:17:38 -07:00
75a6dfa693 syncthing module 2024-06-30 14:17:38 -07:00
e798c797b5 lazygit config 2024-06-30 09:59:19 -07:00
60ccf1a5fc moving env stuff to dedicated config 2024-06-30 02:11:01 -07:00
37bfc5f400 moving hardware config to hardware config 2024-06-30 02:04:12 -07:00
d3ccccb5a4 moving stuff to home 2024-06-30 02:01:47 -07:00
0ddc4a61bb bleh 2024-06-30 01:55:03 -07:00
cbdb8909c0 oops 2024-06-30 01:53:54 -07:00
e3bacc7e2e enable audio :/ 2024-06-30 01:53:21 -07:00
ae3b0eed25 audio group time 2024-06-30 01:48:55 -07:00
f12a60c50e pulsemixer 2024-06-30 01:43:05 -07:00
1285337ae1 uhk is a home thing 2024-06-30 01:26:45 -07:00
54a7a82651 moving xclip to dwm setup 2024-06-30 01:24:09 -07:00
59b62ac042 audio nixosmodule 2024-06-30 01:07:09 -07:00
1701ade73f cleaning audio stuff 2024-06-30 01:05:38 -07:00
487d68de12 disabling extra rules 2024-06-30 01:04:15 -07:00
d8c51cbb94 comments 2024-06-30 01:03:47 -07:00
7d437e6e0f pam no work (not using pam?) 2024-06-30 01:03:04 -07:00
9730670d2a mediakeys no work 2024-06-30 01:02:35 -07:00
9c71c28c16 forceFullCompositionPipeline 2024-06-29 23:49:03 -07:00
66eb499ad0 uhk-agent bb 2024-06-29 22:13:05 -07:00
52af30d67d mediakeys? 2024-06-29 22:13:01 -07:00
aec4732e4c gnome theme maybe? 2024-06-28 20:58:08 -07:00
1da378b6c8 gnome keyring 2024-06-28 20:54:17 -07:00
78696ad16d disable easyeffects buggy audiop 2024-06-28 20:45:44 -07:00
b831f9be33 easyeffects daemon 2024-06-28 20:35:43 -07:00
3184cb2e4a trying out backgrounds input 2024-06-28 20:27:15 -07:00
ae54ad7e5d nixpkgs follow? 2024-06-28 20:20:52 -07:00
c44aa23749 easyeffects 2024-06-28 20:18:20 -07:00
920a2d8886 resigned system service 2024-06-28 19:28:07 -07:00
5b015349c0 trying hm service 2024-06-28 19:25:15 -07:00
2c3c3cc854 moving nom package 2024-06-28 19:25:07 -07:00
0df91fa659 removing redundant i18n settings 2024-06-28 19:06:54 -07:00
e01daac2fc no more sudo, no more teachers 2024-06-28 19:05:40 -07:00
6e07261ae1 nixos-rebuild sudoers 2024-06-28 19:04:10 -07:00
13c0a48a80 removing redundant package 2024-06-28 18:57:30 -07:00
fede17c7b4 minor formatting 2024-06-28 18:38:54 -07:00
580e868f5a moving internationalization 2024-06-28 18:38:03 -07:00
4b72214967 enable xserver in dwm module 2024-06-28 18:35:31 -07:00
23e4691c6e giving up on xrandrHeads for now 2024-06-28 18:24:57 -07:00
3b9cd8ae5f moving randr to hardware 2024-06-28 17:57:08 -07:00
4118fd205a ordering randr 2024-06-28 08:31:47 -07:00
518127d717 removing example, I have one now 2024-06-28 08:30:35 -07:00
14fb55f58d cleaning up unused args 2024-06-28 08:28:31 -07:00
11e83097e6 movin stuff around 2024-06-28 08:27:44 -07:00
8d0d9f5320 another tiny default.nix! 2024-06-28 08:25:24 -07:00
e89290dc18 removing comments 2024-06-28 08:20:31 -07:00
1ac2f73ee6 flake update bb 2024-06-28 08:12:19 -07:00
fec907a117 more formatting 2024-06-28 08:06:07 -07:00
71f67f08ee more formatting? 2024-06-28 08:03:01 -07:00
7486f2409b formatting? 2024-06-28 07:55:01 -07:00
608982d8f2 more rework 2024-06-28 07:52:41 -07:00
4213303810 steamrun good actually
it just sets up a sick FHS for you
2024-06-28 07:35:21 -07:00
293770f4f8 sync vm configs 2024-06-28 07:34:26 -07:00
b3dbcde44d sprite needs love too: mirror nixos home 2024-06-28 07:30:46 -07:00
6244f06b92 won't be using hyprland here 2024-06-28 07:30:46 -07:00
0b358f8b0a TODO: fix vm bootloader 2024-06-28 07:30:46 -07:00
059e31b9d3 cleanup comments 2024-06-28 07:30:46 -07:00
f19ba4201d adjust nixos vm config 2024-06-28 07:30:46 -07:00
eb1fcb8205 system specific stuff 2024-06-28 07:30:46 -07:00
48d80fc4b8 fix swank unicode 2024-06-28 07:30:22 -07:00
aaab14ff8c the big move 2024-06-28 07:14:54 -07:00
0431b86525 generic nixosConfigurations 2024-06-28 07:14:54 -07:00
d4b83fd5a4 unbackupfileextension 2024-06-28 00:12:26 -07:00
bb150a1427 backupfileextension 2024-06-28 00:12:26 -07:00
76ee520d78 easyeffects module 2024-06-27 23:30:07 -07:00
c7923e6ae6 filetypes 2024-06-27 23:30:07 -07:00
e26d290125 switching to the daemon 2024-06-27 23:30:07 -07:00
381dfb4380 dconf 2024-06-27 23:30:07 -07:00
d8a13c0b6b easyeffects 2024-06-27 23:30:07 -07:00
9101f09131 killall time bb 2024-06-27 22:34:25 -07:00
82fda2d900 move brave + filetypes 2024-06-27 22:31:45 -07:00
fa52813d59 nixos smh 2024-06-27 20:59:01 -07:00
a850312fc4 remove unneeded shebang 2024-06-27 20:29:26 -07:00
1652011473 Revert "DISPLAY or something?"
This reverts commit af4f7265e0.
2024-06-27 20:26:26 -07:00
998af79fb6 adding gcc 2024-06-27 20:19:32 -07:00
af4f7265e0 DISPLAY or something? 2024-06-27 20:19:32 -07:00
bfd130c879 cargo bin bb 2024-06-27 20:19:32 -07:00
9f3082ff5a dwm datetime 2024-06-27 19:23:33 -07:00
2b353ac1bd numlock 2024-06-27 19:23:33 -07:00
6c4d4263f7 remove shell config
it just works on its own
2024-06-27 16:22:47 -07:00
49d283b4d8 add imagemagick 2024-06-27 15:21:15 -07:00
f900ad61f5 refactor 2024-06-27 15:11:33 -07:00
fc389370f4 projects folder 2024-06-27 15:02:37 -07:00
f85c28c4ce fish rebuild script?
good enough
2024-06-26 02:35:46 -07:00
68a191cacd feh in home packages (for now) 2024-06-26 02:35:11 -07:00
186964c1a7 nom 2024-06-26 02:35:11 -07:00
f2ac717244 picom 2024-06-26 02:11:41 -07:00
a5760ca511 envfs 2024-06-26 01:50:53 -07:00
f8e2fa011b open source bb 2024-06-26 01:47:27 -07:00
b66fcea3b8 updating 2024-06-26 01:37:59 -07:00
7a95aa76fa I need to move dwm to home 2024-06-06 20:58:35 -07:00
91adc5497b fix typo 2024-06-06 20:08:25 -07:00
6990913c6d cursor theme! 2024-06-06 20:04:16 -07:00
563a668e7b whitespace 2024-06-06 20:04:07 -07:00
037c5547a1 data drive 2024-06-06 19:51:59 -07:00
8ca6c49952 nvidia 2024-06-06 19:51:56 -07:00
03eb5eb0f8 cleanup hardware configs 2024-06-06 19:00:48 -07:00
79ce9a95cc dwm works bb 2024-06-06 18:42:54 -07:00
a50937c59a upgrade season <3 2024-06-05 17:59:42 -07:00
8edf7fad7c remove hints enabled (I was using default anyway) 2024-06-03 02:50:55 -07:00
546cf7efca switch to default.nix for nixos modules 2024-06-02 21:32:15 -07:00
e9508bcb09 readd color and add font size 2024-05-31 04:00:55 -07:00
950eaea9c4 arandr 2024-05-31 02:34:59 -07:00
4c73b0cf42 wHiTsPaCe 2024-05-31 02:29:49 -07:00
29ad0a929a budgie for safety 2024-05-31 02:05:21 -07:00
0f94e0cf1c FIXME: Alacritty config 2024-05-31 01:51:08 -07:00
c399eb7b1a using dwm, no config yet 2024-05-31 01:50:59 -07:00
fdf5ce79bf fix diff targets 2024-05-31 01:50:31 -07:00
4189203192 update diffs for both 6.4 and 6.5 2024-05-31 01:25:09 -07:00
9c73eeb315 dwm maybe? 2024-05-30 22:58:55 -07:00
602d727052 match arch alacritty config 2024-05-30 22:10:32 -07:00
ecc28a3d24 correct font styles in alacritty 2024-05-30 22:01:14 -07:00
1e1eb0a547 user module 2024-05-30 17:15:40 -07:00
84b7c70e27 neovim related home variables should be set with the neovim module 2024-05-30 17:10:06 -07:00
3e60e27695 tmux module 2024-05-30 14:01:29 -07:00
8c181b811e Whoops 2024-05-30 00:13:04 -07:00
2cc050cc13 assume unchanged aliases 2024-05-30 00:08:57 -07:00
1bf3b68f48 reorg 2024-05-29 23:57:51 -07:00
50286d4fb1 fzf native works now I think 2024-05-29 23:46:12 -07:00
5990c5d258 cleanup 2024-05-29 23:34:10 -07:00
ab1f001742 remove unneeded parenthesis 2024-05-29 22:56:58 -07:00
b70c840083 rust style consolidation 2024-05-29 22:42:45 -07:00
9addc8b4ca making nil happy 2024-05-29 22:40:57 -07:00
64d7c4f5f2 fixup ecc8ed4b 2024-05-29 22:39:56 -07:00
ecc8ed4bd9 reorganizing and deduping packages 2024-05-29 22:37:28 -07:00
342ca6e2f6 cleanup on aisle home 2024-05-29 22:00:24 -07:00
6543588596 git is a proper module now 2024-05-29 21:59:06 -07:00
1e7079e54c fish module 2024-05-29 21:54:42 -07:00
1e87bd7221 alacritty is now a proper module 2024-05-29 20:50:00 -07:00
cd936d590c better comment 2024-05-29 20:46:02 -07:00
6ee41f0135 description change 2024-05-29 20:43:48 -07:00
043b1668a2 default for lib modules 2024-05-29 20:42:31 -07:00
f011d8c78d neovim.nix 2024-05-29 20:31:14 -07:00
fc92f1a5b9 removing redundant comments 2024-05-29 20:07:25 -07:00
0f3a5ec38e cleaning nil warnings 2024-05-29 19:59:35 -07:00
e4823110b1 alacritty 2024-05-29 19:58:14 -07:00
ab61c51afe add nixpkgs-fmt 2024-05-29 19:58:11 -07:00
0a583090db packages and no coc 2024-05-29 19:35:01 -07:00
5f06e84522 globally ignore Session.vim 2024-05-29 19:25:53 -07:00
7ae9497f49 hm not nixos 2024-05-29 16:35:07 -07:00
c84a021f97 remove swanky package 2024-05-29 16:27:19 -07:00
a8c727b880 relocate bash config 2024-05-29 16:27:19 -07:00
818af704a1 with python and ruby 2024-05-29 15:59:32 -07:00
bcbf30fd2e reorganize neovim hm 2024-05-29 15:58:08 -07:00
c06618330b disable some chromium stuff by default 2024-05-29 15:55:03 -07:00
c229218fac neovim nightly overlay 2024-05-29 15:23:56 -07:00
652f0a4c57 switch to allgrammers 2024-05-29 15:23:44 -07:00
cf890bde0c packages in home 2024-05-29 14:38:34 -07:00
3ab3e29786 nvim in home 2024-05-29 14:36:57 -07:00
edf807c9e0 adding nixosvm 2024-05-29 14:23:03 -07:00
88b5ca00e2 organizing some packages 2024-05-29 14:15:43 -07:00
1a23900ae5 auto optimize store 2024-05-29 14:14:44 -07:00
593610bba7 add tree-sitter and python3 2024-02-28 21:09:02 -08:00
717736993c fish.nix 2024-02-28 20:56:42 -08:00
51104c5387 shuffle around fish-config 2024-02-28 20:52:51 -08:00
1244a55fc8 relocate git config 2024-02-28 20:43:07 -08:00
9305e26252 remove old valcat import 2024-02-28 20:38:58 -08:00
ce1d4e71ab proper git input 2024-02-28 20:37:01 -08:00
7b5c3b956c broken reading fish_prompt 2024-02-28 20:02:44 -08:00
ca2b59c942 goodbye comments 2024-02-28 19:35:44 -08:00
524fafc36c use xdg config home 2024-02-28 19:35:23 -08:00
1fe6b38adf symlinking works for now 2024-02-28 19:33:40 -08:00
0385a1430a fix oos symlink 2024-02-28 18:35:21 -08:00
f1ca2bc8fd symlink valcat 2024-02-28 18:22:11 -08:00
93937e5113 omf theme automated 2024-02-28 05:23:25 -08:00
71bc549799 use proper system for different hosts 2024-02-28 05:01:07 -08:00
f0cd40b2a3 move hostname to hardware config 2024-02-28 04:45:45 -08:00
109 changed files with 7970 additions and 390 deletions

1
.gitignore vendored
View file

@ -1 +1,2 @@
result/
target/

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "fish/themes/val-cat"]
path = fish/themes/val-cat
url = https://git.zynh.me/Zynh0722/omf-theme.git

13
.sops.yaml Normal file
View file

@ -0,0 +1,13 @@
keys:
users:
- &ravenshade age1zgd7qpj7vc4gjtetttqgp32aw75fmnjrw6ax2x2meul2w4jclytszvutdd
hosts:
- &snowhawk age1s549sffdhu2yyfk9h06hhks7xc4mqq9a6k53dleurr7y3rmuudpqwz24gv
- &llynx age1vtsdlkxr3wuy5vtrpwfdr6sy7duzl06htusdu3as2knvfzvhhakqmc70rj
creation_rules:
- path_regex: secrets.yaml$
key_groups:
- age:
- *ravenshade
- *snowhawk
- *llynx

140
builders.nix Normal file
View file

@ -0,0 +1,140 @@
{ nixpkgs, nix-darwin, self, ... }@inputs:
let
makePkgs = system: (import nixpkgs {
inherit system;
config.allowUnfree = true;
overlays = [
self.overlays.default
inputs.niri.overlays.niri
# inputs.lix-module.overlays.default
inputs.zdwl.overlays.default
inputs.frc-nix.overlays.default
(final: prev: ({
star-citizen = inputs.nix-gaming.packages.${prev.system}.star-citizen;
}))
(final: prev: {
tmux = prev.tmux.overrideAttrs (old: rec {
version = "3.5";
src = prev.fetchFromGitHub {
owner = "tmux";
repo = "tmux";
rev = version;
hash = "sha256-8CRZj7UyBhuB5QO27Y+tHG62S/eGxPOHWrwvh1aBqq0=";
};
});
})
(final: prev: {
lutris-unwrapped = prev.lutris-unwrapped.overrideAttrs (old: rec {
version = "0.5.18";
src = prev.fetchFromGitHub {
owner = "lutris";
repo = "lutris";
rev = "v${version}";
hash = "sha256-dI5hqWBWrOGYUEM9Mfm7bTh7BEc4e+T9gJeiZ3BiqmE=";
};
});
})
(final: prev: {
uhk-agent = prev.uhk-agent.overrideAttrs (old: rec {
pname = "uhk-agent";
version = "5.0.2";
src = prev.fetchurl {
url = "https://github.com/UltimateHackingKeyboard/agent/releases/download/v${version}/UHK.Agent-${version}-linux-x86_64.AppImage";
name = "${pname}-${version}.AppImage";
sha256 = "sha256-A0ALw5noXeeCGvWEFJMyYeNb9mMHyr3DC3T0yK1MQoM=";
};
});
})
];
});
lib = nixpkgs.lib.extend (import ./lib);
inherit (inputs.home-manager.lib) homeManagerConfiguration;
inherit (lib) nixosSystem;
inherit (lib.strings) optionalString;
inherit (lib.attrsets) nameValuePair;
in
rec {
toPartialNixosConfig =
{ hostname, system ? "x86_64-linux" }:
nameValuePair
hostname
(nixosSystem rec {
pkgs = makePkgs system;
specialArgs = { inherit inputs self; };
modules = [
./hosts/${hostname}/hardware-configuration.nix
./hosts/${hostname}/configuration.nix
inputs.home-manager.nixosModules.default
inputs.chaotic.nixosModules.default
inputs.niri.nixosModules.niri
{
home-manager.extraSpecialArgs = {
inherit inputs self pkgs;
lib = pkgs.lib.extend (_: _: inputs.home-manager.lib);
};
}
];
});
toPartialHomeManagerConfig =
{ user, system ? "x86_64-linux", hostname ? "", configHostname ? "" }:
let
configHost = if builtins.stringLength configHostname > 0 then configHostname else hostname;
hostStr = optionalString (builtins.stringLength hostname > 0) "@${hostname}";
in
assert lib.assertMsg (builtins.stringLength configHost > 0) "either configHostname or hostname need to exist";
nameValuePair
"${user}${hostStr}"
(homeManagerConfiguration {
pkgs = makePkgs system;
extraSpecialArgs = { inherit inputs self; };
modules = [
inputs.chaotic.homeManagerModules.default
./hosts/${configHost}/home.nix
];
});
toPartialDarwinConfig =
{ hostname, system ? "aarch64-darwin", }:
nameValuePair
hostname
(nix-darwin.lib.darwinSystem rec {
pkgs = makePkgs system;
specialArgs = { inherit inputs self; };
modules = [
inputs.home-manager.darwinModules.home-manager
./hosts/${hostname}/configuration.nix
{
home-manager.extraSpecialArgs = {
inherit inputs self pkgs;
lib = pkgs.lib.extend (_: _: inputs.home-manager.lib);
};
}
];
});
compileSystems =
toPartialConfiguration:
systems:
lib.right
builtins.listToAttrs
(map toPartialConfiguration)
systems;
compileNixosSystems = compileSystems toPartialNixosConfig;
compileDarwinSystems = compileSystems toPartialDarwinConfig;
compileHomes = compileSystems toPartialHomeManagerConfig;
}

View file

@ -1,181 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, inputs, ... }:
{
imports = [ inputs.home-manager.nixosModules.default ];
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "snowhawk"; # Define your hostname.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
fonts.packages = with pkgs; [
(nerdfonts.override { fonts = [ "JetBrainsMono" ]; })
];
# Set your time zone.
time.timeZone = "America/Los_Angeles";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
# Enable the X11 windowing system.
services.xserver.enable = true;
# Enable the XFCE Desktop Environment.
services.xserver.displayManager.lightdm.enable = true;
services.xserver.desktopManager.budgie.enable = true;
# services.xserver.windowManager.dwm.enable = true;
# Configure keymap in X11
services.xserver = {
xkb = {
layout = "us";
variant = "";
};
};
# Enable CUPS to print documents.
services.printing.enable = true;
# Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
programs.nix-ld.enable = true;
# programs.nix-ld.libraries = with pkgs; [
#
# ];
# Define a user account. Don't forget to set a password with passwd.
users.users.ravenshade = {
isNormalUser = true;
description = "Zynh Ludwig";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [
rustup
neovim
gparted
fish
gnumake
zig
go
nil
xclip
wezterm
firefox
fzf
tree
lazygit
ripgrep
nodejs_21
dotnet-sdk_8
unzip
nixpkgs-fmt
lua-language-server
stylua
steam
spotify
discord
git-credential-oauth
];
};
# Enable automatic login for the user.
services.xserver.displayManager.autoLogin = {
enable = true;
user = "ravenshade";
};
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = { "ravenshade" = import ./home.nix; };
};
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
programs.bash = {
interactiveShellInit = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
# programs.hyprland.enable = true;
# environment.sessionVariables.NIXOS_OZONE_WL = "1";
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
neovim
curl
git
];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment?
}

@ -1 +0,0 @@
Subproject commit 75549ce64044336ed14e502f1c1ab8bf98184990

1718
flake.lock

File diff suppressed because it is too large Load diff

View file

@ -1,38 +1,82 @@
{
description = "Nixos config flake";
description = "snowhawk: a nixos configuration flake";
inputs = {
# Nix
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
lix-module = { url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.0.tar.gz"; inputs.nixpkgs.follows = "nixpkgs"; };
home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; };
sops-nix = { url = "github:mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
nh = { url = "github:viperML/nh"; inputs.nixpkgs.follows = "nixpkgs"; };
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
# Desktop
hyprland = { url = "github:hyprwm/Hyprland"; };
hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; };
split-monitor-workspaces = { url = "github:Duckonaut/split-monitor-workspaces"; inputs.hyprland.follows = "hyprland"; };
anyrun = { url = "github:anyrun-org/anyrun"; inputs.nixpkgs.follows = "nixpkgs"; };
niri = { url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; };
# Themeing
dunst-theme = { url = "github:d2718nis/rose-pine-dunst"; flake = false; };
fish_theme = { url = "git+https://git.zynh.me/Zynh0722/omf-theme"; flake = false; };
backgrounds = { url = "git+https://git.zynh.me/Zynh0722/backgrounds"; inputs.nixpkgs.follows = "nixpkgs"; };
rose-pine-swaync = { url = "github:rose-pine/swaync"; flake = false; };
rose-pine-hyprcursor = { url = "github:ndom91/rose-pine-hyprcursor"; inputs.nixpkgs.follows = "nixpkgs"; inputs.hyprlang.follows = "hyprland/hyprlang"; };
# Owie Sharp
neovim-overlay = { url = "github:nix-community/neovim-nightly-overlay"; inputs.nixpkgs.follows = "nixpkgs"; };
chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
# Some of my stuff
repo-clone.url = "git+https://git.zynh.me/Zynh0722/repo-clone";
zdwm = { url = "git+https://git.zynh.me/Zynh0722/dwm?ref=preanybar-systray"; flake = false; };
zdwl = { url = "git+https://git.zynh.me/Zynh0722/dwl?ref=0.7"; inputs.nixpkgs.follows = "nixpkgs"; };
# aarch
nix-darwin = { url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; };
nixos-apple-silicon = { url = "github:Lederstrumpf/nixos-apple-silicon/mesa-changes"; };
# FRC
frc-nix = { url = "github:Zynh0722/frc-nix"; inputs.nixpkgs.follows = "nixpkgs"; };
# Gaming
umu = { url = "github:Open-Wine-Components/umu-launcher?dir=packaging/nix"; inputs.nixpkgs.follows = "nixpkgs"; };
nix-gaming.url = "github:fufexan/nix-gaming";
deploy-rs = { url = "github:serokell/deploy-rs"; inputs.nixpkgs.follows = "nixpkgs"; };
};
outputs = { self, nixpkgs, ... }@inputs:
outputs =
{ self, nixpkgs, deploy-rs, ... }@inputs:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
builders = import ./builders.nix inputs;
in
{
nixosConfigurations = {
snowhawk = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
./hosts/snowhawk/hardware-configuration.nix
./configuration.nix
inputs.home-manager.nixosModules.default
];
nixosConfigurations = builders.compileNixosSystems [
{ hostname = "snowhawk"; }
{ hostname = "llynx"; system = "aarch64-linux"; }
];
darwinConfigurations = builders.compileDarwinSystems [
{ hostname = "lynx"; }
];
homeConfigurations = builders.compileHomes [
{ user = "zynh"; hostname = "msiserver"; }
{ user = "val"; hostname = "caveserver"; }
{ user = "ravenshade"; hostname = "permafrost"; }
];
deploy =
let homeConfigPath = username: deploy-rs.lib.x86_64-linux.activate.home-manager self.homeConfigurations.${username};
in {
sshUser = "ravenshade";
nodes.permafrost = {
hostname = "permafrost.local";
profiles.home.path = homeConfigPath "ravenshade@permafrost";
};
};
sprite = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
modules = [
./hosts/sprite/hardware-configuration.nix
./configuration.nix
inputs.home-manager.nixosModules.default
];
};
};
overlays.default = import ./pkgs;
};
}

128
home.nix
View file

@ -1,128 +0,0 @@
{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the paths it should
# manage.
home.username = "ravenshade";
home.homeDirectory = "/home/ravenshade";
# This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes.
#
# You should not change this value, even if you update Home Manager. If you do
# want to update the value, then make sure to first check the Home Manager
# release notes.
home.stateVersion = "23.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your
# environment.
home.packages = [
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
# # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts?
# (pkgs.nerdfonts.override { fonts = [ "FantasqueSansMono" ]; })
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
};
home.sessionVariables = {
EDITOR = "nvim";
MANPAGER = "nvim +Man!";
};
programs.fish = {
enable = true;
interactiveShellInit = ''
set -U fish_greeting
if status is-interactive
# Commands to run in interactive sessions can go here
end
function fish_user_key_bindings
# Execute this once per mode that emacs bindings should be used in
fish_default_key_bindings -M insert
# Then execute the vi-bindings so they take precedence when there's a conflict.
# Without --no-erase fish_vi_key_bindings will default to
# resetting all bindings.
# The argument specifies the initial mode (insert, "default" or visual).
fish_vi_key_bindings --no-erase insert
bind \cf 'fg 2>/dev/null; commandline -f repaint'
end
'';
};
programs.git = {
enable = true;
userName = "Zynh Ludwig";
userEmail = "zynh0722@gmail.com";
aliases = {
co = "checkout";
ci = "commit";
st = "status";
br = "branch";
hist = "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short";
type = "cat-file -t";
dump = "cat-file -p";
graph = "log --graph --decorate --pretty=oneline --abbrev-commit";
};
extraConfig = {
init.defaultBranch = "main";
core = {
editor = "nvim";
autocrlf = "input";
safecrlf = true;
};
credential = {
helper = [
"cache --timeout 7200"
"oauth"
];
"https://git.zynh.me" = {
oauthClientId = "13d5b95d-565d-4264-8961-c45cc38eaa8a";
oauthScopes = "read_repository write_repository";
oauthAuthURL = "/login/oauth/authorize";
oauthTokenURL = "/login/oauth/access_token";
};
};
};
};
# wayland.windowManager.hyprland = {
# enable = true;
# package = pkgs.hyprland;
# xwayland.enable = true;
# systemd.enable = true;
# };
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}

View file

@ -0,0 +1,213 @@
complete -c rustup -n "__fish_use_subcommand" -s v -l verbose -d 'Enable verbose output'
complete -c rustup -n "__fish_use_subcommand" -s q -l quiet -d 'Disable progress output'
complete -c rustup -n "__fish_use_subcommand" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_use_subcommand" -s V -l version -d 'Print version'
complete -c rustup -n "__fish_use_subcommand" -f -a "dump-testament" -d 'Dump information about the build'
complete -c rustup -n "__fish_use_subcommand" -f -a "show" -d 'Show the active and installed toolchains or profiles'
complete -c rustup -n "__fish_use_subcommand" -f -a "install" -d 'Update Rust toolchains'
complete -c rustup -n "__fish_use_subcommand" -f -a "uninstall" -d 'Uninstall Rust toolchains'
complete -c rustup -n "__fish_use_subcommand" -f -a "update" -d 'Update Rust toolchains and rustup'
complete -c rustup -n "__fish_use_subcommand" -f -a "check" -d 'Check for updates to Rust toolchains and rustup'
complete -c rustup -n "__fish_use_subcommand" -f -a "default" -d 'Set the default toolchain'
complete -c rustup -n "__fish_use_subcommand" -f -a "toolchain" -d 'Modify or query the installed toolchains'
complete -c rustup -n "__fish_use_subcommand" -f -a "target" -d 'Modify a toolchain\'s supported targets'
complete -c rustup -n "__fish_use_subcommand" -f -a "component" -d 'Modify a toolchain\'s installed components'
complete -c rustup -n "__fish_use_subcommand" -f -a "override" -d 'Modify toolchain overrides for directories'
complete -c rustup -n "__fish_use_subcommand" -f -a "run" -d 'Run a command with an environment configured for a given toolchain'
complete -c rustup -n "__fish_use_subcommand" -f -a "which" -d 'Display which binary will be run for a given command'
complete -c rustup -n "__fish_use_subcommand" -f -a "doc" -d 'Open the documentation for the current toolchain'
complete -c rustup -n "__fish_use_subcommand" -f -a "man" -d 'View the man page for a given command'
complete -c rustup -n "__fish_use_subcommand" -f -a "self" -d 'Modify the rustup installation'
complete -c rustup -n "__fish_use_subcommand" -f -a "set" -d 'Alter rustup settings'
complete -c rustup -n "__fish_use_subcommand" -f -a "completions" -d 'Generate tab-completion scripts for your shell'
complete -c rustup -n "__fish_use_subcommand" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from dump-testament" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -s v -l verbose -d 'Enable verbose output with rustc information for all installed toolchains'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "active-toolchain" -d 'Show the active toolchain'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "home" -d 'Display the computed value of RUSTUP_HOME'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "profile" -d 'Show the default profile used for the `rustup install` command'
complete -c rustup -n "__fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from active-toolchain" -s v -l verbose -d 'Enable verbose output with rustc information'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from active-toolchain" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from home" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from profile" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "active-toolchain" -d 'Show the active toolchain'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "home" -d 'Display the computed value of RUSTUP_HOME'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "profile" -d 'Show the default profile used for the `rustup install` command'
complete -c rustup -n "__fish_seen_subcommand_from show; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from install" -l profile -r -f -a "{minimal '',default '',complete ''}"
complete -c rustup -n "__fish_seen_subcommand_from install" -l no-self-update -d 'Don\'t perform self-update when running the `rustup install` command'
complete -c rustup -n "__fish_seen_subcommand_from install" -l force -d 'Force an update, even if some components are missing'
complete -c rustup -n "__fish_seen_subcommand_from install" -l force-non-host -d 'Install toolchains that require an emulator. See https://github.com/rust-lang/rustup/wiki/Non-host-toolchains'
complete -c rustup -n "__fish_seen_subcommand_from install" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from uninstall" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from update" -l no-self-update -d 'Don\'t perform self update when running the `rustup update` command'
complete -c rustup -n "__fish_seen_subcommand_from update" -l force -d 'Force an update, even if some components are missing'
complete -c rustup -n "__fish_seen_subcommand_from update" -l force-non-host -d 'Install toolchains that require an emulator. See https://github.com/rust-lang/rustup/wiki/Non-host-toolchains'
complete -c rustup -n "__fish_seen_subcommand_from update" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from check" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from default" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed toolchains'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "install" -d 'Install or update a given toolchain'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "uninstall" -d 'Uninstall a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "link" -d 'Create a custom toolchain by symlinking to a directory'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from list" -s v -l verbose -d 'Enable verbose output with toolchain information'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -l profile -r -f -a "{minimal '',default '',complete ''}"
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -s c -l component -d 'Add specific components on installation' -r
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -s t -l target -d 'Add specific targets on installation' -r
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -l no-self-update -d 'Don\'t perform self update when running the`rustup toolchain install` command'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -l force -d 'Force an update, even if some components are missing'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -l allow-downgrade -d 'Allow rustup to downgrade the toolchain to satisfy your component choice'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -l force-non-host -d 'Install toolchains that require an emulator. See https://github.com/rust-lang/rustup/wiki/Non-host-toolchains'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from install" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from uninstall" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from link" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed toolchains'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "install" -d 'Install or update a given toolchain'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "uninstall" -d 'Uninstall a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "link" -d 'Create a custom toolchain by symlinking to a directory'
complete -c rustup -n "__fish_seen_subcommand_from toolchain; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed and available targets'
complete -c rustup -n "__fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "add" -d 'Add a target to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "remove" -d 'Remove a target from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from list" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from list" -l installed -d 'List only installed targets'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from add" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from add" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from remove" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from remove" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed and available targets'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "add" -d 'Add a target to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "remove" -d 'Remove a target from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from target; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed and available components'
complete -c rustup -n "__fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "add" -d 'Add a component to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "remove" -d 'Remove a component from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from list" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from list" -l installed -d 'List only installed components'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from add" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from add" -l target -r
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from add" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from remove" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from remove" -l target -r
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from remove" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List installed and available components'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "add" -d 'Add a component to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "remove" -d 'Remove a component from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from component; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List directory toolchain overrides'
complete -c rustup -n "__fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "set" -d 'Set the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "unset" -d 'Remove the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from list" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from set" -l path -d 'Path to the directory' -r
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from set" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from unset" -l path -d 'Path to the directory' -r
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from unset" -l nonexistent -d 'Remove override toolchain for all nonexistent directories'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from unset" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "list" -d 'List directory toolchain overrides'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "set" -d 'Set the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "unset" -d 'Remove the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from override; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from run" -l install -d 'Install the requested toolchain if needed'
complete -c rustup -n "__fish_seen_subcommand_from run" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from which" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', \'1.8.0\', or a custom toolchain name. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from which" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from doc" -l path -d 'Only print the path to the documentation'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l alloc -d 'The Rust core allocation and collections library'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l book -d 'The Rust Programming Language book'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l cargo -d 'The Cargo Book'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l core -d 'The Rust Core Library'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l edition-guide -d 'The Rust Edition Guide'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l nomicon -d 'The Dark Arts of Advanced and Unsafe Rust Programming'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l proc_macro -d 'A support library for macro authors when defining new macros'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l reference -d 'The Rust Reference'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l rust-by-example -d 'A collection of runnable examples that illustrate various Rust concepts and standard libraries'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l rustc -d 'The compiler for the Rust programming language'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l rustdoc -d 'Documentation generator for Rust projects'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l std -d 'Standard library API documentation'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l test -d 'Support code for rustc\'s built in unit-test and micro-benchmarking framework'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l unstable-book -d 'The Unstable Book'
complete -c rustup -n "__fish_seen_subcommand_from doc" -l embedded-book -d 'The Embedded Rust Book'
complete -c rustup -n "__fish_seen_subcommand_from doc" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from man" -l toolchain -d 'Toolchain name, such as \'stable\', \'nightly\', or \'1.8.0\'. For more information see `rustup help toolchain`' -r
complete -c rustup -n "__fish_seen_subcommand_from man" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "update" -d 'Download and install updates to rustup'
complete -c rustup -n "__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "uninstall" -d 'Uninstall rustup.'
complete -c rustup -n "__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "upgrade-data" -d 'Upgrade the internal data format.'
complete -c rustup -n "__fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from update" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from uninstall" -s y
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from uninstall" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from upgrade-data" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "update" -d 'Download and install updates to rustup'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "uninstall" -d 'Uninstall rustup.'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "upgrade-data" -d 'Upgrade the internal data format.'
complete -c rustup -n "__fish_seen_subcommand_from self; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "default-host" -d 'The triple used to identify toolchains when not specified'
complete -c rustup -n "__fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "profile" -d 'The default components installed with a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "auto-self-update" -d 'The rustup auto self update mode'
complete -c rustup -n "__fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from default-host" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from profile" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from auto-self-update" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "default-host" -d 'The triple used to identify toolchains when not specified'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "profile" -d 'The default components installed with a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "auto-self-update" -d 'The rustup auto self update mode'
complete -c rustup -n "__fish_seen_subcommand_from set; and __fish_seen_subcommand_from help; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from completions" -s h -l help -d 'Print help'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "dump-testament" -d 'Dump information about the build'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "show" -d 'Show the active and installed toolchains or profiles'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "install" -d 'Update Rust toolchains'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "uninstall" -d 'Uninstall Rust toolchains'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "update" -d 'Update Rust toolchains and rustup'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "check" -d 'Check for updates to Rust toolchains and rustup'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "default" -d 'Set the default toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "toolchain" -d 'Modify or query the installed toolchains'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "target" -d 'Modify a toolchain\'s supported targets'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "component" -d 'Modify a toolchain\'s installed components'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "override" -d 'Modify toolchain overrides for directories'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "run" -d 'Run a command with an environment configured for a given toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "which" -d 'Display which binary will be run for a given command'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "doc" -d 'Open the documentation for the current toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "man" -d 'View the man page for a given command'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "self" -d 'Modify the rustup installation'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "set" -d 'Alter rustup settings'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "completions" -d 'Generate tab-completion scripts for your shell'
complete -c rustup -n "__fish_seen_subcommand_from help; and not __fish_seen_subcommand_from dump-testament; and not __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from check; and not __fish_seen_subcommand_from default; and not __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from run; and not __fish_seen_subcommand_from which; and not __fish_seen_subcommand_from doc; and not __fish_seen_subcommand_from man; and not __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from completions; and not __fish_seen_subcommand_from help" -f -a "help" -d 'Print this message or the help of the given subcommand(s)'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile" -f -a "active-toolchain" -d 'Show the active toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile" -f -a "home" -d 'Display the computed value of RUSTUP_HOME'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from show; and not __fish_seen_subcommand_from active-toolchain; and not __fish_seen_subcommand_from home; and not __fish_seen_subcommand_from profile" -f -a "profile" -d 'Show the default profile used for the `rustup install` command'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link" -f -a "list" -d 'List installed toolchains'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link" -f -a "install" -d 'Install or update a given toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link" -f -a "uninstall" -d 'Uninstall a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from toolchain; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from install; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from link" -f -a "link" -d 'Create a custom toolchain by symlinking to a directory'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "list" -d 'List installed and available targets'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "add" -d 'Add a target to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from target; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "remove" -d 'Remove a target from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "list" -d 'List installed and available components'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "add" -d 'Add a component to a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from component; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from add; and not __fish_seen_subcommand_from remove" -f -a "remove" -d 'Remove a component from a Rust toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset" -f -a "list" -d 'List directory toolchain overrides'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset" -f -a "set" -d 'Set the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from override; and not __fish_seen_subcommand_from list; and not __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from unset" -f -a "unset" -d 'Remove the override toolchain for a directory'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data" -f -a "update" -d 'Download and install updates to rustup'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data" -f -a "uninstall" -d 'Uninstall rustup.'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from self; and not __fish_seen_subcommand_from update; and not __fish_seen_subcommand_from uninstall; and not __fish_seen_subcommand_from upgrade-data" -f -a "upgrade-data" -d 'Upgrade the internal data format.'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update" -f -a "default-host" -d 'The triple used to identify toolchains when not specified'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update" -f -a "profile" -d 'The default components installed with a toolchain'
complete -c rustup -n "__fish_seen_subcommand_from help; and __fish_seen_subcommand_from set; and not __fish_seen_subcommand_from default-host; and not __fish_seen_subcommand_from profile; and not __fish_seen_subcommand_from auto-self-update" -f -a "auto-self-update" -d 'The rustup auto self update mode'

20
home/fish/config.fish Normal file
View file

@ -0,0 +1,20 @@
set -U fish_greeting
if status is-interactive
# Commands to run in interactive sessions can go here
bind \cG lazygit
end
function fish_user_key_bindings
# Execute this once per mode that emacs bindings should be used in
fish_default_key_bindings -M insert
# Then execute the vi-bindings so they take precedence when there's a conflict.
# Without --no-erase fish_vi_key_bindings will default to
# resetting all bindings.
# The argument specifies the initial mode (insert, "default" or visual).
fish_vi_key_bindings --no-erase insert
bind \cf 'fg 2>/dev/null; commandline -f repaint'
end

318
home/hypr/hyprland.conf Normal file
View file

@ -0,0 +1,318 @@
# #######################################################################################
# AUTOGENERATED HYPRLAND CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hyprland.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
# This is an example Hyprland config file.
# Refer to the wiki for more information.
# https://wiki.hyprland.org/Configuring/
# Please note not all available settings / options are set here.
# For a full list, see the wiki
# You can split this configuration into multiple files
# Create your files separately and then link them to this file like this:
# source = ~/.config/hypr/myColors.conf
source=~/.config/hypr/rose-pine.conf
################
### MONITORS ###
################
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor=,preferred,auto,auto
###################
### MY PROGRAMS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
# Set programs that you use
$terminal = kitty
$fileManager = pcmanfm
$menu = wofi --show drun
#################
### AUTOSTART ###
#################
# Autostart necessary processes (like notifications daemons, status bars, etc.)
# Or execute your favorite apps at launch like this:
# exec-once = $terminal
# exec-once = nm-applet &
# exec-once = waybar & hyprpaper & firefox
#############################
### ENVIRONMENT VARIABLES ###
#############################
# See https://wiki.hyprland.org/Configuring/Environment-variables/
env = XCURSOR_SIZE,24
env = HYPRCURSOR_SIZE,24
env = MOZ_ENABLE_WAYLAND,1
#####################
### LOOK AND FEEL ###
#####################
# Refer to https://wiki.hyprland.org/Configuring/Variables/
# https://wiki.hyprland.org/Configuring/Variables/#general
general {
gaps_in = 5
gaps_out = 5
border_size = 1
# https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col.active_border = $foam $pine 45deg
col.inactive_border = $muted
# Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = true
# Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false
layout = dwindle
}
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration {
rounding = 5
rounding_power = 2
# Change transparency of focused and unfocused windows
active_opacity = 1.0
inactive_opacity = 1.0
shadow {
enabled = true
range = 4
render_power = 3
color = rgba(1a1a1aee)
}
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur {
enabled = true
size = 3
passes = 1
vibrancy = 0.1696
}
}
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations {
enabled = no,
# Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
bezier = easeOutQuint,0.23,1,0.32,1
bezier = easeInOutCubic,0.65,0.05,0.36,1
bezier = linear,0,0,1,1
bezier = almostLinear,0.5,0.5,0.75,1.0
bezier = quick,0.15,0,0.1,1
# animation = global, 1, 10, default
# animation = border, 1, 5.39, easeOutQuint
# animation = windows, 1, 4.79, easeOutQuint
# animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
# animation = windowsOut, 1, 1.49, linear, popin 87%
# animation = windowsMove, 1, 4.79, easeOutQuint
# animation = fadeIn, 1, 1.73, almostLinear
# animation = fadeOut, 1, 1.46, almostLinear
# animation = fade, 1, 3.03, quick
# animation = layers, 1, 3.81, easeOutQuint
# animation = layersIn, 1, 4, easeOutQuint, fade
# animation = layersOut, 1, 1.5, linear, fade
# animation = fadeLayersIn, 1, 1.79, almostLinear
# animation = fadeLayersOut, 1, 1.39, almostLinear
# animation = workspaces, 1, 1.94, almostLinear, fade
# animation = workspacesIn, 1, 1.21, almostLinear, fade
# animation = workspacesOut, 1, 1.94, almostLinear, fade
}
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.
# workspace = w[tv1], gapsout:0, gapsin:0
# workspace = f[1], gapsout:0, gapsin:0
# windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
# windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
# windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
}
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master {
new_status = master
}
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc {
force_default_wallpaper = -1 # Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false # If true disables the random hyprland logo / anime girl background. :(
}
cursor {
inactive_timeout = 5
}
#############
### INPUT ###
#############
# https://wiki.hyprland.org/Configuring/Variables/#input
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
follow_mouse = 1
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
touchpad {
natural_scroll = true
clickfinger_behavior = true
}
}
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures {
workspace_swipe = true
workspace_swipe_distance = 50
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
device {
name = epic-mouse-v1
sensitivity = -0.5
}
###################
### KEYBINDINGS ###
###################
# See https://wiki.hyprland.org/Configuring/Keywords/
$mainMod = SUPER # Sets "Windows" key as main modifier
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod, Q, exec, $terminal
bind = $mainMod, C, killactive,
bind = $mainMod, M, exit,
bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating,
bind = $mainMod, R, exec, $menu
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, down, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, split-workspace, 1
bind = $mainMod, 2, split-workspace, 2
bind = $mainMod, 3, split-workspace, 3
bind = $mainMod, 4, split-workspace, 4
bind = $mainMod, 5, split-workspace, 5
bind = $mainMod, 6, split-workspace, 6
bind = $mainMod, 7, split-workspace, 7
bind = $mainMod, 8, split-workspace, 8
bind = $mainMod, 9, split-workspace, 9
bind = $mainMod, 0, split-workspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, split-movetoworkspace, 1
bind = $mainMod SHIFT, 2, split-movetoworkspace, 2
bind = $mainMod SHIFT, 3, split-movetoworkspace, 3
bind = $mainMod SHIFT, 4, split-movetoworkspace, 4
bind = $mainMod SHIFT, 5, split-movetoworkspace, 5
bind = $mainMod SHIFT, 6, split-movetoworkspace, 6
bind = $mainMod SHIFT, 7, split-movetoworkspace, 7
bind = $mainMod SHIFT, 8, split-movetoworkspace, 8
bind = $mainMod SHIFT, 9, split-movetoworkspace, 9
bind = $mainMod SHIFT, 0, split-movetoworkspace, 10
# Example special workspace (scratchpad)
bind = $mainMod, S, togglespecialworkspace, magic
bind = $mainMod SHIFT, S, movetoworkspace, special:magic
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
bind = $mainMod SHIFT, minus, exec, bash -c "XDG_CURRENT_DESKTOP=sway flameshot gui"
bind = $mainMod, n, exec, swaync-client -t
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Laptop multimedia keys for volume and LCD brightness
bindel = ,XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = ,XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindel = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
bindel = ,XF86MonBrightnessUp, exec, brightnessctl s 10%+
bindel = ,XF86MonBrightnessDown, exec, brightnessctl s 10%-
# Requires playerctl
bindl = , XF86AudioNext, exec, playerctl next
bindl = , XF86AudioPause, exec, playerctl play-pause
bindl = , XF86AudioPlay, exec, playerctl play-pause
bindl = , XF86AudioPrev, exec, playerctl previous
##############################
### WINDOWS AND WORKSPACES ###
##############################
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
# Example windowrule v1
# windowrule = float, ^(kitty)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# Ignore maximize requests from apps. You'll probably like this.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
plugin {
split-monitor-workspaces {
count = 10
keep_focused = 0
enable_notifications = 1
enable_persistent_workspaces = 0
}
}

19
home/hypr/rose-pine.conf Normal file
View file

@ -0,0 +1,19 @@
# name: Rosé Pine
# author: jishnurajendran
# upstream: https://github.com/jishnurajendran/hyprland-rosepine/blob/main/rose-pine.conf
# All natural pine, faux fur and a bit of soho vibes for the classy minimalist
$base = 0xff191724
$surface = 0xff1f1d2e
$overlay = 0xff26233a
$muted = 0xff6e6a86
$subtle = 0xff908caa
$text = 0xffe0def4
$love = 0xffeb6f92
$gold = 0xfff6c177
$rose = 0xffebbcba
$pine = 0xff31748f
$foam = 0xff9ccfd8
$iris = 0xffc4a7e7
$highlightLow = 0xff21202e
$highlightMed = 0xff403d52
$highlightHigh = 0xff524f67

View file

@ -0,0 +1,53 @@
## name: Rosé Pine
## author: mvllow
## license: MIT
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine.conf
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
foreground #d8d8d8
# background #050505
selection_foreground #e0def4
selection_background #403d52
cursor #524f67
cursor_text_color #e0def4
url_color #c4a7e7
active_tab_foreground #e0def4
active_tab_background #26233a
inactive_tab_foreground #6e6a86
inactive_tab_background #191724
# black
color0 #181818
color8 #6b6b6b
# red
color1 #ac4242
color9 #c55555
# green
color2 #90a959
color10 #aac474
# yellow
color3 #f4bf75
color11 #fcea88
# blue
color4 #6a9fb5
color12 #82b8c8
# magenta
color5 #aa759f
color13 #c28cb8
# cyan
color6 #75b5aa
color14 #93d3c3
# white
color7 #d8d8d8
color15 #f8f8f8

54
home/kitty/rose-pine.conf Normal file
View file

@ -0,0 +1,54 @@
## name: Rosé Pine
## author: mvllow
## license: MIT
## upstream: https://github.com/rose-pine/kitty/blob/main/dist/rose-pine.conf
## blurb: All natural pine, faux fur and a bit of soho vibes for the classy minimalist
foreground #e0def4
background #191724
selection_foreground #e0def4
selection_background #403d52
cursor #524f67
cursor_text_color #e0def4
url_color #c4a7e7
active_tab_foreground #e0def4
active_tab_background #26233a
inactive_tab_foreground #6e6a86
inactive_tab_background #191724
# black
color0 #26233a
color8 #6e6a86
# red
color1 #eb6f92
color9 #eb6f92
# green
color2 #31748f
color10 #31748f
# yellow
color3 #f6c177
color11 #f6c177
# blue
color4 #9ccfd8
color12 #9ccfd8
# magenta
color5 #c4a7e7
color13 #c4a7e7
# cyan
color6 #ebbcba
color14 #ebbcba
# white
color7 #e0def4
color15 #e0def4

View file

@ -0,0 +1,46 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.alacritty;
macos = config.snowhawk.macos.enable;
in
{
options.snowhawk.alacritty = {
enable = lib.mkEnableOption "alacritty home-manager module";
};
config = lib.mkIf cfg.enable {
programs.alacritty = {
enable = true;
settings = {
window = {
opacity = 0.98;
decorations = lib.mkIf macos "buttonless";
option_as_alt = lib.mkIf macos "Both";
};
colors = {
primary.background = "#050505";
};
font = {
size = 12.0;
normal = {
family = "JetBrainsMono Nerd Font";
style = "Regular";
};
bold = {
family = "JetBrainsMono Nerd Font";
style = "SemiBold";
};
italic = {
family = "JetBrainsMono Nerd Font";
style = "Italic";
};
bold_italic = {
family = "JetBrainsMono Nerd Font";
style = "SemiBold Italic";
};
};
};
};
};
}

View file

@ -0,0 +1,84 @@
{ pkgs, lib, config, ... }:
let
inherit (lib) mkEnableOption mkOption mkIf;
inherit (lib.attrsets) mapAttrsToList;
inherit (builtins) filter toString attrNames attrValues length;
inherit (pkgs) writeShellScript writeShellScriptBin coreutils;
cfg = config.snowhawk.brave-apps;
in
{
options.snowhawk.brave-apps = {
enable = mkEnableOption "brave-apps home-manager module";
chromium-package = mkOption {
description = ''
chromium package to use for the chromium apps
'';
type = with lib.types; package;
default = pkgs.brave;
};
apps = mkOption {
description = ''
chromium based desktop apps configuration
'';
type = with lib.types; attrsOf (submodule {
options = {
url = mkOption {
description = ''
the url to open as a chromium window
only one of `url` `urlEval` or `urlFile` may be set
'';
default = null;
type = with lib.types; nullOr str;
};
urlEval = mkOption {
description = ''
the bash script to evaluate to get url to open as chromium window. May be useful for secrets management
only one of `url` `urlEval` or `urlFile` may be set
'';
default = null;
type = with lib.types; nullOr str;
};
urlFile = mkOption {
description = ''
file to read which contains the url to open as a chromium window. May be useful for secrets management
only one of `url` `urlEval` or `urlFile` may be set
'';
default = null;
type = with lib.types; nullOr str;
};
};
});
};
};
config = mkIf cfg.enable {
home.packages =
let
evalString = s: "\$(${s})";
readFile = f: evalString "${coreutils}/bin/cat ${f}";
writeChromiumDesktopApp = name: app: writeShellScriptBin name ''
${lib.getExe cfg.chromium-package} --new-window --app=${app}
'';
in
mapAttrsToList
(n: v:
assert lib.assertMsg (length (filter (v: v != null) (attrValues v)) == 1)
"only one of `url` `urlEval` or `urlFile` may be set: ${toString n} has multiple urls set";
(writeChromiumDesktopApp n (
if v.url != null then v.url
else if v.urlEval != null then evalString v.urlEval
else if v.urlFile != null then readFile v.urlFile
else throw "grr >:( -- this should be unreachable"
)))
cfg.apps;
};
}

24
home/modules/default.nix Normal file
View file

@ -0,0 +1,24 @@
{ lib, ... }:
let
getModules = path:
let
dirEntries = builtins.removeAttrs (builtins.readDir path) [ "default.nix" ];
moduleEntries = lib.attrsets.filterAttrs (n: v: v == "regular") dirEntries;
moduleNames = builtins.attrNames moduleEntries;
modulePaths = builtins.map (name: path + /${name}) moduleNames;
in
modulePaths;
in
{
imports = getModules ./.;
snowhawk.user.enable = lib.mkDefault true;
snowhawk.tmux.enable = lib.mkDefault true;
snowhawk.tmux.sessionizer.enable = lib.mkDefault true;
snowhawk.fish.enable = lib.mkDefault true;
snowhawk.git.enable = lib.mkDefault true;
snowhawk.lazygit.enable = lib.mkDefault true;
}

17
home/modules/direnv.nix Normal file
View file

@ -0,0 +1,17 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.direnv;
in
{
options.snowhawk.direnv = {
enable = lib.mkEnableOption "direnv home-manager module";
};
config = lib.mkIf cfg.enable {
programs.direnv = {
enable = true;
nix-direnv.enable = true;
};
};
}

28
home/modules/dunst.nix Normal file
View file

@ -0,0 +1,28 @@
{ lib, pkgs, config, ... }:
let
cfg = config.snowhawk.dunst;
in
{
options.snowhawk.dunst = {
enable = lib.mkEnableOption "lazygit";
};
config = lib.mkIf cfg.enable {
services.dunst = {
enable = true;
iconTheme = {
name = "rose-pine";
package = pkgs.rose-pine-icon-theme;
};
settings = lib.mkMerge [
(import ./util/rose-pine-dunst.nix { theme = "default"; })
{
global = { offset = lib.mkForce "5x25"; };
}
];
};
# xdg.configFile."dunst/dunstrc.d/50-theme.conf".source = inputs.dunst-theme.outPath + "/rose-pine.conf";
};
}

View file

@ -0,0 +1,17 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.easyeffects;
in
{
options.snowhawk.easyeffects = {
enable = lib.mkEnableOption "easyeffects";
};
config = lib.mkIf cfg.enable {
# for easyeffects
dconf.enable = true;
services.easyeffects.enable = true;
};
}

View file

@ -0,0 +1,48 @@
{ config, lib, pkgs, ... }:
let cfg = config.snowhawk.defaultPrograms;
in {
options.snowhawk.defaultPrograms = {
enable = lib.mkEnableOption "default programs";
};
config = lib.mkIf cfg.enable {
xdg.mimeApps =
let
browser = "firefox.desktop";
browserApps = [
"application/pdf"
"application/x-extension-htm"
"application/x-extension-html"
"application/x-extension-shtml"
"application/x-extension-xht"
"application/x-extension-xhtml"
"application/xhtml+xml"
"text/html"
"x-scheme-handler/http"
"x-scheme-handler/https"
];
mimeAppsFor =
value: list:
lib.genAttrs list (name: value);
in
{
enable = true;
defaultApplications = lib.mkMerge [
(mimeAppsFor browser browserApps)
(mimeAppsFor "brave-browser.desktop" [
"x-scheme-handler/chrome"
])
];
associations.added = lib.mkMerge [
(mimeAppsFor browser browserApps)
];
};
home.sessionVariables = {
DEFAULT_BROWSER = lib.getExe pkgs.firefox;
};
};
}

50
home/modules/firefox.nix Normal file
View file

@ -0,0 +1,50 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.firefox;
in
{
options.snowhawk.firefox = {
enable = lib.mkEnableOption "firefox home-manager module";
};
config = lib.mkIf cfg.enable {
programs.firefox = {
enable = true;
package = pkgs.firefox;
profiles.default = {
isDefault = true;
path = "x56262ch.default";
userChrome = /* css */ ''
#main-window[tabsintitlebar="true"]:not([extradragspace="true"]) #TabsToolbar > .toolbar-items {
opacity: 0;
pointer-events: none;
}
#main-window:not([tabsintitlebar="true"]) #TabsToolbar {
visibility: collapse !important;
}
#titlebar {display: none !important;}
#main-window {-moz-appearance:none !important;}
#sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] #sidebar-header {
display: none;
}
'';
};
profiles.alt = {
id = 1;
path = "05fb1no8.casualypurple";
userChrome = config.programs.firefox.profiles.default.userChrome;
};
};
home.packages = with pkgs; [
(writeShellScriptBin "alt-firefox" ''
${lib.getExe config.programs.firefox.package} -P "alt"
'')
];
};
}

71
home/modules/fish.nix Normal file
View file

@ -0,0 +1,71 @@
{ pkgs, inputs, config, lib, ... }:
let
cfg = config.snowhawk.fish;
macos = config.snowhawk.macos.enable;
rust = config.snowhawk.rust.enable;
in
{
options.snowhawk.fish = {
enable = lib.mkEnableOption "fish";
};
config = lib.mkIf cfg.enable {
xdg.configFile."fish/completions/rustup.fish" = {
enable = rust;
source = ../completions/rustup.fish;
};
programs.bash = lib.mkIf (!macos) {
enable = true;
initExtra = ''
if [[ $(${pkgs.procps}/bin/ps --no-header --pid=$PPID --format=comm) != "fish" && -z ''${BASH_EXECUTION_STRING} ]]
then
shopt -q login_shell && LOGIN_OPTION='--login' || LOGIN_OPTION=""
exec ${pkgs.fish}/bin/fish $LOGIN_OPTION
fi
'';
};
programs.zsh = lib.mkIf macos {
enable = true;
initExtra = ''
if [[ $(${pkgs.procps}/bin/ps $(${pkgs.procps}/bin/ps -p $$ -co "ppid=") -co "comm=") != "fish" && -z ''${ZSH_EXECUTION_STRING} ]]
then
exec ${pkgs.fish}/bin/fish
fi
'';
};
programs.fish = {
enable = true;
shellAbbrs = lib.mkIf (!macos) {
copy = "xclip -sel clip";
};
interactiveShellInit = lib.concatStringsSep "\n" [
(builtins.readFile "${inputs.fish_theme}/fish_prompt.fish")
(builtins.readFile ../fish/config.fish)
# "${lib.getExe pkgs.any-nix-shell} fish --info-right | source"
];
};
home.packages = with pkgs; [
(writeShellApplication {
name = "lnmv";
runtimeInputs = [ coreutils ];
text = ''
# This is crude i know, more shell guards and stuff that I'm bad at
# Usage:
# lnmv <source> <target>
data=''${1%/}
target=''${2%/}
mv "$data" "$target"
ln -s "$target" "$data"
'';
})
];
};
}

View file

@ -0,0 +1,34 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.flameshot;
in
{
options.snowhawk.flameshot = {
enable = lib.mkEnableOption "flameshot home-manager module";
config = lib.mkOption {
type = with lib.types; attrsOf attrs;
description = "the flameshot config as an attrs of attrs";
default = {
General = {
contrastOpacity = 188;
contrastUiColor = "#8affc1";
drawColor = "#00ff00";
uiColor = "#007d96";
};
};
};
};
config = lib.mkIf cfg.enable {
# home.packages = with pkgs; [ flameshot ];
# xdg.configFile."flameshot/flameshot.ini".text = lib.generators.toINI { } cfg.config;
services.flameshot = {
enable = true;
settings = cfg.config;
};
};
}

95
home/modules/git.nix Normal file
View file

@ -0,0 +1,95 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.git;
macos = config.snowhawk.macos.enable;
direnv = config.snowhawk.direnv.enable;
sshifyPushUrl =
let
urlParser = "${pkgs.url-parser}/bin/url-parser";
git = "${pkgs.git}/bin/git";
cut = "${pkgs.coreutils}/bin/cut";
in
pkgs.writeShellScriptBin "sshify-push-url" ''
base=$(${urlParser} --url $(${git} remote get-url origin) host)
path=$(${urlParser} --url $(${git} remote get-url origin) path | ${cut} -b 2-)
echo "$base:$path"
'';
in
{
options.snowhawk.git = {
enable = lib.mkEnableOption "git";
oauth = lib.mkEnableOption "enable git-credential-oauth";
};
config = lib.mkIf cfg.enable {
home.packages = lib.mkIf cfg.oauth [
pkgs.git-credential-oauth
];
programs.git = {
enable = true;
userName = "Zynh Ludwig";
userEmail = "zynh0722@gmail.com";
ignores = [
"Session.vim"
(lib.mkIf macos ".DS_Store")
(lib.mkIf direnv ".direnv/")
(lib.mkIf direnv ".envrc")
];
aliases = {
co = "checkout";
ci = "commit";
st = "status";
br = "branch";
hist = "log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short";
type = "cat-file -t";
dump = "cat-file -p";
graph = "log --graph --decorate --pretty=oneline --abbrev-commit";
# Convert pull url into ssh push url
sshify-push-url = ''
!${pkgs.bash}/bin/bash -c "git remote set-url --push origin $(${sshifyPushUrl}/bin/sshify-push-url)"
'';
# local patch-wise ignore workflow
unchanged = "update-index --assume-unchanged";
changed = "update-index --no-assume-unchanged";
show-unchanged = ''
!git ls-files -v | sed -e 's/^[a-z] //p; d'
'';
};
extraConfig = {
safe.directory = "/etc/nixos";
init.defaultBranch = "main";
core = {
editor = "nvim";
autocrlf = "input";
safecrlf = true;
};
pull.rebase = true;
credential = {
helper = [
"cache --timeout 7200"
(lib.mkIf cfg.oauth "oauth")
];
"https://git.zynh.me" = {
oauthClientId = "13d5b95d-565d-4264-8961-c45cc38eaa8a";
oauthScopes = "read_repository write_repository";
oauthAuthURL = "/login/oauth/authorize";
oauthTokenURL = "/login/oauth/access_token";
};
};
};
};
};
}

51
home/modules/kitty.nix Normal file
View file

@ -0,0 +1,51 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.kitty;
macos = config.snowhawk.macos.enable;
in
{
options.snowhawk.kitty = {
enable = lib.mkEnableOption "kitty home-manager module";
};
config = lib.mkIf cfg.enable {
programs.kitty = {
enable = true;
shellIntegration.enableFishIntegration = true;
settings =
let
macos_fonts = {
font_family = lib.mkForce "family=\"JetBrainsMono Nerd Font Mono\" style=\"Light\"";
bold_font = lib.mkForce "family=\"JetBrainsMono Nerd Font Mono\" style=\"Regular\"";
italic_font = lib.mkForce "family=\"JetBrainsMono Nerd Font Mono\" style=\"Light Italic\"";
bold_italic_font = lib.mkForce "family=\"JetBrainsMono Nerd Font Mono\" style=\"Regular Italic\"";
};
linux_fonts = {
font_family = "family=\"JetBrainsMono Nerd Font\" style=\"ExtraLight\"";
bold_font = "family=\"JetBrainsMono Nerd Font\" style=\"Light\"";
italic_font = "family=\"JetBrainsMono Nerd Font\" style=\"ExtraLight Italic\"";
bold_italic_font = "family=\"JetBrainsMono Nerd Font\" style=\"Light Italic\"";
};
in
{
background = "#050505";
background_opacity = 0.98;
font_size = 12;
# allow_remote_control = "yes";
} // (if !macos then linux_fonts else macos_fonts);
extraConfig =
let
kitten = "${pkgs.kitty}/bin/kitten";
in
''
include ${../../home/kitty/alacritty-colors.conf}
# map ctrl+k ${pkgs.writeShellScript "kitten-snap" "${kitten} @ get-text --self --ansi > /tmp/test"}
'';
};
};
}

32
home/modules/lazygit.nix Normal file
View file

@ -0,0 +1,32 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.lazygit;
in
{
options.snowhawk.lazygit = {
enable = lib.mkEnableOption "lazygit";
};
config = lib.mkIf cfg.enable {
programs.lazygit = {
enable = true;
settings = {
customCommands = [{
# We call this the double yoinky sploinky
# https://github.com/jesseduffield/lazygit/wiki/Custom-Commands-Compendium#pushing-a-specific-commit
key = "P";
context = "commits";
loadingText = "Pushing commit";
description = "Push a specific commit (and any preceding)";
stream = "yes";
command = "git push {{.SelectedRemote.Name}} {{.SelectedLocalCommit.Sha}}:{{.SelectedLocalBranch.Name}}";
}];
services = {
"git.zynh.me" = "gitea:git.zynh.me";
"git.nullcube.net" = "gitea:git.nullcube.net";
};
};
};
};
}

18
home/modules/lutris.nix Normal file
View file

@ -0,0 +1,18 @@
{ lib, config, pkgs, inputs, ... }:
let
cfg = config.snowhawk.lutris;
in
{
options.snowhawk.lutris = {
enable = lib.mkEnableOption "lutris";
};
config = lib.mkIf cfg.enable {
home.packages = [
pkgs.umu-launcher
pkgs.lutris
];
};
}

7
home/modules/macos.nix Normal file
View file

@ -0,0 +1,7 @@
{ lib, ... }:
{
options.snowhawk.macos = {
enable = lib.mkEnableOption "macos";
};
}

75
home/modules/neovim.nix Normal file
View file

@ -0,0 +1,75 @@
{ pkgs, lib, config, inputs, ... }:
let
cfg = config.snowhawk.neovim;
nightlyNeovim = inputs.neovim-overlay.packages.${pkgs.system}.default;
in
{
options.snowhawk.neovim = {
enable = lib.mkEnableOption "neovim home-manager module";
nightly = lib.mkEnableOption "nightly build of neovim";
package = lib.mkOption {
type = with lib.types; package;
default = if cfg.nightly then nightlyNeovim else pkgs.neovim-unwrapped;
};
};
config =
let
nvim-treesitter = pkgs.vimPlugins.nvim-treesitter;
treesitterWithGrammars = nvim-treesitter.withAllGrammars;
treesitter-parsers = pkgs.symlinkJoin {
name = "treesitter-parsers";
paths = treesitterWithGrammars.dependencies;
};
in
lib.mkIf cfg.enable {
snowhawk.repo-clone.enable = true;
repo-clone.repos = {
"${config.home.homeDirectory}/.config/nvim".url = lib.zgitRepo "nvim";
};
# Set nvim as manpager and default editor
home.sessionVariables = {
EDITOR = "nvim";
MANPAGER = "nvim +Man!";
};
xdg.configFile."nvim/lua/parsers.lua".text = /* lua */ ''
vim.opt.runtimepath:append ("${treesitter-parsers}")
'';
programs.neovim = {
enable = true;
coc.enable = false;
package = cfg.package;
withNodeJs = true;
withPython3 = true;
withRuby = true;
plugins = [
treesitterWithGrammars
];
extraPackages = with pkgs; [
marksman
nil
nixpkgs-fmt
rustup
lua-language-server
fzf
stylua
taplo
gnumake
zig
gcc
clang-tools
coreutils
];
};
};
}

View file

@ -0,0 +1,22 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.pipewire-controller;
in
{
options.snowhawk.pipewire-controller = {
enable = lib.mkEnableOption "pipewire-controller home-manager module";
};
config = lib.mkIf cfg.enable {
snowhawk.sxhkd.enable = lib.mkDefault true;
services.sxhkd.keybindings = lib.mkIf config.snowhawk.sxhkd.enable {
"XF86TouchpadOn" = "${lib.getExe pkgs.pipewire-controller}";
};
wayland.windowManager.hyprland.settings.bind = lib.mkIf config.wayland.windowManager.hyprland.enable [
", XF86TouchpadOn, exec, ${lib.getExe pkgs.pipewire-controller}"
];
};
}

View file

@ -0,0 +1,32 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.playerctl;
in
{
options.snowhawk.playerctl = {
enable = lib.mkEnableOption "playerctl";
};
config = lib.mkIf cfg.enable {
services.playerctld.enable = true;
systemd.user.services.playerctld = {
Unit.PartOf = lib.mkForce [ "graphical-session.target" ];
Install.WantedBy = lib.mkForce [ "graphical-session.target" ];
};
home.packages = with pkgs; [
playerctl
];
snowhawk.sxhkd.enable = lib.mkDefault true;
services.sxhkd.keybindings =
let playerctl = "${pkgs.playerctl}/bin/playerctl";
in {
"XF86AudioPlay" = "${playerctl} play-pause";
"XF86AudioPrev" = "${playerctl} previous";
"XF86AudioNext" = "${playerctl} next";
};
};
}

22
home/modules/projects.nix Normal file
View file

@ -0,0 +1,22 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.projects;
link = config.lib.file.mkOutOfStoreSymlink;
in
{
options.snowhawk.projects = {
enable = lib.mkEnableOption "projects";
};
config = lib.mkIf cfg.enable {
home.file.projects.source = link "${config.home.homeDirectory}/Documents/projects/";
snowhawk.tmux.sessionizer.paths =
let folder = config.home.file.projects.target;
in [
"~/${folder}"
];
};
}

42
home/modules/rbw.nix Normal file
View file

@ -0,0 +1,42 @@
{ config, lib, pkgs, ... }:
let
cfg = config.snowhawk.rbw;
rbw-fzf = pkgs.writeShellApplication {
name = "rbw-fzf";
runtimeInputs = with pkgs; [ rbw fzf perl findutils coreutils jq ];
text = /*bash*/ ''
rbw ls --fields name,user |
sort -bi |
perl -ple 's/^([^\t]*)\t([^\t]*)$/$1 ($2)/gm' |
fzf --tmux --no-sort --with-shell='bash -c' \
--preview="echo {} | perl -plE 's/^(.*) \((.*)?\)$/\"\$1\" \"\$2\"/' |
xargs rbw get --full --raw | \
jq --color-output 'if .data.password != \"\" then setpath([\"data\", \"password\"]; \"************\") else . end | del(.history) | del(.id) | walk(if type == \"object\" then map_values(. // empty) else . end)'" \
--preview-label="Vault Item" --preview-window=wrap |
perl -plE 's/^(.*) \((.*)?\)$/"$1" "$2"/' |
xargs -r rbw get |
xclip -sel copy
'';
};
inherit (lib) mkIf mkEnableOption;
in
{
options.snowhawk.rbw = {
enable = mkEnableOption "rbw home-manager module";
};
config = mkIf cfg.enable {
programs.rbw.enable = true;
home.packages =
with pkgs; [
rbw
pinentry-tty
rbw-fzf
];
};
}

47
home/modules/redshift.nix Normal file
View file

@ -0,0 +1,47 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.redshift;
cfgDir = config.xdg.configHome + "/redshift";
sops = config.snowhawk.sops.enable;
in
{
options.snowhawk.redshift = {
enable = lib.mkEnableOption "redshift home-manager module";
};
config = lib.mkIf cfg.enable {
systemd.user.services.redshift = {
Unit = {
Description = "redshift service";
PartOf = [ "graphical-session.target" ];
After = lib.mkIf sops [ "sops-nix.service" ];
};
Service = {
Type = "exec";
ExecStart =
let
catFile = file: "\$(${pkgs.coreutils}/bin/cat ${file})";
toPaths = deg: "${cfgDir}/${deg}";
fetchLatLon = lib.right
(lib.strings.concatStringsSep ":")
(map catFile)
(map toPaths)
[ "lat" "lon" ];
in
''${pkgs.bash}/bin/bash -c "${pkgs.redshift}/bin/redshift -l ${fetchLatLon}"'';
};
Install.WantedBy = [ "graphical-session.target" ];
};
sops.secrets = lib.mkIf sops {
"locations/snowhawk/lat".path = "${cfgDir}/lat";
"locations/snowhawk/lon".path = "${cfgDir}/lon";
};
home.packages = with pkgs; [
redshift
];
};
}

View file

@ -0,0 +1,18 @@
{ lib, config, inputs, ... }:
let
cfg = config.snowhawk.repo-clone;
in
{
imports = [
inputs.repo-clone.homeManagerModule
];
options.snowhawk.repo-clone = {
enable = lib.mkEnableOption "repo-clone home-manager module";
};
config = lib.mkIf cfg.enable {
systemd.user.startServices = "sd-switch";
};
}

33
home/modules/rust.nix Normal file
View file

@ -0,0 +1,33 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.rust;
in
{
options.snowhawk.rust = {
enable = lib.mkEnableOption "rust home-manager module";
};
config = lib.mkIf cfg.enable {
snowhawk.direnv.enable = true;
home.packages = with pkgs; [
rustup
];
programs.bacon = {
enable = true;
settings = {
keybindings = {
esc = "back";
g = "scroll-to-top";
shift-g = "scroll-to-bottom";
k = "scroll-lines(-1)";
j = "scroll-lines(1)";
ctrl-u = "scroll-page(-1)";
ctrl-d = "scroll-page(1)";
};
};
};
};
}

31
home/modules/satty.nix Normal file
View file

@ -0,0 +1,31 @@
{ config, pkgs, lib, ... }:
let
cfg = config.snowhawk.satty;
in
{
options.snowhawk.satty = {
enable = lib.mkEnableOption "satty module";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
grim
jq
satty
slurp
wl-clipboard
astal.river
];
xdg.configFile = {
"satty/config.toml".source = pkgs.writers.writeTOML "satty-config.toml" {
general = {
action-on-enter = "save-to-clipboard";
copy-command = "${pkgs.wl-clipboard}/bin/wl-copy -t image/png";
output-filename = "${config.home.homeDirectory}/Pictures/screenShots/screenshot-%FT%T.png";
save-after-copy = true;
};
};
};
};
}

28
home/modules/sops.nix Normal file
View file

@ -0,0 +1,28 @@
{ lib, config, inputs, pkgs, ... }:
let
cfg = config.snowhawk.sops;
home = config.home.homeDirectory;
in
{
imports = [
inputs.sops-nix.homeManagerModules.sops
];
options.snowhawk.sops = {
enable = lib.mkEnableOption "sops";
};
config = lib.mkIf cfg.enable {
home.packages = [
pkgs.sops
];
sops = {
age.keyFile = "${home}/.config/sops/age/keys.txt";
defaultSopsFile = ../../secrets.yaml;
validateSopsFiles = false;
};
};
}

21
home/modules/sources.nix Normal file
View file

@ -0,0 +1,21 @@
{ lib, inputs, config, ... }:
let
cfg = config.snowhawk.sources;
in
{
options.snowhawk.sources = {
enable = lib.mkEnableOption "nix sources home-manager module";
};
config = lib.mkIf cfg.enable {
home.file = {
"src/nixpkgs".source = inputs.nixpkgs;
"src/home-manager".source = inputs.home-manager;
};
snowhawk.tmux.sessionizer.paths = [
"~/src"
];
};
}

71
home/modules/ssh.nix Normal file
View file

@ -0,0 +1,71 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.ssh;
sops = config.snowhawk.sops.enable;
secrets = config.sops.secrets;
ifSops = lib.mkIf sops;
keyPathIfSops = key: ifSops secrets.${"private_keys/" + key}.path;
in
{
options.snowhawk.ssh = {
enable = lib.mkEnableOption "ssh";
homeNetwork = lib.mkEnableOption "include local hostnames for home network devices";
};
config =
let sshDir = config.home.homeDirectory + "/.ssh";
in lib.mkIf cfg.enable {
programs.ssh = {
enable = true;
includes = [ "conf.d/*" ];
matchBlocks = rec {
"git.zynh.me" = {
hostname = "git.zynh.me";
user = "git";
port = 2221;
identityFile = keyPathIfSops "personal_git";
};
"github.com" = {
hostname = "github.com";
user = "git";
identityFile = keyPathIfSops "github";
};
snowhawk = {
hostname = "192.168.0.22";
user = "ravenshade";
proxyJump = "ravenshade@permafrost";
identityFile = keyPathIfSops "snowhawk";
};
permafrost = {
hostname = "scarlet.zynh.me";
user = "ravenshade";
identityFile = keyPathIfSops "msiserver";
};
"permafrost.local" = lib.mkIf cfg.homeNetwork (permafrost // {
hostname = "permafrost";
});
caveserver = {
identityFile = keyPathIfSops "caveserver";
};
virtmsi = {
hostname = "192.168.122.76";
identityFile = keyPathIfSops "snowhawk";
};
};
};
sops.secrets = ifSops {
"private_keys/msiserver" = { };
"private_keys/caveserver" = { };
"private_keys/snowhawk" = { };
"private_keys/personal_git" = { };
"private_keys/github" = { };
"ssh_hosts/caveserver".path = "${sshDir}/conf.d/caveserver_config";
};
};
}

33
home/modules/sxhkd.nix Normal file
View file

@ -0,0 +1,33 @@
{ config, lib, pkgs, ... }:
let
cfg = config.snowhawk.sxhkd;
in
{
options.snowhawk.sxhkd = {
enable = lib.mkEnableOption "custom sxhkd home-manager module";
};
config = lib.mkIf cfg.enable {
systemd.user.services.sxhkd = {
Unit = {
Description = "sxhkd service";
PartOf = [ "graphical-session.target" ];
};
Service = {
Type = "exec";
ExecStart = "${pkgs.sxhkd}/bin/sxhkd";
};
Install.WantedBy = [ "graphical-session.target" ];
};
xdg.configFile."sxhkd/sxhkdrc".text =
lib.concatStringsSep "\n" (lib.mapAttrsToList
(hotkey: command:
lib.optionalString (command != null) ''
${hotkey}
${command}
'')
config.services.sxhkd.keybindings);
};
}

65
home/modules/theme.nix Normal file
View file

@ -0,0 +1,65 @@
{ pkgs, lib, config, ... }:
let
cfg = config.snowhawk.theme;
in
{
options.snowhawk.theme = {
enable = lib.mkEnableOption "theme";
cursor = lib.mkOption {
default = true;
example = false;
description = "enable home.pointerCursor theme";
type = lib.types.bool;
};
};
config = lib.mkIf cfg.enable {
gtk = {
enable = true;
theme = {
package = pkgs.rose-pine-gtk-theme;
name = "rose-pine";
};
iconTheme = {
package = pkgs.rose-pine-icon-theme;
name = "rose-pine-icons";
};
};
# Set system dark mode
dconf.settings = {
"org/freedesktop/appearance" = {
color-scheme = 1;
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
};
home.pointerCursor = lib.mkIf cfg.cursor
(
let
getFrom = url: hash: name: {
gtk.enable = true;
x11.enable = true;
name = name;
size = 24;
package =
pkgs.runCommand "moveUp" { } ''
mkdir -p $out/share/icons
ln -s ${pkgs.fetchzip {
url = url;
hash = hash;
}} $out/share/icons/${name}
'';
};
in
getFrom
"https://github.com/rose-pine/cursor/releases/download/v1.1.0/BreezeX-RosePine-Linux.tar.xz"
"sha256-t5xwAPGhuQUfGThedLsmtZEEp1Ljjo3Udhd5Ql3O67c="
"BreezeX-RosePine"
);
};
}

20
home/modules/tldr.nix Normal file
View file

@ -0,0 +1,20 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.tldr;
in
{
options.snowhawk.tldr = {
enable = lib.mkEnableOption "tldr";
};
config = lib.mkIf cfg.enable {
programs.tealdeer = {
enable = true;
settings = {
updates.auto_update = true;
};
};
};
}

View file

@ -0,0 +1,75 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) getExe;
cfg = config.snowhawk.tmux.sessionizer;
tmuxCfg = config.snowhawk.tmux;
enable = cfg.enable && tmuxCfg.enable;
tmux-sessionizer = pkgs.writeShellApplication {
name = "tmux-sessionizer";
runtimeInputs = with pkgs; [ tmux fzf findutils coreutils procps ];
text = ''
if [[ $# -eq 1 ]]; then
selected=$1
else
selected=$(find -L ${lib.concatStringsSep " " cfg.paths} -mindepth 1 -maxdepth 1 -type d \
| fzf --tmux center --preview="ls {} --color || true")
fi
if [[ -z $selected ]]; then
exit 0
fi
selected_name=$(basename "$selected" | tr . _)
tmux_running=$(pgrep tmux)
if [[ -z $TMUX ]] && [[ -z $tmux_running ]]; then
tmux new-session -s "$selected_name" -c "$selected"
exit 0
fi
if ! tmux has-session -t="$selected_name" 2>/dev/null; then
tmux new-session -ds "$selected_name" -c "$selected"
fi
tmux switch-client -t "$selected_name"
'';
};
in
{
options.snowhawk.tmux.sessionizer = {
enable = lib.mkEnableOption "tmux-sessionizer home-manager module";
paths = lib.mkOption {
type = with lib.types; listOf str;
description = ''
list of paths to select with tmux-sessionizer
'';
default = [ ];
example = [
"~"
"~/projects"
"~/src"
];
};
package = lib.mkOption {
type = lib.types.package;
default = tmux-sessionizer;
description = ''
tmux-sessionizer binary package
'';
};
};
config = lib.mkIf enable {
home.packages = [ cfg.package ];
programs.tmux.extraConfig = ''
bind-key -r f run-shell "tmux neww ${getExe cfg.package}"
'';
};
}

52
home/modules/tmux.nix Normal file
View file

@ -0,0 +1,52 @@
{ lib, config, pkgs, ... }:
let
inherit (lib) getExe;
cfg = config.snowhawk.tmux;
macos = config.snowhawk.macos.enable;
in
{
options.snowhawk.tmux = {
enable = lib.mkEnableOption "tmux";
};
config = lib.mkIf cfg.enable {
programs.tmux = {
enable = true;
shell = getExe (if macos then pkgs.zsh else pkgs.fish);
# shell = if macos then "/bin/zsh" else (getExe pkgs.fish);
# shell = getExe pkgs.fish;
mouse = true;
baseIndex = 1;
terminal = "screen-256color";
newSession = true;
escapeTime = 0;
plugins = with pkgs; [
{
plugin = tmuxPlugins.rose-pine;
extraConfig = ''
set -g @rose_pine_variant 'main' # Options are 'main', 'moon' or 'dawn'
set -g @rose_pine_host 'on'
set -g @rose_pine_date_time '%c' # %c is a good value but
'';
}
{ plugin = tmuxPlugins.vim-tmux-navigator; }
];
extraConfig = ''
set-option -g renumber-windows on
set-option -g focus-events on
set-option -g terminal-features 'alacritty:RGB'
bind '"' split-window -v -c "#{pane_current_path}"
bind % split-window -h -c "#{pane_current_path}"
'';
};
programs.fish.shellAbbrs = {
a = "tmux a";
};
};
}

35
home/modules/user.nix Normal file
View file

@ -0,0 +1,35 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.user;
in
{
options.snowhawk.user = {
enable = lib.mkEnableOption "user";
username = lib.mkOption {
default = "ravenshade";
example = "zynh";
description = "the username to use. also defines the default home folder as /home/\${username}";
type = lib.types.str;
};
};
config = lib.mkIf cfg.enable {
home.username = lib.mkDefault cfg.username;
home.homeDirectory = lib.mkDefault "/home/${cfg.username}";
home.packages = with pkgs; [ comma ];
home.sessionPath = [
"${config.home.homeDirectory}/.cargo/bin"
"${config.home.homeDirectory}/.dotnet/tools"
"${config.home.homeDirectory}/.local/bin"
];
snowhawk.tmux.sessionizer.paths = [
"~"
"~/.config"
];
};
}

View file

@ -0,0 +1,73 @@
{ theme ? "default" }:
let
configs = {
default = {
global = { background = "#26233a"; foreground = "#e0def4"; };
urgency_low = { background = "#26273d"; highlight = "#31748f"; };
urgency_normal = { background = "#362e3c"; highlight = "#f6c177"; };
urgency_critical = { background = "#362e3c"; highlight = "#eb6f92"; };
};
moon = {
global = { background = "#393552"; foreground = "#e0def4"; };
urgency_low = { background = "#393955"; highlight = "#3e8fb0"; };
urgency_normal = { background = "#443c53"; highlight = "#f6c177"; };
urgency_critical = { background = "#433754"; highlight = "#eb6f92"; };
};
dawn = {
global = { background = "#f2e9e1"; foreground = "#393552"; };
urgency_low = { background = "#e7e0da"; highlight = "#286983"; };
urgency_normal = { background = "#3e8fb0"; highlight = "#ea9d34"; };
urgency_critical = { background = "#ede0d9"; highlight = "#b4637a"; };
};
};
formatWithColor = color: "<b><span foreground='${color}'>%s</span></b>\n%b";
getConfig = name:
if name == "moon" then configs.moon
else if name == "dawn" then configs.dawn
else configs.default;
selectedConfig = getConfig theme;
urgencyIcons = {
urgency_low = "dialog-information";
urgency_normal = "dialog-warning";
urgency_critical = "dialog-error";
};
urgencyColors =
builtins.listToAttrs (map
(urgency: {
name = urgency;
value = rec {
inherit (selectedConfig.${urgency}) background highlight;
frame_color = highlight;
default_icon = urgencyIcons.${urgency};
format = formatWithColor highlight;
};
})
[ "urgency_low" "urgency_normal" "urgency_critical" ]);
in
{
global = {
width = 400;
offset = "5x5";
progress_bar_min_width = 380;
progress_bar_max_width = 380;
progress_bar_corner_radius = 2;
padding = 10;
horizontal_padding = 10;
frame_width = 1;
gap_size = 3;
font = "Monospace 14";
icon_theme = "rose-pine-icons";
enable_recursive_icon_lookup = true;
corner_radius = 2;
} // selectedConfig.global;
} // urgencyColors

33
home/modules/wezterm.nix Normal file
View file

@ -0,0 +1,33 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.wezterm;
macos = config.snowhawk.macos.enable;
in
{
options.snowhawk.wezterm = {
enable = lib.mkEnableOption "kitty home-manager module";
};
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
wezterm
fd
];
programs.wezterm = {
enable = true;
extraConfig = /* lua */''
return require 'modules'
'';
};
xdg.configFile = {
wezterm = {
source = ../../home/wezterm;
recursive = true;
executable = true;
};
};
};
}

View file

@ -0,0 +1,31 @@
{ config, lib, pkgs, ... }:
let
cfg = config.snowhawk.xivlauncher;
in
{
options.snowhawk.xivlauncher = {
enable = lib.mkEnableOption "xivlauncher home-manager module";
textools.enable = lib.mkEnableOption "TexTools wine application";
};
config =
let launchffxiv = "${pkgs.xivlauncher}/bin/XIVLauncher.Core";
in lib.mkIf cfg.enable {
home.packages = with pkgs; [
xivlauncher
# fflogs
(writeShellScriptBin "iinact" ''
${pkgs.brave}/bin/brave --new-window "http://proxy.iinact.com/overlay/skyline/?OVERLAY_WS=ws://127.0.0.1:10501/ws"
'')
# (lib.mkIf cfg.textools.enable pkgs.wrapWine {
# # https://gist.github.com/helpful-fox-senko-san/6238143f5c7352ab44e62c5a0f7f7642
# name = "textools";
# tricks = [ "dotnet48" "dxvk" ];
# })
] ++ map (name: (writeShellScriptBin name launchffxiv)) [ "ff14" "xivlauncher" ];
};
}

View file

@ -0,0 +1,50 @@
local wezterm = require("wezterm")
-- This is the M table that we will export
local M = {}
-- define a function in the M table.
-- Only functions defined in `M` will be exported to
-- code that imports this M.
-- The suggested convention for making Ms that update
-- the config is for them to export an `apply_to_config`
-- function that accepts the config object, like this:
function M.apply_to_config(config)
config.colors = {
foreground = "#d8d8d8",
background = "#050505",
selection_fg = "#e0def4",
selection_bg = "#403d52",
cursor_bg = "#524f67",
cursor_fg = "#e0def4",
cursor_border = "#524f67",
ansi = {
"#181818",
"#ac4242",
"#90a959",
"#f4bf75",
"#6a8fb5",
"#aa759f",
"#75b5aa",
"#d8d8d8",
},
brights = {
"#6b6b6b",
"#c55555",
"#aac474",
"#fcea88",
"#82b8c8",
"#c28cb8",
"#93d3c3",
"#f8f8f8",
},
}
end
-- return our M table
return M

View file

@ -0,0 +1,49 @@
local wezterm = require("wezterm")
local config = wezterm.config_builder()
local colors = require("modules/colors")
colors.apply_to_config(config)
config.unix_domains = { { name = "unix" } }
config.default_gui_startup_args = { "connect", "unix" }
config.font = wezterm.font("JetBrainsMono Nerd Font")
config.use_fancy_tab_bar = false
config.tab_bar_at_bottom = true
-- https://github.com/wez/wezterm/issues/5990
config.front_end = "WebGpu"
local act = wezterm.action
local sessionizer = require("modules/sessionizer")
local navigator = require("modules/navigator")
-- timeout_milliseconds defaults to 1000 and can be omitted
config.leader = { key = "b", mods = "CTRL", timeout_milliseconds = 1000 }
config.keys = {
{ key = "b", mods = "LEADER|CTRL", action = act.ActivateLastTab },
{ key = "p", mods = "LEADER", action = act.ActivateTabRelative(-1) },
{ key = "p", mods = "LEADER|CTRL", action = act.ActivateTabRelative(-1) },
{ key = "n", mods = "LEADER", action = act.ActivateTabRelative(1) },
{ key = "n", mods = "LEADER|CTRL", action = act.ActivateTabRelative(1) },
{ key = "s", mods = "LEADER", action = act.ShowLauncherArgs({ flags = "WORKSPACES" }) },
{ key = "\\", mods = "LEADER", action = act.SplitHorizontal({ domain = "CurrentPaneDomain" }) },
{ key = "-", mods = "LEADER", action = act.SplitVertical({ domain = "CurrentPaneDomain" }) },
{ key = "c", mods = "LEADER", action = act.SpawnTab("CurrentPaneDomain") },
{ key = "a", mods = "LEADER", action = act.AttachDomain("unix") },
{ key = "d", mods = "LEADER|CTRL", action = act.DetachDomain("CurrentPaneDomain") },
-- Integration with neovim panes
-- { key = "h", mods = "CTRL", action = act.EmitEvent("ActivatePaneDirection-left") },
-- { key = "j", mods = "CTRL", action = act.EmitEvent("ActivatePaneDirection-down") },
-- { key = "k", mods = "CTRL", action = act.EmitEvent("ActivatePaneDirection-up") },
-- { key = "l", mods = "CTRL", action = act.EmitEvent("ActivatePaneDirection-right") },
{ key = "f", mods = "LEADER", action = wezterm.action_callback(sessionizer.toggle) },
}
return config

View file

@ -0,0 +1,53 @@
local wezterm = require("wezterm")
local M = {}
-- https://github.com/lrvdijk/dotfiles/blob/master/wezterm/wezterm.lua
-- Integration with neovim panes
function M.isViProcess(pane)
-- get_foreground_process_name On Linux, macOS and Windows,
-- the process can be queried to determine this path. Other operating systems
-- (notably, FreeBSD and other unix systems) are not currently supported
-- return pane:get_foreground_process_name():find('n?vim') ~= nil
-- Use get_title as it works for multiplexed sessions too
return pane:get_title():find("n?vim") ~= nil
end
function M.conditionalActivatePane(window, pane, pane_direction, vim_direction)
local vim_pane_changed = false
if M.isViProcess(pane) then
local before = pane:get_cursor_position()
window:perform_action(
-- This should match the keybinds you set in Neovim.
wezterm.action.SendKey({ key = vim_direction, mods = "CTRL" }),
pane
)
wezterm.sleep_ms(50)
local after = pane:get_cursor_position()
if before.x ~= after.x and before.y ~= after.y then
vim_pane_changed = true
end
end
if not vim_pane_changed then
window:perform_action(wezterm.action.ActivatePaneDirection(pane_direction), pane)
end
end
function M.apply_to_config(config)
wezterm.on("ActivatePaneDirection-right", function(window, pane)
M.conditionalActivatePane(window, pane, "Right", "l")
end)
wezterm.on("ActivatePaneDirection-left", function(window, pane)
M.conditionalActivatePane(window, pane, "Left", "h")
end)
wezterm.on("ActivatePaneDirection-up", function(window, pane)
M.conditionalActivatePane(window, pane, "Up", "k")
end)
wezterm.on("ActivatePaneDirection-down", function(window, pane)
M.conditionalActivatePane(window, pane, "Down", "j")
end)
end
return M

View file

@ -0,0 +1,52 @@
local wezterm = require("wezterm")
local act = wezterm.action
local M = {}
local fd = "/home/ravenshade/.nix-profile/bin/fd"
M.toggle = function(window, pane)
local projects = {}
local success, stdout, stderr = wezterm.run_child_process({
fd,
"-HI",
"^.git$",
"--max-depth=4",
"--prune",
os.getenv("HOME") .. "/projects",
os.getenv("HOME") .. "/.config",
os.getenv("HOME") .. "/src",
})
if not success then
wezterm.log_error("Failed to run fd: " .. stderr)
return
end
for line in stdout:gmatch("([^\n]*)\n?") do
local project = line:gsub("/.git.*$", "")
local label = project
local id = project:gsub(".*/", "")
table.insert(projects, { label = tostring(label), id = tostring(id) })
end
window:perform_action(
act.InputSelector({
action = wezterm.action_callback(function(win, _, id, label)
if not id and not label then
wezterm.log_info("Cancelled")
else
wezterm.log_info("Selected " .. label)
win:perform_action(act.SwitchToWorkspace({ name = id, spawn = { cwd = label } }), pane)
end
end),
fuzzy = true,
title = "Select project",
choices = projects,
}),
pane
)
end
return M

30
hosts/caveserver/home.nix Normal file
View file

@ -0,0 +1,30 @@
{ pkgs, inputs, ... }:
{
imports = [
../../home/modules
];
snowhawk.neovim = {
enable = true;
package = inputs.neovim-overlay.packages.${pkgs.system}.default;
};
snowhawk.ssh.enable = true;
snowhawk.user.username = "val";
home.packages = with pkgs; [
nix-output-monitor
(writeShellScriptBin "rebuild" ''
home-manager switch -v |& nom
'')
go
rustup
fzf
];
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "23.11";
}

View file

@ -0,0 +1,122 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running `nixos-help`).
{ pkgs, inputs, lib, config, ... }:
{
imports = [
inputs.nixos-apple-silicon.nixosModules.default
inputs.home-manager.nixosModules.default
../../modules
# Default specialisation
({ lib, config, ... }: {
config = lib.mkIf (config.specialisation != { }) {
snowhawk.hyprland.enable = true;
};
})
];
# boot.binfmt.emulatedSystems = [
# "x86_64-linux"
# "i686-linux"
# ];
# Install/enable all proprietary firmware
# hardware.enableAllFirmware = true;
environment.sessionVariables.MOZ_GMP_PATH = [
"${pkgs.widevine-cdm}/share/google/chrome/WidevineCdm/manifest.json"
];
snowhawk = {
filesystem.enable = true;
user.enable = true;
env.enable = true;
sops.enable = true;
audio.enable = true;
};
snowhawk.plymouth = {
enable = true;
theme = "owl";
};
specialisation = {
plasma.configuration = {
environment.etc."specialisation".text = "plasma";
services.xserver.enable = true;
services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
services.hypridle.enable = true;
systemd.user.services.hypridle.path = [ pkgs.brightnessctl ];
};
};
documentation = {
enable = true;
dev.enable = true;
man.enable = true;
};
home-manager = {
users = { "ravenshade" = import ./home.nix; };
backupFileExtension = "backup";
useGlobalPkgs = true;
};
# programs.steam.enable = true;
# hardware.graphics.enable32Bit = lib.mkForce false;
services.flatpak.enable = true;
systemd.services.flatpak-repo = {
wantedBy = [ "multi-user.target" ];
path = [ pkgs.flatpak ];
script = ''
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
'';
};
environment.systemPackages = with pkgs; [
pkgs.rose-pine-gtk-theme
pkgs.rose-pine-icon-theme
pkgs.adwaita-icon-theme
neovim
bashmount
curl
git
killall
iwd
iwgtk
gparted
exfatprogs
linux-manual
inputs.nh.packages.${pkgs.system}.default
];
environment.variables.NH_FLAKE = "/home/ravenshade/.config/nixos";
environment.variables.NIXOS_OZONE_WL = 1;
fonts.packages = with pkgs; [
nerd-fonts.jetbrains-mono
];
# Enable CUPS to print documents.
services.printing.enable = true;
# Set your time zone.
time.timeZone = "America/Los_Angeles";
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment?
}

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,77 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, inputs, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
boot.initrd.availableKernelModules = [ "usb_storage" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
# FIXME: was previously only "apple_dcp.show_notch=1"
# wish I could predict the commit hash
boot.kernelParams = lib.mkForce [
"earlycon"
"console=tty0"
"boot.shell_on_fail"
"nvme_apple.flush_interval=0"
"quiet"
"splash"
"boot.shell_on_fail"
"loglevel=3"
"rd.systemd.show_status=false"
"rd.udev.log_level=3"
"udev.log_priority=3"
"apple_dcp.show_notch=1"
"root=fstab"
"splash"
"loglevel=0"
];
hardware.asahi.peripheralFirmwareDirectory = ./firmware;
hardware.asahi.useExperimentalGPUDriver = true;
fileSystems."/" = {
device = "/dev/disk/by-uuid/9dba1955-a00b-4963-ac49-74e925ddd1b2";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/C215-0A0E";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
zramSwap.enable = true;
swapDevices = [{
device = "/swap";
size = 24 * 1000;
}];
# Use the systemd-boot EFI boot loader.
boot.loader.grub = {
enable = true;
efiSupport = true;
device = "nodev";
theme = pkgs.rose-pine-grub;
};
boot.loader.efi.canTouchEfiVariables = false;
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.wlan0.useDHCP = lib.mkDefault true;
networking.wireless.iwd = {
enable = true;
settings.General.EnableNetworkConfiguration = true;
};
networking.hostName = "llynx";
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
}

93
hosts/llynx/home.nix Normal file
View file

@ -0,0 +1,93 @@
{ pkgs, config, lib, inputs, ... }:
{
imports = [
../../home/modules
];
snowhawk = {
# Desktop
firefox.enable = true;
kitty.enable = true;
theme.enable = true;
sops.enable = true;
# dunst.enable = true;
flameshot.enable = true;
sources.enable = true;
projects.enable = true;
# Term Tools
neovim.enable = true;
direnv.enable = true;
};
wayland.windowManager.hyprland.settings.monitor = [ ",preferred,auto,auto" ];
snowhawk.ssh = {
enable = true;
homeNetwork = true;
};
repo-clone.enable = true;
repo-clone.repos = {
"${config.home.homeDirectory}/Pictures/backgrounds".url = lib.zgitRepo "backgrounds";
};
home.packages = with pkgs; [
bottom
ncspot
vesktop
ripgrep
lazygit
iwd
gcc
wl-clipboard
unzip
fzf
tree
pulsemixer
duf
pcmanfm
jq
advantagescope
wpilib.glass
wpilib.shuffleboard
wpilib.datalogtool
elastic-dashboard
pathplanner
# inputs.frc-nix.packages."x86_64-linux".pathplanner
box64
openjdk17-bootstrap
(vscode-with-extensions.override {
vscodeExtensions = with vscode-extensions; [
wpilibsuite.vscode-wpilib
vscjava.vscode-java-debug
vscjava.vscode-java-dependency
redhat.java
vscodevim.vim
mvllow.rose-pine
eamodio.gitlens
];
})
];
programs.nix-index.enable = true;
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "23.11";
}

View file

@ -0,0 +1,199 @@
{ pkgs, lib, self, inputs, ... }: {
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = [
inputs.nh.packages.${pkgs.system}.default
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.optimise.automatic = true;
environment.variables = {
NH_FLAKE = "/Users/ravenshade/nixos";
};
environment.shells = with pkgs; [ bashInteractive zsh fish ];
# Enable alternative shell support in nix-darwin.
# programs.fish.enable = true;
services.yabai =
let
gap = 10;
gapListParts = builtins.map
(x: lib.attrsets.nameValuePair (x + "_padding") gap)
[ "top" "bottom" "left" "right" ];
gapSettings = (builtins.listToAttrs gapListParts) // { window_gap = gap; };
in
{
enable = true;
enableScriptingAddition = true;
config = {
layout = "bsp";
window_shadow = "float";
mouse_modifier = "fn";
mouse_action1 = "move";
mouse_action2 = "resize";
focus_follows_mouse = "autoraise";
mouse_follows_focus = "off";
window_topmost = "off";
} // gapSettings;
extraConfig = ''
yabai -m rule --add app="^System Settings$" manage=off
yabai -m rule --add app="Python" manage=off
yabai -m rule --add app="macroquad_playground" manage=off
yabai -m rule --add app="^coreautha$" manage=off
yabai -m rule --add app="^Robot Simulation$" manage=off
'';
};
services.skhd =
let
yabaiSwapToFullscreen = pkgs.writeShellApplication {
name = "yabai-swap-to-fullscreen";
runtimeInputs = [ pkgs.jq pkgs.yabai ];
text = ''
focus() {
yabai -m space --focus "$1"
}
get_fs_displays() {
yabai -m query --spaces | jq -c 'map(select(."is-native-fullscreen" == true))'
}
get_visible() {
printf '%s' "$1" | jq -c 'map(select(."is-visible" == true))'
}
is_empty() {
length="$(printf '%s' "$1" | jq 'length')"
[ "$length" -le 0 ]
}
first() {
printf '%s' "$1" | jq 'sort_by(.index) | .[0].index'
}
try_focus_visible() {
# This should be at max length 1. Though this may likely break in a multimonitor environment
visible_fullscreen_displays=$(get_visible "$1")
if ! is_empty "$visible_fullscreen_displays"; then
visible_index=$(printf '%s' "$visible_fullscreen_displays" | jq -c '.[0].index')
next_index=$((visible_index + 1))
if [ "$(printf '%s' "$fullscreen_displays" | jq "map(select(.index == $next_index)) | length")" -gt "0" ]; then
focus "$next_index"
return 0
fi
fi
return 1
}
main() {
fullscreen_displays="$(get_fs_displays)"
is_empty "$fullscreen_displays" && focus 1 && return 1
try_focus_visible "$fullscreen_displays" && return 1
focus "$(first "$fullscreen_displays")"
}
main
'';
};
# Idk if macos' 'open' is something I can find in nixpkgs lmfao
newAlacrityWindow = pkgs.writeShellApplication {
name = "new-alacritty-window";
runtimeInputs = [ pkgs.alacritty ];
text = ''
alacritty_output=$(alacritty msg create-window 2>/dev/null)
if [ -z "$alacritty_output" ]; then
open /Applications/Alacritty.app
fi
'';
};
session = pkgs.writeText "main-kitty-session" ''
cd /Users/zynh
'';
yabai = lib.getExe pkgs.yabai;
kitty = lib.getExe pkgs.kitty;
in
{
enable = true;
skhdConfig = ''
# float / unfloat window and center on screen
alt - t : ${yabai} -m window --toggle float --grid 4:4:1:1:2:2
# open terminal window using shell script
cmd - return : ${kitty} --session ${session} --single-instance
# rebind space switching
ctrl - left : ${yabai} -m space --focus prev || ${yabai} -m space --focus last
ctrl - right : ${yabai} -m space --focus next || ${yabai} -m space --focus first
# focusing specific spaces
cmd - 1 : ${yabai} -m space --focus 1
cmd - 2 : ${yabai} -m space --focus 2
cmd - 3 : ${yabai} -m space --focus 3
cmd - 4 : ${yabai} -m space --focus 4
cmd - 5 : ${yabai} -m space --focus 5
cmd - 6 : ${yabai} -m space --focus 6
cmd - 7 : ${yabai} -m space --focus 7
cmd - 8 : ${yabai} -m space --focus 8
cmd - 9 : ${yabai} -m space --focus 9
cmd - 0x32 : ${lib.getExe yabaiSwapToFullscreen}
# moving windows
cmd + shift - 1 : ${yabai} -m window --space 1
cmd + shift - 2 : ${yabai} -m window --space 2
cmd + shift - 3 : ${yabai} -m window --space 3
# cmd + shift - 4 : ${yabai} -m window --space 4
cmd + shift - 5 : ${yabai} -m window --space 5
cmd + shift - 6 : ${yabai} -m window --space 6
cmd + shift - 7 : ${yabai} -m window --space 7
cmd + shift - 8 : ${yabai} -m window --space 8
cmd + shift - 9 : ${yabai} -m window --space 9
cmd + shift - 0x32 : ${yabai} -m window --toggle native-fullscreen
# cmd + alt - 4 : "cmd + shift - 4"
'';
};
home-manager.sharedModules = [
{
home.file.".config/yabai/yabaiExe".source = lib.getExe pkgs.yabai;
home.packages = with pkgs; [ yabai ];
}
];
security.pam.enableSudoTouchIdAuth = true;
users.users.ravenshade = {
name = "ravenshade";
home = "/Users/ravenshade";
};
home-manager = {
users = { "ravenshade" = import ./home.nix; };
backupFileExtension = "backup";
};
fonts.packages = with pkgs; [
nerd-fonts.jetbrains-mono
];
# Set Git commit hash for darwin-version.
system.configurationRevision = self.rev or self.dirtyRev or null;
# $ darwin-rebuild changelog
system.stateVersion = 5;
}

86
hosts/lynx/home.nix Normal file
View file

@ -0,0 +1,86 @@
{ pkgs, lib, config, ... }:
{
imports = [
../../home/modules
];
snowhawk = {
alacritty.enable = false;
kitty.enable = true;
macos.enable = true;
sources.enable = true;
projects.enable = true;
ssh = {
enable = true;
homeNetwork = true;
};
neovim.enable = true;
sops.enable = true;
direnv.enable = true;
};
# nixpkgs.overlays = [
# (final: prev: {
# tmux = prev.tmux.overrideAttrs (old: rec {
# version = "3.5";
# src = prev.fetchFromGitHub {
# owner = "tmux";
# repo = "tmux";
# rev = version;
# hash = "sha256-8CRZj7UyBhuB5QO27Y+tHG62S/eGxPOHWrwvh1aBqq0=";
# };
# });
# })
# ];
# programs.tmux.extraConfig = ''
# set -gu default-command
# set -g default-shell "$SHELL"
# '';
snowhawk.tmux.sessionizer.paths = [
"~/Documents/obsidian"
];
programs.kitty.settings = {
background_opacity = lib.mkForce 0.94;
background = lib.mkForce "#171717";
font_size = lib.mkForce 16.0;
hide_window_decorations = lib.mkForce "titlebar-only";
macos_option_as_alt = lib.mkForce "both";
};
programs.alacritty.settings = {
font.size = lib.mkForce 16.0;
window.opacity = lib.mkForce 0.94;
colors.primary.background = lib.mkForce "#171717";
};
home.username = "ravenshade";
home.homeDirectory = "/Users/ravenshade";
home.packages = with pkgs; [
nix-output-monitor
(writeShellScriptBin "rebuild" ''
darwin-rebuild switch --flake ~/nixos#lynx |& nom
'')
(writeShellScriptBin "restart-skhd" ''
launchctl stop org.nixos.skhd
launchctl start org.nixos.skhd
'')
wakeonlan
go
rustup
fzf
gh
];
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "23.11";
}

53
hosts/permafrost/home.nix Normal file
View file

@ -0,0 +1,53 @@
{ pkgs, inputs, ... }:
{
imports = [
../../home/modules
];
nix = {
package = pkgs.nix;
settings = {
auto-optimise-store = true;
experimental-features = [ "nix-command" "flakes" ];
};
};
snowhawk.neovim = {
enable = true;
};
snowhawk.ssh.enable = true;
snowhawk.sops.enable = true;
snowhawk.repo-clone.enable = true;
snowhawk.user.username = "ravenshade";
snowhawk.tmux.sessionizer.paths = [
"/etc/nixos"
];
home.packages = with pkgs; [
nix-output-monitor
(writeShellScriptBin "rebuild" ''
home-manager switch --flake /home/ravenshade/.config/home-manager#ravenshade@virtmsi |& nom
'')
pkgs.nix
inputs.nh.packages.${pkgs.system}.default
goaccess
go
wakeonlan
];
home.sessionVariables = {
NH_FLAKE = "/home/ravenshade/permafrost";
};
programs.nix-index.enable = true;
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "23.11";
}

View file

@ -0,0 +1,225 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running `nixos-help`).
{ pkgs, inputs, lib, config, ... }:
{
imports = [
inputs.home-manager.nixosModules.default
../../modules
# Default specialisation
({ lib, config, ... }: {
config = lib.mkIf (config.specialisation != { }) {
hardware.nvidia.open = lib.mkForce true;
snowhawk.hyprland = {
enable = true;
nvidia = true;
split-monitor-workspaces = true;
};
home-manager.sharedModules = [{
wayland.windowManager.hyprland = {
settings = {
monitor = [
"DP-1, 1920x1080@144, 1920x0, 1"
"HDMI-A-1, 1920x1080@60, 0x0, 1"
];
};
};
}];
};
})
];
specialisation =
let
nvkConfig = {
system.nixos.tags = [ "nouveau-drivers" ];
boot.kernelParams = lib.mkAfter [ "nouveau.config=NvGspRm=1" ];
services.xserver.videoDrivers = (lib.lists.remove "nvidia" config.services.xserver.videoDrivers);
hardware.firmware = [ (config.hardware.nvidia.package).firmware ];
boot.blacklistedKernelModules = [
"nvidia"
"nvidiafb"
"nvidia-drm"
"nvidia-uvm"
"nvidia-modeset"
];
};
in
{
# dwmNVK.configuration = {
# environment.etc."specialisation".text = "dwm";
#
# snowhawk.dwm.enable = true;
#
# home-manager.sharedModules = [{ snowhawk.dunst.enable = lib.mkDefault true; }];
# } // nvkConfig;
# dwl.configuration = {
# environment.etc."specialisation".text = "dwl";
#
# hardware.nvidia.open = lib.mkForce true;
#
# snowhawk.dwl.enable = true;
#
# home-manager.sharedModules = [{ snowhawk.dunst.enable = lib.mkDefault true; }];
# };
dwm.configuration = {
environment.etc."specialisation".text = "dwm";
snowhawk.dwm.enable = true;
home-manager.sharedModules = [{
snowhawk.dunst.enable = lib.mkDefault true;
snowhawk.dwm.useXFixes = true;
}];
};
# plasma.configuration = {
# environment.etc."specialisation".text = "plasma";
#
# hardware.nvidia.open = lib.mkForce true;
#
# services.xserver.enable = true;
# services.displayManager.sddm.enable = true;
# services.desktopManager.plasma6.enable = true;
# };
# dwlNVK.configuration = {
# environment.etc."specialisation".text = "dwlNVK";
#
# snowhawk.dwl.enable = true;
#
# home-manager.sharedModules = [{ snowhawk.dunst.enable = lib.mkDefault true; }];
# } // nvkConfig;
};
services.libinput.mouse.middleEmulation = false;
snowhawk = {
filesystem.enable = true;
polkit.enable = true;
syncthing.enable = true;
user.enable = true;
wake-on-lan.enable = true;
star-citizen.enable = true;
};
snowhawk.plymouth = {
enable = true;
theme = "owl";
};
programs.gamemode.enable = true;
# Enable automatic login for the user.
services.displayManager.autoLogin = {
enable = true;
user = "ravenshade";
};
documentation = {
enable = true;
dev.enable = true;
man.enable = true;
};
home-manager = {
users = { "ravenshade" = import ./home.nix; };
backupFileExtension = "backup";
useGlobalPkgs = true;
};
services.flatpak.enable = true;
xdg.portal.enable = true;
xdg.portal.config.common.default = "*";
xdg.portal.extraPortals = with pkgs; [ xdg-desktop-portal-gtk ];
systemd.services.flatpak-repo = {
wantedBy = [ "multi-user.target" ];
path = [ pkgs.flatpak ];
script = ''
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
'';
};
environment.systemPackages = with pkgs; [
mysql-workbench
# FIXME: extract to theme module?
pkgs.rose-pine-gtk-theme
pkgs.rose-pine-icon-theme
pkgs.adwaita-icon-theme
bluetui
blueberry
brightnessctl
neovim
curl
git
killall
gamemode
linux-manual
inputs.nh.packages.${pkgs.system}.default
];
environment.variables.NH_FLAKE = "/home/ravenshade/.config/nixos";
fonts.packages = with pkgs; [
nerd-fonts.jetbrains-mono
];
# Enable CUPS to print documents.
services.printing.enable = true;
services.ratbagd.enable = true;
programs.gamescope.enable = true;
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
gamescopeSession.enable = true;
};
# Adds pkgs.uhk-dev-rules to services.udev.packages
hardware.keyboard.uhk.enable = true;
swapDevices = [{
device = "/swap";
size = 16 * 1024;
}];
# Also recommended, either as an alternative or in addition
zramSwap.enable = true;
virtualisation.docker.enable = true;
users.users.ravenshade.extraGroups = [ "docker" "libvirtd" ];
virtualisation = {
libvirtd = {
enable = true;
qemu = {
package = pkgs.qemu_kvm;
};
};
};
programs.virt-manager.enable = true;
# I think I need a gtk theme? gnome-keyring
qt.platformTheme = "gtk2";
# Set your time zone.
time.timeZone = "America/Los_Angeles";
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment?
}

View file

@ -1,5 +1,40 @@
{ config, lib, pkgs, modulesPath, ... }:
let
default-monitors = pkgs.writeXrandrScriptBin "default-monitors" {
DP-0 = {
primary = true;
mode = "1920x1080";
pos = "1920x0";
rotate = "normal";
};
HDMI-0 = {
mode = "1920x1080";
pos = "0x0";
rotate = "normal";
};
};
tv-on = pkgs.writeXrandrScriptBin "tv-on" {
DP-0 = {
primary = true;
mode = "1920x1080";
pos = "1920x1080";
rotate = "normal";
};
HDMI-0 = {
mode = "1920x1080";
pos = "0x1080";
rotate = "normal";
};
HDMI-1 = {
mode = "1920x1080";
pos = "1920x0";
rotate = "normal";
};
};
in
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
@ -8,20 +43,115 @@
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{
device = "/dev/disk/by-uuid/8c377115-06bb-488e-a531-c668dac127f6";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/8c377115-06bb-488e-a531-c668dac127f6";
fsType = "ext4";
};
fileSystems."/boot" =
{
device = "/dev/disk/by-uuid/1A0A-CEB2";
fsType = "vfat";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/0499-9841";
fsType = "vfat";
};
fileSystems."/data" = {
device = "/dev/disk/by-uuid/00a7093a-49ee-41e4-baec-99d8a322a530";
fsType = "ext4";
};
fileSystems."/home/ravenshade" = {
device = "/dev/disk/by-uuid/9451621e-00ce-4ea3-99b7-8f2753e51665";
fsType = "ext4";
};
fileSystems."/archive" = {
device = "/dev/disk/by-uuid/d5a23b72-9982-49ab-a3a6-c297c0537cba";
fsType = "ext4";
};
# Enable OpenGL
hardware.graphics = {
enable = true;
enable32Bit = true;
};
# Load nvidia driver for Xorg and Wayland
services.xserver.videoDrivers = lib.mkDefault [ "nvidia" ];
services.xserver.dpi = lib.mkDefault 96;
environment.systemPackages = [
default-monitors
tv-on
];
systemd.user.services.screenlayout = {
script = lib.getExe default-monitors;
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
};
systemd.user.services.fehbg.after = [ "screenlayout.service" ];
hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = true;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
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,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
forceFullCompositionPipeline = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.beta;
};
hardware.bluetooth.enable = true;
swapDevices = [ ];
# Bootloader.
boot.loader.grub = {
enable = true;
efiSupport = true;
device = "nodev";
theme = pkgs.rose-pine-grub;
default = "saved";
extraEntries = ''
menuentry 'Windows Boot Manager (on /dev/nvme0n1p1)' --class windows --class os {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root 22A0-639A
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
'';
};
boot.loader.efi.canTouchEfiVariables = true;
# Enable networking
networking.networkmanager.enable = true;
networking.hostName = "snowhawk";
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction

170
hosts/snowhawk/home.nix Normal file
View file

@ -0,0 +1,170 @@
{ pkgs, config, lib, inputs, ... }:
{
imports = [
../../home/modules
];
snowhawk = {
# Desktop
firefox.enable = true;
theme.enable = true;
redshift.enable = true;
flameshot.enable = true;
playerctl.enable = true;
kitty.enable = true;
defaultPrograms.enable = true;
pipewire-controller.enable = true;
# Games
lutris.enable = true;
xivlauncher.enable = true;
# Term Tools
neovim.enable = true;
tldr.enable = true;
# Dev
rust.enable = true;
projects.enable = true;
sources.enable = true;
# Security
sops.enable = true;
rbw.enable = true;
};
sops.secrets."app_urls/nh_slack" = { };
snowhawk.brave-apps = {
enable = true;
apps = {
github.url = "https://github.com";
zgit.url = "https://git.zynh.me";
gmail.url = "https://mail.google.com/mail/u/0";
calendar.url = "https://calendar.google.com/calendar/u/0/r";
slack_nh.urlFile = config.sops.secrets."app_urls/nh_slack".path;
};
};
snowhawk.ssh = {
enable = true;
homeNetwork = true;
};
repo-clone.repos = {
"${config.home.homeDirectory}/Pictures/backgrounds".url = lib.zgitRepo "backgrounds";
};
snowhawk.tmux.sessionizer.paths = [
"~/obsidian"
];
home.packages = with pkgs; [
# (writeShellScriptBin "battlenet" ''
# export WINEARCH=win64
# export WINEPREFIX=$HOME/.wine-battlenet
# wine64 ~/.wine-battlenet/drive_c/Program\ Files\ \(x86\)/Battle.net/Battle.net\ Launcher.exe
# '')
(wineWowPackages.full.override {
wineRelease = "staging";
mingwSupport = true;
})
winetricks
r2modman
wowup-cf
(writeShellScriptBin "fix-desktop" ''
systemctl --user restart xrootdatetime.service
systemctl --user restart fehbg.service
'')
ripgrep
unzip
fzf
tree
ncspot
pathplanner
gparted
arandr
bear
spotify
vesktop
(writeShellScriptBin "discord" ''
${lib.getExe vesktop} $@
'')
steam-run
brave
nix-output-monitor
(writeShellScriptBin "rebuild" ''
nixos-rebuild switch --log-format internal-json -v $@ |& nom --json
'')
(writeShellScriptBin "suspend" ''
systemctl suspend
'')
(writeShellScriptBin "reboot-windows" ''
sudo ${pkgs.grub2}/bin/grub-reboot "Windows Boot Manager (on /dev/nvme0n1p1)"
sudo reboot
'')
(writeShellScriptBin "roblox" ''
flatpak run org.vinegarhq.Sober
'')
prismlauncher
feh
imagemagick
uhk-agent
pulsemixer
obsidian
inputs.deploy-rs.packages.${pkgs.system}.default
# Build Tools
gnumake
zig
gcc
go
python3
nodejs_22
dotnet-sdk_8
blender
ffmpeg
duf
qdirstat
pcmanfm
geeqie
jq
gimp
rsync
eww
dwm-msg
pwvucontrol
];
programs.nix-index.enable = true;
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.stateVersion = "23.11";
}

View file

@ -1,33 +0,0 @@
{ config, lib, pkgs, modulesPath, ... }:
{
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
boot.initrd.availableKernelModules = [ "xhci_pci" "virtio_pci" "usbhid" "usb_storage" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{
device = "/dev/disk/by-uuid/fa4ed906-f26b-40ec-859c-81813151c33a";
fsType = "ext4";
};
fileSystems."/boot" =
{
device = "/dev/disk/by-uuid/31B8-8850";
fsType = "vfat";
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp0s1.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
}

25
lib/default.nix Normal file
View file

@ -0,0 +1,25 @@
final: prev:
let
inherit (prev) isFunction mkMerge mkIf;
in
rec {
# Ternary operator
# Exaample:
# tern false 1 2 => 2
# tern true 1 2 => 1
tern = pred: x: y: if pred then x else y;
# Right-associate and chain following single-operand functions
# Example:
# right f g h 1 => f(g(h(1)))
right = f: g: tern (isFunction g)
(right (x: f (g (x))))
(f (g));
mkIfElse = predicate: yes: no: mkMerge [
(mkIf predicate yes)
(mkIf (!predicate) no)
];
zgitRepo = name: "https://git.zynh.me/Zynh0722/${name}.git";
}

24
modules/audio.nix Normal file
View file

@ -0,0 +1,24 @@
{ lib, config, pkgs, ... }:
let
cfg = config.snowhawk.audio;
in
{
options.snowhawk.audio = {
enable = lib.mkEnableOption "audio";
};
config = lib.mkIf cfg.enable {
# Enable sound with pipewire.
services.pulseaudio.enable = false;
services.pulseaudio.extraModules = [ pkgs.pulseaudio-modules-bt ];
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
};
}

19
modules/default.nix Normal file
View file

@ -0,0 +1,19 @@
{ lib, ... }:
let
dirEntries = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
moduleEntries = lib.attrsets.filterAttrs (n: v: v == "regular") dirEntries;
moduleNames = builtins.attrNames moduleEntries;
modulePaths = builtins.map (name: ./${name}) moduleNames;
in
{
imports = modulePaths;
snowhawk.i18n.enable = lib.mkDefault true;
snowhawk.audio.enable = lib.mkDefault true;
snowhawk.env.enable = lib.mkDefault true;
snowhawk.network.enable = lib.mkDefault true;
snowhawk.sops.enable = lib.mkDefault true;
snowhawk.power-button.enable = lib.mkDefault true;
}

114
modules/dwl.nix Normal file
View file

@ -0,0 +1,114 @@
{ lib, config, pkgs, inputs, ... }:
let
cfg = config.snowhawk.dwl;
in
{
options.snowhawk.dwl = {
enable = lib.mkEnableOption "dwl";
package = lib.mkOption {
type = with lib.types; package;
default = inputs.zdwl.packages."x86_64-linux".default;
apply = p: p.overrideAttrs {
postInstall = ''
mkdir -p $out/share/wayland-sessions
install $src/dwl.desktop -Dt $out/share/wayland-sessions
'';
passthru.providedSessions = [ "dwl" ];
};
};
};
config = lib.mkIf cfg.enable {
services.graphical-desktop.enable = lib.mkDefault true;
services.displayManager = {
enable = true;
sessionPackages = [ cfg.package ];
defaultSession = "dwl";
# TODO: greetd?
sddm = {
enable = lib.mkDefault true;
wayland.enable = lib.mkDefault true;
};
};
security = {
polkit.enable = lib.mkDefault true;
# Uncomment to make swaylock work
# pam.services.swaylock = { };
};
# environment.sessionVariables.NIXOS_OZONE_WL = "1";
programs = {
dconf.enable = lib.mkDefault true;
xwayland.enable = lib.mkDefault true;
};
xdg.portal = {
enable = true;
wlr.enable = lib.mkDefault true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-wlr
];
};
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
xdg.portal.config.dwl.default = lib.mkDefault [ "wlr" "gtk" ];
services.xserver.desktopManager.runXdgAutostartIfNone = lib.mkDefault true;
environment.variables = {
QT_QPA_PLATFORM = "wayland;xcb";
MOZ_ENABLE_WAYLAND = 1;
SDL_VIDEODRIVER = "wayland,x11"; # TODO: Test me
_JAVA_AWT_WM_NONREPARENTING = 1;
XDG_CURRENT_DESKTOP = "dwl";
XDG_SESSION_DESKTOP = "dwl";
};
environment.systemPackages = with pkgs; [
grim
slurp
satty
dwlmsg
wdisplays
xorg.xlsclients
wl-clipboard
wmenu
kitty
cfg.package
pipewire-controller
(pkgs.writeShellApplication {
name = "sattySnap";
runtimeInputs = [ satty grim gawk gnugrep dwlmsg ];
text =
let
sattyArgs = lib.cli.toGNUCommandLineShell { } {
early-exit = true;
filename = "-";
fullscreen = true;
initial-tool = "crop";
};
in
''
grim -o "$(dwlmsg -g | grep "selmon 1" | awk '{ print $1 }')" - | satty ${sattyArgs}
'';
})
];
home-manager.sharedModules = [
{ snowhawk.satty.enable = lib.mkDefault true; }
];
};
}

102
modules/dwm.nix Normal file
View file

@ -0,0 +1,102 @@
{ lib, config, pkgs, inputs, ... }:
let
inherit (lib) getExe;
cfg = config.snowhawk.dwm;
in
{
options.snowhawk.dwm = {
enable = lib.mkEnableOption "dwm";
};
config = lib.mkIf cfg.enable {
# Enable the X11 windowing system.
services.xserver.enable = true;
# Configure keymap in X11
services.xserver = {
xkb = {
layout = "us";
variant = "";
};
};
services.libinput = {
enable = true;
mouse.accelProfile = "flat";
};
services.xserver.windowManager.dwm = {
enable = true;
package = pkgs.dwm.overrideAttrs (oldAttrs: {
src = inputs.zdwm;
buildInputs = oldAttrs.buildInputs ++ [ pkgs.yajl ];
});
};
services.picom = {
enable = true;
fade = false;
};
systemd.user.services.xrootdatetime = {
script =
let
pamixer = getExe pkgs.pamixer;
xsetroot = getExe pkgs.xorg.xsetroot;
in
/* bash */ ''
function update_x_root() {
set +e # allow errors
mute="$(${pamixer} --default-source --get-mute)"
set -e # disallow errors
if [[ "$mute" == "true" ]]; then
mutedString="Mic Muted "
else
mutedString=""
fi
dateTime=$(date +"<-- %A, %B %d -- %H:%M -->")
${xsetroot} -name "$mutedString$dateTime"
}
trap update_x_root SIGUSR1
while true; do
sleep 1 &
wait
update_x_root
done
'';
wantedBy = [ "graphical-session.target" ];
after = [ "pipewire.service" ];
serviceConfig.Restart = "on-failure";
};
systemd.user.services.fehbg = {
script = ''
${getExe pkgs.feh} --no-fehbg --bg-scale '${inputs.backgrounds}/bg-none-nord.webp'
'';
wantedBy = [ "graphical-session.target" ];
partOf = [ "graphical-session.target" ];
};
environment.variables.FREETYPE_PROPERTIES = "cff:no-stem-darkening=0 autofitter:no-stem-darkening=0";
environment.systemPackages = with pkgs; [
dmenu
xclip
flameshot
rose-pine-gtk-theme
rose-pine-icon-theme
];
home-manager.sharedModules = [
./home/dwm.nix
{ snowhawk.dwm.enable = lib.mkDefault true; }
];
};
}

18
modules/env.nix Normal file
View file

@ -0,0 +1,18 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.env;
in
{
options.snowhawk.env = {
enable = lib.mkEnableOption "env";
};
config = lib.mkIf cfg.enable {
nix.settings = {
trusted-users = [ "ravenshade" ];
experimental-features = [ "nix-command" "flakes" ];
auto-optimise-store = true;
};
};
}

26
modules/filesystem.nix Normal file
View file

@ -0,0 +1,26 @@
{ config, lib, ... }:
# This module provides some filesystem functionality I expect to work out of the box
let
cfg = config.snowhawk.filesystem;
in
{
options.snowhawk.filesystem = {
enable = lib.mkEnableOption "filesystem nixos module";
};
config = lib.mkIf cfg.enable {
# Building nixos without this uses a ton of disk
# Needs to be disabled on low memory systems
boot.tmp.useTmpfs = true;
# This makes shebangs work
services.envfs.enable = true;
# So many things break without this
programs.dconf.enable = true;
# Enable trash:/// support
services.gvfs.enable = true;
};
}

View file

@ -0,0 +1,25 @@
# Yoink https://github.com/thomX75/nixos-modules/blob/56fd73011f022e7c85bd7a40812663c5933106f9/Glib-Schemas-Fix/glib-schemas-fix.nix
# Glib Schemas Fix
# https://github.com/thomX75/nixos-modules
{ config, pkgs, lib, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.glib-schemas-fix;
in
{
options.snowhawk.glib-schemas-fix = {
enable = mkEnableOption "glib-schemas-fix nixos module";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [ gtk3 ];
environment.variables = {
GSETTINGS_SCHEMA_DIR = "${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}/glib-2.0/schemas";
};
};
}

45
modules/home/dwm.nix Normal file
View file

@ -0,0 +1,45 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.dwm;
in
{
options.snowhawk.dwm = {
enable = mkEnableOption "niri home-manager module";
useXFixes = mkEnableOption "using unclutter-xfixes instead of unclutter";
};
config = mkIf cfg.enable {
# WM Stuff
xsession.numlock.enable = true;
services.unclutter = {
enable = true;
package = if cfg.useXFixes then pkgs.unclutter-xfixes else pkgs.unclutter;
};
systemd.user.services.unclutter.Service.ExecStart =
let cfg = config.services.unclutter;
in lib.mkForce ''
${cfg.package}/bin/unclutter \
--timeout ${toString cfg.timeout} \
--jitter ${toString (cfg.threshold - 1)} \
${lib.concatStrings cfg.extraOptions}
'';
home.file.".xinitrc".text = ''
[ -f ~/.Xresources ] && ${lib.getExe pkgs.xorg.xrdb} -merge ~/.Xresources
'';
xresources.properties = {
"Xft.lcdfilter" = "lcddefault";
"Xft.hintstyle" = "hintslight";
"Xft.hinting" = "1";
"Xft.antialias" = "1";
"Xft.rgba" = "none";
};
};
}

263
modules/home/niri.nix Normal file
View file

@ -0,0 +1,263 @@
{ config, lib, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.niri;
in
{
options.snowhawk.niri = {
enable = mkEnableOption "niri home-manager module";
};
config = mkIf cfg.enable {
programs.niri.settings = {
environment = {
DISPLAY = ":0";
};
binds = {
# Keys consist of modifiers separated by + signs, followed by an XKB key name
# in the end. To find an XKB name for a particular key, you may use a program
# like wev.
#
# "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
# when running as a winit window.
#
# Most actions that you can bind here can also be invoked programmatically with
# `niri msg action do-something`.
# Mod-Shift-/, which is usually the same as Mod-?,
# shows a list of important hotkeys.
"Mod+Shift+Slash".action.show-hotkey-overlay = { };
# Suggested binds for running programs: terminal, app launcher, screen locker.
"Mod+T".action.spawn = "alacritty";
"Mod+D".action.spawn = "fuzzel";
"Super+Alt+L".action.spawn = "swaylock";
# You can also use a shell. Do this if you need pipes, multiple commands, etc.
# Note: the entire command goes as a single argument in the end.
# Mod+T { spawn "bash" "-c" "notify-send hello && exec alacritty"; }
# Example volume keys mappings for PipeWire & WirePlumber.
# The allow-when-locked=true property makes them work even when the session is locked.
"XF86AudioRaiseVolume" = {
allow-when-locked = true;
action.spawn = [ "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1+" ];
};
"XF86AudioLowerVolume" = {
allow-when-locked = true;
action.spawn = [ "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.1-" ];
};
"XF86AudioMute" = {
allow-when-locked = true;
action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle" ];
};
"XF86AudioMicMute" = {
allow-when-locked = true;
action.spawn = [ "wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle" ];
};
"Mod+Q".action.close-window = { };
"Mod+Left".action.focus-column-left = { };
"Mod+Down".action.focus-window-down = { };
"Mod+Up".action.focus-window-up = { };
"Mod+Right".action.focus-column-right = { };
"Mod+H".action.focus-column-left = { };
"Mod+J".action.focus-window-down = { };
"Mod+K".action.focus-window-up = { };
"Mod+L".action.focus-column-right = { };
"Mod+Ctrl+Left".action.move-column-left = { };
"Mod+Ctrl+Down".action.move-window-down = { };
"Mod+Ctrl+Up".action.move-window-up = { };
"Mod+Ctrl+Right".action.move-column-right = { };
"Mod+Ctrl+H".action.move-column-left = { };
"Mod+Ctrl+J".action.move-window-down = { };
"Mod+Ctrl+K".action.move-window-up = { };
"Mod+Ctrl+L".action.move-column-right = { };
# Alternative commands that move across workspaces when reaching
# the first or last window in a column.
# Mod+J { focus-window-or-workspace-down; }
# Mod+K { focus-window-or-workspace-up; }
# Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
# Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
"Mod+Home".action.focus-column-first = { };
"Mod+End".action.focus-column-last = { };
"Mod+Ctrl+Home".action.move-column-to-first = { };
"Mod+Ctrl+End".action.move-column-to-last = { };
"Mod+Shift+Left".action.focus-monitor-left = { };
"Mod+Shift+Down".action.focus-monitor-down = { };
"Mod+Shift+Up".action.focus-monitor-up = { };
"Mod+Shift+Right".action.focus-monitor-right = { };
"Mod+Shift+H".action.focus-monitor-left = { };
"Mod+Shift+J".action.focus-monitor-down = { };
"Mod+Shift+K".action.focus-monitor-up = { };
"Mod+Shift+L".action.focus-monitor-right = { };
"Mod+Shift+Ctrl+Left".action.move-column-to-monitor-left = { };
"Mod+Shift+Ctrl+Down".action.move-column-to-monitor-down = { };
"Mod+Shift+Ctrl+Up".action.move-column-to-monitor-up = { };
"Mod+Shift+Ctrl+Right".action.move-column-to-monitor-right = { };
"Mod+Shift+Ctrl+H".action.move-column-to-monitor-left = { };
"Mod+Shift+Ctrl+J".action.move-column-to-monitor-down = { };
"Mod+Shift+Ctrl+K".action.move-column-to-monitor-up = { };
"Mod+Shift+Ctrl+L".action.move-column-to-monitor-right = { };
# Alternatively, there are commands to move just a single window:
# Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
# ...
# And you can also move a whole workspace to another monitor:
# Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
# ...
"Mod+Page_Down".action.focus-workspace-down = { };
"Mod+Page_Up".action.focus-workspace-up = { };
"Mod+U".action.focus-workspace-down = { };
"Mod+I".action.focus-workspace-up = { };
"Mod+Ctrl+Page_Down".action.move-column-to-workspace-down = { };
"Mod+Ctrl+Page_Up".action.move-column-to-workspace-up = { };
"Mod+Ctrl+U".action.move-column-to-workspace-down = { };
"Mod+Ctrl+I".action.move-column-to-workspace-up = { };
# Alternatively, there are commands to move just a single window:
# Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
# ...
"Mod+Shift+Page_Down".action.move-workspace-down = { };
"Mod+Shift+Page_Up".action.move-workspace-up = { };
"Mod+Shift+U".action.move-workspace-down = { };
"Mod+Shift+I".action.move-workspace-up = { };
# You can bind mouse wheel scroll ticks using the following syntax.
# These binds will change direction based on the natural-scroll setting.
#
# To avoid scrolling through workspaces really fast, you can use
# the cooldown-ms property. The bind will be rate-limited to this value.
# You can set a cooldown on any bind, but it's most useful for the wheel.
"Mod+WheelScrollDown" = {
cooldown-ms = 150;
action.focus-workspace-down = { };
};
"Mod+WheelScrollUp" = {
cooldown-ms = 150;
action.focus-workspace-up = { };
};
"Mod+Ctrl+WheelScrollDown" = {
cooldown-ms = 150;
action.move-column-to-workspace-down = { };
};
"Mod+Ctrl+WheelScrollUp" = {
cooldown-ms = 150;
action.move-column-to-workspace-up = { };
};
"Mod+WheelScrollRight".action.focus-column-right = { };
"Mod+WheelScrollLeft".action.focus-column-left = { };
"Mod+Ctrl+WheelScrollRight".action.move-column-right = { };
"Mod+Ctrl+WheelScrollLeft".action.move-column-left = { };
# Usually scrolling up and down with Shift in applications results in
# horizontal scrolling; these binds replicate that.
"Mod+Shift+WheelScrollDown".action.focus-column-right = { };
"Mod+Shift+WheelScrollUp".action.focus-column-left = { };
"Mod+Ctrl+Shift+WheelScrollDown".action.move-column-right = { };
"Mod+Ctrl+Shift+WheelScrollUp".action.move-column-left = { };
# Similarly, you can bind touchpad scroll "ticks".
# Touchpad scrolling is continuous, so for these binds it is split into
# discrete intervals.
# These binds are also affected by touchpad's natural-scroll, so these
# example binds are "inverted", since we have natural-scroll enabled for
# touchpads by default.
# Mod+TouchpadScrollDown { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02+"; }
# Mod+TouchpadScrollUp { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "0.02-"; }
# You can refer to workspaces by index. However, keep in mind that
# niri is a dynamic workspace system, so these commands are kind of
# "best effort". Trying to refer to a workspace index bigger than
# the current workspace count will instead refer to the bottommost
# (empty) workspace.
#
# For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
# will all refer to the 3rd workspace.
"Mod+1".action.focus-workspace = 1;
"Mod+2".action.focus-workspace = 2;
"Mod+3".action.focus-workspace = 3;
"Mod+4".action.focus-workspace = 4;
"Mod+5".action.focus-workspace = 5;
"Mod+6".action.focus-workspace = 6;
"Mod+7".action.focus-workspace = 7;
"Mod+8".action.focus-workspace = 8;
"Mod+9".action.focus-workspace = 9;
"Mod+Ctrl+1".action.move-column-to-workspace = 1;
"Mod+Ctrl+2".action.move-column-to-workspace = 2;
"Mod+Ctrl+3".action.move-column-to-workspace = 3;
"Mod+Ctrl+4".action.move-column-to-workspace = 4;
"Mod+Ctrl+5".action.move-column-to-workspace = 5;
"Mod+Ctrl+6".action.move-column-to-workspace = 6;
"Mod+Ctrl+7".action.move-column-to-workspace = 7;
"Mod+Ctrl+8".action.move-column-to-workspace = 8;
"Mod+Ctrl+9".action.move-column-to-workspace = 9;
# Alternatively, there are commands to move just a single window:
# Mod+Ctrl+1 { move-window-to-workspace 1; }
# Switches focus between the current and the previous workspace.
# Mod+Tab { focus-workspace-previous; }
"Mod+Comma".action.consume-window-into-column = { };
"Mod+Period".action.expel-window-from-column = { };
# There are also commands that consume or expel a single window to the side.
# Mod+BracketLeft { consume-or-expel-window-left; }
# Mod+BracketRight { consume-or-expel-window-right; }
"Mod+R".action.switch-preset-column-width = { };
"Mod+Shift+R".action.reset-window-height = { };
"Mod+F".action.maximize-column = { };
"Mod+Shift+F".action.fullscreen-window = { };
"Mod+C".action.center-column = { };
# Finer width adjustments.
# This command can also:
# * set width in pixels: "1000"
# * adjust width in pixels: "-5" or "+5"
# * set width as a percentage of screen width: "25%"
# * adjust width as a percentage of screen width: "-10%" or "+10%"
# Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
# set-column-width "100" will make the column occupy 200 physical screen pixels.
"Mod+Minus".action.set-column-width = "-10%";
"Mod+Equal".action.set-column-width = "+10%";
# Finer height adjustments when in column with other windows.
"Mod+Shift+Minus".action.set-window-height = "-10%";
"Mod+Shift+Equal".action.set-window-height = "+10%";
# Actions to switch layouts.
# Note: if you uncomment these, make sure you do NOT have
# a matching layout switch hotkey configured in xkb options above.
# Having both at once on the same hotkey will break the switching,
# since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
# Mod+Space { switch-layout "next"; }
# Mod+Shift+Space { switch-layout "prev"; }
"Print".action.screenshot = { };
"Ctrl+Print".action.screenshot-screen = { };
"Alt+Print".action.screenshot-window = { };
# The quit action will show a confirmation dialog to avoid accidental exits.
"Mod+Shift+E".action.quit = { };
# Powers off the monitors. To turn them back on, do any input like
# moving the mouse or pressing any other key.
"Mod+Shift+P".action.power-off-monitors = { };
};
};
};
}

446
modules/hyprland.nix Normal file
View file

@ -0,0 +1,446 @@
{ lib, config, pkgs, inputs, ... }:
let
cfg = config.snowhawk.hyprland;
in
{
options.snowhawk.hyprland = {
enable = lib.mkEnableOption "hyprland";
split-monitor-workspaces = lib.mkEnableOption "split-monitor-workspaces";
nvidia = lib.mkEnableOption "hyprland nvidia tweaks";
};
config = lib.mkIf cfg.enable (lib.mkMerge [
# Core Module
{
services.graphical-desktop.enable = lib.mkDefault true;
services.displayManager = {
enable = true;
sddm = {
enable = lib.mkDefault true;
wayland.enable = lib.mkDefault true;
};
};
security = {
polkit.enable = lib.mkDefault true;
};
programs = {
dconf.enable = lib.mkDefault true;
xwayland.enable = lib.mkDefault true;
};
# xdg.portal = {
# enable = true;
# extraPortals = [
# pkgs.xdg-desktop-portal
# pkgs.xdg-desktop-portal-gtk
# ];
# };
programs.waybar.enable = true;
programs.hyprland = {
enable = true;
withUWSM = true;
xwayland.enable = true;
package = inputs.hyprland.packages.${pkgs.system}.hyprland;
portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland;
};
services.hypridle.enable = true;
systemd.user.services.hypridle.path = [ pkgs.brightnessctl ];
# programs.hyprlock.enable = true;
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1050913
# xdg.portal.config.hyprland.default = lib.mkDefault [ "wlr" "gtk" ];
services.xserver.desktopManager.runXdgAutostartIfNone = lib.mkDefault true;
environment.variables = {
QT_QPA_PLATFORM = "wayland;xcb";
MOZ_ENABLE_WAYLAND = 1;
SDL_VIDEODRIVEWR = "wayland,x11";
_JAVA_AWT_WM_NONREPARENTING = 1;
};
environment.systemPackages = [
inputs.rose-pine-hyprcursor.packages.${pkgs.system}.default
];
}
# hyprland configuration
{
home-manager.sharedModules = [{
wayland.windowManager.hyprland = {
enable = true;
# extraConfig = builtins.readFile ../home/hypr/hyprland.conf;
settings = {
source = [ "${../home/hypr/rose-pine.conf}" ];
env = [
"XCURSOR_SIZE,24"
"HYPRCURSOR_SIZE,24"
"HYPRCURSOR_THEME,rose-pine-hyprcursor"
"MOZ_ENABLE_WAYLAND,1"
];
# TODO: Direct links
"$terminal" = "kitty";
"$fileManager" = "pcmanfm";
"$menu" = "wofi --show drun";
"$mainMod" = "SUPER";
general = {
gaps_in = 5;
gaps_out = 5;
border_size = 1;
"col.active_border" = "$foam $pine 45deg";
"col.inactive_border" = "$muted";
resize_on_border = true;
allow_tearing = false;
layout = "dwindle";
};
# https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration = {
rounding = 5;
rounding_power = 2;
active_opacity = 1.0;
inactive_opacity = 1.0;
shadow = {
enabled = true;
range = 4;
render_power = 3;
color = "rgba(1a1a1aee)";
};
# https://wiki.hyprland.org/Configuring/Variables/#blur
blur = {
enabled = true;
size = 3;
passes = 1;
vibrancy = 0.1696;
};
};
# https://wiki.hyprland.org/Configuring/Variables/#animations
animations = {
enabled = "no,";
bezier = [ "easeOutQuint,0.23,1,0.32,1" "easeInOutCubic,0.65,0.05,0.36,1" "linear,0,0,1,1" "almostLinear,0.5,0.5,0.75,1.0" "quick,0.15,0,0.1,1" ];
# I need to tinker with these some more for llynx
# animation = global, 1, 10, default
# animation = border, 1, 5.39, easeOutQuint
# animation = windows, 1, 4.79, easeOutQuint
# animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
# animation = windowsOut, 1, 1.49, linear, popin 87%
# animation = windowsMove, 1, 4.79, easeOutQuint
# animation = fadeIn, 1, 1.73, almostLinear
# animation = fadeOut, 1, 1.46, almostLinear
# animation = fade, 1, 3.03, quick
# animation = layers, 1, 3.81, easeOutQuint
# animation = layersIn, 1, 4, easeOutQuint, fade
# animation = layersOut, 1, 1.5, linear, fade
# animation = fadeLayersIn, 1, 1.79, almostLinear
# animation = fadeLayersOut, 1, 1.39, almostLinear
# animation = workspaces, 1, 1.94, almostLinear, fade
# animation = workspacesIn, 1, 1.21, almostLinear, fade
# animation = workspacesOut, 1, 1.94, almostLinear, fade
};
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle = {
pseudotile = true;
preserve_split = true;
};
# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master = {
new_status = "master";
};
# https://wiki.hyprland.org/Configuring/Variables/#misc
misc = {
force_default_wallpaper = -1;
disable_hyprland_logo = false;
};
cursor = {
inactive_timeout = 5;
};
# https://wiki.hyprland.org/Configuring/Variables/#input
input = {
kb_layout = "us";
kb_variant = "";
kb_model = "";
kb_options = "";
kb_rules = "";
follow_mouse = 1;
sensitivity = 0;
numlock_by_default = true;
touchpad = {
natural_scroll = true;
clickfinger_behavior = true;
};
};
# https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures = {
workspace_swipe = true;
workspace_swipe_distance = 50;
};
plugin = {
split-monitor-workspaces = lib.mkIf cfg.split-monitor-workspaces {
count = 10;
keep_focused = 10;
enable_notifications = 0;
enable_persistent_workspaces = 0;
};
};
windowrulev2 = [
# Ignore maximize requests from apps. You'll probably like this.
"suppressevent maximize, class:.*"
# Fix some dragging issues with XWayland
"nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0"
];
bindm = [
# Move/resize windows with mainMod + LMB/RMB and dragging
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
bindel = [
# Laptop multimedia keys for volume and LCD brightness
",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
",XF86MonBrightnessUp, exec, brightnessctl s 10%+"
",XF86MonBrightnessDown, exec, brightnessctl s 10%-"
];
bindl = [
# Requires playerctl
", XF86AudioNext, exec, playerctl next"
", XF86AudioPause, exec, playerctl play-pause"
", XF86AudioPlay, exec, playerctl play-pause"
", XF86AudioPrev, exec, playerctl previous"
];
bind = [
"$mainMod, Q, exec, $terminal"
"$mainMod, C, killactive,"
"$mainMod CTRL SHIFT, M, exit,"
"$mainMod, E, exec, $fileManager"
"$mainMod, V, togglefloating,"
"$mainMod, R, exec, $menu"
"$mainMod, P, pseudo, # dwindle"
"$mainMod, J, togglesplit, # dwindle"
"$mainMod SHIFT, minus, exec, bash -c \"XDG_CURRENT_DESKTOP=sway flameshot gui\""
"$mainMod, n, exec, swaync-client -t"
# moving focus
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
# scratchpad
"$mainMod, S, togglespecialworkspace, magic"
"$mainMod SHIFT, S, movetoworkspace, special:magic"
] ++ (
# workspaces
# binds $mod + [shift +] {1..9} to [move to] workspace {1..9}
builtins.concatLists (builtins.genList
(i:
let ws = i + 1;
in [
"$mainMod, code:1${toString i}, ${lib.optionalString cfg.split-monitor-workspaces "split-"}workspace, ${toString ws}"
"$mainMod SHIFT, code:1${toString i}, ${lib.optionalString cfg.split-monitor-workspaces "split-"}movetoworkspace, ${toString ws}"
]
)
9)
);
};
package = null;
portalPackage = null;
};
}];
}
# split-monitor-workspaces
(lib.mkIf cfg.split-monitor-workspaces {
home-manager.sharedModules = [{
wayland.windowManager.hyprland = {
settings.bind = [
"$mainMod SHIFT, comma, split-changemonitor, -1"
"$mainMod SHIFT, period, split-changemonitor, +1"
];
plugins = [
inputs.split-monitor-workspaces.packages.${pkgs.system}.split-monitor-workspaces
];
};
}];
})
# useful desktop stuff
{
environment.systemPackages = with pkgs; [
# Screenshotting
grim
slurp
satty
# Hardware Control
brightnessctl
# Desktop
wofi
kitty
pipewire-controller
# Wayland Utilities
wdisplays
xorg.xlsclients
wl-clipboard
];
}
# SDDM Theme
(
let sddmPkg = (pkgs.sddm-astronaut.override { embeddedTheme = "purple_leaves"; });
in {
services.displayManager = {
enable = lib.mkDefault true;
sddm = {
enable = lib.mkDefault true;
wayland.enable = lib.mkDefault true;
theme = "sddm-astronaut-theme";
package = pkgs.kdePackages.sddm;
extraPackages = with pkgs; [
sddmPkg
kdePackages.qtsvg
kdePackages.qtvirtualkeyboard
kdePackages.qtmultimedia
];
};
};
environment.systemPackages = [ sddmPkg ];
}
)
# Anyrun
(lib.mkIf false {
home-manager.sharedModules = [{
imports = [
inputs.anyrun.homeManagerModules.default
];
programs.anyrun = {
enable = true;
config = {
x = { fraction = 0.5; };
y = { fraction = 0.3; };
width = { fraction = 0.3; };
layer = "overlay";
showResultsImmediately = true;
hidePluginInfo = true;
plugins = [
inputs.anyrun.packages.${pkgs.system}.applications
];
};
extraCss = /* css */ ''
window {
background: transparent;
}
'';
};
}];
})
({
home-manager.sharedModules = [{
services.swaync = {
enable = true;
style = builtins.readFile "${inputs.rose-pine-swaync}/theme/rose-pine.css";
settings = {
positionX = "right";
positionY = "tops";
layer = "overlay";
control-center-layer = "tops";
cssPriority = "application";
control-center-margin-top = 0;
control-center-margin-bottom = 0;
control-center-margin-right = 0;
control-center-margin-left = 0;
notification-2fa-action = true;
notification-inline-replies = false;
notification-icon-size = 64;
notification-body-image-height = 100;
notification-body-image-width = 200;
timeout = 10;
timeout-low = 5;
timeout-critical = 0;
fit-to-screen = true;
control-center-width = 500;
control-center-height = 600;
notification-window-width = 500;
keyboard-shortcuts = true;
image-visibility = "when-available";
transition-time = 200;
hide-on-clear = false;
hide-on-action = true;
script-fail-notify = false;
};
};
}];
})
{
home-manager.sharedModules = [{
services.playerctld.enable = true;
systemd.user.services.playerctld = {
Unit.PartOf = lib.mkForce [ "graphical-session.target" ];
Install.WantedBy = lib.mkForce [ "graphical-session.target" ];
};
home.packages = with pkgs; [
playerctl
];
}];
}
(lib.mkIf cfg.nvidia {
environment.variables = {
LIBVA_DRIVER_NAME = "nvidia";
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
};
})
]);
}

27
modules/i18n.nix Normal file
View file

@ -0,0 +1,27 @@
{ lib, config, ... }:
let
cfg = config.snowhawk.i18n;
in
{
options.snowhawk.i18n = {
enable = lib.mkEnableOption "i18n";
};
config = lib.mkIf cfg.enable {
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
};
}

23
modules/network.nix Normal file
View file

@ -0,0 +1,23 @@
{ config, lib, ... }:
let
cfg = config.snowhawk.network;
in
{
options.snowhawk.network = {
enable = lib.mkEnableOption "network nixos module";
};
config = lib.mkIf cfg.enable {
# Enable the OpenSSH daemon.
services.openssh.enable = true;
services.openssh.openFirewall = true;
services.avahi.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
};
}

30
modules/niri.nix Normal file
View file

@ -0,0 +1,30 @@
{ config, lib, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.niri;
in
{
options.snowhawk.niri = {
enable = mkEnableOption "niri nixos module";
};
config = mkIf cfg.enable {
programs.niri.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1";
services.displayManager = {
defaultSession = "niri";
enable = true;
sddm.enable = true;
sddm.wayland.enable = true;
};
home-manager.sharedModules = [
./home/niri.nix
{ snowhawk.niri.enable = lib.mkDefault true; }
];
};
}

42
modules/nix-ld.nix Normal file
View file

@ -0,0 +1,42 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.nix-ld;
in
{
options.snowhawk.nix-ld = {
enable = mkEnableOption "nix-ld nixos module";
};
config = mkIf cfg.enable {
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
glib
nss
nspr
atk
cups
dbus
libdrm
gtk3
pango
cairo
gdk-pixbuf
mesa
expat
alsa-lib
libxkbcommon
xorg.libX11
xorg.libXcomposite
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXrandr
xorg.libxcb
];
};
}

55
modules/plymouth.nix Normal file
View file

@ -0,0 +1,55 @@
# Yoinky Sploinky https://git.nullcube.net/nullcube/nixos/src/commit/d732b27507e70ed6f37e51ea2e5f8b7d7b3582dc/nixosModules/plymouth.nix
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.snowhawk.plymouth;
in
{
options.snowhawk.plymouth = {
enable = mkEnableOption "plymouth module";
theme = mkOption {
default = "spinner_alt";
example = "circle";
description = ''
The plymouth theme to download and activate
'';
};
loaderTimeout = mkOption {
default = 5;
example = 0;
description = ''
The timeout for the bootloader select screen
'';
};
};
config = mkIf cfg.enable {
boot = {
plymouth = {
enable = true;
theme = cfg.theme;
themePackages = mkDefault [
(pkgs.adi1090x-plymouth-themes.override {
selected_themes = [ cfg.theme ];
})
];
};
consoleLogLevel = 0;
initrd = {
verbose = false;
systemd.enable = true;
};
kernelParams = [
"quiet"
"splash"
"boot.shell_on_fail"
"loglevel=3"
"rd.systemd.show_status=false"
"rd.udev.log_level=3"
"udev.log_priority=3"
];
loader.timeout = cfg.loaderTimeout;
};
};
}

31
modules/polkit.nix Normal file
View file

@ -0,0 +1,31 @@
{ config, pkgs, lib, ... }:
let
cfg = config.snowhawk.polkit;
in
{
options.snowhawk.polkit = {
enable = lib.mkEnableOption "polkit nixos module";
};
config = lib.mkIf cfg.enable {
systemd.user.services.polkit-gnome-authentication-agent = {
description = "polkit-gnome-authentication-agent";
wantedBy = [ "graphical-session.target" ];
wants = [ "graphical-session.target" ];
after = [ "graphical-session.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
security.polkit.enable = true;
# TODO: is this doing anything?
services.gnome.gnome-keyring.enable = true;
};
}

20
modules/power-button.nix Normal file
View file

@ -0,0 +1,20 @@
{ config, lib, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.power-button;
in
{
options.snowhawk.power-button = {
enable = mkEnableOption "power-button nixos module";
};
config = mkIf cfg.enable {
services.logind = {
powerKey = "suspend";
powerKeyLongPress = "poweroff";
};
};
}

25
modules/sops.nix Normal file
View file

@ -0,0 +1,25 @@
{ lib, config, inputs, ... }:
let
cfg = config.snowhawk.sops;
in
{
imports = [
inputs.sops-nix.nixosModules.sops
];
options.snowhawk.sops = {
enable = lib.mkEnableOption "sops";
};
config = lib.mkIf cfg.enable {
sops = {
defaultSopsFile = ../secrets.yaml;
age = {
sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
keyFile = "/var/lib/sops-nix/key.txt";
generateKey = true;
};
};
};
}

24
modules/star-citizen.nix Normal file
View file

@ -0,0 +1,24 @@
{ lib, config, inputs, pkgs, ... }:
let
cfg = config.snowhawk.star-citizen;
in
{
options.snowhawk.star-citizen = {
enable = lib.mkEnableOption "star-citizen";
};
config = lib.mkIf cfg.enable {
boot.kernel.sysctl = {
"vm.max_map_count" = 16777216;
"ds.file-max" = 524288;
};
environment.systemPackages = [
(pkgs.star-citizen.override {
useUmu = true;
location = "/data/star-citizen";
})
];
};
}

24
modules/sudo-rules.nix Normal file
View file

@ -0,0 +1,24 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.sudo-rules;
in
{
options.snowhawk.sudo-rules = {
enable = mkEnableOption "sudo-rules nixos module";
};
config = mkIf cfg.enable {
security.sudo.extraRules = lib.mkIf false [
{
users = [ "ravenshade" ];
commands = [{
command = "${pkgs.nixos-rebuild}/bin/nixos-rebuild";
options = [ "SETENV" "NOPASSWD" ];
}];
}
];
};
}

59
modules/syncthing.nix Normal file
View file

@ -0,0 +1,59 @@
{ config, lib, ... }:
with lib;
let
cfg = config.snowhawk.syncthing;
in
{
options.snowhawk.syncthing = {
enable = mkEnableOption "syncthing";
};
config = mkIf cfg.enable {
services.syncthing = {
enable = true;
user = "ravenshade";
group = "users";
dataDir = "/home/ravenshade/syncthing";
configDir = "/home/ravenshade/.config/syncthing";
overrideFolders = true;
overrideDevices = false;
settings = {
devices = {
permafrost.id = "Y3RGVEJ-KKD2QV2-LHHHL7Z-DWRLTWI-P3RG4GG-VTDTNJV-IM4OMRA-E3BY7QN";
lynx.id = "O7EB4D6-AH4A53X-YM6UE7K-T3CJGIZ-MRJ6J7U-DXTEOKB-Z7LSV2M-LVUWFAO";
sprite.id = "IS2F2X5-43F7B2Q-SVSNY4J-GOHU5XP-NSJ2MJS-GDDNNTR-BGPQHHE-TE4JDAX";
};
folders = {
"obsidian" = rec {
id = "obsidian";
label = id;
path = "/home/ravenshade/obsidian";
devices = [ "permafrost" "lynx" "sprite" ];
};
"sync" = {
id = "default";
label = "sync";
path = "/home/ravenshade/sync";
devices = [ "lynx" ];
};
};
gui = {
theme = "dark";
};
options = {
urAccepted = -1;
localAnnounceEnabled = false;
relaysEnabled = true;
};
};
};
};
}

26
modules/user.nix Normal file
View file

@ -0,0 +1,26 @@
{ config, lib, ... }:
let
cfg = config.snowhawk.user;
in
{
options.snowhawk.user = {
enable = lib.mkEnableOption "user nixos module";
};
config = lib.mkIf cfg.enable {
snowhawk.sops.enable = lib.mkForce true;
# users sops setup
sops.secrets."passwords/ravenshade".neededForUsers = true;
users.mutableUsers = false;
# Define a user account. Don't forget to set a password with `passwd`.
users.users.ravenshade = {
isNormalUser = true;
description = "Zynh Ludwig";
hashedPasswordFile = config.sops.secrets."passwords/ravenshade".path;
extraGroups = [ "networkmanager" "wheel" "audio" ];
};
};
}

25
modules/wake-on-lan.nix Normal file
View file

@ -0,0 +1,25 @@
{ config, lib, pkgs, ... }:
let
inherit (lib) mkIf mkEnableOption;
cfg = config.snowhawk.wake-on-lan;
in
{
options.snowhawk.wake-on-lan = {
enable = mkEnableOption "wake-on-lan nixos module";
};
config = mkIf cfg.enable {
systemd.services.wakeonlan = {
description = "reenable wakeonlan every boot";
after = [ "network.target" ];
serviceConfig = {
Type = "simple";
RemainAfterExit = "true";
ExecStart = "${lib.getExe pkgs.ethtool} -s enp7s0 wol g";
};
wantedBy = [ "default.target" ];
};
};
}

View file

@ -0,0 +1,91 @@
#!/usr/bin/env bash
set -eu
function die {
supress_generic_error=1
if [ -v bin_ZENITY ] && [ ! -z "$bin_ZENITY" ]; then
"$bin_ZENITY" --error --text="$*"
else
echo "error: $*" 2>&2
fi
}
function absolute_binary {
bin="$(command -v "$@" 2>&-)"
if [ -z "$bin" ]; then
die "No such commands: $@"
fi
echo $bin | head -n 1
}
function cleanup {
if [ $? != 0 ] && [ ! -v supress_generic_error ]; then
die "Errors happened during runtime. See this script logs for details."
fi
}
trap cleanup EXIT
CHROME_BINARIES=(chromium)
if [ ! -v bin_ZENITY ]; then
bin_ZENITY="$(absolute_binary zenity)"
fi
if [ ! -v bin_CHROMIUM ]; then
bin_CHROMIUM="$(absolute_binary chromium)"
fi
if [ ! -v text_QUERY ]; then
text_QUERY="Link to be opened"
fi
if [ ! -v text_NOURL ]; then
text_NOURL="No URL specified"
fi
if [ $# -eq 0 ]; then
URL="$("$bin_ZENITY" --entry --text="$text_QUERY" || true)"
else
URL="$@"
fi
if [ -z "$URL" ]; then
die $text_NOURL
fi
if [[ "$URL" =~ ^~ ]]; then
URL=$(echo $URL | sed -E s:^~\/?::)
URL="file://$HOME/$URL"
fi
if [[ "$URL" =~ ^\/ ]]; then
URL="file://$URL"
fi
if [[ ! "$URL" =~ ^(file|https?)?:\/\/ ]]; then
URL="https://$URL"
fi
echo final url: $URL
chromeFlags=()
if [ ! -v CHROME_DONT_BORDERLESS ]; then
chromeFlags+=(--app="$URL")
else
chromeFlags+=("$URL")
fi
if [ ! -v profileToplevel ]; then
profileToplevel=~/.config/borderless-browser-profiles
fi
if [ -v CHROME_PROFILE ] && [[ "$CHROME_PROFILE" =~ ^[a-zA-Z_0-9-]*$ ]]; then
profileDir=$profileToplevel/$CHROME_PROFILE
chromeFlags+=(--user-data-dir="$profileDir")
fi
echo "${chromeFlags[@]}"
"$bin_CHROMIUM" "${chromeFlags[@]}"

View file

@ -0,0 +1,83 @@
{ lib
, stdenvNoCC
, chromium
, gnome3
, zenity ? gnome3.zenity
, makeDesktopItem
, copyDesktopItems
, makeWrapper
}:
let
mkWebapp =
{ name ? "webapp"
, desktopName ? "Web Application"
, browser ? lib.getExe chromium
, icon ? "applications-internet"
, url ? null
, queryText ? "Link to be opened"
, noURLSpecifiedText ? "No URL specified"
, profile ? null
, passthru ? { }
}:
let
makeWrapperArgs = [
"--set-default"
"text_QUERY"
queryText
"--set-default"
"text_NOURL"
noURLSpecifiedText
"--set"
"bin_CHROMIUM"
browser
"--set"
"bin_ZENITY"
(lib.getExe zenity)
]
++ (lib.optionals (profile != null) [ "--set" "CHROME_PROFILE" profile ])
++ (lib.optionals (url != null) [ "--add-flags" url ])
;
in
stdenvNoCC.mkDerivation (attrs: {
name = "webapp-${name}";
dontUnpack = true;
nativeBuildInputs = [ copyDesktopItems makeWrapper ];
installPhase = ''
runHook preInstall
mkdir -p $out/bin
makeWrapper ${./borderlessBrowser} $out/bin/$name ${lib.escapeShellArgs makeWrapperArgs}
runHook postInstall
'';
postFixup = ''
substituteInPlace $out/share/applications/$name.desktop --replace @bin@ $out/bin/$name
'';
desktopItems = [
(makeDesktopItem {
inherit (attrs) name;
inherit desktopName icon;
type = "Application";
exec = "@bin@";
})
];
passthru = passthru // { inherit makeWrapperArgs; };
});
in
mkWebapp {
passthru = {
wrap = mkWebapp;
};
}

18
pkgs/default.nix Normal file
View file

@ -0,0 +1,18 @@
final: prev:
let
callDefaultPackage = path: prev.callPackage path { };
in
{
lib = prev.lib.extend (import ../lib);
wrapWine = callDefaultPackage ./wrapWine;
writeXrandrScriptBin = callDefaultPackage ./writeXrandrScriptBin;
borderlessBrowser = callDefaultPackage ./borderlessBrowser;
zenBrowser = callDefaultPackage ./zenBrowser;
rose-pine-grub = callDefaultPackage ./rosePineGrub;
dwm-msg = callDefaultPackage ./dwm-msg;
dwlmsg = callDefaultPackage ./dwlmsg;
uhk-agent = callDefaultPackage ./uhk-agent;
pipewire-controller = callDefaultPackage ./pipewire-controller;
dorion = callDefaultPackage ./dorion;
}

195
pkgs/dorion/default.nix Normal file
View file

@ -0,0 +1,195 @@
{ lib
, fetchFromGitHub
, fetchurl
, rustPlatform
, cmake
, ninja
, wrapGAppsHook4
, glib-networking
, gst_all_1
, libsysprof-capture
, libayatana-appindicator
, nodejs
, openssl
, pkg-config
, yq-go
, pnpm_9
, webkitgtk_4_1
, cargo-tauri
, desktop-file-utils
,
}:
let
webkitgtk_4_1' = webkitgtk_4_1.override {
enableExperimental = true;
};
shelter = fetchurl {
url = "https://raw.githubusercontent.com/uwu/shelter-builds/4264c79a7e8efb2c0000c180dd8369c9a5194105/shelter.js";
hash = "sha256-C+iPl40QN2CfhHX8cc+5mu+8qfD1VZDJHbUjfY2QcUg=";
meta = {
homepage = "https://github.com/uwu/shelter";
sourceProvenance = [ lib.sourceTypes.binaryBytecode ]; # actually, minified JS
license = lib.licenses.cc0;
};
};
in
# nyo finalAttrs :<
# https://github.com/NixOS/nixpkgs/pull/194475
rustPlatform.buildRustPackage rec {
pname = "dorion";
version = "6.5.0";
src = fetchFromGitHub {
owner = "SpikeHD";
repo = "Dorion";
tag = "v${version}";
hash = "sha256-EetRPa2v2UBav+UwprG7TgcswNzbjfBMvP4xlYOnWYI=";
};
cargoPatches = [
./no-cargo-patch.patch
];
cargoRoot = "src-tauri";
buildAndTestSubdir = cargoRoot;
useFetchCargoVendor = true;
cargoHash = "sha256-+AVmg/fyIsyksOoGwphePdd+9VtklTO1SFWlM+FBgbE=";
pnpmDeps = pnpm_9.fetchDeps {
inherit pname version src;
hash = "sha256-xBonUzA4+1zbViEsKap6CaG6ZRldW1LjNYIB+FmVRFs=";
};
# CMake (webkit extension)
cmakeDir = ".";
cmakeBuildDir = "src-tauri/extension_webkit";
dontUseCmakeConfigure = true;
dontUseNinjaBuild = true;
dontUseNinjaCheck = true;
dontUseNinjaInstall = true;
# cmake's supposed to set this automatically
# ... but the detection is based on the presence of ninja build hook
cmakeFlags = [
"-GNinja"
];
nativeBuildInputs = [
pnpm_9.configHook
cargo-tauri.hook
nodejs
pkg-config
wrapGAppsHook4
yq-go
desktop-file-utils
cmake
ninja
];
buildInputs = [
openssl
webkitgtk_4_1'
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-bad
gst_all_1.gst-plugins-good
gst_all_1.gst-plugins-rs
glib-networking
libsysprof-capture
libayatana-appindicator
];
postPatch = ''
# remove updater
rm -rf updater
# patch cargo-deps
pushd $cargoDepsCopy/tauri-plugin-shell-*
patch -p1 < /build/source/src-tauri/patches/tauri-plugin-shell+*.patch
popd
substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
--replace "libayatana-appindicator3.so.1" "${libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
# disable pre-build script and disable auto-updater
yq -iPo=json '
.bundle.resources = (.bundle.resources | map(select(. != "updater*")))
' src-tauri/tauri.conf.json
# link shelter injection
ln -s ${shelter} src-tauri/injection/shelter.js
# link html/frontend data
ln -s /build/source/src /build/source/src-tauri/html
'';
configurePhase = ''
cmakeConfigurePhase
pnpmConfigHook
'';
buildPhase = ''
ninjaBuildPhase
cd /build/source
tauriBuildHook
'';
postInstall = ''
# Set up the resource directories
mkdir -p $out/lib/Dorion
ln -s $out/lib/Dorion $out/lib/dorion
rm -rf $out/lib/Dorion/injection
cp -r src-tauri/injection $out/lib/Dorion
cp -r src $out/lib/Dorion
# Modify the desktop file
desktop-file-edit \
--set-comment "Tiny alternative Discord client" \
--set-key="Exec" --set-value="Dorion %U" \
--set-key="TryExec" --set-value="Dorion" \
--set-key="StartupWMClass" --set-value="Dorion" \
--set-key="StartupNotify" --set-value="true" \
--set-key="Categories" --set-value="Network;InstantMessaging;Chat;" \
--set-key="Keywords" --set-value="dorion;discord;vencord;chat;im;vc;ds;dc;dsc;tauri;" \
--set-key="Terminal" --set-value="false" \
--set-key="MimeType" --set-value="x-scheme-handler/discord" \
$out/share/applications/Dorion.desktop
'';
# error: failed to run custom build command for `Dorion v6.4.1 (/build/source/src-tauri)`
# Permission denied (os error 13)
doCheck = false;
env = {
TAURI_RESOURCE_DIR = "${placeholder "out"}/lib";
};
meta = {
homepage = "https://spikehd.github.io/projects/dorion/";
description = "Tiny alternative Discord client";
longDescription = ''
Dorion is an alternative Discord client aimed towards lower-spec or
storage-sensitive PCs that supports themes, plugins, and more!
'';
changelog = "https://github.com/SpikeHD/Dorion/releases/tag/v${version}";
downloadPage = "https://github.com/SpikeHD/Dorion/releases/tag/v${version}";
license = with lib.licenses; [
gpl3Only
cc0 # Shelter
];
mainProgram = "Dorion";
maintainers = with lib.maintainers; [
nyabinary
aleksana
griffi-gh
getchoo
];
platforms = lib.platforms.linux;
sourceProvenance = [
lib.sourceTypes.binaryBytecode # actually, minified JS
lib.sourceTypes.fromSource
];
};
}

View file

@ -0,0 +1,31 @@
diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock
index 59f676d..b7090d4 100644
--- a/src-tauri/Cargo.lock
+++ b/src-tauri/Cargo.lock
@@ -4954,6 +4954,8 @@ dependencies = [
[[package]]
name = "tauri-plugin-shell"
version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ad7880c5586b6b2104be451e3d7fc0f3800c84bda69e9ba81c828f87cb34267"
dependencies = [
"encoding_rs",
"log",
diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml
index 62a508b..0bbe935 100644
--- a/src-tauri/Cargo.toml
+++ b/src-tauri/Cargo.toml
@@ -12,13 +12,6 @@ rust-version = "1.81"
strip = "debuginfo"
lto = true
-# Patches
-[package.metadata.patch]
-crates = ["tauri-plugin-shell"]
-
-[patch.crates-io]
-tauri-plugin-shell = { path="./target/patch/tauri-plugin-shell-2.0.2" }
-
[build-dependencies]
tauri-build = { version = "2.0.0", features = [] }

38
pkgs/dwlmsg/default.nix Normal file
View file

@ -0,0 +1,38 @@
{ lib
, stdenv
, fetchgit
, pkg-config
, wayland-scanner
, kdePackages
,
}:
stdenv.mkDerivation {
pname = "dwlmsg";
version = "0-unstable-2025-01-13";
src = fetchgit {
url = "https://codeberg.org/notchoc/dwlmsg/";
rev = "7cfc2635984611e6eceef011084f21c22979b3d0";
hash = "sha256-uEw9QY0WveM8cu7uhXLbIKLYgtmyUyMxEDti+uWLoCU=";
};
nativeBuildInputs = [
pkg-config
];
buildInputs = [
wayland-scanner
kdePackages.wayland
];
makeFlags = [ "PREFIX=${placeholder "out"}" ];
meta = with lib; {
description = "send ipc messages to dwl";
homepage = "https://codeberg.org/notchoc/dwlmsg";
license = licenses.unfree;
mainProgram = "dwm-msg";
maintainers = with lib.maintainers; [ nullcube ];
};
}

44
pkgs/dwm-msg/default.nix Normal file
View file

@ -0,0 +1,44 @@
# Yoinky Sploinky https://git.nullcube.net/nullcube/nullpkgs/src/branch/main/pkgs/dwm-msg/default.nix
{ lib
, stdenv
, fetchFromGitHub
, libX11
, libXft
, libXinerama
, pkg-config
, yajl
,
}:
stdenv.mkDerivation rec {
pname = "dwm-msg";
version = "1.5.7";
src = fetchFromGitHub {
owner = "mihirlad55";
repo = "dwm-ipc";
rev = "v${version}";
hash = "sha256-ReQbA551i6YOQi/Qoive7jANnD5/IcXGApHHctgPdOM=";
};
nativeBuildInputs = [
pkg-config
libX11
libXinerama
libXft
yajl
];
installPhase = ''
mkdir -p $out/bin
cp dwm-msg $out/bin/
'';
meta = with lib; {
description = "a cli program that can be used to run commands, query dwm for information, and listen for events.";
homepage = "https://github.com/mihirlad55/dwm-ipc";
license = licenses.mit;
# platforms = platforms.all;
mainProgram = "dwm-msg";
};
}

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show more