defmodule LivebookWeb.SettingsLive do use LivebookWeb, :live_view import LivebookWeb.UserHelpers alias LivebookWeb.{SidebarHelpers, PageHelpers} @impl true def mount(_params, _session, socket) do file_systems = Livebook.Config.file_systems() file_systems_env = Livebook.Config.file_systems_as_env(file_systems) {:ok, socket |> SidebarHelpers.shared_home_handlers() |> assign( file_systems: file_systems, file_systems_env: file_systems_env, page_title: "Livebook - Settings" )} end @impl true def render(assigns) do ~H"""

Here you can change global Livebook configuration. Keep in mind that this configuration is not persisted and gets discarded as soon as you stop the application.

About

<.labeled_text label="Livebook" text={"v#{Application.spec(:livebook, :vsn)}"} /> <.labeled_text label="Elixir" text={"v#{System.version()}"} />
<%= live_redirect to: Routes.live_dashboard_path(@socket, :home), class: "button-base button-outlined-gray" do %> <.remix_icon icon="dashboard-2-line" class="align-middle mr-1" /> Open dashboard <% end %>

File systems

User settings

The configuration in this section changes only your Livebook experience and is saved in your browser.

Code editor

<.switch_checkbox name="editor_auto_completion" label="Show completion list while typing" checked={false} /> <.switch_checkbox name="editor_auto_signature" label="Show function signature while typing" checked={false} /> <.switch_checkbox name="editor_font_size" label="Increase font size" checked={false} /> <.switch_checkbox name="editor_high_contrast" label="High contrast editor" checked={false} />
<%= if @live_action == :user do %> <.current_user_modal return_to={Routes.settings_path(@socket, :page)} current_user={@current_user} /> <% end %> <%= if @live_action == :add_file_system do %> <.modal class="w-full max-w-3xl" return_to={Routes.settings_path(@socket, :page)}> <.live_component module={LivebookWeb.SettingsLive.AddFileSystemComponent} id="add-file-system" return_to={Routes.settings_path(@socket, :page)} /> <% end %> <%= if @live_action == :detach_file_system do %> <.modal class="w-full max-w-xl" return_to={Routes.settings_path(@socket, :page)}> <.live_component module={LivebookWeb.SettingsLive.RemoveFileSystemComponent} id="detach-file-system" return_to={Routes.settings_path(@socket, :page)} file_system={@file_system} /> <% end %> """ end @impl true def handle_params(%{"file_system_index" => index}, _url, socket) do index = String.to_integer(index) file_system = Enum.at(socket.assigns.file_systems, index) {:noreply, assign(socket, :file_system, file_system)} end def handle_params(_params, _url, socket), do: {:noreply, socket} @impl true def handle_info({:file_systems_updated, file_systems}, socket) do file_systems_env = Livebook.Config.file_systems_as_env(file_systems) {:noreply, assign(socket, file_systems: file_systems, file_systems_env: file_systems_env)} end def handle_info(_message, socket), do: {:noreply, socket} end