logiguard fork: GPUI xdg-activation keyboard-focus serial fix
Some checks failed
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Triage Project Sync (#84) / Sync triage project (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
release_nightly / check_style (push) Has been cancelled
release_nightly / run_tests_windows (push) Has been cancelled
release_nightly / clippy_windows (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
compliance_check / scheduled_compliance_check (push) Has been cancelled

Single-commit orphan branch: full zed-industries/zed @ 8c74db0 source tree
with a 3-file patch applied (no upstream history).

Patch (crates/gpui_linux/src/linux/wayland/):
  - serial.rs: add SerialKind::KeyboardEnter
  - client.rs: store wl_keyboard.enter serial; add latest_serial_of()
  - window.rs: activate() uses keyboard-enter serial (Mutter focus gate)

Mutter honors window activation only when the token carries the keyboard-
focus serial from wl_keyboard.enter; GPUI used a stale mouse-press serial.
See docs/tray-window-focus-wayland.md in logiguard.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Mohamad Khani
2026-07-14 02:22:17 +03:30
commit b72a46db68
3984 changed files with 1583326 additions and 0 deletions

View File

@@ -0,0 +1,62 @@
("(" @open
")" @close)
("[" @open
"]" @close)
("{" @open
"}" @close)
(("\"" @open
"\"" @close)
(#set! rainbow.exclude))
(("`" @open
"`" @close)
(#set! rainbow.exclude))
(("do" @open
"done" @close)
(#set! newline.only)
(#set! rainbow.exclude))
((case_statement
("in" @open
"esac" @close))
(#set! newline.only)
(#set! rainbow.exclude))
((if_statement
(elif_clause
"then" @open)
(else_clause
"else" @close))
(#set! newline.only)
(#set! rainbow.exclude))
((if_statement
(else_clause
"else" @open)
"fi" @close)
(#set! newline.only)
(#set! rainbow.exclude))
((if_statement
"then" @open
(elif_clause
"elif" @close))
(#set! newline.only)
(#set! rainbow.exclude))
((if_statement
"then" @open
(else_clause
"else" @close))
(#set! newline.only)
(#set! rainbow.exclude))
((if_statement
("then" @open
"fi" @close))
(#set! newline.only)
(#set! rainbow.exclude))

View File

@@ -0,0 +1,38 @@
name = "Shell Script"
code_fence_block_name = "bash"
grammar = "bash"
path_suffixes = ["sh", "bash", "bashrc", "bash_profile", "bash_aliases", "bash_logout", "bats", "profile", "zsh", "zshrc", "zshenv", "zsh_profile", "zsh_aliases", "zsh_histfile", "zlogin", "zprofile", ".env", "PKGBUILD", "APKBUILD"]
modeline_aliases = ["sh", "shell", "zsh", "fish"]
line_comments = ["# "]
first_line_pattern = '^#!.*\b(?:ash|bash|bats|dash|sh|zsh)\b'
autoclose_before = "}])"
brackets = [
{ start = "[", end = "]", close = true, newline = false },
{ start = "(", end = ")", close = true, newline = true },
{ start = "{", end = "}", close = true, newline = true },
{ start = "\"", end = "\"", close = true, newline = false, not_in = ["comment", "string"] },
{ start = "'", end = "'", close = true, newline = false, not_in = ["string", "comment"] },
{ start = "do", end = "done", close = false, newline = true, not_in = ["comment", "string"] },
{ start = "then", end = "fi", close = false, newline = true, not_in = ["comment", "string"] },
{ start = "then", end = "else", close = false, newline = true, not_in = ["comment", "string"] },
{ start = "then", end = "elif", close = false, newline = true, not_in = ["comment", "string"] },
{ start = "in", end = "esac", close = false, newline = true, not_in = ["comment", "string"] },
]
auto_indent_using_last_non_empty_line = false
increase_indent_pattern = "^\\s*(\\b(else|elif)\\b|([^#]+\\b(do|then|in)\\b)|([\\w\\*]+\\)))\\s*$"
decrease_indent_patterns = [
{ pattern = "^\\s*elif\\b.*", valid_after = ["if", "elif"] },
{ pattern = "^\\s*else\\b.*", valid_after = ["if", "elif", "for", "while"] },
{ pattern = "^\\s*fi\\b.*", valid_after = ["if", "elif", "else"] },
{ pattern = "^\\s*done\\b.*", valid_after = ["for", "while"] },
{ pattern = "^\\s*esac\\b.*", valid_after = ["case"] },
{ pattern = "^\\s*[\\w\\*]+\\)\\s*$", valid_after = ["case_item"] },
]
# We can't use decrease_indent_patterns simply for elif, because
# there is bug in tree sitter which throws ERROR on if match.
#
# This is workaround. That means, elif will outdents with despite
# of wrong context. Like using elif after else.
decrease_indent_pattern = "(^|\\s+|;)(elif)\\b.*$"

View File

@@ -0,0 +1,124 @@
[
(string)
(raw_string)
(heredoc_body)
(heredoc_start)
(heredoc_end)
(ansi_c_string)
(word)
] @string
(variable_name) @variable
[
"export"
"function"
"unset"
"local"
"declare"
] @keyword
[
"case"
"do"
"done"
"elif"
"else"
"esac"
"fi"
"for"
"if"
"in"
"select"
"then"
"until"
"while"
] @keyword.control
(comment) @comment
; Shebang
((program
.
(comment) @keyword.directive)
(#match? @keyword.directive "^#![ \t]*/"))
(function_definition
name: (word) @function)
(command_name
(word) @function)
(command
argument: [
(word) @variable.parameter
(_
(word) @variable.parameter)
])
[
(file_descriptor)
(number)
] @number
(regex) @string.regex
[
(command_substitution)
(process_substitution)
(expansion)
] @embedded
[
"$"
"&&"
">"
"<<"
">>"
">&"
">&-"
"<"
"|"
":"
"//"
"/"
"%"
"%%"
"#"
"##"
"="
"=="
] @operator
(test_operator) @keyword.operator
";" @punctuation.delimiter
[
"("
")"
"{"
"}"
"["
"]"
] @punctuation.bracket
(simple_expansion
"$" @punctuation.special)
(expansion
"${" @punctuation.special
"}" @punctuation.special) @embedded
(command_substitution
"$(" @punctuation.special
")" @punctuation.special)
((command
(_) @constant)
(#match? @constant "^-"))
(case_item
value: (_) @string.regex)
(special_variable_name) @variable.special

View File

@@ -0,0 +1,27 @@
(_
"["
"]" @end) @indent
(_
"{"
"}" @end) @indent
(_
"("
")" @end) @indent
(function_definition) @start.function
(if_statement) @start.if
(elif_clause) @start.elif
(else_clause) @start.else
(for_statement) @start.for
(while_statement) @start.while
(case_statement) @start.case
(case_item) @start.case_item

View File

@@ -0,0 +1,2 @@
((comment) @injection.content
(#set! injection.language "comment"))

View File

@@ -0,0 +1,3 @@
(comment) @comment.inclusive
(string) @string

View File

@@ -0,0 +1,2 @@
(variable_assignment
value: (_) @redact)

View File

@@ -0,0 +1,5 @@
; Run bash scripts
((program
.
(_) @run) @_bash-script
(#set! tag bash-script))

View File

@@ -0,0 +1,7 @@
(function_definition
body: (_
"{"
(_)* @function.inside
"}")) @function.around
(comment) @comment.around