├── .editorconfig ├── .envrc ├── .github └── workflows │ ├── checks.yml │ ├── eval.yml │ └── iso.yml ├── .gitignore ├── .vscode └── settings.json ├── COPYING ├── README.md ├── adrgen.config.yml ├── all-hosts.nix ├── cells ├── _automation │ ├── devshells.nix │ ├── devshells │ │ ├── nixos-generators │ │ │ ├── 148.patch │ │ │ └── formats │ │ │ │ └── bootstrap-iso.nix │ │ └── pre-flight-check.sh │ ├── packages.nix │ └── packages │ │ └── repl │ │ └── repl.nix ├── danie │ ├── homeConfigurations.nix │ ├── homeSuites.nix │ ├── icon.png │ └── nixosSuites.nix ├── flk │ ├── library.nix │ ├── library │ │ ├── attrsets.nix │ │ ├── categories.nix │ │ ├── compat │ │ │ ├── default.nix │ │ │ └── nixos │ │ │ │ └── default.nix │ │ ├── generators.nix │ │ ├── importers.nix │ │ ├── inputs.nix │ │ ├── modules.nix │ │ ├── nixos-lib │ │ │ ├── default.nix │ │ │ ├── hyprland.nix │ │ │ └── i3wm.nix │ │ ├── pkgs-lib │ │ │ ├── default.nix │ │ │ └── mc-motd.nix │ │ ├── sources.nix │ │ └── strings.nix │ ├── nixpkgsConfig.nix │ ├── overlays.nix │ ├── overlays │ │ ├── adguardhome.nix │ │ ├── age.nix │ │ ├── agenix.nix │ │ ├── android.nix │ │ ├── awesome.nix │ │ ├── discord.nix │ │ ├── dnscrypt-proxy.nix │ │ ├── dribbblish-dynamic-theme.nix │ │ ├── droidcam.nix │ │ ├── duf.nix │ │ ├── etebase-server.nix │ │ ├── eww.nix │ │ ├── flameshot.nix │ │ ├── fx_cast_bridge.nix │ │ ├── gamemode.nix │ │ ├── godu.nix │ │ ├── ibus.nix │ │ ├── jitsi.nix │ │ ├── light.nix │ │ ├── matrix.nix │ │ ├── microsoft-edge.nix │ │ ├── minecraft.nix │ │ ├── nwg.nix │ │ ├── ouch.nix │ │ ├── overrides.nix │ │ ├── pango-escape-text.nix │ │ ├── picom.nix │ │ ├── pmbootstrap.nix │ │ ├── python-packages.nix │ │ ├── qbittorrent.nix │ │ ├── qutebrowser.nix │ │ ├── sddm.nix │ │ ├── spotify.nix │ │ ├── tailscale.nix │ │ ├── teams.nix │ │ ├── ulauncher.nix │ │ ├── vaultwarden.nix │ │ ├── vscode-extensions.nix │ │ ├── vscode.nix │ │ ├── wayland.nix │ │ ├── weeb.nix │ │ ├── wine.nix │ │ ├── ydotool.nix │ │ ├── yubikey-agent.nix │ │ └── zoom-us.nix │ ├── packages.nix │ ├── packages │ │ ├── applications │ │ │ ├── audio │ │ │ │ └── spotify-spiced │ │ │ │ │ ├── default.nix │ │ │ │ │ └── helpers.nix │ │ │ ├── display-managers │ │ │ │ └── sddm │ │ │ │ │ ├── sddm-ignore-config-mtime.patch │ │ │ │ │ └── themes │ │ │ │ │ └── chili │ │ │ │ │ └── default.nix │ │ │ ├── misc │ │ │ │ ├── cups-pdf │ │ │ │ │ └── default.nix │ │ │ │ ├── eww │ │ │ │ │ ├── box.yuck │ │ │ │ │ ├── button.yuck │ │ │ │ │ ├── deprecated.nix │ │ │ │ │ ├── mpris.nix │ │ │ │ │ └── mpris.py │ │ │ │ ├── frece │ │ │ │ │ └── default.nix │ │ │ │ └── ulauncher │ │ │ │ │ ├── 0001-Adjust-get_data_patch-for-NixOS.patch │ │ │ │ │ ├── fix-extensions.patch │ │ │ │ │ └── fix-path.patch │ │ │ ├── networking │ │ │ │ ├── browsers │ │ │ │ │ ├── microsoft-edge │ │ │ │ │ │ ├── browser.nix │ │ │ │ │ │ └── default.nix │ │ │ │ │ └── widevine-cdm │ │ │ │ │ │ └── default.nix │ │ │ │ ├── instant-messengers │ │ │ │ │ ├── caprine │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ ├── generate.sh │ │ │ │ │ │ ├── node-composition.nix │ │ │ │ │ │ ├── node-env.nix │ │ │ │ │ │ ├── node-packages.json │ │ │ │ │ │ └── node-packages.nix │ │ │ │ │ ├── cinny │ │ │ │ │ │ ├── cinny-desktop.nix │ │ │ │ │ │ └── cinny-web-distDir.patch │ │ │ │ │ └── discord │ │ │ │ │ │ └── openasar.nix │ │ │ │ └── wgcf │ │ │ │ │ └── default.nix │ │ │ ├── video │ │ │ │ ├── adl │ │ │ │ │ └── default.nix │ │ │ │ ├── anime-downloader │ │ │ │ │ └── default.nix │ │ │ │ ├── fake-background-webcam │ │ │ │ │ └── default.nix │ │ │ │ ├── leonflix │ │ │ │ │ └── default.nix │ │ │ │ └── trackma │ │ │ │ │ └── default.nix │ │ │ ├── virtualization │ │ │ │ └── quibble │ │ │ │ │ └── default.nix │ │ │ └── window-managers │ │ │ │ ├── hyprland │ │ │ │ └── wrapper.nix │ │ │ │ ├── steamcompmgr │ │ │ │ └── default.nix │ │ │ │ ├── sway-borders │ │ │ │ ├── dont-restart-swaybg-if-the-command-hasnt-changed.patch │ │ │ │ └── sway-config-no-nix-store-references.patch │ │ │ │ └── swhkd │ │ │ │ └── default.nix │ │ ├── data │ │ │ ├── fonts │ │ │ │ ├── otf-apple │ │ │ │ │ └── default.nix │ │ │ │ └── ttf-segue-ui │ │ │ │ │ └── default.nix │ │ │ ├── icons │ │ │ │ └── whitesur-icon-theme │ │ │ │ │ └── default.nix │ │ │ ├── misc │ │ │ │ ├── arkenfox-userjs │ │ │ │ │ └── default.nix │ │ │ │ ├── dribbblish-dynamic-theme │ │ │ │ │ ├── default.nix │ │ │ │ │ └── yarn.lock │ │ │ │ ├── firefox-sidebar │ │ │ │ │ ├── default.nix │ │ │ │ │ └── userChrome.css │ │ │ │ ├── flyingfox │ │ │ │ │ ├── default.nix │ │ │ │ │ └── no-tabline.patch │ │ │ │ ├── interak │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── no-tabline.patch │ │ │ │ │ ├── urlbar-blur.css │ │ │ │ │ ├── userChrome.css │ │ │ │ │ └── userContent.css │ │ │ │ ├── plymouth-themes │ │ │ │ │ └── default.nix │ │ │ │ ├── rainfox │ │ │ │ │ └── default.nix │ │ │ │ ├── spicetify-marketplace │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── yarn-plugin-nixify.nix │ │ │ │ │ └── yarn.lock.nix │ │ │ │ ├── spicetify-themes │ │ │ │ │ └── default.nix │ │ │ │ └── user-icon │ │ │ │ │ └── default.nix │ │ │ └── themes │ │ │ │ └── whitesur-gtk-theme │ │ │ │ └── default.nix │ │ ├── development │ │ │ ├── compilers │ │ │ │ └── go │ │ │ │ │ └── 3608a87.diff │ │ │ ├── libraries │ │ │ │ ├── sciter │ │ │ │ │ └── default.nix │ │ │ │ └── wlroots │ │ │ │ │ └── wayland-keyboard-handle-kUnsafe.patch │ │ │ ├── lua-modules │ │ │ │ ├── awestore │ │ │ │ │ └── default.nix │ │ │ │ ├── bling │ │ │ │ │ └── default.nix │ │ │ │ ├── layout-machi │ │ │ │ │ └── default.nix │ │ │ │ └── lua-pam │ │ │ │ │ └── default.nix │ │ │ └── tools │ │ │ │ └── electron │ │ │ │ └── utils.nix │ │ ├── misc │ │ │ ├── drivers │ │ │ │ └── wii-u-gc-adapter │ │ │ │ │ └── default.nix │ │ │ ├── emulators │ │ │ │ └── wine │ │ │ │ │ └── winepulse-v6.10-wasapifriendly.patch │ │ │ ├── guiscrcpy │ │ │ │ └── default.nix │ │ │ ├── vscode-extensions │ │ │ │ └── cpptools │ │ │ │ │ └── package-activation-events.json │ │ │ └── yubikey-guide │ │ │ │ ├── after.html │ │ │ │ ├── before.html │ │ │ │ ├── default.nix │ │ │ │ └── header.html │ │ ├── os-specific │ │ │ └── linux │ │ │ │ ├── asusctl │ │ │ │ └── default.nix │ │ │ │ ├── supergfxctl │ │ │ │ ├── Cargo.lock │ │ │ │ ├── default.nix │ │ │ │ └── no-etc-write.patch │ │ │ │ ├── v4l2loopback-dc │ │ │ │ └── default.nix │ │ │ │ └── waydroid │ │ │ │ └── disable-waydroid-net.patch │ │ ├── servers │ │ │ ├── caddy │ │ │ │ ├── default.nix │ │ │ │ ├── gomod2nix.toml │ │ │ │ └── main.go │ │ │ ├── matrix-appservice-discord │ │ │ │ ├── generate.sh │ │ │ │ ├── package.json │ │ │ │ └── yarn-dependencies.nix │ │ │ └── tailscale │ │ │ │ └── custom-doh.patch │ │ ├── shells │ │ │ └── zsh │ │ │ │ └── pure │ │ │ │ └── default.nix │ │ └── tools │ │ │ ├── file-systems │ │ │ ├── fs-diff │ │ │ │ └── default.nix │ │ │ └── ntfs2btrfs │ │ │ │ └── default.nix │ │ │ ├── inputmethods │ │ │ ├── ibus-engines │ │ │ │ └── ibus-uniemoji │ │ │ │ │ └── allow-wrapping.patch │ │ │ └── ibus │ │ │ │ └── fix-paths.patch │ │ │ ├── misc │ │ │ ├── betterdiscord-installer │ │ │ │ └── default.nix │ │ │ ├── fx_cast │ │ │ │ ├── node-env.nix │ │ │ │ ├── node-packages.nix │ │ │ │ ├── package-lock.json │ │ │ │ └── package.json │ │ │ ├── import-gsettings │ │ │ │ └── default.nix │ │ │ ├── pmbootstrap │ │ │ │ └── doas.patch │ │ │ ├── pywalfox │ │ │ │ └── default.nix │ │ │ ├── revanced-cli │ │ │ │ └── default.nix │ │ │ └── tailscale-systray │ │ │ │ ├── default.nix │ │ │ │ └── gomod2nix.toml │ │ │ ├── networking │ │ │ ├── doggo │ │ │ │ └── default.nix │ │ │ └── playit-agent │ │ │ │ └── default.nix │ │ │ ├── security │ │ │ └── piv-agent │ │ │ │ └── default.nix │ │ │ ├── servers │ │ │ └── conduit-toolbox │ │ │ │ └── default.nix │ │ │ └── wayland │ │ │ ├── hyprland-tools │ │ │ ├── default.nix │ │ │ └── window-name-listener.nix │ │ │ ├── paper │ │ │ └── default.nix │ │ │ ├── sway-physlock │ │ │ └── default.nix │ │ │ └── swayprop │ │ │ └── default.nix │ └── pkgs.nix ├── home │ ├── homeModules.nix │ ├── homeModules │ │ └── services │ │ │ ├── misc │ │ │ ├── avizo.nix │ │ │ ├── eww-mpris.nix │ │ │ ├── eww.nix │ │ │ ├── uget-integrator.nix │ │ │ └── wayvnc.nix │ │ │ ├── swhkd.nix │ │ │ ├── swhks.nix │ │ │ └── window-managers │ │ │ └── hyprland │ │ │ └── default.nix │ ├── homeProfiles.nix │ ├── homeProfiles │ │ ├── desktop │ │ │ ├── desktop-environments │ │ │ │ └── gnome.nix │ │ │ ├── games │ │ │ │ └── minecraft.nix │ │ │ ├── login-managers │ │ │ │ └── sddm.nix │ │ │ ├── window-managers │ │ │ │ ├── awesome │ │ │ │ │ ├── configuration │ │ │ │ │ │ ├── apps.lua │ │ │ │ │ │ ├── client │ │ │ │ │ │ │ ├── buttons.lua │ │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ │ ├── keys.lua │ │ │ │ │ │ │ ├── rules.lua │ │ │ │ │ │ │ └── signals.lua │ │ │ │ │ │ ├── config.lua │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ ├── keys │ │ │ │ │ │ │ ├── global.lua │ │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ │ └── mod.lua │ │ │ │ │ │ ├── picom.conf │ │ │ │ │ │ ├── rofi │ │ │ │ │ │ │ ├── appmenu │ │ │ │ │ │ │ │ └── rofi.rasi │ │ │ │ │ │ │ └── global │ │ │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ │ ├── ddg.svg │ │ │ │ │ │ │ │ ├── google.svg │ │ │ │ │ │ │ │ ├── history.svg │ │ │ │ │ │ │ │ ├── result.svg │ │ │ │ │ │ │ │ └── suggestion.svg │ │ │ │ │ │ │ │ ├── rofi-spotlight.sh │ │ │ │ │ │ │ │ ├── rofi.rasi │ │ │ │ │ │ │ │ └── web-search.py │ │ │ │ │ │ ├── root │ │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── tags │ │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ └── user-profile │ │ │ │ │ │ │ ├── default.svg │ │ │ │ │ │ │ └── gerome.png │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── layout │ │ │ │ │ │ ├── bottom-panel.lua │ │ │ │ │ │ ├── control-center │ │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── info-center │ │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ ├── left-panel │ │ │ │ │ │ │ ├── dashboard │ │ │ │ │ │ │ │ ├── hardware-monitor.lua │ │ │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ │ │ └── quick-settings.lua │ │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ └── right-panel │ │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ │ └── panel-mode-switcher.lua │ │ │ │ │ ├── library │ │ │ │ │ │ └── json.lua │ │ │ │ │ ├── module │ │ │ │ │ │ ├── auto-start.lua │ │ │ │ │ │ ├── bling │ │ │ │ │ │ ├── brightness-osd.lua │ │ │ │ │ │ ├── dynamic-wallpaper.lua │ │ │ │ │ │ ├── exit-screen.lua │ │ │ │ │ │ ├── layout-machi │ │ │ │ │ │ ├── lockscreen.lua │ │ │ │ │ │ ├── menu.lua │ │ │ │ │ │ ├── notifications.lua │ │ │ │ │ │ ├── quake-terminal.lua │ │ │ │ │ │ ├── titlebar.lua │ │ │ │ │ │ └── volume-osd.lua │ │ │ │ │ ├── rc.lua │ │ │ │ │ ├── theme │ │ │ │ │ │ ├── default-theme.lua │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── awesome.svg │ │ │ │ │ │ │ ├── battery-charge.svg │ │ │ │ │ │ │ ├── battery-discharge.svg │ │ │ │ │ │ │ ├── brightness-7.svg │ │ │ │ │ │ │ ├── chart-areaspline.svg │ │ │ │ │ │ │ ├── close.svg │ │ │ │ │ │ │ ├── effects.svg │ │ │ │ │ │ │ ├── harddisk.svg │ │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ │ ├── layouts │ │ │ │ │ │ │ │ ├── dwindle.svg │ │ │ │ │ │ │ │ ├── floating.svg │ │ │ │ │ │ │ │ ├── fullscreen.svg │ │ │ │ │ │ │ │ ├── max.svg │ │ │ │ │ │ │ │ └── tile.svg │ │ │ │ │ │ │ ├── lock.svg │ │ │ │ │ │ │ ├── logout.svg │ │ │ │ │ │ │ ├── magnify.svg │ │ │ │ │ │ │ ├── memory.svg │ │ │ │ │ │ │ ├── plus.svg │ │ │ │ │ │ │ ├── power-sleep.svg │ │ │ │ │ │ │ ├── power.svg │ │ │ │ │ │ │ ├── restart.svg │ │ │ │ │ │ │ ├── ship-wheel.svg │ │ │ │ │ │ │ ├── tag-list │ │ │ │ │ │ │ │ ├── close-small.svg │ │ │ │ │ │ │ │ ├── development.svg │ │ │ │ │ │ │ │ ├── file-manager.svg │ │ │ │ │ │ │ │ ├── games.svg │ │ │ │ │ │ │ │ ├── graphics.svg │ │ │ │ │ │ │ │ ├── menu.svg │ │ │ │ │ │ │ │ ├── menu2.svg │ │ │ │ │ │ │ │ ├── multimedia.svg │ │ │ │ │ │ │ │ ├── sandbox.svg │ │ │ │ │ │ │ │ ├── social.svg │ │ │ │ │ │ │ │ ├── terminal.svg │ │ │ │ │ │ │ │ ├── text-editor.svg │ │ │ │ │ │ │ │ └── web-browser.svg │ │ │ │ │ │ │ ├── thermometer.svg │ │ │ │ │ │ │ ├── titlebar │ │ │ │ │ │ │ │ ├── blocks │ │ │ │ │ │ │ │ │ ├── close_focus.svg │ │ │ │ │ │ │ │ │ ├── close_focus_hover.svg │ │ │ │ │ │ │ │ │ ├── close_normal.svg │ │ │ │ │ │ │ │ │ ├── close_normal_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_active.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_active.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_inactive.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_active.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_active.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_inactive.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── minimize_focus.svg │ │ │ │ │ │ │ │ │ ├── minimize_focus_hover.svg │ │ │ │ │ │ │ │ │ ├── minimize_normal.svg │ │ │ │ │ │ │ │ │ ├── minimize_normal_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_active.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_active.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_inactive.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_active.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_normal_active.svg │ │ │ │ │ │ │ │ │ ├── sticky_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_normal_inactive.svg │ │ │ │ │ │ │ │ │ └── sticky_normal_inactive_hover.svg │ │ │ │ │ │ │ │ ├── lines │ │ │ │ │ │ │ │ │ ├── close_focus.svg │ │ │ │ │ │ │ │ │ ├── close_focus_hover.svg │ │ │ │ │ │ │ │ │ ├── close_normal.svg │ │ │ │ │ │ │ │ │ ├── close_normal_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_active.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_active.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_inactive.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_active.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_active.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_inactive.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── minimize_focus.svg │ │ │ │ │ │ │ │ │ ├── minimize_focus_hover.svg │ │ │ │ │ │ │ │ │ ├── minimize_normal.svg │ │ │ │ │ │ │ │ │ ├── minimize_normal_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_active.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_active.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_inactive.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_active.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_normal_active.svg │ │ │ │ │ │ │ │ │ ├── sticky_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_normal_inactive.svg │ │ │ │ │ │ │ │ │ └── sticky_normal_inactive_hover.svg │ │ │ │ │ │ │ │ ├── stoplight │ │ │ │ │ │ │ │ │ ├── close_focus.svg │ │ │ │ │ │ │ │ │ ├── close_focus_hover.svg │ │ │ │ │ │ │ │ │ ├── close_normal.svg │ │ │ │ │ │ │ │ │ ├── close_normal_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_active.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_active.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_inactive.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_active.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_active.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_inactive.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── minimize_focus.svg │ │ │ │ │ │ │ │ │ ├── minimize_focus_hover.svg │ │ │ │ │ │ │ │ │ ├── minimize_normal.svg │ │ │ │ │ │ │ │ │ ├── minimize_normal_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_active.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── ontop_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_active.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_inactive.svg │ │ │ │ │ │ │ │ │ ├── ontop_normal_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_active.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── sticky_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_normal_active.svg │ │ │ │ │ │ │ │ │ ├── sticky_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── sticky_normal_inactive.svg │ │ │ │ │ │ │ │ │ └── sticky_normal_inactive_hover.svg │ │ │ │ │ │ │ │ └── win10 │ │ │ │ │ │ │ │ │ ├── close_focus.svg │ │ │ │ │ │ │ │ │ ├── close_normal.svg │ │ │ │ │ │ │ │ │ ├── close_normal_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_active.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── floating_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_active.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_inactive.svg │ │ │ │ │ │ │ │ │ ├── floating_normal_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_active.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_active_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_inactive.svg │ │ │ │ │ │ │ │ │ ├── maximized_focus_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_active.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_active_hover.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_inactive.svg │ │ │ │ │ │ │ │ │ ├── maximized_normal_inactive_hover.svg │ │ │ │ │ │ │ │ │ ├── minimize_focus.svg │ │ │ │ │ │ │ │ │ ├── minimize_focus_hover.svg │ │ │ │ │ │ │ │ │ ├── minimize_normal.svg │ │ │ │ │ │ │ │ │ └── minimize_normal_hover.svg │ │ │ │ │ │ │ ├── toggled-off.svg │ │ │ │ │ │ │ ├── toggled-on.svg │ │ │ │ │ │ │ └── volume-high.svg │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ ├── linear-theme │ │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ └── wallpapers │ │ │ │ │ │ │ ├── AUTHORS │ │ │ │ │ │ │ ├── locksreen-bg.jpg │ │ │ │ │ │ │ ├── midnight-wallpaper.jpg │ │ │ │ │ │ │ ├── morning-wallpaper.jpg │ │ │ │ │ │ │ ├── night-wallpaper.jpg │ │ │ │ │ │ │ └── noon-wallpaper.jpg │ │ │ │ │ ├── utilities │ │ │ │ │ │ ├── profile-image │ │ │ │ │ │ └── snap │ │ │ │ │ └── widget │ │ │ │ │ │ ├── airplane-mode │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── airplane-mode-off.svg │ │ │ │ │ │ │ └── airplane-mode.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── battery │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── battery-alert-red.svg │ │ │ │ │ │ │ ├── battery-alert.svg │ │ │ │ │ │ │ ├── battery-charging-10.svg │ │ │ │ │ │ │ ├── battery-charging-20.svg │ │ │ │ │ │ │ ├── battery-charging-30.svg │ │ │ │ │ │ │ ├── battery-charging-50.svg │ │ │ │ │ │ │ ├── battery-charging-60.svg │ │ │ │ │ │ │ ├── battery-charging-80.svg │ │ │ │ │ │ │ ├── battery-charging-90.svg │ │ │ │ │ │ │ ├── battery-discharging-100.svg │ │ │ │ │ │ │ ├── battery-discharging-20.svg │ │ │ │ │ │ │ ├── battery-discharging-30.svg │ │ │ │ │ │ │ ├── battery-discharging-50.svg │ │ │ │ │ │ │ ├── battery-discharging-60.svg │ │ │ │ │ │ │ ├── battery-discharging-80.svg │ │ │ │ │ │ │ ├── battery-discharging-90.svg │ │ │ │ │ │ │ ├── battery-fully-charged.svg │ │ │ │ │ │ │ ├── battery-unknown.svg │ │ │ │ │ │ │ └── battery.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── blue-light │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── blue-light-off.svg │ │ │ │ │ │ │ └── blue-light.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── bluetooth-toggle │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── bluetooth-off.svg │ │ │ │ │ │ │ ├── bluetooth.svg │ │ │ │ │ │ │ └── loading.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── bluetooth │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── bluetooth-connected.svg │ │ │ │ │ │ │ ├── bluetooth-off.svg │ │ │ │ │ │ │ ├── bluetooth-scanning.svg │ │ │ │ │ │ │ ├── bluetooth.svg │ │ │ │ │ │ │ └── loading.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── blur-slider │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── blur-toggle │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ └── effects-off.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── brightness-slider │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── clickable-container │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── clock │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── control-center-switch │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ └── control-center.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── control-center-toggle │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ └── control-center.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── cpu-meter │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── dont-disturb │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── dont-disturb.svg │ │ │ │ │ │ │ └── notify.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── email │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── email-1.svg │ │ │ │ │ │ │ ├── email-2.svg │ │ │ │ │ │ │ ├── email-3.svg │ │ │ │ │ │ │ ├── email-4.svg │ │ │ │ │ │ │ ├── email-5.svg │ │ │ │ │ │ │ ├── email-6.svg │ │ │ │ │ │ │ ├── email-7.svg │ │ │ │ │ │ │ ├── email-8.svg │ │ │ │ │ │ │ ├── email-9+.svg │ │ │ │ │ │ │ ├── email-9.svg │ │ │ │ │ │ │ ├── email-unread.svg │ │ │ │ │ │ │ └── email.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── end-session │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── global-search │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── harddrive-meter │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── info-center-toggle │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ └── info-center.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── layoutbox │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── mpd │ │ │ │ │ │ ├── content │ │ │ │ │ │ │ ├── album-cover.lua │ │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ │ ├── media-buttons.lua │ │ │ │ │ │ │ └── song-info.lua │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── next.svg │ │ │ │ │ │ │ ├── pause.svg │ │ │ │ │ │ │ ├── play.svg │ │ │ │ │ │ │ ├── prev.svg │ │ │ │ │ │ │ └── vinyl.svg │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ └── mpd-music-updater.lua │ │ │ │ │ │ ├── network │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── airplane-mode-off.svg │ │ │ │ │ │ │ ├── airplane-mode.svg │ │ │ │ │ │ │ ├── loading.svg │ │ │ │ │ │ │ ├── wifi-off.svg │ │ │ │ │ │ │ ├── wifi-strength-1-alert.svg │ │ │ │ │ │ │ ├── wifi-strength-1-lock.svg │ │ │ │ │ │ │ ├── wifi-strength-1.svg │ │ │ │ │ │ │ ├── wifi-strength-2-alert.svg │ │ │ │ │ │ │ ├── wifi-strength-2-lock.svg │ │ │ │ │ │ │ ├── wifi-strength-2.svg │ │ │ │ │ │ │ ├── wifi-strength-3-alert.svg │ │ │ │ │ │ │ ├── wifi-strength-3-lock.svg │ │ │ │ │ │ │ ├── wifi-strength-3.svg │ │ │ │ │ │ │ ├── wifi-strength-4-alert.svg │ │ │ │ │ │ │ ├── wifi-strength-4-lock.svg │ │ │ │ │ │ │ ├── wifi-strength-4.svg │ │ │ │ │ │ │ ├── wifi-strength-alert-outline.svg │ │ │ │ │ │ │ ├── wifi-strength-alert.svg │ │ │ │ │ │ │ ├── wifi-strength-empty.svg │ │ │ │ │ │ │ ├── wifi-strength-lock-outline.svg │ │ │ │ │ │ │ ├── wifi-strength-off-outline.svg │ │ │ │ │ │ │ ├── wifi-strength-off.svg │ │ │ │ │ │ │ ├── wifi-strength-outline.svg │ │ │ │ │ │ │ ├── wifi.svg │ │ │ │ │ │ │ ├── wired-alert.svg │ │ │ │ │ │ │ ├── wired-off.svg │ │ │ │ │ │ │ └── wired.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── notif-center │ │ │ │ │ │ ├── build-notifbox │ │ │ │ │ │ │ ├── empty-notifbox.lua │ │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ │ ├── notifbox-builder.lua │ │ │ │ │ │ │ ├── notifbox-geometry.lua │ │ │ │ │ │ │ ├── notifbox-scroller.lua │ │ │ │ │ │ │ └── notifbox-ui-elements.lua │ │ │ │ │ │ ├── clear-all │ │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── clear_all.svg │ │ │ │ │ │ │ ├── delete.svg │ │ │ │ │ │ │ ├── empty-notification.svg │ │ │ │ │ │ │ └── new-notif.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── open-default-app │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── package-updater │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── package-up.svg │ │ │ │ │ │ │ └── package.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── ram-meter │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── screen-recorder │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── audio.svg │ │ │ │ │ │ │ ├── back.svg │ │ │ │ │ │ │ ├── close-screen.svg │ │ │ │ │ │ │ ├── recorder-countdown.svg │ │ │ │ │ │ │ ├── recorder-off.svg │ │ │ │ │ │ │ ├── recorder-on.svg │ │ │ │ │ │ │ ├── recording-button.svg │ │ │ │ │ │ │ ├── settings.svg │ │ │ │ │ │ │ └── start-recording-button.svg │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ ├── screen-recorder-config.lua │ │ │ │ │ │ ├── screen-recorder-scripts.lua │ │ │ │ │ │ ├── screen-recorder-ui-backend.lua │ │ │ │ │ │ └── screen-recorder-ui.lua │ │ │ │ │ │ ├── search-apps │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ └── app-launcher.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── tag-list │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── task-list │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── temperature-meter │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── tray-toggle │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── left-arrow.svg │ │ │ │ │ │ │ └── right-arrow.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── user-profile │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── volume-slider │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ ├── weather │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── d_rain.svg │ │ │ │ │ │ │ ├── dbroken_clouds.svg │ │ │ │ │ │ │ ├── dfew_clouds.svg │ │ │ │ │ │ │ ├── dmist.svg │ │ │ │ │ │ │ ├── dscattered_clouds.svg │ │ │ │ │ │ │ ├── dshower_rain.svg │ │ │ │ │ │ │ ├── dthunderstorm.svg │ │ │ │ │ │ │ ├── moon_icon.svg │ │ │ │ │ │ │ ├── n_rain.svg │ │ │ │ │ │ │ ├── nbroken_clouds.svg │ │ │ │ │ │ │ ├── nfew_clouds.svg │ │ │ │ │ │ │ ├── nmist.svg │ │ │ │ │ │ │ ├── nscattered_clouds.svg │ │ │ │ │ │ │ ├── nshower_rain.svg │ │ │ │ │ │ │ ├── nthunderstorm.svg │ │ │ │ │ │ │ ├── refresh.svg │ │ │ │ │ │ │ ├── snow.svg │ │ │ │ │ │ │ ├── sun_icon.svg │ │ │ │ │ │ │ ├── sunrise.svg │ │ │ │ │ │ │ ├── sunset.svg │ │ │ │ │ │ │ └── weather-error.svg │ │ │ │ │ │ └── init.lua │ │ │ │ │ │ └── xdg-folders │ │ │ │ │ │ ├── documents.lua │ │ │ │ │ │ ├── downloads.lua │ │ │ │ │ │ ├── home.lua │ │ │ │ │ │ ├── icons │ │ │ │ │ │ ├── folder-documents.svg │ │ │ │ │ │ ├── folder-download.svg │ │ │ │ │ │ ├── folder-pictures.svg │ │ │ │ │ │ ├── folder-videos.svg │ │ │ │ │ │ ├── no.svg │ │ │ │ │ │ ├── open-folder.svg │ │ │ │ │ │ ├── user-home.svg │ │ │ │ │ │ ├── user-trash-empty.svg │ │ │ │ │ │ ├── user-trash-full.svg │ │ │ │ │ │ └── yes.svg │ │ │ │ │ │ ├── init.lua │ │ │ │ │ │ ├── pictures.lua │ │ │ │ │ │ ├── trash.lua │ │ │ │ │ │ └── videos.lua │ │ │ │ ├── hyprland │ │ │ │ │ └── default.nix │ │ │ │ └── sway │ │ │ │ │ ├── assets │ │ │ │ │ └── shadows.png │ │ │ │ │ ├── base.nix │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── io.nix │ │ │ │ │ ├── keybindings │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── games.nix │ │ │ │ │ ├── screenshot.nix │ │ │ │ │ ├── windows.nix │ │ │ │ │ └── workspaces.nix │ │ │ │ │ ├── scripts │ │ │ │ │ ├── bemenu-run.nix │ │ │ │ │ ├── bemenu-screenshare.nix │ │ │ │ │ ├── bemenu-unicode.nix │ │ │ │ │ ├── clipboard-daemon.nix │ │ │ │ │ ├── gamecheat.nix │ │ │ │ │ ├── screenshare.nix │ │ │ │ │ ├── swayfader.py │ │ │ │ │ ├── wal-set.nix │ │ │ │ │ └── workspaces.nix │ │ │ │ │ ├── startup.nix │ │ │ │ │ └── window-commands.nix │ │ │ └── xdg.nix │ │ ├── gui │ │ │ ├── gtk.nix │ │ │ └── platforms │ │ │ │ └── wayland.nix │ │ ├── misc │ │ │ └── persistence.nix │ │ ├── programs │ │ │ ├── alacritty.nix │ │ │ ├── chromium.nix │ │ │ ├── direnv.nix │ │ │ ├── edge.nix │ │ │ ├── editors │ │ │ │ └── neovim.nix │ │ │ ├── eww │ │ │ │ ├── default.nix │ │ │ │ ├── eww.scss │ │ │ │ ├── eww.yuck │ │ │ │ └── templates │ │ │ │ │ └── mpris │ │ │ │ │ ├── box.yuck │ │ │ │ │ └── button.yuck │ │ │ ├── firefox │ │ │ │ ├── arkenfox.nix │ │ │ │ ├── base.nix │ │ │ │ ├── disable-rfp.nix │ │ │ │ ├── fx_cast.nix │ │ │ │ ├── overrides.nix │ │ │ │ ├── pywalfox.nix │ │ │ │ ├── settings.nix │ │ │ │ └── sidebar.nix │ │ │ ├── git.nix │ │ │ ├── gpg.nix │ │ │ ├── hyprpaper.nix │ │ │ ├── jetbrains-idea.nix │ │ │ ├── nwg-launchers │ │ │ │ ├── bar.nix │ │ │ │ ├── bar │ │ │ │ │ ├── icons │ │ │ │ │ │ ├── hibernate.svg │ │ │ │ │ │ ├── lock.svg │ │ │ │ │ │ ├── logout.svg │ │ │ │ │ │ ├── reboot.svg │ │ │ │ │ │ ├── shutdown.svg │ │ │ │ │ │ └── suspend.svg │ │ │ │ │ └── style.css │ │ │ │ ├── default.nix │ │ │ │ ├── dmenu.nix │ │ │ │ └── dmenu │ │ │ │ │ └── style.css │ │ │ ├── obs-studio.nix │ │ │ ├── oguri │ │ │ │ └── config │ │ │ ├── rofi │ │ │ │ └── appmenu │ │ │ │ │ └── rofi.rasi │ │ │ ├── swaylock │ │ │ │ ├── default.nix │ │ │ │ └── lock.svg │ │ │ ├── vscode │ │ │ │ ├── default.nix │ │ │ │ └── user-settings.nix │ │ │ ├── vscodium.nix │ │ │ ├── waybar │ │ │ │ ├── default.nix │ │ │ │ ├── modules │ │ │ │ │ ├── backlight.nix │ │ │ │ │ ├── battery.nix │ │ │ │ │ ├── clock.nix │ │ │ │ │ ├── cpu.nix │ │ │ │ │ ├── idle-inhibitor.nix │ │ │ │ │ ├── memory.nix │ │ │ │ │ ├── network.nix │ │ │ │ │ ├── power.nix │ │ │ │ │ ├── pulseaudio.nix │ │ │ │ │ ├── tray.nix │ │ │ │ │ └── workspace.nix │ │ │ │ └── style.css │ │ │ ├── wayland.nix │ │ │ ├── wezterm.nix │ │ │ ├── winapps.nix │ │ │ └── wofi │ │ │ │ └── style.css │ │ └── services │ │ │ ├── avizo.nix │ │ │ ├── gammastep.nix │ │ │ ├── kanshi.nix │ │ │ ├── mako.nix │ │ │ ├── swayidle.nix │ │ │ ├── swhkd.nix │ │ │ ├── swhks.nix │ │ │ ├── udiskie.nix │ │ │ ├── uget.nix │ │ │ └── wayvnc.nix │ └── homeSuites.nix ├── nixos │ ├── nixosModules.nix │ ├── nixosModules │ │ ├── hm-system-defaults.nix │ │ ├── nix-path.nix │ │ ├── nixos-system-defaults.nix │ │ ├── security │ │ │ └── mitigations.nix │ │ ├── services │ │ │ ├── games │ │ │ │ ├── gamemode.nix │ │ │ │ └── minecraft-server.nix │ │ │ ├── hardware │ │ │ │ ├── asusd.nix │ │ │ │ ├── supergfxd.nix │ │ │ │ └── wii-u-gc-adapter.nix │ │ │ ├── misc │ │ │ │ ├── asusd.nix │ │ │ │ ├── atuin-server.nix │ │ │ │ └── swhkd.nix │ │ │ ├── networking │ │ │ │ ├── coredns.nix │ │ │ │ ├── dcompass.nix │ │ │ │ └── duckdns.nix │ │ │ ├── printing │ │ │ │ └── cups-pdf.nix │ │ │ ├── security │ │ │ │ └── piv-agent.nix │ │ │ └── torrent │ │ │ │ └── qbittorrent.nix │ │ └── system │ │ │ └── boot │ │ │ └── persistence.nix │ ├── nixosProfiles.nix │ ├── nixosProfiles │ │ ├── boot │ │ │ ├── plymouth.nix │ │ │ ├── relative-token-path.patch │ │ │ ├── secure │ │ │ │ ├── db.crt │ │ │ │ ├── db.key │ │ │ │ └── default.nix │ │ │ └── systemd-boot │ │ │ │ ├── stage1.nix │ │ │ │ └── stage2.nix │ │ ├── desktop │ │ │ ├── desktop-managers │ │ │ │ └── gnome.nix │ │ │ ├── drivers.nix │ │ │ ├── gaming │ │ │ │ └── default.nix │ │ │ ├── login-managers │ │ │ │ ├── gdm.nix │ │ │ │ ├── greetd │ │ │ │ │ ├── gtkgreet │ │ │ │ │ │ ├── default.nix │ │ │ │ │ │ └── style.css │ │ │ │ │ └── tuigreet.nix │ │ │ │ └── sddm.nix │ │ │ ├── pipewire.nix │ │ │ ├── window-managers │ │ │ │ ├── awesome.nix │ │ │ │ └── hyprland.nix │ │ │ └── xserver.nix │ │ ├── documentation │ │ │ └── disabled.nix │ │ ├── env │ │ │ ├── cpp.nix │ │ │ └── python │ │ │ │ ├── default.nix │ │ │ │ └── ptconfig.py │ │ ├── file-systems │ │ │ ├── base.nix │ │ │ └── btrfs.nix │ │ ├── fonts │ │ │ ├── fancy.nix │ │ │ └── minimal.nix │ │ ├── gui │ │ │ ├── gtk.nix │ │ │ ├── ibus.nix │ │ │ ├── misc.nix │ │ │ ├── picom.nix │ │ │ ├── platforms │ │ │ │ ├── wayland.nix │ │ │ │ ├── x11.nix │ │ │ │ └── xwayland.nix │ │ │ └── themes │ │ │ │ └── sefia │ │ │ │ ├── default.nix │ │ │ │ └── wallpaper.jpg │ │ ├── hardware │ │ │ ├── argonone.nix │ │ │ ├── firmware.nix │ │ │ ├── laptop.nix │ │ │ ├── mouse.nix │ │ │ ├── peripherals │ │ │ │ ├── android.nix │ │ │ │ ├── default.nix │ │ │ │ └── ios.nix │ │ │ └── printing.nix │ │ ├── i18n │ │ │ └── vi-vn.nix │ │ ├── networking │ │ │ ├── base.nix │ │ │ ├── chromecast.nix │ │ │ ├── dns │ │ │ │ ├── base.nix │ │ │ │ └── systemd-resolved.nix │ │ │ ├── playit.nix │ │ │ ├── systemd-networkd.nix │ │ │ ├── tailscale.nix │ │ │ ├── torrent.nix │ │ │ └── zerotier.nix │ │ ├── programs │ │ │ ├── academic.nix │ │ │ ├── audio.nix │ │ │ ├── base.nix │ │ │ ├── chill │ │ │ │ ├── reading.nix │ │ │ │ ├── spotify.nix │ │ │ │ ├── watching.nix │ │ │ │ └── weebs.nix │ │ │ ├── compression.nix │ │ │ ├── develop.nix │ │ │ ├── drawing.nix │ │ │ ├── editors │ │ │ │ └── neovim.nix │ │ │ ├── file-sharing.nix │ │ │ ├── file-systems.nix │ │ │ ├── gamemode.nix │ │ │ ├── git.nix │ │ │ ├── gnome.nix │ │ │ ├── gnupg.nix │ │ │ ├── graphical.nix │ │ │ ├── im.nix │ │ │ ├── media.nix │ │ │ ├── meeting.nix │ │ │ ├── misc.nix │ │ │ ├── networking.nix │ │ │ ├── nix │ │ │ │ ├── default.nix │ │ │ │ └── substituters │ │ │ │ │ ├── dan-cfg.nix │ │ │ │ │ ├── flk.nix │ │ │ │ │ ├── nix-community.nix │ │ │ │ │ ├── nix-gaming.nix │ │ │ │ │ ├── nixpkgs-wayland.nix │ │ │ │ │ └── nrdxp.nix │ │ │ ├── qt.nix │ │ │ ├── qutebrowser │ │ │ │ ├── config.py │ │ │ │ └── default.nix │ │ │ ├── remote.nix │ │ │ ├── rpi.nix │ │ │ ├── shells │ │ │ │ ├── bash │ │ │ │ │ ├── default.nix │ │ │ │ │ └── starship.toml │ │ │ │ ├── env.nix │ │ │ │ └── zsh │ │ │ │ │ ├── cdr │ │ │ │ │ ├── cdr-skim.zsh │ │ │ │ │ └── cdr.zsh │ │ │ │ │ ├── default.nix │ │ │ │ │ ├── env.nix │ │ │ │ │ ├── functions │ │ │ │ │ ├── chext │ │ │ │ │ ├── exa │ │ │ │ │ ├── fakecam │ │ │ │ │ ├── i │ │ │ │ │ ├── man │ │ │ │ │ ├── mcd │ │ │ │ │ ├── newrepo │ │ │ │ │ ├── rg │ │ │ │ │ └── rnm │ │ │ │ │ ├── p10k │ │ │ │ │ ├── p10k-linux.zsh │ │ │ │ │ └── p10k.zsh │ │ │ │ │ ├── shell-init.nix │ │ │ │ │ └── zshrc │ │ │ ├── terminal.nix │ │ │ ├── vpn.nix │ │ │ ├── wine.nix │ │ │ └── yubikey.nix │ │ ├── security │ │ │ ├── disable-mitigations.nix │ │ │ ├── doas.nix │ │ │ └── hardened.nix │ │ ├── services │ │ │ ├── adguardhome.nix │ │ │ ├── aria2.nix │ │ │ ├── base.nix │ │ │ ├── caddy │ │ │ │ ├── Caddyfile │ │ │ │ └── default.nix │ │ │ ├── calibre-server.nix │ │ │ ├── calibre-web.nix │ │ │ ├── cinny.nix │ │ │ ├── dcompass │ │ │ │ ├── default.nix │ │ │ │ └── fb-resolver.txt │ │ │ ├── dnscrypt-proxy2.nix │ │ │ ├── etebase-server.nix │ │ │ ├── fail2ban.nix │ │ │ ├── grafana.nix │ │ │ ├── jitsi.nix │ │ │ ├── logrotate.nix │ │ │ ├── matrix-conduit.nix │ │ │ ├── matrix-identity.nix │ │ │ ├── matrix.nix │ │ │ ├── minecraft.nix │ │ │ ├── netdata.nix │ │ │ ├── openssh.nix │ │ │ ├── peerix.nix │ │ │ ├── physlock.nix │ │ │ ├── postgresql.nix │ │ │ ├── rss-bridge.nix │ │ │ ├── spotifyd.nix │ │ │ ├── swhkd.nix │ │ │ ├── udev │ │ │ │ └── game-controller.nix │ │ │ ├── vaultwarden.nix │ │ │ ├── wayvnc.nix │ │ │ └── wkd │ │ │ │ ├── default.nix │ │ │ │ └── openpgpkey │ │ │ │ └── c-137.me │ │ │ │ ├── hu │ │ │ │ └── gfjfyuhqdt4tk3fzmnx9dbqmymab1j5g │ │ │ │ └── policy │ │ ├── system │ │ │ ├── encryption │ │ │ │ ├── manual.nix │ │ │ │ └── tpm.nix │ │ │ └── persistence.nix │ │ ├── users │ │ │ ├── alita.nix │ │ │ ├── nixos.nix │ │ │ └── root.nix │ │ └── virtualisation │ │ │ ├── container.nix │ │ │ ├── libvirt.nix │ │ │ ├── waydroid.nix │ │ │ └── windows.nix │ └── nixosSuites.nix ├── pik2 │ ├── colmenaConfigurations.nix │ ├── hardwareProfiles.nix │ ├── nixosConfigurations.nix │ └── nixosSuites.nix ├── rog-bootstrap │ ├── colmenaConfigurations.nix │ ├── hardwareProfiles.nix │ ├── nixosConfigurations.nix │ └── nixosSuites.nix └── themachine │ ├── colmenaConfigurations.nix │ ├── diskfmt.bash │ ├── hardwareProfiles.nix │ ├── nixosConfigurations.nix │ └── nixosSuites.nix ├── config └── hosts.nix ├── docs ├── architecture-decisions │ ├── minecraft-mods.md │ └── private-hosting.md ├── eye-candies.md ├── nixos │ └── modules.md ├── overlays.md ├── packages.md ├── todos.md └── tree.md ├── flake.lock ├── flake.nix ├── lock ├── flake.lock └── flake.nix ├── secrets ├── home │ ├── profiles │ │ ├── accounts.age │ │ └── wayvnc │ │ │ ├── cert.pem.age │ │ │ ├── config.age │ │ │ └── key.pem.age │ └── users │ │ ├── alita.age │ │ ├── danie.age │ │ └── root.age ├── nixos │ ├── hosts │ │ └── oldkey.sec.age │ └── profiles │ │ ├── cloud │ │ ├── caddy.age │ │ ├── calibre-server │ │ │ └── users.sqlite.age │ │ ├── duckdns.age │ │ ├── etebase-server │ │ │ ├── secret.txt.age │ │ │ └── superuser.env.age │ │ ├── minecraft │ │ │ ├── ops.age │ │ │ └── whitelist.age │ │ ├── peerix │ │ │ ├── pik2.age │ │ │ └── themachine.age │ │ ├── spotify.age │ │ └── vaultwarden.age │ │ └── network │ │ └── tailscale │ │ └── custom-doh.age ├── secrets.nix └── ssh │ ├── age-yubikey-identity-a8555007.txt │ ├── alita.pub │ ├── danie.pub │ ├── pik2.pub │ └── themachine.pub └── treefmt.toml /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | end_of_line = lf 6 | insert_final_newline = true 7 | trim_trailing_whitespace = true 8 | charset = utf-8 9 | indent_style = space 10 | indent_size = 2 11 | 12 | # Ignore diffs/patches 13 | [*.{diff,patch,lock}] 14 | end_of_line = unset 15 | insert_final_newline = unset 16 | trim_trailing_whitespace = unset 17 | indent_size = unset 18 | 19 | [{.*,secrets}/**] 20 | end_of_line = unset 21 | insert_final_newline = unset 22 | trim_trailing_whitespace = unset 23 | charset = unset 24 | indent_style = unset 25 | indent_size = unset 26 | 27 | [*.py] 28 | indent_size = 4 29 | 30 | [*.md] 31 | max_line_length = off 32 | trim_trailing_whitespace = false 33 | 34 | [*.lua] 35 | indent_style = space 36 | indent_size = 4 37 | -------------------------------------------------------------------------------- /.envrc: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # SPDX-FileCopyrightText: 2022 David Arnold 4 | # SPDX-FileCopyrightText: 2022 Kevin Amado 5 | # 6 | # SPDX-License-Identifier: Unlicense 7 | 8 | source "$( 9 | nix eval \ 10 | --no-update-lock-file \ 11 | --no-write-lock-file \ 12 | --no-warn-dirty \ 13 | --accept-flake-config \ 14 | .#__std.direnv_lib 2>/dev/null \ 15 | || nix eval .#__std.direnv_lib # show the errors 16 | )" 17 | use std cells //_automation/devshells:default 18 | -------------------------------------------------------------------------------- /.github/workflows/eval.yml: -------------------------------------------------------------------------------- 1 | name: Try eval 2 | on: 3 | push: 4 | branches: 5 | - main 6 | - trying 7 | - staging 8 | jobs: 9 | try-eval: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v3.0.2 13 | 14 | - name: Install latest nix 15 | uses: cachix/install-nix-action@v17 16 | with: 17 | extra_nix_config: | 18 | substituters = https://cache.nixos.org https://nix-community.cachix.org https://dan-cfg.cachix.org 19 | trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= dan-cfg.cachix.org-1:elcVKJWjnDs1zzZ/Fs93FLOFS13OQx1z0TxP0Q7PH9o= 20 | nix_path: nixpkgs=channel:nixos-unstable 21 | 22 | - name: Setup nix drv cache 23 | uses: cachix/cachix-action@v10 24 | with: 25 | name: dan-cfg 26 | authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' 27 | 28 | - name: Quick eval 29 | run: nix develop .#devShell.x86_64-linux --show-trace --print-build-logs --command evalnix 30 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .direnv 2 | doc/index.html 3 | 4 | # Result of flk commands 5 | vm 6 | iso 7 | doi 8 | 9 | pkgs/_sources/.shake* 10 | 11 | # SPDX-FileCopyrightText: 2022 David Arnold 12 | # SPDX-FileCopyrightText: 2022 Kevin Amado 13 | # 14 | # SPDX-License-Identifier: Unlicense 15 | 16 | .std 17 | /**/flake.lock 18 | result 19 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "nixEnvSelector.nixFile": "${workspaceRoot}/devshell/flake.nix", 3 | "python.linting.pylintEnabled": false, 4 | "python.linting.flake8Enabled": true, 5 | "python.linting.enabled": true 6 | } -------------------------------------------------------------------------------- /COPYING: -------------------------------------------------------------------------------- 1 | Permission is hereby granted, free of charge, to any person obtaining 2 | a copy of this software and associated documentation files (the 3 | "Software"), to deal in the Software without restriction, including 4 | without limitation the rights to use, copy, modify, merge, publish, 5 | distribute, sublicense, and/or sell copies of the Software, and to 6 | permit persons to whom the Software is furnished to do so, subject to 7 | the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be 10 | included in all copies or substantial portions of the Software. 11 | 12 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 13 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 14 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 15 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 16 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 17 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 18 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 19 | -------------------------------------------------------------------------------- /adrgen.config.yml: -------------------------------------------------------------------------------- 1 | default_meta: [] 2 | default_status: proposed 3 | directory: docs/architecture-decisions 4 | id_digit_number: 4 5 | supported_statuses: 6 | - proposed 7 | - accepted 8 | - rejected 9 | - superseded 10 | - amended 11 | - deprecated 12 | template_file: docs/architecture-decisions/adr_template.md 13 | -------------------------------------------------------------------------------- /cells/_automation/devshells/pre-flight-check.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # SPDX-FileCopyrightText: 2022 The Standard Authors 4 | # SPDX-FileCopyrightText: 2022 Kevin Amado 5 | # 6 | # SPDX-License-Identifier: Unlicense 7 | 8 | if git rev-parse --verify HEAD >/dev/null 2>&1; then 9 | against=HEAD 10 | else 11 | # Initial commit: diff against an empty tree object 12 | against=$(${git}/bin/git hash-object -t tree /dev/null) 13 | fi 14 | 15 | diff="git diff-index --name-only --cached $against --diff-filter d" 16 | all_files=($($diff)) 17 | 18 | # Format the entire tree. 19 | treefmt 20 | 21 | # check editorconfig 22 | if ((${#all_files[@]} != 0)); then 23 | editorconfig-checker -- "${all_files[@]}" 24 | fi 25 | 26 | if [[ $? != '0' ]]; then 27 | printf "%b\n" \ 28 | "\nCode is not aligned with .editorconfig" \ 29 | "Review the output and commit your fixes" >&2 30 | exit 1 31 | fi 32 | -------------------------------------------------------------------------------- /cells/_automation/packages.nix: -------------------------------------------------------------------------------- 1 | { 2 | flkup = inputs.nixpkgs.writeShellScriptBin "flkup" '' 3 | if [[ -n "$@" ]]; then 4 | nix flake lock --update-input "$@" "$PRJ_ROOT" 5 | else 6 | nix flake update "$PRJ_ROOT" 7 | fi 8 | ''; 9 | 10 | repl = inputs.nixpkgs.writeShellScriptBin "repl" '' 11 | if [ -z "$1" ]; then 12 | nix repl --argstr host "$HOST" --argstr flakePath "$PRJ_ROOT" --file ${./packages/repl/repl.nix} 13 | else 14 | nix repl --argstr host "$HOST" --argstr flakePath $(readlink -f $1 | sed 's|/flake.nix||') --file ${./packages/repl/repl.nix} ''${@: 1} 15 | fi 16 | ''; 17 | } 18 | -------------------------------------------------------------------------------- /cells/_automation/packages/repl/repl.nix: -------------------------------------------------------------------------------- 1 | # Adapted on 3rd of July 2021 from 2 | # https://github.com/gytis-ivaskevicius/flake-utils-plus/blob/438316a7b7d798bff326c97da8e2b15a56c7657e/lib/repl.nix 3 | { 4 | flakePath, 5 | host, 6 | }: let 7 | Flake = 8 | if builtins.pathExists flakePath 9 | then builtins.getFlake (toString flakePath) 10 | else {}; 11 | 12 | Me = Flake.nixosConfigurations.${host} or {}; 13 | Channels = Flake.pkgs.${builtins.currentSystem} or {}; 14 | 15 | LoadFlake = path: builtins.getFlake (toString path); 16 | in { 17 | inherit 18 | Channels 19 | Flake 20 | LoadFlake 21 | Me 22 | ; 23 | } 24 | -------------------------------------------------------------------------------- /cells/danie/homeConfigurations.nix: -------------------------------------------------------------------------------- 1 | { 2 | danie = { 3 | bee.home = inputs.home-unstable; 4 | bee.system = "x86_64-linux"; 5 | bee.pkgs = inputs.cells.flk.pkgs.bootspec-nixpkgs; 6 | imports = 7 | [ 8 | cell.homeSuites.danie 9 | ] 10 | ++ inputs.cells.home.homeModules.default 11 | ++ inputs.cells.home.homeModules.extra; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /cells/danie/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielphan2003/flk/198bf56b8dde0c075f89f58952bedfa85e0b3cf7/cells/danie/icon.png -------------------------------------------------------------------------------- /cells/flk/library/categories.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | inputs, 4 | }: let 5 | l = lib; 6 | 7 | cmdWithCategory = category: attrs: attrs // {inherit category;}; 8 | 9 | pkgWithCategory = category: package: cmdWithCategory category {inherit package;}; 10 | 11 | withCategory = category: attrs: let 12 | mapWith = 13 | if l.isDerivation attrs 14 | then pkgWithCategory 15 | else cmdWithCategory; 16 | in 17 | mapWith category attrs; 18 | 19 | mkCategories = categories: attrs: 20 | l.genAttrs categories withCategory // attrs; 21 | 22 | categories = [ 23 | "cli-dev" 24 | "devos" 25 | "docs" 26 | "formatters" 27 | "legal" 28 | "utils" 29 | ]; 30 | in 31 | mkCategories categories { 32 | inherit cmdWithCategory pkgWithCategory withCategory categories; 33 | } 34 | -------------------------------------------------------------------------------- /cells/flk/library/compat/default.nix: -------------------------------------------------------------------------------- 1 | let 2 | src = ../..; 3 | in 4 | import 5 | ( 6 | let 7 | lock = builtins.fromJSON (builtins.readFile "${src}/flake.lock"); 8 | in 9 | fetchTarball { 10 | url = "https://github.com/edolstra/flake-compat/archive/${lock.nodes.flake-compat.locked.rev}.tar.gz"; 11 | sha256 = lock.nodes.flake-compat.locked.narHash; 12 | } 13 | ) 14 | {inherit src;} 15 | -------------------------------------------------------------------------------- /cells/flk/library/compat/nixos/default.nix: -------------------------------------------------------------------------------- 1 | {...}: let 2 | inherit (default.inputs.nixos) lib; 3 | 4 | host = configs.${hostname} or configs.NixOS; 5 | configs = default.nixosConfigurations; 6 | default = (import ../.).defaultNix; 7 | hostname = lib.fileContents /etc/hostname; 8 | in 9 | host 10 | -------------------------------------------------------------------------------- /cells/flk/library/generators.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | inputs, 4 | }: let 5 | l = lib // cells.std.lib; 6 | inherit (inputs) cells; 7 | inherit 8 | (l) 9 | flattenConfigs 10 | flip 11 | mapAttrs 12 | mergeOn 13 | trim 14 | ; 15 | in { 16 | mkNixosConfigurations = self: let 17 | hosts = trim self ["hosts"]; 18 | inherit (self) nixos; 19 | in 20 | mapAttrs (target: { 21 | configurations, 22 | modules ? {}, 23 | profiles ? {}, 24 | suites ? {}, 25 | }: let 26 | final = 27 | mergeOn 28 | nixos.configurations 29 | { 30 | modules = 31 | nixos.modules.default 32 | ++ [ 33 | { 34 | networking.hostName = configurations.target or target; 35 | # nixpkgs = {inherit (configurations) system;}; 36 | } 37 | ] 38 | ++ flattenConfigs {inherit modules profiles suites;}; 39 | } 40 | configurations; 41 | in 42 | nixos.builders.default final) 43 | hosts; 44 | } 45 | -------------------------------------------------------------------------------- /cells/flk/library/inputs.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | inputs, 4 | }: let 5 | l = lib // cells-lab.x86_64-linux.main.library; 6 | inherit (inputs) cells-lab self std; 7 | in 8 | l.mapAttrs (_: l.callFlake "${(std.incl self [(self + /lock)])}/lock") { 9 | # this is a hack to get the lock file to be followed in our nixpkgs channel 10 | nixpkgs.locked = inputs.nixpkgs-lock.sourceInfo; 11 | statix.inputs.nixpkgs = "nixpkgs"; 12 | } 13 | -------------------------------------------------------------------------------- /cells/flk/library/modules.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | inputs, 4 | }: let 5 | l = lib; 6 | 7 | inherit 8 | (l) 9 | attrValues 10 | flattenTree' 11 | foldAttrs 12 | mergeAny 13 | recursiveUpdate 14 | removeAttrs 15 | types 16 | ; 17 | in rec { 18 | flatAttrValues = pred: attrs: let 19 | flatAttrs = flattenTree' pred attrs; 20 | in 21 | attrValues flatAttrs; 22 | 23 | flattenModules = let 24 | type = with types; 25 | oneOf [ 26 | path 27 | (functionTo attrs) 28 | # attrs 29 | ]; 30 | in 31 | flatAttrValues type.check; 32 | 33 | flattenConfigs = { 34 | modules, 35 | profiles, 36 | suites, 37 | }: let 38 | prev = let 39 | flatSuites = attrValues suites; 40 | in 41 | foldAttrs recursiveUpdate {} 42 | (flatSuites ++ [profiles]); 43 | 44 | flatPrev = flattenModules prev; 45 | flatFinal = flattenModules modules; 46 | in 47 | flatPrev ++ flatFinal; 48 | } 49 | -------------------------------------------------------------------------------- /cells/flk/library/nixos-lib/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | inputs, 4 | }: { 5 | hyprland = import ./hyprland.nix {inherit lib;}; 6 | i3wm = import ./i3wm.nix {inherit lib;}; 7 | } 8 | -------------------------------------------------------------------------------- /cells/flk/library/nixos-lib/i3wm.nix: -------------------------------------------------------------------------------- 1 | {lib}: let 2 | inherit 3 | (lib) 4 | concatStringsSep 5 | ; 6 | in rec { 7 | rule = command: criteria: { 8 | command = command; 9 | criteria = criteria; 10 | }; 11 | 12 | floatingNoBorder = rule "floating enable, border none"; 13 | 14 | assign = n: id: {"${builtins.toString n}" = [id];}; 15 | 16 | colorRule = background: border: childBorder: indicator: text: { 17 | background = background; 18 | border = border; 19 | childBorder = childBorder; 20 | indicator = indicator; 21 | text = text; 22 | }; 23 | 24 | colorSetStr = { 25 | border, 26 | background, 27 | text, 28 | indicator, 29 | childBorder, 30 | } @ colors: 31 | concatStringsSep " " (builtins.attrValues colors); 32 | } 33 | -------------------------------------------------------------------------------- /cells/flk/library/pkgs-lib/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | }: { 5 | mc-motd = import ./mc-motd.nix {inherit lib pkgs;}; 6 | } 7 | -------------------------------------------------------------------------------- /cells/flk/library/sources.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | inputs, 4 | }: let 5 | l = lib; 6 | 7 | inherit 8 | (l) 9 | all 10 | any 11 | cleanSourceWith 12 | hasSuffix 13 | mapAttrsToList 14 | ; 15 | in rec { 16 | getFiles = { 17 | exts ? [], 18 | exceptions ? [], 19 | src, 20 | }: let 21 | files = cleanSourceWith { 22 | filter = name: type: let 23 | baseName = baseNameOf (toString name); 24 | isIncluded = all (exception: baseName != exception) exceptions; 25 | hasExt = any (ext: hasSuffix ext baseName) exts; 26 | in 27 | isIncluded && hasExt; 28 | inherit src; 29 | }; 30 | 31 | asAbsolutePath = path: _: "${src}/${path}"; 32 | in 33 | mapAttrsToList asAbsolutePath (builtins.readDir files); 34 | 35 | getNixFiles = src: 36 | getFiles { 37 | exts = [".nix"]; 38 | exceptions = ["default.nix"]; 39 | inherit src; 40 | }; 41 | 42 | getPatchFiles = src: 43 | getFiles { 44 | exts = [".patch" ".diff"]; 45 | inherit src; 46 | }; 47 | } 48 | -------------------------------------------------------------------------------- /cells/flk/library/strings.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | inputs, 4 | }: let 5 | l = lib; 6 | 7 | inherit 8 | (l) 9 | concatMapStringsSep 10 | foldl' 11 | head 12 | id 13 | isList 14 | toUpper 15 | ; 16 | in rec { 17 | concatComma = concatMapStringsSep "," toString; 18 | 19 | concatMapNewline = concatMapStringsSep "\n"; 20 | 21 | concatNewline = concatMapNewline id; 22 | 23 | nameToCamelCase = name: let 24 | pattern = "_([A-Za-z0-9])"; 25 | parts = builtins.split pattern name; 26 | partsToCamelCase = parts: 27 | foldl' (key: x: 28 | key 29 | + ( 30 | if isList x 31 | then toUpper (head x) 32 | else x 33 | )) "" 34 | parts; 35 | in 36 | if head parts == name 37 | then name 38 | else partsToCamelCase parts; 39 | } 40 | -------------------------------------------------------------------------------- /cells/flk/nixpkgsConfig.nix: -------------------------------------------------------------------------------- 1 | { 2 | inherit (inputs.nixpkgs) system; 3 | config = { 4 | allowUnfree = true; 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /cells/flk/overlays/adguardhome.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | adguardhome = prev.adguardhome.overrideAttrs (o: let 3 | system = prev.system or prev.stdenv.targetPlatform; 4 | arch = 5 | { 6 | "x86_64-darwin" = "darwin-amd64"; 7 | "i686-linux" = "linux-386"; 8 | "x86_64-linux" = "linux-amd64"; 9 | "aarch64-linux" = "linux-arm64"; 10 | } 11 | .${system} 12 | or (throw "Source for ${o.pname} is not available for ${system}"); 13 | in { 14 | inherit (final.fog."adguardhome-${arch}") src version; 15 | }); 16 | } 17 | -------------------------------------------------------------------------------- /cells/flk/overlays/age.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # age-plugin-yubikey = channels.nixpkgs.age-plugin-yubikey.override { 3 | # rustPlatform.buildRustPackage = args: 4 | # final.rustPlatform.buildRustPackage (builtins.removeAttrs args ["cargoSha256"] 5 | # // { 6 | # inherit (final.fog.age-plugin-yubikey) src version cargoLock; 7 | # }); 8 | # }; 9 | } 10 | -------------------------------------------------------------------------------- /cells/flk/overlays/agenix.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | ragenix = prev.ragenix.override { 3 | plugins = [final.age-plugin-yubikey]; 4 | }; 5 | } 6 | -------------------------------------------------------------------------------- /cells/flk/overlays/android.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # waydroid = prev.waydroid.overrideAttrs (_: { 3 | # inherit (final.fog.waydroid) src version; 4 | # patches = prev.lib.flk.getPatchFiles ../packages/os-specific/linux/waydroid; 5 | # }); 6 | } 7 | -------------------------------------------------------------------------------- /cells/flk/overlays/awesome.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | awesome = 3 | (prev.awesome.override { 4 | stdenv = final.clangStdenv; 5 | gtk3Support = true; 6 | }) 7 | .overrideAttrs (o: { 8 | inherit (final.fog.awesome) pname src version; 9 | 10 | prePatch = '' 11 | sed -i "s#/bin/sh#/usr/bin/sh#g" tests/run.sh 12 | ''; 13 | 14 | GI_TYPELIB_PATH = 15 | "${prev.playerctl}/lib/girepository-1.0:" 16 | + "${prev.upower}/lib/girepository-1.0:" 17 | + o.GI_TYPELIB_PATH; 18 | }); 19 | } 20 | -------------------------------------------------------------------------------- /cells/flk/overlays/dnscrypt-proxy.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | dnscrypt-proxy2 = prev.dnscrypt-proxy2.override { 3 | buildGoModule = attrs: let 4 | overrideAttrs = { 5 | inherit (final.fog.dnscrypt-proxy2) pname src version; 6 | vendorSha256 = null; 7 | }; 8 | in 9 | final.buildGoModule (attrs // overrideAttrs); 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /cells/flk/overlays/dribbblish-dynamic-theme.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # dribbblish-dynamic-theme = prev.dribbblish-dynamic-theme.overrideAttrs (_: { 3 | # # TODO: see https://github.com/morpheusthewhite/spicetify-themes/issues/467 4 | # prePatch = '' 5 | # substituteInPlace user.css \ 6 | # --replace ".connect-device-list-container {" ".connect-device-list-container { overflow-y: scroll; height: 120px;" # \ 7 | # # --replace "#dribs-sidebar-config {" "#dribs-sidebar-config { left: 120px !important; " 8 | # # # --replace ".main-contextMenu-menu {" ".main-contextMenu-menu { left: 120px; " 9 | # ''; 10 | # }); 11 | } 12 | -------------------------------------------------------------------------------- /cells/flk/overlays/droidcam.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | droidcam = prev.droidcam.overrideAttrs (o: { 3 | postInstall = '' 4 | mkdir -p $out/share/applications 5 | substitute $src/droidcam.desktop $out/share/applications/droidcam.desktop \ 6 | --replace "/opt/droidcam-icon.png" "$out/share/icons/hicolor/96x96/apps/droidcam.png" \ 7 | --replace "/usr/local" "$out" 8 | ''; 9 | }); 10 | } 11 | -------------------------------------------------------------------------------- /cells/flk/overlays/duf.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | duf = prev.duf.override { 3 | buildGoModule = attrs: let 4 | overrideAttrs = { 5 | inherit (final.fog.duf) pname src version; 6 | vendorSha256 = "sha256-0DfMzS+1mlFCeI3qmj3GxTRiH+UrzTotdjYtGXJrs5Q="; 7 | }; 8 | in 9 | final.buildGoModule (attrs // overrideAttrs); 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /cells/flk/overlays/etebase-server.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # python3Packages = prev.python3Packages // { 3 | # etebase-server = channels.nixpkgs.etebase-server.overrideAttrs (o: { 4 | # propagatedBuildInputs = o.propagatedBuildInputs ++ [ 5 | # final.python3Packages.psycopg2 6 | # final.python3Packages.setuptools 7 | # ]; 8 | # }); 9 | # }; 10 | python3 = let 11 | packageOverrides = pFinal: pPrev: { 12 | etebase-server = pPrev.etebase-server.overridePythonAttrs (o: { 13 | propagatedBuildInputs = 14 | o.propagatedBuildInputs 15 | ++ [ 16 | pFinal.psycopg2 17 | pFinal.setuptools 18 | ]; 19 | }); 20 | }; 21 | in 22 | prev.python3.override {inherit packageOverrides;}; 23 | } 24 | -------------------------------------------------------------------------------- /cells/flk/overlays/eww.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | eww = prev.eww.override { 3 | rustPlatform.buildRustPackage = attrs: let 4 | inherit (final.fog.eww) src version cargoLock; 5 | 6 | attrs' = builtins.removeAttrs attrs ["cargoSha256"]; 7 | 8 | overrideAttrs = { 9 | inherit src version; 10 | cargoLock = cargoLock."Cargo.lock"; 11 | cargoPatches = []; 12 | }; 13 | in 14 | final.rustPlatform.buildRustPackage (attrs' // overrideAttrs); 15 | }; 16 | 17 | eww-wayland = final.eww.override {withWayland = true;}; 18 | } 19 | -------------------------------------------------------------------------------- /cells/flk/overlays/flameshot.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | flameshot = prev.flameshot.overrideAttrs (_: { 3 | inherit (final.fog.flameshot) pname src version; 4 | patches = []; 5 | }); 6 | } 7 | -------------------------------------------------------------------------------- /cells/flk/overlays/gamemode.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # gamemode = prev.gamemode.overrideAttrs (_: { 3 | # inherit (final.fog.gamemode) src version; 4 | # }); 5 | } 6 | -------------------------------------------------------------------------------- /cells/flk/overlays/godu.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # godu = prev.godu.overrideAttrs (_: { 3 | # inherit (final.fog.godu) src version; 4 | # }); 5 | } 6 | -------------------------------------------------------------------------------- /cells/flk/overlays/jitsi.nix: -------------------------------------------------------------------------------- 1 | final: prev: let 2 | inherit 3 | (prev) 4 | jibri 5 | jicofo 6 | jitsi-meet 7 | jitsi-meet-prosody 8 | jitsi-videobridge 9 | ; 10 | in { 11 | jibri = jibri.overrideAttrs (_: { 12 | inherit (final.fog.jibri) src version; 13 | }); 14 | 15 | jicofo = jicofo.overrideAttrs (_: { 16 | inherit (final.fog.jicofo) src version; 17 | }); 18 | 19 | jitsi-meet = jitsi-meet.overrideAttrs (_: { 20 | inherit (final.fog.jitsi-meet) src version; 21 | }); 22 | 23 | jitsi-meet-prosody = jitsi-meet-prosody.overrideAttrs (_: { 24 | inherit (final.fog.jitsi-meet-prosody) src version; 25 | }); 26 | 27 | jitsi-videobridge = jitsi-videobridge.overrideAttrs (_: { 28 | inherit (final.fog.jitsi-videobridge2) src version; 29 | }); 30 | } 31 | -------------------------------------------------------------------------------- /cells/flk/overlays/light.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | light = prev.light.overrideAttrs (_: { 3 | inherit (final.fog.light) pname src version; 4 | patches = []; 5 | }); 6 | } 7 | -------------------------------------------------------------------------------- /cells/flk/overlays/microsoft-edge.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | microsoft-edge = final.electron-utils.wrapElectron prev.microsoft-edge-beta {}; 3 | microsoft-edge-beta = final.electron-utils.wrapElectron prev.microsoft-edge-beta {}; 4 | microsoft-edge-dev = final.electron-utils.wrapElectron prev.microsoft-edge-dev {}; 5 | } 6 | -------------------------------------------------------------------------------- /cells/flk/overlays/minecraft.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # minecraft-mods = prev.minecraft-mods // { 3 | # }; 4 | } 5 | -------------------------------------------------------------------------------- /cells/flk/overlays/nwg.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | nwg-drawer = prev.nwg-drawer.overrideAttrs (o: { 3 | buildInputs = o.buildInputs ++ [final.gdk-pixbuf]; 4 | }); 5 | } 6 | -------------------------------------------------------------------------------- /cells/flk/overlays/ouch.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | ouch = prev.ouch.override { 3 | rustPlatform.buildRustPackage = attrs: let 4 | attrs' = builtins.removeAttrs attrs ["cargoSha256" "nativeBuildInputs" "GEN_COMPLETIONS"]; 5 | 6 | overrideAttrs = { 7 | inherit (final.fog.ouch) pname src version; 8 | cargoLock = final.fog.ouch.cargoLock."Cargo.lock"; 9 | nativeBuildInputs = [final.installShellFiles final.pkg-config]; 10 | postInstall = '' 11 | installManPage artifacts/*.1 12 | installShellCompletion artifacts/ouch.{bash,fish} --zsh artifacts/_ouch 13 | ''; 14 | OUCH_ARTIFACTS_FOLDER = "artifacts"; 15 | meta.changelog = "https://github.com/ouch-org/ouch/blob/${final.fog.ouch.version}/CHANGELOG.md"; 16 | }; 17 | in 18 | final.rustPlatform.buildRustPackage (final.lib.recursiveUpdate attrs' overrideAttrs); 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /cells/flk/overlays/overrides.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | __dontExport = true; # overrides clutter up actual creations 3 | 4 | # inherit 5 | # (channels.nixpkgs) 6 | # argononed 7 | # nix 8 | # nix-du 9 | # nixos-rebuild 10 | # ; 11 | 12 | # obs-studio-plugins = 13 | # prev.obs-studio-plugins 14 | # // { 15 | # wlrobs = final.obs-wlrobs; 16 | # }; 17 | } 18 | -------------------------------------------------------------------------------- /cells/flk/overlays/pango-escape-text.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | pango-escape-text = 3 | final.writers.writePython3 "pango-escape-text.py" 4 | {libraries = [final.python3Packages.pygobject3];} '' 5 | import sys 6 | from gi.repository import GLib 7 | 8 | print(GLib.markup_escape_text(' '.join(sys.argv[1:]))) 9 | ''; 10 | } 11 | -------------------------------------------------------------------------------- /cells/flk/overlays/picom.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | picom = prev.picom.overrideAttrs (o: { 3 | inherit (final.fog.picom) pname version src; 4 | }); 5 | } 6 | -------------------------------------------------------------------------------- /cells/flk/overlays/pmbootstrap.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # pmbootstrap = prev.pmbootstrap.overrideAttrs (_: { 3 | # inherit (final.fog.pmbootstrap) src version; 4 | # patches = prev.lib.flk.getPatchFiles ../packages/tools/misc/pmbootstrap; 5 | # repo = final.fog.pmbootstrap-test.src; 6 | # pmb_test = "$repo/test"; 7 | # }); 8 | } 9 | -------------------------------------------------------------------------------- /cells/flk/overlays/qbittorrent.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | qbittorrent = prev.qbittorrent.override {guiSupport = false;}; 3 | } 4 | -------------------------------------------------------------------------------- /cells/flk/overlays/qutebrowser.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # wrapper to specify config file 3 | qute = prev.writeShellScriptBin "qute" '' 4 | QUTE_DARKMODE_VARIANT=qt_515_2 QT_QPA_PLATFORMTHEME= exec ${final.qutebrowser}/bin/qutebrowser -C /etc/xdg/qutebrowser/config.py "$@" 5 | ''; 6 | } 7 | -------------------------------------------------------------------------------- /cells/flk/overlays/sddm.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | libsForQt5 = let 3 | libsForQt5' = { 4 | sddm = prev.libsForQt5.sddm.overrideAttrs (_: { 5 | inherit (final.fog.sddm) src version; 6 | patches = prev.lib.flk.getPatchFiles ../packages/applications/display-managers/sddm; 7 | }); 8 | }; 9 | in 10 | prev.libsForQt5 // libsForQt5'; 11 | } 12 | -------------------------------------------------------------------------------- /cells/flk/overlays/tailscale.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | tailscale = prev.tailscale.override { 3 | buildGoModule = attrs: let 4 | overrideAttrs = { 5 | inherit (final.fog.tailscale) src version; 6 | vendorSha256 = "sha256-fbRdC98V55KqzlkJRqTcjsqod4CUYL2jDgXxRmwvfSE="; 7 | }; 8 | in 9 | final.buildGo119Module (attrs // overrideAttrs); 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /cells/flk/overlays/teams.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # teams = 3 | # final.electron-utils.wrapElectron 4 | # prev.teams.overrideAttrs (_: {inherit (final.fog.teams) src version;}) 5 | # {} 6 | # ; 7 | } 8 | -------------------------------------------------------------------------------- /cells/flk/overlays/ulauncher.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # ulauncher = prev.ulauncher.overrideAttrs (_: { 3 | # inherit (final.fog.ulauncher) src version; 4 | # patches = prev.lib.flk.getPatchFiles ../packages/applications/misc/ulauncher; 5 | # }); 6 | } 7 | -------------------------------------------------------------------------------- /cells/flk/overlays/vaultwarden.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | vaultwarden = prev.vaultwarden.override { 3 | rustPlatform.buildRustPackage = attrs: let 4 | attrs' = builtins.removeAttrs attrs ["cargoSha256"]; 5 | 6 | overrideAttrs = { 7 | inherit (final.fog.vaultwarden) src version; 8 | cargoLock = final.fog.vaultwarden.cargoLock."Cargo.lock"; 9 | }; 10 | in 11 | final.rustPlatform.buildRustPackage (attrs' // overrideAttrs); 12 | }; 13 | 14 | vaultwarden-vault = prev.vaultwarden-vault.overrideAttrs (_: { 15 | inherit (final.fog.vaultwarden-vault) src version; 16 | }); 17 | } 18 | -------------------------------------------------------------------------------- /cells/flk/overlays/vscode-extensions.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | vscode-extensions = prev.vscode-extensions // {}; 3 | } 4 | -------------------------------------------------------------------------------- /cells/flk/overlays/vscode.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | vscodium = final.electron-utils.wrapElectron prev.vscodium {}; 3 | } 4 | -------------------------------------------------------------------------------- /cells/flk/overlays/weeb.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | trackma = prev.trackma.override {pillow = prev.python3Packages.pillow-simd;}; 3 | } 4 | -------------------------------------------------------------------------------- /cells/flk/overlays/wine.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # wine = final.wineWowPackages.staging; 3 | 4 | # bottles = prev.bottles.overrideAttrs (o: { 5 | # inherit (final.fog.bottles) pname src version; 6 | 7 | # propagatedBuildInputs = o.propagatedBuildInputs ++ builtins.attrValues { 8 | # inherit (prev.python3Packages) 9 | # pyyaml 10 | # requests 11 | # patool 12 | # ; 13 | # }; 14 | 15 | # buildInputs = o.buildInputs ++ [ prev.cabextract prev.dconf ]; 16 | 17 | # preConfigure = '' 18 | # substituteInPlace build-aux/meson/postinstall.py \ 19 | # --replace "'update-desktop-database'" "'${prev.desktop-file-utils}/bin/update-desktop-database'" 20 | # substituteInPlace src/backend/manager.py \ 21 | # --replace " {runner}" " ${prev.steam-run-native}/bin/steam-run {runner}" \ 22 | # --replace " {dxvk_setup}" " ${prev.steam-run-native}/bin/steam-run {dxvk_setup}" 23 | # ''; 24 | # }); 25 | } 26 | -------------------------------------------------------------------------------- /cells/flk/overlays/ydotool.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | ydotool = prev.ydotool.overrideAttrs (_: { 3 | inherit (final.fog.ydotool) pname version src; 4 | }); 5 | } 6 | -------------------------------------------------------------------------------- /cells/flk/overlays/yubikey-agent.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | yubikey-agent = prev.yubikey-agent.override { 3 | buildGoModule = attrs: let 4 | overrideAttrs = { 5 | inherit (final.fog.yubikey-agent) src version; 6 | vendorSha256 = "sha256-dqUV0+exeLbL20geWX1gqoir+nGDuYKDASC6DcJJwI8="; 7 | }; 8 | in 9 | final.buildGoModule (attrs // overrideAttrs); 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /cells/flk/overlays/zoom-us.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | zoom-us = prev.zoom-us.overrideAttrs (_: { 3 | inherit (final.fog.zoom-us) src version; 4 | }); 5 | } 6 | -------------------------------------------------------------------------------- /cells/flk/packages.nix: -------------------------------------------------------------------------------- 1 | let 2 | l = inputs.nixlib.lib; 3 | in 4 | l.genAttrs ["nixpkgs" "nixos" "bootspec-nixpkgs"] 5 | (input: 6 | if inputs.${input} ? outPath 7 | then 8 | import inputs.${input} { 9 | inherit (cell.nixpkgsConfig) system config; 10 | overlays = [cell.overlays.default]; 11 | } 12 | else inputs.${input}.extend cell.overlays.default) 13 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/display-managers/sddm/themes/chili/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | fog, 5 | }: 6 | stdenv.mkDerivation { 7 | inherit (fog.sddm-chili) pname src version; 8 | 9 | installPhase = '' 10 | mkdir -p $out/share/sddm/themes/chili 11 | cp -r * $out/share/sddm/themes/chili 12 | ''; 13 | 14 | meta = with lib; { 15 | description = "The hottest theme around for SDDM"; 16 | homepage = "https://github.com/MarianArlt/sddm-chili"; 17 | maintainers = [maintainers.danielphan2003]; 18 | license = licenses.gpl3; 19 | platforms = platforms.linux; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/misc/eww/box.yuck: -------------------------------------------------------------------------------- 1 | (box :class "music" :orientation "h" :space-evenly false :halign "center" 2 | {button}) 3 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/misc/eww/button.yuck: -------------------------------------------------------------------------------- 1 | (button :class "{status}" :halign "fill" 2 | :onclick "playerctl --player={player} play-pause" 3 | "{icon}{title}{artist}") 4 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/misc/eww/mpris.nix: -------------------------------------------------------------------------------- 1 | { 2 | python3, 3 | lib, 4 | wrapGAppsHook, 5 | gobject-introspection, 6 | glib, 7 | playerctl, 8 | eww, 9 | }: 10 | python3.pkgs.buildPythonApplication { 11 | name = "eww-mpris"; 12 | 13 | format = "other"; 14 | 15 | src = ./mpris.py; 16 | 17 | dontUnpack = true; 18 | 19 | strictDeps = false; 20 | 21 | nativeBuildInputs = [ 22 | wrapGAppsHook 23 | gobject-introspection 24 | ]; 25 | 26 | buildInputs = [ 27 | glib 28 | playerctl 29 | ]; 30 | 31 | propagatedBuildInputs = [ 32 | eww 33 | python3.pkgs.pygobject3 34 | ]; 35 | 36 | installPhase = '' 37 | mkdir -p $out/bin $out/share/eww-mpris 38 | substitute $src $out/bin/eww-mpris --subst-var out 39 | chmod +x $out/bin/eww-mpris 40 | 41 | cp ${./box.yuck} $out/share/eww-mpris/box.yuck 42 | cp ${./button.yuck} $out/share/eww-mpris/button.yuck 43 | ''; 44 | 45 | meta = with lib; { 46 | maintainers = with maintainers; [danielphan2003]; 47 | }; 48 | } 49 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/misc/frece/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | rustPlatform, 3 | lib, 4 | fog, 5 | }: 6 | rustPlatform.buildRustPackage { 7 | inherit (fog.frece) pname version src; 8 | 9 | cargoLock = fog.frece.cargoLock."Cargo.lock"; 10 | 11 | meta = with lib; { 12 | description = "Maintain a database sorted by frecency (frequency + recency) "; 13 | homepage = "https://github.com/YodaEmbedding/frece"; 14 | license = licenses.mit; 15 | maintainers = [maintainers.danielphan2003]; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/misc/ulauncher/fix-extensions.patch: -------------------------------------------------------------------------------- 1 | diff --git a/ulauncher/api/server/ExtensionRunner.py b/ulauncher/api/server/ExtensionRunner.py 2 | index 22042bf..f7b31c8 100644 3 | --- a/ulauncher/api/server/ExtensionRunner.py 4 | +++ b/ulauncher/api/server/ExtensionRunner.py 5 | @@ -79,7 +79,7 @@ class ExtensionRunner: 6 | cmd = [sys.executable, os.path.join(self.extensions_dir, extension_id, 'main.py')] 7 | env = os.environ.copy() 8 | env['ULAUNCHER_WS_API'] = self.extension_server.generate_ws_url(extension_id) 9 | - env['PYTHONPATH'] = ':'.join(filter(bool, [ULAUNCHER_APP_DIR, os.getenv('PYTHONPATH')])) 10 | + env['PYTHONPATH'] = ':'.join([ULAUNCHER_APP_DIR] + sys.path) 11 | 12 | if self.verbose: 13 | env['VERBOSE'] = '1' 14 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/misc/ulauncher/fix-path.patch: -------------------------------------------------------------------------------- 1 | diff --git a/setup.py b/setup.py 2 | index 535efd5..0c8f954 100755 3 | --- a/setup.py 4 | +++ b/setup.py 5 | @@ -94,7 +94,7 @@ class InstallAndUpdateDataDirectory(DistUtilsExtra.auto.install_auto): 6 | # Root is undefined if not installing into an alternate root 7 | root = self.root or "/" 8 | target_data = '/' + os.path.relpath(self.install_data, root) + '/' 9 | - target_pkgdata = target_data + 'share/ulauncher/' 10 | + target_pkgdata = '@out@/share/ulauncher/' 11 | target_scripts = '/' + os.path.relpath(self.install_scripts, 12 | root) + '/' 13 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/networking/browsers/microsoft-edge/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | beta = import ./browser.nix {channel = "beta";}; 3 | dev = import ./browser.nix {channel = "dev";}; 4 | stable = import ./browser.nix {channel = "stable";}; 5 | } 6 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/networking/browsers/widevine-cdm/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | fog, 5 | patchelf, 6 | gcc, 7 | glib, 8 | nspr, 9 | nss, 10 | unzip, 11 | }: let 12 | mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}"; 13 | in 14 | stdenv.mkDerivation { 15 | inherit (fog.widevine-cdm) pname src version; 16 | 17 | unpackCmd = "unzip -d ./src $curSrc"; 18 | 19 | nativeBuildInputs = [unzip]; 20 | 21 | PATCH_RPATH = mkrpath [gcc.cc glib nspr nss]; 22 | 23 | patchPhase = '' 24 | patchelf --set-rpath "$PATCH_RPATH" libwidevinecdm.so 25 | ''; 26 | 27 | installPhase = '' 28 | install -vD libwidevinecdm.so "$out/lib/libwidevinecdm.so" 29 | ''; 30 | 31 | meta.platforms = ["x86_64-linux"]; 32 | } 33 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/networking/instant-messengers/caprine/generate.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env nix-shell 2 | #! nix-shell -i bash -p nodePackages.node2nix 3 | 4 | node2nix \ 5 | --input node-packages.json \ 6 | --output node-packages.nix \ 7 | --composition node-composition.nix \ 8 | --development # See https://github.com/svanderburg/node2nix/issues/149 9 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/networking/instant-messengers/caprine/node-composition.nix: -------------------------------------------------------------------------------- 1 | # This file has been generated by node2nix 1.9.0. Do not edit! 2 | { 3 | pkgs ? 4 | import { 5 | inherit system; 6 | }, 7 | system ? builtins.currentSystem, 8 | nodejs ? pkgs."nodejs-12_x", 9 | }: let 10 | nodeEnv = import ./node-env.nix { 11 | inherit (pkgs) stdenv lib python2 runCommand writeTextFile; 12 | inherit pkgs nodejs; 13 | libtool = 14 | if pkgs.stdenv.isDarwin 15 | then pkgs.darwin.cctools 16 | else null; 17 | }; 18 | in 19 | import ./node-packages.nix { 20 | inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; 21 | inherit nodeEnv; 22 | } 23 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/networking/instant-messengers/caprine/node-packages.json: -------------------------------------------------------------------------------- 1 | [{ "caprine": "git://github.com/sindresorhus/caprine#v2.53.0" }] 2 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/networking/instant-messengers/cinny/cinny-web-distDir.patch: -------------------------------------------------------------------------------- 1 | diff --git a/tauri.conf.json b/tauri.conf.json 2 | index 431cd53..a453b93 100644 3 | --- a/tauri.conf.json 4 | +++ b/tauri.conf.json 5 | @@ -4,10 +4,10 @@ 6 | "version": "2.0.4" 7 | }, 8 | "build": { 9 | - "distDir": "../cinny/dist", 10 | + "distDir": "@distDir@", 11 | "devPath": "http://localhost:8080", 12 | - "beforeDevCommand": "cd cinny && npm start", 13 | - "beforeBuildCommand": "cd cinny && npm run build" 14 | + "beforeDevCommand": "", 15 | + "beforeBuildCommand": "" 16 | }, 17 | "tauri": { 18 | "bundle": { 19 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/networking/wgcf/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | buildGoModule, 3 | lib, 4 | fog, 5 | }: 6 | buildGoModule { 7 | inherit (fog.wgcf) pname src version; 8 | 9 | subPackages = ["."]; 10 | 11 | vendorSha256 = "sha256-IjX8VAFwdZYjMElZ97bIR41ofmIwvhkyr+/aGofxb+I="; 12 | 13 | ldFlags = ["-s" "-w"]; 14 | 15 | meta = with lib; { 16 | homepage = "https://github.com/ViRb3/wgcf"; 17 | description = "🚤 Cross-platform, unofficial CLI for Cloudflare Warp"; 18 | license = licenses.mit; 19 | platforms = platforms.all; 20 | maintainers = [maintainers.danielphan2003]; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/video/anime-downloader/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | fog, 4 | python3Packages, 5 | aria2, 6 | mpv, 7 | nodejs, 8 | }: 9 | with python3Packages; 10 | buildPythonApplication rec { 11 | inherit (fog.anime-downloader) pname src version; 12 | 13 | propagatedBuildInputs = [ 14 | aria2 15 | beautifulsoup4 16 | cfscrape 17 | click 18 | coloredlogs 19 | fuzzywuzzy 20 | jsbeautifier 21 | mpv 22 | nodejs 23 | pySmartDL 24 | pycryptodome 25 | pyqt5 26 | requests 27 | requests-cache 28 | selenium 29 | tabulate 30 | ]; 31 | 32 | doCheck = false; 33 | 34 | meta = with lib; { 35 | homepage = "https://github.com/anime-dl/anime-downloader"; 36 | description = "A simple but powerful anime downloader and streamer."; 37 | license = licenses.unlicense; 38 | platforms = ["x86_64-linux"]; 39 | maintainers = [maintainers.danielphan2003]; 40 | }; 41 | } 42 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/video/fake-background-webcam/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | fog, 4 | python3Packages, 5 | opencv, 6 | }: 7 | with python3Packages; 8 | buildPythonApplication rec { 9 | inherit (fog.fake-background-webcam) pname src version; 10 | 11 | propagatedBuildInputs = [ 12 | cmapy 13 | configargparse 14 | inotify-simple 15 | mediapipe 16 | numpy 17 | opencv 18 | pyfakewebcam 19 | ]; 20 | 21 | doCheck = false; 22 | 23 | meta = with lib; { 24 | homepage = "https://github.com/fangfufu/Linux-Fake-Background-Webcam"; 25 | description = "Faking your webcam background under GNU/Linux, now supports background blurring, animated background, colour map effect, hologram effect and on-demand processing."; 26 | license = licenses.gpl3; 27 | platforms = platforms.linux; 28 | maintainers = [maintainers.danielphan2003]; 29 | }; 30 | } 31 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/window-managers/steamcompmgr/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | fog, 5 | SDL, 6 | SDL_image, 7 | udev, 8 | libXext, 9 | libXxf86vm, 10 | libXdamage, 11 | libXcomposite, 12 | libXrender, 13 | pkgconfig, 14 | autoreconfHook, 15 | gnumake, 16 | }: 17 | stdenv.mkDerivation { 18 | inherit (fog.steamcompmgr) pname src version; 19 | 20 | buildInputs = [ 21 | SDL 22 | SDL_image 23 | udev 24 | libXext 25 | libXxf86vm 26 | libXdamage 27 | libXcomposite 28 | libXrender 29 | pkgconfig 30 | autoreconfHook 31 | gnumake 32 | ]; 33 | 34 | meta = with lib; { 35 | description = "SteamOS Compositor"; 36 | homepage = "https://github.com/ChimeraOS/steamos-compositor-plus"; 37 | maintainers = [maintainers.danielphan2003]; 38 | license = licenses.bsd2; 39 | platforms = platforms.linux; 40 | }; 41 | } 42 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/window-managers/sway-borders/sway-config-no-nix-store-references.patch: -------------------------------------------------------------------------------- 1 | diff --git a/config.in b/config.in 2 | --- a/config.in 3 | +++ b/config.in 4 | @@ -21,8 +21,8 @@ set $menu dmenu_path | dmenu | xargs swaymsg exec 5 | 6 | ### Output configuration 7 | # 8 | -# Default wallpaper (more resolutions are available in @datadir@/backgrounds/sway/) 9 | -output * bg @datadir@/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill 10 | +# Default wallpaper 11 | +#output * bg ~/.config/sway/backgrounds/Sway_Wallpaper_Blue_1920x1080.png fill 12 | # 13 | # Example configuration: 14 | # 15 | @@ -213,5 +213,3 @@ bar { 16 | inactive_workspace #32323200 #32323200 #5c5c5c 17 | } 18 | } 19 | - 20 | -include @sysconfdir@/sway/config.d/* 21 | 22 | -------------------------------------------------------------------------------- /cells/flk/packages/applications/window-managers/swhkd/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | rustPlatform, 4 | fog, 5 | }: let 6 | inherit (fog.swhkd) pname src version cargoLock; 7 | in 8 | rustPlatform.buildRustPackage { 9 | inherit pname src version; 10 | 11 | cargoLock = cargoLock."Cargo.lock"; 12 | 13 | preInstall = '' 14 | mkdir -p $out/lib/systemd/user $out/share/polkit-1/actions 15 | 16 | substitute ./contrib/init/systemd/hotkeys.service "$out/lib/systemd/user/swhkd.service" \ 17 | --replace '# ExecStart=/path/to/hotkeys.sh' "ExecStart=/run/wrappers/bin/pkexec $out/bin/swhkd" 18 | 19 | substitute ./com.github.swhkd.pkexec.policy "$out/share/polkit-1/actions/com.github.swhkd.pkexec.policy" \ 20 | --replace /usr/bin/swhkd "$out/bin/swhkd" 21 | ''; 22 | } 23 | -------------------------------------------------------------------------------- /cells/flk/packages/data/fonts/ttf-segue-ui/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | fog, 5 | }: 6 | stdenv.mkDerivation { 7 | pname = "ttf-segue"; 8 | 9 | inherit (fog.segue-ui-linux) src version; 10 | 11 | installPhase = '' 12 | mkdir -p "$out/share/fonts/Microsoft/TrueType/Segoe UI" 13 | cp -r $src/font/* "$out/share/fonts/Microsoft/TrueType/Segoe UI" 14 | ''; 15 | 16 | meta = with lib; { 17 | description = "Install segoe-ui font on linux"; 18 | homepage = "https://github.com/mrbvrz/segoe-ui-linux"; 19 | maintainers = [maintainers.danielphan2003]; 20 | license = licenses.unfree; 21 | platforms = platforms.all; 22 | }; 23 | } 24 | -------------------------------------------------------------------------------- /cells/flk/packages/data/icons/whitesur-icon-theme/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | fog, 5 | sassc, 6 | optipng, 7 | inkscape, 8 | glib, 9 | gtk3, 10 | numix-icon-theme-circle, 11 | hicolor-icon-theme, 12 | }: 13 | stdenv.mkDerivation { 14 | inherit (fog.whitesur-icon-theme) pname src version; 15 | 16 | buildInputs = [ 17 | sassc 18 | optipng 19 | inkscape 20 | glib 21 | gtk3 22 | ]; 23 | 24 | propagatedBuildInputs = [ 25 | numix-icon-theme-circle 26 | hicolor-icon-theme 27 | ]; 28 | 29 | postPatch = "patchShebangs ."; 30 | 31 | installPhase = '' 32 | mkdir -p $out/share/icons 33 | ./install.sh -d $out/share/icons 34 | ''; 35 | 36 | meta = with lib; { 37 | description = "MacOS Big Sur style icon theme for linux desktops"; 38 | homepage = "https://github.com/vinceliuice/WhiteSur-icon-theme"; 39 | license = licenses.gpl3; 40 | maintainers = [maintainers.danielphan2003]; 41 | platforms = platforms.linux; 42 | }; 43 | } 44 | -------------------------------------------------------------------------------- /cells/flk/packages/data/misc/arkenfox-userjs/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | substituteAll, 5 | fog, 6 | }: 7 | stdenv.mkDerivation { 8 | inherit (fog.arkenfox-userjs) pname src version; 9 | 10 | dontBuild = true; 11 | 12 | installPhase = '' 13 | mkdir -p $out/share/firefox 14 | cp user.js $out/share/firefox 15 | ''; 16 | 17 | meta = with lib; { 18 | description = "Firefox privacy, security and anti-fingerprinting"; 19 | homepage = "https://github.com/arkenfox/user.js"; 20 | maintainers = [maintainers.danielphan2003]; 21 | platforms = platforms.all; 22 | license = licenses.mit; 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /cells/flk/packages/data/misc/dribbblish-dynamic-theme/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | mkYarnPackage, 4 | fog, 5 | }: let 6 | inherit (fog.dribbblish-dynamic-theme) pname src version; 7 | in 8 | mkYarnPackage { 9 | inherit pname src version; 10 | 11 | COMMIT_HASH = lib.substring 0 7 version; 12 | 13 | yarnLock = ./yarn.lock; 14 | 15 | buildPhase = '' 16 | yarn --offline build 17 | ''; 18 | 19 | distPhase = "true"; 20 | 21 | configurePhase = "ln -s $node_modules node_modules"; 22 | 23 | installPhase = '' 24 | mkdir -p $out/theme $out/extensions 25 | cp -r dist/* $out/theme 26 | rm $out/theme/dribbblish-dynamic.js 27 | cp {dist,$out/extensions}/dribbblish-dynamic.js 28 | ''; 29 | 30 | meta = with lib; { 31 | description = "A mod of Dribbblish theme for Spicetify with support for light/dark modes and album art based colors."; 32 | homepage = "https://github.com/JulienMaille/dribbblish-dynamic-theme"; 33 | maintainers = [maintainers.danielphan2003]; 34 | platforms = platforms.all; 35 | }; 36 | } 37 | -------------------------------------------------------------------------------- /cells/flk/packages/data/misc/interak/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | stdenv, 4 | flyingfox, 5 | rainfox, 6 | pywalfox, 7 | }: let 8 | inherit rainfox pywalfox; 9 | urlbar-blur = ./urlbar-blur.css; 10 | flyingfox-no-tabline = flyingfox.overrideAttrs (_: {patches = [./no-tabline.patch];}); 11 | in 12 | stdenv.mkDerivation { 13 | pname = "interak"; 14 | version = "0.0.1"; 15 | 16 | installPhase = '' 17 | mkdir -p $out/chrome 18 | cp ${urlbar-blur} $out/chrome 19 | 20 | ln -s ${flyingfox-no-tabline}/chrome $out/chrome/flyingfox 21 | ln -s ${rainfox}/chrome $out/chrome/rainfox 22 | ln -s ${pywalfox}/chrome $out/chrome/pywalfox 23 | ''; 24 | 25 | meta = with lib; { 26 | description = "An opinionated set of configurations for firefox"; 27 | homepage = "https://interak.netlify.app"; 28 | license = licenses.mit; 29 | maintainers = [maintainers.danielphan2003]; 30 | platforms = platforms.all; 31 | }; 32 | } 33 | -------------------------------------------------------------------------------- /cells/flk/packages/data/misc/interak/userChrome.css: -------------------------------------------------------------------------------- 1 | @import "flyingfox/userChrome.css"; 2 | @import "rainfox/userChromeNavButtons.css"; 3 | @import "pywalfox/userChrome.css"; 4 | @import "pywalfox/userContent.css"; 5 | -------------------------------------------------------------------------------- /cells/flk/packages/data/misc/interak/userContent.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielphan2003/flk/198bf56b8dde0c075f89f58952bedfa85e0b3cf7/cells/flk/packages/data/misc/interak/userContent.css -------------------------------------------------------------------------------- /cells/flk/packages/data/misc/plymouth-themes/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | stdenv, 4 | fog, 5 | theme ? "angular", 6 | }: 7 | stdenv.mkDerivation { 8 | inherit (fog.plymouth-themes) version src; 9 | 10 | pname = "${fog.plymouth-themes.pname}-${theme}"; 11 | 12 | installPhase = '' 13 | mkdir -p $out/share/plymouth/themes 14 | cp -r pack_**/${theme} $out/share/plymouth/themes 15 | substituteInPlace $out/share/plymouth/themes/${theme}/${theme}.plymouth \ 16 | --replace "/usr" "$out" 17 | ''; 18 | 19 | meta = with lib; { 20 | description = "A huge collection (80+) of plymouth themes ported from android bootanimations"; 21 | homepage = "https://github.com/adi1090x/plymouth-themes"; 22 | license = licenses.gpl3; 23 | maintainers = [maintainers.danielphan2003]; 24 | platforms = platforms.linux; 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /cells/flk/packages/data/misc/rainfox/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | stdenv, 4 | fog, 5 | }: 6 | stdenv.mkDerivation { 7 | inherit (fog.rainfox) pname src version; 8 | 9 | installPhase = '' 10 | mkdir -p $out/chrome 11 | cp -r ./ $out/chrome 12 | ''; 13 | 14 | meta = with lib; { 15 | description = "It's like Photon, but better."; 16 | homepage = "https://github.com/1280px/rainfox"; 17 | license = licenses.mit; 18 | maintainers = [maintainers.danielphan2003]; 19 | platforms = platforms.all; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /cells/flk/packages/data/misc/spicetify-marketplace/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | nodejs, 4 | stdenv, 5 | fetchurl, 6 | writeText, 7 | git, 8 | cacert, 9 | fog, 10 | yarnPluginNixify ? import ./yarn-plugin-nixify.nix {inherit lib nodejs stdenv fetchurl writeText git cacert;}, 11 | }: 12 | yarnPluginNixify.build { 13 | inherit (fog.spicetify-marketplace) pname src version; 14 | 15 | offlineCache = import ./yarn.lock.nix; 16 | 17 | buildPhase = '' 18 | yarn workspace @spicetify/marketplace build:prod --offline 19 | ''; 20 | 21 | installPhase = '' 22 | mkdir -p $out/custom_apps 23 | 24 | cp -a packages/marketplace/dist/. $out/custom_apps 25 | ''; 26 | 27 | meta = with lib; { 28 | description = "Download extensions and themes directly from Spicetify"; 29 | homepage = "https://github.com/spicetify/spicetify-marketplace"; 30 | maintainers = [maintainers.danielphan2003]; 31 | platforms = platforms.all; 32 | }; 33 | } 34 | -------------------------------------------------------------------------------- /cells/flk/packages/data/misc/spicetify-themes/default.nix: -------------------------------------------------------------------------------- 1 | {fog}: fog.spicetify-themes.src 2 | -------------------------------------------------------------------------------- /cells/flk/packages/data/misc/user-icon/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | username ? "nixos", 5 | fetchurl ? null, 6 | icon ? 7 | fetchurl { 8 | url = "https://nixos.org/favicon.png"; 9 | sha256 = "${lib.fakeSha256}"; 10 | }, 11 | }: 12 | stdenv.mkDerivation { 13 | name = "${username}-icon"; 14 | 15 | src = icon; 16 | 17 | dontUnpack = true; 18 | 19 | installPhase = '' 20 | mkdir -p $out/share/sddm/faces 21 | cp $src $out/share/sddm/faces/${username}.face.icon 22 | ''; 23 | 24 | meta = with lib; { 25 | description = "User icon for SDDM etc."; 26 | platforms = platforms.all; 27 | license = 28 | if isDerivation icon 29 | then 30 | if head icon.urls == "https://nixos.org/favicon.png" 31 | then licenses.cc-by-sa-40 32 | else null 33 | else null; 34 | }; 35 | } 36 | -------------------------------------------------------------------------------- /cells/flk/packages/data/themes/whitesur-gtk-theme/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | fog, 5 | # options 6 | # , gtk-engine-murrine 7 | sassc, 8 | optipng, 9 | inkscape, 10 | glib, 11 | # , libxml2 12 | alt ? "standard", 13 | theme ? "default", 14 | panel ? "default", 15 | size ? "default", 16 | }: 17 | stdenv.mkDerivation { 18 | inherit (fog.whitesur-gtk-theme) pname src version; 19 | 20 | buildInputs = [ 21 | # gtk-engine-murrine 22 | sassc 23 | optipng 24 | inkscape 25 | glib 26 | # libxml2 27 | ]; 28 | 29 | postPatch = "patchShebangs ."; 30 | 31 | installPhase = '' 32 | mkdir -p $out/share/themes 33 | ./install.sh -d $out/share/themes 34 | ''; 35 | } 36 | -------------------------------------------------------------------------------- /cells/flk/packages/development/compilers/go/3608a87.diff: -------------------------------------------------------------------------------- 1 | From 3608a87f13917b6483adcdc53e165d7ea379378e Mon Sep 17 00:00:00 2001 2 | From: edef 3 | Date: Tue, 14 Jun 2022 17:35:57 +0000 4 | Subject: [PATCH] ssh/agent: match OpenSSH extensionAgentMsg, not IETF draft 5 | 6 | The OpenSSH wire format just suffixes the raw extension body, 7 | without a nested string. 8 | 9 | Fixes golang/go#51689 10 | 11 | Change-Id: Ic224cedb934ba0563abca9a45a6be1c67769ed6d 12 | --- 13 | 14 | diff --git a/ssh/agent/client.go b/ssh/agent/client.go 15 | index 3c4d18a..eb6bc71 100644 16 | --- a/ssh/agent/client.go 17 | +++ b/ssh/agent/client.go 18 | @@ -226,7 +226,9 @@ 19 | 20 | type extensionAgentMsg struct { 21 | ExtensionType string `sshtype:"27"` 22 | - Contents []byte 23 | + // NOTE: this matches OpenSSH's PROTOCOL.agent, not the IETF draft [PROTOCOL.agent], 24 | + // so that it matches what OpenSSH actually implements in the wild. 25 | + Contents []byte `ssh:"rest"` 26 | } 27 | 28 | // Key represents a protocol 2 public key as defined in 29 | -------------------------------------------------------------------------------- /cells/flk/packages/development/libraries/sciter/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | fetchurl, 4 | }: 5 | stdenv.mkDerivation { 6 | pname = "sciter"; 7 | version = "4.4.8.3"; 8 | 9 | src = fetchurl { 10 | url = "https://raw.fastgit.org/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so"; 11 | sha256 = "fcf388fc2f1ea41546f5a01104c8764f2467a3c55a3acbbc9b6e4f9807eedc72"; 12 | }; 13 | 14 | dontBuild = true; 15 | dontUnpack = true; 16 | 17 | installPhase = '' 18 | mkdir -p $out/share/sciter 19 | ln -s $src $out/share/sciter 20 | ''; 21 | } 22 | -------------------------------------------------------------------------------- /cells/flk/packages/development/lua-modules/awestore/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | fog, 4 | luaPackages, 5 | }: let 6 | lua = luaPackages.lua; 7 | in 8 | luaPackages.buildLuarocksPackage { 9 | inherit lua; 10 | 11 | inherit (fog.awestore) pname src version; 12 | 13 | disabled = luaPackages.luaOlder "5.1"; 14 | propagatedBuildInputs = [lua]; 15 | 16 | dontUnpack = true; 17 | dontBuild = true; 18 | 19 | buildPhase = ":"; 20 | 21 | installPhase = '' 22 | mkdir -p "$out/share/lua/${lua.luaversion}/awestore" 23 | cp -r $src/src/* "$out/share/lua/${lua.luaversion}/awestore" 24 | ''; 25 | 26 | meta = with lib; { 27 | homepage = "https://github.com/K4rakara/awestore"; 28 | description = "Sveltes store API for AwesomeWM"; 29 | maintainers = [maintainers.danielphan2003]; 30 | license.fullName = "MIT/X11"; 31 | }; 32 | } 33 | -------------------------------------------------------------------------------- /cells/flk/packages/development/lua-modules/bling/default.nix: -------------------------------------------------------------------------------- 1 | {fog}: fog.bling.src 2 | -------------------------------------------------------------------------------- /cells/flk/packages/development/lua-modules/layout-machi/default.nix: -------------------------------------------------------------------------------- 1 | {fog}: fog.layout-machi.src 2 | -------------------------------------------------------------------------------- /cells/flk/packages/development/lua-modules/lua-pam/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | fog, 5 | lua, 6 | linux-pam, 7 | ... 8 | }: 9 | stdenv.mkDerivation { 10 | inherit (fog.lua-pam) pname src version; 11 | 12 | nativeBuildInputs = [lua linux-pam]; 13 | 14 | installPhase = '' 15 | mkdir -p $out/lib/lua-pam 16 | install -Dm 755 liblua_pam.so -t "$out/lib/lua-pam" 17 | ''; 18 | 19 | meta = with lib; { 20 | description = "A module for lua to use PAM. "; 21 | homepage = "https://github.com/rmtt/lua-pam"; 22 | license.fullName = "MIT/X11"; 23 | maintainers = [maintainers.danielphan2003]; 24 | platforms = platforms.unix; 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /cells/flk/packages/misc/drivers/wii-u-gc-adapter/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | fog, 5 | pkgconfig, 6 | udev, 7 | libusb, 8 | }: 9 | stdenv.mkDerivation { 10 | inherit (fog.wii-u-gc-adapter) pname src version; 11 | 12 | buildInputs = [pkgconfig udev libusb]; 13 | 14 | installPhase = '' 15 | mkdir -p $out/bin 16 | install wii-u-gc-adapter $out/bin 17 | ''; 18 | 19 | hardeningDisable = ["format"]; 20 | 21 | meta = with lib; { 22 | description = "Tool for using the Wii U GameCube Adapter on Linux"; 23 | homepage = "https://github.com/ToadKing/wii-u-gc-adapter"; 24 | maintainers = [maintainers.danielphan2003]; 25 | license = licenses.mit; 26 | platforms = platforms.linux; 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /cells/flk/packages/misc/guiscrcpy/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | poetry2nix, 4 | fog, 5 | python3Packages, 6 | scrcpy, 7 | xorg, 8 | }: 9 | with python3Packages; 10 | poetry2nix.mkPoetryApplication { 11 | projectDir = fog.guiscrcpy.src; 12 | 13 | buildInputs = [scrcpy xorg.libXinerama]; 14 | 15 | overrides = poetry2nix.overrides.withDefaults (p2final: p2prev: { 16 | pyside2 = lib.traceValFn (v: p2prev.pyside2) p2prev.pyside2.overridePythonAttrs (o: {}); 17 | }); 18 | 19 | propagatedBuildInputs = [ 20 | cairosvg 21 | click 22 | colorama 23 | psutil 24 | pynput 25 | pyside2 26 | pyqt5 27 | qtpy 28 | ]; 29 | 30 | postInstall = '' 31 | mkdir -p $out/share/{applications,pixmaps} 32 | install -Dm644 appimage/guiscrcpy.desktop -t "$out/share/applications" 33 | install -Dm644 appimage/guiscrcpy.png -t "$out/share/pixmaps" 34 | ''; 35 | } 36 | -------------------------------------------------------------------------------- /cells/flk/packages/misc/vscode-extensions/cpptools/package-activation-events.json: -------------------------------------------------------------------------------- 1 | [ 2 | "onLanguage:cpp", 3 | "onLanguage:c", 4 | "onCommand:extension.pickNativeProcess", 5 | "onCommand:extension.pickRemoteNativeProcess", 6 | "onCommand:C_Cpp.ConfigurationEdit", 7 | "onCommand:C_Cpp.ConfigurationSelect", 8 | "onCommand:C_Cpp.ConfigurationProviderSelect", 9 | "onCommand:C_Cpp.SwitchHeaderSource", 10 | "onCommand:C_Cpp.Navigate", 11 | "onCommand:C_Cpp.GoToDeclaration", 12 | "onCommand:C_Cpp.PeekDeclaration", 13 | "onCommand:C_Cpp.ToggleErrorSquiggles", 14 | "onCommand:C_Cpp.ToggleIncludeFallback", 15 | "onCommand:C_Cpp.ToggleDimInactiveRegions", 16 | "onCommand:C_Cpp.ToggleSnippets", 17 | "onCommand:C_Cpp.ShowReleaseNotes", 18 | "onCommand:C_Cpp.ResetDatabase", 19 | "onCommand:C_Cpp.PauseParsing", 20 | "onCommand:C_Cpp.ResumeParsing", 21 | "onCommand:C_Cpp.ShowParsingCommands", 22 | "onCommand:C_Cpp.TakeSurvey", 23 | "onDebug", 24 | "workspaceContains:/.vscode/c_cpp_properties.json" 25 | ] 26 | -------------------------------------------------------------------------------- /cells/flk/packages/misc/yubikey-guide/after.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /cells/flk/packages/misc/yubikey-guide/before.html: -------------------------------------------------------------------------------- 1 |
2 | -------------------------------------------------------------------------------- /cells/flk/packages/misc/yubikey-guide/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | runCommand, 3 | fog, 4 | pandoc, 5 | }: let 6 | inherit (fog.yubikey-guide) pname src version; 7 | in 8 | runCommand "${pname}-${version}.html" 9 | { 10 | inherit src; 11 | nativeBuildInputs = [pandoc]; 12 | title = "YubiKey Guide"; 13 | } 14 | '' 15 | ln -s $src/{*/,README.md} . 16 | pandoc README.md \ 17 | --metadata title="$title" \ 18 | --output "$out" \ 19 | --include-in-header ${./header.html} \ 20 | --include-before-body ${./before.html} \ 21 | --include-after-body ${./after.html} \ 22 | --highlight-style haddock \ 23 | --self-contained 24 | '' 25 | -------------------------------------------------------------------------------- /cells/flk/packages/os-specific/linux/v4l2loopback-dc/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | fog, 5 | kernel, 6 | kmod, 7 | }: let 8 | inherit (fog.droidcam) pname src version; 9 | in 10 | stdenv.mkDerivation { 11 | inherit src version; 12 | 13 | pname = "v4l2loopback-dc-${version}-${kernel.version}"; 14 | 15 | sourceRoot = "source/linux/v4l2loopback"; 16 | hardeningDisable = ["pic" "format"]; # 1 17 | nativeBuildInputs = kernel.moduleBuildDependencies; # 2 18 | 19 | makeFlags = [ 20 | "KERNELRELEASE=${kernel.modDirVersion}" # 3 21 | "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" # 4 22 | "INSTALL_MOD_PATH=$(out)" # 5 23 | ]; 24 | 25 | meta = with lib; { 26 | description = "A kernel module to create V4L2 loopback devices"; 27 | homepage = "https://github.com/aramg/droidcam"; 28 | license = licenses.gpl2; 29 | maintainers = [maintainers.danielphan2003]; 30 | platforms = platforms.linux; 31 | }; 32 | } 33 | -------------------------------------------------------------------------------- /cells/flk/packages/servers/matrix-appservice-discord/generate.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env nix-shell 2 | #!nix-shell -i bash -p wget yarn2nix 3 | 4 | set -euo pipefail 5 | 6 | if [ "$#" -ne 1 ] || [[ $1 == -* ]]; then 7 | echo "Regenerates the Yarn dependency lock files for the matrix-appservice-discord package." 8 | echo "Usage: $0 " 9 | exit 1 10 | fi 11 | 12 | SRC_REPO="https://raw.githubusercontent.com/Half-Shot/matrix-appservice-discord/$1" 13 | 14 | wget "$SRC_REPO/package.json" -O package.json 15 | wget "$SRC_REPO/yarn.lock" -O yarn.lock 16 | yarn2nix --lockfile=yarn.lock >yarn-dependencies.nix 17 | rm yarn.lock 18 | -------------------------------------------------------------------------------- /cells/flk/packages/shells/zsh/pure/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | fog, 5 | }: 6 | stdenv.mkDerivation { 7 | inherit (fog.pure) pname src version; 8 | 9 | buildPhase = "true"; 10 | 11 | installPhase = '' 12 | mkdir -p $out/share/zsh/plugins/pure 13 | cp -r ./ $out/share/zsh/plugins/pure 14 | ''; 15 | 16 | meta = with lib; { 17 | description = "Pretty, minimal and fast ZSH prompt"; 18 | homepage = "https://github.com/sindresorhus/pure"; 19 | maintainers = [maintainers.danielphan2003]; 20 | platforms = platforms.unix; 21 | license = licenses.mit; 22 | }; 23 | } 24 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/file-systems/fs-diff/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | writeShellScriptBin, 3 | lib, 4 | btrfs-progs, 5 | coreutils, 6 | gnused, 7 | util-linux, 8 | }: 9 | writeShellScriptBin "fs-diff" '' 10 | PATH="$PATH:${lib.makeBinPath [btrfs-progs coreutils gnused util-linux]}" 11 | 12 | set -euo pipefail 13 | 14 | mkdir -p /mnt-btrfs 15 | [[ $(findmnt -M /mnt-btrfs) ]] || mount -t btrfs -o subvol=/ /dev/mapper/system /mnt-btrfs 16 | 17 | OLD_TRANSID=$(btrfs subvolume find-new /mnt-btrfs/root-blank 9999999) 18 | OLD_TRANSID=''${OLD_TRANSID#transid marker was } 19 | 20 | btrfs subvolume find-new "/mnt-btrfs/root" "$OLD_TRANSID" | 21 | sed '$d' | 22 | cut -f17- -d' ' | 23 | sort | 24 | uniq | 25 | while read path; do 26 | path="/$path" 27 | if [ -L "$path" ]; then 28 | : # The path is a symbolic link, so is probably handled by NixOS already 29 | elif [ -d "$path" ]; then 30 | : # The path is a directory, ignore 31 | else 32 | echo "$path" 33 | fi 34 | done 35 | '' 36 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/file-systems/ntfs2btrfs/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | stdenv, 3 | lib, 4 | pkg-config, 5 | cmake, 6 | fmt, 7 | zlib, 8 | fog, 9 | lzo, 10 | zstd, 11 | }: 12 | stdenv.mkDerivation { 13 | inherit (fog.ntfs2btrfs) pname src version; 14 | 15 | buildInputs = [pkg-config cmake fmt zlib lzo zstd]; 16 | 17 | meta = with lib; { 18 | homepage = "https://github.com/maharmstone/ntfs2btrfs"; 19 | license = licenses.gpl2; 20 | platform = platforms.linux; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/inputmethods/ibus-engines/ibus-uniemoji/allow-wrapping.patch: -------------------------------------------------------------------------------- 1 | diff --git a/uniemoji.xml.in b/uniemoji.xml.in 2 | index 5fbfd0f..6fb8ad3 100644 3 | --- a/uniemoji.xml.in 4 | +++ b/uniemoji.xml.in 5 | @@ -7,7 +7,7 @@ 6 | GPL 7 | Lalo Martins <lalo.martins@gmail.com> 8 | https://github.com/salty-horse/ibus-uniemoji 9 | - @PYTHON@ @DATADIR@/ibus-uniemoji/ibus.py --ibus 10 | + @DATADIR@/ibus-uniemoji/ibus.py --ibus 11 | uniemoji 12 | 13 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/misc/import-gsettings/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | writeShellScriptBin, 4 | coreutils, 5 | glib, 6 | gnugrep, 7 | }: 8 | writeShellScriptBin "import-gsettings" '' 9 | config="''${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini" 10 | 11 | [ ! -f "$config" ] && { 12 | notify-send "import-gsettings" "Error finding $config" 13 | exit 1 14 | } 15 | 16 | getProp() { 17 | ${gnugrep}/bin/grep "$1" "$config" | ${coreutils}/bin/cut -d'=' -f2 18 | } 19 | 20 | gnome_schema="org.gnome.desktop.interface" 21 | 22 | ${glib}/bin/gsettings set org.gtk.Settings.FileChooser window-size "(1100,700)" 23 | 24 | ${lib.concatMapStringsSep "\n" 25 | (x: ''${glib}/bin/gsettings set "$gnome_schema" ${x} "$(getProp ${x}-name)"'') 26 | [ 27 | "gtk-theme" 28 | "icon-theme" 29 | "cursor-theme" 30 | "font" 31 | ]} 32 | '' 33 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/misc/revanced-cli/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | writeShellApplication, 3 | fog, 4 | openjdk17, 5 | }: 6 | writeShellApplication { 7 | name = "revanced-cli"; 8 | runtimeInputs = [openjdk17]; 9 | text = '' 10 | java -jar \ 11 | ${fog.revanced-cli.src} \ 12 | --merge ${fog.revanced-integrations.src} \ 13 | --bundles ${fog.revanced-patches-jar.src} \ 14 | "$@" 15 | ''; 16 | } 17 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/networking/doggo/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | fog, 4 | buildGoModule, 5 | }: 6 | buildGoModule rec { 7 | inherit (fog.doggo) pname src version; 8 | 9 | vendorSha256 = "sha256-qcR3fEkrd49e/p5UBklMK4dVE8Mu3uwlNJmQa0PT1jk="; 10 | 11 | ldflags = ["-X main.buildVersion=${version}"]; 12 | 13 | meta = with lib; { 14 | description = "🐶 Command-line DNS Client for Humans. Written in Golang "; 15 | homepage = "https://doggo.mrkaran.dev"; 16 | license = licenses.gpl3; 17 | maintainers = [maintainers.danielphan2003]; 18 | }; 19 | } 20 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/networking/playit-agent/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | fetchFromGitHub, 4 | rustPlatform, 5 | }: 6 | rustPlatform.buildRustPackage rec { 7 | pname = "playit-agent"; 8 | version = "18e692e513437c792c4b56977b72db33342a22c4"; 9 | src = fetchFromGitHub { 10 | owner = "playit-cloud"; 11 | repo = pname; 12 | rev = version; 13 | sha256 = "sha256-/7zWL3LNoT99T9o9Ozr07zoFnpjnnXBWJseUUmAx3zw="; 14 | }; 15 | doCheck = false; 16 | cargoLock = { 17 | lockFile = "${src}/Cargo.lock"; 18 | outputHashes = { 19 | "webbrowser-0.5.5" = "sha256-9LhheWDmQKUdKLsYo5Uo+Z3PlKeMMnZvfWyXOMvEf7M="; 20 | }; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/servers/conduit-toolbox/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | rustPlatform, 3 | lib, 4 | fog, 5 | pkg-config, 6 | clangStdenv, 7 | clang, 8 | llvmPackages, 9 | rocksdb, 10 | }: 11 | rustPlatform.buildRustPackage { 12 | inherit (fog.conduit-toolbox) pname src version; 13 | 14 | cargoLock = fog.conduit-toolbox.cargoLock."Cargo.lock"; 15 | 16 | LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib"; 17 | 18 | nativeBuildInputs = [clang llvmPackages.libclang]; 19 | 20 | buildInputs = [ 21 | pkg-config 22 | clangStdenv 23 | llvmPackages.libclang.lib 24 | rocksdb 25 | ]; 26 | 27 | meta = with lib; { 28 | description = "🧰🦀 A bunch of tools that're helpful for conduit"; 29 | homepage = "https://github.com/ShadowJonathan/conduit_toolbox"; 30 | maintainers = with maintainers; [danielphan2003]; 31 | }; 32 | } 33 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/wayland/hyprland-tools/default.nix: -------------------------------------------------------------------------------- 1 | {callPackage}: { 2 | window-name-listener = callPackage ./window-name-listener.nix {}; 3 | } 4 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/wayland/hyprland-tools/window-name-listener.nix: -------------------------------------------------------------------------------- 1 | { 2 | writeShellScriptBin, 3 | socat, 4 | }: 5 | writeShellScriptBin "hyprland-window-name-listener" '' 6 | set -o pipefail 7 | 8 | function handle { 9 | case "$1" in 10 | 'activewindow>>'*) 11 | TEXT="''${1:14}" 12 | TEXT="''${TEXT/,/: }" 13 | ;; 14 | 'fullscreen>>'*) 15 | (( "''${1:12}" )) && CLASS="fullscreen" || CLASS="" 16 | ;; 17 | esac 18 | 19 | cat << EOF 20 | { "text": "''${TEXT}", "class": "''${CLASS}" } 21 | EOF 22 | 23 | } 24 | 25 | ${socat}/bin/socat -U - UNIX-CONNECT:/tmp/hypr/''${HYPRLAND_INSTANCE_SIGNATURE}/.socket2.sock | while read line; do handle $line; done 26 | '' 27 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/wayland/paper/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | rustPlatform, 3 | lib, 4 | fog, 5 | makeWrapper, 6 | pkg-config, 7 | fontconfig, 8 | wayland, 9 | }: 10 | rustPlatform.buildRustPackage { 11 | inherit (fog.paper) pname version src; 12 | 13 | cargoLock = fog.paper.cargoLock."Cargo.lock"; 14 | 15 | nativeBuildInputs = [makeWrapper pkg-config]; 16 | 17 | buildInputs = [fontconfig]; 18 | 19 | postFixup = '' 20 | wrapProgram $out/bin/paper \ 21 | --prefix LD_LIBRARY_PATH : "${wayland}/lib" 22 | ''; 23 | 24 | meta = with lib; { 25 | description = "A wallpaper daemon for Wayland compositors implementing the layer-shell protocol."; 26 | homepage = "https://gitlab.com/snakedye/paper"; 27 | license = licenses.mit; 28 | maintainers = [maintainers.danielphan2003]; 29 | }; 30 | } 31 | -------------------------------------------------------------------------------- /cells/flk/packages/tools/wayland/sway-physlock/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | writeShellScriptBin, 3 | swaylock, 4 | physlock, 5 | sudo, 6 | }: 7 | writeShellScriptBin "sway-physlock" '' 8 | # Also lock tty 9 | /run/wrappers/bin/${sudo.pname} ${physlock}/bin/physlock -l && (${swaylock}/bin/swaylock && /run/wrappers/bin/${sudo.pname} ${physlock}/bin/physlock -L)& 10 | '' 11 | -------------------------------------------------------------------------------- /cells/flk/pkgs.nix: -------------------------------------------------------------------------------- 1 | let 2 | l = inputs.nixlib.lib; 3 | overlays = l.attrValues cell.overlays; 4 | in 5 | l.genAttrs ["nixpkgs" "nixos" "bootspec-nixpkgs"] 6 | (input: 7 | if inputs.${input} ? outPath 8 | then 9 | import inputs.${input} { 10 | inherit (cell.nixpkgsConfig) system config; 11 | inherit overlays; 12 | } 13 | else inputs.${input}.appendOverlays overlays) 14 | -------------------------------------------------------------------------------- /cells/home/homeModules.nix: -------------------------------------------------------------------------------- 1 | let 2 | l = builtins // nixlib.lib // digga.lib; 3 | inherit (inputs) digga nixlib; 4 | 5 | modules = l.rakeLeaves ./homeModules; 6 | flatModules = l.flattenTree modules; 7 | in 8 | modules 9 | // { 10 | default = l.attrValues flatModules; 11 | extra = [ 12 | inputs.arkenfox-nixos.hmModules.arkenfox 13 | inputs.impermanence.nixosModules.home-manager.impermanence 14 | inputs.hyprland.homeManagerModules.default 15 | ]; 16 | } 17 | -------------------------------------------------------------------------------- /cells/home/homeModules/services/misc/avizo.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | with lib; let 8 | cfg = config.services.avizo; 9 | in { 10 | options = { 11 | services.avizo = { 12 | enable = mkEnableOption "Enable avizo volume notifier daemon"; 13 | }; 14 | }; 15 | config = mkIf cfg.enable { 16 | assertions = [ 17 | (lib.hm.assertions.assertPlatform "services.avizo" pkgs 18 | lib.platforms.linux) 19 | ]; 20 | 21 | home.packages = [pkgs.avizo]; 22 | 23 | systemd.user.services.avizo = { 24 | Unit = { 25 | Description = "avizo volume notification"; 26 | PartOf = ["graphical-session.target"]; 27 | After = ["graphical-session.target"]; 28 | }; 29 | 30 | Service = { 31 | ExecStart = "${pkgs.avizo}/bin/avizo-service"; 32 | }; 33 | 34 | Install = {WantedBy = ["graphical-session.target"];}; 35 | }; 36 | }; 37 | } 38 | -------------------------------------------------------------------------------- /cells/home/homeModules/services/swhks.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | nixosConfig, 6 | ... 7 | }: 8 | with lib; let 9 | cfg = config.services.swhks; 10 | 11 | nixosCfg = nixosConfig.systemd.user.services.swhks; 12 | in { 13 | options = { 14 | services.swhks = { 15 | enable = mkEnableOption nixosCfg.description; 16 | 17 | systemdTarget = mkOption { 18 | type = types.str; 19 | default = "default.target"; 20 | description = '' 21 | Systemd target to bind to. 22 | ''; 23 | }; 24 | }; 25 | }; 26 | 27 | config = mkIf cfg.enable { 28 | systemd.user.services.swhks = { 29 | Unit = { 30 | Description = nixosCfg.description; 31 | PartOf = cfg.systemdTarget; 32 | Requires = cfg.systemdTarget; 33 | After = cfg.systemdTarget; 34 | }; 35 | 36 | Service = nixosCfg.serviceConfig; 37 | 38 | Install = {WantedBy = [cfg.systemdTarget];}; 39 | }; 40 | }; 41 | } 42 | -------------------------------------------------------------------------------- /cells/home/homeProfiles.nix: -------------------------------------------------------------------------------- 1 | inputs.digga.lib.rakeLeaves ./homeProfiles 2 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/desktop-environments/gnome.nix: -------------------------------------------------------------------------------- 1 | # unmaintained 2 | {pkgs, ...}: { 3 | home.packages = builtins.attrValues { 4 | # desktop look & feel 5 | inherit 6 | (pkgs.gnome3) 7 | gnome-tweak-tool 8 | ; 9 | 10 | # extensions 11 | inherit 12 | (pkgs.gnomeExtensions) 13 | appindicator 14 | battery-status 15 | dash-to-dock 16 | ; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/login-managers/sddm.nix: -------------------------------------------------------------------------------- 1 | # unmaintained 2 | { 3 | self, 4 | config, 5 | pkgs, 6 | ... 7 | }: { 8 | home.packages = [ 9 | (pkgs.user-icon.override rec { 10 | inherit (config.home) username; 11 | icon = "${self}/home/users/${username}/icon.png"; 12 | }) 13 | ]; 14 | } 15 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/configuration/client/buttons.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local modkey = require("configuration.keys.mod").mod_key 3 | 4 | return awful.util.table.join( 5 | awful.button({}, 1, function(c) 6 | c:emit_signal("request::activate") 7 | c:raise() 8 | end), 9 | awful.button({ modkey }, 1, awful.mouse.client.move), 10 | awful.button({ modkey }, 3, awful.mouse.client.resize), 11 | awful.button({ modkey }, 4, function() 12 | awful.layout.inc(1) 13 | end), 14 | awful.button({ modkey }, 5, function() 15 | awful.layout.inc(-1) 16 | end) 17 | ) 18 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/configuration/client/init.lua: -------------------------------------------------------------------------------- 1 | require("configuration.client.rules") 2 | require("configuration.client.signals") 3 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/configuration/init.lua: -------------------------------------------------------------------------------- 1 | return { 2 | keys = require("configuration.keys"), 3 | apps = require("configuration.apps"), 4 | } 5 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/configuration/keys/init.lua: -------------------------------------------------------------------------------- 1 | return { 2 | mod = require("configuration.keys.mod"), 3 | global = require("configuration.keys.global"), 4 | } 5 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/configuration/keys/mod.lua: -------------------------------------------------------------------------------- 1 | return { 2 | mod_key = "Mod4", 3 | alt_key = "Mod1", 4 | } 5 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/configuration/rofi/global/icons/suggestion.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/configuration/user-profile/gerome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielphan2003/flk/198bf56b8dde0c075f89f58952bedfa85e0b3cf7/cells/home/homeProfiles/desktop/window-managers/awesome/configuration/user-profile/gerome.png -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/default.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: let 2 | inherit (builtins) attrValues; 3 | in { 4 | xdg.configFile = { 5 | "awesome" = { 6 | source = ./.; 7 | recursive = true; 8 | }; 9 | "awesome/bling".source = pkgs.luaPackages.bling; 10 | "awesome/layout-machi".source = pkgs.luaPackages.layout-machi; 11 | }; 12 | 13 | home.packages = attrValues { 14 | inherit (pkgs) rofi; 15 | }; 16 | 17 | xsession.windowManager.awesome.enable = true; 18 | } 19 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/module/bling: -------------------------------------------------------------------------------- 1 | ../bling -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/module/layout-machi: -------------------------------------------------------------------------------- 1 | ../layout-machi -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/theme/init.lua: -------------------------------------------------------------------------------- 1 | local gtable = require("gears.table") 2 | local default_theme = require("theme.default-theme") 3 | -- PICK THEME HERE 4 | local theme = require("theme.linear-theme") 5 | 6 | local final_theme = {} 7 | gtable.crush(final_theme, default_theme.theme) 8 | gtable.crush(final_theme, theme.theme) 9 | default_theme.awesome_overrides(final_theme) 10 | theme.awesome_overrides(final_theme) 11 | 12 | return final_theme 13 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/theme/wallpapers/AUTHORS: -------------------------------------------------------------------------------- 1 | The images are not mine. Links here: 2 | 3 | https://wall.alphacoders.com/big.php?i=988615 4 | https://wall.alphacoders.com/big.php?i=725593 5 | https://wall.alphacoders.com/big.php?i=863809 6 | https://wall.alphacoders.com/big.php?i=743289 7 | https://wall.alphacoders.com/big.php?i=805656 8 | https://hdqwalls.com/wallpaper/2560x1440/no-mans-sky-game-2019-4k 9 | https://www.pinterest.ph/pin/216313588332943910/ 10 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/theme/wallpapers/locksreen-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielphan2003/flk/198bf56b8dde0c075f89f58952bedfa85e0b3cf7/cells/home/homeProfiles/desktop/window-managers/awesome/theme/wallpapers/locksreen-bg.jpg -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/theme/wallpapers/midnight-wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielphan2003/flk/198bf56b8dde0c075f89f58952bedfa85e0b3cf7/cells/home/homeProfiles/desktop/window-managers/awesome/theme/wallpapers/midnight-wallpaper.jpg -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/theme/wallpapers/morning-wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielphan2003/flk/198bf56b8dde0c075f89f58952bedfa85e0b3cf7/cells/home/homeProfiles/desktop/window-managers/awesome/theme/wallpapers/morning-wallpaper.jpg -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/theme/wallpapers/night-wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielphan2003/flk/198bf56b8dde0c075f89f58952bedfa85e0b3cf7/cells/home/homeProfiles/desktop/window-managers/awesome/theme/wallpapers/night-wallpaper.jpg -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/theme/wallpapers/noon-wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielphan2003/flk/198bf56b8dde0c075f89f58952bedfa85e0b3cf7/cells/home/homeProfiles/desktop/window-managers/awesome/theme/wallpapers/noon-wallpaper.jpg -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/utilities/profile-image: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Depends: Mugshot 4 | # Written by manilarome 5 | 6 | awesome_dir="${HOME}/.config/awesome/" 7 | user_profile_dir="${awesome_dir}/configuration/user-profile/" 8 | 9 | accountsservice_user_icons="/var/lib/AccountsService/icons/${USER}" 10 | 11 | # Check if user image exists 12 | if [ -f "${user_profile_dir}${USER}.png" ]; 13 | then 14 | if [ -f "${accountsservice_user_icons}" ]; 15 | then 16 | if ! cmp --silent "${user_profile_dir}${USER}.png" "${accountsservice_user_icons}"; 17 | then 18 | cp "${accountsservice_user_icons}" "${user_profile_dir}${USER}.png" 19 | fi 20 | printf "${user_profile_dir}${USER}.png" 21 | else 22 | printf "${user_profile_dir}${USER}.png" 23 | fi 24 | exit; 25 | else 26 | if [ -f "${accountsservice_user_icons}" ]; 27 | then 28 | cp "${accountsservice_user_icons}" "${user_profile_dir}${USER}.png" 29 | printf "${user_profile_dir}${USER}.png" 30 | exit; 31 | else 32 | printf "default" 33 | exit; 34 | fi 35 | fi 36 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/bluetooth-toggle/icons/bluetooth-off.svg: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/bluetooth-toggle/icons/bluetooth.svg: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/bluetooth/icons/bluetooth-off.svg: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/bluetooth/icons/bluetooth.svg: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/layoutbox/init.lua: -------------------------------------------------------------------------------- 1 | local wibox = require("wibox") 2 | local awful = require("awful") 3 | local beautiful = require("beautiful") 4 | local dpi = beautiful.xresources.apply_dpi 5 | local clickable_container = require("widget.clickable-container") 6 | 7 | local layout_box = function(s) 8 | local layoutbox = wibox.widget({ 9 | { 10 | awful.widget.layoutbox(s), 11 | margins = dpi(7), 12 | widget = wibox.container.margin, 13 | }, 14 | widget = clickable_container, 15 | }) 16 | layoutbox:buttons(awful.util.table.join( 17 | awful.button({}, 1, function() 18 | awful.layout.inc(1) 19 | end), 20 | awful.button({}, 3, function() 21 | awful.layout.inc(-1) 22 | end), 23 | awful.button({}, 4, function() 24 | awful.layout.inc(1) 25 | end), 26 | awful.button({}, 5, function() 27 | awful.layout.inc(-1) 28 | end) 29 | )) 30 | return layoutbox 31 | end 32 | 33 | return layout_box 34 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/mpd/content/album-cover.lua: -------------------------------------------------------------------------------- 1 | local gears = require("gears") 2 | local awful = require("awful") 3 | local wibox = require("wibox") 4 | local dpi = require("beautiful").xresources.apply_dpi 5 | local config_dir = gears.filesystem.get_configuration_dir() 6 | local widget_icon_dir = config_dir .. "widget/mpd/icons/" 7 | 8 | local album_cover_img = wibox.widget({ 9 | { 10 | id = "cover", 11 | image = widget_icon_dir .. "vinyl.svg", 12 | resize = true, 13 | clip_shape = gears.shape.rounded_rect, 14 | widget = wibox.widget.imagebox, 15 | }, 16 | layout = wibox.layout.fixed.vertical, 17 | }) 18 | 19 | return album_cover_img 20 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/mpd/content/init.lua: -------------------------------------------------------------------------------- 1 | -- Return UI Table 2 | return { 3 | album_cover = require("widget.mpd.content.album-cover"), 4 | song_info = require("widget.mpd.content.song-info"), 5 | media_buttons = require("widget.mpd.content.media-buttons"), 6 | } 7 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/mpd/init.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local wibox = require("wibox") 3 | local gears = require("gears") 4 | local beautiful = require("beautiful") 5 | local dpi = beautiful.xresources.apply_dpi 6 | local ui_content = require("widget.mpd.content") 7 | local album = ui_content.album_cover 8 | local song_info = ui_content.song_info.music_info 9 | local media_buttons = ui_content.media_buttons.navigate_buttons 10 | 11 | local music_box = wibox.widget({ 12 | layout = wibox.layout.align.horizontal, 13 | forced_height = dpi(46), 14 | { 15 | layout = wibox.layout.fixed.horizontal, 16 | spacing = dpi(10), 17 | album, 18 | song_info, 19 | }, 20 | nil, 21 | { 22 | layout = wibox.layout.align.vertical, 23 | expand = "none", 24 | nil, 25 | media_buttons, 26 | nil, 27 | }, 28 | }) 29 | 30 | -- Mpd widget updater 31 | require("widget.mpd.mpd-music-updater") 32 | 33 | return music_box 34 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/network/icons/wifi-strength-outline.svg: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/network/icons/wifi.svg: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/notif-center/build-notifbox/notifbox-scroller.lua: -------------------------------------------------------------------------------- 1 | local awful = require("awful") 2 | local gears = require("gears") 3 | 4 | local add_button_event = function(widget) 5 | widget:buttons(gears.table.join( 6 | awful.button({}, 4, nil, function() 7 | if #widget.children == 1 then 8 | return 9 | end 10 | widget:insert(1, widget.children[#widget.children]) 11 | widget:remove(#widget.children) 12 | end), 13 | awful.button({}, 5, nil, function() 14 | if #widget.children == 1 then 15 | return 16 | end 17 | widget:insert(#widget.children + 1, widget.children[1]) 18 | widget:remove(1) 19 | end) 20 | )) 21 | end 22 | 23 | return add_button_event 24 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/notif-center/icons/delete.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/screen-recorder/icons/close-screen.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/screen-recorder/init.lua: -------------------------------------------------------------------------------- 1 | local recorder_table = require("widget.screen-recorder.screen-recorder-ui") 2 | require("widget.screen-recorder.screen-recorder-ui-backend") 3 | local screen_rec_toggle_button = recorder_table.screen_rec_toggle_button 4 | 5 | local return_button = function() 6 | return screen_rec_toggle_button 7 | end 8 | 9 | return return_button 10 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/awesome/widget/screen-recorder/screen-recorder-config.lua: -------------------------------------------------------------------------------- 1 | local user_preferences = {} 2 | local config = require("configuration.config") 3 | 4 | -- Screen WIDTHxHEIGHT 5 | user_preferences.user_resolution = config.widget.screen_recorder.resolution or "1366x768" 6 | 7 | -- Offset x,y 8 | user_preferences.user_offset = config.widget.screen_recorder.offset or "0,0" 9 | 10 | -- bool true or false 11 | user_preferences.user_audio = config.widget.screen_recorder.audio or false 12 | 13 | -- String $HOME 14 | user_preferences.user_save_directory = config.widget.screen_recorder.save_directory 15 | or "$(xdg-user-dir VIDEOS)/Recordings/" 16 | 17 | -- String 18 | user_preferences.user_mic_lvl = config.widget.screen_recorder.mic_level or "20" 19 | 20 | -- String 21 | user_preferences.user_fps = config.widget.screen_recorder.fps or "30" 22 | 23 | return user_preferences 24 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/sway/assets/shadows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielphan2003/flk/198bf56b8dde0c075f89f58952bedfa85e0b3cf7/cells/home/homeProfiles/desktop/window-managers/sway/assets/shadows.png -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/sway/io.nix: -------------------------------------------------------------------------------- 1 | { 2 | wayland.windowManager.sway.config = { 3 | input."type:keyboard" = { 4 | xkb_layout = "us"; 5 | xkb_options = "grp:alt_shift_toggle"; 6 | xkb_numlock = "enabled"; 7 | }; 8 | 9 | input."type:touchpad" = { 10 | tap = "enabled"; 11 | natural_scroll = "enabled"; 12 | scroll_method = "two_finger"; 13 | }; 14 | 15 | output."HDMI-A-1" = { 16 | mode = "1920x1080@75Hz"; 17 | subpixel = "rgb"; 18 | scale = "1.0"; 19 | }; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/sway/keybindings/games.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: let 2 | gamecheat = pkgs.callPackage ../scripts/gamecheat.nix {}; 3 | in { 4 | services.swhkd.keybindings = { 5 | "super + g" = "exec ${gamecheat}"; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/sway/keybindings/screenshot.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: let 2 | flameshot = "${pkgs.flameshot}/bin/flameshot"; 3 | in { 4 | services.swhkd.keybindings = { 5 | # Clip full - copy the whole screen. 6 | "print" = "${flameshot} screen -c"; 7 | 8 | # Clip part - copy a region of the screen. 9 | "super + shift + s" = "${flameshot} gui"; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/sway/keybindings/windows.nix: -------------------------------------------------------------------------------- 1 | { 2 | services.swhkd.keybindings = { 3 | # Kill focused window 4 | "alt + f4" = "exec swaymsg kill"; 5 | 6 | "super + {_,shift + }{h,j,k,l}" = "exec swaymsg {focus,move} {left,down,up,right}"; 7 | 8 | "super + {_,shift + }{left,down,up,right}" = "exec swaymsg {focus,move} {left,down,up,right}"; 9 | 10 | "super + {b,c}" = "exec swaymsg split{h,v}"; 11 | 12 | "super + f" = "exec swaymsg fullscreen toggle"; 13 | 14 | "super + a" = "exec swaymsg focus parent"; 15 | 16 | # "super + {e,w,s}" = "exec swaymsg layout {toggle split,tabbed,stacking}"; 17 | 18 | "super + space" = "exec swaymsg focus mode_toggle"; 19 | 20 | "super + shift + space" = "exec swaymsg floating toggle"; 21 | 22 | # Resize window to φ, or ½, or Φ, ratio of screen, with: 23 | # $φ = 38 ppt 24 | # $Φ = 62 ppt 25 | "super + {shift + ,ctrl + ,_}z" = "exec swaymsg resize set width \\\${φ,50,Φ}"; 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/sway/scripts/bemenu-run.nix: -------------------------------------------------------------------------------- 1 | { 2 | writeShellScript, 3 | bemenu, 4 | sway, 5 | jq, 6 | }: 7 | writeShellScript "bemenu-run.sh" '' 8 | if [ -f "~/.cache/wal/colors.sh" ]; then 9 | source ~/.cache/wal/colors.sh 10 | else 11 | background='#1a1a1a' 12 | color5='#268bd2' 13 | #color6='#2E3440' 14 | fi 15 | 16 | BEMENU_ARGS=(-n -i -p "" --tb "$background" --tf "$color5" --fb "$background" --nb "$background" --hb "$background" --hf "$color5" -m $(${sway}/bin/swaymsg -r -t get_outputs | ${jq}/bin/jq '. | reverse | to_entries | .[] | select(.value.focused == true) | .key') "$@") 17 | 18 | if [ "$1" = 'bemenu' ]; then 19 | ${bemenu}/bin/bemenu-run ''${BEMENU_ARGS[@]} 20 | else 21 | ${bemenu}/bin/bemenu ''${BEMENU_ARGS[@]} 22 | fi 23 | '' 24 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/sway/scripts/bemenu-screenshare.nix: -------------------------------------------------------------------------------- 1 | { 2 | writeShellScript, 3 | bemenu-run, 4 | screenshare, 5 | }: 6 | writeShellScript "bemenu-screenshare.sh" '' 7 | ## Shows a dropdown menu to start, stop or view the status of screensharing 8 | 9 | case "$(echo -e " Start\n Stop\n Status" | ${bemenu-run} -l 4 -p "Screensharing:")" in 10 | " Start") ${screenshare} ;; 11 | " Stop") ${screenshare} stop ;; 12 | " Status") ${screenshare} is-recording ;; 13 | esac 14 | '' 15 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/sway/scripts/clipboard-daemon.nix: -------------------------------------------------------------------------------- 1 | { 2 | writeShellScript, 3 | ts, 4 | libnotify, 5 | wl-clipboard, 6 | clipman, 7 | }: 8 | writeShellScript "clipboard-daemon.sh" '' 9 | export XDG_RUNTIME_DIR=/run/user/`id -u` 10 | export WAYLAND_DISPLAY=wayland-1 11 | 12 | pkill ${wl-clipboard}/bin/wl-paste || ${libnotify}/bin/notify-send "Restarting clipman: already dead" | ${ts}/bin/ts 13 | 14 | exec ${wl-clipboard}/bin/wl-paste -p -t text --watch ${clipman}/bin/clipman store -P 2>&1 | ${ts}/bin/ts > ~/.local/share/clipman.log 15 | '' 16 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/sway/scripts/gamecheat.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | writeShellScript, 4 | rofi, 5 | wlrctl, 6 | }: let 7 | cheats = { 8 | "1. Vũ khí hạng nặng" = "NUTTERTOOLS"; 9 | "2. Đầy đủ sức khỏe" = "ASPIRINE"; 10 | "3. Đuổi cảnh sát" = "LEAVEMEALONE"; 11 | "4. Đầy đủ áo giáp" = "PRECIOUSPROTECTION"; 12 | }; 13 | mapCheatSelection = selection: cheat: ''"${selection}") sleep 1 && wlrctl keyboard type "${cheat}" ;;''; 14 | selections = lib.mapAttrsToList mapCheatSelection cheats; 15 | binPath = lib.makeBinPath [rofi wlrctl]; 16 | in 17 | writeShellScript "gamecheat.sh" '' 18 | PATH=$PATH:${binPath} 19 | 20 | case "$(printf "${lib.concatStringsSep ''\n'' (builtins.attrNames cheats)}" | rofi -dmenu)" in 21 | ${lib.concatStringsSep "\n" selections} 22 | esac 23 | '' 24 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/sway/scripts/workspaces.nix: -------------------------------------------------------------------------------- 1 | { 2 | writeShellScript, 3 | sway-unwrapped, 4 | ... 5 | }: 6 | writeShellScript "workspaces.sh" '' 7 | if ! ${sway-unwrapped}/bin/swaymsg workspace $@; then 8 | if [ $@ -eq 1 ]; then 9 | riverctl set-focused-tags $((1 << ($@ - 1))) 10 | else 11 | riverctl set-focused-tags $((1 << ($@ - 5))) 12 | fi 13 | fi 14 | '' 15 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/window-managers/sway/startup.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: let 2 | clipboard-daemon = pkgs.callPackage ./scripts/clipboard-daemon.nix {}; 3 | in { 4 | wayland.windowManager.sway.config.startup = [ 5 | { 6 | command = "${pkgs.alacritty}/bin/alacritty"; 7 | always = true; 8 | } 9 | {command = "${pkgs.autotiling}/bin/autotiling";} 10 | {command = "${clipboard-daemon}";} 11 | { 12 | command = "$(${pkgs.procps}/bin/pkill -u $USER swhks || true) && ${pkgs.swhkd}/bin/swhks"; 13 | always = true; 14 | } 15 | { 16 | command = "${pkgs.import-gsettings}/bin/import-gsettings"; 17 | always = true; 18 | } 19 | { 20 | command = "${pkgs.flameshot}/bin/flameshot"; 21 | always = true; 22 | } 23 | { 24 | command = "[ $(${pkgs.ibus}/bin/ibus restart && exit) ] || ${pkgs.ibus}/bin/ibus-daemon -drx"; 25 | always = true; 26 | } 27 | {command = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";} 28 | ]; 29 | } 30 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/desktop/xdg.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.packages = [pkgs.xdg_utils]; 3 | 4 | home.sessionVariables = { 5 | __GL_SHADER_DISK_CACHE_PATH = "$XDG_CACHE_HOME/nv"; 6 | ASPELL_CONF = '' 7 | per-conf $XDG_CONFIG_HOME/aspell/aspell.conf; 8 | personal $XDG_CONFIG_HOME/aspell/en_US.pws; 9 | repl $XDG_CONFIG_HOME/aspell/en.prepl; 10 | ''; 11 | CUDA_CACHE_PATH = "$XDG_CACHE_HOME/nv"; 12 | HISTFILE = "$XDG_DATA_HOME/bash/history"; 13 | INPUTRC = "$XDG_CONFIG_HOME/readline/inputrc"; 14 | LESSHISTFILE = "$XDG_CACHE_HOME/lesshst"; 15 | WGETRC = "$XDG_CONFIG_HOME/wgetrc"; 16 | }; 17 | 18 | xdg = { 19 | enable = true; 20 | userDirs = { 21 | enable = true; 22 | desktop = "$HOME/desk"; 23 | documents = "$HOME/docs"; 24 | download = "$HOME/dl"; 25 | music = "$HOME/mus"; 26 | pictures = "$HOME/pics"; 27 | publicShare = "$HOME/pub"; 28 | templates = "$HOME/docs/templates"; 29 | videos = "$HOME/av"; 30 | }; 31 | }; 32 | } 33 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/gui/gtk.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | gtk.enable = true; 3 | 4 | qt.platformTheme = "gtk"; 5 | 6 | services.gpg-agent.pinentryFlavor = "gnome3"; 7 | } 8 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/gui/platforms/wayland.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | services.eww.package = pkgs.eww-wayland; 3 | } 4 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/misc/persistence.nix: -------------------------------------------------------------------------------- 1 | {config, ...}: { 2 | systemd.user.tmpfiles.rules = [ 3 | "L /home/danie/.gnupg - - - - /mnt/danie/.gnupg" 4 | "L /home/danie/.ssh - - - - /mnt/danie/.ssh" 5 | "L /home/danie/.nixops - - - - /mnt/danie/.nixops" 6 | "L /home/danie/.cache/spotify - - - - /mnt/danie/.cache/spotify" 7 | "L /home/danie/.local/share/keyrings - - - - /mnt/danie/.local/share/keyrings" 8 | "L /home/danie/.local/share/direnv - - - - /mnt/danie/.local/share/direnv" 9 | "L /home/danie/.local/share/libvirt - - - - /mnt/danie/.local/share/libvirt" 10 | "L /home/danie/av - - - - /mnt/danie/av" 11 | "L /home/danie/dl - - - - /mnt/danie/dl" 12 | "L /home/danie/docs - - - - /mnt/danie/docs" 13 | "L /home/danie/games - - - - /mnt/danie/games" 14 | "L /home/danie/mus - - - - /mnt/danie/mus" 15 | "L /home/danie/ongoing - - - - /mnt/danie/ongoing" 16 | "L /home/danie/pics - - - - /mnt/danie/pics" 17 | ]; 18 | } 19 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/direnv.nix: -------------------------------------------------------------------------------- 1 | { 2 | programs.direnv = { 3 | enable = true; 4 | nix-direnv = { 5 | enable = true; 6 | }; 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/edge.nix: -------------------------------------------------------------------------------- 1 | # unmaintained 2 | {pkgs, ...}: { 3 | home.packages = let 4 | edgeCompat = 5 | if pkgs.system != "x86_64-linux" 6 | then {inherit (pkgs) microsoft-edge-beta;} 7 | else {}; 8 | 9 | edgePkgs = {}; 10 | in 11 | builtins.attrValues (edgeCompat // edgePkgs); 12 | } 13 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/editors/neovim.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | programs.neovim = { 3 | enable = true; 4 | plugins = builtins.attrValues { 5 | inherit 6 | (pkgs.vimPlugins) 7 | fennel-vim 8 | # yuck 9 | 10 | ; 11 | }; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/eww/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | lib, 4 | ... 5 | }: { 6 | services.eww-mpris = { 7 | enable = true; 8 | template = { 9 | box = ./templates/mpris/box.yuck; 10 | button = ./templates/mpris/button.yuck; 11 | }; 12 | }; 13 | 14 | services.eww.enable = true; 15 | 16 | xdg.configFile."eww".source = ./.; 17 | } 18 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/eww/templates/mpris/box.yuck: -------------------------------------------------------------------------------- 1 | (box :class "music" :orientation "h" :space-evenly false :halign "center" 2 | {button}) 3 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/eww/templates/mpris/button.yuck: -------------------------------------------------------------------------------- 1 | (button :class "{status}" :halign "fill" 2 | :onclick "playerctl --player={player} play-pause" 3 | "{icon}{title}{artist}") 4 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/firefox/base.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: let 7 | inherit (pkgs.stdenv.hostPlatform) isDarwin; 8 | 9 | mozillaConfigPath = 10 | if isDarwin 11 | then "Library/Application Support/Mozilla" 12 | else ".mozilla"; 13 | in { 14 | programs.firefox = { 15 | enable = true; 16 | 17 | # To prevent fingerprinting, arkenfox users might want to use stable firefox instead 18 | package = lib.mkDefault (pkgs.firefox-nightly-bin.override (import ./overrides.nix)); 19 | 20 | profiles.default = { 21 | name = config.home.username; 22 | id = 0; 23 | isDefault = true; 24 | }; 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/firefox/disable-rfp.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | programs.firefox.profiles.default.arkenfox = { 3 | /* 4 | override recipe: RFP is not for me ** 5 | */ 6 | "4500" = { 7 | "4501"."privacy.resistFingerprinting".value = false; 8 | "4504"."privacy.resistFingerprinting.letterboxing".value = false; # [pointless if not using RFP] 9 | "4520"."webgl.disabled".value = false; # [mostly pointless if not using RFP] 10 | }; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/firefox/fx_cast.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: let 2 | inherit (pkgs.stdenv.hostPlatform) isDarwin; 3 | 4 | mozillaConfigPath = 5 | if isDarwin 6 | then "Library/Application Support/Mozilla" 7 | else ".mozilla"; 8 | in { 9 | home.file = { 10 | "${mozillaConfigPath}/native-messaging-hosts/fx_cast_bridge.json".source = "${pkgs.fx_cast_bridge}/lib/mozilla/native-messaging-hosts/fx_cast_bridge.json"; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/firefox/overrides.nix: -------------------------------------------------------------------------------- 1 | # overrides for firefox package 2 | { 3 | extraPolicies = { 4 | CaptivePortal = false; 5 | DisableFirefoxStudies = true; 6 | DisablePocket = true; 7 | DisableTelemetry = true; 8 | FirefoxHome = { 9 | Pocket = false; 10 | Snippets = false; 11 | }; 12 | UserMessaging = { 13 | ExtensionRecommendations = false; 14 | SkipOnboarding = true; 15 | }; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/firefox/pywalfox.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | ... 5 | }: let 6 | inherit (lib) fileContents mkAfter; 7 | 8 | inherit (pkgs.stdenv.hostPlatform) isDarwin; 9 | 10 | mozillaConfigPath = 11 | if isDarwin 12 | then "Library/Application Support/Mozilla" 13 | else ".mozilla"; 14 | in { 15 | home.packages = [pkgs.pywalfox]; 16 | 17 | programs.firefox.profiles.default = { 18 | # userChrome = mkAfter (fileContents "${pkgs.pywalfox}/share/pywalfox/userChrome.css"); 19 | 20 | # userContent = mkAfter (fileContents "${pkgs.pywalfox}/share/pywalfox/userContent.css"); 21 | }; 22 | 23 | home.file."${mozillaConfigPath}/native-messaging-hosts/pywalfox.json".source = "${pkgs.pywalfox}/lib/mozilla/native-messaging-hosts/pywalfox.json"; 24 | } 25 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/firefox/sidebar.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | ... 5 | }: let 6 | firefox-sidebar = pkgs.firefox-sidebar.override { 7 | extensions = [ 8 | # "$src/extensions/window_controls.css" 9 | "$src/extensions/bookmark_arrow.css" 10 | "$src/extensions/superbox_removal.css" 11 | "$src/extensions/avatar_size.css" 12 | ]; 13 | 14 | theme = "$src/themes/gtk_adwaita.css"; 15 | }; 16 | in { 17 | programs.firefox.profiles.default.userChrome = lib.mkAfter (lib.fileContents "${firefox-sidebar}/share/firefox/userChrome.css"); 18 | } 19 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/hyprpaper.nix: -------------------------------------------------------------------------------- 1 | {nixosConfig, ...}: { 2 | xdg.configFile."hypr/hyprpaper.conf".text = '' 3 | preload = ${nixosConfig.stylix.image} 4 | wallpaper = HDMI-A-1,${nixosConfig.stylix.image} 5 | ''; 6 | } 7 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/jetbrains-idea.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | lib, 4 | ... 5 | }: { 6 | home.packages = 7 | if builtins.elem pkgs.system pkgs.jetbrains.idea-ultimate.meta.platforms 8 | then [pkgs.jetbrains.idea-ultimate] 9 | else []; 10 | } 11 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/nwg-launchers/bar/icons/hibernate.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/nwg-launchers/bar/icons/lock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/nwg-launchers/bar/icons/logout.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/nwg-launchers/bar/icons/reboot.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/nwg-launchers/bar/icons/shutdown.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/nwg-launchers/bar/icons/suspend.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/nwg-launchers/bar/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: "SF Pro Display"; 3 | font-weight: 500; 4 | font-size: 14px; 5 | } 6 | 7 | #bar { 8 | margin: 30px; /* affects top/bottom & left/right alignment */ 9 | } 10 | 11 | button, 12 | image { 13 | background: none; 14 | border-style: none; 15 | box-shadow: none; 16 | color: #fff; 17 | } 18 | 19 | button { 20 | padding: 10px 20px; 21 | margin: 5px; 22 | } 23 | 24 | button:hover { 25 | background-color: #4a5568; 26 | } 27 | 28 | button:focus { 29 | background-color: #4a5568; 30 | } 31 | 32 | button image { 33 | padding: 10px 0px; 34 | } 35 | 36 | grid { 37 | background-color: rgba(45, 55, 72, 0.95); 38 | border-radius: 4px; 39 | padding: 20px; 40 | box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 41 | 0 4px 6px -2px rgba(0, 0, 0, 0.05); 42 | /* e.g. for common background to all buttons */ 43 | } 44 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/nwg-launchers/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | ... 5 | }: { 6 | imports = lib.flk.getNixFiles ./.; 7 | 8 | home.packages = [ 9 | pkgs.nwg-drawer 10 | pkgs.nwg-launchers 11 | pkgs.nwg-menu 12 | pkgs.nwg-panel 13 | pkgs.nwg-wrapper 14 | ]; 15 | } 16 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/nwg-launchers/dmenu.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | xdg.configFile."nwg-launchers/dmenu/style.css".source = ./dmenu/style.css; 3 | } 4 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/nwg-launchers/dmenu/style.css: -------------------------------------------------------------------------------- 1 | /* Don't delete, just in case: the menu anchor is a button */ 2 | button { 3 | background: none; 4 | border-style: none; 5 | box-shadow: none; 6 | } 7 | 8 | box { 9 | /* Uncomment to set vertical margin 10 | margin-top: 30px; 11 | margin-bottom: 30px; 12 | */ 13 | } 14 | 15 | #searchbox { 16 | /* Adjust to your taste */ 17 | } 18 | 19 | /* Menu items */ 20 | label { 21 | padding-left: 5px; 22 | } 23 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/obs-studio.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | programs.obs-studio = { 3 | enable = true; 4 | plugins = [pkgs.obs-studio-plugins.wlrobs]; 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/oguri/config: -------------------------------------------------------------------------------- 1 | [output HDMI-A-1] 2 | image=$HOME/pic/wallpaper 3 | filter=nearest 4 | scaling-mode=fill 5 | anchor=center 6 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/swaylock/default.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.packages = [pkgs.swaylock-effects pkgs.sway-physlock]; 3 | 4 | programs.swaylock.settings = { 5 | indicator = true; 6 | clock = true; 7 | screenshots = true; 8 | indicator-radius = 100; 9 | indicator-thickness = 12; 10 | # effect-blur = "7x5"; 11 | # line-color = "$BG"; 12 | datestr = "%d-%m-%Y"; 13 | show-failed-attempts = true; 14 | fade-in = 0.1; 15 | # effect-scale = 0.5; 16 | effect-blur = "8x3"; 17 | effect-scale = 2; 18 | effect-vignette = "0.5:0.5"; 19 | effect-compose = "100,-100;40x40;center;${./lock.svg}"; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/swaylock/lock.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/vscodium.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | profiles, 4 | ... 5 | }: { 6 | imports = [profiles.programs.vscode]; 7 | programs.vscode.package = pkgs.vscodium; 8 | } 9 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | ... 5 | }: { 6 | imports = lib.flk.getNixFiles ./modules; 7 | 8 | programs.waybar = { 9 | enable = true; 10 | 11 | systemd.enable = true; 12 | 13 | settings.mainBar = { 14 | height = 40; 15 | position = "bottom"; 16 | 17 | modules-left = [ 18 | "sway/workspaces" 19 | ]; 20 | 21 | modules-center = []; 22 | 23 | modules-right = [ 24 | "idle_inhibitor" 25 | "tray" 26 | "pulseaudio" 27 | "network" 28 | "clock" 29 | "custom/power" 30 | ]; 31 | }; 32 | 33 | style = lib.fileContents ./style.css; 34 | }; 35 | } 36 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/modules/backlight.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | programs.waybar.settings.mainBar.backlight = { 3 | format = "{icon}"; 4 | format-alt = "{percent}% {icon}"; 5 | format-alt-click = "click-right"; 6 | format-icons = ["○" "◐" "●"]; 7 | on-scroll-down = "light -U 10"; 8 | on-scroll-up = "light -A 10"; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/modules/battery.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | programs.waybar.settings.mainBar.battery = { 3 | states = { 4 | warning = 30; 5 | critical = 15; 6 | }; 7 | format = "{capacity}% {icon}"; 8 | format-charging = "{capacity}% "; 9 | format-plugged = "{capacity}% "; 10 | format-alt = "{time} {icon}"; 11 | format-icons = ["" "" "" "" ""]; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/modules/clock.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | programs.waybar.settings.mainBar.clock = { 3 | format = " {:%a at %d/%m → %H:%M:%S} "; 4 | format-icon = "  "; 5 | interval = 1; 6 | tooltip-format = "{:%Y %B}\n{calendar}"; 7 | format-alt = { 8 | format = " {:%A, %d %b} "; 9 | icon = "  "; 10 | }; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/modules/cpu.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | programs.waybar.settings.mainBar.cpu = { 3 | format = "{usage}% "; 4 | }; 5 | } 6 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/modules/idle-inhibitor.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | programs.waybar.settings.mainBar.idle_inhibitor = { 3 | format = "{icon}"; 4 | format-icons = { 5 | activated = ""; 6 | deactivated = ""; 7 | }; 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/modules/memory.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | programs.waybar.settings.mainBar.memory = { 3 | format = "{}% "; 4 | }; 5 | } 6 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/modules/network.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | programs.waybar.settings.mainBar.network = { 3 | format-wifi = { 4 | format = " {essid} "; 5 | icon = "  "; 6 | }; 7 | format-ethernet = { 8 | format = " {ifname} @ {ipaddr}/{cidr} "; 9 | icon = "  "; 10 | }; 11 | format-linked = { 12 | format = " {ifname} (No IP) "; 13 | icon = "  "; 14 | }; 15 | format-disconnected = { 16 | format = " Disconnected "; 17 | icon = "  "; 18 | }; 19 | tooltip-format-wifi = " Signal Strength: {signalStrength}% "; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/modules/power.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | programs.waybar.settings.mainBar."custom/power" = { 3 | format = ""; 4 | on-click = "exec ${pkgs.nwg-launchers}/bin/nwgbar -o 0.2"; 5 | escape = true; 6 | tooltip = false; 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/modules/pulseaudio.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | programs.waybar.settings.mainBar.pulseaudio = { 3 | scroll-step = 1; 4 | 5 | on-click = "pavucontrol"; 6 | 7 | format = "{icon} {volume}% {format_source}"; 8 | 9 | format-bluetooth = "{icon} {volume}% {format_source}"; 10 | format-bluetooth-muted = "  Muted {format_source}"; 11 | 12 | format-muted = " Muted {format_source}"; 13 | 14 | format-source = " {volume}%"; 15 | format-source-muted = " Muted"; 16 | 17 | format-icons = { 18 | headphone = ""; 19 | hands-free = ""; 20 | headset = ""; 21 | phone = ""; 22 | portable = ""; 23 | car = ""; 24 | default = ["" "" ""]; 25 | }; 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/modules/tray.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | programs.waybar.settings.mainBar.tray = { 3 | spacing = 10; 4 | }; 5 | } 6 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/waybar/modules/workspace.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | programs.waybar.settings.mainBar."sway/workspaces" = { 3 | # disable-scroll = true; 4 | # all-outputs = true; 5 | format = "{icon}"; 6 | format-icons = { 7 | "1" = ""; 8 | "2" = ""; 9 | "3" = ""; 10 | "4" = ""; 11 | "5" = ""; 12 | "6" = ""; 13 | "9" = ""; 14 | "10" = ""; 15 | "22" = ""; 16 | focused = ""; 17 | urgent = ""; 18 | default = ""; 19 | }; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/wayland.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.packages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | clipman 6 | dmenu 7 | flameshot 8 | grim 9 | slurp 10 | swaybg 11 | tdrop 12 | wdisplays 13 | wf-recorder 14 | wl-clipboard 15 | # wlvncc 16 | 17 | wlr-randr 18 | wlrctl 19 | wofi 20 | wtype 21 | ; 22 | }; 23 | } 24 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/wezterm.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | home.packages = [pkgs.wezterm]; 3 | } 4 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/programs/winapps.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | xdg.configFile."winapps/winapps.conf".text = '' 3 | source /run/agenix/accounts 4 | RDP_USER="$MICROSOFT_USER" 5 | RDP_PASS="$MICROSOFT_PASSWORD" 6 | RDP_DOMAIN="uwu" 7 | RDP_NAME="uwu" 8 | RDP_IP="@RDP_IP@" 9 | SHARE_PATH="~/docs" 10 | # RDP_SCALE=100 11 | MULTIMON="false" 12 | # DEBUG="true" 13 | ''; 14 | } 15 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/services/avizo.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | services.avizo.enable = true; 3 | 4 | home.packages = [pkgs.avizo]; 5 | } 6 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/services/gammastep.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | services.gammastep = { 3 | enable = true; 4 | tray = true; 5 | latitude = "10.8"; 6 | longitude = "106.6"; 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/services/kanshi.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | services.kanshi = { 3 | enable = true; 4 | profiles.default.outputs = [ 5 | { 6 | criteria = "HDMI-A-1"; 7 | mode = "1920x1080"; 8 | position = "0,0"; 9 | } 10 | ]; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/services/mako.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | pkgs, 4 | ... 5 | }: { 6 | programs.mako = { 7 | enable = true; 8 | anchor = "top-right"; 9 | layer = "overlay"; 10 | 11 | # padding = "15,20"; 12 | # margin = "0,10,10,0"; 13 | iconPath = "${config.gtk.iconTheme.package}/share/icons/${config.gtk.iconTheme.name}"; 14 | 15 | # borderSize = 1; 16 | borderRadius = 10; 17 | 18 | defaultTimeout = 10000; 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/services/swayidle.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: let 2 | lockCmd = "${pkgs.sway-physlock}/bin/sway-physlock"; 3 | in { 4 | services.swayidle = { 5 | enable = true; 6 | events = [ 7 | { 8 | event = "before-sleep"; 9 | command = lockCmd; 10 | } 11 | { 12 | event = "lock"; 13 | command = lockCmd; 14 | } 15 | ]; 16 | timeouts = [ 17 | { 18 | timeout = 600; 19 | command = lockCmd; 20 | } 21 | ]; 22 | }; 23 | } 24 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/services/swhks.nix: -------------------------------------------------------------------------------- 1 | {...}: {services.swhks.enable = true;} 2 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/services/udiskie.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | services.udiskie.enable = true; 3 | } 4 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/services/uget.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | services.uget-integrator.enable = true; 3 | } 4 | -------------------------------------------------------------------------------- /cells/home/homeProfiles/services/wayvnc.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | services.wayvnc = { 3 | enable = true; 4 | maxFps = 60; 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /cells/home/homeSuites.nix: -------------------------------------------------------------------------------- 1 | { 2 | desktop = [ 3 | cell.homeProfiles.desktop.xdg 4 | cell.homeProfiles.gui.gtk 5 | cell.homeProfiles.services.udiskie 6 | ]; 7 | 8 | ephemeral = [ 9 | cell.homeProfiles.desktop.xdg 10 | # dead hard drive lmao 11 | # cell.homeProfiles.misc.persistence; 12 | ]; 13 | 14 | streaming = [ 15 | cell.homeProfiles.programs.obs-studio 16 | ]; 17 | } 18 | -------------------------------------------------------------------------------- /cells/nixos/nixosModules/hm-system-defaults.nix: -------------------------------------------------------------------------------- 1 | {config, ...}: { 2 | home-manager.sharedModules = [ 3 | { 4 | home.stateVersion = config.system.stateVersion; 5 | 6 | home.sessionVariables = { 7 | inherit (config.environment.sessionVariables) NIX_PATH; 8 | }; 9 | 10 | xdg.configFile."nix/registry.json".text = 11 | config.environment.etc."nix/registry.json".text; 12 | } 13 | ]; 14 | } 15 | -------------------------------------------------------------------------------- /cells/nixos/nixosModules/nix-path.nix: -------------------------------------------------------------------------------- 1 | { 2 | inputs, 3 | self, 4 | pkgs, 5 | ... 6 | }: { 7 | nix.nixPath = [ 8 | "nixpkgs=${pkgs.path}" 9 | # nixos config compat 10 | "nixos-config=${self}/lib/compat/nixos" 11 | "home-manager=${inputs.home}" 12 | ]; 13 | } 14 | -------------------------------------------------------------------------------- /cells/nixos/nixosModules/nixos-system-defaults.nix: -------------------------------------------------------------------------------- 1 | { 2 | self, 3 | config, 4 | ... 5 | }: { 6 | # environment.etc."nixos".source = self; 7 | 8 | system.stateVersion = "22.11"; 9 | } 10 | -------------------------------------------------------------------------------- /cells/nixos/nixosModules/services/games/gamemode.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | with lib; let 8 | cfg = config.services.gamemode; 9 | in { 10 | options.services.gamemode = { 11 | enable = mkOption { 12 | type = types.bool; 13 | default = false; 14 | description = '' 15 | Whether to enable the gamemoded systemd user service. 16 | ''; 17 | }; 18 | }; 19 | 20 | config = mkIf cfg.enable { 21 | environment.systemPackages = [pkgs.gamemode]; 22 | 23 | services.dbus.packages = [pkgs.gamemode]; 24 | 25 | systemd.user.services.gamemoded = { 26 | description = "gamemoded"; 27 | 28 | serviceConfig = { 29 | Type = "dbus"; 30 | BusName = "com.feralinteractive.GameMode"; 31 | NotifyAccess = "main"; 32 | ExecStart = "${pkgs.gamemode}/bin/gamemoded"; 33 | }; 34 | 35 | wantedBy = ["graphical-session.target"]; 36 | partOf = ["graphical-session.target"]; 37 | }; 38 | }; 39 | } 40 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles.nix: -------------------------------------------------------------------------------- 1 | inputs.digga.lib.rakeLeaves ./nixosProfiles 2 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/boot/plymouth.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: let 7 | inherit (lib) mkDefault; 8 | in { 9 | boot.plymouth = { 10 | enable = mkDefault true; 11 | 12 | # to be overriden by profiles.gui.themes.sefia 13 | theme = mkDefault "hexagon_dots_alt"; # or "connect"; 14 | 15 | themePackages = mkDefault [(pkgs.plymouth-themes.override {inherit (config.boot.plymouth) theme;})]; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/boot/relative-token-path.patch: -------------------------------------------------------------------------------- 1 | diff --git a/lib/luks2/luks2_token.c b/lib/luks2/luks2_token.c 2 | index 88d84418..ed3a079b 100644 3 | --- a/lib/luks2/luks2_token.c 4 | +++ b/lib/luks2/luks2_token.c 5 | @@ -151,12 +151,10 @@ crypt_token_load_external(struct crypt_device *cd, const char *name, struct cryp 6 | 7 | token = &ret->u.v2; 8 | 9 | - r = snprintf(buf, sizeof(buf), "%s/libcryptsetup-token-%s.so", crypt_token_external_path(), name); 10 | + r = snprintf(buf, sizeof(buf), "libcryptsetup-token-%s.so", name); 11 | if (r < 0 || (size_t)r >= sizeof(buf)) 12 | return -EINVAL; 13 | 14 | - assert(*buf == '/'); 15 | - 16 | log_dbg(cd, "Trying to load %s.", buf); 17 | 18 | h = dlopen(buf, RTLD_LAZY); 19 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/boot/systemd-boot/stage1.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | profiles, 5 | ... 6 | }: { 7 | imports = [profiles.boot.systemd-boot.stage2]; 8 | 9 | boot.initrd.systemd.enable = lib.mkDefault config.boot.loader.systemd-boot.enable; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/boot/systemd-boot/stage2.nix: -------------------------------------------------------------------------------- 1 | {lib, ...}: let 2 | inherit (lib) mkAfter mkDefault mkForce; 3 | in { 4 | boot.loader.timeout = mkDefault 1; 5 | 6 | boot.loader.efi.canTouchEfiVariables = mkDefault true; 7 | 8 | boot.loader.systemd-boot = { 9 | # enable = mkAfter true; 10 | memtest86.enable = mkDefault true; 11 | configurationLimit = mkDefault 5; 12 | # consoleMode = mkForce "max"; 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/desktop/desktop-managers/gnome.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | services.xserver.desktopManager.gnome.enable = true; 3 | 4 | environment.systemPackages = [pkgs.gnomeExtensions.appindicator]; 5 | 6 | services.gnome.gnome-browser-connector.enable = true; 7 | 8 | services.udev.packages = [pkgs.gnome.gnome-settings-daemon]; 9 | } 10 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/desktop/drivers.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | hardware.video.hidpi.enable = true; 3 | 4 | hardware.opengl = { 5 | setLdLibraryPath = true; 6 | enable = true; 7 | extraPackages = builtins.attrValues { 8 | inherit 9 | (pkgs) 10 | libglvnd 11 | mesa 12 | ; 13 | inherit (pkgs.mesa) drivers; 14 | }; 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/desktop/gaming/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | profiles, 4 | ... 5 | }: { 6 | imports = [ 7 | profiles.programs.gamemode 8 | profiles.services.udev.game-controller 9 | ]; 10 | 11 | environment.systemPackages = builtins.attrValues { 12 | inherit 13 | (pkgs) 14 | # pcsx2 15 | 16 | prismlauncher 17 | qjoypad 18 | retroarchBare 19 | ; 20 | }; 21 | 22 | services.wii-u-gc-adapter.enable = true; 23 | 24 | # fps games on laptop need this 25 | services.xserver.libinput.touchpad.disableWhileTyping = false; 26 | 27 | # Launch steam from display managers 28 | # services.xserver.windowManager.steam = { enable = true; }; 29 | programs.steam.enable = true; 30 | 31 | # 32-bit support needed for steam 32 | hardware.opengl.driSupport32Bit = true; 33 | services.pipewire.alsa.support32Bit = true; 34 | 35 | # better for steam proton games 36 | systemd.extraConfig = "DefaultLimitNOFILE=1048576"; 37 | 38 | # improve wine performance 39 | environment.sessionVariables = {WINEDEBUG = "-all";}; 40 | } 41 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/desktop/login-managers/gdm.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | services.xserver.displayManager.gdm = { 3 | enable = true; 4 | wayland = true; 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/desktop/login-managers/greetd/gtkgreet/style.css: -------------------------------------------------------------------------------- 1 | window { 2 | background-image: url("file://@bg_img@"); 3 | background-size: cover; 4 | background-position: center; 5 | } 6 | 7 | box#body { 8 | background-color: @bg @; 9 | border-radius: 10px; 10 | padding: 50px; 11 | } 12 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/desktop/login-managers/greetd/tuigreet.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | ... 5 | }: { 6 | services.greetd = { 7 | enable = true; 8 | vt = 1; 9 | settings.default_session.command = lib.mkDefault "${pkgs.greetd.tuigreet}/bin/tuigreet"; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/desktop/login-managers/sddm.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | lib, 4 | ... 5 | }: { 6 | # TODO: maybe use wayland backend 7 | # environment.systemPackages = [ pkgs.westonLite ]; 8 | services.xserver = { 9 | enable = true; 10 | updateDbusEnvironment = true; 11 | displayManager.sddm = { 12 | enable = true; 13 | autoNumlock = true; 14 | settings = { 15 | General = { 16 | DisplayServer = "x11-user"; 17 | # DisplayServer = "wayland"; 18 | }; 19 | # Wayland = { 20 | # CompositorCommand = "/run/current-system/sw/bin/weston --shell=/run/current-system/sw/lib/weston/fullscreen-shell.so"; 21 | # }; 22 | }; 23 | }; 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/desktop/window-managers/awesome.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | services.xserver.windowManager.awesome = { 3 | enable = true; 4 | luaModules = with pkgs.luaPackages; [ 5 | awestore 6 | lgi 7 | ldbus 8 | luarocks-nix 9 | luadbi-mysql 10 | luaposix 11 | rapidjson 12 | ]; 13 | }; 14 | } 15 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/desktop/window-managers/hyprland.nix: -------------------------------------------------------------------------------- 1 | {inputs, ...}: { 2 | imports = [inputs.hyprland.nixosModules.default]; 3 | 4 | programs.hyprland.enable = true; 5 | 6 | services.xserver.displayManager.defaultSession = "hyprland"; 7 | } 8 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/desktop/xserver.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | services.xserver.enable = true; 3 | } 4 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/documentation/disabled.nix: -------------------------------------------------------------------------------- 1 | {...}: {documentation.enable = false;} 2 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/env/cpp.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | clang 6 | cmake 7 | gdb 8 | lldb 9 | ; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/file-systems/base.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | # will be overridden by the bootstrap-iso `nixos-generate` format profile 3 | # defined by the digga "nixos-generators" devshell module 4 | fileSystems."/" = {device = "/dev/disk/by-label/nixos";}; 5 | } 6 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/fonts/fancy.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | pkgs, 4 | profiles, 5 | ... 6 | }: { 7 | imports = [profiles.fonts.minimal]; 8 | 9 | # home-manager.sharedModules = [{fonts.fontconfig.enable = config.fonts.fontconfig.enable;}]; 10 | 11 | fonts.fonts = builtins.attrValues { 12 | inherit 13 | (pkgs) 14 | font-awesome 15 | inter 16 | meslo-lgs-nf 17 | ttf-segue-ui 18 | twitter-color-emoji 19 | ; 20 | }; 21 | 22 | fonts.fontconfig.enable = true; 23 | } 24 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/fonts/minimal.nix: -------------------------------------------------------------------------------- 1 | {lib, ...}: { 2 | fonts.enableDefaultFonts = lib.mkDefault true; 3 | 4 | fonts.fontconfig.enable = lib.mkDefault false; 5 | } 6 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/gui/gtk.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.pathsToLink = ["/libexec"]; 3 | 4 | environment.sessionVariables = { 5 | # Theme settings 6 | QT_QPA_PLATFORMTHEME = "gtk3"; 7 | 8 | # Use librsvg's gdk-pixbuf loader cache file as it enables gdk-pixbuf to load 9 | # SVG files (important for icons) 10 | GDK_PIXBUF_MODULE_FILE = "${pkgs.librsvg}/lib/gdk-pixbuf-2.0/2.10.0/loaders.cache"; 11 | }; 12 | 13 | xdg.portal = { 14 | enable = true; 15 | # gtkUsePortal = true; 16 | extraPortals = [pkgs.xdg-desktop-portal-gtk]; 17 | }; 18 | 19 | programs.dconf.enable = true; 20 | services.dbus.enable = true; 21 | services.gnome.gnome-keyring.enable = true; 22 | services.gvfs.enable = true; 23 | 24 | environment.systemPackages = [pkgs.gnomeExtensions.appindicator]; 25 | 26 | services.udev.packages = [pkgs.gnome3.gnome-settings-daemon]; 27 | 28 | programs.gnupg.agent.pinentryFlavor = "gnome3"; 29 | 30 | services.dbus.packages = [pkgs.gnome3.gnome-keyring pkgs.gcr]; 31 | } 32 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/gui/ibus.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | i18n.inputMethod = { 3 | enabled = "ibus"; 4 | ibus.engines = builtins.attrValues { 5 | inherit (pkgs.ibus-engines) bamboo uniemoji; 6 | }; 7 | }; 8 | 9 | environment.sessionVariables = { 10 | GTK_IM_MODULE = "ibus"; 11 | QT_IM_MODULE = "ibus"; 12 | XMODIFIERS = "@im=ibus"; 13 | IBUS_DISCARD_PASSWORD_APPS = "'firefox,.*chrome.*'"; 14 | }; 15 | } 16 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/gui/misc.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | profiles, 5 | ... 6 | }: let 7 | inherit (lib) mkDefault mkForce; 8 | in { 9 | imports = [profiles.fonts.minimal]; 10 | 11 | environment.systemPackages = builtins.attrValues { 12 | inherit 13 | (pkgs) 14 | xdg-utils 15 | nixos-icons # needed for gnome and pantheon about dialog, nixos-manual and maybe more 16 | ; 17 | }; 18 | 19 | xdg = { 20 | autostart.enable = true; 21 | menus.enable = true; 22 | mime.enable = true; 23 | icons.enable = true; 24 | }; 25 | 26 | # The default max inotify watches is 8192. 27 | # Nowadays most apps require a good number of inotify watches, 28 | # the value below is used by default on several other distros. 29 | boot.kernel.sysctl."fs.inotify.max_user_instances" = mkForce 524288; 30 | boot.kernel.sysctl."fs.inotify.max_user_watches" = mkForce 524288; 31 | } 32 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/gui/platforms/x11.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | profiles, 4 | ... 5 | }: { 6 | imports = [profiles.gui.platforms.xwayland]; 7 | 8 | services.xbanish.enable = true; 9 | 10 | environment.systemPackages = builtins.attrValues { 11 | inherit 12 | (pkgs) 13 | feh 14 | maim 15 | rofi 16 | xclip 17 | xidlehook 18 | xsel 19 | ; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/gui/platforms/xwayland.nix: -------------------------------------------------------------------------------- 1 | {profiles, ...}: { 2 | imports = [profiles.fonts.minimal]; 3 | 4 | fonts.fontconfig.enable = true; 5 | 6 | fonts.fontDir.enable = true; 7 | 8 | programs.xwayland.enable = true; 9 | } 10 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/gui/themes/sefia/wallpaper.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielphan2003/flk/198bf56b8dde0c075f89f58952bedfa85e0b3cf7/cells/nixos/nixosProfiles/gui/themes/sefia/wallpaper.jpg -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/hardware/argonone.nix: -------------------------------------------------------------------------------- 1 | _: { 2 | services.hardware.argonone.enable = true; 3 | } 4 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/hardware/firmware.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | services.fwupd.enable = true; 3 | 4 | hardware.enableRedistributableFirmware = true; 5 | } 6 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/hardware/mouse.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | services.ratbag.enable = true; 3 | environment.systemPackages = [pkgs.piper]; 4 | } 5 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/hardware/peripherals/android.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | services.udev.packages = [pkgs.android-udev-rules]; 3 | } 4 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/hardware/peripherals/default.nix: -------------------------------------------------------------------------------- 1 | {lib, ...}: { 2 | imports = lib.flk.getNixFiles ./.; 3 | } 4 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/hardware/peripherals/ios.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | services.usbmuxd.enable = true; 3 | } 4 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/hardware/printing.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: let 2 | inherit (builtins) attrValues; 3 | in { 4 | services.printing = { 5 | enable = true; 6 | cups-pdf = { 7 | enable = true; 8 | }; 9 | drivers = attrValues { 10 | inherit 11 | (pkgs) 12 | hplip 13 | brlaser 14 | brgenml1lpr 15 | brgenml1cupswrapper 16 | ; 17 | }; 18 | }; 19 | hardware.sane = { 20 | enable = true; 21 | extraBackends = attrValues { 22 | inherit (pkgs) hplip; 23 | }; 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/i18n/vi-vn.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | i18n.defaultLocale = "en_US.UTF-8"; 3 | time.timeZone = "Asia/Ho_Chi_Minh"; 4 | console.keyMap = "us"; 5 | } 6 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/networking/chromecast.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | networking.firewall.extraCommands = '' 3 | iptables -I INPUT -p udp -m udp --dport 32768:60999 -j ACCEPT 4 | ''; 5 | 6 | services.avahi = { 7 | enable = true; 8 | nssmdns = true; 9 | publish.enable = true; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/networking/dns/base.nix: -------------------------------------------------------------------------------- 1 | # unmaintained 2 | {...}: let 3 | dnsPort = 53; 4 | in { 5 | networking.firewall.allowedUDPPorts = [dnsPort]; 6 | } 7 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/networking/dns/systemd-resolved.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | config, 4 | ... 5 | }: let 6 | inherit (lib) mkBefore mkDefault; 7 | inherit (config.networking) hostName; 8 | in { 9 | networking.nameservers = mkBefore [ 10 | "2a07:a8c1::18:7c5e" 11 | "2a07:a8c0::18:7c5e" 12 | "9.9.9.9" 13 | # "2a07:a8c0::#${prio 1}" 14 | # "2a07:a8c1::#${prio 2}" 15 | # "45.90.28.0#${prio 1}" 16 | # "45.90.30.0#${prio 2}" 17 | ]; 18 | 19 | services.resolved = { 20 | enable = true; 21 | dnssec = mkDefault "true"; 22 | fallbackDns = mkBefore ["9.9.9.9" "1.1.1.1"]; 23 | # extraConfig = '' 24 | # DNSOverTLS=opportunistic 25 | # ''; 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/networking/tailscale.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | ... 5 | }: let 6 | cfg = config.services.tailscale; 7 | in { 8 | networking.firewall.trustedInterfaces = [cfg.interfaceName]; 9 | 10 | networking.firewall.checkReversePath = "loose"; 11 | 12 | services.tailscale = { 13 | enable = true; 14 | port = 41641; 15 | interfaceName = "tailscale0"; 16 | }; 17 | 18 | services.fail2ban.ignoreIP = ["100.64.0.0/16"]; 19 | 20 | boot.kernel.sysctl = { 21 | "net.ipv4.ip_forward" = 1; 22 | "net.ipv6.conf.all.forwarding" = 1; 23 | }; 24 | 25 | environment.shellAliases = { 26 | ts = "tailscale"; 27 | sts = "sudo tailscale"; 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/networking/torrent.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | ... 5 | }: let 6 | inherit (config.services.qbittorrent) port; 7 | inherit (lib) mkAfter; 8 | in { 9 | services.qbittorrent = { 10 | enable = true; 11 | group = "media"; 12 | openFirewall = true; 13 | }; 14 | 15 | users.users.qbittorrent.isSystemUser = true; 16 | 17 | users.groups.media.members = ["qbittorrent"]; 18 | 19 | environment.etc."xdg/qutebrowser/config.py".text = mkAfter '' 20 | c.url.searchengines['to'] = 'https://torrentz2.eu/search?f={}' 21 | 22 | config.bind(',t', """hint all spawn curl -X POST\ 23 | -F "urls={hint-url}"\ 24 | -F "sequentialDownload=true"\ 25 | http://localhost:${toString port}/api/v2/torrents/add""" 26 | ) 27 | ''; 28 | } 29 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/networking/zerotier.nix: -------------------------------------------------------------------------------- 1 | # unmaintained 2 | {...}: { 3 | services.zerotierone = { 4 | enable = true; 5 | joinNetworks = [ 6 | # deleted 7 | "52b337794fcd1f9f" 8 | # deleted 9 | "632ea2908585cca3" 10 | ]; 11 | }; 12 | 13 | networking.firewall.trustedInterfaces = [ 14 | # deleted 15 | "ztfp6puzwq" # 52b337794fcd1f9f 16 | # deleted 17 | "zt6ovsoxbg" # 632ea2908585cca3 18 | ]; 19 | } 20 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/academic.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | ; 6 | }; 7 | } 8 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/audio.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | pamixer 6 | pavucontrol 7 | pulsemixer 8 | playerctl 9 | ; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/base.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | binutils 6 | btop 7 | coreutils 8 | curl 9 | direnv 10 | jq 11 | moreutils 12 | pciutils 13 | procps 14 | psmisc 15 | rsync 16 | tealdeer 17 | usbutils 18 | utillinux 19 | wget 20 | whois 21 | ; 22 | }; 23 | 24 | environment.shellAliases = { 25 | top = "btop"; 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/chill/reading.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | calibre 6 | fanficfare 7 | ; 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/chill/watching.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = let 3 | watchingCompat = 4 | if pkgs.system == "x86_64-linux" 5 | then {inherit (pkgs) leonflix;} 6 | else {}; 7 | 8 | watchingPkgs = {}; 9 | in 10 | builtins.attrValues (watchingCompat // watchingPkgs); 11 | } 12 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/chill/weebs.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | adl 6 | anime-downloader 7 | hakuneko 8 | trackma 9 | ; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/compression.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = let 3 | compressionCompat = 4 | if pkgs.system == "x86_64-linux" 5 | then {inherit (pkgs) ouch;} 6 | else {}; 7 | 8 | compressionPkgs = { 9 | inherit 10 | (pkgs) 11 | bzip2 12 | gzip 13 | lrzip 14 | p7zip 15 | unrar 16 | unzip 17 | xz 18 | ; 19 | }; 20 | in 21 | builtins.attrValues (compressionCompat // compressionPkgs); 22 | } 23 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/develop.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | profiles, 5 | ... 6 | }: { 7 | imports = [profiles.programs.git]; 8 | 9 | documentation.dev.enable = lib.mkDefault true; 10 | 11 | environment.systemPackages = builtins.attrValues { 12 | inherit 13 | (pkgs) 14 | bc 15 | file 16 | gomod2nix 17 | less 18 | pmbootstrap 19 | tig 20 | tokei 21 | rnix-lsp 22 | ; 23 | }; 24 | } 25 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/drawing.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | gimp 6 | imagemagick 7 | ; 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/editors/neovim.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.sessionVariables = { 3 | EDITOR = "nvim"; 4 | VISUAL = "nvim"; 5 | }; 6 | 7 | environment.systemPackages = builtins.attrValues { 8 | inherit (pkgs) neovim; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/file-sharing.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | croc 6 | ; 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/file-systems.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | dosfstools 6 | fd 7 | gnufdisk 8 | gptfdisk 9 | ncdu 10 | # ntfs2btrfs 11 | 12 | ntfs3g 13 | parted 14 | ; 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/gamemode.nix: -------------------------------------------------------------------------------- 1 | {lib, ...}: { 2 | programs.gamemode.enable = lib.mkDefault true; 3 | } 4 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/git.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit (pkgs.gitAndTools) hub; 4 | inherit 5 | (pkgs) 6 | gh 7 | ghq 8 | git 9 | gitoxide 10 | gst 11 | lazygit 12 | ; 13 | }; 14 | 15 | environment.shellAliases = { 16 | g = "git"; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/gnome.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | programs.file-roller.enable = true; 3 | 4 | services.gnome.sushi.enable = true; 5 | 6 | environment.systemPackages = builtins.attrValues { 7 | inherit (pkgs.gnome) nautilus; 8 | 9 | inherit 10 | (pkgs) 11 | gnome-themes-extra 12 | gtk-engine-murrine 13 | gtk_engines 14 | ; 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/gnupg.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: { 7 | programs.gnupg.agent = { 8 | enable = lib.mkDefault true; 9 | enableExtraSocket = true; 10 | pinentryFlavor = lib.mkDefault "curses"; 11 | }; 12 | } 13 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/graphical.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | ... 5 | }: { 6 | environment.systemPackages = builtins.attrValues { 7 | inherit 8 | (pkgs) 9 | czkawka 10 | libnotify 11 | pywal 12 | # ulauncher 13 | 14 | zathura 15 | ; 16 | inherit 17 | (pkgs) 18 | gparted 19 | trash-cli 20 | woeusb 21 | ; 22 | }; 23 | } 24 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/im.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | pkgs, 4 | ... 5 | }: { 6 | environment.systemPackages = let 7 | imCompat = 8 | if pkgs.system == "x86_64-linux" 9 | then {inherit (pkgs) discord-canary signal-desktop;} 10 | else {inherit (pkgs) cordless signal-cli;}; 11 | 12 | imPkgs = { 13 | inherit 14 | (pkgs) 15 | element-desktop 16 | tdesktop 17 | ; 18 | 19 | cinny-desktop = pkgs.cinny-desktop.override { 20 | conf = { 21 | defaultHomeserver = 0; 22 | homeserverList = [config.networking.domain "matrix.org"]; 23 | }; 24 | }; 25 | }; 26 | in 27 | builtins.attrValues (imCompat // imPkgs); 28 | } 29 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/media.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | ffmpeg-full 6 | mpv 7 | yt-dlp 8 | ; 9 | }; 10 | 11 | environment.shellAliases = { 12 | yt = "yt-dlp --downloader aria2c --add-metadata -i"; 13 | yta = "yt -x -f bestaudio/best"; 14 | ffmpeg = "ffmpeg -hide_banner"; 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/meeting.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | programs.droidcam.enable = true; 3 | 4 | # environment.systemPackages = let 5 | # meetingCompat = 6 | # if pkgs.system == "x86_64-linux" 7 | # # I wish I could delete zoom 8 | # then {inherit (pkgs) teams zoom-us;} 9 | # else {}; 10 | 11 | # meetingPkgs = { 12 | # inherit 13 | # (pkgs) 14 | # jitsi-meet 15 | # ; 16 | # }; 17 | # in 18 | # builtins.attrValues (meetingCompat // meetingPkgs); 19 | } 20 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/misc.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | nix-index 6 | revanced-cli 7 | ; 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/networking.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | dnsutils 6 | doggo 7 | iptables 8 | iputils 9 | nmap 10 | wireguard-tools 11 | ; 12 | }; 13 | 14 | environment.shellAliases = { 15 | dns = "doggo"; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/nix/substituters/dan-cfg.nix: -------------------------------------------------------------------------------- 1 | { 2 | nix.settings = { 3 | substituters = [ 4 | "https://dan-cfg.cachix.org" 5 | ]; 6 | trusted-public-keys = [ 7 | "dan-cfg.cachix.org-1:elcVKJWjnDs1zzZ/Fs93FLOFS13OQx1z0TxP0Q7PH9o=" 8 | ]; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/nix/substituters/flk.nix: -------------------------------------------------------------------------------- 1 | { 2 | nix.settings = { 3 | substituters = [ 4 | "https://flk.cachix.org" 5 | ]; 6 | trusted-public-keys = [ 7 | "flk.cachix.org-1:ryJefUxxSPHRiLcP7ie1/jE7lypnig7VkVwFG0aARRw=" 8 | ]; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/nix/substituters/nix-community.nix: -------------------------------------------------------------------------------- 1 | { 2 | nix.settings = { 3 | substituters = [ 4 | "https://nix-community.cachix.org" 5 | ]; 6 | trusted-public-keys = [ 7 | "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" 8 | ]; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/nix/substituters/nix-gaming.nix: -------------------------------------------------------------------------------- 1 | { 2 | nix.settings = { 3 | extra-substituters = [ 4 | "https://nix-gaming.cachix.org" 5 | ]; 6 | extra-trusted-public-keys = [ 7 | "nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4=" 8 | ]; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/nix/substituters/nixpkgs-wayland.nix: -------------------------------------------------------------------------------- 1 | { 2 | nix.settings = { 3 | substituters = [ 4 | "https://nixpkgs-wayland.cachix.org" 5 | ]; 6 | trusted-public-keys = [ 7 | "nixpkgs-wayland.cachix.org-1:3lwxaILxMRkVhehr5StQprHdEo4IrE8sRho9R9HOLYA=" 8 | ]; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/nix/substituters/nrdxp.nix: -------------------------------------------------------------------------------- 1 | { 2 | nix.settings = { 3 | extra-substituters = [ 4 | "https://nrdxp.cachix.org" 5 | ]; 6 | extra-trusted-public-keys = [ 7 | "nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4=" 8 | ]; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/qt.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit (pkgs.libsForQt5) qtstyleplugins; 4 | inherit (pkgs.qt5) qtgraphicaleffects; 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/qutebrowser/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: { 7 | environment = { 8 | etc."xdg/qutebrowser/config.py".text = let 9 | mpv = "${pkgs.mpv}/bin/mpv"; 10 | in '' 11 | ${builtins.readFile ./config.py} 12 | ${ 13 | lib.optionalString 14 | (config.networking.extraHosts != "") 15 | "c.content.blocking.enabled = False" 16 | } 17 | ${lib.optionalString (pkgs.system == "x86_64-linux") "c.qt.args.append('widevine-path=${pkgs.widevine-cdm}/lib/libwidevinecdm.so')"} 18 | config.bind(',m', 'hint links spawn -d ${mpv} {hint-url}') 19 | config.bind(',v', 'spawn -d ${mpv} {url}') 20 | ''; 21 | 22 | systemPackages = builtins.attrValues { 23 | inherit 24 | (pkgs) 25 | qute 26 | qutebrowser 27 | ; 28 | }; 29 | }; 30 | } 31 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/remote.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | programs.adb.enable = true; 3 | 4 | services.teamviewer.enable = true; 5 | 6 | environment.systemPackages = builtins.attrValues { 7 | inherit 8 | (pkgs) 9 | # anydesk 10 | 11 | freerdp 12 | # realvnc-vnc-viewer 13 | 14 | scrcpy 15 | tigervnc 16 | ; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/rpi.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | raspberrypifw 6 | raspberrypi-eeprom 7 | libraspberrypi 8 | ; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/bash/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | self, 3 | lib, 4 | pkgs, 5 | profiles, 6 | ... 7 | }: { 8 | imports = [profiles.programs.shells.env]; 9 | 10 | environment.shellInit = '' 11 | export STARSHIP_CONFIG=${./starship.toml} 12 | ''; 13 | 14 | programs.bash = { 15 | promptInit = '' 16 | eval "$(${pkgs.starship}/bin/starship init bash)" 17 | ''; 18 | interactiveShellInit = '' 19 | eval "$(${pkgs.direnv}/bin/direnv hook bash)" 20 | ''; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/cdr/cdr-skim.zsh: -------------------------------------------------------------------------------- 1 | while read line; do line=${(Q)line}; [[ -d $line ]] && echo $line; done < $HOME/.cache/zsh-cdr/recent-dirs 2 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/cdr/cdr.zsh: -------------------------------------------------------------------------------- 1 | if [[ -z "$ZSH_CDR_DIR" ]]; then 2 | ZSH_CDR_DIR=${XDG_CACHE_HOME:-$HOME/.cache}/zsh-cdr 3 | fi 4 | mkdir -p $ZSH_CDR_DIR 5 | autoload -Uz chpwd_recent_dirs cdr 6 | autoload -U add-zsh-hook 7 | add-zsh-hook chpwd chpwd_recent_dirs 8 | zstyle ':chpwd:*' recent-dirs-file $ZSH_CDR_DIR/recent-dirs 9 | zstyle ':chpwd:*' recent-dirs-max 1000 10 | # fall through to cd 11 | zstyle ':chpwd:*' recent-dirs-default yes 12 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | profiles, 5 | ... 6 | }: { 7 | imports = [profiles.programs.shells.env] ++ lib.flk.getNixFiles ./.; 8 | 9 | users.defaultUserShell = pkgs.zsh; 10 | 11 | environment.systemPackages = [pkgs.zsh-completions]; 12 | 13 | environment.shellAliases.rz = "exec zsh"; 14 | 15 | programs.zsh = { 16 | enable = true; 17 | 18 | enableGlobalCompInit = false; 19 | 20 | histSize = 10000; 21 | 22 | histFile = "~/.cache/zsh/history"; 23 | 24 | setOptions = [ 25 | "extendedglob" 26 | "incappendhistory" 27 | "sharehistory" 28 | "histignoredups" 29 | "histfcntllock" 30 | "histreduceblanks" 31 | "histignorespace" 32 | "histallowclobber" 33 | "autocd" 34 | "cdablevars" 35 | "nomultios" 36 | "pushdignoredups" 37 | "autocontinue" 38 | "promptsubst" 39 | "globdots" 40 | ]; 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/env.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.sessionVariables = let 3 | fd = "${pkgs.fd}/bin/fd -H"; 4 | in { 5 | SKIM_ALT_C_COMMAND = 6 | (pkgs.writeScript "cdr-skim.zsh" '' 7 | #!${pkgs.zsh}/bin/zsh 8 | source ${./cdr/cdr-skim.zsh} 9 | '') 10 | .outPath; 11 | 12 | SKIM_DEFAULT_COMMAND = fd; 13 | 14 | SKIM_CTRL_T_COMMAND = fd; 15 | 16 | ZDOTDIR = "~/.config/zsh"; 17 | }; 18 | } 19 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/functions/chext: -------------------------------------------------------------------------------- 1 | [[ -z $3 ]] || return 1 2 | file=$1 3 | ext=$2 4 | new="${file:r}.${ext}" 5 | mv $file $new 6 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/functions/exa: -------------------------------------------------------------------------------- 1 | # pipe exa into PAGER with colors 2 | if [[ -t 1 && -n $PAGER ]]; then 3 | @exa@/bin/exa --color=always $@ 4 | else 5 | @exa@/bin/exa $@ 6 | fi 7 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/functions/fakecam: -------------------------------------------------------------------------------- 1 | ~/src/github.com/intermezzio/webcam-video-effects/video_looper_complete.sh -v ~/av/recording.mp4 -i 0 -o 10 2 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/functions/i: -------------------------------------------------------------------------------- 1 | RED='\033[0;31m' 2 | NC='\033[0m' 3 | 4 | # needs one arguement or exit 5 | [[ -n $2 || -z $1 ]] && { 6 | print -u2 \ 7 | "${RED}error:${NC} takes exactly one package as an arguement" 8 | 9 | return 1 10 | } 11 | 12 | nix profile install "nixos#$1" 13 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/functions/man: -------------------------------------------------------------------------------- 1 | # colorful man pages 2 | LESS_TERMCAP_md=$'\e[01;31m' \ 3 | LESS_TERMCAP_me=$'\e[0m' \ 4 | LESS_TERMCAP_se=$'\e[0m' \ 5 | LESS_TERMCAP_so=$'\e[01;44;33m' \ 6 | LESS_TERMCAP_ue=$'\e[0m' \ 7 | LESS_TERMCAP_us=$'\e[01;32m' \ 8 | @man@/bin/man "$@" 9 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/functions/mcd: -------------------------------------------------------------------------------- 1 | # mkdir & cd to it 2 | mkdir -p "$1" && cd "$1" 3 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/functions/newrepo: -------------------------------------------------------------------------------- 1 | cd $(@gst@/bin/gst new ${1}) 2 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/functions/rg: -------------------------------------------------------------------------------- 1 | # pipe rg into PAGER with colors 2 | if [[ -t 1 && -n $PAGER ]]; then 3 | @ripgrep@/bin/rg -p $@ | $PAGER 4 | else 5 | @ripgrep@/bin/rg $@ 6 | fi 7 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/shells/zsh/functions/rnm: -------------------------------------------------------------------------------- 1 | [[ -z $3 ]] || return 1 2 | head=${1:h} 3 | name="${head}/${2}" 4 | mv $1 $name 5 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/vpn.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = builtins.attrValues { 3 | inherit 4 | (pkgs) 5 | protonvpn-cli 6 | ; 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/wine.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = let 3 | wineCompat = 4 | if pkgs.system == "x86_64-linux" 5 | then { 6 | inherit 7 | (pkgs) 8 | bottles 9 | lutris 10 | winetricks 11 | ; 12 | inherit 13 | (pkgs.wineWowPackages) 14 | staging 15 | ; 16 | } 17 | else {}; 18 | in 19 | builtins.attrValues wineCompat; 20 | } 21 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/programs/yubikey.nix: -------------------------------------------------------------------------------- 1 | { 2 | self, 3 | lib, 4 | profiles, 5 | pkgs, 6 | ... 7 | }: { 8 | imports = [profiles.services.openssh]; 9 | 10 | age.ageBin = "PATH=$PATH:${lib.makeBinPath [pkgs.age-plugin-yubikey]} ${pkgs.rage}/bin/rage"; 11 | 12 | age.identityPaths = lib.mkOptionDefault ["${self}/secrets/ssh/age-yubikey-identity-a8555007.txt"]; 13 | 14 | services.udev.packages = [pkgs.yubikey-personalization]; 15 | 16 | environment.systemPackages = builtins.attrValues { 17 | inherit 18 | (pkgs) 19 | age-plugin-yubikey 20 | yubikey-personalization 21 | yubikey-personalization-gui 22 | yubikey-manager 23 | ; 24 | }; 25 | 26 | services.yubikey-agent.enable = true; 27 | 28 | # services.piv-agent.enable = true; 29 | 30 | # programs.ssh.startAgent = false; 31 | 32 | # security.pam.yubico = { 33 | # enable = true; 34 | # debug = true; 35 | # mode = "challenge-response"; 36 | # }; 37 | 38 | services.pcscd.enable = true; 39 | } 40 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/security/disable-mitigations.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | security.mitigations = { 3 | disable = true; 4 | acceptRisk = true; 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/security/doas.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | # Swap ‹sudo› for ‹doas› 3 | security.doas.enable = true; 4 | security.sudo.enable = false; 5 | 6 | environment.shellAliases = { 7 | sudo = "doas"; 8 | }; 9 | 10 | security.doas.extraRules = [ 11 | { 12 | groups = ["wheel"]; 13 | persist = true; 14 | keepEnv = true; 15 | } 16 | { 17 | groups = ["wheel"]; 18 | keepEnv = true; 19 | cmd = "${pkgs.physlock}/bin/physlock"; 20 | noPass = true; 21 | } 22 | ]; 23 | } 24 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/security/hardened.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | # https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix#L75 3 | boot.loader.systemd-boot.editor = false; 4 | 5 | # programs.firejail.enable = true; 6 | 7 | security.protectKernelImage = true; 8 | 9 | # security.auditd.enable = true; 10 | # security.audit.enable = !config.boot.isContainer; 11 | } 12 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/aria2.nix: -------------------------------------------------------------------------------- 1 | # unmaintained 2 | {pkgs, ...}: { 3 | environment.systemPackages = [pkgs.aria2]; 4 | 5 | services.aria2 = { 6 | enable = true; 7 | downloadDir = "/var/lib/aria2/Downloads"; 8 | extraArguments = "--check-certificate=false"; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/base.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | services.cron.enable = true; 3 | 4 | services.earlyoom.enable = true; 5 | 6 | services.timesyncd.enable = true; 7 | } 8 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/calibre-web.nix: -------------------------------------------------------------------------------- 1 | # unmaintained 2 | { 3 | config, 4 | lib, 5 | ... 6 | }: let 7 | inherit (lib) mkDefault; 8 | 9 | inherit (config.services.calibre-web.listen) ip port; 10 | in { 11 | services.calibre-web = { 12 | enable = true; 13 | openFirewall = true; 14 | listen = { 15 | ip = mkDefault "127.0.0.1"; 16 | port = 8083; 17 | }; 18 | options = { 19 | calibreLibrary = "/var/lib/calibre-library"; 20 | enableBookUploading = true; 21 | enableBookConversion = true; 22 | reverseProxyAuth.enable = true; 23 | }; 24 | }; 25 | 26 | services.caddy.virtualHosts.calibre-web = { 27 | hostName = mkDefault "calibre.${config.networking.domain}"; 28 | extraConfig = '' 29 | import common 30 | import useCloudflare 31 | import NoSearchHeader 32 | 33 | reverse_proxy ${ip}:${toString port} 34 | ''; 35 | }; 36 | } 37 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/cinny.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: let 7 | inherit (config.networking) domain; 8 | 9 | conf = { 10 | defaultHomeserver = 0; 11 | homeserverList = [domain]; 12 | }; 13 | 14 | templatedCinnyWeb = pkgs.cinny-web.override {inherit conf;}; 15 | in { 16 | services.caddy.virtualHosts.cinny = { 17 | hostName = lib.mkDefault "cinny.${domain}"; 18 | extraConfig = '' 19 | import common 20 | import useCloudflare 21 | 22 | handle { 23 | templates 24 | root * ${templatedCinnyWeb} 25 | try_files {path} {path} 26 | try_files {path} /index.html 27 | file_server 28 | } 29 | ''; 30 | }; 31 | } 32 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/dcompass/fb-resolver.txt: -------------------------------------------------------------------------------- 1 | *.facebook.com 2 | *.facebook.net 3 | *.fbcdn.net 4 | *.fbsbx.com 5 | *.messenger.com 6 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/fail2ban.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | services.fail2ban = { 3 | enable = true; 4 | ignoreIP = [ 5 | "192.168.0.0/16" 6 | "fe80::/64" 7 | ]; 8 | }; 9 | } 10 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/grafana.nix: -------------------------------------------------------------------------------- 1 | # unmaintained 2 | { 3 | config, 4 | lib, 5 | ... 6 | }: let 7 | inherit (lib) mkDefault; 8 | inherit (config.services.grafana) addr port domain; 9 | in { 10 | services.grafana = { 11 | enable = true; 12 | port = 2342; 13 | addr = mkDefault "127.0.0.1"; 14 | domain = mkDefault "grafana.${config.networking.domain}"; 15 | }; 16 | 17 | services.caddy.virtualHosts.grafana = { 18 | hostName = domain; 19 | extraConfig = '' 20 | import common 21 | import NoSearchHeader 22 | import useCloudflare 23 | reverse_proxy ${addr}:${toString port} 24 | ''; 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/jitsi.nix: -------------------------------------------------------------------------------- 1 | # unmaintained 2 | {config, ...}: { 3 | services.jitsi-meet = { 4 | enable = true; 5 | nginx.enable = false; 6 | caddy.enable = true; 7 | config = { 8 | default = "vi"; 9 | preferredCodec = "vp9"; 10 | prejoinPageEnabled = true; 11 | enforcePreferredCodec = true; 12 | desktopSharingFrameRate = { 13 | min = 30; 14 | max = 30; 15 | }; 16 | }; 17 | interfaceConfig = { 18 | SHOW_JITSI_WATERMARK = false; 19 | SHOW_WATERMARK_FOR_GUESTS = false; 20 | }; 21 | }; 22 | systemd.services.prosody.reloadIfChanged = config.services.prosody.enable; 23 | } 24 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/logrotate.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | # Keep 4 rotations of log files before removing or mailing to the address specified in a mail directive 3 | services.logrotate.settings.default = { 4 | global = true; 5 | # Rotate when the size is bigger than 5MB 6 | rotate = 4; 7 | size = "5M"; 8 | # Compress old log files 9 | compress = true; 10 | # Truncate the original log file in place after creating a copy 11 | copytruncate = true; 12 | # Don't panic if not found 13 | missingok = true; 14 | # Don't rotate log if file is empty 15 | notifempty = true; 16 | # Add date instaed of number to rotated log file 17 | dateext = true; 18 | # Date format of dateext 19 | dateformat = "-%Y-%m-%d-%s"; 20 | }; 21 | } 22 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/matrix-identity.nix: -------------------------------------------------------------------------------- 1 | # unmaintained 2 | { 3 | config, 4 | lib, 5 | ... 6 | }: let 7 | inherit (lib) mkDefault; 8 | 9 | inherit (config.services.mxisd) matrix server; 10 | 11 | inherit (config.networking) domain; 12 | in { 13 | services.mxisd = { 14 | enable = true; 15 | matrix.domain = mkDefault "matrix.${domain}"; 16 | server = { 17 | name = mkDefault "identity.${domain}"; 18 | port = 8090; 19 | }; 20 | }; 21 | 22 | services.caddy.virtualHosts.matrix-identity = { 23 | hostName = server.name; 24 | extraConfig = '' 25 | import common 26 | import useCloudflare 27 | 28 | reverse_proxy /_matrix/identity 127.0.0.1:${toString server.port} { 29 | import MatrixWellknownHeaders 30 | import /var/lib/caddy/templates/cloudflare-proxies 31 | header_up Host {host} 32 | header_up X-Forwarded-For {remote_ip} 33 | } 34 | ''; 35 | }; 36 | } 37 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/netdata.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | environment.systemPackages = [pkgs.netdata]; 3 | 4 | networking.firewall.allowedTCPPorts = [19999]; 5 | 6 | services.netdata = { 7 | enable = true; 8 | config = { 9 | global = { 10 | "debug log" = "syslog"; 11 | "access log" = "syslog"; 12 | "error log" = "syslog"; 13 | }; 14 | }; 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/peerix.nix: -------------------------------------------------------------------------------- 1 | { 2 | self, 3 | inputs, 4 | config, 5 | pkgs, 6 | ... 7 | }: let 8 | inherit (config.age.secrets.peerix) path; 9 | inherit (config.services.peerix) user group; 10 | in { 11 | imports = [inputs.peerix.nixosModules.peerix]; 12 | 13 | age.secrets.peerix = { 14 | file = "${self}/secrets/nixos/profiles/cloud/peerix/${config.networking.hostName}.age"; 15 | owner = user; 16 | inherit group; 17 | }; 18 | 19 | services.peerix = { 20 | enable = true; 21 | package = pkgs.peerix; 22 | openFirewall = config.services.tailscale.enable; 23 | privateKeyFile = path; 24 | group = "nogroup"; 25 | publicKey = config.flk.currentHost.publicKeys.binaryCache; 26 | }; 27 | } 28 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/physlock.nix: -------------------------------------------------------------------------------- 1 | {lib, ...}: { 2 | services.physlock = { 3 | enable = true; 4 | allowAnyUser = lib.mkDefault true; 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/rss-bridge.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: let 7 | cfg = config.services.rss-bridge; 8 | in { 9 | services.rss-bridge = { 10 | inherit (config.services.caddy) user group; 11 | enable = true; 12 | virtualHost = lib.mkDefault "rss-bridge.${config.networking.domain}"; 13 | whitelist = ["Facebook"]; 14 | }; 15 | 16 | services.caddy.virtualHosts.rss-bridge = { 17 | hostName = cfg.virtualHost; 18 | extraConfig = '' 19 | import common 20 | import useCloudflare 21 | 22 | root * ${pkgs.rss-bridge} 23 | php_fastcgi unix/${config.services.phpfpm.pools.${cfg.pool}.socket} { 24 | env RSSBRIDGE_DATA ${cfg.dataDir} 25 | } 26 | file_server 27 | ''; 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/spotifyd.nix: -------------------------------------------------------------------------------- 1 | # unmaintained 2 | { 3 | config, 4 | self, 5 | ... 6 | }: let 7 | inherit (config.age.secrets.spotify) path; 8 | in { 9 | age.secrets.spotify.file = "${self}/secrets/nixos/profiles/cloud/spotify.age"; 10 | 11 | systemd.services.spotifyd = { 12 | serviceConfig.EnvironmentFile = path; 13 | }; 14 | 15 | services.spotifyd = { 16 | enable = true; 17 | settings = { 18 | global = { 19 | username_cmd = "echo $SPOTIFY_USER"; 20 | password_cmd = "echo $SPOTIFY_PASSWD"; 21 | device_name = config.networking.hostName; 22 | cache_path = "/var/cache/spotify"; 23 | initial_volume = "100"; 24 | backend = "alsa"; 25 | # device = alsa_audio_device; # Given by `aplay -L` 26 | mixer = "PCM"; 27 | volume-controller = "alsa"; # or alsa_linear, or softvol 28 | bitrate = 320; 29 | volume-normalisation = true; 30 | normalisation-pregain = -10; 31 | }; 32 | }; 33 | }; 34 | } 35 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/swhkd.nix: -------------------------------------------------------------------------------- 1 | {...}: {services.swhkd.enable = true;} 2 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/wayvnc.nix: -------------------------------------------------------------------------------- 1 | {config, ...}: { 2 | home-manager.sharedModules = [ 3 | {services.wayvnc.addr = config.flk.currentHost.tailscale.ip;} 4 | ]; 5 | } 6 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/wkd/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | ... 5 | }: let 6 | inherit (lib) mkAfter mkDefault; 7 | 8 | inherit (config.networking) domain; 9 | 10 | handle = path: '' 11 | handle_path /.well-known/openpgpkey* { 12 | templates 13 | header { 14 | Content-Type application/octet-stream 15 | Access-Control-Allow-Origin * 16 | } 17 | root * ${./openpgpkey}${path} 18 | try_files {path} {path} 19 | file_server 20 | } 21 | ''; 22 | in { 23 | services.caddy.virtualHosts.domain.extraConfig = mkAfter (handle "/${domain}"); 24 | 25 | services.caddy.virtualHosts.openpgpkey = { 26 | hostName = mkDefault "openpgpkey.${domain}"; 27 | extraConfig = '' 28 | import common 29 | import useCloudflare 30 | 31 | ${handle ""} 32 | ''; 33 | }; 34 | } 35 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/wkd/openpgpkey/c-137.me/hu/gfjfyuhqdt4tk3fzmnx9dbqmymab1j5g: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/danielphan2003/flk/198bf56b8dde0c075f89f58952bedfa85e0b3cf7/cells/nixos/nixosProfiles/services/wkd/openpgpkey/c-137.me/hu/gfjfyuhqdt4tk3fzmnx9dbqmymab1j5g -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/services/wkd/openpgpkey/c-137.me/policy: -------------------------------------------------------------------------------- 1 | # Policy flags for domain c-137.me 2 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/system/encryption/manual.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | boot.initrd.availableKernelModules = ["nvme"]; 3 | 4 | boot.initrd.luks.devices = { 5 | system = { 6 | device = "/dev/disk/by-partlabel/cryptsystem"; 7 | allowDiscards = true; 8 | }; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/system/encryption/tpm.nix: -------------------------------------------------------------------------------- 1 | {profiles, ...}: { 2 | imports = [profiles.system.encryption.manual]; 3 | 4 | boot.initrd = { 5 | availableKernelModules = ["tpm-tis" "tpm-crb"]; 6 | luks.devices.system.crypttabExtraOpts = ["tpm2-device=auto"]; 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/users/alita.nix: -------------------------------------------------------------------------------- 1 | { 2 | self, 3 | config, 4 | ... 5 | }: { 6 | age.secrets.alita.file = "${self}/secrets/home/users/alita.age"; 7 | 8 | users.users.alita = { 9 | description = "Alita"; 10 | isNormalUser = true; 11 | extraGroups = ["wheel" "libvirtd" "kvm" "adbusers" "input" "podman"]; 12 | 13 | passwordFile = config.age.secrets.alita.path; 14 | 15 | openssh.authorizedKeys.keyFiles = [ 16 | "${self}/secrets/ssh/alita.pub" 17 | "${self}/secrets/ssh/danie.pub" 18 | ]; 19 | }; 20 | } 21 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/users/nixos.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | users.users.nixos = { 3 | uid = 1000; 4 | description = "default"; 5 | isNormalUser = true; 6 | extraGroups = ["wheel"]; 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/users/root.nix: -------------------------------------------------------------------------------- 1 | { 2 | self, 3 | config, 4 | ... 5 | }: { 6 | age.secrets.root.file = "${self}/secrets/home/users/root.age"; 7 | users.users.root.passwordFile = config.age.secrets.root.path; 8 | } 9 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/virtualisation/container.nix: -------------------------------------------------------------------------------- 1 | {...}: { 2 | virtualisation = { 3 | containers.enable = true; 4 | podman = { 5 | enable = true; 6 | dockerCompat = true; 7 | }; 8 | oci-containers.backend = "podman"; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/virtualisation/libvirt.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | # you'll need to add your user to 'libvirtd' group to use virt-manager 3 | environment.systemPackages = with pkgs; [ 4 | virt-manager 5 | vagrant 6 | docker-compose 7 | spice-gtk 8 | ]; 9 | 10 | virtualisation = { 11 | libvirtd = { 12 | enable = true; 13 | qemu = { 14 | ovmf = { 15 | enable = true; 16 | packages = [pkgs.OVMFFull.fd]; 17 | }; 18 | swtpm.enable = true; 19 | }; 20 | onBoot = "ignore"; 21 | allowedBridges = [ 22 | "virbr0" 23 | "virbr1" 24 | "virbr0-nic" 25 | "docker0" 26 | ]; 27 | }; 28 | 29 | # spiceUSBRedirection.enable = true; 30 | }; 31 | 32 | environment.sessionVariables = { 33 | VAGRANT_DEFAULT_PROVIDER = "libvirt"; 34 | }; 35 | } 36 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/virtualisation/waydroid.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest; 3 | initrd.availableKernelModules = ["ashmem_linux" "binder_linux"]; 4 | extraModprobeConfig = '' 5 | options binder_linux devices=binder,hwbinder,vndbinder 6 | ''; 7 | 8 | virtualisation.waydroid.enable = true; 9 | 10 | systemd.network.netdevs.waydroid-bridge = { 11 | netdevConfig = { 12 | Name = "waydroid0"; 13 | Kind = "bridge"; 14 | }; 15 | }; 16 | 17 | systemd.network.networks.waydroid-bridge = { 18 | matchConfig.Name = "waydroid0"; 19 | 20 | networkConfig = { 21 | Address = "192.168.250.1/24"; 22 | DHCPServer = "yes"; 23 | IPForward = "yes"; 24 | ConfigureWithoutCarrier = "yes"; 25 | }; 26 | 27 | dhcpServerConfig = { 28 | PoolOffset = 100; 29 | PoolSize = 20; 30 | EmitDNS = "yes"; 31 | DNS = "9.9.9.9"; 32 | }; 33 | }; 34 | } 35 | -------------------------------------------------------------------------------- /cells/nixos/nixosProfiles/virtualisation/windows.nix: -------------------------------------------------------------------------------- 1 | {pkgs, ...}: { 2 | systemd.tmpfiles.rules = [ 3 | "f /dev/shm/scream 0660 danie qemu-libvirtd -" 4 | ]; 5 | 6 | systemd.user.services.scream-ivshmem = { 7 | enable = true; 8 | description = "Scream IVSHMEM"; 9 | serviceConfig = { 10 | ExecStart = "${pkgs.scream}/bin/scream-ivshmem-pulse /dev/shm/scream"; 11 | Restart = "always"; 12 | }; 13 | wantedBy = ["multi-user.target"]; 14 | requires = ["pulseaudio.service"]; 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /cells/pik2/colmenaConfigurations.nix: -------------------------------------------------------------------------------- 1 | { 2 | inherit (cell.nixosConfigurations) pik2; 3 | } 4 | -------------------------------------------------------------------------------- /cells/pik2/nixosConfigurations.nix: -------------------------------------------------------------------------------- 1 | { 2 | pik2 = { 3 | bee.home = inputs.home-unstable; 4 | bee.system = "aarch64-linux"; 5 | bee.pkgs = inputs.cells.flk.pkgs.nixos; 6 | imports = 7 | [ 8 | cell.nixosSuites.pik2 9 | ] 10 | ++ inputs.cells.nixos.nixosModules.default 11 | ++ inputs.cells.nixos.nixosModules.extra; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /cells/rog-bootstrap/colmenaConfigurations.nix: -------------------------------------------------------------------------------- 1 | { 2 | rog-bootstrap = { 3 | imports = [cell.nixosConfigurations.rog-bootstrap]; 4 | deployment = { 5 | targetHost = "fe80::47"; 6 | targetPort = 22; 7 | targetUser = "root"; 8 | }; 9 | }; 10 | } 11 | -------------------------------------------------------------------------------- /cells/rog-bootstrap/hardwareProfiles.nix: -------------------------------------------------------------------------------- 1 | let 2 | inherit (inputs.cells) nixos; 3 | in { 4 | rog-bootstrap = { 5 | config, 6 | pkgs, 7 | ... 8 | }: { 9 | imports = [ 10 | inputs.nixos-hardware.nixosModules.asus-rog-strix-g733qs 11 | inputs.nixos-hardware.nixosModules.common-gpu-nvidia #-disable 12 | inputs.nixos-hardware.nixosModules.common-pc-laptop 13 | inputs.nixos-hardware.nixosModules.common-pc-laptop-acpi_call 14 | inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd 15 | ]; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /cells/rog-bootstrap/nixosConfigurations.nix: -------------------------------------------------------------------------------- 1 | { 2 | rog-bootstrap = { 3 | bee.home = inputs.home-unstable; 4 | bee.system = "x86_64-linux"; 5 | bee.pkgs = inputs.cells.flk.pkgs.nixos; 6 | imports = 7 | [ 8 | cell.nixosSuites.rog-bootstrap 9 | ] 10 | ++ inputs.cells.nixos.nixosModules.default 11 | ++ inputs.cells.nixos.nixosModules.extra; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /cells/rog-bootstrap/nixosSuites.nix: -------------------------------------------------------------------------------- 1 | let 2 | inherit (inputs.cells) nixos; 3 | in { 4 | rog-bootstrap = {pkgs, ...}: { 5 | imports = 6 | [ 7 | inputs.hive.x86_64-linux._QUEEN.nixosSuites.larva 8 | ] 9 | ++ nixos.nixosSuites.limitless 10 | ++ nixos.nixosSuites.mobile; 11 | 12 | boot.kernelPackages = pkgs.linuxPackages_5_18; 13 | 14 | services.asusd = { 15 | enable = true; 16 | power-profiles = true; 17 | }; 18 | 19 | systemd.services.battery-charge-threshold.enable = false; 20 | 21 | services.xserver.videoDrivers = []; 22 | 23 | hardware.nvidia.prime.offload.enable = false; 24 | 25 | programs.sway.enable = true; 26 | 27 | environment.etc."sway/config".text = '' 28 | include ${pkgs.sway}/etc/sway/config 29 | bindsym Mod1+Return ${pkgs.wezterm}/bin/wezterm 30 | exec systemctl --user import-environment 31 | ''; 32 | }; 33 | } 34 | -------------------------------------------------------------------------------- /cells/themachine/colmenaConfigurations.nix: -------------------------------------------------------------------------------- 1 | { 2 | themachine = { 3 | imports = [cell.nixosConfigurations.themachine]; 4 | deployment.allowLocalDeployment = true; 5 | }; 6 | } 7 | -------------------------------------------------------------------------------- /cells/themachine/nixosConfigurations.nix: -------------------------------------------------------------------------------- 1 | { 2 | themachine = { 3 | bee.home = inputs.home-unstable; 4 | bee.system = "x86_64-linux"; 5 | bee.pkgs = inputs.cells.flk.pkgs.bootspec-nixpkgs; 6 | # deployment.targetHost = "themachine"; 7 | imports = 8 | [ 9 | cell.nixosSuites.themachine 10 | inputs.cells.danie.nixosSuites.danie 11 | cell.hardwareProfiles.themachine 12 | ] 13 | ++ inputs.cells.nixos.nixosModules.default 14 | ++ inputs.cells.nixos.nixosModules.extra; 15 | }; 16 | } 17 | -------------------------------------------------------------------------------- /docs/architecture-decisions/private-hosting.md: -------------------------------------------------------------------------------- 1 | # Private hosting 2 | 3 | Date: 2022-07-04 4 | 5 | ## Status 6 | 7 | Partially completed. 8 | 9 | ## Context 10 | 11 | How to self host my own services to friends and family? 12 | 13 | ## Decision 14 | 15 | My server only has public IPv6 address, so it makes senses to use [Tailscale][tailscale] to share it with my friends. 16 | 17 | After all, I'm already using it for self hosting private web services e.g Vaultwarden's `/admin` endpoint, Grafana etc. 18 | 19 | ## Consequences 20 | 21 | Easier to manage, though I _have_ to be the person to generate the invite link, and Tailscale limits sharing to 10 links per one device. 22 | 23 | [tailscale]: https://tailscale.net 24 | -------------------------------------------------------------------------------- /docs/nixos/modules.md: -------------------------------------------------------------------------------- 1 | # NixOS modules 2 | 3 | Some modules that may work for your use case: 4 | 5 | - `boot.persistence`: set your persist path and enable persistence handling. Basically a thin wrapper around mt-caret's opt-in state [config][optin-state]. 6 | 7 | - `services.duckdns`: update DDNS record with DuckDNS, with support for IPv6-only hosts. If you are behind a [CG-NAT][cg-nat] then this is the right module for you. 8 | 9 | - `services.minecraft-server`: Minecraft server with hardened systemd rules, also supports on-demand startup. 10 | 11 | - Other... 12 | 13 | [cg-nat]: https://www.reddit.com/r/selfhosted/comments/9e707d/what_are_my_options_to_get_around_a_carrier_grade/ 14 | [optin-state]: https://mt-caret.github.io/blog/posts/2020-06-29-optin-state.html 15 | -------------------------------------------------------------------------------- /docs/overlays.md: -------------------------------------------------------------------------------- 1 | # Overlays 2 | 3 | Here come some helpful overlays: 4 | 5 | - [electron-compat][electron-compat]: a compat layer that makes Electron apps run natively on X11 and Wayland. 6 | Apps are wrapped with a Bash script that evals to platform-specific flags. To prevent double wrapping `$out/.bin-wrapped` is used so that application name shows up correctly in htop or other programs. 7 | 8 | [electron-compat]: ../overlays/electron.nix 9 | -------------------------------------------------------------------------------- /docs/tree.md: -------------------------------------------------------------------------------- 1 | ## `Tree` 2 | 3 | ``` 4 | / 5 | ├── .github/ 6 | ├── .vscode/ 7 | ├── cells/flk/ 8 | ├── docs/ 9 | ├── deploy/ 10 | ├── home/ 11 | │ ├── modules/ 12 | │ ├── profiles/ 13 | │ ├── users/ 14 | │ └── default.nix 15 | ├── lib/ 16 | ├── nixos/ 17 | │ ├── hosts/ 18 | │ ├── modules/ 19 | │ ├── profiles/ 20 | │ └── default.nix 21 | ├── overlays/ 22 | ├── pkgs/ 23 | ├── secrets/ 24 | │ ├── home/ 25 | │ ├── nixos/ 26 | │ ├── ssh/ 27 | │ └── default.nix 28 | ├── .editorconfig 29 | ├── .envrc 30 | ├── .gitignore 31 | ├── adrgen.config.yml 32 | ├── COPYING 33 | ├── flake.lock 34 | ├── flake.nix 35 | ├── nixos-rebuild 36 | ├── README.md 37 | ├── stylua.toml 38 | └── treefmt.toml 39 | ``` 40 | -------------------------------------------------------------------------------- /secrets/home/profiles/accounts.age: -------------------------------------------------------------------------------- 1 | -----BEGIN AGE ENCRYPTED FILE----- 2 | YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IEE2RS8xUSA0enhU 3 | VExhNEs3bXllOE15OVVCYU1KN1NGYzRmYjZObUlJL2JOVWFWQUU4CnRLaW5JSXhY 4 | Z09vVGVzMkhTQVdlcE5SQzNZTXJSSEMyK2tjUFdpbGlZVG8KLT4gcGl2LXAyNTYg 5 | ZnJSazFRIEFyZnF3bXFwb1h0Z083Yk5LNTdHbFJGcTZtbXpOR05ta3lBUzNwV2Jh 6 | YklQCjZ6bndjRXllcVpZRUhrekxaTXhhQ1FYQWpLdmpXamtoNm5FaHBoMmpYb28K 7 | LT4gUlo+LWdyZWFzZSBLdlF5XDVeKyB5OisKCi0tLSBJc0VRNzlGak5Scml4bUFN 8 | UThqTktqNzI1ZTBIbEI0bzdrajZveFRzWHV3CrnxPfBVxIjWk+c5kWfTgnxHfXgJ 9 | AgFxgO6pJF3mbM5lJsJSH7qtJMPbX3U4OUkJ/JcjOKxpR4EJAHBT8wEekgyzSlnS 10 | 6pKjtvZ1WoxK1DtXQ6xNwlSayGcNBYChz7o3SHZhZOSL95BNcOB7aeWpA8gmgBRc 11 | FSF8PozQSQm4bMoz7/fD4aT+WVRXJ9/d+MRmWQC2zwcnQWBRav+VeFF6Ck9Tqbxo 12 | codFoymBMfXE4OINgWBrdw== 13 | -----END AGE ENCRYPTED FILE----- 14 | -------------------------------------------------------------------------------- /secrets/home/users/danie.age: -------------------------------------------------------------------------------- 1 | -----BEGIN AGE ENCRYPTED FILE----- 2 | YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IEE2RS8xUSBGR3g2 3 | K0NSNmZ5SVZTZE80K2RscnFTMDV0Y1NMVFFkSzlLUGVjcW8xY3pVCkZ3aEI5Nk1U 4 | ZHliZ04vbWFjcm9FT1o1QjZEMmlPbStVTlJrUzg4TFRzRU0KLT4gcGl2LXAyNTYg 5 | ZnJSazFRIEF0WnhNSFgxMHdIcVplV09LZUFlZWNvaklMTVdYYUd4NlhXS1p3Z3hh 6 | WUp4CnhZL2ZWMmttL0ptbVNaZ2djei9mVlE5NHd3UEFNb3NqaEpWR1NXQzJpTXMK 7 | LT4gaElAW3wiZS1ncmVhc2UgZmI8CkFmOW9MMzdxRHBNZjBidU9qV1lvajcvTjdH 8 | Nk1aWlVYblU0ek1xNERuS1prbjFLQnFxZzVlWHdra2M5eTdFK3MKQ2NHVjNhakFl 9 | bktKUkxlVDg1RnI4dwotLS0geVgvTXVsRkE0ZUtkbFovaFl6QTJnek1tNGpmVnpX 10 | WTdLRm5lVEI5WXliSQpUnu8Jpf5jczLPK8Wy0HgJTGAUYutkNK3xeZTrbhqzk8r9 11 | ly/tU5xh6JH6FLB42iuoyi03j6rd1idzc+FTzTe3fhfk067ncksdxCXT9tRDMXLn 12 | KFXOylyRW9FiDphkU9oHAmiEFlxGuvYis+2wJIqEoet4KJ+fjJ8syuo5lbMURIXJ 13 | WUyu+A== 14 | -----END AGE ENCRYPTED FILE----- 15 | -------------------------------------------------------------------------------- /secrets/nixos/profiles/cloud/caddy.age: -------------------------------------------------------------------------------- 1 | -----BEGIN AGE ENCRYPTED FILE----- 2 | YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDhXMkJxUSBBZWMz 3 | MmpteklBbHZPdEVXVFFSc0gyQ0l5NUlrLy84OWQ5VlJ0b1ZwSGc4CklwOXBYYnZ0 4 | QldIaVFjbGFkK3p0S0FCdXkwYktKZnFBS3F4Zys3bTdKRWMKLT4gc3NoLWVkMjU1 5 | MTkgb0toUnVnIGlYVkZlZkYzQkJQb1kvY1o4WlVoTG1tVlhBY0JkSGhDdFZFNDNK 6 | WlhuM1UKZmlSUDJUWXJNb3RTQlJzZllCT3JIQTYyUFROWWcrbWJ5aHpSekZ5b1VD 7 | ZwotPiBzc2gtZWQyNTUxOSBBNkUvMVEgK3BEbXBkMXlNdVF0MWQveXVxbFgwRFlY 8 | Tks5ZWM3Y1g4REFxenIwWHBDWQpkdzdRdzVqaisyd0VVL0hNb1l5NDU4YS9SSzlM 9 | OEUydTVvSGQ0dGtaYnFRCi0+IHBpdi1wMjU2IGZyUmsxUSBBcmY4VjNSQWQwd3No 10 | VEZQS3o5UGJVTmlzS1FSKy9zSzhvZzdoZzBrSy9PdgpIeE1tai9tNGJNUjZmL29t 11 | d2pFcnp2M0ZaWEhuSlBlQkk3dUNsdUxtZmZBCi0+IDduZEYlMD4xLWdyZWFzZQo2 12 | blNNRTlRTDg2UHZQaWRGd2cKLS0tIFFxRXRZcnNoTFE2L2xUSk9vWnhPSmkvdUM4 13 | cnhmK0dvc0Z3d2pZTkdpVjgKRnZPPmHn9M48boRQK2oB5ExL5hoQ25oL9JS7xaK9 14 | jw/KmXwhcJaiDshikZ8itZrueFxbeVoWh32qSAqyQ58gPxdo64OBU+QNWIb6qLwv 15 | dOnFsBU+7zv8JSQ3XzSWZadk 16 | -----END AGE ENCRYPTED FILE----- 17 | -------------------------------------------------------------------------------- /secrets/nixos/profiles/cloud/spotify.age: -------------------------------------------------------------------------------- 1 | -----BEGIN AGE ENCRYPTED FILE----- 2 | YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IDhXMkJxUSBSVUNw 3 | QlIyOG4rV2R0V1o2RjhBZytTSWtoM0FhWjVUa3kzVHlndlE5R0Q0ClBIdG85NWlp 4 | NkVTN2tQYXovbnAxQkl3cmNHQkRiOUdHZXpUNkJBbU5oSU0KLT4gc3NoLWVkMjU1 5 | MTkgb0toUnVnIDJYNmZoZ1BxUzFSMGh2SjZ5akNHc2hJblVTY1NTZlV1cUt5YThn 6 | aENveXMKVVNxWXJqNUlOMHZDblQ1MWl2K1QrL3pjekN4N2VxRXd2dFVaOXZHdVpi 7 | MAotPiBzc2gtZWQyNTUxOSBBNkUvMVEgUFd4NHRia2k5K3phUDJ4eXozSGJNOWpQ 8 | ZXBYSWdINzRrbTZIUXpjNUlHTQpiY3NuOGJEM05QZER4Zm04cldwVklXelFwTlFw 9 | ZTVkNmVrNzVDelZoYXBnCi0+IHBpdi1wMjU2IGZyUmsxUSBBcTBwb293dnBKeTc0 10 | RGtYMjN4WlVjbHI0Z25GRmdyM2tVL3AxQ0xLVElHcgoyRHVJVlZOMTZuRTNoaTU2 11 | NzYxdDVMMk5WbElqQnRGOW8zTnBWZWJ3SnJvCi0+IExWLWdyZWFzZSAiPFE5MHNG 12 | IFhmQgpOS1FFdVpKcUhJcS9SdS94SjI5TWVUR3hRSnlzTmU0cy9vNEQ0RlphdWtR 13 | bThHMmtPaCtaM3cKLS0tIG83cmEvcnh4cUp6Rnc1SkxNRUZ5TTdSM1dSKzhSb2hU 14 | eWJsa3ZZV2VKeWcKPFIbYmv9PJH+pGMFBKu+i2oBJCj2aN5E8AO3xCEdq+mg9cky 15 | sK0BqsRoshM3KNTz/2afgbK1sjThioJPTEyBsogpKBIkxKSZaHWvgN1lKtpa9jPw 16 | BtYTetQvh/BsNfjYrpyx6Vge 17 | -----END AGE ENCRYPTED FILE----- 18 | -------------------------------------------------------------------------------- /secrets/ssh/age-yubikey-identity-a8555007.txt: -------------------------------------------------------------------------------- 1 | # Serial: 16093679, Slot: 1 2 | # Name: age identity 7eb464d5 3 | # Created: Tue, 01 Feb 2022 01:00:34 +0000 4 | # PIN policy: Never (A PIN is NOT required to decrypt) 5 | # Touch policy: Never (A physical touch is NOT required to decrypt) 6 | # Recipient: age1yubikey1q293cy2t04vz0aallsfcvy5qgk3tmw7rnmz9e6syhcf3esawxfdcu6e9ghn 7 | AGE-PLUGIN-YUBIKEY-1A7GL2QYZ066XF4GNFX9HE 8 | -------------------------------------------------------------------------------- /secrets/ssh/alita.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIENcgkaR9Eut882LrniZvXzZ26ik5JWZzyNG7odZ172d -------------------------------------------------------------------------------- /secrets/ssh/danie.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBQ2jOkIqAXmgnW14CUSHcsJQoGuyr6KQgwMX0hJCk2TA8kqO5pb5xMMvLhS3yPsrzMvaI6SU7ijb+fm5QyxWS0= -------------------------------------------------------------------------------- /secrets/ssh/pik2.pub: -------------------------------------------------------------------------------- 1 | ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPX+ah50jmnLkmDPjSc7fN6+bLVdfPtABgncHgx9qwG5 -------------------------------------------------------------------------------- /secrets/ssh/themachine.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQChwVJyCdn/aBvqXyTpuXfo/u75zjd+10YaCa9wLwFrVsEg28QOtVcc8sbDkfxHKCVt0pAY8EDwp5PLs1JkOss0lMAmSaVJMNIwIuhnZ0e8g7vhzo2ckdKpAPISyrC98aw5jws4yTMa6jTi+908xc0Y+d25IrI3mvIT1m3XmI8y22IEBo3hp7UQp6CfapqbCoJrErbFe9i14yJ5PaHfCV6PPKoRmGlg84CRw4S3k9RfKO/kea439cn6UvQocw7u59xemFGcbfC/WWi5mWOrt2L/VhCn87BqSCcDi5pNuByLai9VIPubN62rugwOErh3mf/lf6slHCAlPrLMiiQpHSrnS275/sGOOncG4ZbZ8dNO4j8z7dxKIsuzxBUxSIP5zPcxGEwxEDinaqoyyU1fD59G5QwDW4Od26q2xA/cct7z+REKe/lMyQnjQ99TMNaUB6/DAlaOZ7rzSrCNZYTrq07t1qvk4sH7FM9EMfKYOPvPnWbahoHYoVKTA2LPgsAXCNVZqTkHV6hgwsOVu70ueaGUHAKFVbwyutFjtL0vI0M93J2Wo1QG//DcgiDEtIn2x+LntdWAVC8l8dhEgpqlFcwyReDNJvV7sNAKPghXuUG6574WzHmYn0yyI0SMhQwdYC/V9q3zNAqptvWQv/hdlXmfmVuN49HK9cMBUwYJfWIs2Q== --------------------------------------------------------------------------------