diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..cc5a9417 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,1178 @@ +# Changelog + +All notable changes to this project will be documented in this file. + + +## [Unreleased] +### Details +#### Changed +- Wip +- Wip +- :construction: (wip): move to snowfall +- :package: (flake): update nixvim +- :lock: (secret): anthropic api key +- :sparkles: (pkgs): tuba + +fediverse app +- :wrench: (waybar): enable battery widget +- :wrench: (kanshi): new profile single monitor +- :wrench: (pkgs): move lunar, add pre-commit +- :art: (anyrun): new style +- :wrench: (aurelionite): swap to waybar +- :package: (flake): update +- :bug: (kubeconfig): permissions +- :package: (flake): update +- :lock: (secret): hush +- :package: (flake): update + +and add lapce +- :art: (grovetender): switch to paradise +- :package: (zellij): rofi menu to attach to session +- :lock: (rbw): config as a secret +- :lock: very secret +- :poop: (twitch-tui): use it with kitty + +only way to see emotes as of now +- :lock: (sops): dont use root +- :lock: (sops): use age instead of pgp +- :lock: (hyprlock): who told you I love in Paris ? + +it's a secret +- :lock: (twitch-tui): config as a secret +- :lock: (kube): kubeconfig as a secret +- :lock: (gh): acces token as secret +- :wrench: (swaync): useless code + +album cover still doesn't show up on mpris module +- :lipstick: (waybar): aligned + +now i feel better +- :lipstick: (preview): update screenshots +- :memo: (README): update and add aknowledgments + +need to update screenshots +- :art: (swaync/waybar): borders +- :sparkles: (notification): swaync refact + +following colorscheme now +- :sparkles: (bar): back to waybar + +ags is clunky +- :wrench: (firefox): new profile +- :bug: (screensharing): fuck you xdg-desktop-portal-hyprland +- :package: (flake): update +- :bug: (package): auth0-cli is broken +- :wrench: (nixvim): disable indent blankline +- :wrench: (mc): change map +- :package: (flake): update +- :bug: (lazygit): allow renaming signed commits +- :wrench: (os): move import out of default +- :package: (flake): update +- :fire: useless +- :sparkles: (firefox): update + +theme can be using darkmode +- :construction: wip minecraft +- :package: (nixvim): update +- :art: (firefox): new config and tweaks +- :package: (nixvim): update +- :bug: (screensharing): still not sure +- :bug: (xdg): open files with xdg +- :package:(flake): update (#14) + +Flake lock file updates: + +• Updated input 'hyprland': + 'git+https://github.com/hyprwm/Hyprland?ref=refs/heads/main&rev=4b4971c06fb02df00a2bd20b6b47b5d0e7d799a7&submodules=1' (2024-08-08) + → 'git+https://github.com/hyprwm/Hyprland?ref=refs/heads/main&rev=01ff5fdf6a00a9231bd3b56400d8bcab378c4257&submodules=1' (2024-08-10) +• Updated input 'nixos-hardware': + 'github:NixOS/nixos-hardware/107bb46eef1f05e86fc485ee8af9b637e5157988?narHash=sha256-3u51s7jdhavmEL1ggtd8wqrTH2clTy5yaZmhLvAXTqc%3D' (2024-08-08) + → 'github:NixOS/nixos-hardware/c54cf53e022b0b3c1d3b8207aa0f9b194c24f0cf?narHash=sha256-IiH8jG6PpR4h9TxSGMYh%2B2/gQiJW9MwehFvheSb5rPc%3D' (2024-08-10) +• Updated input 'nixpkgs': + 'github:NixOS/nixpkgs/cb9a96f23c491c081b38eab96d22fa958043c9fa?narHash=sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y%3D' (2024-08-04) + → 'github:NixOS/nixpkgs/5e0ca22929f3342b19569b21b2f3462f053e497b?narHash=sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI%3D' (2024-08-09) +• Updated input 'nur': + 'github:nix-community/NUR/f6115c6b89b9cfe47f4ee38be369479a7db4ae24?narHash=sha256-6TbIYokYNcLnyXlSEGDhoodYmYxLpBtcYu13OPgoyNU%3D' (2024-08-08) + → 'github:nix-community/NUR/6fa6d1546dfc0b15f8ba384b80b8f03c81d9471a?narHash=sha256-doh2p9FBCa6ZKn1b6huobhL4JIj6WbpmljMt7s%2BXV9I%3D' (2024-08-10) +• Updated input 'pre-commit-hooks': + 'github:cachix/pre-commit-hooks.nix/3c977f1c9930f54066c085305b4b2291385e7a73?narHash=sha256-YpzywjTAUHRRHcO8zz9x2gYqJ0JmZlcB9%2BRaUvD89qM%3D' (2024-08-07) + → 'github:cachix/pre-commit-hooks.nix/c7012d0c18567c889b948781bc74a501e92275d1?narHash=sha256-qbhjc/NEGaDbyy0ucycubq4N3//gDFFH3DOmp1D3u1Q%3D' (2024-08-09) +• Updated input 'spicetify': + 'github:Gerg-L/spicetify-nix/6d20c5f3db4fa51dc463b7e9772f9719f9c1639c?narHash=sha256-/KpdexvCbBXHBM0No5HC8ot/dlwUeg3/cgEUFyhWHn0%3D' (2024-08-08) + → 'github:Gerg-L/spicetify-nix/4f16dafbf384eebe7b99d99fbdb04018eb2a5db4?narHash=sha256-jb9jGnfyacnUGm%2B8/En2md3Rc57OJH3M/84Ifwa39E8%3D' (2024-08-10) +• Updated input 'zjstatus/nixpkgs': + 'github:NixOS/nixpkgs/f5129fb42b9c262318130a97b47516946da3e7d7?narHash=sha256-O/kxmybNecC3Efr6ITOdtCzFv90/B2Iiedavj5aRWt0%3D' (2024-08-07) + → 'github:NixOS/nixpkgs/2a13929e1f191b3690dd2f2db13098b04adb9043?narHash=sha256-SQ0TCC4aklOhN/OzcztrKqDLY8SjpIZcyvTulzhDXs0%3D' (2024-08-06) + +Co-authored-by: github-actions[bot] +- :wrench: (adb): allow gwen to use +- :green_heart: (deadnix): final unused +- :wrench: (chore): blabla +- :wrench: (pre-commit): more tools +- :fire: ununsed code +- :wrench: (mithrix): dream2nix result and update +- :recycle: (homeManager): import into the main file, not the flake deffinition +- :package: (pkgs): wormhome, bore-cli + +and android-tools for grovetender +- :wrench: (flake): refactor into separate files +- :package: (flake): zjstatus useless override +- :construction_worker: (ci): flake update +- :package:(flake): update (#13) + +Flake lock file updates: + +• Updated input 'nixvim': + 'github:elythh/nixvim/4f5f7e633a8cf7a0efae377b9faa732f5645789f?narHash=sha256-Zb7SR72SiQM83LBDUib0C0hC0pVsFQz1uUi4YSluSsQ%3D' (2024-08-08) + → 'github:elythh/nixvim/e2090f37176dd399792b100b1595ba493a878dff?narHash=sha256-RBwqIGoVNLsYYed%2BTzSKv1VIXTHLP2TupJzVa2tSOps%3D' (2024-08-09) + +Co-authored-by: github-actions[bot] +- :construction_worker: (ci): flake update +- :green_heart: (check): mithrix config path +- :package: (flake): update +- :bug: (greetd): start hyprland +- :lipstick: (grub): change theme +- :package: (nixvim): update +- :wrench: (os): replace deprecated syntax +- :wrench: (kanshi): replace deprecated syntax +- :package: (flake): update +- :art: (mountain): change colors +- :bug: (screensharing): portal +- :wrench: (hyprland): binds and deprecated stuff +- :lipstick: (starship): colors +- :wrench: (nixvim): rename deprecated +- :package: (flake): split using flake-parts + +also add pre-commit-hooks +- :package: (flake): refactor + +and update +- :package: pkgs +- :package: (flake): use nixpkgs as inputs +- :package: (nixvim): update +- :lipstick: (fmt): switch to nixfmt-rfc-style +- :lipstick: (style): mountain +- :wrench: (nixvim): enable stylix +- :lipstick: (style): oxocarbon +- :wrench: (zellij): enable stylix +- :wrench: chore +- :package: (flake): update +- :wrench: (spicetify): migrate to gerg-l flake +- :sparkles: (flake): update :) + +i'm still on holiday but i miss nix +- :art: (readme): nvim preview +- :art: (readme): lockscreen preview +- :lipstick: (wallpaper): pin magma +- :lipstick: (hyprlock): fresh new lock +- :wrench: (host): disable sss aurelionite +- :art: (readme): preview +- :lipstick: (zellij): it looks cute now + +thanks @hmajid2301 +- :package: (flake): update +- :wrench: (font): new +- :wrench: (zellij): new status bar +- :lipstick: (theme): tokyonight +- :wrench: (pkgs): sort +- :wrench: (bootloader): switch to grub2 +- :bug: (spicetify): bloom +- :fire: justfile +- :wrench: (sss): it doesn't build +- :package: (flake): update +- :bug: (wezterm): don't resize when changing font size +- :sparkles: (programs): git +- :pencil2: (wezterm): disable wayland +- :wrench: (grovetender): change theme +- :package: (flake): update nvim +- :lipstick: (fmt): alejandra -> nixpkgs-fmt +- :sparkles: (statix): stop being annoying +- :bug: (rbw): default url and rofi font +- :sparkles: (pkgs): t-rec +- :package: (flake): update +- :pencil2: (discord): vesktop +- :recycle: (ags): back to basic +- :package: (flake): update +- :fire: awesome +- :truck: (os): thinkpad -> grovetender + +yes i like Risk of Rain 2 +- :truck: (host): hp -> aurelionite +- :fire: useless overlays +- :package: (flake): update +- :wrench: (os): enable gpg +- :sparkles: (pkgs): teleport/floorp/sd + +Floorp is firefox fork and Teleport is for work stuff dw about i +- :package: (flake): update nixvim +- :bug: (zellij): unbind alt j + +used by fzf jq +- :bug: (font): force zedmono hyprlock and ags +- :wrench: (bin): zellij start simplify +- :lipstick: (style): everblush +- :fire: (service): swaybg and swayidle +- :fire: phocus +- :wrench: (thinkpad): disable steam +- :wrench: (hyprland): use swaync instead of ags for notifications +- :package: (flake): update +- :wrench: (kanata): disable +- :wrench: (bar): back to ags +- :package: (flake): update nixvim +- :sparkles: (pkgs): bruno +- :wrench: (nixvim): enable copilot and set theme as var +- :wrench: (style): nixy theme and back to waybar + +also new walls +- :wrench: (waybar): style +- :package: (flake): bump nixvim +- :lipstick: (starship): more colorful :) + +Also forgotten obsidian color +- :bug: (stylix): explicitly enable +- :wrench: (wezterm): zedmono is back +- :wrench: (hyprlock): 5mn grace was a bit too much +- :sparkles: (kanata): keyboard customisation tool +- :wrench: (hyprlock): settings +- :package: (flake): update +- :wrench: (hyprland): screenshot use grimblast +- :bug: (hypridle): upstreamed +- :wrench: (nvim): enable obsidian +- :wrench: (de): hyprland + +xorg is dead sorry +- :package: (flake): update +- :zap: (nixos): 24.05 +- :package: (flake): update nixvim +- :wrench: (hp): set de and wallpaper +- :package: (flake): update +- Merge pull request #12 from elythh/awesome + +✨ awesomewm +- :lipstick: only use stylix +- :sparkles: (de): move back from wayland to xorg + +I missed awesomewm +- :sparkles: awesomewm +- :sparkles: grimblast +- :package: (flake): update +- :wrench: (hyprlock): stop using flake +- :package: (flake): update +- :sparkles: (term): foot +- :sparkles: xserver +- :package: (flakes): update +- :package: wip +- :sparkles: (host): mithrix + +homelab +- :package: (flake): update +- :lipstick: (font): fantasque +- :bug: read the diff i forgor to commit +- :fire: (gtk): don't need to build phocus anymore +- :wrench: (zellij): enable ctrl+o and change inactive colors +- :lipstick: (style): colorschemes +- :package: (flake): update nixvim +- :package: (flake): update +- :bug: (ags): temp fix +- :package: (flake): update +- :sparkles: (pkgs): ventoy +- :package: (flake): update + +Disable hyprland plugins because they are broken +- :lipstick: (colorscheme): decay +- :package: (flake): bump nixvim +- :wrench: (anyrun): enable randr extension +- :wrench: (lazygit): change binding for commits +- :wrench: (zellij): disable ctrl+o +- :wrench: (firefox ): enable google +- :wrench: (hostname): nixos -> hp + +That way I can use `nh` +- :pencil2: (zellij): colors +- :package: (flake): update +- :wrench: (hyprlock): screenshot path is crashing, using static color +- :sparkles: (pkgs): glab cli and nix-inspect +- :wrench: (anyrun): websearch plugin +- :sparkles: (pkgs): zed-editor +- :wrench: (pkgs): sort +- :sparkles: (nixvim): extend it here instead +- :sparkles: (stylix): wip - migrating for nix-colors to stylix +- :wrench: (firefox): too lazy, read the diff + +thanks oddlama tho +- :wrench: (zellij): quick tab switch binds +- :building_construction: (workflow): check and update +- :building_construction: (just): you are dead +- :package: (flake): bump +- :package: (phocus): bump +- :sparkles: (pkgs): nh + +thanks Vimjoyer +- :package: (flake): update +- :fire: (overlay): electron is fixed +- :package: (flake): update +- :wrench: (hyprland): emoji bind +- :sparkles: pkgs + +read the diff +- :wrench: (hyprland): new plugin + +hyprspace and hyprsplit +- :wrench: (zellij): highlight for more modes +- :sparkles: (pkgs): qutebrowser +- :wrench: chore +- :package: (nixvim): bump +- :lipstick: (startship): nix-shell borders +- :lipstick: (theme): change font to ZedMono +- :lipstick: (theme): everblush +- :wrench: spicetify and obsidian are back +- :wrench: (pkgs): bitwarden is back +- :package: (flake): update +- :lipstick: (starship): nix-shell module +- :package: (flake): update +- :sparkles: (pkgs): charm freeze and sherlock +- :bug: (nixpkgs): electron +- :bug: (swayidle): only if swaylock +- :bug: (split-workspace): working again +- Wip: blabla +- :lipstick: (colorscheme): paradise +- :package: (flake): update +- :wrench: (kanshi): default config +- :wrench: (hm): a whole lotta options +- :lipstick: (thinkpad): groove +- :wrench: (browser): new home opt +- :fire: (bin): useless import +- :fire: (inputs): clean flakes +- :lipstick: (hp): groove +- :package: (flake): update +- :wrench: (kanshi): anto +- :wrench: (hyprland): use anyrun instead of ags +- :wrench: (hp): enable things +- :pencil2: (hyprlock): correct english +- :wrench: (yamlfmt): drop merge tag +- :package: (flake): update +- :lipstick: (readme): preview +- :bug: (ags): don't use as systemd +- :bug: (shell): zsh as default + +otherwise zellij was using nu +- :art: (wall): rosepine +- :wrench: (swaync): disable if using ags +- :package: (flake): update nixvim +- :wrench: (option): default lock +- :wrench: switch to ags for now +- :wrench: (hyprland): new ags theme +- :sparkles: rnnoise +- Merge pull request #11 from elythh/refact + +HUGE REFACTOR +- :fire: lf +- :sparkles: nushell +- :sparkles: (rbw): config +- :lipstick: (README): update to reflect refactor +- :sparkles: (nixos): refactor + +- Move file to `modules/nixos` directory +- Make `opt` modules togglable +- :sparkles: (home-manager): refactor + +- Move file to `modules/home` directory +- Make `opt` modules togglable +- :package: (flake): update +- :package: (flake): update nixvim +- :wrench: (work): deprecated import +- :wrench: (work): yes i want steam + +to play balatro +- :wrench: (kanshi): new place +- :package: (flake): update +- :wrench: (firefox): wip new firefox theme +- :package: (app): operator-sdk +- :package: (flake): update +- :wrench: (lazygit): show icons +- :wrench: (wezterm): change font +- :wrench: (hyprland): use ags for brightness +- :fire: useless overlay +- :fire: useless +- :lipstick: (readme): update +- :wrench: (hyprland): enable swallowing +- :wrench: (hyprland): workspace rules +- :wrench: (stylix): drop for now +- :sparkles: (hyprland): ags +- :package: (flake): stylix + +also deleted sunbeam but hush +- :lipstick: (starship): change style +- :lipstick: (zellij): change style +- :package: (flake): waybar is fixed +- :package: (flake): update +- :bug: (waybar): rollback, it's crashing +- :sparkles: (bin): captureCode + +using sss_code +- :wrench: (hyprlock): wallpaper and not screenshot +- :sparkles: clipse + +Cute little clipboard manager using Bubbletea +- :package: (flake): update +- :wrench: (terminal): back to wezterm +- :package: (flake): sunbeam +- :package: read the diff +- :package: (flake): update nixvim +- :wrench: (starship): style +- :lipstick: (theme): onedark +- :package: (term): foot +- :sparkles: (home-manager): split systems +- :package: (flakes): update +- :wrench: (hyprland): disable split-monitor-workspace, it breaks my hyprland +- :wrench: disable docker +- :bug: (gpg): new pinentry option +- :sparkles: (hyprland): back to sss for screenshots +- :package: (flakes): update +- :wrench: (kanshi): single monitor setup with Xiaomi +- :sparkles: (pkg): tldr and teeworlds +- :sparkles: steam +- :wrench: (term): back to wezterm + +Yes i have to enable wayland support for it to work on wayland +- :sparkles: (yamlfmt): config +- :sparkles: charms app +- :package: (flakes): update +- :wrench: (sss): enable + +also trying out sss_code +- :wrench: reorder +- :lipstick: (fmt): alejandra +- :package: (flakes): update +- :sparkles: (pkg): discordo +- :wrench: (waybar): swap back to default flake +- :package: (flakes): update +- :wrench: (lock): swap hyprlock to swaylock + +I have issues with my GPU drivers :) +- :package: (flakes): update +- :package: (new): fx +- :package: (new): tailspin and circumflex +- :wrench: (hyprlock): move to programs +- :technologist: (xkb): It has been renamed recently +- :building_construction: (justfile): make it easier? I guess +- :package: (inputs): update +- :package: (inputs): forked split-monitor-workspaces +- :package: (inputs): nixpks update +- :wrench: (wayland): disable swayidle + +I'm using hypridle +- :wrench: (work): basic changes +- :package: (home): wezterm or kitty ? + screenkey +- :wrench: (hyprland): replace xdg-utils with gio (glib) +- :wrench: (hosts): clean hp +- :sparkles: new host +- :package: (flakes): update +- :wrench: color update + broken sss + fff +- :lipstick: (fmt): YOU ARE ANNOYING NIXFMT +- :package: (update): hyprlock +- :lipstick: lint/fmt +- :art: (hyprlock): guess it's fixed now +- :package: (overlays): stable packages +- :package: (nvim): update +- :wrench: (lock): untill I fix hyprlock +- :alien: I like living on the edge +- :wrench: cleaning +- :package: (flakes): update +- :bug: (waybar): use fork until fix + +persistent workspaces fix +- Merge pull request #10 from elythh/dev +- :wrench: (workflow): only apply on pullrequest +- :art: (style): fmt +- :fire: vencord: useless code +- :sparkles: lazygit +- :art: waybar: move css definition +- Merge pull request #9 from elythh/dev + +Dev +- :art: lint/format +- :sparkles: pre-commit hooks +- :wrench: github: workflow commit use gitmoji +- Merge pull request #8 from elythh/dev + +:art: lint/format +- Auto lint/format +- :sparkles: github: new workflow +- :sparkles: fmt +- :art: zellij: use indicators variables +- :fire: useless code +- :wrench: kitty out wezterm in +- :art: hyprlock +- :wrench: hypridle +- :wrench: hyprlock +- :wrench: hyprland: bind +- :package: update nixvim +- :wrench: sort packages + notes +- :package: flakes +- :heart: waybar is fixed + +Using a fork of waybar that works with split-monitor-workspaces +- :wrench: sss is back +- :sparkles: hypridle & hyprlock +- :fire: zsh: nvm this is annoying +- :package: update nixvim flake +- :sparkles: neovide ? testing out +- :art: this is fine +- :wrench: kanshi: use home-manager instead +- :wrench: hyprland: bullshit +- :wrench: waybar: I need to find a better way +- :wrench: waybar: multiple monitors setup +- :package: flakes: update nixvim +- :art: firefox: show icons +- :package: update flakes +- :wrench: kanshi +- :package: nix: substituters +- :wrench: move kanshi +- :wrench: flake: pure +- :wrench: hyprland: binds +- :art: spicetify: colors +- :art: update asset +- :bug: sss is broken on main for now +- :package: update flakes +- :fire: librewolf +- :bug: cachix +- :wrench: hyprland: auto exec +- :sparkles: dijo +- :art: spicetify: bloom +- :wrench: waybar: multiple monitors setup +- :wrench: hyprland: obsidian rules +- :wrench: hyprland +- :wrench: desktop portal +- :art: waybar + +Idk how to make it work with split-workspace-monitor +- :keyboard: zellij +- :bug: waybar: split-monitor-workspaces +- :wrench: hyprland +- :bug: hyprland: ocr +- :bug: hyprland: lock binding +- :angry: What a stupid binding that was +- :art: kitty: trying out transparency +- :wrench: waybar: session lock +- :keyboard: hyprland: bindings +- :wrench: random bindings +- :sparkles: hyprpaper +- :package: update flakes +- :wrench: disable useless apps +- :wrench: re-order +- :art: kitty +- :art: anyrun +- :sparkles: swaync +- :art: waybar +- :sparkles: hyprland: back at it again ? +- :art: zellij: rounded corners +- :wrench: anyrun: you can rest for now +- :wrench: swayfx: tweaks +- :wrench: kanshi: config from another seat at work +- :bug: sway screenshot + +Satty has no --notify option, it's sss +- :bug: Firefox + +It wouldn't start anymore otherwide :c +- :rocket: Bluetooth is fixed + +By downgrading my Linux kernel lol +- :bug: bluetooth is still dead +- :package: update flakes +- :art: phocus colors +- :bug: bluetooth is broken :) idk how to fix +- :bug: use swayfx git +- :package: update flakes +- :wrench: swayfx +- :art: walls +- :art: obsidian css +- :wrench: still broken dont mind me +- :wrench: cache +- :package: flakes +- :art: flexoki +- :sparkles: home-made nixvim + +Check out elythh/nixvim repo +- :sparkles: Screenshot script + +Ugliest scipt known. slurp + sss + satty +- 🐛 ARE YOU HAPPY NOW NIX-COLORS +- ✨ anyrun +- 📦️ flakes +- 🔧 bluetooth +- ✨ viddy +- 🔧 chore +- 📦️ reorder +- ✨ t-rec +- ✨ gitui +- 📦️ flakes +- 🔧 ags: move color config +- 🔧 wezterm: why ? +- 💄 colorscheme +- 💄 walls +- ✨ sss +- 🐛 kanshi: use monitors name instead +- 🔧 chore swayfx +- 💄 waybar, not in use currently tho +- 💄 zellij fix highlight +- 💄 TTour +- 📸 GPG +- ✨ make theme a nix option +- 🔧 cleanup home +- 🐛 material +- 🔧 swayfx cleanup +- 📦️ swappy -> satty +- 📦️ icons and inotify-tools +- 📦️ waybar might be back +- 💄 swayfx font +- ✨ flakes +- 📦️ kanshi +- 🐛 k9s deprecated skin +- 💄 readme +- 🔧 ags binding +- 💄 materialpy +- 💄 font and boring stuff +- ✨ fonts +- ⬆️ flakes +- ♻️ useless input flakes +- 🔧 swayfx bind for rofi-rbw +- ✨ material +- 🔧 bins +- 🎨 wayland conf +- 🔧 use swappy for screenshots +- 💄 README and assets +- 🔧 +sway -hyprland +- 🔧 swaysome binding in swayfx +- 📦️ wlr-randr +- ✏️ stardewnight was a nice name in the end +- ✨ tmate is fun +- 💄 stardewnight -> stardew +- 🩹 chore +- 💄 swayfx binds and swaysome +- 🔥 remove useless bins +- 🚧 this is for sway, I should move it +- ✨ music +- 🤡 sorry for calling you useless +- ✨ spotdl +- ✨ swayscratch +- ⏪️ sorry for deleting you mpdand ncmp +- ✨ swayfx with ags is a thing thanks to chadcat7 +- 💄 wallpaper option +- 💄 anyrun colors +- ✨ options +- 🔥 wallpicker +- 💄 hyprland default session with greetd +- ✨ nixpkgs-wayland +- 💩 you can sleep for now +- 🔥 useless code +- ✨ hyprland misc +- 🩹 xdg desktop portal syntax +- 🩹 changeTheme update for hyprland +- ♻️ home file imports +- ♻️ hyprland imports +- ♻️ bins +- 🎨 format +- 💄 waybar +- 🔥 cliphist program +- ✨ run-as-service +- ✨ anyrun +- 🔥 shell.nix +- 🔥 useless eww and gruv gtk +- 🎨 icons +- 🙈 why are you still here +- 🚧 trying out swayfx and ags +- ✨ ewwags colors +- ✨ swayfx +- ✨ ags +- ⬆️ flakes +- 🔥 polkit +- 🩹 swayidle +- 💄 waybar +- ✨ cliphist +- 🩹 waybar: custom search +- ♻️ hyprland: screenshot bindinds +- :wrench: temp untill I get ride of X entirely +- :wrench: swayidle stop turning off my screen +- :wrench: spicetify fix +- :wrench: Swaylock binding +- :wrench: default mimes +- :pencil2: waybar colors +- :pencil2: X is dead, long live Wayland ! +- :package: srt +- :package: update flakes +- :package: jaq +- :pencil2: wallpaper variable +- :package: wtype +- :pencil2: waybar show tray +- :wrench: intl layout +- :pencil2: hyprland call rofi-rbw +- :pencil2: move wallpapers here +- :pencil2: split workspaces per monitors because I miss awesomewm already +- :pencil2: waybar colors +- :pencil2: annoying monitors +- :pencil2: swaybg +- :zap: wallpaper option +- :pencil2: sessionVariables firefox +- :package: kubie is meh +- :package: update flakes + hyprland +- :package: deprecated +- :package: Hyprland config +- :pencil2: back to hyprland, time to move +- :zap: hyprland is back ? +- :package: sorry for deleting you Nemo +- :package: NUR +- :pencil2: cols +- :pencil2: changeTheme fix +- :zap: firefox +- :package: disable hyprland +- :pencil2: zellij kubie +- :wrench: gpg +- :pencil2: spicetify +- :wrench: refact home.nix +- :package: update flakes +- :zap: picom compfy +- :zap: firefox +- :wrench: oopswhy did i change it +- :package: cleanup +- :pencil2: phocus fix +- :package: zoxide because zsh one it only for zsh obviously +- :zap: zellij session manager +- :wastebasket: betterdiscord theme +- :pencil2: zellij +- :pencil2: colors +- :package: eww +- :pencil2: biscuits +- :package: gpick and wireplumber for new awesome config +- :package: rbw and rofi-rbw +- :package: sort and idk i forgor +- :pencil2: kubie on zellij +- :package: replace kubectx with kubie :heart: +- :wrench: zellij plugins and zsh +- :pencil2: zellij +- :package: I forgor :skull: +- :package: update flakes +- :pencil2: spicetify fix +- :pencil2: fullerene +- :zap: nixos-harware +- :pencil2: I have this syntax +- :zap: github +- :package: update flakes +- :wrench: lock for awesome +- :pencil2: kitty +- :pencil2: kizu +- :package: vencord +- :pencil2: set DNS +- :zap: update flakes +- :package: ollama +- :pencil2: home screenshot +- :pencil2: decay cols + +a +- :pencil2: oxo colorscheme +- :wrench: BLUETOOTH KEEPS CRASHNG AND I HATE IT +- :wrench: chore +- :package: refact +- :pencil2: wallpicker refact +- :pencil: bin: wallpicker +- :zap: update flakes +- :package: scrcpy +- :zap: update flakes +- :package: discord because armcord is not working and yazi +- :pencil2: asset +- Merge pull request #6 from elythh/dev + +Dev +- :pencil2: hyprland config + +Might be broken. Idk i use awesomewm for now +- :pencil2: reversal icons by default +- :wrench: gruv +- :wrench: I have no derivations :) +- :pencil2: stardew colorscheme +- :pencil2: sweetpastel rework +- :pencil2: chore: bins +- :wrench: zellij script +- Merge pull request #5 from elythh/nixos-awesome + +Nixos awesome +- :pencil2: README +- :pencil2: updated home asset +- Merge pull request #4 from elythh/nixos-awesome + +:pencil2: sweetpastel colorscheme +- :pencil2: sweetpastel colorscheme +- Merge pull request #3 from elythh/nixos-awesome + +Nixos awesomewm + colors refact +- :wrench: chore +- :package: use gdm +- :zap: update flakes +- :wrench: replace colors with nix-colors +- :wrench: awesome - use reversal +- :zap: chore +- :zap: reversal icons +- :zap: update flakes +- :zap: reversal icon pack +- :pencil2: replace colors with nix-colors +- :pencil2: awesomewm is back from the dead +- :zap: nix-colors and nixpkgs-f2k +- :zap: picom is back +- :wrench: chore +- :pencil2: hyprland - split monitor workspace +- :zap: armcord not discord +- :wrench: chore +- :zap: update flakes +- :wrench: hyprland chore +- :pencil2: bar apps +- :pencil2: screenshots +- :zap: no blackbox +- :pencil2: new hyprland conf +- :wrench: chore +- :zap: lf-icons +- :wrench: deleting not used +- :zap: lf +- :wrench: chore +- :wrench: waybar and eww +- :zap: ags +- :wrench: use swaylock +- :zap: eww is so back +- :wrench: dont need you +- :pencil2: chore +- :pencil2: zellij colors +- :zap: new bin +- :pencil2: eww is so back +- :cross: ewww :zap: waybar +- :zap: telegram + +and brave but fuck brave so I only list you here +- :zap: easyeffects +- :wrench: chore +- :wrench: dont need you anymore +- :wrench: swayidle - use swaylock +- :wrench: hyprland - monitors +- :zap: swayidle +- :cross: maim +- :cross: useless programs +- :cross: waybar +- :wrench: I am not mihai +- :pencil2: chore - hyprland +- :pencil2: assets +- :wrench: cols +- :zap: theme picker +- :zap: wallpicker +- :wrench: but i need YOU +- :wrench: dont need you +- :wrench: eww using cols +- :wrench: DONNE-MOI TOUT +- :pencil2: changeTheme with eww +- :zap: eww is back +- :pencil2: zellij using colors +- :zap: pkgs chore +- :zap: vbox +- :zap: gdm +- :pencil2: zellij layout with new statusbar plugin +- :pencil2: README - update WM +- :zap: nu +- :zap: autoname monitors +- :wrench: monitors and always monitors +- :wrench: waybar as systemd +- :pencil2: waybar style +- :wrench: flake update +- :zap: wallpicker script +- :pencil2: hyprland + +chore +- :zap: README - nvim preview +- :zap: README +- :zap: wallpicker +- :zap: kubectl and obs +- :penci2: compose key (thank you Alex) + +also monitors but they always change +- :wrench: simlink wlogout config (ugly way to do it) +- :wrench: it doesn't work but whatever +- :pencil2: dunst location +- :wrench: maint hyprland +- :pencil2: wlogout is ugly +- :zap: zellij session manager is nice +- :zap: gopass +- :cross: waybar - dont care about weather. ty for api key tho +- :pencil2: fuck rofi-pass, all my homies hate rofi-pass. Now tessen is my bestfriend +- :cross: arbtt +- :zap: grimblast +- :wrench: chore +- :zap: awesome like monitor workspace for hyprland +- :wrench: no need to track a simlink either +- :wrench: hyprland - no need for this +- :pencil2: set gtk default font to Lexend +- :pencil2: new fonts +- :zap: flake update +- :pencil2: update waybar icons to nerdfont 3.0 +- :zap: deriv for gg sans +- :zap: pipewire is my bestfriend + +shut up direnv ! +- :zap: workflow +- :cross: keybase +- :wrench: blablabla +- :zap: damn damn, back at it again with the broken system +- :zap: direnv +- :zap: back at it again with the white vans +- :wrench: why are wlr/workspaces not showing ? +- :zap: flake update +- :wrench: clearing +- :zap: new Hyprland config +- :zap: cba listing +- :zap: flake update +- WIP :wrench: hypr +- WIP :pencil2: hypr +- :pencil2: PSA readme +- :zap: wlogout +- WIP :pencil2: rofi for hyprland +- WIP WIP WIP :construction: HYPRLAND CONFIG THIS IS NOT WORKING YET +- :pencil2: gtk theme +- WIP :pencil2: hyprland +- :zap: updated flakes +- :pencil2: long gone pulseaudio +- :zap: ncdu and swappy +- :pencil2: hypr config +- :wrench: chore +- WIP :zap: hyprland config +- :zap: updated flakes +- WIP :zap: back to Hyprland, Awesome feels bloated +- :wrench: zellij +- :zap: update flakes and add tmux (can't get used to zellij) +- :zap: update flake +- :zap: i messed up +- :wrench: chore +- :wrench: wezterm picom +- :zap: helmfile and dig +- :zap: just +- :pencil2: zellij update +- :wrench: why would i even do that ? +- :pencil2: colorscheme update +- :zap: betterdiscord theme +- :wrench: maint +- :wrench: mount other partitions +- :wrench: no need for a kapitan conf +- :wrench: flakes update +- :pencil2: picom blur +- :wrench: finally that file wasn't that useless +- :wrench: I CANT REBUILD MY FLAKE ANYMORE +- :wrench: update flakes +- :wrench: sort import +- :wrench: kdb variant +- :pencil2: zellij +- :wrench: sops integration +- :pencil2: sops config +- :zap: age +- :zap: sops encrypted secrets +- :wrench: sops config +- :zap: spotify-tui +- :wrench: later +- :zap: spotifyd +- :zap: rose colorscheme +- :zap: hypr config branch +- :zap: cute little busic widget in awesone bar +- :pencil2: pass repo + +clone my pass private repo when initializing home-manager +- :zap: gpg-agent & rofi-pass +- :zap: gnupg-agent +- :wrench: i already miss awesomeWM +- :wrench: xressources +- :zap: bye arandr, hello wlr-randr +- :wrench: hyprland: multi monitors +- :pencil2: multiple monitors setup + +works the awesomewm way thanks to hyprsome +- :pencil2: hyprland: animations +- :zap: fileroller for nemo +- :zap: webcord +- :wrench: changeTheme +- :pencil2: readme infos +- :wrench: missing argument +- Merge branch 'main' of github.com:elythh/dotfiles +- Merge github.com:elythh/dotfiles +- :bug: merge +- :wrench: mullvad-vpn +- :pencil2: starship prompt +- :wrench: wscreenshot +- :wrench: rofi +- :wrench: hyprland +- :wrench: mullvad-vpn +- :pencil2: swaylock +- :wrench: disabled trackpoint, disable waybar, enable swaylock +- :pencil2: hyprland: group tab style +- :wrench: hyprland: groups binding +- :wrench: wayland-clipboard +- :pencil2: default wallpaper +- :pencil2: screenshot bind and bin fixes +- :wrench: maint +- :wrench: enable mullvad service +- :zap: screenshot bins for hyprland +- :wrench: update setTheme for hyprland +- :wrench: sort +- :pencil2: hypr config +- :zap: hyprland and eww +- :zap: keybase +- :zap: awscli, i3lock-fancy and thunderbird +- :triangular_flag_on_post: i hate python +- :zap: rustup and helm + +the right heml ! kubernetes one +- :pencil2: zellij refact +- :pencil2: enable docker service +- :zap: docker and ts-lsp +- :zap: useful programs + +- flyclt : cli for Fly.io +- glow : README tool +- jqp : jq tool +- ripgrep : grep replacement +- xh : curl replacement +- kubectl related useful stuff +- :pencil2: spicetify rebase from master +- :wrench: nvim repo +- :pencil2: zellij conf +- :pencil2: sort pkgs +- :pencil2: chore +- :pencil2: zellij colors +- :pencil2: starship style +- :pencil2: zellij config +- :zap: kubectx +- :zap: c utils + +gcc and gnumake +- :zap: tree-sitter +- :pencil2: zsh style +- :pencil2: sort pkgs list + +(and re-enable kitty) +- :pencil2: wezterm config +- :pencil2: no more blur (for now) +- :pencil2: verdant neofetch +- :zap: kitty -> :trash: wezterm -> :fire: +- :wrench: mountain defaults +- :pencil2: mountain colors +- :zap: new colorschene : mountain +- :pencil2: zellij + +do NOT start each time I open zsh thank you +- :zap: arandr +- :wrench: zsh env file +- :zap: utils + +- yq +- openvpn +- k9s +- nm-applet +- helm +- :zap: k9s +- :zap: zsh theme +- :pencil2: zsh nix colors +- :zap: starship preview in README +- :pencil2: readme +- :pencil2: zsh & starship + +starship is now declared as nix and will be affected by colorscheme +- :wrench: zsh +- :construction: Kaiteki client +- :pencil: symlink prompt config +- :pencil: starship config +- :zap: terraform + +terraform is needed main for terrform-ls formatting to work +- :wrench: update config +- :zap: yaml-language-server + +- used as nvim LSP +- :construction: zellij config +- :zap:terraform-ls + +used as LSP by nvim +- :wrench: import zsh config + +instead of declaring my zsh config as Nix, I'll copy it to the config folder. Also includes starship prompt +- :zap: tailscale +- :pencil2: some blank lines +- :zap: syncthing +- :pencil2: spicetify plugins list +- :zap: jellyfin-media-player +- :zap: zellij and adb +- :wrench: pkgs readme + +- added mpd preview +- added stern +- added google-cloud-sdk +- :wrench: derivs +- :zap: readme previews +- :rocket: working version 1.0 + +refact +- Initial commit + +#### Fixes +- :pencil2: (rbw): fix +- :wrench: (hyprland): fix env to use xdg-open +- :wrench: (swaync): fix option +- :wrench: (k9s): fix skin not applying +- :lipstick: (spicetify): fix color +- :bug: (slack): fix screensharing + +thanks François +- :wrench: hyprland: fix split-workspace-monitors +- :pencil2: fix phocus colors +- :pencil2: fix colors +- :wrench: fix zellijfzf with new resurrect feature +- :wrench: fix changeTheme + +#### New +- :sparkles: (secrets): init sops +- :sparkles: (firefox): add sidebery config +- :sparkles: (pkgs): add random stuff and sort +- :wrench: (mithrix): add ssh key and now minecraft server + +adventure map +- :wrench: (fonts): add google ones +- :wrench: (kanata): add usb keyboard +- :bug: (hp): add stylix +- :sparkles: (host): add steam as opt +- :wrench: (zellij): add option +- :wrench: (wayland): add xorg.xprop +- :wrench: (system): add git extras +- :wrench: (lazygit): add cz option +- :zap: add python venv example using nix-shell +- :pencil2: init script +- :wrench: init script + +#### Removed +- :wrench: (fonts): remove +- :fire: (sss): remove +- :memo: (readme): remove useless reference +- :green_heart: (ci): remove useless import +- :fire: (style): remove nixy +- :wrench: (sss): remove for now, building takes ages +- :fire: (anyrun): remove randr +- :wrench: (firefox): remove useless code +- :fire: (deadnix): remove dead code +- :fire: (neofetch): remove +- :fire: (pkgs): remove useless +- :green_heart: remove lint/format job +- :fire: (pkgs): remove ununsed +- :fire: (hyprland): remove unused var +- :wrench: (phocus): remove useless import +- :fire: flake: remove matugen +- :package: remove nemo + +replaced by thunar +- :package: remove useless flakes input +- :wrench: deleted xresources +- :wrench: remove useless pkgs folder +- :wrench: delete useless modules files +- :wrench: removed nur for now +- :wrench: remove hardlinked hypr config + + diff --git a/homes/x86_64-linux/gwen@grovetender/default.nix b/homes/x86_64-linux/gwen@grovetender/default.nix index 2a60d395..6c5b4b69 100644 --- a/homes/x86_64-linux/gwen@grovetender/default.nix +++ b/homes/x86_64-linux/gwen@grovetender/default.nix @@ -73,7 +73,7 @@ in sops = { enable = true; - defaultSopsFile = lib.snowfall.fs.get-file "secrets/gwen/default.yaml"; + defaultSopsFile = lib.snowfall.fs.get-file "secrets/gwen/secrets.yaml"; sshKeyPaths = [ "${config.home.homeDirectory}/.ssh/id_ed25519" ]; }; }; diff --git a/modules/nixos/archetypes/personal/default.nix b/modules/nixos/archetypes/personal/default.nix new file mode 100644 index 00000000..e5683c91 --- /dev/null +++ b/modules/nixos/archetypes/personal/default.nix @@ -0,0 +1,30 @@ +{ + config, + lib, + namespace, + ... +}: +let + inherit (lib) mkIf; + inherit (lib.${namespace}) mkBoolOpt enabled; + + cfg = config.${namespace}.archetypes.personal; +in +{ + options.${namespace}.archetypes.personal = { + enable = mkBoolOpt false "Whether or not to enable the personal archetype."; + }; + + config = mkIf cfg.enable { + elyth = { + services = { + tailscale = enabled; + }; + + suites = { + common = enabled; + video = enabled; + }; + }; + }; +} diff --git a/modules/nixos/archetypes/workstation/default.nix b/modules/nixos/archetypes/workstation/default.nix new file mode 100644 index 00000000..12e45f5e --- /dev/null +++ b/modules/nixos/archetypes/workstation/default.nix @@ -0,0 +1,27 @@ +{ + config, + lib, + namespace, + ... +}: +let + inherit (lib) mkIf; + inherit (lib.${namespace}) mkBoolOpt enabled; + + cfg = config.${namespace}.archetypes.workstation; +in +{ + options.${namespace}.archetypes.workstation = { + enable = mkBoolOpt false "Whether or not to enable the workstation archetype."; + }; + + config = mkIf cfg.enable { + elyth = { + suites = { + common = enabled; + desktop = enabled; + development = enabled; + }; + }; + }; +} diff --git a/modules/nixos/displaymanager/regreet/default.nix b/modules/nixos/displaymanager/regreet/default.nix new file mode 100644 index 00000000..bf86495a --- /dev/null +++ b/modules/nixos/displaymanager/regreet/default.nix @@ -0,0 +1,92 @@ +{ + config, + inputs, + lib, + pkgs, + system, + namespace, + ... +}: +let + inherit (lib) + types + mkIf + getExe + getExe' + ; + inherit (lib.${namespace}) mkBoolOpt mkOpt; + inherit (inputs) hyprland; + + cfg = config.${namespace}.display-managers.regreet; + themeCfg = config.${namespace}.theme; + gtkCfg = config.${namespace}.desktop.addons.gtk; + + greetdHyprlandConfig = pkgs.writeText "greetd-hyprland-config" '' + ${cfg.hyprlandOutput} + + animations { + enabled=false + first_launch_animation=false + } + + bind=SUPER, RETURN, exec, ${getExe pkgs.wezterm} + bind=SUPER_SHIFT, RETURN, exec, ${getExe pkgs.nwg-hello} + bind=SUPER_CTRL_SHIFT, RETURN, exec, ${getExe pkgs.greetd.regreet} + + exec-once = ${pkgs.dbus}/bin/dbus-update-activation-environment --systemd DISPLAY WAYLAND_DISPLAY XDG_CURRENT_DESKTOP HYPRLAND_INSTANCE_SIGNATURE + + exec-once = ${getExe pkgs.greetd.regreet} -l debug && ${ + getExe' hyprland.packages.${system}.hyprland-unwrapped "hyprctl" + } exit + ''; +in +{ + options.${namespace}.display-managers.regreet = with types; { + enable = mkBoolOpt false "Whether or not to enable greetd."; + hyprlandOutput = mkOpt lines "" "Hyprlands Outputs config."; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ + themeCfg.cursor.package + themeCfg.icon.package + gtkCfg.theme.package + ]; + + programs.regreet = { + enable = true; + + settings = { + background = { + path = pkgs.${namespace}.wallpapers.flatppuccin_macchiato; + fit = "Cover"; + }; + + GTK = { + application_prefer_dark_theme = true; + cursor_theme_name = "${themeCfg.cursor.name}"; + font_name = "${config.${namespace}.system.fonts.default} * 12"; + icon_theme_name = "${themeCfg.icon.name}"; + theme_name = "${gtkCfg.theme.name}"; + }; + }; + }; + + services.greetd = { + settings = { + default_session = { + command = "${ + getExe hyprland.packages.${system}.hyprland-unwrapped + } --config ${greetdHyprlandConfig} > /tmp/hyprland-log-out.txt 2>&1"; + }; + }; + + restart = false; + }; + + security.pam.services.greetd = { + enableGnomeKeyring = true; + gnupg.enable = true; + }; + }; +} diff --git a/modules/nixos/displaymanager/tuigreet/default.nix b/modules/nixos/displaymanager/tuigreet/default.nix new file mode 100644 index 00000000..82238190 --- /dev/null +++ b/modules/nixos/displaymanager/tuigreet/default.nix @@ -0,0 +1,35 @@ +{ + config, + lib, + pkgs, + namespace, + ... +}: +let + inherit (lib) mkIf getExe; + inherit (lib.${namespace}) mkBoolOpt; + + cfg = config.${namespace}.display-managers.tuigreet; +in +{ + options.${namespace}.display-managers.tuigreet = { + enable = mkBoolOpt false "Whether or not to enable tuigreet."; + }; + + config = mkIf cfg.enable { + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${getExe pkgs.greetd.tuigreet} --time -r --cmd Hyprland"; + user = "greeter"; + }; + }; + }; + + security.pam.services.greetd = { + enableGnomeKeyring = true; + gnupg.enable = true; + }; + }; +} diff --git a/modules/nixos/hardware/audio/default.nix b/modules/nixos/hardware/audio/default.nix new file mode 100644 index 00000000..642c779d --- /dev/null +++ b/modules/nixos/hardware/audio/default.nix @@ -0,0 +1,54 @@ +{ + config, + lib, + pkgs, + namespace, + ... +}: +let + inherit (lib) types mkIf mkForce; + inherit (lib.${namespace}) mkBoolOpt mkOpt; + + cfg = config.${namespace}.hardware.audio; +in +{ + options.${namespace}.hardware.audio = with types; { + enable = mkBoolOpt false "Whether or not to enable audio support."; + alsa-monitor = mkOpt attrs { } "Alsa configuration."; + extra-packages = mkOpt (listOf package) [ + pkgs.qjackctl + # FIXME: broken nixpkgs + pkgs.easyeffects + ] "Additional packages to install."; + modules = mkOpt (listOf attrs) [ ] "Audio modules to pass to Pipewire as `context.modules`."; + nodes = mkOpt (listOf attrs) [ ] "Audio nodes to pass to Pipewire as `context.objects`."; + }; + + config = mkIf cfg.enable { + environment.systemPackages = + with pkgs; + [ + pulsemixer + pavucontrol + helvum + ] + ++ cfg.extra-packages; + + hardware.pulseaudio.enable = mkForce false; + + elyth = { + user.extraGroups = [ "audio" ]; + }; + + security.rtkit.enable = true; + + services.pipewire = { + enable = true; + alsa.enable = true; + audio.enable = true; + jack.enable = true; + pulse.enable = true; + wireplumber.enable = true; + }; + }; +} diff --git a/modules/nixos/hardware/bluetooth/default.nix b/modules/nixos/hardware/bluetooth/default.nix new file mode 100644 index 00000000..a076d0a4 --- /dev/null +++ b/modules/nixos/hardware/bluetooth/default.nix @@ -0,0 +1,41 @@ +{ + config, + lib, + pkgs, + namespace, + ... +}: +let + inherit (lib) mkIf; + inherit (lib.${namespace}) mkBoolOpt; + + cfg = config.${namespace}.hardware.bluetooth; +in +{ + options.${namespace}.hardware.bluetooth = { + enable = mkBoolOpt false "Whether or not to enable support for extra bluetooth devices."; + }; + + config = mkIf cfg.enable { + hardware.bluetooth = { + enable = true; + + package = pkgs.bluez-experimental; + powerOnBoot = true; + + settings = { + General = { + Experimental = true; + JustWorksRepairing = "always"; + MultiProfile = "multiple"; + }; + }; + }; + + boot.kernelParams = [ "btusb" ]; + + services.blueman = { + enable = true; + }; + }; +} diff --git a/modules/nixos/hardware/cpu/amd/default.nix b/modules/nixos/hardware/cpu/amd/default.nix new file mode 100644 index 00000000..77499e36 --- /dev/null +++ b/modules/nixos/hardware/cpu/amd/default.nix @@ -0,0 +1,33 @@ +{ lib, namespace, ... }: +let + inherit (lib) mkIf; + inherit (lib.${namespace}) mkBoolOpt; + cfg = config.${namespace}.hardware.cpu.amd; +in +{ + options.${namespace}.hardware.cpu = { + enable = mkBoolOpt false "No-op used for setting up hierarchy."; + }; + options.${namespace}.hardware.cpu.amd = { + enable = mkBoolOpt false "Whether or not to enable support for amd cpu."; + }; + + config = mkIf cfg.enable { + boot = { + extraModulePackages = [ config.boot.kernelPackages.zenpower ]; + + kernelModules = [ + "kvm-amd" # amd virtualization + "amd-pstate" # load pstate module in case the device has a newer gpu + "zenpower" # zenpower is for reading cpu info, i.e voltage + "msr" # x86 CPU MSR access device + ]; + + kernelParams = [ "amd_pstate=active" ]; + }; + + environment.systemPackages = [ pkgs.amdctl ]; + + hardware.cpu.amd.updateMicrocode = true; + }; +} diff --git a/modules/nixos/hardware/opengl/default.nix b/modules/nixos/hardware/opengl/default.nix new file mode 100644 index 00000000..5c9d2362 --- /dev/null +++ b/modules/nixos/hardware/opengl/default.nix @@ -0,0 +1,38 @@ +{ + config, + lib, + pkgs, + namespace, + ... +}: +let + inherit (lib) mkIf; + inherit (lib.${namespace}) mkBoolOpt; + + cfg = config.${namespace}.hardware.opengl; +in +{ + options.${namespace}.hardware.opengl = { + enable = mkBoolOpt false "Whether or not to enable support for opengl."; + }; + + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + libva-utils + vdpauinfo + ]; + + hardware.graphics = { + enable = true; + enable32Bit = true; + + extraPackages = with pkgs; [ + vaapiVdpau + libvdpau-va-gl + libva + libvdpau + libdrm + ]; + }; + }; +} diff --git a/modules/nixos/hardware/power/default.nix b/modules/nixos/hardware/power/default.nix new file mode 100644 index 00000000..a815f503 --- /dev/null +++ b/modules/nixos/hardware/power/default.nix @@ -0,0 +1,26 @@ +{ + config, + lib, + namespace, + ... +}: +let + inherit (lib) mkIf; + inherit (lib.${namespace}) mkBoolOpt; + + cfg = config.${namespace}.hardware.power; +in +{ + options.${namespace}.hardware.power = { + enable = mkBoolOpt false "Whether or not to enable support for extra power devices."; + }; + + config = mkIf cfg.enable { + services.upower = { + enable = true; + percentageAction = 5; + percentageCritical = 10; + percentageLow = 25; + }; + }; +} diff --git a/modules/nixos/security/gpg/default.nix b/modules/nixos/security/gpg/default.nix new file mode 100644 index 00000000..15364615 --- /dev/null +++ b/modules/nixos/security/gpg/default.nix @@ -0,0 +1,61 @@ +{ + config, + lib, + pkgs, + namespace, + ... +}: +let + inherit (lib) + types + mkIf + getExe' + ; + inherit (lib.${namespace}) mkBoolOpt mkOpt; + + cfg = config.${namespace}.security.gpg; + +in +{ + options.${namespace}.security.gpg = with types; { + enable = mkBoolOpt false "Whether or not to enable GPG."; + agentTimeout = mkOpt int 5 "The amount of time to wait before continuing with shell init."; + }; + + config = mkIf cfg.enable { + environment.shellInit = # bash + '' + ${getExe' pkgs.coreutils "timeout"} ${builtins.toString cfg.agentTimeout} ${getExe' pkgs.gnupg "gpgconf"} --launch gpg-agent + gpg_agent_timeout_status=$? + + if [ "$gpg_agent_timeout_status" = 124 ]; then + # Command timed out... + echo "GPG Agent timed out..." + echo 'Run "gpgconf --launch gpg-agent" to try and launch it again.' + fi + ''; + + environment.systemPackages = with pkgs; [ + cryptsetup + gnupg + paperkey + pinentry-curses + pinentry-qt + ]; + + programs = { + ssh.startAgent = false; + + gnupg.agent = { + enable = true; + enableExtraSocket = true; + enableSSHSupport = true; + pinentryPackage = pkgs.pinentry-gnome3; + }; + }; + + services = { + pcscd.enable = true; + }; + }; +} diff --git a/packages/git-cliff/default.nix b/packages/git-cliff/default.nix new file mode 100644 index 00000000..00fda3d4 --- /dev/null +++ b/packages/git-cliff/default.nix @@ -0,0 +1,141 @@ +{ + lib, + pkgs, + writeShellApplication, + ... +}: +let + git-cliff-config = pkgs.writeTextFile { + name = "cliff.toml"; + text = # toml + '' + [changelog] + # changelog header + header = """ + # Changelog\n + All notable changes to this project will be documented in this file. + + """ + # template for the changelog body + # https://keats.github.io/tera/docs/#introduction + body = """ + {%- macro remote_url() -%} + https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }} + {%- endmacro -%} + + {% if version -%} + ## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }} + {% else -%} + ## [Unreleased] + {% endif -%} + + ### Details\ + + {% for group, commits in commits | group_by(attribute="group") %} + #### {{ group | upper_first }} + {%- for commit in commits %} + - {{ commit.message | upper_first | trim }}\ + {% if commit.github.username %} by @{{ commit.github.username }}{%- endif -%} + {% if commit.github.pr_number %} in \ + [#{{ commit.github.pr_number }}]({{ self::remote_url() }}/pull/{{ commit.github.pr_number }}) \ + {%- endif -%} + {% endfor %} + {% endfor %} + + {%- if github.contributors | filter(attribute="is_first_time", value=true) | length != 0 %} + ## New Contributors + {%- endif -%} + + {% for contributor in github.contributors | filter(attribute="is_first_time", value=true) %} + * @{{ contributor.username }} made their first contribution + {%- if contributor.pr_number %} in \ + [#{{ contributor.pr_number }}]({{ self::remote_url() }}/pull/{{ contributor.pr_number }}) \ + {%- endif %} + {%- endfor %}\n + """ + # template for the changelog footer + footer = """ + {%- macro remote_url() -%} + https://github.com/{{ remote.github.owner }}/{{ remote.github.repo }} + {%- endmacro -%} + + {% for release in releases -%} + {% if release.version -%} + {% if release.previous.version -%} + [{{ release.version | trim_start_matches(pat="v") }}]: \ + {{ self::remote_url() }}/compare/{{ release.previous.version }}..{{ release.version }} + {% endif -%} + {% else -%} + [unreleased]: {{ self::remote_url() }}/compare/{{ release.previous.version }}..HEAD + {% endif -%} + {% endfor %} + + """ + + # remove the leading and trailing whitespace from the templates + trim = true + + [git] + # parse the commits based on https://www.conventionalcommits.org + conventional_commits = false + + # filter out the commits that are not conventional + filter_unconventional = false + + # process each line of a commit as an individual commit + split_commits = false + + + # regex for parsing and grouping commits + commit_parsers = [ + { message = "^.*: add", group = "New" }, + { message = "^.*: init", group = "New" }, + { message = "^.*: support", group = "New" }, + { message = "^test", group = "New" }, + { message = "^doc", group = "Documentation", default_scope = "other" }, + { message = "^fix", group = "Fixes" }, + { message = "^.*: fix", group = "Fixes" }, + { message = "^.*: change", group = "Changed" }, + { message = "^.*: remove", group = "Removed" }, + { message = "^.*: delete", group = "Removed" }, + { message = "^.*", group = "Changed" }, + ] + + # protect breaking changes from being skipped due to matching a skipping commit_parser + protect_breaking_commits = false + + # filter out the commits that are not matched by commit parsers + filter_commits = true + + # regex for matching git tags + tag_pattern = "v[0-9].*" + + # regex for skipping tags + # skip_tags = "v0.1.0-beta.1" + + # regex for ignoring tags + ignore_tags = "" + + # sort the tags topologically + topo_order = false + + # sort the commits inside sections by oldest/newest order + sort_commits = "newest" + ''; + }; +in +writeShellApplication { + name = "git-cliff"; + + meta = { + mainProgram = "git-cliff"; + }; + + runtimeInputs = with pkgs; [ git-cliff ]; + + text = '' + ${lib.getExe pkgs.git-cliff} \ + --output CHANGELOG.md \ + --config ${git-cliff-config.outPath} + ''; +} diff --git a/shells/default/default.nix b/shells/default/default.nix index 18ae5fd9..fd66f1cf 100644 --- a/shells/default/default.nix +++ b/shells/default/default.nix @@ -32,7 +32,7 @@ mkShell { shellHook = '' ${inputs.self.checks.${system}.pre-commit-hooks.shellHook} - echo 🔨 Welcome to ${namespace} + echo 🐷 Welcome to ${namespace} ''; diff --git a/shells/nix/default.nix b/shells/nix/default.nix index 68806270..d6b742f6 100644 --- a/shells/nix/default.nix +++ b/shells/nix/default.nix @@ -32,7 +32,7 @@ mkShell { ]; shellHook = '' - echo 🔨 Welcome to ${namespace} + echo ❄️ Welcome to ${namespace} '';