Skip to main content

ProceduralEffect

Enum ProceduralEffect 

Source
pub enum ProceduralEffect {
    None,
    JuliaSet,
    Mandelbrot,
    NewtonBasins,
    NovaJulia,
    CosmicAurora,
    Starfield,
    Fractal,
    Polynomial,
    Random,
}
Expand description

Represents all supported procedural background overlay effects.

Variants§

§

None

No overlay effect is applied; displays the raw, unaltered wallpaper.

§

JuliaSet

Julia Set fractal overlay.

  • Characteristics: Rendered as thin, sharp, self-similar contour lines forming highly symmetrical branching patterns. Depending on the selected complex constant, the lines trace intricate shapes resembling swirling clouds, dendritic lace, spiral galaxy arms, leafy filaments, or crystalline snowflakes.
  • Creator: Developed mathematically by the French mathematician Gaston Julia in 1918.
  • Generator function: Calculated by mapping the convergence boundary under the recursive function: f(z) = z^2 + c where c is a fixed complex constant perturbation and the initial coordinate z_0 varies across the viewport.
§

Mandelbrot

Mandelbrot Set fractal overlay.

  • Characteristics: Rendered as thin, sharp, self-similar contour lines tracing the boundary of the set. The lines expose highly detailed structural contours, including a main cardioid, circular period bulbs, swirling spiral valleys, and repeating miniature copies of the entire set connected by thin filaments.
  • Creator: First visualized and defined by the Polish-born French-American mathematician Benoit Mandelbrot in 1980.
  • Generator function: Modeled using the quadratic recurrence equation starting from the origin: z(n+1) = z(n)^2 + c where z_0 = 0 and the complex parameter c varies across the viewport grid coordinates.
§

NewtonBasins

Newton-Raphson Basin of Attraction fractal overlay.

  • Characteristics: Symmetrical, kaleidoscope-like mandala structures representing root-finding convergence fields across complex space boundaries. It maps the limits of convergence zones where points migrate to specific roots of a polynomial equation.
  • Creator: Formulated based on Sir Isaac Newton’s root-approximation methods (1690s) and Arthur Cayley’s subsequent complex-plane studies (1879).
  • Generator function: Computed using a relaxed Newton-Raphson recurrence formula: z(n+1) = z(n) - lambda * f(z(n)) / f’(z(n)) on the polynomial f(z) = z^p - 1, where p is the integer polynomial power and lambda is a complex relaxation factor.
§

NovaJulia

Nova Julia liquid fractal overlay.

  • Characteristics: Organic, flowing, fluid-like plumes resembling liquid mercury, cosmic nebulae, or dynamic plasma current paths.
  • Creator: Developed by Paul Derbyshire in the late 1990s as a structural variation and relaxation of the classic Newton-Raphson fractal.
  • Generator function: Evaluated using the relaxed Newton recurrence relation perturbed by a dynamic additive complex value: z(n+1) = z(n) - R * (z(n)^p - 1) / (p * z(n)^(p-1)) + c where p is the polynomial exponent, R is a complex relaxation modifier, and c is a fixed perturbation coordinate.
§

CosmicAurora

Procedural Cosmic Aurora wave generator.

Generator function: multi-frequency sinusoidal wave composition.

§

Starfield

Procedural Starfield / Bokeh generator.

Generator function: I(d) = I_0 * exp(-d^2 / (2 * sigma^2)) (Gaussian).

§

Fractal

Fractal mode selector: randomly chooses between Julia or Mandelbrot.

§

Polynomial

Fractal mode selector: randomly chooses between Newton or Nova.

§

Random

Fully randomised mode selector: picks any effect independently per display.

Implementations§

Source§

impl ProceduralEffect

Source

pub fn get_name(self) -> &'static str

Human-readable display name for diagnostics and terminal output.

Source

pub fn resolve(self) -> Self

Resolves meta-variants (Fractal, Random) to a single concrete effect.

Concrete variants pass through unchanged so callers can always call resolve() unconditionally.

Source

pub fn get_renderer( self, monitor: &Monitor, config: &Config, ) -> WallSwitchResult<Option<Box<dyn ImageEffect>>>

Constructs a heap-allocated, monitor-fitted ImageEffect for this variant.

Returns None for ProceduralEffect::None and the meta-variants Fractal / Random (callers should call resolve first).

§Errors

Returns a WallSwitchError if the generator initialization fails.

Trait Implementations§

Source§

impl Clone for ProceduralEffect

Source§

fn clone(&self) -> ProceduralEffect

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for ProceduralEffect

Source§

impl Debug for ProceduralEffect

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ProceduralEffect

Source§

fn default() -> ProceduralEffect

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for ProceduralEffect

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Eq for ProceduralEffect

Source§

impl PartialEq for ProceduralEffect

Source§

fn eq(&self, other: &ProceduralEffect) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for ProceduralEffect

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for ProceduralEffect

Source§

impl ValueEnum for ProceduralEffect

Source§

fn value_variants<'a>() -> &'a [Self]

All possible argument values, in display order.
Source§

fn to_possible_value<'a>(&self) -> Option<PossibleValue>

The canonical argument value. Read more
Source§

fn from_str(input: &str, ignore_case: bool) -> Result<Self, String>

Parse an argument into Self.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.