diff --git a/.dockerignore b/.dockerignore index ac38bfb2..06fae233 100644 --- a/.dockerignore +++ b/.dockerignore @@ -34,7 +34,7 @@ README.md CONTRIBUTING.md LICENSE -repo-images/ +docs/repo-images/ uploads/ diff --git a/.github/workflows/electron.yml b/.github/workflows/electron.yml index a465c2fb..411e3839 100644 --- a/.github/workflows/electron.yml +++ b/.github/workflows/electron.yml @@ -299,9 +299,9 @@ jobs: CHECKSUM_ARM64=$(sha256sum "release/termix_linux_arm64_appimage.AppImage" | awk '{print $1}') mkdir -p flatpak-build - cp flatpak/com.karmaa.termix.yml flatpak-build/ - cp flatpak/com.karmaa.termix.desktop flatpak-build/ - cp flatpak/com.karmaa.termix.metainfo.xml flatpak-build/ + cp packaging/flatpak/com.karmaa.termix.yml flatpak-build/ + cp packaging/flatpak/com.karmaa.termix.desktop flatpak-build/ + cp packaging/flatpak/com.karmaa.termix.metainfo.xml flatpak-build/ cp public/icon.svg flatpak-build/com.karmaa.termix.svg convert public/icon.png -resize 256x256 flatpak-build/icon-256.png convert public/icon.png -resize 128x128 flatpak-build/icon-128.png @@ -333,7 +333,7 @@ jobs: - name: Create flatpakref file run: | VERSION="${{ steps.flatpak-version.outputs.version }}" - cp flatpak/com.karmaa.termix.flatpakref release/ + cp packaging/flatpak/com.karmaa.termix.flatpakref release/ sed -i "s|VERSION_PLACEHOLDER|release-${VERSION}-tag|g" release/com.karmaa.termix.flatpakref - name: Upload Flatpak bundle @@ -545,7 +545,7 @@ jobs: CHECKSUM=$(shasum -a 256 "$DMG_PATH" | awk '{print $1}') mkdir -p homebrew-generated - cp Casks/termix.rb homebrew-generated/termix.rb + cp packaging/Casks/termix.rb homebrew-generated/termix.rb sed -i '' "s/VERSION_PLACEHOLDER/$VERSION/g" homebrew-generated/termix.rb sed -i '' "s/CHECKSUM_PLACEHOLDER/$CHECKSUM/g" homebrew-generated/termix.rb @@ -632,7 +632,7 @@ jobs: $DOWNLOAD_URL = "https://github.com/Termix-SSH/Termix/releases/download/release-$VERSION-tag/$MSI_NAME" New-Item -ItemType Directory -Force -Path "choco-build" - Copy-Item -Path "chocolatey\*" -Destination "choco-build" -Recurse -Force + Copy-Item -Path "packaging\chocolatey\*" -Destination "choco-build" -Recurse -Force $installScript = Get-Content "choco-build\tools\chocolateyinstall.ps1" -Raw -Encoding UTF8 $installScript = $installScript -replace 'DOWNLOAD_URL_PLACEHOLDER', $DOWNLOAD_URL @@ -751,10 +751,10 @@ jobs: mkdir -p flatpak-submission - cp flatpak/com.karmaa.termix.yml flatpak-submission/ - cp flatpak/com.karmaa.termix.desktop flatpak-submission/ - cp flatpak/com.karmaa.termix.metainfo.xml flatpak-submission/ - cp flatpak/flathub.json flatpak-submission/ + cp packaging/flatpak/com.karmaa.termix.yml flatpak-submission/ + cp packaging/flatpak/com.karmaa.termix.desktop flatpak-submission/ + cp packaging/flatpak/com.karmaa.termix.metainfo.xml flatpak-submission/ + cp packaging/flatpak/flathub.json flatpak-submission/ cp public/icon.svg flatpak-submission/com.karmaa.termix.svg convert public/icon.png -resize 256x256 flatpak-submission/icon-256.png @@ -880,7 +880,7 @@ jobs: mkdir -p homebrew-submission/Casks/t - cp Casks/termix.rb homebrew-submission/Casks/t/termix.rb + cp packaging/Casks/termix.rb homebrew-submission/Casks/t/termix.rb sed -i '' "s/VERSION_PLACEHOLDER/$VERSION/g" homebrew-submission/Casks/t/termix.rb sed -i '' "s/CHECKSUM_PLACEHOLDER/$CHECKSUM/g" homebrew-submission/Casks/t/termix.rb diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 65479b41..f1a99545 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -389,17 +389,17 @@ jobs: exit 0 fi - sed -i "s|version \".*\"|version \"$VERSION\"|g" Casks/termix.rb - sed -i "s|sha256 \".*\"|sha256 \"$DMG_SHA256\"|g" Casks/termix.rb + sed -i "s|version \".*\"|version \"$VERSION\"|g" packaging/Casks/termix.rb + sed -i "s|sha256 \".*\"|sha256 \"$DMG_SHA256\"|g" packaging/Casks/termix.rb - if git diff --quiet Casks/termix.rb; then + if git diff --quiet packaging/Casks/termix.rb; then echo "Cask already up to date." exit 0 fi git config user.name "LukeGus" git config user.email "bugattiguy527@gmail.com" - git add Casks/termix.rb + git add packaging/Casks/termix.rb git stash git pull --rebase origin main git stash pop diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index 6975ffb1..00000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,128 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, religion, or sexual identity -and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the - overall community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or - advances of any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email - address, without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -mail@termix.site. -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series -of actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or -permanent ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within -the community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.0, available at -https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. - -Community Impact Guidelines were inspired by [Mozilla's code of conduct -enforcement ladder](https://github.com/mozilla/diversity). - -[homepage]: https://www.contributor-covenant.org - -For answers to common questions about this code of conduct, see the FAQ at -https://www.contributor-covenant.org/faq. Translations are available at -https://www.contributor-covenant.org/translations. diff --git a/README.md b/README.md index 4e75ff40..0cfadcd6 100644 --- a/README.md +++ b/README.md @@ -8,19 +8,19 @@
English · - 中文 · - 日本語 · - 한국어 · - Français · - Deutsch · - Español · - Português · - Русский · - العربية · - हिन्दी · - Türkçe · - Tiếng Việt · - Italiano + 中文 · + 日本語 · + 한국어 · + Français · + Deutsch · + Español · + Português · + Русский · + العربية · + हिन्दी · + Türkçe · + Tiếng Việt · + Italiano
@@ -41,13 +41,13 @@ Termix is free and open source. If you find it useful, consider [donating](https
-
+
-
+
Achieved on September 1st, 2025
![]() |
-![]() |
+![]() |
+![]() |
![]() |
-![]() |
+![]() |
+![]() |
![]() |
-![]() |
+![]() |
+![]() |
![]() |
-![]() |
+![]() |
+![]() |
![]() |
-![]() |
+![]() |
+![]() |
![]() |
-![]() |
+![]() |
+![]() |
![]() |
-![]() |
+![]() |
+![]() |
![]() |
-![]() |
+![]() |
+![]() |
`,
+ `
`,
``,
].join("\n");
diff --git a/src/ui/lib/terminal-syntax-highlighter.ts b/src/ui/lib/terminal-syntax-highlighter.ts
index 7e6489d7..b576514e 100644
--- a/src/ui/lib/terminal-syntax-highlighter.ts
+++ b/src/ui/lib/terminal-syntax-highlighter.ts
@@ -378,6 +378,7 @@ function highlightLine(
const bare = cr ? line.slice(0, -1) : line;
if (!bare.trim()) return line;
+ if (bare.length > MAX_LINE_LENGTH) return line;
if (isShellPromptLine(bare)) return line;
const segments = parseAnsiSegments(bare);
diff --git a/vitest.setup.ts b/vitest.setup.ts
index b2bb5a4b..c030928c 100644
--- a/vitest.setup.ts
+++ b/vitest.setup.ts
@@ -1,8 +1,5 @@
import { afterEach, vi } from "vitest";
-// jsdom does not implement matchMedia; provide a minimal stub so hooks that
-// read media queries (e.g. useIsMobile) can run. Individual tests override
-// window.innerWidth / matchMedia as needed.
if (typeof window !== "undefined" && !window.matchMedia) {
window.matchMedia = vi.fn().mockImplementation((query: string) => ({
matches: false,