├── .devcontainer └── devcontainer.json ├── .editorconfig ├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug-report.md │ ├── feature-request.md │ └── help-request.md ├── dependabot.yml ├── devcontainer └── workflows │ ├── build.yml │ ├── check.yml │ ├── install.yml │ ├── shell.yml │ ├── update.yml │ └── website.yml ├── CHANGELOG.md ├── LICENSE ├── README.md ├── checks ├── flake.nix ├── github ├── gitlab │ ├── .gitlab-ci.yml │ ├── .gitlab-webide.yml │ ├── issue_templates │ │ ├── Bug.md │ │ ├── Feature.md │ │ └── Help.md │ └── pipelines │ │ ├── build.yml │ │ ├── check.yml │ │ ├── release.yml │ │ ├── shell.yml │ │ ├── update.yml │ │ └── website.yml └── netlify.toml ├── devices ├── .keep ├── README.md ├── flake.nix ├── futura.nix ├── install │ ├── default.nix │ └── image.nix ├── valkyrie │ ├── default.nix │ ├── drivers.nix │ └── settings │ │ ├── asusd.ron │ │ └── aura.ron └── vortex.nix ├── files ├── .archive │ ├── .keep │ ├── Linux │ │ ├── Arch │ │ │ ├── COMMANDS.md │ │ │ ├── INSTALL.md │ │ │ └── zshrc │ │ └── Pop │ │ │ ├── conky │ │ │ ├── conky.lua │ │ │ └── conkyrc │ │ │ ├── neofetch │ │ │ └── config.conf │ │ │ └── p10k.zsh │ └── Windows │ │ ├── APPS.md │ │ └── Velociraptor.rmskin ├── README.md ├── ascii │ ├── groot │ ├── lol │ ├── pacman │ └── tux ├── colors │ ├── README.md │ ├── adwaita.yaml │ ├── catppuccin.yaml │ └── elementary.yaml ├── fastfetch.jsonc ├── flake.nix ├── geany │ ├── keybindings.conf │ └── settings.conf ├── git │ └── hooks │ │ ├── commit-msg │ │ └── pre-commit ├── gnome │ ├── menu.json │ └── shortcuts.json ├── hyprland │ ├── greeter.conf │ ├── kebihelp.json │ ├── pcmanfm.conf │ ├── pypr.toml │ ├── theme │ │ ├── drawer.css │ │ ├── hyprshell.css │ │ ├── waybar.css │ │ └── wlogout.css │ └── waycorner.toml ├── images │ ├── Profile.png │ ├── desktop │ │ ├── gnome.jpg │ │ ├── hyprland.jpg │ │ ├── old │ │ │ ├── gnome_41.jpg │ │ │ ├── gnome_44.jpg │ │ │ └── gnome_45.jpg │ │ ├── pantheon.jpg │ │ └── xfce.jpg │ ├── logo │ │ ├── dark.png │ │ └── light.png │ ├── transparent.png │ └── website.png ├── logseq │ ├── preferences.json │ └── settings │ │ ├── logseq-awesome-ui.json │ │ ├── logseq-bullet-threading.json │ │ ├── logseq-git.json │ │ ├── logseq-journals-calendar.json │ │ ├── logseq-move-block.json │ │ ├── logseq-pdf-export-plugin.json │ │ ├── logseq-tabs.json │ │ └── logseq-tocgen.json ├── nanorc ├── repl.nix ├── templates │ ├── Document.docx │ ├── File │ ├── Presentation.pptx │ └── Spreadsheet.xlsx ├── touchegg.xml └── vscode │ ├── keybindings.json │ └── settings.json ├── flake.lock ├── flake.nix ├── lib ├── README.md ├── _mime.nix ├── build.nix ├── map.nix └── pack.nix ├── modules ├── README.md ├── apps │ ├── default.nix │ ├── discord.nix │ ├── firefox.nix │ ├── flatpak.nix │ ├── games │ │ ├── default.nix │ │ ├── minecraft.nix │ │ └── osu.nix │ ├── git │ │ ├── default.nix │ │ ├── hosting.nix │ │ ├── runner.nix │ │ └── user.nix │ ├── media.nix │ ├── notes.nix │ ├── office.nix │ ├── spotify.nix │ ├── vscode.nix │ ├── wine.nix │ └── youtube.nix ├── base │ ├── console.nix │ ├── default.nix │ ├── firmware.nix │ └── security.nix ├── configuration.nix ├── gui │ ├── default.nix │ ├── desktop │ │ ├── gnome │ │ │ ├── common.nix │ │ │ ├── default.nix │ │ │ └── settings │ │ │ │ ├── apps.nix │ │ │ │ ├── default.nix │ │ │ │ └── extensions.nix │ │ ├── hyprland │ │ │ ├── apps │ │ │ │ ├── browser.nix │ │ │ │ ├── files.nix │ │ │ │ ├── launcher.nix │ │ │ │ ├── media.nix │ │ │ │ ├── misc.nix │ │ │ │ ├── notify.nix │ │ │ │ ├── panel.nix │ │ │ │ ├── security.nix │ │ │ │ ├── settings.nix │ │ │ │ ├── terminal.nix │ │ │ │ ├── text.nix │ │ │ │ └── utilities.nix │ │ │ ├── default.nix │ │ │ ├── settings │ │ │ │ ├── default.nix │ │ │ │ ├── keybindings.nix │ │ │ │ └── plugins.nix │ │ │ └── theme.nix │ │ ├── install.nix │ │ └── pantheon │ │ │ ├── default.nix │ │ │ └── settings.nix │ ├── fonts.nix │ ├── gtk.nix │ ├── qt.nix │ └── theme.nix ├── hardware │ ├── README.md │ ├── boot.nix │ ├── default.nix │ ├── filesystem.nix │ ├── gpu.nix │ ├── laptop.nix │ ├── mobile.nix │ ├── printer.nix │ └── virtualisation │ │ ├── android.nix │ │ ├── default.nix │ │ └── vfio.nix ├── nix │ ├── config.nix │ ├── default.nix │ ├── index.nix │ ├── registry.nix │ └── tools.nix ├── secrets.nix ├── shell │ ├── bash.nix │ ├── default.nix │ ├── prompt.nix │ └── zsh.nix └── user │ ├── default.nix │ ├── home.nix │ └── security.nix ├── packages ├── README.md ├── default.nix ├── firefox-elementary │ ├── default.nix │ └── metadata.nix ├── flake.nix ├── geany-catppuccin │ ├── default.nix │ ├── metadata.nix │ └── selection.patch ├── hyprshellevents │ ├── default.nix │ └── metadata.nix ├── kebihelp │ ├── default.nix │ └── metadata.nix ├── kitty-search │ ├── default.nix │ └── metadata.nix ├── kvlibadwaita │ ├── default.nix │ └── metadata.nix ├── overlays │ ├── chrome.nix │ └── nixFlakes.nix ├── patches │ ├── .keep │ └── 391574.patch ├── update.sh └── wine │ ├── .keep │ ├── 7zip.nix │ └── notepad++.nix ├── scripts ├── README.md ├── audio.sh ├── colors.sh ├── commands.sh ├── hyprutils.nix ├── install.nix ├── mail.sh ├── nixos.nix ├── packages.sh └── pci.sh ├── secrets ├── README.md ├── cachix-token.secret ├── default.nix ├── github-token.secret ├── gitlab-token.secret ├── keys │ ├── .gitattributes │ ├── navya.gpg │ └── v7.gpg ├── secrets.yaml └── vortex │ ├── cloudflare.secret │ ├── github-runner.secret │ └── gitlab-runner.secret ├── shells ├── .envrc ├── cc.nix ├── default.nix ├── flake.nix ├── java.nix ├── js.nix ├── lua.nix ├── python.nix ├── rust.nix ├── sql.nix └── video.nix ├── site ├── .envrc ├── .gitignore ├── README.md ├── config.toml ├── content │ ├── _index.md │ ├── about.md │ ├── anime.md │ ├── archive.md │ ├── blog │ │ ├── _index.md │ │ ├── hello.md │ │ ├── nix.md │ │ └── nixos.md │ ├── feed.md │ ├── now.md │ ├── projects.md │ ├── read.md │ └── test.md ├── default.nix ├── flake.nix ├── robots.txt ├── sass │ ├── _comments.scss │ ├── _footer.scss │ ├── _header.scss │ ├── _image.scss │ ├── _logo.scss │ ├── _main.scss │ ├── _pagination.scss │ ├── _post.scss │ ├── _search.scss │ ├── _squiggle-line.scss │ ├── _syntax.scss │ ├── _toc.scss │ ├── _variables.scss │ ├── color │ │ ├── black.scss │ │ ├── blue.scss │ │ └── red.scss │ ├── fonts.scss │ └── style.scss ├── shell.nix ├── static │ ├── desktop.ico │ ├── fonts │ │ ├── JetBrainsMono-Nerd-Bold.woff2 │ │ ├── JetBrainsMono-Nerd-BoldItalic.woff2 │ │ ├── JetBrainsMono-Nerd-Italic.woff2 │ │ └── JetBrainsMono-Nerd-Regular.woff2 │ ├── js │ │ ├── clipboard.js │ │ ├── comments.js │ │ ├── footnote.js │ │ ├── katex.js │ │ ├── load.js │ │ ├── mobile.js │ │ ├── scroll.js │ │ ├── search.js │ │ └── theme.js │ ├── math │ │ ├── auto-render.js │ │ ├── fonts │ │ │ ├── KaTeX_AMS-Regular.ttf │ │ │ ├── KaTeX_AMS-Regular.woff │ │ │ ├── KaTeX_AMS-Regular.woff2 │ │ │ ├── KaTeX_Caligraphic-Bold.ttf │ │ │ ├── KaTeX_Caligraphic-Bold.woff │ │ │ ├── KaTeX_Caligraphic-Bold.woff2 │ │ │ ├── KaTeX_Caligraphic-Regular.ttf │ │ │ ├── KaTeX_Caligraphic-Regular.woff │ │ │ ├── KaTeX_Caligraphic-Regular.woff2 │ │ │ ├── KaTeX_Fraktur-Bold.ttf │ │ │ ├── KaTeX_Fraktur-Bold.woff │ │ │ ├── KaTeX_Fraktur-Bold.woff2 │ │ │ ├── KaTeX_Fraktur-Regular.ttf │ │ │ ├── KaTeX_Fraktur-Regular.woff │ │ │ ├── KaTeX_Fraktur-Regular.woff2 │ │ │ ├── KaTeX_Main-Bold.ttf │ │ │ ├── KaTeX_Main-Bold.woff │ │ │ ├── KaTeX_Main-Bold.woff2 │ │ │ ├── KaTeX_Main-BoldItalic.ttf │ │ │ ├── KaTeX_Main-BoldItalic.woff │ │ │ ├── KaTeX_Main-BoldItalic.woff2 │ │ │ ├── KaTeX_Main-Italic.ttf │ │ │ ├── KaTeX_Main-Italic.woff │ │ │ ├── KaTeX_Main-Italic.woff2 │ │ │ ├── KaTeX_Main-Regular.ttf │ │ │ ├── KaTeX_Main-Regular.woff │ │ │ ├── KaTeX_Main-Regular.woff2 │ │ │ ├── KaTeX_Math-BoldItalic.ttf │ │ │ ├── KaTeX_Math-BoldItalic.woff │ │ │ ├── KaTeX_Math-BoldItalic.woff2 │ │ │ ├── KaTeX_Math-Italic.ttf │ │ │ ├── KaTeX_Math-Italic.woff │ │ │ ├── KaTeX_Math-Italic.woff2 │ │ │ ├── KaTeX_SansSerif-Bold.ttf │ │ │ ├── KaTeX_SansSerif-Bold.woff │ │ │ ├── KaTeX_SansSerif-Bold.woff2 │ │ │ ├── KaTeX_SansSerif-Italic.ttf │ │ │ ├── KaTeX_SansSerif-Italic.woff │ │ │ ├── KaTeX_SansSerif-Italic.woff2 │ │ │ ├── KaTeX_SansSerif-Regular.ttf │ │ │ ├── KaTeX_SansSerif-Regular.woff │ │ │ ├── KaTeX_SansSerif-Regular.woff2 │ │ │ ├── KaTeX_Script-Regular.ttf │ │ │ ├── KaTeX_Script-Regular.woff │ │ │ ├── KaTeX_Script-Regular.woff2 │ │ │ ├── KaTeX_Size1-Regular.ttf │ │ │ ├── KaTeX_Size1-Regular.woff │ │ │ ├── KaTeX_Size1-Regular.woff2 │ │ │ ├── KaTeX_Size2-Regular.ttf │ │ │ ├── KaTeX_Size2-Regular.woff │ │ │ ├── KaTeX_Size2-Regular.woff2 │ │ │ ├── KaTeX_Size3-Regular.ttf │ │ │ ├── KaTeX_Size3-Regular.woff │ │ │ ├── KaTeX_Size3-Regular.woff2 │ │ │ ├── KaTeX_Size4-Regular.ttf │ │ │ ├── KaTeX_Size4-Regular.woff │ │ │ ├── KaTeX_Size4-Regular.woff2 │ │ │ ├── KaTeX_Typewriter-Regular.ttf │ │ │ ├── KaTeX_Typewriter-Regular.woff │ │ │ └── KaTeX_Typewriter-Regular.woff2 │ │ ├── katex.css │ │ └── mathtex-script-type.js │ └── social │ │ ├── discord.png │ │ ├── github.png │ │ ├── mail.png │ │ ├── reddit.png │ │ ├── rss.png │ │ └── twitter.png └── templates │ ├── 404.html │ ├── anchor-link.html │ ├── base.html │ ├── index.html │ ├── macros │ ├── analytics.html │ ├── comments.html │ ├── edit.html │ ├── footer.html │ ├── head.html │ ├── header.html │ ├── javascript.html │ ├── lists.html │ ├── logo.html │ ├── menu.html │ ├── pagination.html │ ├── posts.html │ ├── social.html │ ├── squiggle-line.html │ ├── toc.html │ └── url.html │ ├── page.html │ ├── section.html │ ├── series │ ├── list.html │ └── single.html │ ├── shortcodes │ ├── figure.html │ ├── github.html │ ├── image.html │ ├── url.html │ └── youtube.html │ └── tags │ ├── list.html │ └── single.html └── users ├── README.md ├── default.nix ├── navya.nix ├── passwords ├── default ├── navya.secret ├── root.secret └── v7.secret └── v7 ├── accounts.conf └── default.nix /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "image": "mcr.microsoft.com/devcontainers/base:alpine", 3 | "features": { 4 | "ghcr.io/devcontainers/features/nix:1": { 5 | "multiUser": true, 6 | "version": "latest", 7 | "extraNixConfig": "experimental-features = nix-command flakes" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | end_of_line = lf 5 | indent_size = 2 6 | indent_style = space 7 | insert_final_newline = false 8 | tab_size = 2 9 | trim_trailing_whitespace = false 10 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.secret binary 2 | site/static/js/* linguist-vendored 3 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug Report 3 | about: Create a report to help improve the configuration 4 | title: "" 5 | labels: bug 6 | assignees: maydayv7 7 | --- 8 | 9 | ### Describe the bug 10 | 11 | A clear and concise description of what the bug is 12 | 13 | ### Steps To Reproduce 14 | 15 | Steps to reproduce the behavior: 16 | 17 | 1. ... 18 | 2. ... 19 | 3. ... 20 | 21 | ### Expected behavior 22 | 23 | A clear and concise description of what you expected to happen 24 | 25 | ### Screenshots 26 | 27 | If applicable, add screenshots to help explain your problem 28 | 29 | ### Additional context 30 | 31 | Add any other context about the problem 32 | 33 | ### Metadata 34 | 35 | Please run `nix shell nixpkgs#nix-info --command sh -c "nix-info -m"` and paste the result 36 | 37 | ```console 38 | [user@system:~]$ nix shell nixpkgs#nix-info --command sh -c "nix-info -m" 39 | output here 40 | ``` 41 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "" 5 | labels: enhancement 6 | assignees: maydayv7 7 | --- 8 | 9 | **Is your feature request related to a problem? Please describe.** 10 | A clear and concise description of what the problem is 11 | 12 | **Describe the solution you'd like** 13 | A clear and concise description of what you want to happen 14 | 15 | **Describe alternatives you've considered** 16 | A clear and concise description of any alternative solutions or features you've considered, if applicable 17 | 18 | **Additional context** 19 | Add any other context or screenshots 20 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/help-request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Help Request 3 | about: Request for help or clarification on anything related to this project 4 | title: "" 5 | labels: help wanted, question 6 | assignees: maydayv7 7 | --- 8 | 9 | ### Description 10 | 11 | A clear and concise description of what problem you're facing or any area where clarification is required 12 | 13 | ### Expected behavior 14 | 15 | A clear and concise description of what you expect to happen 16 | 17 | ### Screenshots 18 | 19 | If applicable, add screenshots to help explain your problem 20 | 21 | ### Additional context 22 | 23 | Add any other context about the problem 24 | 25 | ### Metadata 26 | 27 | Please run `nix shell nixpkgs#nix-info --command sh -c "nix-info -m"` and paste the result. 28 | 29 | ```console 30 | [user@system:~]$ nix shell nixpkgs#nix-info --command sh -c "nix-info -m" 31 | output here 32 | ``` 33 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: github-actions 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | open-pull-requests-limit: 5 8 | commit-message: 9 | prefix: "ci" 10 | include: "scope" 11 | -------------------------------------------------------------------------------- /.github/devcontainer: -------------------------------------------------------------------------------- 1 | ../.devcontainer -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: "ci: Build `nixosConfigurations`" 2 | on: 3 | workflow_dispatch: 4 | workflow_call: 5 | push: 6 | tags: 7 | - "*" 8 | paths: 9 | - "**.lock" 10 | pull_request: 11 | types: [opened, synchronize, reopened, ready_for_review] 12 | paths-ignore: 13 | - "**.md" 14 | - "**.yml" 15 | - "docs/**" 16 | - "files/**" 17 | - "shells/**" 18 | env: 19 | NIX_SHOW_STATS: 1 20 | jobs: 21 | build: 22 | if: github.event.pull_request.draft == false 23 | runs-on: ubuntu-latest 24 | strategy: 25 | max-parallel: 1 26 | fail-fast: false 27 | matrix: 28 | device: [valkyrie, vortex, futura] 29 | steps: 30 | - name: Maximize Build Space 31 | run: | 32 | sudo rm -rf /usr/share/dotnet 33 | sudo rm -rf /opt/ghc 34 | sudo rm -rf "/usr/local/share/boost" 35 | sudo rm -rf "$AGENT_TOOLSDIRECTORY" 36 | - name: Clone Repo 37 | uses: actions/checkout@v4 38 | with: 39 | token: ${{ secrets.GITHUB_TOKEN }} 40 | fetch-depth: 0 41 | - name: Install Nix 42 | uses: cachix/install-nix-action@v31 43 | with: 44 | extra_nix_config: | 45 | experimental-features = nix-command flakes 46 | accept-flake-config = true 47 | access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} 48 | - name: Setup Cachix 49 | uses: cachix/cachix-action@v16 50 | with: 51 | name: maydayv7-dotfiles 52 | authToken: "${{ secrets.CACHIX_TOKEN }}" 53 | - name: Build Configuration 54 | run: | 55 | export LC_ALL=C.UTF-8 56 | ulimit -n 2048 57 | nix build .#nixosConfigurations.${{ matrix.device }}.config.system.build.toplevel -L --show-trace 58 | -------------------------------------------------------------------------------- /.github/workflows/check.yml: -------------------------------------------------------------------------------- 1 | name: "ci: Check Syntax" 2 | on: 3 | workflow_dispatch: 4 | push: 5 | paths-ignore: 6 | - "**.md" 7 | - "**.yml" 8 | - "docs/**" 9 | - "files/**" 10 | - "shells/**" 11 | env: 12 | NIX_SHOW_STATS: 1 13 | jobs: 14 | check: 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: Maximize Build Space 18 | run: | 19 | sudo rm -rf /usr/share/dotnet 20 | sudo rm -rf /opt/ghc 21 | sudo rm -rf "/usr/local/share/boost" 22 | sudo rm -rf "$AGENT_TOOLSDIRECTORY" 23 | - name: Clone Repo 24 | uses: actions/checkout@v4 25 | with: 26 | token: ${{ secrets.GITHUB_TOKEN }} 27 | fetch-depth: 0 28 | - name: Install Nix 29 | uses: cachix/install-nix-action@v31 30 | with: 31 | extra_nix_config: | 32 | experimental-features = nix-command flakes 33 | accept-flake-config = true 34 | access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} 35 | - name: Check Syntax 36 | run: nix flake check . --keep-going 37 | -------------------------------------------------------------------------------- /.github/workflows/install.yml: -------------------------------------------------------------------------------- 1 | name: "ci: Build Install Media image" 2 | on: 3 | workflow_dispatch: 4 | schedule: 5 | - cron: "0 0 1 * *" 6 | push: 7 | tags: 8 | - "*" 9 | env: 10 | NIX_SHOW_STATS: 1 11 | jobs: 12 | image: 13 | runs-on: ubuntu-latest 14 | steps: 15 | - name: Clone Repo 16 | uses: actions/checkout@v4 17 | with: 18 | token: ${{ secrets.GITHUB_TOKEN }} 19 | fetch-depth: 0 20 | - name: Install Nix 21 | uses: cachix/install-nix-action@v31 22 | with: 23 | extra_nix_config: | 24 | experimental-features = nix-command flakes 25 | accept-flake-config = true 26 | access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} 27 | - name: Build Default Install Media 28 | run: nix build .#nixosConfigurations.install.config.system.build.images.iso -L --show-trace 29 | - name: Upload ISO Image 30 | uses: actions/upload-artifact@v4 31 | id: image-upload 32 | with: 33 | name: Image 34 | path: result/iso/install.iso 35 | compression-level: 0 36 | if-no-files-found: error 37 | -------------------------------------------------------------------------------- /.github/workflows/shell.yml: -------------------------------------------------------------------------------- 1 | name: "ci: Check `devShells`" 2 | on: 3 | push: 4 | paths: 5 | - "shells/**" 6 | env: 7 | NIX_SHOW_STATS: 1 8 | jobs: 9 | shell: 10 | runs-on: ubuntu-latest 11 | strategy: 12 | matrix: 13 | shell: [cc, format, java, lua, python, rust, sql, video, website] 14 | steps: 15 | - name: Clone Repo 16 | uses: actions/checkout@v4 17 | with: 18 | token: ${{ secrets.GITHUB_TOKEN }} 19 | fetch-depth: 0 20 | - name: Install Nix 21 | uses: cachix/install-nix-action@v31 22 | with: 23 | extra_nix_config: | 24 | experimental-features = nix-command flakes 25 | accept-flake-config = true 26 | access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} 27 | - name: Setup Cachix 28 | uses: cachix/cachix-action@v16 29 | with: 30 | name: maydayv7-dotfiles 31 | authToken: "${{ secrets.CACHIX_TOKEN }}" 32 | - name: Check Shells 33 | run: nix develop .#${{ matrix.shell }} 34 | -------------------------------------------------------------------------------- /.github/workflows/website.yml: -------------------------------------------------------------------------------- 1 | name: "ci: Build and Deploy Site" 2 | on: 3 | workflow_dispatch: 4 | push: 5 | branches: [stable] 6 | push: 7 | paths: 8 | - "site/**" 9 | jobs: 10 | deploy: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - name: Clone Repo 14 | uses: actions/checkout@v4 15 | with: 16 | token: ${{ secrets.GITHUB_TOKEN }} 17 | fetch-depth: 0 18 | - name: Install Nix 19 | uses: cachix/install-nix-action@v31 20 | with: 21 | extra_nix_config: | 22 | experimental-features = nix-command flakes 23 | accept-flake-config = true 24 | access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} 25 | - name: Build Zola Site 26 | run: nix build .#website 27 | - name: Deploy to GitHub Pages 28 | uses: peaceiris/actions-gh-pages@v4.0.0 29 | with: 30 | github_token: ${{ secrets.ACCESS_TOKEN }} 31 | publish_dir: ./result 32 | publish_branch: deploy 33 | cname: maydayv7.site 34 | -------------------------------------------------------------------------------- /checks/flake.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | inputs, 4 | ... 5 | }: 6 | { 7 | ## Configuration Checks ## 8 | imports = [ inputs.formatter.flakeModule ]; 9 | 10 | perSystem = 11 | { system, ... }: 12 | { 13 | ## Code Formatter 14 | treefmt.config = { 15 | projectRootFile = "flake.nix"; 16 | settings.global.excludes = [ 17 | "_*" 18 | "result/**" 19 | "flake.lock" 20 | ]; 21 | 22 | programs = { 23 | nixfmt.enable = true; 24 | statix.enable = true; 25 | shellcheck.enable = false; 26 | stylua.enable = true; 27 | deadnix = { 28 | enable = true; 29 | no-lambda-arg = true; 30 | }; 31 | 32 | prettier = { 33 | enable = true; 34 | settings.bracketSameLine = true; 35 | }; 36 | }; 37 | }; 38 | 39 | # Formatting Shell 40 | devShells.format = config.allSystems."${system}".treefmt.build.devShell; 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /checks/github: -------------------------------------------------------------------------------- 1 | ../.github -------------------------------------------------------------------------------- /checks/gitlab/.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | # Default Image for latest Nix 2 | default: 3 | image: nixpkgs/cachix-flakes:latest 4 | 5 | # CI Variables 6 | variables: 7 | PACKAGE_REGISTRY: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic" 8 | 9 | # CI Job Priority 10 | stages: 11 | - check 12 | - build 13 | - publish 14 | 15 | # CI Imports 16 | include: "checks/gitlab/pipelines/*.yml" 17 | -------------------------------------------------------------------------------- /checks/gitlab/.gitlab-webide.yml: -------------------------------------------------------------------------------- 1 | terminal: 2 | image: nixpkgs/cachix-flakes:latest 3 | before_script: 4 | - nix develop 5 | -------------------------------------------------------------------------------- /checks/gitlab/issue_templates/Bug.md: -------------------------------------------------------------------------------- 1 | ### Describe the bug 2 | 3 | A clear and concise description of what the bug is 4 | 5 | ### Steps To Reproduce 6 | 7 | Steps to reproduce the behavior: 8 | 9 | 1. ... 10 | 2. ... 11 | 3. ... 12 | 13 | ### Expected behavior 14 | 15 | A clear and concise description of what you expected to happen 16 | 17 | ### Screenshots 18 | 19 | If applicable, add screenshots to help explain your problem 20 | 21 | ### Additional context 22 | 23 | Add any other context about the problem 24 | 25 | ### Metadata 26 | 27 | Please run `nix shell nixpkgs#nix-info --command sh -c "nix-info -m"` and paste the result 28 | 29 | ```console 30 | [user@system:~]$ nix shell nixpkgs#nix-info --command sh -c "nix-info -m" 31 | output here 32 | ``` 33 | -------------------------------------------------------------------------------- /checks/gitlab/issue_templates/Feature.md: -------------------------------------------------------------------------------- 1 | **Is your feature request related to a problem? Please describe.** 2 | A clear and concise description of what the problem is 3 | 4 | **Describe the solution you'd like** 5 | A clear and concise description of what you want to happen 6 | 7 | **Describe alternatives you've considered** 8 | A clear and concise description of any alternative solutions or features you've considered, if applicable 9 | 10 | **Additional context** 11 | Add any other context or screenshots 12 | -------------------------------------------------------------------------------- /checks/gitlab/issue_templates/Help.md: -------------------------------------------------------------------------------- 1 | ### Description 2 | 3 | A clear and concise description of what problem you're facing or any area where clarification is required 4 | 5 | ### Expected behavior 6 | 7 | A clear and concise description of what you expect to happen 8 | 9 | ### Screenshots 10 | 11 | If applicable, add screenshots to help explain your problem 12 | 13 | ### Additional context 14 | 15 | Add any other context about the problem 16 | 17 | ### Metadata 18 | 19 | Please run `nix shell nixpkgs#nix-info --command sh -c "nix-info -m"` and paste the result. 20 | 21 | ```console 22 | [user@system:~]$ nix shell nixpkgs#nix-info --command sh -c "nix-info -m" 23 | output here 24 | ``` 25 | -------------------------------------------------------------------------------- /checks/gitlab/pipelines/build.yml: -------------------------------------------------------------------------------- 1 | # Build Device Configuration 2 | device: 3 | stage: build 4 | only: 5 | - tags 6 | except: 7 | - /^(?!stable).+@/ 8 | allow_failure: true 9 | variables: 10 | CACHIX_AUTH_TOKEN: $CACHIX_TOKEN 11 | CACHIX_CACHE_NAME: maydayv7-dotfiles 12 | parallel: 13 | matrix: 14 | - DEVICE: [valkyrie, vortex, futura] 15 | script: cachix watch-exec $CACHIX_CACHE_NAME nix build .#nixosConfigurations.$DEVICE.config.system.build.toplevel -- -L --show-trace 16 | 17 | # Build and Upload Install Media Image 18 | iso: 19 | stage: build 20 | only: 21 | - tags 22 | except: 23 | - /^(?!stable).+@/ 24 | script: nix build .#nixosConfigurations.install.config.system.build.images.iso -L --show-trace 25 | after_script: 26 | - nix profile install .#curl 27 | - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ./result/iso/install.iso ${PACKAGE_REGISTRY}/installMedia/${CI_COMMIT_TAG}/NixOS.iso' 28 | -------------------------------------------------------------------------------- /checks/gitlab/pipelines/check.yml: -------------------------------------------------------------------------------- 1 | # Check Nix Syntax 2 | check: 3 | stage: check 4 | only: 5 | changes: 6 | - "*.nix" 7 | - "**/*.nix" 8 | except: 9 | - tags 10 | - schedules 11 | script: nix flake check --keep-going 12 | -------------------------------------------------------------------------------- /checks/gitlab/pipelines/release.yml: -------------------------------------------------------------------------------- 1 | # Release Install Media Image 2 | release: 3 | stage: publish 4 | image: registry.gitlab.com/gitlab-org/release-cli:latest 5 | only: 6 | - tags 7 | except: 8 | - /^(?!stable).+@/ 9 | needs: 10 | - job: iso 11 | script: echo "Creating Release..." 12 | release: 13 | name: $CI_COMMIT_TAG 14 | description: "Draft Release" 15 | tag_name: $CI_COMMIT_TAG 16 | ref: $CI_COMMIT_SHA 17 | assets: 18 | links: 19 | - name: NixOS.iso 20 | url: "${PACKAGE_REGISTRY}/installMedia/${CI_COMMIT_TAG}/NixOS.iso" 21 | -------------------------------------------------------------------------------- /checks/gitlab/pipelines/shell.yml: -------------------------------------------------------------------------------- 1 | # Check Nix Developer Shells 2 | shell: 3 | stage: check 4 | only: 5 | changes: 6 | - "shells/*" 7 | except: 8 | - tags 9 | - schedules 10 | allow_failure: true 11 | variables: 12 | CACHIX_AUTH_TOKEN: $CACHIX_TOKEN 13 | CACHIX_CACHE_NAME: maydayv7-dotfiles 14 | parallel: 15 | matrix: 16 | - DEVSHELL: [cc, format, java, lua, python, rust, sql, video, website] 17 | script: cachix watch-exec $CACHIX_CACHE_NAME nix develop .#$DEVSHELL 18 | -------------------------------------------------------------------------------- /checks/gitlab/pipelines/update.yml: -------------------------------------------------------------------------------- 1 | # Automatic Scheduled Updates 2 | update: 3 | stage: publish 4 | only: 5 | - schedules 6 | except: 7 | - /^(?!stable).+@/ 8 | before_script: 9 | - export GIT_SSL_CAINFO="$CI_SERVER_TLS_CA_FILE" 10 | - git config --global user.email "${GITLAB_USER_EMAIL}" 11 | - git config --global user.name "${GITLAB_USER_NAME}" 12 | - git branch update-$CI_JOB_ID 13 | - git checkout update-$CI_JOB_ID 14 | script: 15 | - nix flake update --commit-lock-file 16 | - cd packages && ./update.sh 17 | after_script: 18 | - git push "https://${CI_PROJECT_NAMESPACE}:${ACCESS_TOKEN}@gitlab.com/${CI_PROJECT_PATH}.git" HEAD:update-$CI_JOB_ID -o merge_request.create -o merge_request.target=stable -o merge_request.remove_source_branch 19 | -------------------------------------------------------------------------------- /checks/gitlab/pipelines/website.yml: -------------------------------------------------------------------------------- 1 | # Build and Deploy Website 2 | website: 3 | stage: publish 4 | only: 5 | changes: 6 | - "site/*" 7 | except: 8 | - /^(?!stable).+@/ 9 | script: nix build .#website 10 | after_script: 11 | - mkdir -p archive 12 | - cp -r ./result/* archive 13 | artifacts: 14 | paths: 15 | - "archive/*" 16 | -------------------------------------------------------------------------------- /checks/netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | publish = "build" 3 | command = """ 4 | export NP_GIT=$(which git) 5 | curl -L https://github.com/DavHau/nix-portable/releases/latest/download/nix-portable-$(uname -m) > ./nix-portable 6 | chmod +x nix-portable 7 | ./nix-portable nix build --impure --expr "with import {}; callPackage ./site { site = ${DEPLOY_PRIME_URL}; }" 8 | ./nix-portable nix shell nixpkgs#bash -c "bash" -c "cp -rL result build" 9 | """ 10 | -------------------------------------------------------------------------------- /devices/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/devices/.keep -------------------------------------------------------------------------------- /devices/README.md: -------------------------------------------------------------------------------- 1 | ### Devices 2 | 3 | The `devices` directory contains the core definitions for multiple PCs and various other devices. To add a new device, simply create a configuration file for it (name of the file/directory must be the same as the `hostname` of the device) and write down the configuration using the options of the desired modules from the [`modules`](../modules/README.md) directory, or add your own configuration modules using the `imports` keyword. Optionally, add user-specific configuration in [`users`](../users/README.md). Then, run the command `nixos-rebuild switch --flake .#HOSTNAME` and let Nix do all the work for you! 4 | 5 | #### Additional Options 6 | 7 | These are the options that can be used in addition to the ones exposed by the [`modules`](../modules/README.md): 8 | 9 | - `imports`: Additional Configuration Files to import - Ex. `[ ./hardware-configuration.nix ]` 10 | - `description`: System Description (to add to `config.system.name`) 11 | - `timezone`: System Time Zone - Ex. `"Asia/Kolkata"` 12 | - `locale`: Default Locale - Ex. `"IN"` 13 | - `kernel`: Linux Kernel to use (from `pkgs.linuxKernel.packages.linux_${kernel}`) - Ex. `zfs` 14 | - `kernelModules`: Additional Kernel Modules (to add to `config.boot.initrd.availableKernelModules`) - Ex. `[ "nvme" ]` 15 | - `user` or `users` (--> `config.user.settings`): Used to specify Device User/Multiple Users per Device - Ex. `users = [ { name "1"; } { name = "2"; } ]` 16 | - `update`: Enable Automatic System Upgrades - Ex. `weekly` 17 | -------------------------------------------------------------------------------- /devices/flake.nix: -------------------------------------------------------------------------------- 1 | { util, ... }: 2 | let 3 | inherit (util) build map; 4 | in 5 | { 6 | ## Device Configuration ## 7 | flake.nixosConfigurations = map.modules ./. (name: build.device (import name)); 8 | } 9 | -------------------------------------------------------------------------------- /devices/futura.nix: -------------------------------------------------------------------------------- 1 | { 2 | system = "x86_64-linux"; 3 | name = "futura"; 4 | description = "PC - Dell Inspiron 11 3000"; 5 | 6 | timezone = "Asia/Kolkata"; 7 | locale = "IN"; 8 | update = "weekly"; 9 | 10 | kernel = "lts"; 11 | hardware = { 12 | boot = "efi"; 13 | cpu.cores = 4; 14 | filesystem = "simple"; 15 | support = [ "laptop" ]; 16 | modules = [ 17 | "common-pc" 18 | "common-pc-laptop" 19 | "common-cpu-intel" 20 | ]; 21 | }; 22 | 23 | gui.desktop = "pantheon"; 24 | apps.list = [ 25 | "firefox" 26 | "office" 27 | ]; 28 | 29 | # User Navya 30 | user = { 31 | name = "navya"; 32 | groups = [ "wheel" ]; 33 | description = "Navya"; 34 | shell = "zsh"; 35 | }; 36 | } 37 | -------------------------------------------------------------------------------- /devices/install/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | description = "Install Media"; 3 | imports = [ ./image.nix ]; 4 | 5 | timezone = "Asia/Kolkata"; 6 | locale = "IN"; 7 | 8 | kernel = "lts"; 9 | gui.desktop = "install"; 10 | user = { 11 | name = "nixos"; 12 | description = "Default User"; 13 | minimal = true; 14 | shells = null; 15 | password = builtins.readFile ../../users/passwords/default; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /devices/install/image.nix: -------------------------------------------------------------------------------- 1 | { lib, pkgs, ... }: 2 | { 3 | fileSystems."/".fsType = "tmpfs"; 4 | environment.systemPackages = [ pkgs.custom.install ]; 5 | image.modules.iso = { 6 | image.baseName = lib.mkForce "install"; 7 | system.switch.enable = false; 8 | }; 9 | 10 | # Disabled Modules 11 | user.homeConfig = lib.mkForce { }; 12 | sops.secrets = lib.mkForce { }; 13 | } 14 | -------------------------------------------------------------------------------- /devices/valkyrie/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | system = "x86_64-linux"; 3 | name = "valkyrie"; 4 | description = "PC - ASUS ROG Zephyrus G14"; 5 | 6 | timezone = "Asia/Kolkata"; 7 | locale = "IN"; 8 | 9 | kernel = "xanmod_stable"; 10 | kernelModules = [ 11 | "nvme" 12 | "thunderbolt" 13 | ]; 14 | 15 | imports = [ ./drivers.nix ]; 16 | hardware = { 17 | boot = "secure"; 18 | filesystem = "advanced"; 19 | modules = [ "asus-zephyrus-ga402x-nvidia" ]; 20 | gpu = "nvidia"; 21 | cpu = { 22 | cores = 8; 23 | mode = "performance"; 24 | }; 25 | support = [ 26 | "laptop" 27 | "mobile" 28 | "printer" 29 | "virtualisation" 30 | ]; 31 | 32 | vm = { 33 | android.enable = false; 34 | vfio = "setup"; 35 | passthrough = [ 36 | "10de:28e0" 37 | "10de:22be" 38 | ]; 39 | }; 40 | }; 41 | 42 | apps = { 43 | wine.utilities = true; 44 | list = [ 45 | "discord" 46 | "firefox" 47 | "games" 48 | "git" 49 | "media" 50 | "notes" 51 | "office" 52 | "vscode" 53 | "wine" 54 | "youtube" 55 | ]; 56 | games = [ 57 | "minecraft" 58 | "osu" 59 | ]; 60 | }; 61 | 62 | shell = { 63 | prompt = true; 64 | utilities = true; 65 | }; 66 | 67 | nix = { 68 | index = true; 69 | tools = true; 70 | }; 71 | 72 | gui = { 73 | desktop = "gnome"; 74 | display = "eDP-1"; 75 | wallpaper = "Sunrise"; 76 | fancy = true; 77 | }; 78 | 79 | # User V7 80 | user = { 81 | name = "v7"; 82 | description = "V 7"; 83 | uid = 1000; 84 | shell = "zsh"; 85 | shells = [ "bash" ]; 86 | groups = [ 87 | "wheel" 88 | "keys" 89 | "systemd-journal" 90 | ]; 91 | }; 92 | } 93 | -------------------------------------------------------------------------------- /devices/valkyrie/drivers.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | ... 5 | }: 6 | let 7 | inherit (lib) hasPrefix mkIf; 8 | in 9 | { 10 | services.fwupd.enable = true; 11 | 12 | # ! # https://gitlab.freedesktop.org/drm/amd/-/issues/3388 13 | boot.kernelParams = mkIf (config.hardware.cpu.mode == "performance") [ "amdgpu.dcdebugmask=0x10" ]; 14 | 15 | # Remap Keys 16 | services.udev.extraHwdb = '' 17 | evdev:name:Asus Keyboard:* 18 | KEYBOARD_KEY_7003f=print # F6 -> PrtSc Key 19 | ''; 20 | 21 | # ASUS Software 22 | user.persist.directories = [ ".config/rog" ]; 23 | services.asusd = { 24 | enable = true; 25 | enableUserService = true; 26 | asusdConfig.text = builtins.readFile ./settings/asusd.ron; 27 | auraConfigs."19b6".text = builtins.readFile ./settings/aura.ron; 28 | }; 29 | 30 | user.homeConfig = { 31 | wayland.windowManager.hyprland.settings.bindl = mkIf (hasPrefix "hyprland" config.gui.desktop) [ 32 | ", XF86Launch3, exec, asusctl led-mode -n" 33 | ", XF86Launch4, exec, asusctl profile -n" 34 | ]; 35 | 36 | dconf.settings = mkIf (hasPrefix "gnome" config.gui.desktop) { 37 | "org/gnome/settings-daemon/plugins/media-keys" = { 38 | custom-keybindings = [ 39 | "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3/" 40 | "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4/" 41 | ]; 42 | }; 43 | 44 | "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom3" = { 45 | binding = "Launch3"; 46 | command = "asusctl led-mode -n"; 47 | name = "Keyboard Mode"; 48 | }; 49 | 50 | "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom4" = { 51 | binding = "Launch4"; 52 | command = "asusctl profile -n"; 53 | name = "Fan Control"; 54 | }; 55 | }; 56 | }; 57 | } 58 | -------------------------------------------------------------------------------- /devices/valkyrie/settings/asusd.ron: -------------------------------------------------------------------------------- 1 | ( 2 | boot_sound: false, 3 | change_throttle_policy_on_ac: true, 4 | change_throttle_policy_on_battery: true, 5 | charge_control_end_threshold: 95, 6 | disable_nvidia_powerd_on_battery: true, 7 | mini_led_mode: false, 8 | panel_od: false, 9 | throttle_balanced_epp: BalancePower, 10 | throttle_performance_epp: Performance, 11 | throttle_policy_linked_epp: true, 12 | throttle_policy_on_ac: Performance, 13 | throttle_policy_on_battery: Quiet, 14 | throttle_quiet_epp: Power, 15 | ) -------------------------------------------------------------------------------- /devices/valkyrie/settings/aura.ron: -------------------------------------------------------------------------------- 1 | ( 2 | config_name: "Keyboard Aura", 3 | brightness: Med, 4 | current_mode: Static, 5 | builtins: { 6 | Static: ( 7 | mode: Static, 8 | zone: None, 9 | colour1: ( 10 | r: 255, 11 | g: 255, 12 | b: 255, 13 | ), 14 | colour2: ( 15 | r: 0, 16 | g: 0, 17 | b: 0, 18 | ), 19 | speed: Med, 20 | direction: Right, 21 | ), 22 | Breathe: ( 23 | mode: Breathe, 24 | zone: None, 25 | colour1: ( 26 | r: 255, 27 | g: 255, 28 | b: 255, 29 | ), 30 | colour2: ( 31 | r: 0, 32 | g: 0, 33 | b: 0, 34 | ), 35 | speed: Med, 36 | direction: Right, 37 | ), 38 | RainbowCycle: ( 39 | mode: RainbowCycle, 40 | zone: None, 41 | colour1: ( 42 | r: 255, 43 | g: 255, 44 | b: 255, 45 | ), 46 | colour2: ( 47 | r: 0, 48 | g: 0, 49 | b: 0, 50 | ), 51 | speed: Med, 52 | direction: Right, 53 | ), 54 | RainbowWave: ( 55 | mode: RainbowWave, 56 | zone: None, 57 | colour1: ( 58 | r: 255, 59 | g: 255, 60 | b: 255, 61 | ), 62 | colour2: ( 63 | r: 0, 64 | g: 0, 65 | b: 0, 66 | ), 67 | speed: Med, 68 | direction: Right, 69 | ), 70 | Pulse: ( 71 | mode: Pulse, 72 | zone: None, 73 | colour1: ( 74 | r: 255, 75 | g: 255, 76 | b: 255, 77 | ), 78 | colour2: ( 79 | r: 0, 80 | g: 0, 81 | b: 0, 82 | ), 83 | speed: Med, 84 | direction: Right, 85 | ), 86 | }, 87 | multizone_on: false, 88 | enabled: ( 89 | states: [ 90 | ( 91 | zone: Keyboard, 92 | boot: true, 93 | awake: true, 94 | sleep: false, 95 | shutdown: false, 96 | ), 97 | ], 98 | ), 99 | ) 100 | -------------------------------------------------------------------------------- /devices/vortex.nix: -------------------------------------------------------------------------------- 1 | { 2 | system = "x86_64-linux"; 3 | name = "vortex"; 4 | description = "PC - Dell Inspiron 15 5000"; 5 | 6 | timezone = "Asia/Kolkata"; 7 | locale = "IN"; 8 | 9 | kernel = "xanmod"; 10 | kernelModules = [ 11 | "nvme" 12 | "thunderbolt" 13 | ]; 14 | 15 | imports = [ { services.fwupd.enable = true; } ]; 16 | hardware = { 17 | boot = "secure"; 18 | filesystem = "advanced"; 19 | modules = [ "dell-inspiron-5509" ]; 20 | cpu = { 21 | cores = 8; 22 | mode = "performance"; 23 | }; 24 | support = [ 25 | "laptop" 26 | "mobile" 27 | "printer" 28 | "virtualisation" 29 | ]; 30 | }; 31 | 32 | apps = { 33 | wine.utilities = true; 34 | list = [ 35 | "discord" 36 | "firefox" 37 | "git" 38 | "office" 39 | "vscode" 40 | "wine" 41 | ]; 42 | }; 43 | 44 | shell = { 45 | prompt = true; 46 | utilities = true; 47 | }; 48 | 49 | nix = { 50 | index = true; 51 | tools = true; 52 | }; 53 | 54 | gui = { 55 | desktop = "hyprland"; 56 | display = "eDP-1"; 57 | wallpaper = "Thread"; 58 | fancy = true; 59 | }; 60 | 61 | # User V7 62 | user = { 63 | name = "v7"; 64 | description = "V 7"; 65 | uid = 1000; 66 | shell = "zsh"; 67 | shells = [ "bash" ]; 68 | groups = [ 69 | "wheel" 70 | "keys" 71 | ]; 72 | }; 73 | } 74 | -------------------------------------------------------------------------------- /files/.archive/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/.archive/.keep -------------------------------------------------------------------------------- /files/.archive/Linux/Arch/COMMANDS.md: -------------------------------------------------------------------------------- 1 | # Useful Commands 2 | 3 | #### GRUB 4 | 5 | _The update-grub script:_ 6 | _Add the following in_ **/usr/sbin/update-grub** 7 | 8 | **_#!/bin/sh_** 9 | **_set -e_** 10 | **_exec grub-mkconfig -o /boot/grub/grub.cfg_** 11 | 12 | _Then execute:_ 13 | `sudo chown root:root /usr/sbin/update-grub` 14 | `sudo chmod 755 /usr/sbin/update-grub` 15 | 16 | #### Virtualisation 17 | 18 | `sudo usermod -a -G libvirt $(whoami)` 19 | `newgrp libvirt` 20 | `sudo usermod -a -G kvm $(whoami)` 21 | 22 | #### Fonts 23 | 24 | `sudo ln -s /usr/share/fontconfig/conf.avail/11-lcdfilter-default.conf /etc/fonts/conf.d/` 25 | `sudo ln -s /usr/share/fontconfig/conf.avail/10-sub-pixel-rgb.conf /etc/fonts/conf.d/` 26 | `sudo fc-cache -fv` 27 | 28 | #### Theming 29 | 30 | _To set QT theme in GTK+ based DEs using qt5ct, add the following in /etc/environment:_ 31 | `QT_QPA_PLATFORMTHEME=qt5ct` 32 | 33 | _To make apps running as root in **OpenSUSE** use the right theme:_ 34 | `sudo ln -s /home/USER/.config/kdeglobals /root/.config/kdeglobals` 35 | `sudo ln -s /home/USER/.config/gtk-4.0 /root/.config/gtk-4.0` 36 | 37 | #### Filesystem 38 | 39 | _Fix NTFS Disk after a faulty Windows shutdown:_ 40 | `sudo ntfsfix /dev/X` 41 | 42 | _Create symlinks for home directories (Useful for multiboot)_ 43 | `ln -s /PATH/HOME_DIR ~/home/USER/HOME_DIR` 44 | 45 | _If a home directory got deleted or if you want a custom home directory, modify this file_ 46 | `nano ~/.config/user-dirs.dirs` 47 | 48 | _How I mount my data partition_ 49 | `sudo mkdir /data` 50 | `sudo chmod ugo+rw /data` 51 | 52 | ``` 53 | # DATA Partition 54 | UUID=partuuid /data ntfs rw,defaults,x-gvfs-show 0 0 55 | ``` 56 | 57 | #### Miscellaneous 58 | 59 | _To clear configuration files of deleted apps in **Debian**:_ 60 | `sudo dpkg --purge dpkg --get-selections | grep deinstall | cut -f1` 61 | -------------------------------------------------------------------------------- /files/.archive/Linux/Arch/zshrc: -------------------------------------------------------------------------------- 1 | ## My ZSH Config ## 2 | # Plugins 3 | source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh 4 | source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 5 | source /usr/share/zsh-theme-powerlevel10k/powerlevel10k.zsh-theme 6 | 7 | # Powerlevel10K Prompt 8 | if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then 9 | source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" 10 | fi 11 | [[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh 12 | 13 | # Find The Command 14 | source /usr/share/doc/find-the-command/ftc.zsh noprompt quiet 15 | 16 | bindkey '^[[1;5C' forward-word 17 | bindkey '^[[1;5D' backward-word 18 | bindkey '^[[3;5~' kill-word 19 | bindkey '^[[3~' delete-char 20 | bindkey "^[[5~" beginning-of-history 21 | bindkey "^[[6~" end-of-history 22 | bindkey '^[[A' up-line-or-search 23 | bindkey '^[[B' down-line-or-search 24 | bindkey '^[[C' forward-char 25 | bindkey '^[[D' backward-char 26 | bindkey '^[[F' end-of-line 27 | bindkey '^[[H' beginning-of-line 28 | bindkey '^J' backward-kill-line 29 | 30 | HISTFILE=~/.zsh_history 31 | HISTSIZE=10000 32 | SAVEHIST=1000 33 | setopt SHARE_HISTORY 34 | 35 | alias hi="echo 'Hi there. How are you?'" 36 | alias bye="exit" 37 | alias c="bat" 38 | alias l="eza -b -h -l -F --octal-permissions --icons --time-style iso" 39 | alias grep="grep --color" 40 | alias edit="sudo $EDITOR" 41 | alias sike="neofetch --ascii_distro arch" 42 | -------------------------------------------------------------------------------- /files/.archive/Linux/Pop/neofetch/config.conf: -------------------------------------------------------------------------------- 1 | ## PopOS Neofetch Config 2 | 3 | print_info() { 4 | prin "Software Information" 5 | info " " distro 6 | info " " kernel 7 | info " " packages 8 | info " " de 9 | info " " theme 10 | info " " icons 11 | info " " term_font 12 | 13 | info underline 14 | prin "Hardware Information" 15 | info " " model 16 | info " " cpu 17 | info "﬙ " gpu 18 | info " " disk 19 | info " " resolution 20 | info "⊗ " uptime 21 | info battery 22 | 23 | info cols 24 | } 25 | 26 | # Kernel 27 | kernel_shorthand="off" 28 | 29 | # OS Architecture 30 | os_arch="off" 31 | 32 | # Uptime 33 | uptime_shorthand="tiny" 34 | 35 | # Memory Unit 36 | memory_unit="gib" 37 | 38 | # Packages 39 | package_managers="tiny" 40 | 41 | # Text Colors 42 | colors=(4 3 3 3 3 6) 43 | 44 | # Info Display 45 | cpu_display="off" 46 | memory_display="off" 47 | battery_display="barinfo" 48 | disk_display="off" 49 | 50 | # Ascii Distro 51 | ascii_distro="POP_OS" 52 | 53 | # Ascii Colors 54 | ascii_colors=(6) 55 | -------------------------------------------------------------------------------- /files/.archive/Windows/APPS.md: -------------------------------------------------------------------------------- 1 | ## Apps 2 | 3 | - Microsoft Office 4 | - Microsoft Teams 5 | - Firefox 6 | - 7-Zip 7 | - VLC Media Player 8 | - CCleaner 9 | - Recuva 10 | - EaseUS Partition Master 11 | - Rufus 12 | - VirtualBox 13 | - BlueJ 14 | - Zoom 15 | - PowerToys 16 | - TaskbarX 17 | - Rainmeter 18 | - Printer Driver 19 | 20 | ### UWP 21 | 22 | - Dashboard PDF 23 | - Notepads 24 | - iTunes 25 | - Speedtest 26 | - Terminal 27 | -------------------------------------------------------------------------------- /files/.archive/Windows/Velociraptor.rmskin: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/.archive/Windows/Velociraptor.rmskin -------------------------------------------------------------------------------- /files/README.md: -------------------------------------------------------------------------------- 1 | ### Dotfiles 2 | 3 | The `files` directory is used to store all my plain-text program configuration files _(or as we all love to call it, the `dotfiles`)_ 4 | 5 | Read [`flake.nix`](./flake.nix) to understand how they are used 6 | -------------------------------------------------------------------------------- /files/ascii/groot: -------------------------------------------------------------------------------- 1 |  \^V// 2 |  |. .|  I AM (G)ROOT! 3 | - \ - / _ 4 |  \_| |_/ 5 |  \ \ 6 |  __/_/__ 7 | |_______|  With Great Power Comes Great Responsibility 8 |  \ /  Use it Wisely 9 |  \___/ 10 |  11 | -------------------------------------------------------------------------------- /files/ascii/lol: -------------------------------------------------------------------------------- 1 | ██╗░░░░░░█████╗░██╗░░░░░ 2 | ██║░░░░░██╔══██╗██║░░░░░ 3 | ██║░░░░░██║░░██║██║░░░░░ 4 | ██║░░░░░██║░░██║██║░░░░░ 5 | ███████╗╚█████╔╝███████╗ 6 | ╚══════╝░╚════╝░╚══════╝ -------------------------------------------------------------------------------- /files/ascii/pacman: -------------------------------------------------------------------------------- 1 | ================================================. 2 | .-. .-. .--. | 3 | | OO| | OO| / _.-' .-. .-. .-. .''. | 4 | | | | | \ '-. '-' '-' '-' '..' | 5 | '^^^' '^^^' '--' | 6 | ===============. .-. .================. .-. | 7 | | | | | | '-' | 8 | | | | | | | 9 | | ':-:' | | .-. | 10 | | '-' | | '-' | 11 | ===============' '================' | -------------------------------------------------------------------------------- /files/ascii/tux: -------------------------------------------------------------------------------- 1 | .-"""-. 2 | ' \ 3 | |,. ,-. | 4 | |()L( ()| | 5 | |,' `".| | 6 | |.___.',| ` 7 | .j `--"' ` `. 8 | / ' ' \ 9 | / / ` `. 10 | / / ` . 11 | / / l | 12 | . , | | 13 | ,"`. .| | 14 | _.' ``. | `..-'l 15 | | `.`, | `. 16 | | `. __.j ) 17 | |__ |--""___| ,-' 18 | `"--...,+"""" `._,.-' -------------------------------------------------------------------------------- /files/colors/README.md: -------------------------------------------------------------------------------- 1 | ### Base16 Color Schemes 2 | 3 | The color schemes are specified according to the following format - 4 | 5 | ```yaml 6 | scheme: Name 7 | author: Maker 8 | base00: Base 9 | base01: Mantle 10 | base02: Surface0 11 | base03: Surface1 12 | base04: Surface2 13 | base05: Text 14 | base06: Rosewater 15 | base07: Lavender 16 | base08: Red 17 | base09: Peach 18 | base0A: Yellow 19 | base0B: Green 20 | base0C: Teal 21 | base0D: Blue 22 | base0E: Mauve 23 | base0F: Flamingo 24 | ``` 25 | 26 | (_or other equivalent colors_) 27 | -------------------------------------------------------------------------------- /files/colors/adwaita.yaml: -------------------------------------------------------------------------------- 1 | scheme: "Adwaita" 2 | author: "maydayv7" 3 | base00: "#1E1E1E" 4 | base01: "#242424" 5 | base02: "#303030" 6 | base03: "#5E5C64" 7 | base04: "#C0BFBC" 8 | base05: "#F6F5F4" 9 | base06: "#CDAB8F" 10 | base07: "#62a0ea" 11 | base08: "#ED333B" 12 | base09: "#FFA348" 13 | base0A: "#F5C211" 14 | base0B: "#57E389" 15 | base0C: "#0AB9DC" 16 | base0D: "#1E78E4" 17 | base0E: "#9841BB" 18 | base0F: "#C061CB" 19 | -------------------------------------------------------------------------------- /files/colors/catppuccin.yaml: -------------------------------------------------------------------------------- 1 | scheme: "Catppuccin Macchiato" 2 | author: "catppuccin" 3 | base00: "#24273A" 4 | base01: "#1E2030" 5 | base02: "#363A4F" 6 | base03: "#494D64" 7 | base04: "#5B6078" 8 | base05: "#CAD3F5" 9 | base06: "#F4DBD6" 10 | base07: "#B7BDF8" 11 | base08: "#ED8796" 12 | base09: "#F5A97F" 13 | base0A: "#EED49F" 14 | base0B: "#A6DA95" 15 | base0C: "#8BD5CA" 16 | base0D: "#8AADF4" 17 | base0E: "#C6A0F6" 18 | base0F: "#F0C6C6" 19 | -------------------------------------------------------------------------------- /files/colors/elementary.yaml: -------------------------------------------------------------------------------- 1 | scheme: "Elementary OS" 2 | author: "maydayv7" 3 | base00: "#2D363A" 4 | base01: "#073642" 5 | base02: "#073642" 6 | base03: "#94A3A5" 7 | base04: "#94A3A5" 8 | base05: "#C0BFBC" 9 | base06: "#DEDDDA" 10 | base07: "#EEEEEE" 11 | base08: "#DC322F" 12 | base09: "#CB4B16" 13 | base0A: "#B58900" 14 | base0B: "#859900" 15 | base0C: "#2AA198" 16 | base0D: "#268BD2" 17 | base0E: "#D33682" 18 | base0F: "#EC0048" 19 | -------------------------------------------------------------------------------- /files/git/hooks/commit-msg: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | error() { echo -e "\033[0;31merror:\033[0m $1"; exit 7; } 3 | 4 | ## Commit Message ## 5 | # Keywords 6 | if ! head -1 "$1" | grep -qE "^(feat|fix|ci|blog|chore|docs|test|style|refactor)(\(.+?\))?\!?: .{1,}$" 7 | then 8 | error "Commit Message is invalid" 9 | fi 10 | 11 | # Length 12 | if ! head -1 "$1" | grep -qE "^.{1,50}$" 13 | then 14 | error "Commit Message is too long" 15 | fi 16 | -------------------------------------------------------------------------------- /files/git/hooks/pre-commit: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | error() { echo -e "\033[0;31merror:\033[0m $1"; exit 7; } 3 | 4 | ## Pre-Commit Checks ## 5 | # Nix Syntax 6 | if [ "$(find . -name '*.nix' 2>/dev/null | wc -l)" != 0 ] 7 | then 8 | nix flake check || error "Invalid Syntax" 9 | fi 10 | -------------------------------------------------------------------------------- /files/hyprland/greeter.conf: -------------------------------------------------------------------------------- 1 | exec-once = @greeter; hyprctl dispatch exit 2 | 3 | windowrule = fullscreen, class:^(.*)$ 4 | windowrule = stayfocused, class:^(.*)$ 5 | monitor = , preferred, auto, 1 6 | 7 | animations:enabled = false 8 | misc { 9 | background_color = rgb(@base00) 10 | disable_autoreload = true 11 | disable_hyprland_logo = true 12 | disable_splash_rendering = true 13 | disable_hyprland_qtutils_check = true 14 | enable_anr_dialog = false 15 | force_default_wallpaper = 0 16 | } 17 | 18 | ecosystem { 19 | no_update_news = true 20 | no_donation_nag = true 21 | } 22 | -------------------------------------------------------------------------------- /files/hyprland/pypr.toml: -------------------------------------------------------------------------------- 1 | [pyprland] 2 | plugins = [ 3 | "magnify", 4 | "scratchpads", 5 | "toggle_special" 6 | ] 7 | 8 | [scratchpads.top] 9 | animation = "fromTop" 10 | lazy = true 11 | size = "75% 60%" 12 | 13 | [scratchpads.bottom] 14 | animation = "fromBottom" 15 | size = "75% 60%" 16 | margin = 30 17 | lazy = true 18 | 19 | [scratchpads.calc] 20 | command = "qalculate-gtk" 21 | class = "qalculate-gtk" 22 | use = "top" 23 | unfocus = "hide" 24 | 25 | [scratchpads.term] 26 | command = "kitty --class kitty-dropterm" 27 | class = "kitty-dropterm" 28 | use = "top" 29 | unfocus = "hide" 30 | 31 | [scratchpads.clip] 32 | use = "bottom" 33 | command = "kitty --class kitty-clip 'clipse'" 34 | class = "kitty-clip" 35 | 36 | [scratchpads.emoji] 37 | use = "bottom" 38 | command = "smile" 39 | class = "it.mijorus.smile" 40 | unfocus = "hide" 41 | -------------------------------------------------------------------------------- /files/hyprland/theme/drawer.css: -------------------------------------------------------------------------------- 1 | /* nwg-drawer Styling */ 2 | 3 | window { 4 | background-color: transparent; 5 | } 6 | 7 | button, 8 | image { 9 | background: none; 10 | border: none; 11 | } 12 | 13 | button:hover { 14 | background-color: rgba (255, 255, 255, 0.1); 15 | } 16 | 17 | #pinned-box { 18 | padding-bottom: 5px; 19 | border-bottom: 1px dotted gray; 20 | } 21 | 22 | #files-box { 23 | padding: 5px; 24 | border: 1px dotted gray; 25 | border-radius: 10px; 26 | } 27 | -------------------------------------------------------------------------------- /files/hyprland/theme/hyprshell.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --text-color: #@white; 3 | --bg-color: alpha(#@base00, 0.5); 4 | --bg-color-active: rgba(255, 255, 255, 0.2); 5 | --bg-color-hover: rgba(255, 255, 255, 0.4); 6 | --border-radius: 10px; 7 | --border-size: 2px; 8 | --border-color: #@base04; 9 | --border-color-active: #@base05; 10 | --border-style: solid; 11 | --border-style-secondary: dashed; 12 | --window-padding: 2px; 13 | } 14 | 15 | .workspace.active { 16 | border-color: var(--border-color-active); 17 | } 18 | 19 | .client.active { 20 | background: var(--bg-color-active); 21 | border-color: var(--border-color-active); 22 | } 23 | 24 | .launch { 25 | animation: pulse 0.7s normal infinite; 26 | } 27 | 28 | @keyframes pulse { 29 | 0% { 30 | background: var(--bg-color); 31 | } 32 | 5% { 33 | background: alpha(var(--border-color-active), 0.4); 34 | } 35 | 15% { 36 | background: alpha(var(--border-color-active), 0.6); 37 | } 38 | 60% { 39 | background: alpha(var(--border-color-active), 0.9); 40 | } 41 | 100% { 42 | background: var(--bg-color); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /files/hyprland/theme/wlogout.css: -------------------------------------------------------------------------------- 1 | * { 2 | background: none; 3 | } 4 | 5 | window { 6 | background-color: rgba(0, 0, 0, 0.5); 7 | } 8 | 9 | button { 10 | background: rgba(0, 0, 0, 0.05); 11 | border-radius: 8px; 12 | box-shadow: 13 | inset 0 0 0 1px rgba(255, 255, 255, 0.1), 14 | 0 0 rgba(0, 0, 0, 0.5); 15 | transition: background-color 0.2s ease-in-out; 16 | margin: 1rem; 17 | } 18 | 19 | button:focus, 20 | button:hover { 21 | background-color: rgba(255, 255, 255, 0.2); 22 | } 23 | 24 | button:active { 25 | background-color: rgba(255, 255, 255, 0.5); 26 | } 27 | 28 | label { 29 | font-size: 10rem; 30 | margin: 5rem; 31 | color: #@base05; 32 | } 33 | -------------------------------------------------------------------------------- /files/hyprland/waycorner.toml: -------------------------------------------------------------------------------- 1 | [overview] 2 | command = [ "hyprctl", "dispatch", "overview:toggle" ] 3 | locations = [ "top_left" ] 4 | size = 10 5 | timeout_ms = 200 6 | 7 | [workspace] 8 | command = [ "hyprctl", "dispatch", "split:workspace", "empty" ] 9 | locations = [ "top_right" ] 10 | size = 10 11 | timeout_ms = 200 12 | -------------------------------------------------------------------------------- /files/images/Profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/Profile.png -------------------------------------------------------------------------------- /files/images/desktop/gnome.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/desktop/gnome.jpg -------------------------------------------------------------------------------- /files/images/desktop/hyprland.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/desktop/hyprland.jpg -------------------------------------------------------------------------------- /files/images/desktop/old/gnome_41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/desktop/old/gnome_41.jpg -------------------------------------------------------------------------------- /files/images/desktop/old/gnome_44.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/desktop/old/gnome_44.jpg -------------------------------------------------------------------------------- /files/images/desktop/old/gnome_45.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/desktop/old/gnome_45.jpg -------------------------------------------------------------------------------- /files/images/desktop/pantheon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/desktop/pantheon.jpg -------------------------------------------------------------------------------- /files/images/desktop/xfce.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/desktop/xfce.jpg -------------------------------------------------------------------------------- /files/images/logo/dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/logo/dark.png -------------------------------------------------------------------------------- /files/images/logo/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/logo/light.png -------------------------------------------------------------------------------- /files/images/transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/transparent.png -------------------------------------------------------------------------------- /files/images/website.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/images/website.png -------------------------------------------------------------------------------- /files/logseq/preferences.json: -------------------------------------------------------------------------------- 1 | { 2 | "theme": null, 3 | "themes": { 4 | "mode": "dark", 5 | "light": null, 6 | "dark": { 7 | "name": "Default Dark Theme", 8 | "url": null, 9 | "description": "Logseq default dark theme.", 10 | "mode": "dark", 11 | "selected": true, 12 | "group-first": true, 13 | "group-desc": "dark themes" 14 | } 15 | }, 16 | "externals": [], 17 | "pinnedToolbarItems": [ 18 | "logseq-git:git", 19 | "logseq-tocgen:open-toc", 20 | "logseq-journals-calendar:open-calendar" 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /files/logseq/settings/logseq-awesome-ui.json: -------------------------------------------------------------------------------- 1 | { 2 | "disabled": false, 3 | "alwaysShowNewBlockBullet": true, 4 | "compactSidebarMenu": true, 5 | "contentHeading": null, 6 | "headerHeading": null, 7 | "headerVariant": "Wide", 8 | "hideAddNewPage": false, 9 | "hideHomeButton": true, 10 | "hideRightSidebarToolbar": false, 11 | "hideSidebarPageIcons": false, 12 | "killAnimations": false, 13 | "leftSidebarHeading": null, 14 | "menuCalendar": true, 15 | "navigationPosition": "Left", 16 | "otherHeading": null, 17 | "rightSidebarHeading": null, 18 | "searchStyle": "Wide", 19 | "tabsHeading": null, 20 | "tabsPosition": "TopPanel", 21 | "tabsStyle": "Awesome", 22 | "vaultButtonToBottom": true 23 | } 24 | -------------------------------------------------------------------------------- /files/logseq/settings/logseq-bullet-threading.json: -------------------------------------------------------------------------------- 1 | { 2 | "disabled": false, 3 | "color": "", 4 | "customColor": false, 5 | "width": "2px" 6 | } 7 | -------------------------------------------------------------------------------- /files/logseq/settings/logseq-git.json: -------------------------------------------------------------------------------- 1 | { 2 | "disabled": false, 3 | "autoCheckSynced": true, 4 | "autoPush": false, 5 | "checkWhenDBChanged": true, 6 | "customCommitMessage": "feat: Notes", 7 | "typeCommitMessage": "Custom Message With Date", 8 | "buttons": ["Check Status", "Show Log", "Pull Rebase", "Commit & Push"] 9 | } 10 | -------------------------------------------------------------------------------- /files/logseq/settings/logseq-journals-calendar.json: -------------------------------------------------------------------------------- 1 | { 2 | "disabled": false, 3 | "backgroundColorOfContainerDark": "#@bg", 4 | "backgroundColorOfContainerLight": "#@bg", 5 | "firstDayOfWeek": 1, 6 | "hotkey": null, 7 | "keepOpenOnSelect": false, 8 | "showTodayBtn": false, 9 | "showWeekNumbers": true 10 | } 11 | -------------------------------------------------------------------------------- /files/logseq/settings/logseq-move-block.json: -------------------------------------------------------------------------------- 1 | { 2 | "disabled": false, 3 | "settingsVersion": "v1", 4 | "keyBindings": { 5 | "moveBlock": "mod+shift+m" 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /files/logseq/settings/logseq-pdf-export-plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "disabled": false, 3 | "blockExportHandling": "Keep title as heading of block", 4 | "retainedOptions": "", 5 | "template1CSS": "", 6 | "template1Choice": "Bullets for non top level elements", 7 | "template1Options": ["Inherit logseq CSS"], 8 | "template2CSS": "", 9 | "template2Choice": "Bullets througout the document", 10 | "template2Options": ["Inherit logseq CSS"], 11 | "template3CSS": "", 12 | "template3Choice": "", 13 | "template3Options": ["Inherit logseq CSS"] 14 | } 15 | -------------------------------------------------------------------------------- /files/logseq/settings/logseq-tabs.json: -------------------------------------------------------------------------------- 1 | { 2 | "disabled": false, 3 | "tabs:close-button-left": false, 4 | "tabs:close": "mod+shift+w", 5 | "tabs:hide-close-all-button": false, 6 | "tabs:inherit-custom-css": true, 7 | "tabs:select-next": "ctrl+tab", 8 | "tabs:select-prev": "ctrl+shift+tab", 9 | "tabs:show-single-tab": true, 10 | "tabs:toggle-pin": "" 11 | } 12 | -------------------------------------------------------------------------------- /files/logseq/settings/logseq-tocgen.json: -------------------------------------------------------------------------------- 1 | { 2 | "disabled": false, 3 | "defaultExpansionLevel": 1, 4 | "defaultHeadingType": "h", 5 | "defaultLevels": 6, 6 | "hideBackTop": false, 7 | "hideGoDown": false, 8 | "maxScrollTryCount": 20, 9 | "noPageJump": false, 10 | "openShortcut": "", 11 | "pageScrollBehavior": "top", 12 | "showTags": false 13 | } 14 | -------------------------------------------------------------------------------- /files/nanorc: -------------------------------------------------------------------------------- 1 | set autoindent 2 | set indicator 3 | set linenumbers 4 | set locking 5 | set matchbrackets "(<[{)>]}" 6 | set minibar 7 | set mouse 8 | set nonewlines 9 | set smarthome 10 | -------------------------------------------------------------------------------- /files/repl.nix: -------------------------------------------------------------------------------- 1 | { 2 | path ? /etc/nixos, 3 | host ? false, 4 | }: 5 | let 6 | inherit (builtins) 7 | currentSystem 8 | getFlake 9 | head 10 | match 11 | pathExists 12 | readFile 13 | removeAttrs 14 | toString 15 | ; 16 | 17 | flake = 18 | if pathExists "${path}/flake.nix" then getFlake "${toString path}" else getFlake "/etc/nixos"; 19 | 20 | pkgs = 21 | if (flake.inputs ? nixpkgs) then 22 | import flake.inputs.nixpkgs.outPath { } 23 | else if (flake.legacyPackages ? currentSystem) then 24 | import flake.legacyPackages."${currentSystem}" 25 | else 26 | import { }; 27 | in 28 | { 29 | inherit flake; 30 | } 31 | // builtins 32 | // (removeAttrs (pkgs // pkgs.lib) [ 33 | "options" 34 | "config" 35 | ]) 36 | // flake 37 | // (flake.nixosConfigurations or { }) 38 | // ( 39 | if host then 40 | flake.nixosConfigurations."${head ( 41 | match '' 42 | ([a-zA-Z0-9\-]+) 43 | '' (readFile "/etc/hostname") 44 | )}" 45 | else 46 | { } 47 | ) 48 | -------------------------------------------------------------------------------- /files/templates/Document.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/templates/Document.docx -------------------------------------------------------------------------------- /files/templates/File: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/templates/File -------------------------------------------------------------------------------- /files/templates/Presentation.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/templates/Presentation.pptx -------------------------------------------------------------------------------- /files/templates/Spreadsheet.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/files/templates/Spreadsheet.xlsx -------------------------------------------------------------------------------- /files/vscode/keybindings.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "key": "ctrl+/", 4 | "command": "workbench.action.showCommands" 5 | }, 6 | { 7 | "key": "ctrl+d", 8 | "command": "editor.action.deleteLines" 9 | }, 10 | { 11 | "key": "alt+t", 12 | "command": "workbench.action.terminal.focus" 13 | }, 14 | { 15 | "key": "ctrl+shift+t", 16 | "command": "workbench.action.createTerminalEditor" 17 | }, 18 | { 19 | "key": "ctrl+'", 20 | "command": "editor.action.addCommentLine", 21 | "when": "editorTextFocus && !editorReadonly" 22 | }, 23 | { 24 | "key": "ctrl+shift+'", 25 | "command": "editor.action.removeCommentLine", 26 | "when": "editorTextFocus && !editorReadonly" 27 | } 28 | ] 29 | -------------------------------------------------------------------------------- /lib/pack.nix: -------------------------------------------------------------------------------- 1 | lib: 2 | let 3 | inherit (builtins) attrNames; 4 | inherit (lib) genAttrs id mapAttrs'; 5 | in 6 | { 7 | ## Packager Functions ## 8 | # Device Configurations 9 | device = 10 | attrs: 11 | mapAttrs' (_: name: { 12 | name = "Device-${name}"; 13 | value = attrs."${name}".config.system.build."nixos-rebuild"; 14 | }) (genAttrs (attrNames attrs) id); 15 | 16 | # User Home Configurations 17 | user = 18 | attrs: user: 19 | mapAttrs' (_: name: { 20 | name = "User-${name}"; 21 | value = attrs."${user}".activationPackage; 22 | }) (genAttrs (attrNames attrs) id); 23 | } 24 | -------------------------------------------------------------------------------- /modules/apps/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | util, 4 | ... 5 | }: 6 | let 7 | inherit (util.map) modules; 8 | inherit (lib) mkOption types; 9 | in 10 | { 11 | ## APPS Configuration ## 12 | imports = modules.list ./.; 13 | 14 | options.apps.list = mkOption { 15 | description = "List of Enabled Applications"; 16 | type = types.listOf (types.enum (modules.name ./.)); 17 | default = [ ]; 18 | }; 19 | 20 | # AppImage Support 21 | config.programs.appimage = { 22 | enable = true; 23 | binfmt = true; 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /modules/apps/flatpak.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | inputs, 5 | ... 6 | }: 7 | let 8 | enable = builtins.elem "flatpak" config.apps.list; 9 | in 10 | { 11 | imports = [ inputs.flatpak.nixosModules.nix-flatpak ]; 12 | 13 | ## Flatpak Configuration ## 14 | config = lib.mkIf enable { 15 | warnings = [ 16 | '' 17 | Flatpak app install isn't Generational 18 | - Changes in package declaration will result in downloading them anew 19 | '' 20 | ]; 21 | 22 | xdg.portal.enable = true; 23 | environment.persist.directories = [ "/var/lib/flatpak" ]; 24 | user.persist.directories = [ 25 | ".cache/flatpak" 26 | ".local/share/flatpak" 27 | ".var/app" 28 | ]; 29 | 30 | services.flatpak = { 31 | enable = true; 32 | uninstallUnmanaged = true; 33 | 34 | # Repositories 35 | remotes = [ 36 | { 37 | name = "flathub"; 38 | location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; 39 | } 40 | { 41 | name = "flathub-beta"; 42 | location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo"; 43 | } 44 | ]; 45 | 46 | # Package List 47 | # Use `flatpak remote-info --log` to find commit revisions 48 | packages = [ 49 | /* 50 | { 51 | appId = ""; 52 | origin = ""; 53 | commit = ""; 54 | } 55 | */ 56 | ]; 57 | 58 | # Platform Integration 59 | overrides.global = { 60 | Context = { 61 | filesystems = [ "~/.config/dconf:ro" ]; 62 | sockets = [ 63 | "wayland" 64 | "!x11" 65 | "fallback-x11" 66 | ]; 67 | }; 68 | 69 | Environment = { 70 | DCONF_USER_CONFIG_DIR = ".config/dconf"; 71 | XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons"; 72 | }; 73 | }; 74 | 75 | # Package Updates 76 | update = { 77 | onActivation = false; 78 | auto.enable = false; 79 | }; 80 | }; 81 | }; 82 | } 83 | -------------------------------------------------------------------------------- /modules/apps/games/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | util, 5 | pkgs, 6 | ... 7 | }: 8 | let 9 | inherit (lib) 10 | mkIf 11 | mkOption 12 | mkOverride 13 | types 14 | ; 15 | 16 | inherit (util.map) modules; 17 | enable = builtins.elem "games" config.apps.list; 18 | wine = builtins.elem "wine" config.apps.list; 19 | wine' = pkgs.gaming.wine-tkg; 20 | in 21 | { 22 | imports = modules.list ./.; 23 | 24 | options.apps.games = mkOption { 25 | description = "List of Installed Games"; 26 | type = types.listOf (types.enum (modules.name ./.)); 27 | default = [ ]; 28 | }; 29 | 30 | ## Games Configuration ## 31 | config = mkIf enable { 32 | assertions = [ 33 | { 34 | assertion = wine; 35 | message = '' 36 | Wine support is required 37 | - Add 'wine to 'apps.list' 38 | ''; 39 | } 40 | ]; 41 | 42 | # Packages 43 | environment.systemPackages = with pkgs; [ 44 | bottles 45 | lutris 46 | wine' 47 | ]; 48 | 49 | # Steam 50 | programs.steam = { 51 | enable = true; 52 | remotePlay.openFirewall = true; 53 | dedicatedServer.openFirewall = true; 54 | localNetworkGameTransfers.openFirewall = true; 55 | }; 56 | 57 | # Game Mode 58 | # See https://github.com/FeralInteractive/gamemode 59 | hardware.cpu.mode = mkOverride 51 "performance"; 60 | gui.fancy = mkOverride 999 false; 61 | programs.gamemode.enable = true; 62 | 63 | user = { 64 | # Runner 65 | homeConfig.xdg.dataFile."lutris/runners/wine/wine-tkg".source = wine'; 66 | 67 | # Directories 68 | persist.directories = [ 69 | "Games" 70 | ".cache/lutris" 71 | ".config/lutris" 72 | ".local/share/bottles" 73 | ".local/share/lutris" 74 | 75 | # Steam 76 | ".local/share/applications" 77 | ".local/share/icons/hicolor" 78 | ".steam" 79 | ".local/share/Steam" 80 | ]; 81 | }; 82 | }; 83 | } 84 | -------------------------------------------------------------------------------- /modules/apps/games/minecraft.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | { 8 | ## Minecraft ## 9 | config = lib.mkIf (builtins.elem "minecraft" config.apps.games) { 10 | environment.systemPackages = [ pkgs.prismlauncher ]; 11 | user.persist.directories = [ ".local/share/PrismLauncher" ]; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /modules/apps/games/osu.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | { 8 | ## OSU! ## 9 | config = lib.mkIf (builtins.elem "osu" config.apps.games) { 10 | environment.systemPackages = [ pkgs.osu-lazer-bin ]; 11 | user.persist.directories = [ ".local/share/osu" ]; 12 | }; 13 | } 14 | -------------------------------------------------------------------------------- /modules/apps/git/runner.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | options, 4 | lib, 5 | pkgs, 6 | files, 7 | ... 8 | }: 9 | let 10 | inherit (lib) 11 | mkIf 12 | mkMerge 13 | mkOption 14 | types 15 | ; 16 | 17 | inherit (config.apps.git) runner; 18 | in 19 | { 20 | options.apps.git.runner = { 21 | support = mkOption { 22 | description = "Support for 'git' Runners"; 23 | type = types.nullOr ( 24 | types.enum [ 25 | "github" 26 | "gitlab" 27 | ] 28 | ); 29 | default = null; 30 | }; 31 | secret = mkOption { 32 | description = "Path to Secret for 'git' Runner"; 33 | type = types.str; 34 | default = ""; 35 | }; 36 | }; 37 | 38 | ## Runner Configuration ## 39 | config = mkIf (runner.support != null) (mkMerge [ 40 | { 41 | assertions = [ 42 | { 43 | assertion = runner.secret != ""; 44 | message = options.apps.git.runner.secret.description + " must be set"; 45 | } 46 | ]; 47 | } 48 | (mkIf (runner.support == "github") { 49 | # GitHub Runner 50 | environment.systemPackages = [ pkgs.act ]; 51 | services.github-runners.runner = { 52 | enable = true; 53 | url = files.path.repo; 54 | extraLabels = [ "self" ]; 55 | tokenFile = runner.secret; 56 | }; 57 | }) 58 | 59 | (mkIf (runner.support == "gitlab") { 60 | # Docker Support 61 | boot.kernel.sysctl."net.ipv4.ip_forward" = true; 62 | virtualisation.docker.enable = true; 63 | 64 | # GitLab Runner 65 | services.gitlab-runner = { 66 | enable = true; 67 | services.default = { 68 | dockerImage = "alpine"; 69 | tagList = [ "self" ]; 70 | authenticationTokenConfigFile = runner.secret; 71 | }; 72 | }; 73 | }) 74 | ]); 75 | } 76 | -------------------------------------------------------------------------------- /modules/apps/git/user.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | options, 4 | lib, 5 | ... 6 | }: 7 | let 8 | cfg = config.credentials; 9 | opt = options.credentials.mail.description; 10 | in 11 | { 12 | ## User Credentials ## 13 | # Warnings 14 | assertions = [ 15 | { 16 | assertion = cfg.mail != ""; 17 | message = opt + " must be set"; 18 | } 19 | ]; 20 | 21 | programs.git = { 22 | userName = cfg.name; 23 | userEmail = cfg.mail; 24 | extraConfig.github.user = cfg.name; 25 | signing = { 26 | signByDefault = lib.mkIf (cfg.key != "") true; 27 | key = lib.mkIf (cfg.key != "") (builtins.substring 24 30 cfg.key); 28 | }; 29 | }; 30 | } 31 | -------------------------------------------------------------------------------- /modules/apps/media.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | let 8 | enable = builtins.elem "media" config.apps.list; 9 | in 10 | { 11 | ## Media Configuration ## 12 | config = lib.mkIf enable { 13 | environment.systemPackages = with pkgs; [ 14 | pitivi 15 | pwvucontrol 16 | qpwgraph 17 | ]; 18 | 19 | user = { 20 | persist = { 21 | files = [ ".config/rncbc.org/qpwgraph" ]; 22 | directories = [ ".config/pitivi" ]; 23 | }; 24 | 25 | # Audio Effects 26 | homeConfig.services.easyeffects.enable = true; 27 | }; 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /modules/apps/notes.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | util, 5 | pkgs, 6 | files, 7 | ... 8 | }: 9 | let 10 | enable = builtins.elem "notes" config.apps.list; 11 | mutable = { 12 | mutable = true; 13 | force = true; 14 | }; 15 | in 16 | { 17 | ## Logseq Configuration ## 18 | config = lib.mkIf enable { 19 | environment.systemPackages = [ pkgs.logseq ]; 20 | 21 | user = { 22 | persist.directories = [ 23 | ".logseq" 24 | ".config/Logseq" 25 | ]; 26 | 27 | homeConfig.home.file = 28 | with files.logseq; 29 | { 30 | ".config/logseq/configs.edn".text = ''{:window/native-titlebar? true}''; 31 | ".logseq/preferences.json" = { 32 | text = prefs; 33 | } // mutable; 34 | } 35 | // util.map.folder { 36 | directory = settings; 37 | path = ".logseq/settings"; 38 | extension = ".json"; 39 | apply = text: { inherit text; } // mutable; 40 | replace = { 41 | placeholders = [ "@bg" ]; 42 | values = [ config.lib.stylix.colors.base00 ]; 43 | }; 44 | }; 45 | }; 46 | }; 47 | } 48 | -------------------------------------------------------------------------------- /modules/apps/spotify.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | inputs, 5 | pkgs, 6 | ... 7 | }: 8 | let 9 | enable = builtins.elem "spotify" config.apps.list; 10 | spice = inputs.spotify.legacyPackages.${pkgs.system}; 11 | in 12 | { 13 | ## Spotify Configuration ## 14 | config = lib.mkIf enable { 15 | environment.systemPackages = with pkgs; [ 16 | spotify 17 | spot 18 | spicetify-cli 19 | ]; 20 | 21 | user = { 22 | persist.directories = [ 23 | ".config/spotify" 24 | ".cache/spotify" 25 | ".cache/spot" 26 | ]; 27 | 28 | homeConfig = { 29 | imports = [ inputs.spotify.homeManagerModules.default ]; 30 | programs.spicetify = { 31 | enable = true; 32 | 33 | # Player Improvements 34 | enabledCustomApps = with spice.apps; [ 35 | betterLibrary 36 | localFiles 37 | newReleases 38 | ]; 39 | 40 | enabledExtensions = with spice.extensions; [ 41 | beautifulLyrics 42 | goToSong 43 | history 44 | loopyLoop 45 | playNext 46 | popupLyrics 47 | seekSong 48 | showQueueDuration 49 | volumePercentage 50 | ]; 51 | }; 52 | }; 53 | }; 54 | }; 55 | } 56 | -------------------------------------------------------------------------------- /modules/apps/wine.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | util, 5 | inputs, 6 | pkgs, 7 | ... 8 | }: 9 | let 10 | inherit (builtins) attrValues elem map; 11 | inherit (lib) 12 | mkIf 13 | mkEnableOption 14 | mkOption 15 | optionals 16 | types 17 | ; 18 | 19 | cfg = config.apps.wine; 20 | enable = elem "wine" config.apps.list; 21 | in 22 | { 23 | options.apps.wine = { 24 | utilities = mkEnableOption "Install Utility Windows apps"; 25 | package = mkOption { 26 | description = "Package to use for 'wine'"; 27 | type = types.package; 28 | default = pkgs.winePackages.stable; 29 | example = pkgs.gaming.wine-tkg; 30 | }; 31 | }; 32 | 33 | ## Wine Configuration ## 34 | config = mkIf enable { 35 | # Firmware 36 | services.samba.enable = true; 37 | hardware.xpadneo.enable = true; 38 | hardware.graphics.enable32Bit = true; 39 | 40 | # Utilities 41 | user.persist.directories = [ 42 | ".wine" 43 | ".cache/wine" 44 | ".cache/winetricks" 45 | ] ++ optionals cfg.utilities [ ".config/notepad++" ]; 46 | 47 | environment.systemPackages = 48 | with pkgs.wine // pkgs; 49 | (map 50 | ( 51 | name: if (name.override.__functionArgs ? wine) then name.override { wine = cfg.package; } else name 52 | ) 53 | ( 54 | [ 55 | cfg.package 56 | winetricks 57 | mkwindowsapp-tools 58 | playonlinux 59 | ] 60 | # Wrapped Packages 61 | ++ optionals cfg.utilities ( 62 | attrValues ( 63 | util.map.modules ../../packages/wine ( 64 | name: 65 | callPackage name { 66 | inherit lib pkgs; 67 | wine = cfg.package; 68 | build = inputs.windows.lib."${pkgs.system}"; 69 | } 70 | ) 71 | ) 72 | ) 73 | ) 74 | ); 75 | }; 76 | } 77 | -------------------------------------------------------------------------------- /modules/apps/youtube.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | let 8 | enable = builtins.elem "youtube" config.apps.list; 9 | in 10 | { 11 | ## YT Configuration ## 12 | config = lib.mkIf enable { 13 | environment.systemPackages = with pkgs; [ 14 | youtube-music 15 | youtube-tui 16 | yt-dlp 17 | ]; 18 | 19 | user.persist.directories = [ 20 | ".config/YouTube Music" 21 | ".config/youtube-tui" 22 | ".local/share/youtube-tui" 23 | ]; 24 | }; 25 | } 26 | -------------------------------------------------------------------------------- /modules/base/console.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | pkgs, 4 | ... 5 | }: 6 | let 7 | font = builtins.head config.fonts.fontconfig.defaultFonts.monospace; 8 | in 9 | { 10 | ## Console Configuration ## 11 | config = { 12 | # Setup 13 | console = { 14 | earlySetup = true; 15 | packages = [ pkgs.terminus_font ]; 16 | font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz"; 17 | useXkbConfig = true; 18 | }; 19 | 20 | # TTY 21 | services.kmscon = { 22 | enable = true; 23 | hwRender = false; # ! # https://github.com/NixOS/nixpkgs/issues/385497 24 | extraConfig = '' 25 | font-name=${font} 26 | font-size=14 27 | ''; 28 | }; 29 | }; 30 | } 31 | -------------------------------------------------------------------------------- /modules/gui/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | options, 4 | lib, 5 | util, 6 | ... 7 | }: 8 | let 9 | inherit (util.map.modules) list name; 10 | inherit (lib) 11 | mkEnableOption 12 | mkIf 13 | mkMerge 14 | mkOption 15 | optional 16 | types 17 | ; 18 | 19 | inherit (config.gui) desktop; 20 | in 21 | { 22 | ## GUI Configuration ## 23 | imports = list ./. ++ list ./desktop; 24 | 25 | options.gui = { 26 | fancy = mkEnableOption "Enable Fancy GUI Effects"; 27 | display = mkOption { 28 | description = "Main GUI Display"; 29 | type = types.str; 30 | default = "eDP-1"; 31 | example = "HDMI-A-1"; 32 | }; 33 | 34 | desktop = mkOption { 35 | description = "GUI Desktop Choice"; 36 | type = types.enum ((name ./desktop) ++ [ "" ]); 37 | default = ""; 38 | }; 39 | }; 40 | 41 | config = mkMerge [ 42 | { warnings = optional (desktop == "") (options.gui.desktop.description + " is unset"); } 43 | 44 | ## Desktop Environment 45 | (mkIf (desktop != "" && desktop != "install") { 46 | # Utilities 47 | gui.fonts.enable = true; 48 | services = { 49 | gvfs.enable = true; 50 | gnome.gnome-keyring.enable = true; 51 | }; 52 | programs = { 53 | xwayland.enable = true; 54 | seahorse.enable = true; 55 | }; 56 | 57 | user = { 58 | homeConfig.services.mpris-proxy.enable = true; 59 | persist.directories = [ 60 | ".config/autostart" 61 | ".local/share/gvfs-metadata" 62 | ]; 63 | }; 64 | 65 | # Environment Setup 66 | environment.sessionVariables = { 67 | "NIXOS_OZONE_WL" = "1"; 68 | "QT_QPA_PLATFORM" = "wayland;xcb"; 69 | "MOZ_ENABLE_WAYLAND" = "1"; 70 | "CLUTTER_BACKEND" = "wayland"; 71 | }; 72 | 73 | xdg.portal = { 74 | enable = true; 75 | xdgOpenUsePortal = true; 76 | wlr.enable = true; 77 | }; 78 | }) 79 | ]; 80 | } 81 | -------------------------------------------------------------------------------- /modules/gui/desktop/gnome/common.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | let 8 | inherit (lib) 9 | gvariant 10 | mkForce 11 | ; 12 | in 13 | { 14 | # Session 15 | services = { 16 | displayManager.defaultSession = "gnome"; 17 | xserver = { 18 | desktopManager.gnome.enable = true; 19 | displayManager.gdm.enable = true; 20 | }; 21 | 22 | # Initial Setup 23 | gnome.gnome-initial-setup.enable = mkForce false; 24 | }; 25 | 26 | # Excluded Packages 27 | environment.gnome.excludePackages = with pkgs; [ 28 | totem 29 | gnome-music 30 | ]; 31 | 32 | # Dconf Settings 33 | programs.dconf.profiles.gdm.databases = [ 34 | { 35 | settings = { 36 | "org/gnome/desktop/peripherals/touchpad".tap-to-click = true; 37 | "org/gnome/desktop/interface" = { 38 | cursor-theme = config.stylix.cursor.name; 39 | cursor-size = gvariant.mkInt32 config.stylix.cursor.size; 40 | }; 41 | }; 42 | } 43 | ]; 44 | } 45 | -------------------------------------------------------------------------------- /modules/gui/desktop/hyprland/apps/browser.nix: -------------------------------------------------------------------------------- 1 | { theme, ... }: 2 | { 3 | ## Browser Configuration 4 | apps.list = [ "firefox" ]; 5 | user.homeConfig = { 6 | programs.firefox = { 7 | policies.ExtensionSettings = { 8 | name = with theme; "${name}-${variant}-${accent}"; 9 | value = { 10 | installation_mode = "normal_installed"; 11 | install_url = "https://addons.mozilla.org/en-US/firefox/downloads/latest/{d49033ac-8969-488c-afb0-5cdb73957f41}/latest.xpi"; 12 | }; 13 | }; 14 | }; 15 | 16 | home.file.".mozilla/firefox/default/chrome/userChrome.css".text = '' 17 | #TabsToolbar { 18 | -moz-window-dragging: no-drag; 19 | } 20 | ''; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /modules/gui/desktop/hyprland/apps/launcher.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | util, 4 | inputs, 5 | files, 6 | ... 7 | }: 8 | { 9 | ## Launcher Configuration 10 | user.homeConfig = { 11 | imports = [ inputs.hyprshell.homeModules.hyprshell ]; 12 | programs.hyprshell = { 13 | enable = true; 14 | systemd.enable = true; 15 | styleFile = util.build.theme { 16 | inherit (config.lib.stylix) colors; 17 | file = files.hyprland.hyprshell; 18 | }; 19 | 20 | settings = { 21 | layerrules = false; 22 | 23 | launcher = { 24 | enable = true; 25 | default_terminal = "kitty"; 26 | width = 700; 27 | max_items = 10; 28 | plugins = { 29 | applications = { 30 | run_cache_weeks = 4; 31 | show_execs = true; 32 | }; 33 | websearch.engines = [ 34 | { 35 | url = "https://www.google.com/search?q={}"; 36 | name = "Google"; 37 | key = "g"; 38 | } 39 | ]; 40 | }; 41 | }; 42 | 43 | windows = { 44 | scale = 9.0; 45 | workspaces_per_row = 3; 46 | strip_html_from_workspace_title = true; 47 | 48 | overview = { 49 | open = { 50 | modifier = "super"; 51 | key = "tab"; 52 | }; 53 | navigate = { 54 | forward = "tab"; 55 | reverse.mod = "shift"; 56 | }; 57 | }; 58 | 59 | switch = { 60 | open.modifier = "alt"; 61 | navigate = { 62 | forward = "tab"; 63 | reverse.mod = "shift"; 64 | }; 65 | other = { 66 | hide_filtered = true; 67 | filter_by = [ "current_workspace" ]; 68 | }; 69 | }; 70 | }; 71 | }; 72 | }; 73 | }; 74 | } 75 | -------------------------------------------------------------------------------- /modules/gui/desktop/hyprland/apps/media.nix: -------------------------------------------------------------------------------- 1 | { 2 | util, 3 | pkgs, 4 | ... 5 | }: 6 | { 7 | ## Media Configuration 8 | environment.systemPackages = with pkgs; [ 9 | celluloid 10 | lollypop 11 | papers 12 | playerctl 13 | shotwell 14 | transmission_4-gtk 15 | ]; 16 | 17 | user = { 18 | # Persisted Files 19 | persist.directories = [ 20 | ".config/mpv" 21 | ".config/shotwell" 22 | ".local/share/lollypop" 23 | ".local/share/shotwell" 24 | ".cache/shotwell" 25 | ]; 26 | 27 | homeConfig = { 28 | # Default Applications 29 | xdg.mimeApps.defaultApplications = util.build.mime { 30 | audio = [ "org.gnome.Lollypop.desktop" ]; 31 | document = [ "org.gnome.Papers.desktop" ]; 32 | image = [ "org.gnome.Shotwell-Viewer.desktop" ]; 33 | magnet = [ "transmission-gtk.desktop" ]; 34 | pdf = [ "org.gnome.Papers.desktop" ]; 35 | video = [ "io.github.celluloid_player.Celluloid.desktop" ]; 36 | }; 37 | 38 | # Media Player 39 | services.playerctld.enable = true; 40 | programs.mpv = { 41 | enable = true; 42 | defaultProfiles = [ "gpu-hq" ]; 43 | scripts = [ pkgs.mpvScripts.mpris ]; 44 | }; 45 | }; 46 | }; 47 | } 48 | -------------------------------------------------------------------------------- /modules/gui/desktop/hyprland/apps/terminal.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs, 3 | theme, 4 | ... 5 | }: 6 | { 7 | ## Terminal Configuration 8 | user.homeConfig = { 9 | programs.kitty = { 10 | enable = true; 11 | themeFile = with theme; "${name-alt}-${variant-alt}"; 12 | keybindings = { 13 | "ctrl+c" = "copy_or_interrupt"; 14 | "kitty_mod+f" = 15 | "launch --allow-remote-control kitty +kitten search/search.py @active-kitty-window-id"; 16 | }; 17 | 18 | settings = { 19 | kitty_mod = "ctrl+shift"; 20 | confirm_os_window_close = 2; 21 | copy_on_select = "clipboard"; 22 | placement_strategy = "center"; 23 | scrollback_lines = 10000; 24 | enable_audio_bell = "no"; 25 | visual_bell_duration = "0.1"; 26 | 27 | cursor_shape = "beam"; 28 | cursor_shape_unfocused = "underline"; 29 | tab_bar_style = "powerline"; 30 | tab_powerline_style = "round"; 31 | window_padding_width = 10; 32 | }; 33 | }; 34 | 35 | home.file.".config/kitty/search".source = pkgs.custom.kitty-search; 36 | wayland.windowManager.hyprland.settings.misc.swallow_regex = "^(kitty)$"; 37 | stylix.targets.kitty = { 38 | enable = true; 39 | variant256Colors = true; 40 | }; 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /modules/gui/desktop/hyprland/apps/text.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | pkgs, 4 | util, 5 | files, 6 | theme, 7 | ... 8 | }: 9 | { 10 | ## Text Configuration 11 | environment.systemPackages = [ pkgs.geany ]; 12 | user = { 13 | persist.directories = [ 14 | ".config/clipse" 15 | ".config/geany" 16 | ]; 17 | 18 | homeConfig = { 19 | # Text Editor 20 | xdg.mimeApps.defaultApplications = util.build.mime { 21 | markdown = [ "geany.desktop" ]; 22 | text = [ "geany.desktop" ]; 23 | }; 24 | 25 | home.file = with files.geany; { 26 | ".config/geany/geany.conf".text = settings; 27 | ".config/geany/keybindings.conf".text = keybindings; 28 | ".config/geany/colorschemes/theme.conf".source = 29 | with theme; 30 | "${pkgs.custom.geany-catppuccin}/share/geany/colorschemes/${name}-${variant}.conf"; 31 | }; 32 | 33 | # Clipboard Manager 34 | services.clipse = { 35 | enable = true; 36 | allowDuplicates = false; 37 | historySize = 150; 38 | imageDisplay.type = "kitty"; 39 | theme = with config.lib.stylix.colors; { 40 | useCustomTheme = true; 41 | DimmedDesc = "#${base07}"; 42 | DimmedTitle = "#${base07}"; 43 | FilteredMatch = "#${base08}"; 44 | NormalTitle = "#${base08}"; 45 | NormalDesc = "#${base0B}"; 46 | SelectedDesc = "#${base0D}"; 47 | SelectedTitle = "#${base0D}"; 48 | SelectedBorder = "#${base0D}"; 49 | SelectedDescBorder = "#${base0D}"; 50 | TitleFore = "#${base05}"; 51 | Titleback = "#${base01}"; 52 | StatusMsg = "#${base0E}"; 53 | PinIndicatorColor = "#${base0F}"; 54 | }; 55 | }; 56 | }; 57 | }; 58 | } 59 | -------------------------------------------------------------------------------- /modules/gui/desktop/hyprland/settings/plugins.nix: -------------------------------------------------------------------------------- 1 | { 2 | sys, 3 | config, 4 | pkgs, 5 | ... 6 | }: 7 | { 8 | ## Plugin Settings 9 | wayland.windowManager.hyprland = { 10 | plugins = with pkgs.hyprworld; [ 11 | hyprsplit 12 | hypr-dynamic-cursors 13 | Hyprspace 14 | Hypr-DarkWindow 15 | ]; 16 | 17 | settings = { 18 | plugin = { 19 | # Workspaces per Monitor 20 | hyprsplit.num_workspaces = 9; 21 | 22 | # Cursor Effects 23 | dynamic-cursors = { 24 | enabled = true; 25 | hyprcursor.enabled = true; 26 | shake = { 27 | enabled = true; 28 | nearest = true; 29 | effects = false; 30 | ipc = false; 31 | }; 32 | mode = if sys.gui.fancy then "tilt" else "none"; 33 | tilt.function = "negative_quadratic"; 34 | }; 35 | 36 | # Workspace Overview 37 | overview = 38 | with sys.lib.stylix.colors; 39 | let 40 | gaps = builtins.toString config.wayland.windowManager.hyprland.settings.general.gaps_in; 41 | in 42 | { 43 | autoDrag = true; 44 | dragAlpha = 0.4; 45 | exitOnClick = true; 46 | centerAligned = true; 47 | hideTopLayers = true; 48 | hideOverlayLayers = false; 49 | showNewWorkspace = false; 50 | showEmptyWorkspace = true; 51 | overrideGaps = true; 52 | gapsIn = gaps; 53 | gapsOut = gaps; 54 | panelBorderWidth = 0; 55 | panelBorderColor = "rgb(${base0A})"; 56 | workspaceActiveBorder = "rgb(${base0D})"; 57 | }; 58 | }; 59 | 60 | bind = [ 61 | # Overview 62 | "$mod, grave, overview:toggle" 63 | "$mod SHIFT, grave, overview:toggle, all" 64 | 65 | # Color Inversion 66 | "$mod, I, invertactivewindow" 67 | ]; 68 | }; 69 | }; 70 | } 71 | -------------------------------------------------------------------------------- /modules/gui/desktop/hyprland/theme.nix: -------------------------------------------------------------------------------- 1 | pkgs: rec { 2 | # Theming 3 | name = "catppuccin"; 4 | name-alt = "Catppuccin"; 5 | 6 | accent = "blue"; 7 | variant = "macchiato"; 8 | variant-alt = "Macchiato"; 9 | 10 | gtk = { 11 | name = "${name}-${variant}-${accent}-standard"; 12 | package = pkgs.catppuccin-gtk.override { 13 | accents = [ accent ]; 14 | inherit variant; 15 | }; 16 | }; 17 | 18 | qt = { 19 | name = "${name}-${variant}-${accent}"; 20 | package = pkgs.catppuccin-kvantum.override { 21 | inherit accent variant; 22 | }; 23 | }; 24 | 25 | icons = { 26 | name = "Papirus-Dark"; 27 | package = pkgs.catppuccin-papirus-folders.override { 28 | inherit accent; 29 | flavor = variant; 30 | }; 31 | }; 32 | } 33 | -------------------------------------------------------------------------------- /modules/gui/fonts.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | { 8 | options.gui.fonts.enable = lib.mkEnableOption "Enable Fonts Configuration"; 9 | 10 | ## Font Configuration ## 11 | config = lib.mkIf config.gui.fonts.enable rec { 12 | fonts = { 13 | enableDefaultPackages = true; 14 | fontDir.enable = true; 15 | 16 | ## Render Settings 17 | fontconfig = { 18 | enable = true; 19 | 20 | hinting = { 21 | enable = true; 22 | autohint = false; 23 | style = "slight"; 24 | }; 25 | 26 | subpixel = { 27 | rgba = "rgb"; 28 | lcdfilter = "default"; 29 | }; 30 | 31 | # Emoji Support 32 | defaultFonts = 33 | let 34 | emoji = [ stylix.fonts.emoji.name ]; 35 | in 36 | { 37 | monospace = emoji; 38 | sansSerif = emoji; 39 | serif = emoji; 40 | }; 41 | }; 42 | }; 43 | 44 | stylix.fonts = { 45 | # Default Fonts 46 | sansSerif = { 47 | package = pkgs.adwaita-fonts; 48 | name = "Adwaita Sans"; 49 | }; 50 | 51 | serif = { 52 | package = pkgs.eb-garamond; 53 | name = "EB Garamond"; 54 | }; 55 | 56 | monospace = { 57 | package = pkgs.custom.fonts; 58 | name = "Iosvmata"; 59 | }; 60 | 61 | emoji = { 62 | package = pkgs.twitter-color-emoji; 63 | name = "Twitter Color Emoji"; 64 | }; 65 | 66 | # Font Sizes 67 | sizes = { 68 | applications = 11; 69 | desktop = 11; 70 | popups = 10; 71 | terminal = 12; 72 | }; 73 | }; 74 | 75 | # Font Packages 76 | fonts.packages = with pkgs; [ 77 | font-awesome 78 | nerd-fonts.symbols-only 79 | noto-fonts 80 | 81 | fira 82 | fira-code 83 | fira-mono 84 | ibm-plex 85 | roboto 86 | roboto-mono 87 | roboto-slab 88 | source-code-pro 89 | ubuntu_font_family 90 | ]; 91 | }; 92 | } 93 | -------------------------------------------------------------------------------- /modules/gui/gtk.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | files, 6 | ... 7 | }: 8 | let 9 | inherit (lib) 10 | mkEnableOption 11 | mkIf 12 | mkOption 13 | types 14 | ; 15 | 16 | cfg = config.gui.gtk; 17 | in 18 | { 19 | options.gui.gtk = { 20 | enable = mkEnableOption "Enable GTK Configuration"; 21 | theme = { 22 | name = mkOption { 23 | description = "GTK+ Application Theme"; 24 | type = types.str; 25 | }; 26 | 27 | package = mkOption { 28 | description = "GTK+ Theme Package"; 29 | type = types.package; 30 | }; 31 | }; 32 | }; 33 | 34 | ## GTK Configuration ## 35 | config = mkIf cfg.enable { 36 | # Environment Setup 37 | programs.dconf.enable = true; 38 | services.dbus.packages = [ pkgs.dconf ]; 39 | environment = { 40 | systemPackages = [ cfg.theme.package ]; 41 | variables."GTK_THEME" = cfg.theme.name; 42 | }; 43 | 44 | # Desktop Integration 45 | programs.gnupg.agent.pinentryPackage = pkgs.pinentry-gtk2; 46 | 47 | user = { 48 | # Configuration 49 | persist.directories = [ 50 | ".config/dconf" 51 | ".config/gtk-3.0" 52 | ".config/gtk-4.0" 53 | ]; 54 | 55 | homeConfig = { 56 | # Bookmarks 57 | home.file.".config/gtk-3.0/bookmarks" = { 58 | text = files.bookmarks; 59 | force = true; 60 | }; 61 | 62 | # Theming 63 | stylix.targets.gtk.enable = false; 64 | dconf.settings."org/gnome/desktop/interface".color-scheme = "prefer-dark"; 65 | gtk = { 66 | enable = true; 67 | inherit (cfg) theme; 68 | cursorTheme = config.gui.cursors; 69 | font = with config.stylix.fonts; { 70 | inherit (sansSerif) package name; 71 | size = sizes.applications; 72 | }; 73 | 74 | gtk3.extraConfig.gtk-application-prefer-dark-theme = 1; 75 | gtk4.extraConfig.gtk-application-prefer-dark-theme = 1; 76 | }; 77 | }; 78 | }; 79 | }; 80 | } 81 | -------------------------------------------------------------------------------- /modules/hardware/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | inputs, 4 | lib, 5 | util, 6 | ... 7 | }: 8 | let 9 | inherit (util.map) modules; 10 | inherit (lib) mkForce mkOption types; 11 | cfg = config.hardware; 12 | in 13 | { 14 | ## HARDWARE Configuration ## 15 | imports = modules.list ./.; 16 | 17 | options.hardware = with types; { 18 | cpu = { 19 | cores = mkOption { 20 | description = "Number of CPU Cores"; 21 | type = int; 22 | default = 4; 23 | }; 24 | 25 | mode = mkOption { 26 | description = "CPU Frequency Governor Mode"; 27 | type = enum [ 28 | "ondemand" 29 | "performance" 30 | "powersave" 31 | ]; 32 | default = "powersave"; 33 | }; 34 | }; 35 | 36 | modules = mkOption { 37 | description = "List of Modules imported from 'inputs.hardware'"; 38 | type = listOf (enum (attrNames inputs.hardware.nixosModules)); 39 | default = [ ]; 40 | }; 41 | 42 | support = mkOption { 43 | description = "List of Additional Supported Hardware"; 44 | type = listOf (enum (modules.name ./.)); 45 | default = [ ]; 46 | }; 47 | }; 48 | 49 | config = { 50 | powerManagement.cpuFreqGovernor = cfg.cpu.mode; 51 | nix.settings.max-jobs = cfg.cpu.cores; 52 | 53 | specialisation = { 54 | powersave.configuration = { 55 | system.nixos.label = "special.powersave"; 56 | gui.fancy = mkForce false; 57 | hardware.cpu.mode = mkForce "powersave"; 58 | }; 59 | 60 | performance.configuration = { 61 | system.nixos.label = "special.performance"; 62 | hardware.cpu.mode = mkForce "performance"; 63 | }; 64 | }; 65 | }; 66 | } 67 | -------------------------------------------------------------------------------- /modules/hardware/gpu.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | ... 5 | }: 6 | let 7 | inherit (lib) 8 | mkForce 9 | mkIf 10 | mkMerge 11 | mkOption 12 | types 13 | ; 14 | 15 | cfg = config.hardware; 16 | in 17 | { 18 | options.hardware.gpu = mkOption { 19 | description = "Discrete GPU Support"; 20 | type = with types; nullOr (enum [ "nvidia" ]); 21 | default = null; 22 | }; 23 | 24 | config = mkMerge [ 25 | (mkIf (cfg.gpu == "nvidia") { 26 | services.xserver.videoDrivers = mkForce [ "nvidia" ]; 27 | environment.variables = { 28 | "__GLX_VENDOR_LIBRARY_NAME" = "nvidia"; 29 | "LIBVA_DRIVER_NAME" = "nvidia"; 30 | }; 31 | 32 | boot = { 33 | blacklistedKernelModules = [ "nouveau" ]; 34 | kernelModules = [ 35 | "nvidia" 36 | "nvidia_modeset" 37 | "nvidia_uvm" 38 | "nvidia_drm.fbdev=1" # Wayland Support 39 | "NVreg_UsePageAttributeTable=1" # PAT Support 40 | "NVreg_RegistryDwords=RMUseSwI2c=0x01;RMI2cSpeed=100" # DDC/CI Support 41 | ]; 42 | }; 43 | 44 | hardware.nvidia = 45 | let 46 | enable = cfg.vm.vfio != "on"; 47 | mode = cfg.cpu.mode == "performance"; 48 | in 49 | { 50 | modesetting.enable = mkForce true; 51 | nvidiaSettings = mkForce true; 52 | dynamicBoost = { inherit enable; }; 53 | powerManagement = { inherit enable; }; 54 | prime = 55 | with cfg.nvidia.prime; 56 | mkIf (amdgpuBusId != "" || intelBusId != "") { 57 | sync.enable = mkForce false; 58 | reverseSync.enable = mkForce mode; 59 | offload = { 60 | enable = mkForce (!mode); 61 | enableOffloadCmd = mkForce (!mode); 62 | }; 63 | }; 64 | }; 65 | }) 66 | ]; 67 | } 68 | -------------------------------------------------------------------------------- /modules/hardware/laptop.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | files, 6 | ... 7 | }: 8 | let 9 | enable = builtins.elem "laptop" config.hardware.support; 10 | in 11 | { 12 | ## Laptop Configuration ## 13 | config = lib.mkIf enable { 14 | services.logind = { 15 | killUserProcesses = true; 16 | 17 | # Power Button 18 | powerKey = "poweroff"; 19 | powerKeyLongPress = "reboot"; 20 | 21 | # Lid 22 | lidSwitch = "lock"; 23 | lidSwitchDocked = "ignore"; 24 | }; 25 | 26 | # Audio 27 | user.homeConfig.home.file.".config/autostart/audio-tweaks.desktop".text = '' 28 | [Desktop Entry] 29 | Type=Application 30 | Name=audio-tweaks 31 | Exec=${ 32 | pkgs.writeShellApplication { 33 | name = "audio"; 34 | text = files.scripts.audio; 35 | runtimeInputs = with pkgs; [ 36 | glib 37 | playerctl 38 | ]; 39 | } 40 | }/bin/audio 41 | ''; 42 | 43 | # Touchpad 44 | services.libinput = { 45 | enable = true; 46 | touchpad = { 47 | tapping = true; 48 | tappingDragLock = true; 49 | middleEmulation = true; 50 | naturalScrolling = false; 51 | disableWhileTyping = true; 52 | scrollMethod = "twofinger"; 53 | accelSpeed = "0.7"; 54 | }; 55 | }; 56 | 57 | # Battery 58 | powerManagement = { 59 | enable = true; 60 | powertop.enable = true; 61 | }; 62 | }; 63 | } 64 | -------------------------------------------------------------------------------- /modules/hardware/mobile.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | let 8 | enable = builtins.elem "mobile" config.hardware.support; 9 | in 10 | { 11 | ## Device Firmware ## 12 | config = lib.mkIf enable { 13 | # Android Compatibilty 14 | user.groups = [ "adbusers" ]; 15 | programs.adb.enable = true; 16 | 17 | # iOS Compatibility 18 | services.usbmuxd.enable = true; 19 | environment.systemPackages = with pkgs; [ 20 | libimobiledevice 21 | scrcpy 22 | ]; 23 | 24 | # ? # Run 'systemctl restart usbmuxd.service' if it doesn't work 25 | }; 26 | } 27 | -------------------------------------------------------------------------------- /modules/hardware/printer.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | let 8 | enable = builtins.elem "printer" config.hardware.support; 9 | in 10 | { 11 | ## Printer Firmware ## 12 | config = lib.mkIf enable { 13 | # Scanning 14 | user.groups = [ 15 | "lp" 16 | "scanner" 17 | ]; 18 | hardware.sane.enable = true; 19 | 20 | # Printing 21 | services.printing = { 22 | enable = true; 23 | drivers = with pkgs; [ 24 | gutenprint 25 | brlaser 26 | cnijfilter2 27 | ]; 28 | extraConf = '' 29 | DefaultPaperSize A4 30 | ''; 31 | }; 32 | 33 | # Network Print 34 | services.avahi = { 35 | enable = true; 36 | nssmdns4 = true; 37 | openFirewall = true; 38 | }; 39 | }; 40 | } 41 | -------------------------------------------------------------------------------- /modules/hardware/virtualisation/android.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | options, 4 | lib, 5 | pkgs, 6 | ... 7 | }: 8 | let 9 | inherit (lib) mkEnableOption mkIf optional; 10 | in 11 | { 12 | options.hardware.vm.android.enable = mkEnableOption "Enable Android Virtualisation"; 13 | 14 | ## Android Virtualisation ## 15 | config = mkIf config.hardware.vm.android.enable { 16 | warnings = optional (config.boot.kernelPackages != options.boot.kernelPackages.default) '' 17 | Android Virtualisation may not work 18 | - Kernel may not have requisite 'binder' module 19 | - Use the mainline/LTS kernel for assured support 20 | ''; 21 | 22 | virtualisation.waydroid.enable = true; 23 | environment.systemPackages = [ pkgs.wl-clipboard ]; 24 | 25 | # ? # Run 'waydroid init -s GAPPS -f' to install system image 26 | 27 | # Environment Setup 28 | users.groups.android = { 29 | name = "android"; 30 | gid = 1000; 31 | }; 32 | 33 | user = { 34 | groups = [ "android" ]; 35 | persist.directories = [ ".local/share/waydroid" ]; 36 | }; 37 | 38 | environment.persist.directories = [ 39 | { 40 | directory = "/var/lib/waydroid"; 41 | group = "android"; 42 | mode = "774"; 43 | } 44 | ]; 45 | }; 46 | } 47 | -------------------------------------------------------------------------------- /modules/hardware/virtualisation/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | util, 5 | pkgs, 6 | ... 7 | }: 8 | let 9 | enable = builtins.elem "virtualisation" config.hardware.support; 10 | in 11 | { 12 | imports = util.map.modules.list ./.; 13 | 14 | ## Virtualisation Settings ## 15 | config = lib.mkIf enable { 16 | # Environment Setup 17 | user.groups = [ 18 | "kvm" 19 | "libvirtd" 20 | ]; 21 | user.persist.directories = [ 22 | ".config/libvirt" 23 | ".local/share/libvirt" 24 | ]; 25 | environment.persist.directories = [ "/var/lib/libvirt" ]; 26 | security.virtualisation.flushL1DataCache = "cond"; 27 | boot = { 28 | kernelModules = [ 29 | "kvm-amd" 30 | "kvm-intel" 31 | ]; 32 | extraModprobeConfig = "options kvm_intel nested=1"; 33 | }; 34 | 35 | # VM Packages 36 | programs.virt-manager.enable = true; 37 | environment.systemPackages = with pkgs; [ 38 | libguestfs 39 | virtiofsd 40 | ]; 41 | 42 | # ? # Run 'virsh net-start default' to start virtual network service 43 | 44 | # VM Utilities 45 | virtualisation = { 46 | kvmgt.enable = true; 47 | spiceUSBRedirection.enable = true; 48 | libvirtd = { 49 | enable = true; 50 | onBoot = "ignore"; 51 | onShutdown = "shutdown"; 52 | qemu = { 53 | package = pkgs.qemu_kvm; 54 | runAsRoot = false; 55 | swtpm.enable = true; 56 | ovmf = { 57 | enable = true; 58 | packages = [ pkgs.OVMFFull.fd ]; 59 | }; 60 | }; 61 | }; 62 | }; 63 | }; 64 | } 65 | -------------------------------------------------------------------------------- /modules/nix/config.nix: -------------------------------------------------------------------------------- 1 | { 2 | allowAliases = true; 3 | allowBroken = false; 4 | allowUnfree = true; 5 | allowInsecurePredicate = _: true; 6 | pulseAudio = true; 7 | } 8 | -------------------------------------------------------------------------------- /modules/nix/default.nix: -------------------------------------------------------------------------------- 1 | { pkgs, ... }: 2 | { 3 | ## NIX Configuration ## 4 | imports = [ 5 | ./index.nix 6 | ./registry.nix 7 | ./tools.nix 8 | ]; 9 | 10 | config = { 11 | # Settings 12 | user.persist.directories = [ ".cache/nix" ]; 13 | nix = { 14 | # Version 15 | package = pkgs.nixFlakes; 16 | 17 | # Garbage Collection 18 | settings.auto-optimise-store = true; 19 | gc = { 20 | automatic = true; 21 | dates = "weekly"; 22 | options = "--delete-older-than 7d"; 23 | }; 24 | 25 | settings = { 26 | sandbox = true; 27 | 28 | # User Permissions 29 | allowed-users = [ 30 | "root" 31 | "@wheel" 32 | ]; 33 | trusted-users = [ 34 | "root" 35 | "@wheel" 36 | ]; 37 | 38 | # Binary Cache 39 | inherit ((import ../../flake.nix).nixConfig) trusted-substituters trusted-public-keys; 40 | }; 41 | 42 | extraOptions = '' 43 | accept-flake-config = true 44 | warn-dirty = false 45 | experimental-features = nix-command flakes recursive-nix 46 | min-free = ${builtins.toString (1024 * 1024 * 1024)} 47 | max-free = ${builtins.toString (10 * 1024 * 1024 * 1024)} 48 | ''; 49 | }; 50 | }; 51 | } 52 | -------------------------------------------------------------------------------- /modules/nix/index.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | inputs, 5 | ... 6 | }: 7 | { 8 | options.nix.index = lib.mkEnableOption "Enable Package Indexer"; 9 | 10 | ## Package Indexer ## 11 | config = lib.mkIf config.nix.index { 12 | user.homeConfig = { 13 | imports = [ inputs.index.hmModules.nix-index ]; 14 | programs.nix-index-database.comma.enable = true; 15 | }; 16 | }; 17 | } 18 | -------------------------------------------------------------------------------- /modules/nix/registry.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | inputs, 4 | ... 5 | }: 6 | { 7 | ## Nix Registry ## 8 | config = { 9 | nixpkgs.flake = { 10 | setNixPath = false; 11 | setFlakeRegistry = false; 12 | }; 13 | 14 | nix = { 15 | nixPath = [ "/etc/nix/inputs" ]; 16 | registry = builtins.mapAttrs (_: value: { flake = value; }) ( 17 | lib.filterAttrs (_: value: value ? outputs) inputs 18 | ); 19 | }; 20 | 21 | environment.etc = lib.mapAttrs' (name: value: { 22 | name = "nix/inputs/${name}"; 23 | value = { 24 | source = value.outPath; 25 | }; 26 | }) inputs; 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /modules/nix/tools.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | { 8 | options.nix.tools = lib.mkEnableOption "Enable Additional Nix Tools"; 9 | 10 | ## Nix Tools ## 11 | config = lib.mkIf config.nix.tools { 12 | user.persist.directories = [ ".cache/manix" ]; 13 | nix.settings.system-features = [ 14 | "kvm" 15 | "big-parallel" 16 | "recursive-nix" 17 | ]; 18 | 19 | environment.systemPackages = with pkgs; [ 20 | cachix 21 | manix 22 | nixfmt-rfc-style 23 | nodePackages.prettier 24 | shellcheck 25 | statix 26 | ]; 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /modules/secrets.nix: -------------------------------------------------------------------------------- 1 | (import ../secrets) 2 | -------------------------------------------------------------------------------- /modules/shell/bash.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | let 8 | inherit (builtins) any attrValues elem; 9 | enable = any (value: elem "bash" value.shells) (attrValues config.user.settings); 10 | in 11 | { 12 | ## Bourne Shell Configuration ## 13 | config = lib.mkIf enable { 14 | # Shell Environment 15 | environment.shells = [ pkgs.bashInteractive ]; 16 | user.persist = { 17 | files = [ ".bash_history" ]; 18 | directories = [ ".local/share/bash" ]; 19 | }; 20 | 21 | programs.bash = { 22 | vteIntegration = true; 23 | promptInit = '' 24 | # Options 25 | shopt -s autocd 26 | shopt -s cdspell 27 | shopt -s checkjobs 28 | shopt -s checkwinsize 29 | shopt -s cmdhist 30 | shopt -s extglob 31 | shopt -s globstar 32 | shopt -s histappend 33 | 34 | # Command History 35 | HISTCONTROL=erasedups:ignoredups:ignorespace 36 | HISTFILESIZE=100000 37 | HISTIGNORE=rm:killall 38 | HISTSIZE=100000 39 | ''; 40 | }; 41 | }; 42 | } 43 | -------------------------------------------------------------------------------- /modules/shell/zsh.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | ... 6 | }: 7 | let 8 | inherit (builtins) any attrValues elem; 9 | enable = any (value: elem "zsh" value.shells) (attrValues config.user.settings); 10 | in 11 | { 12 | ## Z Shell Configuration ## 13 | config = lib.mkIf enable { 14 | # Shell Environment 15 | programs.zsh = { 16 | enable = true; 17 | 18 | # Features 19 | autosuggestions.enable = true; 20 | enableCompletion = false; 21 | syntaxHighlighting.enable = true; 22 | vteIntegration = true; 23 | setOptions = [ 24 | "autocd" 25 | "EXTENDED_HISTORY" 26 | "HIST_EXPIRE_DUPS_FIRST" 27 | ]; 28 | 29 | # Keybindings 30 | promptInit = '' 31 | bindkey '^[[1;5C' forward-word 32 | bindkey '^[[1;5D' backward-word 33 | bindkey '^[[3;5~' kill-word 34 | bindkey '^[[3~' delete-char 35 | bindkey "^[[5~" beginning-of-history 36 | bindkey "^[[6~" end-of-history 37 | bindkey '^[[A' up-line-or-search 38 | bindkey '^[[B' down-line-or-search 39 | bindkey '^[[C' forward-char 40 | bindkey '^[[D' backward-char 41 | bindkey '^[[F' end-of-linegestures 42 | bindkey '^[[H' beginning-of-line 43 | bindkey '^J' backward-kill-line 44 | ''; 45 | 46 | # Plugins 47 | interactiveShellInit = '' 48 | source ${pkgs.zsh-autopair}/share/zsh/zsh-autopair/autopair.zsh 49 | ''; 50 | }; 51 | 52 | system.userActivationScripts.zshrc = "touch .zshrc"; 53 | user.persist = { 54 | files = [ ".zsh_history" ]; 55 | directories = [ ".cache/zsh" ]; 56 | }; 57 | }; 58 | } 59 | -------------------------------------------------------------------------------- /modules/user/home.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | files, 5 | ... 6 | }: 7 | { 8 | ## User Home Configuration ## 9 | config = { 10 | # Environment Settings 11 | environment.sessionVariables = { 12 | "XDG_CACHE_HOME" = "$HOME/.cache"; 13 | "XDG_CONFIG_HOME" = "$HOME/.config"; 14 | "XDG_DATA_HOME" = "$HOME/.local/share"; 15 | "XDG_BIN_HOME" = "$HOME/.local/bin"; 16 | }; 17 | 18 | user.homeConfig = { 19 | imports = [ 20 | ../../users 21 | 22 | # Mutable Configuration Files 23 | ( 24 | { config, ... }: 25 | (import (builtins.fetchurl { 26 | inherit (files.mutability.module) url sha256; 27 | }) { inherit config lib; }) 28 | ) 29 | ]; 30 | 31 | # SystemD User Services 32 | systemd.user = { 33 | enable = true; 34 | startServices = true; 35 | }; 36 | 37 | # Package Configuration 38 | home = { 39 | inherit (config.system) stateVersion; 40 | file = { 41 | ".config/nixpkgs/config.nix".source = ../nix/config.nix; 42 | ".config/nix/nix.conf".source = config.environment.etc."nix/nix.conf".source; 43 | }; 44 | }; 45 | }; 46 | }; 47 | } 48 | -------------------------------------------------------------------------------- /packages/README.md: -------------------------------------------------------------------------------- 1 | ### Packages 2 | 3 | The `packages` directory contains custom-built packages (can be accessed by `github:maydayv7/dotfiles#packages.${system}`). Packages which have a separate `metadata.nix` can be automatically updated using `sh update.sh` 4 | 5 | The `overlays` directory contains overrides for pre-built packages (See [this](https://wiki.nixos.org/wiki/Overlays) for more information) 6 | 7 | It is advisable to use Flake `inputs` as package sources. To pin it to a specific commit/revision add `?rev=` after the `url`. Else you may also specify the source using `fetch` functions. In case you don't know the hash for the source, set: 8 | 9 | ``` 10 | hash = lib.fakeHash; 11 | sha256 = lib.fakeSha256; 12 | ``` 13 | 14 | Then Nix will fail the build with an `error` message and give the correct hash 15 | 16 | ### Patches 17 | 18 | The `nixpkgs` package channel can be patched by simply dropping a valid `.patch` file into the `patches` directory 19 | -------------------------------------------------------------------------------- /packages/default.nix: -------------------------------------------------------------------------------- 1 | # Package Channel 2 | with builtins; (getFlake "git+file://${toString ../.}").legacyPackages."${currentSystem}" 3 | -------------------------------------------------------------------------------- /packages/firefox-elementary/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | ... 5 | }: 6 | with pkgs; 7 | let 8 | metadata = import ./metadata.nix; 9 | in 10 | stdenv.mkDerivation rec { 11 | pname = "elementaryos-firefox-theme"; 12 | version = metadata.rev; 13 | 14 | src = fetchFromGitHub { 15 | owner = "Zonnev"; 16 | repo = pname; 17 | inherit (metadata) rev sha256; 18 | }; 19 | 20 | dontBuild = true; 21 | installPhase = "mkdir -p $out/ && cp -r . $out/"; 22 | 23 | meta = with lib; { 24 | description = "An Elementary OS Theme for Firefox"; 25 | homepage = metadata.repo; 26 | license = licenses.mpl20; 27 | maintainers = [ "maydayv7" ]; 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /packages/firefox-elementary/metadata.nix: -------------------------------------------------------------------------------- 1 | { 2 | repo = "https://github.com/Zonnev/elementaryos-firefox-theme"; 3 | branch = "elementaryos-firefox-theme"; 4 | rev = "63a5c423db5d442117535aff16ecba73f59c5fa8"; 5 | sha256 = "sha256-eVXYrv4U8FC8VnLZoa4rgkfNu46cKqJKYXqGCtt+gLY="; 6 | } 7 | -------------------------------------------------------------------------------- /packages/geany-catppuccin/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | ... 5 | }: 6 | with pkgs; 7 | let 8 | metadata = import ./metadata.nix; 9 | in 10 | stdenv.mkDerivation { 11 | pname = "geany-catppuccin"; 12 | version = metadata.rev; 13 | 14 | src = fetchFromGitHub { 15 | owner = "catppuccin"; 16 | repo = "geany"; 17 | inherit (metadata) rev sha256; 18 | }; 19 | 20 | dontBuild = true; 21 | patches = [ ./selection.patch ]; 22 | installPhase = '' 23 | mkdir -p $out/share/geany/colorschemes/ 24 | cp -r ./src/. $out/share/geany/colorschemes/ 25 | ''; 26 | 27 | meta = with lib; { 28 | description = "Soothing pastel theme for Geany"; 29 | homepage = metadata.repo; 30 | license = licenses.mit; 31 | maintainers = [ "maydayv7" ]; 32 | }; 33 | } 34 | -------------------------------------------------------------------------------- /packages/geany-catppuccin/metadata.nix: -------------------------------------------------------------------------------- 1 | { 2 | repo = "https://github.com/catppuccin/geany"; 3 | rev = "ab96041d6ec462b19e5d70c232e8a20bc738ca99"; 4 | sha256 = "sha256-9QwL/tTqjkF7R9SP/1tGphBcgrjxCTrKqKbp5JuG/B8="; 5 | } 6 | -------------------------------------------------------------------------------- /packages/geany-catppuccin/selection.patch: -------------------------------------------------------------------------------- 1 | --- a/src/catppuccin-macchiato.conf 2 | +++ b/src/catppuccin-macchiato.conf 3 | @@ -46,7 +46,7 @@ error=red;yellow;false;true 4 | op=blue;base;true;false 5 | # Editor UI 6 | # selection: words; background 7 | -selection=pink;blue;false;false 8 | +selection=;surface1;false;true 9 | current_line=;surface0;true 10 | brace_good=green;overlay1;true;true 11 | brace_bad=red;overlay1;true;true 12 | -------------------------------------------------------------------------------- /packages/hyprshellevents/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | ... 5 | }: 6 | with pkgs; 7 | let 8 | metadata = import ./metadata.nix; 9 | in 10 | stdenvNoCC.mkDerivation (final: { 11 | pname = "hyprshellevents"; 12 | version = metadata.rev; 13 | sourceRoot = "${final.src.name}/shellevents"; 14 | 15 | src = fetchFromGitHub { 16 | owner = "hyprwm"; 17 | repo = "contrib"; 18 | inherit (metadata) rev sha256; 19 | }; 20 | 21 | buildInputs = [ bash ]; 22 | makeFlags = [ "PREFIX=$(out)" ]; 23 | nativeBuildInputs = [ makeWrapper ]; 24 | postInstall = '' 25 | wrapProgram $out/bin/shellevents --prefix PATH ':' \ 26 | "${ 27 | lib.makeBinPath [ 28 | coreutils 29 | hyprland 30 | ] 31 | }" 32 | ''; 33 | 34 | meta = with lib; { 35 | mainProgram = "shellevents"; 36 | description = "Run shell scripts in response to Hyprland events"; 37 | homepage = metadata.repo; 38 | license = licenses.mit; 39 | platforms = platforms.unix; 40 | maintainers = [ "maydayv7" ]; 41 | }; 42 | }) 43 | -------------------------------------------------------------------------------- /packages/hyprshellevents/metadata.nix: -------------------------------------------------------------------------------- 1 | { 2 | repo = "https://github.com/hyprwm/contrib"; 3 | rev = "bc2ad24e0b2e66c3e164994c4897cd94a933fd10"; 4 | sha256 = "sha256-YItzk1pj8Kz+b7VlC9zN1pSZ6CuX35asYy3HuMQ3lBQ="; 5 | } 6 | -------------------------------------------------------------------------------- /packages/kebihelp/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | ... 5 | }: 6 | with pkgs; 7 | with python311Packages; 8 | let 9 | metadata = import ./metadata.nix; 10 | in 11 | buildPythonPackage rec { 12 | pname = "kebihelp"; 13 | version = metadata.rev; 14 | 15 | src = fetchFromGitHub { 16 | owner = "juienpro"; 17 | repo = pname; 18 | inherit (metadata) rev sha256; 19 | }; 20 | 21 | build-system = [ setuptools-scm ]; 22 | nativeBuildInputs = [ libsForQt5.qt5.wrapQtAppsHook ]; 23 | propagatedBuildInputs = [ 24 | prettytable 25 | pyqt5 26 | pyqt5-sip 27 | libsForQt5.qt5.qtwayland 28 | ]; 29 | 30 | format = "pyproject"; 31 | dontWrapQtApps = true; 32 | dontCheckRuntimeDeps = true; 33 | preFixup = '' 34 | makeWrapperArgs+=("''${qtWrapperArgs[@]}") 35 | ''; 36 | 37 | meta = with lib; { 38 | description = "Universal Keybinding helper written in Python and QT5"; 39 | homepage = metadata.repo; 40 | license = licenses.mit; 41 | maintainers = [ "maydayv7" ]; 42 | }; 43 | } 44 | -------------------------------------------------------------------------------- /packages/kebihelp/metadata.nix: -------------------------------------------------------------------------------- 1 | { 2 | repo = "https://github.com/juienpro/kebihelp"; 3 | release = true; 4 | rev = "v0.1.2"; 5 | sha256 = "sha256-GWsStVpUk7BCtfcRzcaSn4MNuomgrRef0XAFWnUcPAk="; 6 | } 7 | -------------------------------------------------------------------------------- /packages/kitty-search/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | ... 5 | }: 6 | with pkgs; 7 | let 8 | metadata = import ./metadata.nix; 9 | in 10 | stdenv.mkDerivation rec { 11 | pname = "kitty-kitten-search"; 12 | version = metadata.rev; 13 | 14 | src = fetchFromGitHub { 15 | owner = "trygveaa"; 16 | repo = pname; 17 | inherit (metadata) rev sha256; 18 | }; 19 | 20 | dontBuild = true; 21 | installPhase = "mkdir -p $out/ && cp -r . $out/"; 22 | 23 | meta = with lib; { 24 | description = " Kitten for searching in Kitty Terminal"; 25 | homepage = metadata.repo; 26 | license = licenses.gpl3Only; 27 | maintainers = [ "maydayv7" ]; 28 | }; 29 | } 30 | -------------------------------------------------------------------------------- /packages/kitty-search/metadata.nix: -------------------------------------------------------------------------------- 1 | { 2 | repo = "https://github.com/trygveaa/kitty-kitten-search"; 3 | branch = "master"; 4 | rev = "0760138fad617c5e4159403cbfce8421ccdfe571"; 5 | sha256 = "sha256-egisza7V5dWplRYHIYt4bEQdqXa4E7UhibyWJAup8as="; 6 | } 7 | -------------------------------------------------------------------------------- /packages/kvlibadwaita/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | lib, 3 | pkgs, 4 | ... 5 | }: 6 | with pkgs; 7 | let 8 | metadata = import ./metadata.nix; 9 | in 10 | stdenv.mkDerivation rec { 11 | pname = "KvLibadwaita"; 12 | version = metadata.rev; 13 | 14 | src = fetchFromGitHub { 15 | owner = "GabePoel"; 16 | repo = pname; 17 | inherit (metadata) rev sha256; 18 | }; 19 | 20 | dontBuild = true; 21 | installPhase = '' 22 | mkdir -p $out/share/Kvantum/ 23 | cp -r ./src/. $out/share/Kvantum/ 24 | ''; 25 | 26 | meta = with lib; { 27 | description = "Libadwaita style theme for Kvantum"; 28 | homepage = metadata.repo; 29 | license = licenses.gpl3Only; 30 | maintainers = [ "maydayv7" ]; 31 | }; 32 | } 33 | -------------------------------------------------------------------------------- /packages/kvlibadwaita/metadata.nix: -------------------------------------------------------------------------------- 1 | { 2 | repo = "https://github.com/GabePoel/KvLibadwaita"; 3 | rev = "87c1ef9f44ec48855fd09ddab041007277e30e37"; 4 | sha256 = "sha256-xBl6zmpqTAH5MIT5iNAdW6kdOcB5MY0Dtrb95hdYpwA="; 5 | } 6 | -------------------------------------------------------------------------------- /packages/overlays/chrome.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # Google Chrome Flags 3 | google-chrome = prev.google-chrome.overrideAttrs (old: { 4 | installPhase = 5 | old.installPhase 6 | + '' 7 | fix=" --enable-features=TouchpadOverscrollHistoryNavigation --gtk-version=4" 8 | substituteInPlace $out/share/applications/google-chrome.desktop \ 9 | --replace $exe "$exe$fix" 10 | ''; 11 | }); 12 | } 13 | -------------------------------------------------------------------------------- /packages/overlays/nixFlakes.nix: -------------------------------------------------------------------------------- 1 | final: prev: { 2 | # Nix Version 3 | nixFlakes = final.nixVersions.latest; 4 | } 5 | -------------------------------------------------------------------------------- /packages/patches/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/packages/patches/.keep -------------------------------------------------------------------------------- /packages/patches/391574.patch: -------------------------------------------------------------------------------- 1 | From 46edf58124f5835009c96673c7a5498fbad29c2b Mon Sep 17 00:00:00 2001 2 | From: hustlerone 3 | Date: Fri, 16 May 2025 20:31:30 +0200 4 | Subject: [PATCH] nixos,pkgs/kmscon: update package & modules to fix issues 5 | 6 | --- 7 | nixos/modules/services/ttys/kmscon.nix | 4 +++- 8 | pkgs/by-name/km/kmscon/package.nix | 6 +++--- 9 | 2 files changed, 6 insertions(+), 4 deletions(-) 10 | 11 | diff --git a/nixos/modules/services/ttys/kmscon.nix b/nixos/modules/services/ttys/kmscon.nix 12 | index 9706a384bffebd..0ca439c69ed206 100644 13 | --- a/nixos/modules/services/ttys/kmscon.nix 14 | +++ b/nixos/modules/services/ttys/kmscon.nix 15 | @@ -112,7 +112,9 @@ in 16 | serviceConfig.ExecStart = [ 17 | "" 18 | '' 19 | - ${pkgs.kmscon}/bin/kmscon "--vt=%I" ${cfg.extraOptions} --seats=seat0 --no-switchvt --configdir ${configDir} --login -- ${pkgs.shadow}/bin/login -p ${autologinArg} 20 | + ${pkgs.kmscon}/bin/kmscon "--vt=%I" ${cfg.extraOptions} ${ 21 | + lib.optionalString (!cfg.hwRender) "--no-drm" 22 | + } --seats=seat0 --no-switchvt --configdir ${configDir} --login -- ${pkgs.shadow}/bin/login -p ${autologinArg} 23 | '' 24 | ]; 25 | 26 | diff --git a/pkgs/by-name/km/kmscon/package.nix b/pkgs/by-name/km/kmscon/package.nix 27 | index b0d67da025c6d1..97a88e396b9dd7 100644 28 | --- a/pkgs/by-name/km/kmscon/package.nix 29 | +++ b/pkgs/by-name/km/kmscon/package.nix 30 | @@ -21,13 +21,13 @@ 31 | }: 32 | stdenv.mkDerivation { 33 | pname = "kmscon"; 34 | - version = "9.0.0-unstable-2025-01-09"; 35 | + version = "9.0.0-unstable-2025-05-16"; 36 | 37 | src = fetchFromGitHub { 38 | owner = "Aetf"; 39 | repo = "kmscon"; 40 | - rev = "a81941f4464e6f9cee75bfb8a1db88c253ede33d"; 41 | - sha256 = "sha256-l7Prt7CsYi4VCnp9xktvqqNT+4djSdO2GvP1JdxhNSI="; 42 | + rev = "f4d9b6bbe3e176bbaf908bf25f40335283227f99"; 43 | + sha256 = "sha256-TY2kJfUU2DGWqqcVr2l5fETw69cmxZ5sNs/GSa8IccY="; 44 | }; 45 | 46 | strictDeps = true; 47 | -------------------------------------------------------------------------------- /packages/update.sh: -------------------------------------------------------------------------------- 1 | ../scripts/packages.sh -------------------------------------------------------------------------------- /packages/wine/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/packages/wine/.keep -------------------------------------------------------------------------------- /scripts/audio.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env nix 2 | #! nix shell nixpkgs#bash nixpkgs#glib nixpkgs#playerctl -c bash 3 | 4 | # Audio Tweaks # 5 | 6 | # Pause playback on Screen Lock 7 | gdbus monitor -y -d org.freedesktop.login1 | grep LockedHint --line-buffered | 8 | while read -r line 9 | do 10 | case "$line" in 11 | *""*) 12 | if playerctl status | grep Playing 13 | then 14 | PLAY=true 15 | else 16 | PLAY=false 17 | fi 18 | playerctl pause -a 19 | ;; 20 | *""*) 21 | if $PLAY 22 | then 23 | playerctl play-pause 24 | fi 25 | ;; 26 | esac 27 | done 28 | exit 29 | -------------------------------------------------------------------------------- /scripts/colors.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env nix 2 | #! nix shell nixpkgs#bash -c bash 3 | 4 | # Print Color Map # 5 | 6 | for i in {0..255} 7 | do 8 | print -Pn "%K{$i} %k%F{$i}${(l:3::0:)i}%f " ${${(M)$((i%6)):#3}:+$'\n'} 9 | done 10 | -------------------------------------------------------------------------------- /scripts/commands.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env nix 2 | #! nix shell nixpkgs#bash nixpkgs#bzip2 nixpkgs#coreutils nixpkgs#git nixpkgs#gnupg nixpkgs#gnutar nixpkgs#gzip nixpkgs#p7zip nixpkgs#unzip -c bash 3 | 4 | # Useful Commands # 5 | 6 | temp(){ 7 | TEMP=/tmp/"$1" 8 | if ! [ "$2" -eq 1 ]; then rm -rf "$TEMP"; fi 9 | mkdir -p "$TEMP" 10 | } 11 | 12 | extract() { 13 | if [ -f "$1" ] 14 | then 15 | case $1 in 16 | *.tar.bz2) tar xvjf "$1";; 17 | *.tar.gz) tar xvzf "$1";; 18 | *.tar.xz) tar Jxvf "$1";; 19 | *.bz2) bunzip2 "$1";; 20 | *.rar) rar x "$1";; 21 | *.gz) gunzip "$1";; 22 | *.tar) tar xvf "$1";; 23 | *.tbz2) tar xvjf "$1";; 24 | *.tgz) tar xvzf "$1";; 25 | *.zip) unzip -d "${1//\.zip/}" "$1";; 26 | *.Z) uncompress "$1";; 27 | *.7z) 7z x "$1";; 28 | *) error "Can't Extract '$1'" ;; 29 | esac 30 | else 31 | error "File '$1' is invalid" 32 | fi 33 | } 34 | 35 | up() { 36 | LIMIT=$1 37 | P=$PWD/.. 38 | for ((i=1; i < LIMIT; i++)) 39 | do 40 | P=$P/.. 41 | done 42 | cd "$P" || exit 43 | } 44 | 45 | internet() { 46 | if ! nc -zw1 google.com 443 2> /dev/null 47 | then 48 | error "You are Offline, Please Connect to the Internet" 49 | fi 50 | } 51 | 52 | restart() { 53 | read -rp "Do you want to Reboot the System? (Y/N): " choice 54 | case $choice in 55 | [Yy]*) reboot;; 56 | *) exit;; 57 | esac 58 | } 59 | 60 | # Print 61 | 62 | newline() { 63 | echo -e "\n"; 64 | } 65 | 66 | error() { 67 | echo -e "\n\033[0;31merror:\033[0m $1" 68 | if [ -n "$2" ] 69 | then 70 | echo -e "\n$2" 71 | fi 72 | exit 7 73 | } 74 | 75 | info() { 76 | echo -e "\n\033[0;35minfo:\033[0m $1" 77 | if [ -n "$2" ] 78 | then 79 | echo -e "\n$2" 80 | fi 81 | } 82 | 83 | warn() { 84 | echo -e "\n\033[0;35mwarning:\033[0m $1" 85 | if [ -n "$2" ] 86 | then 87 | echo -e "\n$2" 88 | fi 89 | } 90 | -------------------------------------------------------------------------------- /scripts/mail.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env nix 2 | #! nix shell nixpkgs#bash nixpkgs#coreutils nixpkgs#gnused nixpkgs#libpst -c bash 3 | 4 | # Script to convert '.pst' Files to '.mbox' # 5 | 6 | MAIL=./convert-$(date '+%H-%M_%d-%m-%y') 7 | 8 | # File Conversion 9 | read -rp "Enter Path to '.pst' File: " DIR 10 | echo "Converting '.pst' to '.mbox'" 11 | mkdir "$MAIL" && readpst -o "$MAIL" -r "$DIR" 12 | find "$MAIL" -type d -mindepth 1 | tac | xargs -d '\n' -I{} mv {} {}.sbd 13 | find "$MAIL" -name mbox -type f | xargs -d '\n' -I{} echo '"{}" "{}"' | sed -e 's/\.sbd\/mbox"$/"/' | xargs -L 1 mv 14 | find "$MAIL" -empty -type d | xargs -d '\n' rmdir 15 | find "$MAIL" -type d | grep -E '.sbd' | sed 's/.\{4\}$//' | xargs -d '\n' touch 16 | echo "Conversion Complete, Files are Present in $MAIL" 17 | 18 | # Mail Import 19 | import() { 20 | read -rp "Enter Name of Thunderbird Profile: " PROFILE 21 | cp -r "$MAIL"/. "$HOME/.thunderbird/$PROFILE/Mail/Local Folders/Converted/" && echo "Successfully Imported" 22 | } 23 | 24 | read -rp "Do you want to Import the Mails into Thunderbird? (Y/N): " choice 25 | case $choice in 26 | [Yy]*) import; rm -rf "$MAIL";; 27 | *) rm -rf "$MAIL"; exit;; 28 | esac 29 | -------------------------------------------------------------------------------- /scripts/pci.sh: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env nix 2 | #! nix shell nixpkgs#bash nixpkgs#coreutils -c bash 3 | 4 | # Shows PCI Devices mapped to IOMMU Groups # 5 | 6 | for group in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V) 7 | do 8 | echo "IOMMU Group ""${group##*/}"":" 9 | for device in "$group"/devices/* 10 | do 11 | echo -e "\t$(lspci -nns "${device##*/}")" 12 | done 13 | done 14 | -------------------------------------------------------------------------------- /secrets/README.md: -------------------------------------------------------------------------------- 1 | ### Credentials 2 | 3 | The authentication credentials are managed using [`sops-nix`](https://github.com/Mic92/sops-nix) at `secrets`. The [`sops`](https://github.com/mozilla/sops) encrypted secrets (using GPG authentication) are stored at multiple places, like in this directory, as well as [`users/passwords`](../users/passwords). User passwords are made using the command `mkpasswd -m sha-512` and specified using the `hashedPasswordFile` option. The `sops` encrypted secrets are of `binary` format (and have the extension `.secret`) and can be conveniently managed using the [`nixos`](../scripts/README.md) `secret` command. The `keys` directory contains the _public_ User GPG Keys which are automatically imported 4 | 5 | To create a secret, use the `nixos secret create` command, and append the directory along with requisite access permissions to the `secrets.yaml` file. Device-specific secrets are automatically imported, if a directory (with the same name as the device `HOSTNAME`) containing them is present in this directory 6 | -------------------------------------------------------------------------------- /secrets/cachix-token.secret: -------------------------------------------------------------------------------- 1 | { 2 | "data": "ENC[AES256_GCM,data:sG1HCFqWNeVldAp0bkkLF1ReICJMXmcYTgTDg8chMk/oPNqc3PIswPxs18qSP7TKPKi6rR/yxjIsDqgBn119L+XarMud7iEkUlGMKtzIce/ccbUxvXPfKs2MtFpCtL2uRIbEo8sPKKqm+qRltwTjUIHQAiqYvaGzdcOhtr0Sa7MFG8KdZXPoeaPxYFYqP4vh2xzJUkM=,iv:shIM/+gb0u6mM7bUAGwQaXtAc/O6LDbdyM7WD9Ncu2g=,tag:8SMiXWOtyUbdYVe2xfUirw==,type:str]", 3 | "sops": { 4 | "kms": null, 5 | "gcp_kms": null, 6 | "azure_kv": null, 7 | "hc_vault": null, 8 | "age": null, 9 | "lastmodified": "2024-05-19T08:55:36Z", 10 | "mac": "ENC[AES256_GCM,data:3dsu3tGof1V9YFqIhUbDcZ2EM5wwzyPjtBSnmCgB05VaCqYd/w0vCF9+4Vf6m1FWo/XW5tdFqewuW1by7cqUP7VmcktZKsA0H2LgXGKLaw9+PT+ASzWIwXkpGp7LcGkn4Yd7HaFeg8j5ilNvIlCuujuNZCxerGz8G6PjYfoElBs=,iv:dF51sNyjits5sF19EAJJSkHVntJhgNDryJg0cjaP4s8=,tag:SzfP6uhKBkruwaaaMX6sCg==,type:str]", 11 | "pgp": [ 12 | { 13 | "created_at": "2021-12-01T07:02:42Z", 14 | "enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMA5HNgftiFxX/AQ//XK4htI0CoiNwR3YYovs9vut7oW6izsN2dTqnVWZSV0uY\nhi6BVDd5gJTa4jo6Oo6JrN0CgDPqxAim2pd2Hh+x81vbMYeptk2O4rfkqVZcU3js\nH8GhBy5qR9JQK9K70v/61hzQHeVcGyGsZhkLh7ptXVeLWHLQ2XUBDlcy/mANK7wt\nSskrIHegvLQgV0+fPu0onOMylQ4jvzMj8OVDU559cMBnUSltVpEV/j0d84+wr1fN\nHOnAqzxEjgV15dR9+DwIVJi06yOPms5kSCM4hs+qyvVNZ7e4tkzedtWqjd2sHOtG\nB0nJ0IHkPCiN/Fga9soHBrEH9L7sBR9vY+/FJghRpyRr5dWlsFPXq6hLf0p9oja/\nfeseWq2EfpRctCqK9CURNyVj56PzA+vRJSt+ugKslurlXry5svRW5p7rZDTfA2VN\npNFxCBGTctUBvj0MzGUXJEfpGXDqfhY61F4KbTC8VD5ZTXM+mMhtAXcuZgu0wRjx\nlfdAhNIYRvX6sHsPjFJSI8NUT6N8IYHb+iZi9KQf0Pb0cVlDkgOQb0drTJ3jdSOX\nTZsh/+tc4flKY7IGI44oK/SB1lY8u+ZV2S/nQvbUwNsA+afX99qkvnwbU4mjAmUD\n51kH6UGjDbX42VShqF03njwX0Bi2jJdc6Tmk9S/gZ2wn7BJzoM1PEBivpFZh+3zS\nXgFc0/FMFn27cSNf1bH9E2CYywwYA0Cc7/jT3S5kOAiGPoNhMu6IBYGtOxuYTzhl\n7Q8JxLfjgMmX3A2k4TkGWWNrYWdChdDrplvX1dFrGAFljhiPPFlItNWWGTMpnmA=\n=Qclf\n-----END PGP MESSAGE-----\n", 15 | "fp": "8C240C0C11293EE56260601CCF616EB19C2765E4" 16 | } 17 | ], 18 | "unencrypted_suffix": "_unencrypted", 19 | "version": "3.8.1" 20 | } 21 | } -------------------------------------------------------------------------------- /secrets/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | util, 4 | inputs, 5 | pkgs, 6 | files, 7 | ... 8 | }: 9 | let 10 | path = files.path.gpg; 11 | in 12 | { 13 | imports = [ inputs.sops.nixosModules.sops ]; 14 | 15 | ## Authentication Credentials Management ## 16 | config = { 17 | environment = { 18 | persist.directories = [ path ]; 19 | systemPackages = [ pkgs.sops ]; 20 | }; 21 | 22 | sops = { 23 | # GPG Key Import 24 | gnupg.home = path; 25 | 26 | # Encrypted Secrets 27 | secrets = 28 | let 29 | directory = ./. + "/${config.networking.hostName}"; 30 | in 31 | util.map.secrets { directory = ./.; } 32 | // (if (builtins.pathExists directory) then util.map.secrets { inherit directory; } else { }); 33 | }; 34 | }; 35 | } 36 | -------------------------------------------------------------------------------- /secrets/github-token.secret: -------------------------------------------------------------------------------- 1 | { 2 | "data": "ENC[AES256_GCM,data:A5a4CSK+83lmbqPWygu+gsPFBLLAy8yTxHoBIyKN7ulGl+WLwWLiQA==,iv:QLs0uE6eFZ9F8nwylhZOB0uwH0GTOxt5vRWtkv5w2sE=,tag:8oedSubKoHmDiv2qrgOInw==,type:str]", 3 | "sops": { 4 | "kms": null, 5 | "gcp_kms": null, 6 | "azure_kv": null, 7 | "hc_vault": null, 8 | "age": null, 9 | "lastmodified": "2022-01-12T09:47:31Z", 10 | "mac": "ENC[AES256_GCM,data:r6jdmReGxXpAS8C2k/jCAsLDHu/NQwVAJ8OannMQeYl3LMrhLZIjzK0GhP/5pzG6boIDL/J/i3ixPGX/cQO8hmlL+uXP3Y+kQqVIPu0NXTcl9QG3/ReS0GY3IBmbXUw94eNzrsW33taqyuzA2mt/EMWxDXIzY1Q2QdndWmPRmCc=,iv:9OCVHvCimlrpwntVq1Xqkf+uxxqw31iBwLRX3BEEXE8=,tag:rRLC4X+SgWM3mNuheuuaWQ==,type:str]", 11 | "pgp": [ 12 | { 13 | "created_at": "2022-01-12T09:46:59Z", 14 | "enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMA5HNgftiFxX/ARAAtu1veuPBSN5s2Fu8gCpVYDaXtoXJ3so7lVTBDJ0dSJbW\nu8u5hqKDhbsgZvAYyVY6KI3Pzc7YSS/qF192C4Wd8gpSsuw0vTm6B9sYsrHCGQus\nDwoDsYpxtxIivKDsSFAjg2xXgN92UGBZjuaRXLN+3nt9cg3QeAuP86bGHpxnS3tk\nbD6rnsrx3XfvhWZOqhRY8ZDwYW844ZrvBDAq4oJIaxMt5g23GnDN9ObsiWOl09u1\n4Hkq7ZfAvf8fvWU3rAoInuP8oj9zr6PT3PMZAs3mG+xBstGdDaqsaaSPmpd4P73p\nv0HUIfnnVG9SkqdpeVK/ZXmHilBWJFYtVzetbeaAko2Op/H4BCY/e6SPj0wrz5sn\ntwmnpAJFev5zhPZ4VexErQkN1CbALPJITG/CowRP+/p4ED2Mcn2xPtaHTAXtWNlc\n7Ew/Yuy8DsXJgYu1jYbxxb12k4I+WM9PvHN7R1V3qLKy/fhyhAZURYkDJWP1BWyl\niB4R+0HnnwREQw9WlhiSzDIc2gYdTC6MGi5RPe0TYMADN00S5pqciQBWasGAYgaQ\nX1oc2I4N54/Te1jdfJpps8hCe3OrHTw11x//VDILjAgTmJK+5KD3fjt0Fw6eNDD3\nEs+OuoSD0GIB5wjKphz7dj9W0htpFgD4A3T6wBGZyp1JQFszt5bQIA+uPSmgjqvS\nXgE9RPpsehmkqor3U9bzKVy06r05oz6pPHR2FBPvy1mvvbKLm8ri8QFq8B65Drxv\nQOG0Vzw89zR4AECl3zW/HMXhUt2RUvkEvVq83AW/XonZf4x3Um0mp39qWjJGM5o=\n=OL8H\n-----END PGP MESSAGE-----\n", 15 | "fp": "8C240C0C11293EE56260601CCF616EB19C2765E4" 16 | } 17 | ], 18 | "unencrypted_suffix": "_unencrypted", 19 | "version": "3.7.1" 20 | } 21 | } -------------------------------------------------------------------------------- /secrets/gitlab-token.secret: -------------------------------------------------------------------------------- 1 | { 2 | "data": "ENC[AES256_GCM,data:IgdZH4jFG6j6ZUllYn1C+HWhbz2c7jMunwU=,iv:PApvcmkn+vIB2/5iCmCgAbyBISrVV9Q+38CfUfafgic=,tag:dqsVBSqonjm0D8QmdVJ1AA==,type:str]", 3 | "sops": { 4 | "kms": null, 5 | "gcp_kms": null, 6 | "azure_kv": null, 7 | "hc_vault": null, 8 | "age": null, 9 | "lastmodified": "2021-12-18T08:47:47Z", 10 | "mac": "ENC[AES256_GCM,data:UCvZamMX8KrsPuRpmhjLcReIooA5be8MDIJWPspz/54fcRPrRmvwxMKAsHm637jcLbM7Js8m0/xKO+i8j4EEmSiexUrk9/zn+TGRWGpeGDZPy07NzZa1SqL2sxhbz54U/lyJhO9uPHkjMEYkdfiSF2rnNwAaZdW5AH+8eNYsg9w=,iv:7fQwtybtXhoiMDPey4i7R+renF/4/cIWV7+XqZImMKg=,tag:XWgx1EKn2YAm+MsOpI0Bmw==,type:str]", 11 | "pgp": [ 12 | { 13 | "created_at": "2021-12-18T08:47:34Z", 14 | "enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMA5HNgftiFxX/ARAAjC4nB+gg5HBh5dA76hEI+PpmeHMPH2OJIG302UlWCQOi\n4ZQaK84HsXLHN5UWLc/g5QcGmyJBHvvvq9JP6uoYYzBKIfGANpbwFzGWAipW0yl5\nls/HjPg0IWOsO6lC4e7YwhyCszuO6ndcOmAQvFJLvjyVl+/2UcXQHTO9+yLrlbpv\nZngD/FWawEcR1Cyjn9r0sT7skBrxbTBnlI/DTHreNMV7AQy0NvQc/7FrLJTNM/fE\nHHmlHRXbyEfVae4YWzzW0RDFo0jw3yiVG1eWwx5cxLVHuwDWb53Cf/dpPRNQNQsq\nY3OntNUhahZpE199+8YgJpHCgjjVLpReCJP8xMTW7Otd/DlpbQUcicZ3T/yNKzwY\noRSgNMlVMsEh9vKeXqcHxJC4OtJmrVvAL3aCU3a0nFMt/Ho7OlkxMnTqBT0U58Xm\nCXZ8MDIQUi+i5tQD6A9/EOoV1a821z9wXP8DZSb6m188ti1XxtQV2raM58urWX3h\nUKirg5+sobIboafgmI57EY9lkmTJg30BJZDHPG6w8vKuCqrNfm4W9xVAPN87M1S4\n9MFoqfTt9/h6nAcu0RVtNlkbeg6tIvNcVrKUghO+7w7n3VPE6tCiyzZ0q64v2j1+\nv0AR7QQYZ5p0nlAYTBp047GsaYV86o1cnSwbV/5P5WYLiqzpQa1QW/EHucnxLW/S\nXgG6IgIeeuvqG8FUcheJ7KE6EnSioSIz/kIy7of8FE6olVlb0oRclg07caYv/DeI\nI1TcTs1Qh9mkReksSpY7Iul5bt5oE41rjGKr1IxVy1RzCeKJyvxEsMV0nBTZ9NI=\n=hlLp\n-----END PGP MESSAGE-----\n", 15 | "fp": "8C240C0C11293EE56260601CCF616EB19C2765E4" 16 | } 17 | ], 18 | "unencrypted_suffix": "_unencrypted", 19 | "version": "3.7.1" 20 | } 21 | } -------------------------------------------------------------------------------- /secrets/keys/.gitattributes: -------------------------------------------------------------------------------- 1 | *.gpg binary -------------------------------------------------------------------------------- /secrets/secrets.yaml: -------------------------------------------------------------------------------- 1 | keys: 2 | - &v7 8C240C0C11293EE56260601CCF616EB19C2765E4 3 | - &navya B141E0D9F711DD86DEAE1269D9B023AB01B68EFE 4 | creation_rules: 5 | - path_regex: secrets/.*$ 6 | key_groups: 7 | - pgp: 8 | - *v7 9 | - path_regex: users/passwords/.*$ 10 | key_groups: 11 | - pgp: 12 | - *v7 13 | - *navya 14 | -------------------------------------------------------------------------------- /secrets/vortex/cloudflare.secret: -------------------------------------------------------------------------------- 1 | { 2 | "data": "ENC[AES256_GCM,data:Lh7MM8/KHG2AyI+lFd28K/e7pdMWmxfgpxyn22fihOhCXqR8Yysp12WQnRwvWjRr3PvCTgkJKtG8cCXnfngZU+0=,iv:0QwPMqaoHuTZZ3PisXGDKoXgI/M8hXGihWjPSQqGP3E=,tag:ZXqkpJLQKZ+Bm7H/bDX6hw==,type:str]", 3 | "sops": { 4 | "kms": null, 5 | "gcp_kms": null, 6 | "azure_kv": null, 7 | "hc_vault": null, 8 | "age": null, 9 | "lastmodified": "2022-02-28T12:31:31Z", 10 | "mac": "ENC[AES256_GCM,data:bRoC+A8or05GtG22wSet1vdedKfdavnZqna57u46cb0TuVzooxZR6c7v+wjb3sMcnZLEABKg1dA2oX+vIBzuAlFrtdUDiHWfXrhMTYGf7qoeKORRF5ETLC/FDCIPbSJeUVkKan0DKQyqg5lXMyh19f20iH04uNHH9jF4yvDhnIs=,iv:Cp5FoBm4F0uK1caSF2k/VRZRzsIiRtYaXj6p/zJ+mco=,tag:lKE6WoLFeeWxX4DNNe1LZw==,type:str]", 11 | "pgp": [ 12 | { 13 | "created_at": "2022-02-28T12:30:04Z", 14 | "enc": "-----BEGIN PGP MESSAGE-----\n\nwcFMA5HNgftiFxX/ARAAfedX9tZ4Y3uWyFC0DWCPfzcd4KIEvUE1JBYPPGKg40s4\nxWdXPRdRbtSmoNg+OAkfSg4LjGKHJBoG59fbQoZulkTSA987hHAMivmXDoQ+6K4z\nuU9X+5d5MBc8mHqLJWHbvXhjPzbPfWyKN5DZdqoAgC5KxQx6SJNtRYALEP+YhIAa\naAHbhmUt55/6NSY2XUaUz54D45ZNW2KWZ8EMtxLthNEtmmWMi+wy4xbDyag6NvJP\njBZxEXXpn7mY6Ha9ehiqCKF8+HPFFpdh+qITehuXrpEyxv0xT3zs6NZEAHCzY7fn\ngcRGGRPaBZdbiDIZ6XDsRMjMppK+yoGj9mNzugMp/gkmuvmQGK1GZPLiaewP3tz/\n3tvX6ghWTrFMi4xvz96ZpP9HxTaOD5LYMqvAftJ3gelh0BFL1U9s0CXeecT50r2c\nFuK5yd6FW2edtaVcSaE9VQ2H1XAyiY7PkKbYbMvSVJlYgrDyOK1s1s6ATQFB6KO5\nFzhu+PLRKvwLJzBYTRrwCUuMUFxObJT4fdy1J21l9J99F76leZgtBdaDyFGBOhW1\nRu/sTbGfnz7A70NP+gWOlVRKnmJt3O8f5BlaCnmtVvEPbHVSugYbR//uEYJgEX01\nHU8BloLVdIDLxFQAilC7JZrq805lGfTy1plKq69XaR8+vJoefS0wAD0rpf4/Uh7S\n5gFdmiqL5+yiQg3ph7dxIKZnsEEjR71fb+5tCdDouiFrAbtIJHnrFqY+dxOxyDQv\nSolhPwTuE4Y/IXDFqpQDZNvkz0GnNCDV/yyXuApaE6iJ+uLobOELAA==\n=Iw6T\n-----END PGP MESSAGE-----", 15 | "fp": "8C240C0C11293EE56260601CCF616EB19C2765E4" 16 | } 17 | ], 18 | "unencrypted_suffix": "_unencrypted", 19 | "version": "3.7.1" 20 | } 21 | } -------------------------------------------------------------------------------- /secrets/vortex/github-runner.secret: -------------------------------------------------------------------------------- 1 | { 2 | "data": "ENC[AES256_GCM,data:l0eNGvQEDkX11cCzqO/imP2XfNYY/TvUsGgeUoE=,iv:uOYAaAENczmSWhvworT4G+8Gehst9Qlxsd7yUNHCyi0=,tag:B2yd/K1AmjN0hrSp0gXKZw==,type:str]", 3 | "sops": { 4 | "kms": null, 5 | "gcp_kms": null, 6 | "azure_kv": null, 7 | "hc_vault": null, 8 | "age": null, 9 | "lastmodified": "2022-01-13T09:27:23Z", 10 | "mac": "ENC[AES256_GCM,data:QwAVT6jHmAiEAu2GnouB5aBXH5BWS11alDio++02vw4WEj8V5nh0eMjb75QeePMZJplWx65UlVxzEW/gy46Zv/u1OwK9NksYM3BfE/9VyELfsRzkRuSf2V11nNNxgyZkf1pW6KbqrUGoTSFqqbxCyCT9J4pJMNWIiNNpWzVyaGk=,iv:2xDNRjQQARFDnc1R9DUe+rA3tpJLOrmDLYiahWlrNQg=,tag:iqV4ltWWZmi+Y05DbMtIiw==,type:str]", 11 | "pgp": [ 12 | { 13 | "created_at": "2022-01-13T09:27:16Z", 14 | "enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMA5HNgftiFxX/AQ/+MBFKxfHeYRqzCA6t91V1X2uFSPN0kHj6fBJKpn4vvBp3\n4fTHq1JyHVFcZ2mGZFQn3Wz3eSiM+rek18LfkP/97PiW9EGDQC0VufaKHZWsWr0B\n8h3UKyUhLVammaURO77CX296Yw28qyUBinVOXt4vc/C78a+nuIT9580YoI/tAyXf\nToVaq/6umb+xn9SiZ5p5mKwquIFSHIBL635Y0cHjTnZoe3QP3MKoVlsmp9PPhN5w\n6OY+kW4g8VbANdxx21Ov9VD4oz6PezJPdqjOGmSiK5tv25JFBTlZvop4iTYL0VVZ\nP2kR18qdEIKrm9ucAyts5ClW8idZYlLEvDz98dWSQIJSZ6X2cB0C/MbgJyHxHruv\nv6dnuDMPeCfcIi8yslWHJovs8Aq6iEQNtbnYCvkLX6Tb4dI0yEOcEH+nPlzrGpeY\ns0pQnLxpvjmBj024oDPk8Tl/vyg6XvbUm60MbY/i772uilB0VReFY970KMurhr4b\n3QBGEGS2VDMbWVZ59lq91Kd2n0A6sYAI6Bmd98m7vcPDK5/vDHpwbV58BKtqK8d+\nMLXdSbp60q1sJJgtwM6yT1f7TOt4pMnWM05SIp0XqYhPh3xosnDplk69+RHJgXT0\ns00x0TJ4bauyi30lixcVs0XNJoSzDsNtLL0FMWdddyftGxrTJ1MJcU8HwP6UKFrS\nXgFDcsCgDEwljdaWJnMq0b+tEtFpwtl7US8Ebf6DcABm0Dc9Dezd3NMBQwt8M/Cq\nAaSsc9A7wQXdSszkYcRRnz4LHP47mIVog/5MB+RhS+aOEEuh9HCB+m7UfRgSWr0=\n=VQsH\n-----END PGP MESSAGE-----\n", 15 | "fp": "8C240C0C11293EE56260601CCF616EB19C2765E4" 16 | } 17 | ], 18 | "unencrypted_suffix": "_unencrypted", 19 | "version": "3.7.1" 20 | } 21 | } -------------------------------------------------------------------------------- /secrets/vortex/gitlab-runner.secret: -------------------------------------------------------------------------------- 1 | { 2 | "data": "ENC[AES256_GCM,data:wLxXizOiMagSs/DFYYsBLn0aIVu4QbA7hgv7oscYykM5uhr86DiWR5TYNPmebIMvl3n76uoAoBrkxDtWEhgxc9GtZ0x7cQ==,iv:jf6RlJHfTLQ9Hy1CRDR9oGmDYEBb/lvA+uu1NW4l/ec=,tag:palTrI4jk+4phzHEt1jLsQ==,type:str]", 3 | "sops": { 4 | "kms": null, 5 | "gcp_kms": null, 6 | "azure_kv": null, 7 | "hc_vault": null, 8 | "age": null, 9 | "lastmodified": "2024-11-20T17:53:36Z", 10 | "mac": "ENC[AES256_GCM,data:HLVKb/6r1ZINxy2yZt5uo3VXhB3QumBP9egoDPIcaBsmrF7AdWltRRzWE6W7zSjok5suGZ9RVS9GiSLl9IQJQlNsTdVO1739Fmn9DEj5h+LDwGISM0LysLQPGBxpjsB+JZ1+FnSGamUTO+xDyuSt1Ubl5rLV59fMS1JxJ2buqLA=,iv:xMDBfzEJvxWItvx3pL7ZtQrW0j85s7AYMCEVr4gcxFE=,tag:gYr5LOppdQDd6AK9poiHfQ==,type:str]", 11 | "pgp": [ 12 | { 13 | "created_at": "2021-12-19T10:16:57Z", 14 | "enc": "-----BEGIN PGP MESSAGE-----\n\nhQIMA5HNgftiFxX/ARAAguptlOs8GFy6DIBpH/67DkeTmYIDNbBe/MPa845FkrWY\nnY6RsVv0GJtSSg3ssvO+5p0rpRI017gSdhYozu+Pi3f3hmjUexT33YahXDpMa4VZ\nUxUnTjczbQQd0nq/Y/rFpjDDuno32175j+CCWipIQ+Jrjk8XuQCNgL08a+jhD1ml\nT9pRh3YPbNSJEQKsCMKK06iA3wApu226wX5L6XlOUmOpF0aTT0Vq5nz44e/XZYcJ\nW2VaKZnKqNgF2eyfS1FVSIT53FuRhfYAqUw96UL1k9R9ZNSeiOXTz2i8/zzOSgiv\n7v85lU/gLt0gVt0YqC8lEQ/Ys5NuNweBa5ihWfP/0gIyPy9hjx0qmCe5BYX1MYeu\nBBrFLjgHIsvdnq4LHi9igsuSCZ+fOowly8w1UgvbrVxbwrxkbbT0mrbzg3JJ5JiQ\nxMregxNbUBnF1+7HI/FHxhEihsAj4DvYoiW2YlqKuKFuO1edQX2nkjtdjyzL8qYA\nPQCjDpHV1HwdZsgkuKC/gV+i8xmDnMLaWABZ420qj7exglkQ5oxOuFPNYotEPaAN\nHnQNatsgOXg7OCGjaagP6kygY2sY86gB900zDyEDIFPLD5CR5jDq8OKnnGScpw/a\nOzDzQWKwD9xRtded5yDwtBpwsCfNhwHZ9ru9BZf9wPwrGPEhP/r80K3PNTHjAvHS\nXgF1Noeh+6Z9ttkFvVPHxcXpwoUd/BvdQ3z7NuVL4L8aeY4N6XX95pME+gkDmJ0F\nVs9+IcHFv9XkKjeGGMz/VpWPCfQrktpZWafIMUvW8407roHJzQhhdbm9dkirY6g=\n=NNyy\n-----END PGP MESSAGE-----\n", 15 | "fp": "8C240C0C11293EE56260601CCF616EB19C2765E4" 16 | } 17 | ], 18 | "unencrypted_suffix": "_unencrypted", 19 | "version": "3.8.1" 20 | } 21 | } -------------------------------------------------------------------------------- /shells/.envrc: -------------------------------------------------------------------------------- 1 | eval "$(lorri direnv --shell-file default.nix)" 2 | -------------------------------------------------------------------------------- /shells/cc.nix: -------------------------------------------------------------------------------- 1 | pkgs: { 2 | name = "C"; 3 | shellHook = ''echo "## C/C++ Development Shell ##"''; 4 | LIBCLANG_PATH = "${pkgs.libclang}/lib"; 5 | packages = with pkgs; [ 6 | clang 7 | cmake 8 | gcc 9 | gdb 10 | libcxx 11 | ]; 12 | } 13 | -------------------------------------------------------------------------------- /shells/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs ? import ../packages, 3 | ... 4 | }: 5 | with pkgs; 6 | mkShell { 7 | name = "devShell"; 8 | packages = 9 | [ 10 | git 11 | gnupg 12 | jq 13 | nixFlakes 14 | sops 15 | treefmt 16 | ] 17 | ++ [ 18 | figlet 19 | fastfetch 20 | ]; 21 | 22 | shellHook = '' 23 | echo -e "\e[36m## Default Developer Shell ##" 24 | echo -e "\e[34m Version: $(nix --version)" 25 | ''; 26 | } 27 | -------------------------------------------------------------------------------- /shells/flake.nix: -------------------------------------------------------------------------------- 1 | { util, ... }: 2 | { 3 | ## Developer Shells ## 4 | perSystem = 5 | { pkgs, ... }: 6 | { 7 | devShells = util.map.modules ./. (file: pkgs.mkShell (import file pkgs)) // { 8 | default = import ./. { inherit pkgs; }; 9 | }; 10 | }; 11 | } 12 | -------------------------------------------------------------------------------- /shells/java.nix: -------------------------------------------------------------------------------- 1 | pkgs: { 2 | name = "Java"; 3 | shellHook = ''echo "## Java Development Shell ##"''; 4 | packages = [ pkgs.jdk ]; 5 | JAVA_HOME = pkgs.jdk; 6 | } 7 | -------------------------------------------------------------------------------- /shells/js.nix: -------------------------------------------------------------------------------- 1 | pkgs: { 2 | name = "JS"; 3 | shellHook = ''echo "## JavaScript Development Shell ##"''; 4 | packages = with pkgs; [ 5 | nodejs 6 | eslint 7 | 8 | nodemon 9 | postman 10 | ]; 11 | } 12 | -------------------------------------------------------------------------------- /shells/lua.nix: -------------------------------------------------------------------------------- 1 | pkgs: { 2 | name = "Lua"; 3 | shellHook = ''echo "## Lua Development Shell ##"''; 4 | packages = with pkgs; [ 5 | lua 6 | luaPackages.moonscript 7 | ]; 8 | } 9 | -------------------------------------------------------------------------------- /shells/python.nix: -------------------------------------------------------------------------------- 1 | pkgs: { 2 | name = "Python"; 3 | shellHook = ''echo "## Python Development Shell ##"''; 4 | packages = [ 5 | pkgs.python3 6 | (pkgs.python3.withPackages ( 7 | p: with p; [ 8 | pip 9 | poetry-core 10 | setuptools 11 | 12 | black 13 | pylint 14 | 15 | ipython 16 | matplotlib 17 | numpy 18 | pandas 19 | ] 20 | )) 21 | ]; 22 | } 23 | -------------------------------------------------------------------------------- /shells/rust.nix: -------------------------------------------------------------------------------- 1 | pkgs: { 2 | name = "Rust"; 3 | shellHook = ''echo "## Rust Development Shell ##"''; 4 | packages = with pkgs; [ 5 | cargo 6 | rustup 7 | ]; 8 | RUST_BACKTRACE = 1; 9 | } 10 | -------------------------------------------------------------------------------- /shells/sql.nix: -------------------------------------------------------------------------------- 1 | pkgs: 2 | let 3 | pkg = pkgs.mariadb; 4 | in 5 | { 6 | name = "SQL"; 7 | buildInputs = [ pkg ]; 8 | shellHook = '' 9 | alias mysql='mysql -u root' 10 | MYSQL_HOME=$HOME/.mysql 11 | MYSQL_DATADIR=$MYSQL_HOME/data 12 | export MYSQL_UNIX_PORT=$MYSQL_HOME/mysql.sock 13 | MYSQL_PID_FILE=$MYSQL_HOME/mysql.pid 14 | 15 | if [ ! -d "$MYSQL_HOME" ] 16 | then 17 | # Make sure to use normal authentication method 18 | # otherwise we can only connect with unix account 19 | # but users do not actually exist in NixOS 20 | mysql_install_db --auth-root-authentication-method=normal \ 21 | --datadir=$MYSQL_DATADIR --basedir=${pkg} \ 22 | --pid-file=$MYSQL_PID_FILE 23 | fi 24 | 25 | # Starts the daemon 26 | mysqld --datadir=$MYSQL_DATADIR --pid-file=$MYSQL_PID_FILE \ 27 | --socket=$MYSQL_UNIX_PORT 2> $MYSQL_HOME/mysql.log & 28 | MYSQL_PID=$! 29 | 30 | finish() { 31 | mysqladmin -u root --socket=$MYSQL_UNIX_PORT shutdown 32 | kill $MYSQL_PID 33 | wait $MYSQL_PID 34 | } 35 | trap finish EXIT 36 | ''; 37 | } 38 | -------------------------------------------------------------------------------- /shells/video.nix: -------------------------------------------------------------------------------- 1 | pkgs: { 2 | name = "Video"; 3 | shellHook = ''echo "## Video Editing Shell ##"''; 4 | packages = with pkgs; [ 5 | audacity 6 | blender 7 | ffmpeg 8 | handbrake 9 | mpv 10 | obs-studio 11 | yt-dlp 12 | ]; 13 | } 14 | -------------------------------------------------------------------------------- /site/.envrc: -------------------------------------------------------------------------------- 1 | eval "$(lorri direnv)" 2 | -------------------------------------------------------------------------------- /site/.gitignore: -------------------------------------------------------------------------------- 1 | public 2 | static/processed_images 3 | -------------------------------------------------------------------------------- /site/content/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Welcome to My Website!" 3 | insert_anchor_links = "right" 4 | +++ 5 | 6 | # What is it? 7 | 8 | My goal was to have a site where I could showcase anything I wanted to. 9 | Use the menu up top to navigate to different sections of my website. 10 | 11 | To know what I’m currently up to, check out **{{ url(path="/now", text="/now") }}** 12 | -------------------------------------------------------------------------------- /site/content/about.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "About Me" 3 | 4 | [extra] 5 | skip-meta = true 6 | +++ 7 | 8 | # Who am I? 9 | 10 | I am **Vishrut Gurrala** (19M), studying Computer Science at IIT Guwahati 11 | 12 | Tech enthusiast (_read:_ fanatic) and avid reader 13 | 14 | ## Digital Presence 15 | 16 | Ways to follow or get in contact with me 17 | 18 | - Mail: 19 | - Github: @[maydayv7 ](https://github.com/maydayv7) 20 | - Reddit: @[maydayv7 ](https://reddit.com/u/maydayv7) 21 | - Discord: @MayDayV7#8064 22 | -------------------------------------------------------------------------------- /site/content/archive.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Blog Archive" 3 | 4 | [extra] 5 | skip-meta = true 6 | archive = true 7 | +++ 8 | -------------------------------------------------------------------------------- /site/content/blog/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "The Blog" 3 | sort_by = "date" 4 | paginate_by = 5 5 | insert_anchor_links = "right" 6 | generate_feeds = true 7 | 8 | [extra] 9 | blog_search = true 10 | feed_discovery = true 11 | +++ 12 | 13 | # Welcome to My Blog! 14 | 15 | - View the {{ url(path="archive", text="Archive") }} 16 | - View all {{ url(path="series", text="Series") }} or {{ url(path="tags", text="Tags") }} 17 | -------------------------------------------------------------------------------- /site/content/blog/hello.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Hello World!" 3 | description = "Upholding Tradition ;)" 4 | date = 2022-02-15 5 | updated = 2025-02-10 6 | 7 | [taxonomies] 8 | tags = ["Misc"] 9 | 10 | [extra] 11 | math = true 12 | edit = false 13 | comments = false 14 | +++ 15 | 16 | **Hello World!** 17 | Just Following Tradition ;) 18 | 19 | This Site is generated by [Zola](https://www.getzola.org/) using a modified version of the [`zerm`](https://github.com/ejmg/zerm) Theme, with support for Custom Color Schemes, and Math Typesetting using [$\KaTeX$](https://katex.org/) 20 | 21 | Check out the {{ url(path="test", text="Test Page", trail_slash=false) }} for viewing the capabilities of this website 22 | -------------------------------------------------------------------------------- /site/content/feed.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Blog Feed" 3 | 4 | [extra] 5 | skip-meta = true 6 | feed = true 7 | +++ 8 | -------------------------------------------------------------------------------- /site/content/now.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Now" 3 | description = "What I'm currently up to!" 4 | 5 | updated = 2025-02-10 6 | +++ 7 | 8 | This page is inspired by **[NowNowNow](https://nownownow.com)** 9 | 10 | Freshman at uni, never gonna get used to it 11 | 12 | - Fresh off hosting IITGMUN at [Alcheringa](https://www.alcheringa.in/) 13 | - Trying (failing) to study 14 | - Trying (failing) to code 15 | - Still watching {{ url(path="anime", text="Anime", trail_slash=false) }} 16 | -------------------------------------------------------------------------------- /site/content/projects.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "My Projects" 3 | 4 | [extra] 5 | skip-meta = true 6 | github = true 7 | +++ 8 | 9 | # [Dotfiles ](https://github.com/maydayv7/dotfiles) 10 | 11 | My declarative, device-agnostic, hermetic, purely reproducible, atomic, immutable, automated and extensible NixOS Configuration and `dotfiles`, which also contains the source code for building and deploying this very Website. You can follow along with my {{ url(path="/series/nixos-desktop/", text="NixOS Desktop") }} Series. 12 | 13 | {{ github(repo="maydayv7/dotfiles") }} 14 | -------------------------------------------------------------------------------- /site/content/read.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "My Read List" 3 | description = "A list of literary items that I have read" 4 | 5 | [extra] 6 | ToC = true 7 | comments = true 8 | +++ 9 | 10 | # Manga 11 | 12 | - Aishiteru Game wo Owarasetai \* 13 | - Akanabe-sensei Doesn't Know about Embarrassment \* 14 | - An Archdemon's Dilemma \* 15 | - Ako to Bambi \* 16 | - Classroom of the Elite \* 17 | - D-Frag! 18 | - Fetiple 19 | - Fujiyama-san wa Shishunki 20 | - Fuufu Ijou, Koibito Miman \* 21 | - Horimiya 22 | - I want to end the game I love \* 23 | - Kaguya-sama: Love is War 24 | - Kanan-sama wa Akumade Choroi \* 25 | - Kawaii dake ja nai Shikimori-san 26 | - Kubo-San Doesn't Leave Me Be \* 27 | - Meguro-san wa Hajimete ja Nai 28 | - My Wife has No Emotion \* 29 | - Oshi no Ko \* 30 | - Second Cutest Girl in my Class \* 31 | - Sensei wa Koi wo Oshierarenai 32 | - The Dangers in My Heart \* 33 | - Tokidoki Bosotto Russia-go de Dereru Tonari no Aalya-san \* 34 | - Tonikawa: To the Moon! \* 35 | - Watashi no Shiawase na Kekkon \* 36 | - Yamada-kun to Lv999 no Koi wo Suru \* 37 | 38 | # Manhua 39 | 40 | - Player \* 41 | - Solo Leveling \* 42 | - Something between Us 43 | - Tomb Raider King 44 | 45 | # Web Comic 46 | 47 | - Down to Earth \* 48 | - Maybe Meant to Be \* 49 | - She's Hopeless 50 | - SubZero \* 51 | - The Beginning after the End \* 52 | 53 | --- 54 | 55 | \* --> Incomplete 56 | -------------------------------------------------------------------------------- /site/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | site ? null, 3 | pkgs, 4 | }: 5 | with pkgs; 6 | stdenvNoCC.mkDerivation { 7 | pname = "website"; 8 | version = "stable"; 9 | src = ./.; 10 | buildInputs = [ zola ]; 11 | installPhase = "cp -r public $out"; 12 | buildPhase = "zola build ${if (site != null) then "--base-url " + site else ""}"; 13 | } 14 | -------------------------------------------------------------------------------- /site/flake.nix: -------------------------------------------------------------------------------- 1 | _: { 2 | ## Website Configuration ## 3 | perSystem = 4 | { pkgs, ... }: 5 | { 6 | # Package 7 | packages.website = pkgs.callPackage ./. { inherit pkgs; }; 8 | 9 | # Development Shell 10 | devShells.website = import ./shell.nix { inherit pkgs; }; 11 | 12 | # Formatting Errors 13 | treefmt.config.programs.prettier.excludes = [ 14 | "site/templates/macros/edit.html" 15 | "site/templates/macros/head.html" 16 | "site/templates/macros/javascript.html" 17 | "site/templates/macros/menu.html" 18 | "site/templates/macros/posts.html" 19 | "site/templates/tags/list.html" 20 | ]; 21 | }; 22 | } 23 | -------------------------------------------------------------------------------- /site/robots.txt: -------------------------------------------------------------------------------- 1 | Allow: / 2 | User-agent: * 3 | Sitemap: {{config.base_url}}/sitemap.xml 4 | -------------------------------------------------------------------------------- /site/sass/_comments.scss: -------------------------------------------------------------------------------- 1 | @import "variables"; 2 | 3 | .comments { 4 | margin-bottom: 5px; 5 | max-height: 0; 6 | overflow: hidden; 7 | padding: 0 18px; 8 | transition: max-height 0.2s ease-out; 9 | 10 | &-collapsible { 11 | background-color: var(--background); 12 | border: 2px solid var(--accent-alpha-70); 13 | color: var(--color); 14 | font-family: inherit; 15 | font-size: 16px; 16 | margin: 15px 0 20px 7px; 17 | outline: none; 18 | padding: 15px; 19 | text-align: center; 20 | width: 160px; 21 | 22 | &:hover { 23 | background-color: var(--accent-secondary-alpha-20); 24 | cursor: pointer; 25 | } 26 | 27 | &:active { 28 | background-color: var(--accent-secondary-alpha-70); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /site/sass/_image.scss: -------------------------------------------------------------------------------- 1 | @import "variables"; 2 | 3 | img { 4 | display: block; 5 | max-width: 100%; 6 | 7 | &.center { 8 | margin-left: auto; 9 | margin-right: auto; 10 | } 11 | 12 | &.left { 13 | margin-right: auto; 14 | } 15 | 16 | &.right { 17 | margin-left: auto; 18 | } 19 | } 20 | 21 | figure { 22 | display: table; 23 | min-width: 300px; 24 | text-align: center; 25 | 26 | figcaption { 27 | background: var(--background); 28 | caption-side: bottom; 29 | color: var(--accent); 30 | display: table-caption; 31 | font-size: 14px; 32 | margin-top: 5px; 33 | padding: 5px 10px; 34 | } 35 | 36 | &.size-small img, 37 | &.size-small svg { 38 | max-width: 42.5%; 39 | } 40 | 41 | &.size-medium img, 42 | &.size-medium svg { 43 | max-width: 57.5%; 44 | } 45 | 46 | &.size-large img, 47 | &.size-large svg { 48 | max-width: 72.5%; 49 | } 50 | 51 | &.center { 52 | margin: 25px auto; 53 | figcaption { 54 | text-align: center; 55 | } 56 | } 57 | 58 | &.left { 59 | img, 60 | svg { 61 | float: left; 62 | } 63 | 64 | figcaption { 65 | text-align: left; 66 | } 67 | } 68 | 69 | &.right { 70 | img, 71 | svg { 72 | float: right; 73 | } 74 | 75 | figcaption { 76 | text-align: right; 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /site/sass/_logo.scss: -------------------------------------------------------------------------------- 1 | @import "variables"; 2 | 3 | .logo { 4 | align-items: center; 5 | background: var(--accent); 6 | border-radius: $corner-radius; 7 | color: black; 8 | display: flex; 9 | padding: 8px 10px; 10 | text-decoration: none; 11 | 12 | &:hover { 13 | color: var(--accent-secondary); 14 | } 15 | } 16 | 17 | .loading { 18 | margin-left: 15px; 19 | font-size: 3px; 20 | position: relative; 21 | text-indent: -9999em; 22 | border-top: 1.1em solid var(--border-color); 23 | border-right: 1.1em solid var(--border-color); 24 | border-bottom: 1.1em solid var(--border-color); 25 | border-left: 1.1em solid black; 26 | 27 | transform: translateZ(0); 28 | -webkit-transform: translateZ(0); 29 | -ms-transform: translateZ(0); 30 | animation: load8 1.1s infinite linear; 31 | -webkit-animation: load8 1.1s infinite linear; 32 | 33 | border-radius: 50%; 34 | width: 7em; 35 | height: 7em; 36 | 37 | &:after { 38 | border-radius: 50%; 39 | width: 7em; 40 | height: 7em; 41 | } 42 | } 43 | 44 | @-webkit-keyframes load8 { 45 | 0% { 46 | -webkit-transform: rotate(0deg); 47 | transform: rotate(0deg); 48 | } 49 | 100% { 50 | -webkit-transform: rotate(360deg); 51 | transform: rotate(360deg); 52 | } 53 | } 54 | 55 | @keyframes load8 { 56 | 0% { 57 | -webkit-transform: rotate(0deg); 58 | transform: rotate(0deg); 59 | } 60 | 100% { 61 | -webkit-transform: rotate(360deg); 62 | transform: rotate(360deg); 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /site/sass/_search.scss: -------------------------------------------------------------------------------- 1 | @import "variables"; 2 | 3 | .search { 4 | &-container { 5 | display: inline-block; 6 | left: 660px; 7 | position: relative; 8 | top: -31px; 9 | transition: all 0.5s ease-out; 10 | width: 160px; 11 | margin-bottom: -20px; 12 | 13 | input { 14 | width: 100%; 15 | transition: background-color 0.2s ease-in; 16 | 17 | &:hover { 18 | background-color: var(--accent-alpha-20); 19 | } 20 | } 21 | 22 | @media (max-width: $phone-max-width) { 23 | left: 0 !important; 24 | margin-bottom: 20px; 25 | top: 20px; 26 | width: 100%; 27 | } 28 | 29 | @media (max-width: $tablet-max-width) { 30 | left: 225px; 31 | } 32 | } 33 | 34 | &-results { 35 | background-color: var(--accent-alpha-20); 36 | backdrop-filter: blur(10px); 37 | border-style: inset; 38 | color: var(--accent-secondary); 39 | display: none; 40 | z-index: 1; 41 | max-height: 500px; 42 | overflow: auto; 43 | padding: 1rem; 44 | position: absolute; 45 | right: 0; 46 | width: 300%; 47 | 48 | @media (max-width: $phone-max-width) { 49 | width: 100%; 50 | } 51 | 52 | @media (max-width: $tablet-max-width) { 53 | left: 0; 54 | } 55 | 56 | &__number { 57 | font-size: small; 58 | text-align: end; 59 | margin: -15px 5px -25px; 60 | } 61 | 62 | &__item { 63 | margin-bottom: 1rem; 64 | 65 | .title { 66 | margin-bottom: -3px; 67 | } 68 | 69 | a { 70 | display: inline-block; 71 | font-size: $font-size; 72 | margin-bottom: 0.5rem; 73 | } 74 | } 75 | 76 | &__items { 77 | list-style: none; 78 | } 79 | 80 | li { 81 | border-bottom: 1px solid var(--color); 82 | font-size: 0.9rem; 83 | margin-top: 1rem; 84 | 85 | &:first-of-type { 86 | margin-top: 0; 87 | } 88 | 89 | &:last-of-type { 90 | border: none; 91 | } 92 | } 93 | } 94 | } 95 | -------------------------------------------------------------------------------- /site/sass/_squiggle-line.scss: -------------------------------------------------------------------------------- 1 | @import "variables"; 2 | 3 | .squiggle { 4 | &-holder { 5 | height: 15px; 6 | overflow: hidden; 7 | position: relative; 8 | width: 100%; 9 | } 10 | 11 | &-ellipse { 12 | background: radial-gradient( 13 | ellipse, 14 | var(--border-color), 15 | transparent 3px, 16 | var(--border-color) 5.3px, 17 | transparent 3px, 18 | transparent 5px 19 | ); 20 | 21 | background-size: 16px 15px; 22 | height: 7.5px; 23 | position: absolute; 24 | width: 100%; 25 | } 26 | 27 | &-ellipse2 { 28 | background-clip: padding-box; 29 | background-position: 0px -7.5px; 30 | left: 8px; 31 | top: 7.42px; 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /site/sass/_toc.scss: -------------------------------------------------------------------------------- 1 | .toc { 2 | @include menu; 3 | margin: 35px 0; 4 | 5 | &-head { 6 | font-size: 1.2rem; 7 | font-style: italic; 8 | font-weight: bold; 9 | padding-left: 7px; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /site/sass/_variables.scss: -------------------------------------------------------------------------------- 1 | $corner-radius: 3px; 2 | $font-size: 1rem; 3 | 4 | $phone-max-width: 684px; 5 | $tablet-max-width: 900px; 6 | 7 | // JS Events 8 | :root { 9 | --phoneWidth: (max-width: 684px); 10 | --tabletWidth: (max-width: 900px); 11 | } 12 | -------------------------------------------------------------------------------- /site/sass/color/black.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | --accent: rgb(123, 123, 123); 3 | --accent-alpha-20: rgba(123, 123, 123, 0.2); 4 | --accent-alpha-70: rgba(123, 123, 123, 0.7); 5 | --accent-secondary: rgba(229, 156, 25); 6 | --accent-secondary-alpha-20: rgb(229, 156, 25, 0.2); 7 | --accent-secondary-alpha-70: rgb(229, 156, 25, 0.7); 8 | 9 | --background: rgb(29, 29, 29); 10 | --border-color: rgba(255, 255, 255, 0.1); 11 | --border-secondary-color: rgba(229, 156, 25); 12 | 13 | --color: whitesmoke; 14 | --image-filter: invert(59%) sepia(78%) saturate(507%) hue-rotate(359deg) 15 | brightness(96%) contrast(87%); 16 | } 17 | -------------------------------------------------------------------------------- /site/sass/color/blue.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | --accent: rgb(35, 176, 255); 3 | --accent-alpha-20: rgba(35, 176, 255, 0.2); 4 | --accent-alpha-70: rgba(35, 176, 255, 0.7); 5 | --accent-secondary: rgb(238, 114, 241); 6 | --accent-secondary-alpha-20: rgba(238, 114, 241, 0.2); 7 | --accent-secondary-alpha-70: rgba(238, 114, 241, 0.7); 8 | 9 | --background: rgba(29, 30, 40); 10 | --border-color: rgba(255, 255, 255, 0.1); 11 | --border-secondary-color: rgb(35, 176, 255); 12 | 13 | --color: whitesmoke; 14 | --image-filter: invert(58%) sepia(93%) saturate(582%) hue-rotate(262deg) 15 | brightness(98%) contrast(93%); 16 | } 17 | -------------------------------------------------------------------------------- /site/sass/color/red.scss: -------------------------------------------------------------------------------- 1 | :root { 2 | --accent: rgb(255, 98, 102); 3 | --accent-alpha-20: rgba(255, 98, 102, 0.2); 4 | --accent-alpha-70: rgba(255, 98, 102, 0.7); 5 | --accent-secondary: rgba(35, 176, 255); 6 | --accent-secondary-alpha-20: rgba(35, 176, 255, 0.2); 7 | --accent-secondary-alpha-70: rgba(35, 176, 255, 0.7); 8 | 9 | --background: rgba(34, 31, 41); 10 | --border-color: rgba(255, 255, 255, 0.1); 11 | --border-secondary-color: rgba(255, 98, 102); 12 | 13 | --color: whitesmoke; 14 | --image-filter: invert(60%) sepia(75%) saturate(3103%) hue-rotate(176deg) 15 | brightness(102%) contrast(101%); 16 | } 17 | -------------------------------------------------------------------------------- /site/sass/fonts.scss: -------------------------------------------------------------------------------- 1 | // JetBrains Fonts 2 | 3 | @font-face { 4 | font-family: "JetBrainsMono"; 5 | src: url("fonts/JetBrainsMono-Nerd-Regular.woff2") format("woff2"); 6 | font-weight: 400; 7 | font-style: normal; 8 | } 9 | 10 | @font-face { 11 | font-family: "JetBrainsMono"; 12 | src: url("fonts/JetBrainsMono-Nerd-Bold.woff2") format("woff2"); 13 | font-weight: 700; 14 | font-style: normal; 15 | } 16 | 17 | @font-face { 18 | font-family: "JetBrainsMono"; 19 | src: url("fonts/JetBrainsMono-Nerd-Italic.woff2") format("woff2"); 20 | font-weight: 400; 21 | font-style: italic; 22 | } 23 | 24 | @font-face { 25 | font-family: "JetBrainsMono"; 26 | src: url("fonts/JetBrainsMono-Nerd-BoldItalic.woff2") format("woff2"); 27 | font-weight: 700; 28 | font-style: italic; 29 | } 30 | -------------------------------------------------------------------------------- /site/sass/style.scss: -------------------------------------------------------------------------------- 1 | @import "comments"; 2 | @import "footer"; 3 | @import "header"; 4 | @import "image"; 5 | @import "logo"; 6 | @import "main"; 7 | @import "pagination"; 8 | @import "post"; 9 | @import "search"; 10 | @import "squiggle-line"; 11 | @import "syntax"; 12 | @import "toc"; 13 | -------------------------------------------------------------------------------- /site/shell.nix: -------------------------------------------------------------------------------- 1 | { 2 | pkgs ? import ../., 3 | ... 4 | }: 5 | pkgs.mkShell { 6 | name = "Website"; 7 | packages = with pkgs; [ 8 | git 9 | zola 10 | lorri 11 | ]; 12 | shellHook = ''echo "## Website Builder Shell ##"''; 13 | } 14 | -------------------------------------------------------------------------------- /site/static/desktop.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/desktop.ico -------------------------------------------------------------------------------- /site/static/fonts/JetBrainsMono-Nerd-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/fonts/JetBrainsMono-Nerd-Bold.woff2 -------------------------------------------------------------------------------- /site/static/fonts/JetBrainsMono-Nerd-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/fonts/JetBrainsMono-Nerd-BoldItalic.woff2 -------------------------------------------------------------------------------- /site/static/fonts/JetBrainsMono-Nerd-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/fonts/JetBrainsMono-Nerd-Italic.woff2 -------------------------------------------------------------------------------- /site/static/fonts/JetBrainsMono-Nerd-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/fonts/JetBrainsMono-Nerd-Regular.woff2 -------------------------------------------------------------------------------- /site/static/js/clipboard.js: -------------------------------------------------------------------------------- 1 | document.querySelectorAll("pre > code").forEach(function (codeBlock) { 2 | var button = document.createElement("button"); 3 | button.className = "copy"; 4 | button.type = "button"; 5 | button.innerText = " Copy"; 6 | button.addEventListener("click", function () { 7 | navigator.clipboard.writeText(codeBlock.innerText).then( 8 | function () { 9 | button.blur(); 10 | button.innerText = "Copied!"; 11 | setTimeout(function () { 12 | button.innerText = " Copy"; 13 | }, 2000); 14 | }, 15 | function (error) { 16 | button.innerText = "Error"; 17 | }, 18 | ); 19 | }); 20 | 21 | var pre = codeBlock.parentNode; 22 | if (pre.parentNode.classList.contains("highlight")) { 23 | var highlight = pre.parentNode; 24 | highlight.parentNode.insertBefore(button, highlight); 25 | } else { 26 | pre.parentNode.insertBefore(button, pre); 27 | } 28 | }); 29 | -------------------------------------------------------------------------------- /site/static/js/comments.js: -------------------------------------------------------------------------------- 1 | var buttons = document.getElementsByClassName("comments-collapsible"); 2 | for (var i = 0; i < buttons.length; i++) { 3 | buttons[i].addEventListener("click", function () { 4 | this.classList.toggle("active"); 5 | var content = this.nextElementSibling; 6 | if (content.style.maxHeight) { 7 | content.style.maxHeight = null; 8 | this.innerHTML = "Show Comments"; 9 | } else { 10 | content.style.maxHeight = content.scrollHeight + "px"; 11 | this.innerHTML = "Hide Comments"; 12 | } 13 | }); 14 | } 15 | -------------------------------------------------------------------------------- /site/static/js/footnote.js: -------------------------------------------------------------------------------- 1 | window.addEventListener("load", function () { 2 | for (const ref of document.getElementsByClassName("footnote-reference")) { 3 | const hash = ref.children[0].hash.substring(1); 4 | const refhash = "ref:" + hash; 5 | ref.id = refhash; 6 | } 7 | 8 | for (const footnote of document.getElementsByClassName( 9 | "footnote-definition", 10 | )) { 11 | const hash = footnote.id; 12 | const refhash = "ref:" + hash; 13 | const backlink = document.createElement("a"); 14 | backlink.href = "#" + refhash; 15 | backlink.className = "backlink"; 16 | backlink.innerText = "↩"; 17 | const paras = footnote.children; 18 | const lastPara = paras[paras.length - 1]; 19 | lastPara.appendChild(backlink); 20 | } 21 | }); 22 | -------------------------------------------------------------------------------- /site/static/js/load.js: -------------------------------------------------------------------------------- 1 | var loading = document.querySelector(".loading"); 2 | 3 | window.addEventListener("load", function () { 4 | loading.style.display = "none"; 5 | }); 6 | -------------------------------------------------------------------------------- /site/static/js/scroll.js: -------------------------------------------------------------------------------- 1 | var scrollButton = document.querySelector(".scroll-back"); 2 | var rootElement = document.documentElement; 3 | 4 | function handleScroll() { 5 | var scrollTotal = rootElement.scrollHeight - rootElement.clientHeight; 6 | if (rootElement.scrollTop / scrollTotal > 0.5) { 7 | scrollButton.style.visibility = "visible"; 8 | scrollButton.style.opacity = 100; 9 | } else { 10 | scrollButton.style.visibility = "hidden"; 11 | scrollButton.style.opacity = 0; 12 | } 13 | } 14 | 15 | function scrollBack() { 16 | rootElement.scrollTo({ 17 | top: 0, 18 | behavior: "smooth", 19 | }); 20 | } 21 | 22 | scrollButton.addEventListener("click", scrollBack); 23 | document.addEventListener("scroll", handleScroll); 24 | -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_AMS-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_AMS-Regular.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_AMS-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_AMS-Regular.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_AMS-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_AMS-Regular.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Caligraphic-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Caligraphic-Bold.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Caligraphic-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Caligraphic-Bold.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Caligraphic-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Caligraphic-Bold.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Caligraphic-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Caligraphic-Regular.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Caligraphic-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Caligraphic-Regular.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Caligraphic-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Caligraphic-Regular.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Fraktur-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Fraktur-Bold.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Fraktur-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Fraktur-Bold.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Fraktur-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Fraktur-Bold.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Fraktur-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Fraktur-Regular.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Fraktur-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Fraktur-Regular.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Fraktur-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Fraktur-Regular.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-Bold.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-Bold.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-Bold.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-BoldItalic.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-BoldItalic.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-BoldItalic.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-Italic.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-Italic.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-Italic.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-Regular.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-Regular.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Main-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Main-Regular.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Math-BoldItalic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Math-BoldItalic.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Math-BoldItalic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Math-BoldItalic.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Math-BoldItalic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Math-BoldItalic.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Math-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Math-Italic.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Math-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Math-Italic.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Math-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Math-Italic.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_SansSerif-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_SansSerif-Bold.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_SansSerif-Bold.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_SansSerif-Bold.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_SansSerif-Bold.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_SansSerif-Bold.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_SansSerif-Italic.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_SansSerif-Italic.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_SansSerif-Italic.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_SansSerif-Italic.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_SansSerif-Italic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_SansSerif-Italic.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_SansSerif-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_SansSerif-Regular.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_SansSerif-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_SansSerif-Regular.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_SansSerif-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_SansSerif-Regular.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Script-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Script-Regular.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Script-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Script-Regular.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Script-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Script-Regular.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size1-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size1-Regular.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size1-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size1-Regular.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size1-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size1-Regular.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size2-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size2-Regular.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size2-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size2-Regular.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size2-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size2-Regular.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size3-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size3-Regular.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size3-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size3-Regular.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size3-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size3-Regular.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size4-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size4-Regular.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size4-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size4-Regular.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Size4-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Size4-Regular.woff2 -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Typewriter-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Typewriter-Regular.ttf -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Typewriter-Regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Typewriter-Regular.woff -------------------------------------------------------------------------------- /site/static/math/fonts/KaTeX_Typewriter-Regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/math/fonts/KaTeX_Typewriter-Regular.woff2 -------------------------------------------------------------------------------- /site/static/social/discord.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/social/discord.png -------------------------------------------------------------------------------- /site/static/social/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/social/github.png -------------------------------------------------------------------------------- /site/static/social/mail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/social/mail.png -------------------------------------------------------------------------------- /site/static/social/reddit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/social/reddit.png -------------------------------------------------------------------------------- /site/static/social/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/social/rss.png -------------------------------------------------------------------------------- /site/static/social/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maydayv7/dotfiles/244e0041f0687fd7126d2fc72b8f1db2e71f2469/site/static/social/twitter.png -------------------------------------------------------------------------------- /site/templates/404.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" -%} {%- block title %} 2 | Error 404 - {{ config.extra.author }} 3 | {%- endblock title -%} {%- block main -%} 4 |
5 |

Error 404 - Page Not Found

6 |

Go back to homepage 

7 |

8 |
9 | 10 | {%- endblock main -%} 11 | -------------------------------------------------------------------------------- /site/templates/anchor-link.html: -------------------------------------------------------------------------------- 1 | § 4 | -------------------------------------------------------------------------------- /site/templates/index.html: -------------------------------------------------------------------------------- 1 | {%- extends "base.html" -%} {%- block title %} 2 | {{ config.extra.author }} 3 | {%- endblock title -%} {%- block main -%} 4 |
5 |

{{ section.title }}

6 |
7 |
{{ section.content | safe }}
8 |
9 | 10 |

Recent Posts

11 | {% set section = get_section(path="blog/_index.md") %} 12 |
    13 | {% for page in section.pages -%} {%- if loop.index0 < 5 -%} 14 |
  • {{ posts::meta(page=page, list=true) }}
  • 15 | {%- endif -%} {%- endfor %} 16 |
17 |
18 | {%- endblock main -%} 19 | -------------------------------------------------------------------------------- /site/templates/macros/analytics.html: -------------------------------------------------------------------------------- 1 | {%- macro google_analytics(config) %} {%- if 2 | config.extra.google_analytics_tracking_id -%} 3 | 6 | 15 | {%- endif -%} {%- endmacro google_analytics -%} 16 | -------------------------------------------------------------------------------- /site/templates/macros/comments.html: -------------------------------------------------------------------------------- 1 | {% macro comments() %} {% if config.extra.disqus.enabled is defined and 2 | config.extra.disqus.enabled == true %} {{ comments::disqus() }} {{ 3 | js::comments() }} {% endif %} {% if config.extra.giscus.enabled is defined and 4 | config.extra.giscus.enabled == true %} {{ comments::giscus() }} {{ 5 | js::comments() }} {% endif %} {% endmacro comments %} {% macro disqus() %} 6 |
7 | 21 | 27 | {% endmacro disqus %} {% macro giscus() %} 28 |
29 | 43 |
44 | {% endmacro giscus %} 45 | -------------------------------------------------------------------------------- /site/templates/macros/edit.html: -------------------------------------------------------------------------------- 1 | {% macro edit_page(current_path) %} 2 |

3 | 16 | Edit this Page 19 |

20 | {% endmacro %} 21 | -------------------------------------------------------------------------------- /site/templates/macros/footer.html: -------------------------------------------------------------------------------- 1 | {% macro copyright(config) %} 2 | 12 | {% endmacro copyright %} {% macro theme(config) %} 13 |
14 |
15 |
16 | Theme: 17 | 27 |
28 |
29 |
30 | {% endmacro theme %} {% macro webring(config) %} {% if config.extra.webring %} 31 | 40 | {% endif %} {% endmacro webring %} 41 | -------------------------------------------------------------------------------- /site/templates/macros/head.html: -------------------------------------------------------------------------------- 1 | {%- macro font(config) %} {% endmacro font -%} {% 3 | macro styling(config) %} {% if 5 | config.extra.theme_color -%} {% set color = "color/" ~config.extra.theme_color ~ 6 | ".css" -%} 7 | 8 | {%- else -%} {% endif %} {% endmacro styling %} {% macro 10 | feed_discovery(path) %} 11 | 16 | {% endmacro feed_discovery %} {% macro favicon(config) %} {% if 17 | config.extra.favicon %} 18 | 22 | {% endif %} {% endmacro favicon %} {% macro general_meta() %} 23 | 24 | 27 | 28 | {% endmacro general_meta %} 29 | -------------------------------------------------------------------------------- /site/templates/macros/header.html: -------------------------------------------------------------------------------- 1 | {% import "macros/menu.html" as menu -%} {% import "macros/logo.html" as logo 2 | -%} {% macro header(config, current_url) %} 3 |
4 |
5 | 6 | 9 |
10 | {{ menu::menu(config=config, current_url=current_url) }} {% if 11 | config.build_search_index %} 12 |
13 | 14 |
15 |
16 |
17 |
18 | {% endif %} 19 |
20 | {% endmacro header %} 21 | -------------------------------------------------------------------------------- /site/templates/macros/javascript.html: -------------------------------------------------------------------------------- 1 | {% macro script() %} 2 | 3 | 4 | 5 | 6 | 7 | 8 | {% if config.build_search_index %} 9 | 10 | 11 | 12 | {% endif %} 13 | {% endmacro script %} 14 | {% macro mobile() %} {% endmacro mobile %} 15 | {% macro comments() %} {% endmacro comments %} 16 | {% macro katex() %} {% if config.extra.math_katex %} 17 | 18 | 19 | 20 | 29 | {% endif %} {% endmacro katex %} 30 | -------------------------------------------------------------------------------- /site/templates/macros/lists.html: -------------------------------------------------------------------------------- 1 | {% macro list_pages() %} {%- if paginator -%} 2 |
3 | {%- for page in paginator.pages -%} 4 |
5 |
6 |

7 | {{ page.title }} 8 |

9 |
10 | 11 | {{ posts::meta(page=page) }} 12 | 13 |
14 | {% if page.description -%} {{ page.description }} {% elif page.summary -%} 15 | {{ page.summary | safe }} {% endif -%} 16 |
17 | {% if page.description or page.summary -%} 18 |
19 | Read More -> 24 |
25 | {% endif -%} 26 |
27 | {%- endfor -%} 28 |
29 | {%- endif -%} {% endmacro list_pages %} 30 | -------------------------------------------------------------------------------- /site/templates/macros/logo.html: -------------------------------------------------------------------------------- 1 | {%- macro logo(config) -%} 2 | 4 | 8 | 9 | {%- endmacro logo -%} 10 | -------------------------------------------------------------------------------- /site/templates/macros/posts.html: -------------------------------------------------------------------------------- 1 | {% macro meta(page, list=false) %} 2 | 11 | {% endmacro meta %} {% macro date(date, updated) %} 12 | 16 | {% endmacro date %} {% macro taxonomies(taxonomy) %} {% if taxonomy.series -%} 17 | {{ posts::series(series=taxonomy.series) }} {% endif -%} {% if taxonomy.tags -%} 18 | {{ posts::tags(tags=taxonomy.tags) }} {% endif -%} {% endmacro taxonomies %} {% 19 | macro series(series) %} :: {% for siri in series -%} 20 | ^{{ siri 22 | }} 24 | {% endfor -%} {% endmacro series %} {% macro tags(tags) %} :: {% for tag in tags 25 | -%} #{{ tag }} {% endfor 26 | -%} {% endmacro tags %} 27 | -------------------------------------------------------------------------------- /site/templates/macros/squiggle-line.html: -------------------------------------------------------------------------------- 1 | {%- macro squiggle() -%} 2 |
3 |
4 |
5 |
6 | {%- endmacro squiggle -%} 7 | -------------------------------------------------------------------------------- /site/templates/macros/toc.html: -------------------------------------------------------------------------------- 1 | {% macro toc (t) %} {% if t %} 2 | 57 | {% endif %} {% endmacro %} 58 | -------------------------------------------------------------------------------- /site/templates/macros/url.html: -------------------------------------------------------------------------------- 1 | {% macro internal(path, text, newtab=false, trailing_slash=true) -%} 2 | 12 | {{ text }} 13 | 14 | {%- endmacro internal %} {% macro external(url, text, icon=true) -%} 15 | 16 | {{ text }}{%- if icon %}  {%- endif -%} 17 | 18 | {%- endmacro external %} 19 | -------------------------------------------------------------------------------- /site/templates/page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" -%} {% import "macros/pagination.html" as pages -%} {% 2 | import "macros/javascript.html" as js -%} {% import "macros/toc.html" as toc -%} 3 | {%- block math -%} {% if page.extra.math %} {{ js::katex() }} {% endif %} {%- 4 | endblock math -%} {%- block title %} 5 | {{ page.title }} - {{ config.extra.author }} 6 | {%- endblock title -%} {%- block main -%} 7 |
8 | {% set section = get_section(path="blog/_index.md") %} 9 |
10 |

11 | {% if page.extra['archive'] %} {{ page.title }} ({{ section.pages | length 12 | }} post{{ section.pages | length | pluralize }}) {% else %} 13 | {{ page.title }} 14 | {% endif %} 15 |

16 | {% if not page.extra['skip-meta'] -%} {{ posts::meta(page=page) }} {% endif 17 | %} {%- block ToC -%} {%- if page.extra.ToC or config.extra.table_of_contents 18 | -%} {{ toc::toc(t=page.toc) }} {%- endif -%} {%- endblock ToC -%} 19 |
20 | 21 |
{{ page.content | safe }}
22 | 23 | {% if page.extra['archive'] %} 24 |
    25 | {% for page in section.pages %} 26 |
  • {{ posts::meta(page=page, list=true) }}
  • 27 | {% endfor %} 28 |
29 | {% endif %} {% if page.extra['feed'] %} 30 |
    31 |
  • 32 | {{ url::internal(path=config.extra.feed_path, trailing_slash=false, 33 | text="RSS Link") }} 34 |
  • 35 |
36 | {% endif %} {% if config.extra.edit_page and page.extra.edit %} {{ 37 | edit::edit_page(current_path=current_path) }} {% endif %} {% if 38 | page.extra.comments %} 39 | 40 | {{ comments::comments() }} {% endif %} {% if page.extra.github %} 41 | 42 | {% endif %} {{ pages::related() }} 43 |
44 | 45 | {%- endblock main -%} 46 | -------------------------------------------------------------------------------- /site/templates/section.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" -%} {%- block rss -%} {%- if 2 | section.extra['feed_discovery'] -%} {{ head::feed_discovery(path = section.path 3 | ~ 'rss.xml' )}} {%- endif -%} {%- endblock -%} {%- block title %} 4 | {{ section.title }} - {{ config.extra.author }} 5 | {%- endblock title -%} {%- block main -%} 6 |
7 |
{{ section.content | safe }}
8 | {{ squiggle::squiggle() }} {{ lists::list_pages()}} 9 |
10 | {%- endblock main -%} 11 | -------------------------------------------------------------------------------- /site/templates/series/list.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} {%- block title %} 2 | Series - {{ config.extra.author }} 3 | {%- endblock title -%} {% block main %} 4 |
5 |

^{{ taxonomy.name }}

6 | 7 |
    8 | {% for term in terms %} 9 |
  • 10 | {{ term.name }} 11 | ({{ term.pages | length }} post{{ term.pages | length | pluralize }}) 12 |
  • 13 | {% endfor %} 14 |
15 |
16 | {% endblock main %} 17 | -------------------------------------------------------------------------------- /site/templates/series/single.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} {%- block title %} 2 | ^{{ term.name }} - {{ config.extra.author }} 3 | {%- endblock title -%} {% block main %} 4 |
5 |

6 | ^{{ term.name }} ({{ term.pages | length }} post{{ term.pages | length | 7 | pluralize }}) 8 |

9 | 10 |
    11 | {%- for post in term.pages -%} 12 |
  • {{ posts::meta(page=post, list=true) }}
  • 13 | {%- endfor -%} 14 |
15 |
16 | {% endblock main %} 17 | -------------------------------------------------------------------------------- /site/templates/shortcodes/figure.html: -------------------------------------------------------------------------------- 1 | {% if src %} 2 |
3 | 20 | {% if caption %} 21 |
31 | {{ caption }} 32 |
33 | {% endif %} 34 |
35 | {% endif %} 36 | -------------------------------------------------------------------------------- /site/templates/shortcodes/github.html: -------------------------------------------------------------------------------- 1 | Star 11 | -------------------------------------------------------------------------------- /site/templates/shortcodes/image.html: -------------------------------------------------------------------------------- 1 |
3 | {%- if static is defined -%} 4 | 14 | {%- else -%} {%- set src = page.path ~ src -%} 15 | 25 | {%- endif -%} {% if caption %} 26 |
35 | {{ caption }} 36 |
37 | {% endif %} 38 |
39 | -------------------------------------------------------------------------------- /site/templates/shortcodes/url.html: -------------------------------------------------------------------------------- 1 | {% if trail_slash -%} {% set url = get_url(path=path, 2 | trailing_slash=trail_slash) %} {%- else -%} {% set url = get_url(path=path) %} 3 | {%- endif -%} 4 | {{ text }} 5 | -------------------------------------------------------------------------------- /site/templates/shortcodes/youtube.html: -------------------------------------------------------------------------------- 1 |
2 | 11 |
12 | -------------------------------------------------------------------------------- /site/templates/tags/list.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} {%- block title %} 2 | Tags - {{ config.extra.author }} 3 | {%- endblock title -%} {% block main %} 4 |
5 |

#{{ taxonomy.name }}

6 | 7 |
    8 | {% for term in terms %} 9 |
  • 10 | {{ term.name 11 | }} ({{ term.pages | length }} post{{ term.pages | length | pluralize }}) 12 |
  • 13 | {% endfor %} 14 |
15 |
16 | {% endblock main %} 17 | -------------------------------------------------------------------------------- /site/templates/tags/single.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} {%- block title %} 2 | #{{ term.name }} - {{ config.extra.author }} 3 | {%- endblock title -%} {% block main %} 4 |
5 |

6 | #{{ term.name }} ({{ term.pages | length }} post{{ term.pages | length | 7 | pluralize }}) 8 |

9 | 10 |
    11 | {% for page in paginator.pages %} 12 |
  • {{ posts::meta(page=page, list=true) }}
  • 13 | {% endfor %} 14 |
15 |
16 | {% endblock main %} 17 | -------------------------------------------------------------------------------- /users/README.md: -------------------------------------------------------------------------------- 1 | ### Users 2 | 3 | The `users` directory contains the individual user-specific configurations for multiple users (of a single PC or multiple ones). To add a new user, simply create a configuration file for it (name of the file/directory must be the same as the `username` of the user) and write down the configuration using the `home-manager` module [options](https://home-manager-options.extranix.com/). The configuration is automatically imported, if present. Do not forget to create a `USERNAME.secret` file (using `nixos secret create`) in [`passwords`](./passwords) containing the user password 4 | 5 | There is also a `recovery` user defined in the system configuration as a [specialisation](https://wiki.nixos.org/wiki/Specialisation) 6 | -------------------------------------------------------------------------------- /users/navya.nix: -------------------------------------------------------------------------------- 1 | { files, ... }: 2 | { 3 | # Personal Credentials 4 | credentials = { 5 | fullname = "Navya G"; 6 | mail = "gnavya009@gmail.com"; 7 | key = "B141E0D9F711DD86DEAE1269D9B023AB01B68EFE"; 8 | }; 9 | 10 | # Profile Picture 11 | home.file.".face".source = files.images.profile; 12 | } 13 | -------------------------------------------------------------------------------- /users/passwords/default: -------------------------------------------------------------------------------- 1 | $6$oDyuxGchrVIc19OC$eXjScbMdvd3Z77huNEUzTmXHvtDrjXK6/VnFNIxfiGUZAtJ1tLF05H6bp6J6CaV4.BkkiN72CIWLfvgg0AwdF. -------------------------------------------------------------------------------- /users/v7/accounts.conf: -------------------------------------------------------------------------------- 1 | [Account account_1635317848_0] 2 | Provider=google 3 | Identity=maydayv7@gmail.com 4 | PresentationIdentity=maydayv7@gmail.com 5 | MailEnabled=true 6 | CalendarEnabled=true 7 | ContactsEnabled=true 8 | DocumentsEnabled=true 9 | PhotosEnabled=true 10 | FilesEnabled=false 11 | PrintersEnabled=false 12 | -------------------------------------------------------------------------------- /users/v7/default.nix: -------------------------------------------------------------------------------- 1 | { 2 | config, 3 | lib, 4 | pkgs, 5 | files, 6 | ... 7 | }: 8 | { 9 | # Personal Credentials 10 | credentials = { 11 | name = "maydayv7"; 12 | fullname = "V7"; 13 | mail = "maydayv7@gmail.com"; 14 | key = "8C240C0C11293EE56260601CCF616EB19C2765E4"; 15 | }; 16 | 17 | # Home Configuration 18 | home = { 19 | packages = [ pkgs.home-manager ]; 20 | 21 | # Directory Symlinks 22 | file = with files; { 23 | # Profile Picture 24 | ".face".source = images.profile; 25 | 26 | # Online Accounts 27 | ".config/goa-1.0/accounts.conf".text = builtins.readFile ./accounts.conf; 28 | 29 | # Dotfiles 30 | "Projects/dotfiles".source = config.lib.file.mkOutOfStoreSymlink path.system; 31 | 32 | # GTK+ Bookmarks 33 | ".config/gtk-3.0/bookmarks".text = lib.mkBefore '' 34 | file://${config.home.homeDirectory}/Projects Projects 35 | ''; 36 | }; 37 | }; 38 | } 39 | --------------------------------------------------------------------------------