Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 2 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ harness = false
gpui_platform = { package = "gpui-pre-platform", version = "=0.3.8", features = ["test-support"] }
gpui = { package = "gpui-pre", version = "=0.3.8", features = ["test-support"] }
gpui-shell = { path = "vendor/gpui-kit/crates/shell", features = ["render-test-support"] }
# Checks that custom shaders (src/shaders.rs) are GLSL the backends accept.
naga = { version = "29", features = ["glsl-in"] }

[target.'cfg(target_os = "linux")'.dev-dependencies]
gpui_wgpu = { package = "gpui-pre-wgpu", path = "vendor/gpui-pre-wgpu", features = ["test-support"] }
Expand Down
41 changes: 38 additions & 3 deletions THIRD-PARTY-NOTICES
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ Herdr third-party notices
=========================
Regenerate with just notices. See licenses/README.md.

Input-SHA256: 6a3b4177337bfb82680d2992e24b5f948c0c4ce524bafa5b1c8cf8090f45adba Cargo.lock
Input-SHA256: f3a083f960c5b2778ddb4b40d9fd2e6c9e29ede57f2f28a46b48d99f0dd485e1 Cargo.toml
Input-SHA256: 46141ef4ba518bbe2cda84770b98405b3f699a460fd0c7b40bb4dd574a678188 Cargo.lock
Input-SHA256: 32c32392fc94dca20fd5a6c6f529c4b16b28053a9a13bacfe6bc099948773377 Cargo.toml
Input-SHA256: c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 LICENSE
Input-SHA256: e58cb0de2dde300bcda769ca993fde2737f42c0274082f038621ab22975a49e2 about.toml
Input-SHA256: 84a7a98c82140fb12c37fe42b93805baa16024cb3e5acc599b7ffe612c55d847 assets/fonts/LICENSE-SymbolsNerdFont.txt
Expand Down Expand Up @@ -56,7 +56,7 @@ Input-SHA256: 81001a9f6c3d868140e0c7c66abcbff8deb4dc00e0fbb68d4a2506d2e2385ea8 v
Input-SHA256: 2ca4d3969f5a62ea841f25868efe6a4c38866f244caffc0affa4af1b25400dad vendor/gpui-kit/crates/fps/Cargo.toml
Input-SHA256: 643a0dbfd9207840764607afbd0cf163b07a16ae4a48266f5cb31efe64b1b2ac vendor/gpui-kit/crates/shell/Cargo.toml
Input-SHA256: cd6a0e1b53913eb4f2559b79aae3b7877b41e9c559c56a0231501cbd0fe2ad3a vendor/gpui-kit/crates/shell/rquickjs-compat/Cargo.toml
Input-SHA256: f00df50e0e437e56cd8475bc78289f57ef00e5d0af0a1a056bf215438bfe5529 vendor/gpui-pre-apple/Cargo.toml
Input-SHA256: 1d6e4db26751645eb9891626614a6f6ec3d332230c4f56571bd4f78b07e40bf8 vendor/gpui-pre-apple/Cargo.toml
Input-SHA256: 752daf2fb234ca4a1fa372c073fe127f44b7b90fd2529ae44273a64f9d53da7a vendor/gpui-pre-apple/LICENSE-APACHE
Input-SHA256: 0d4ca250457a2343879236779f72d4a2dbc1dbdb5fc9fec23d59152cce63caf1 vendor/gpui-pre-linux/Cargo.toml
Input-SHA256: 752daf2fb234ca4a1fa372c073fe127f44b7b90fd2529ae44273a64f9d53da7a vendor/gpui-pre-linux/LICENSE-APACHE
Expand Down Expand Up @@ -12840,6 +12840,41 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


----------------------------------------------------------------------
BSD 3-Clause "New" or "Revised" License (BSD-3-Clause)
pp-rs 0.2.1 — https://github.com/Kangz/glslpp-rs

BSD 3-Clause License

Copyright (c) 2020, Corentin Wallez
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


----------------------------------------------------------------------
BSD 3-Clause "New" or "Revised" License (BSD-3-Clause)
tiny-skia-path 0.11.4 — https://github.com/RazrFalcon/tiny-skia/tree/master/path
Expand Down
10 changes: 10 additions & 0 deletions defaults/AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,16 @@ Properties any node can have:
then show the desktop through frosted glass: make `background` and
`canvas` transparent and give the sidebar a translucent `chrome`
(`"#0b102466"`). Nodes with solid colors stay solid.
- Root only: `"shaders": ["shaders/glow.glsl", ...]` runs Ghostty-style custom
shaders over the whole window after every frame, in order (macOS for now;
paths from this folder, `~/` from home; edits reload). Each is a Shadertoy
`void mainImage(out vec4 fragColor, in vec2 fragCoord)` that reads the frame
from `iChannel0`, with Ghostty's uniforms: `iResolution`, `iTime`,
`iCurrentCursor` / `iPreviousCursor` (the focused terminal's cursor cell,
from the bottom left) and `iTimeCursorChange`, `iCurrentCursorColor`,
`iFocus` / `iTimeFocus`, `iPalette[256]`, `iBackgroundColor`, ... So a
Ghostty `custom-shader` file works as is. Frames keep coming while the window
has focus. A shader that doesn't compile shows why and none run.
- Root only: `"preview": "layouts/<name>.svg"` (or png): the picture the
settings screen shows for this layout. Draw one when you make a layout;
without it the person sees a plain frame. New layouts and `themes/*.json`
Expand Down
5 changes: 5 additions & 0 deletions src/layout.rs
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,10 @@ pub struct Node {
/// colors with alpha show the desktop through frosted glass.
#[serde(default, skip_serializing_if = "is_false")]
pub window_blur: bool,
/// Root only: Ghostty-style custom shaders run over the whole window after
/// every frame, in order (paths relative to the app's folder, `~` for home).
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub shaders: Vec<String>,
}

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
Expand Down Expand Up @@ -436,6 +440,7 @@ impl Node {
toast: None,
window_drag: false,
window_blur: false,
shaders: Vec::new(),
}
}

Expand Down
1 change: 1 addition & 0 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ mod process_cwd;
mod programs;
mod remote_shell;
mod settings;
mod shaders;
mod setup;
mod sound;
mod spawn;
Expand Down
Loading
Loading