pub struct Settings {Show 63 fields
pub layout_left_pct: u16,
pub layout_center_pct: u16,
pub layout_right_pct: u16,
pub main_pane_order: [MainVerticalPane; 3],
pub vertical_min_results: u16,
pub vertical_max_results: u16,
pub vertical_min_middle: u16,
pub vertical_max_middle: u16,
pub vertical_min_package_info: u16,
pub app_dry_run_default: bool,
pub keymap: KeyMap,
pub sort_mode: SortMode,
pub clipboard_suffix: String,
pub show_recent_pane: bool,
pub show_install_pane: bool,
pub show_keybinds_footer: bool,
pub selected_countries: String,
pub mirror_count: u16,
pub virustotal_api_key: String,
pub scan_do_clamav: bool,
pub scan_do_trivy: bool,
pub scan_do_semgrep: bool,
pub scan_do_shellcheck: bool,
pub scan_do_virustotal: bool,
pub scan_do_custom: bool,
pub scan_do_sleuth: bool,
pub pkgbuild_shellcheck_exclude: String,
pub pkgbuild_checks_show_raw_output: bool,
pub start_in_news: bool,
pub news_filter_show_arch_news: bool,
pub news_filter_show_advisories: bool,
pub news_filter_show_pkg_updates: bool,
pub news_filter_show_aur_updates: bool,
pub news_filter_show_aur_comments: bool,
pub news_filter_installed_only: bool,
pub news_max_age_days: Option<u32>,
pub startup_news_configured: bool,
pub startup_news_show_arch_news: bool,
pub startup_news_show_advisories: bool,
pub startup_news_show_aur_updates: bool,
pub startup_news_show_aur_comments: bool,
pub startup_news_show_pkg_updates: bool,
pub startup_news_max_age_days: Option<u32>,
pub news_cache_ttl_days: u32,
pub package_marker: PackageMarker,
pub news_read_symbol: String,
pub news_unread_symbol: String,
pub preferred_terminal: String,
pub skip_preflight: bool,
pub locale: String,
pub search_startup_mode: bool,
pub fuzzy_search: bool,
pub updates_refresh_interval: u64,
pub installed_packages_mode: InstalledPackagesMode,
pub get_announcement: bool,
pub use_passwordless_sudo: bool,
pub privilege_mode: PrivilegeMode,
pub auth_mode: AuthMode,
pub use_terminal_theme: bool,
pub aur_vote_enabled: bool,
pub aur_vote_ssh_timeout_seconds: u32,
pub aur_vote_ssh_command: String,
pub results_filter_toggles: HashMap<String, bool>,
}Expand description
User-configurable application settings parsed from pacsea.conf.
Fields§
§layout_left_pct: u16Percentage width allocated to the Recent pane (left column).
layout_center_pct: u16Percentage width allocated to the Search pane (center column).
layout_right_pct: u16Percentage width allocated to the Install pane (right column).
main_pane_order: [MainVerticalPane; 3]Vertical order of the main stack: results list, middle search row, package info (each once).
vertical_min_results: u16Minimum terminal rows for the results list band.
vertical_max_results: u16Maximum terminal rows for the results list band.
vertical_min_middle: u16Minimum terminal rows for the middle (search) row.
vertical_max_middle: u16Maximum terminal rows for the middle row.
vertical_min_package_info: u16Minimum terminal rows for package info when that band is shown.
app_dry_run_default: boolDefault value for the application’s dry-run mode on startup.
This can be toggled via the --dry-run CLI flag.
keymap: KeyMapConfigurable key bindings parsed from pacsea.conf
sort_mode: SortModeInitial sort mode for results list.
clipboard_suffix: StringText appended when copying PKGBUILD to clipboard.
show_recent_pane: boolWhether the Search history pane should be shown on startup.
show_install_pane: boolWhether the Install/Remove pane should be shown on startup.
Whether the keybinds footer should be shown on startup.
selected_countries: StringSelected countries used when updating mirrors (comma-separated or multiple).
mirror_count: u16Number of mirrors to fetch/rank when updating.
virustotal_api_key: StringVirusTotal API key for security scanning.
scan_do_clamav: boolWhether to run ClamAV scan on AUR packages.
scan_do_trivy: boolWhether to run Trivy scan on AUR packages.
scan_do_semgrep: boolWhether to run Semgrep scan on AUR packages.
scan_do_shellcheck: boolWhether to run ShellCheck scan on AUR packages.
scan_do_virustotal: boolWhether to run VirusTotal scan on AUR packages.
scan_do_custom: boolWhether to run custom scan on AUR packages.
scan_do_sleuth: boolWhether to run Sleuth scan on AUR packages.
pkgbuild_shellcheck_exclude: StringComma-separated ShellCheck rule IDs to pass as --exclude when running PKGBUILD static checks.
Empty means ShellCheck runs without --exclude.
pkgbuild_checks_show_raw_output: boolWhen true, the PKGBUILD details pane may show the expandable Raw output: block from static checks.
When false, findings and status still show; raw command output is hidden. Defaults to false.
start_in_news: boolWhether to start the app in News mode (true) or Package mode (false).
news_filter_show_arch_news: boolWhether to show Arch news items in the News view.
news_filter_show_advisories: boolWhether to show security advisories in the News view.
news_filter_show_pkg_updates: boolWhether to show installed package update items in the News view.
news_filter_show_aur_updates: boolWhether to show AUR package update items in the News view.
news_filter_show_aur_comments: boolWhether to show installed AUR comment items in the News view.
news_filter_installed_only: boolWhether to restrict advisories to installed packages in the News view.
news_max_age_days: Option<u32>Maximum age of news items in days (None = unlimited).
startup_news_configured: boolWhether startup news popup setup has been completed.
startup_news_show_arch_news: boolWhether to show Arch news in startup news popup.
startup_news_show_advisories: boolWhether to show security advisories in startup news popup.
startup_news_show_aur_updates: boolWhether to show AUR updates in startup news popup.
startup_news_show_aur_comments: boolWhether to show AUR comments in startup news popup.
startup_news_show_pkg_updates: boolWhether to show official package updates in startup news popup.
startup_news_max_age_days: Option<u32>Maximum age of news items in days for startup news popup (None = unlimited).
news_cache_ttl_days: u32How many days to keep Arch news and advisories cached on disk. Default is 7 days. Helps reduce network requests on startup.
package_marker: PackageMarkerVisual marker style for packages added to Install/Remove/Downgrade lists.
news_read_symbol: StringSymbol used to mark a news item as read in the News modal.
news_unread_symbol: StringSymbol used to mark a news item as unread in the News modal.
preferred_terminal: StringPreferred terminal binary name to spawn for shell commands (e.g., “alacritty”, “kitty”, “gnome-terminal”). When empty, Pacsea auto-detects from available terminals.
skip_preflight: boolWhen true, skip the Preflight modal and execute actions directly (install/remove/downgrade). Defaults to false to preserve the safer, review-first workflow.
locale: StringLocale code for translations (e.g., “de-DE”, “en-US”). Empty string means auto-detect from system locale.
search_startup_mode: boolSearch input mode on startup. When false, starts in insert mode (default). When true, starts in normal mode.
fuzzy_search: boolWhether fuzzy search is enabled by default on startup. When false, uses normal substring search (default). When true, uses fuzzy matching (fzf-style).
updates_refresh_interval: u64Refresh interval in seconds for pacman -Qu and AUR helper checks. Default is 30 seconds. Set to a higher value to reduce resource usage on slow systems.
installed_packages_mode: InstalledPackagesModeFilter mode for installed packages display.
LeafOnly shows explicitly installed packages with no dependents.
AllExplicit shows all explicitly installed packages.
get_announcement: boolWhether to fetch remote announcements from GitHub Gist.
If true, fetches announcements from the configured Gist URL.
If false, remote announcements are disabled (version announcements still show).
use_passwordless_sudo: boolWhether to use passwordless sudo for install operations when available.
If false (default), password prompt is always shown even if passwordless sudo is configured.
If true, passwordless sudo is used when available, skipping the password prompt.
This acts as an additional safety barrier requiring explicit opt-in.
privilege_mode: PrivilegeModePrivilege escalation tool selection mode.
Controls which tool (sudo/doas) is used for privileged operations.
Auto (default): prefer doas if available, fall back to sudo.
Sudo: always use sudo. Doas: always use doas.
auth_mode: AuthModeAuthentication mode for privilege escalation.
Controls how Pacsea handles password/authentication before privileged operations.
Prompt (default): Pacsea captures password only for stdin-capable tools (sudo).
For doas, prompt mode is coerced to Interactive because doas cannot read stdin passwords.
PasswordlessOnly: Skip prompt only when {tool} -n true succeeds.
Interactive: Let the privilege tool handle auth directly (fingerprint via PAM, etc.).
use_terminal_theme: boolWhether to use the terminal’s theme colors instead of theme.conf.
If true, Pacsea queries the terminal for foreground/background colors via OSC 10/11.
If false (default), uses theme.conf colors.
Note: Terminal theme is also used automatically when theme.conf is missing/invalid
and the terminal is on the supported list (alacritty, kitty, konsole, ghostty, xterm,
gnome-terminal, xfce4-terminal, tilix, mate-terminal, wezterm-gui, WezTerm).
aur_vote_enabled: boolWhether AUR voting via SSH is enabled. Requires an SSH key uploaded to the user’s AUR account.
aur_vote_ssh_timeout_seconds: u32SSH connect timeout in seconds for AUR vote commands.
aur_vote_ssh_command: StringSSH binary path or name for AUR vote commands.
Defaults to "ssh". Override for non-standard SSH setups.
results_filter_toggles: HashMap<String, bool>Dynamic results-list toggles from repos.conf filter ids (canonical keys, see repos module).
Keys match canonical results_filter tokens from repos.conf (e.g. vendor_pkgs for results_filter_show_vendor_pkgs).
Trait Implementations§
Source§impl Default for Settings
impl Default for Settings
Source§fn default() -> Self
fn default() -> Self
What: Provide the built-in baseline configuration for Pacsea settings.
Inputs:
- None.
Output:
- Returns a
Settingsinstance populated with Pacsea’s preferred defaults.
Details:
- Sets balanced pane layout percentages and enables all panes by default.
- Enables all scan types and uses Catppuccin-inspired news glyphs.
Auto Trait Implementations§
impl Freeze for Settings
impl RefUnwindSafe for Settings
impl Send for Settings
impl Sync for Settings
impl Unpin for Settings
impl UnsafeUnpin for Settings
impl UnwindSafe for Settings
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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