├── .gitattributes ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ └── feature_request.md └── workflows │ ├── codeql.yml │ ├── main.yml │ └── testBuild.yml ├── .gitignore ├── .npmrc ├── LICENSE ├── README.md ├── assets ├── Wordmark.svg ├── adblocker.js ├── badges │ ├── 1.png │ ├── 10.png │ ├── 2.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ └── 9.png ├── css │ ├── discord.css │ ├── screenshare.css │ ├── settings.css │ └── titlebar.css ├── fonts │ └── InterVariable.woff2 ├── gf_icon.ico ├── gf_icon.png ├── gf_logo.svg ├── gf_symbolic_black.png ├── gf_symbolic_white.png ├── html │ ├── multiselect-dropdown.js │ ├── picker.html │ ├── settings.html │ └── settings.js └── lang │ ├── cs.json │ ├── de.json │ ├── en-US.json │ ├── es.json │ ├── fil.json │ ├── fr.json │ ├── nb_NO.json │ ├── nds.json │ ├── nl.json │ ├── pt.json │ ├── sl.json │ ├── ta.json │ ├── tr.json │ ├── uk.json │ └── zh_Hant.json ├── assetsDev ├── genTestLanguage.js ├── gf_install_animation.gif ├── gf_logo_full.png ├── gf_logo_orig.png ├── gf_symbolic.svg ├── io.github.milkshiift.GoofCord.metainfo.xml ├── languageCodes.json ├── screenshot1.png ├── screenshot1_rounded.png ├── wikiEncryption1.png ├── wikiEncryption2.png ├── wikiEncryption3.png └── wikiSceenShare.png ├── biome.json ├── build ├── build.ts ├── cursedJson.ts ├── genIpcHandlers.ts ├── genSettingsLangFile.ts ├── genSettingsTypes.ts ├── icon.icns ├── icon.ico ├── icon.png └── installer.nsh ├── bun.lock ├── electron-builder.ts ├── package.json ├── src ├── config.ts ├── configTypes.d.ts ├── ipcGen.ts ├── loader.ts ├── main.ts ├── menu.ts ├── modules │ ├── agent.ts │ ├── arrpc.ts │ ├── assetLoader.ts │ ├── cacheManager.ts │ ├── dynamicIcon.ts │ ├── firewall.ts │ ├── localization.ts │ ├── logger.ts │ ├── messageEncryption.ts │ ├── mods.ts │ ├── updateCheck.ts │ ├── venbind.ts │ ├── venmic.ts │ └── windowStateManager.ts ├── settingsSchema.ts ├── tray.ts ├── utils.ts └── windows │ ├── main │ ├── bridge.ts │ ├── defaultAssets.ts │ ├── keybinds.ts │ ├── main.ts │ ├── preload.mts │ ├── screenshare.ts │ └── titlebar.ts │ ├── preloadUtils.ts │ ├── screenshare │ ├── main.ts │ └── preload.mts │ └── settings │ ├── cloud │ ├── cloud.ts │ ├── encryption.ts │ └── token.ts │ ├── main.ts │ ├── preload.mts │ └── settingsRenderer.ts └── tsconfig.json /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "[BUG] " 5 | labels: '' 6 | assignees: '' 7 | --- 8 | 9 | - [ ] I have searched and found no existing issues on the same topic 10 | - [ ] I have searched the [wiki](https://github.com/Milkshiift/GoofCord/wiki/FAQ) and found no mention of my problem 11 | 12 | ### Description 13 | 14 | ### Steps to Reproduce 15 | 16 | ### Expected Behavior 17 | 18 | ### Actual Behavior 19 | 20 | ### Screenshots 21 | 22 | ### Environment 23 | - Operating System (name and version): 24 | - GoofCord Version: 25 | - Way of installing: 26 | 27 | ### Additional Information 28 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | contact_links: 2 | - name: Discord 3 | url: https://discord.gg/CZc4bpnjmm 4 | about: Ask anything non-bug/feature related here (such as "How does XYZ work?" or "Why does ZYX work the way it does?") 5 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "[REQUEST] " 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | - [ ] I have searched and found no existing issues on the same topic 11 | 12 | ### Description 13 | 14 | ### Use Case 15 | 16 | ### Describe alternatives you've considered 17 | 18 | ### Additional context 19 | -------------------------------------------------------------------------------- /.github/workflows/codeql.yml: -------------------------------------------------------------------------------- 1 | # For most projects, this workflow file will not need changing; you simply need 2 | # to commit it to your repository. 3 | # 4 | # You may wish to alter this file to override the set of languages analyzed, 5 | # or to provide custom queries or build logic. 6 | # 7 | # ******** NOTE ******** 8 | # We have attempted to detect the languages in your repository. Please check 9 | # the `language` matrix defined below to confirm you have the correct set of 10 | # supported CodeQL languages. 11 | # 12 | name: "CodeQL Advanced" 13 | 14 | on: 15 | push: 16 | branches: [ "main" ] 17 | pull_request: 18 | branches: [ "main" ] 19 | schedule: 20 | - cron: '22 3 * * 0' 21 | 22 | jobs: 23 | analyze: 24 | name: Analyze (${{ matrix.language }}) 25 | # Runner size impacts CodeQL analysis time. To learn more, please see: 26 | # - https://gh.io/recommended-hardware-resources-for-running-codeql 27 | # - https://gh.io/supported-runners-and-hardware-resources 28 | # - https://gh.io/using-larger-runners (GitHub.com only) 29 | # Consider using larger runners or machines with greater resources for possible analysis time improvements. 30 | runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} 31 | permissions: 32 | # required for all workflows 33 | security-events: write 34 | 35 | # required to fetch internal or private CodeQL packs 36 | packages: read 37 | 38 | # only required for workflows in private repositories 39 | actions: read 40 | contents: read 41 | 42 | strategy: 43 | fail-fast: false 44 | matrix: 45 | include: 46 | - language: javascript-typescript 47 | build-mode: none 48 | # CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' 49 | # Use `c-cpp` to analyze code written in C, C++ or both 50 | # Use 'java-kotlin' to analyze code written in Java, Kotlin or both 51 | # Use 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both 52 | # To learn more about changing the languages that are analyzed or customizing the build mode for your analysis, 53 | # see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/customizing-your-advanced-setup-for-code-scanning. 54 | # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how 55 | # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages 56 | steps: 57 | - name: Checkout repository 58 | uses: actions/checkout@v4 59 | 60 | # Initializes the CodeQL tools for scanning. 61 | - name: Initialize CodeQL 62 | uses: github/codeql-action/init@v3 63 | with: 64 | languages: ${{ matrix.language }} 65 | build-mode: ${{ matrix.build-mode }} 66 | # If you wish to specify custom queries, you can do so here or in a config file. 67 | # By default, queries listed here will override any specified in a config file. 68 | # Prefix the list here with "+" to use these queries and those in the config file. 69 | 70 | # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs 71 | # queries: security-extended,security-and-quality 72 | 73 | # If the analyze step fails for one of the languages you are analyzing with 74 | # "We were unable to automatically build your code", modify the matrix above 75 | # to set the build mode to "manual" for that language. Then modify this step 76 | # to build your code. 77 | # ℹ️ Command-line programs to run using the OS shell. 78 | # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun 79 | - if: matrix.build-mode == 'manual' 80 | shell: bash 81 | run: | 82 | echo 'If you are using a "manual" build mode for one or more of the' \ 83 | 'languages you are analyzing, replace this with the commands to build' \ 84 | 'your code, for example:' 85 | echo ' make bootstrap' 86 | echo ' make release' 87 | exit 1 88 | 89 | - name: Perform CodeQL Analysis 90 | uses: github/codeql-action/analyze@v3 91 | with: 92 | category: "/language:${{matrix.language}}" 93 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Release app 2 | 3 | on: 4 | workflow_dispatch 5 | 6 | permissions: 7 | contents: write 8 | 9 | jobs: 10 | build: 11 | strategy: 12 | matrix: 13 | include: 14 | - name: linux 15 | runner: ubuntu-latest 16 | targets: "tar.xz AppImage deb rpm" 17 | arch: "--x64 --arm64 --armv7l" 18 | - name: win 19 | runner: windows-latest 20 | targets: "zip nsis" 21 | arch: "--x64 --ia32 --arm64" 22 | - name: mac 23 | runner: macos-latest 24 | targets: "dmg" 25 | arch: "--x64 --arm64" 26 | 27 | name: ${{ matrix.name }} 28 | runs-on: ${{ matrix.runner }} 29 | steps: 30 | - name: Github checkout 31 | uses: actions/checkout@v4 32 | 33 | - name: Install Python setuptools 34 | if: matrix.name == 'mac' 35 | run: brew install python-setuptools 36 | 37 | - uses: oven-sh/setup-bun@v2 38 | with: 39 | bun-version: latest 40 | 41 | - name: Use Node.js 42 | uses: actions/setup-node@v4 43 | with: 44 | node-version: "23.x" 45 | 46 | - name: Install Node dependencies 47 | run: bun install --frozen-lockfile 48 | 49 | - name: Install electron-builder globally 50 | run: bun add electron-builder -g 51 | 52 | - name: Build GoofCord 53 | run: bun run build 54 | 55 | - name: Package GoofCord 56 | env: 57 | GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} 58 | run: electron-builder ${{ matrix.arch }} --${{ matrix.name }} ${{ matrix.targets }} --publish=always -------------------------------------------------------------------------------- /.github/workflows/testBuild.yml: -------------------------------------------------------------------------------- 1 | name: Test build 2 | 3 | on: 4 | workflow_dispatch 5 | 6 | permissions: 7 | contents: write 8 | 9 | jobs: 10 | build: 11 | strategy: 12 | matrix: 13 | include: 14 | - name: linux 15 | runner: ubuntu-latest 16 | targets: "tar.xz AppImage deb rpm" 17 | arch: "--x64 --arm64 --armv7l" 18 | - name: win 19 | runner: windows-latest 20 | targets: "zip" 21 | arch: "--x64 --ia32 --arm64" 22 | - name: mac 23 | runner: macos-latest 24 | targets: "dmg" 25 | arch: "--x64 --arm64" 26 | 27 | name: ${{ matrix.name }} 28 | runs-on: ${{ matrix.runner }} 29 | steps: 30 | - name: Github checkout 31 | uses: actions/checkout@v4 32 | 33 | - uses: pnpm/action-setup@v4 34 | with: 35 | version: latest 36 | 37 | - name: Use Node.js 38 | uses: actions/setup-node@v4 39 | with: 40 | node-version: "22.x" 41 | cache: "pnpm" 42 | 43 | - name: Install Node dependencies 44 | run: pnpm install --frozen-lockfile 45 | 46 | - name: Install electron-builder globally 47 | run: pnpm add electron-builder -g 48 | 49 | - name: Build GoofCord 50 | run: pnpm run build 51 | 52 | - name: Package GoofCord 53 | run: electron-builder ${{ matrix.arch }} --${{ matrix.name }} ${{ matrix.targets }} --publish=never 54 | 55 | - name: Upload Artifacts 56 | uses: actions/upload-artifact@v4 57 | with: 58 | name: ${{ matrix.name }}-artifacts 59 | path: | 60 | dist/**/*.tar.xz 61 | dist/**/*.AppImage 62 | dist/**/*.deb 63 | dist/**/*.rpm 64 | dist/**/*.zip 65 | dist/**/*.dmg 66 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | out/ 3 | dist 4 | ts-out/ 5 | ts-out 6 | .idea 7 | .vscode/ 8 | assets/lang/test-TEST.json 9 | assets/venmic* 10 | assets/venbind* -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | node-linker=hoisted 2 | public-hoist-pattern=* 3 | shamefully-hoist=true 4 | engine-strict=false 5 | virtual-store-dir-max-length=70 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |